- загрузить standalone установщик QGIS 1.7.4 отсюда. Это QGIS 1.7.4 (ревизия 411aff6), собранная с GDAL 1.8.1. Убедиться, что в ней все работает как надо: слои открываются в заданной кодировке, изменение кодировки из свойств слоя работает.
- загрузить QGIS 1.7.4 через OSGeo4W (пакет qgis-1.7.4-5). Это тоже QGIS 1.7.4 (ревизия 8058b22), собранная с GDAL 1.9.0. Убедиться, что в ней описанные здесь проблемы присутствуют: слои открываются в utf-8, смена кодировки не возможна
- прогуляться по этой ссылке и найти хотя бы один коммит между 411aff6 и 8058b22, затрагивающий провайдер OGR
Код: Выделить всё
diff --git a/debian/changelog b/debian/changelog
index 274cba2..110270e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+qgis (1.7.4-1) UNRELEASED; urgency=low
+
+ * new upstream bugfix release
+
+ -- Jürgen E. Fischer <jef@norbit.de> Sun, 19 Feb 2012 22:35:23 +0100
+
qgis (1.7.3-1) UNRELEASED; urgency=low
* new upstream bugfix release
diff --git a/mac/cmake/2lib.cmake.in b/mac/cmake/2lib.cmake.in
index d2386ed..5016db3 100644
--- a/mac/cmake/2lib.cmake.in
+++ b/mac/cmake/2lib.cmake.in
@@ -111,7 +111,7 @@ ENDIF ()
# libfcgi (non-system)
-IF ("@FCGI_LIBRARY@ MATCHES" ".*libfcgi.dylib" AND NOT "@FCGI_LIBRARY@" MATCHES "/usr/lib/.*")
+IF ("@FCGI_LIBRARY@" MATCHES ".*libfcgi.dylib" AND NOT "@FCGI_LIBRARY@" MATCHES "/usr/lib/.*")
MESSAGE (STATUS "Copying libfcgi and updating library paths...")
MYMESSAGE ("ditto ${QARCHS} \"@FCGI_LIBRARY@\" \"${QLIBDIR}/libfcgi.dylib\"")
EXECUTE_PROCESS (COMMAND ditto ${QARCHS} "@FCGI_LIBRARY@" "${QLIBDIR}/libfcgi.dylib")
diff --git a/ms-windows/osgeo4w/package-nightly.cmd b/ms-windows/osgeo4w/package-nightly.cmd
index 68c7b93..2215871 100755
--- a/ms-windows/osgeo4w/package-nightly.cmd
+++ b/ms-windows/osgeo4w/package-nightly.cmd
@@ -90,10 +90,12 @@ cmake -G "Visual Studio 9 2008" ^
-D PEDANTIC=TRUE ^
-D WITH_SPATIALITE=TRUE ^
-D WITH_MAPSERVER=TRUE ^
- -D WITH_INTERNAL_SPATIALITE=TRUE ^
+ -D WITH_INTERNAL_SPATIALITE=FALSE ^
-D CMAKE_BUILD_TYPE=%BUILDCONF% ^
-D CMAKE_CONFIGURATION_TYPES=%BUILDCONF% ^
-D GEOS_LIBRARY=%OSGEO4W_ROOT%/lib/geos_c_i.lib ^
+ -D SQLITE3_LIBRARY=%OSGEO4W_ROOT%/lib/sqlite3_i.lib ^
+ -D SPATIALITE_LIBRARY=%OSGEO4W_ROOT%/lib/spatialite_i.lib ^
-D PYTHON_EXECUTABLE=%O4W_ROOT%/bin/python.exe ^
-D PYTHON_INCLUDE_PATH=%O4W_ROOT%/apps/Python27/include ^
-D PYTHON_LIBRARY=%O4W_ROOT%/apps/Python27/libs/python27.lib ^
@@ -155,20 +157,6 @@ tar -C %OSGEO4W_ROOT% -cjf %PACKAGENAME%-%VERSION%-%PACKAGE%.tar.bz2 ^
etc/preremove/%PACKAGENAME%.bat ^
>>%LOG% 2>&1
if errorlevel 1 goto error
-
-REM tar -C %OSGEO4W_ROOT% -cjf %PACKAGENAME%-grass-%VERSION%-%PACKAGE%.tar.bz2 ^
-REM --exclude-from exclude ^
-REM "apps/%PACKAGENAME%/themes/classic/grass" ^
-REM "apps/%PACKAGENAME%/themes/default/grass" ^
-REM "apps/%PACKAGENAME%/themes/gis/grass" ^
-REM "apps/%PACKAGENAME%/grass" ^
-REM "apps/%PACKAGENAME%/bin/qgisgrass.dll" ^
-REM "apps/%PACKAGENAME%/plugins/grassrasterprovider.dll" ^
-REM "apps/%PACKAGENAME%/plugins/grassplugin.dll" ^
-REM "apps/%PACKAGENAME%/plugins/grassprovider.dll" ^
-REM >>%LOG% 2>&1
-REM if errorlevel 1 goto error
-
goto end
:error
diff --git a/ms-windows/osgeo4w/package.cmd b/ms-windows/osgeo4w/package.cmd
index 390e2c3..39d0e47 100755
--- a/ms-windows/osgeo4w/package.cmd
+++ b/ms-windows/osgeo4w/package.cmd
@@ -91,10 +91,12 @@ cmake -G "Visual Studio 9 2008" ^
-D PEDANTIC=TRUE ^
-D WITH_SPATIALITE=TRUE ^
-D WITH_MAPSERVER=TRUE ^
- -D WITH_INTERNAL_SPATIALITE=TRUE ^
+ -D WITH_INTERNAL_SPATIALITE=FALSE ^
-D CMAKE_BUILD_TYPE=%BUILDCONF% ^
-D CMAKE_CONFIGURATION_TYPES=%BUILDCONF% ^
-D GEOS_LIBRARY=%OSGEO4W_ROOT%/lib/geos_c_i.lib ^
+ -D SQLITE3_LIBRARY=%OSGEO4W_ROOT%/lib/sqlite3_i.lib ^
+ -D SPATIALITE_LIBRARY=%OSGEO4W_ROOT%/lib/spatialite_i.lib ^
-D PYTHON_EXECUTABLE=%O4W_ROOT%/bin/python.exe ^
-D PYTHON_INCLUDE_PATH=%O4W_ROOT%/apps/Python27/include ^
-D PYTHON_LIBRARY=%O4W_ROOT%/apps/Python27/libs/python27.lib ^
@@ -199,9 +201,6 @@ if errorlevel 1 goto error
tar -C %OSGEO4W_ROOT% -cjf %PACKAGENAME%-%VERSION%-%PACKAGE%.tar.bz2 ^
--exclude-from exclude ^
--exclude "*.pyc" ^
- --exclude apps/%PACKAGENAME%/themes/classic/grass ^
- --exclude apps/%PACKAGENAME%/themes/default/grass ^
- --exclude apps/%PACKAGENAME%/themes/gis/grass ^
"apps/%PACKAGENAME%/bin/qgis.exe" ^
"apps/%PACKAGENAME%/bin/qgis.reg.tmpl" ^
"apps/%PACKAGENAME%/i18n/" ^
@@ -230,7 +229,6 @@ tar -C %OSGEO4W_ROOT% -cjf %PACKAGENAME%-%VERSION%-%PACKAGE%.tar.bz2 ^
"apps/%PACKAGENAME%/python/" ^
"apps/%PACKAGENAME%/resources/context_help/" ^
"apps/%PACKAGENAME%/resources/qgis_help.db" ^
- "apps/%PACKAGENAME%/themes/" ^
"bin/%PACKAGENAME%.bat.tmpl" ^
"etc/postinstall/%PACKAGENAME%.bat" ^
"etc/preremove/%PACKAGENAME%.bat" ^
@@ -240,9 +238,6 @@ if errorlevel 1 goto error
tar -C %OSGEO4W_ROOT% -cjf %PACKAGENAME%-grass-plugin-%VERSION%-%PACKAGE%.tar.bz2 ^
--exclude-from exclude ^
--exclude "*.pyc" ^
- "apps/%PACKAGENAME%/themes/classic/grass" ^
- "apps/%PACKAGENAME%/themes/default/grass" ^
- "apps/%PACKAGENAME%/themes/gis/grass" ^
"apps/%PACKAGENAME%/grass" ^
"apps/%PACKAGENAME%/bin/qgisgrass.dll" ^
"apps/%PACKAGENAME%/plugins/grassrasterprovider.dll" ^
diff --git a/python/pyspatialite/CMakeLists.txt b/python/pyspatialite/CMakeLists.txt
index 8353dd9..4384d60 100644
--- a/python/pyspatialite/CMakeLists.txt
+++ b/python/pyspatialite/CMakeLists.txt
@@ -1,7 +1,11 @@
-INCLUDE_DIRECTORIES(
- ../../src/core/spatialite/headers
- ../../src/core/spatialite/headers/spatialite
+IF(WITH_INTERNAL_SPATIALITE)
+ INCLUDE_DIRECTORIES(
+ ../../src/core/spatialite/headers
+ ../../src/core/spatialite/headers/spatialite
+ )
+ENDIF(WITH_INTERNAL_SPATIALITE)
+INCLUDE_DIRECTORIES(
${PYTHON_INCLUDE_PATH}
${GEOS_INCLUDE_DIR}
${PROJ_INCLUDE_DIR}
@@ -33,6 +37,10 @@ ENDIF (NOT APPLE)
TARGET_LINK_LIBRARIES(pyspatialite ${EXTRA_LINK_LIBRARIES})
+IF(NOT WITH_INTERNAL_SPATIALITE)
+ TARGET_LINK_LIBRARIES(pyspatialite ${SPATIALITE_LIBRARY})
+ENDIF(NOT WITH_INTERNAL_SPATIALITE)
+
IF (APPLE)
SET_TARGET_PROPERTIES(pyspatialite PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
ENDIF (APPLE)
diff --git a/src/app/qgspluginmanager.cpp b/src/app/qgspluginmanager.cpp
index 070bc3f..22926b1 100644
--- a/src/app/qgspluginmanager.cpp
+++ b/src/app/qgspluginmanager.cpp
@@ -250,7 +250,10 @@ void QgsPluginManager::getPluginDescriptions()
QString myPaths = settings.value( "plugins/searchPathsForPlugins", "" ).toString();
if ( !myPaths.isEmpty() )
{
- myPathList.append( myPaths.split( "|" ) );
+ foreach( QString path, myPaths.split( "|" ) )
+ {
+ myPathList.append( path );
+ }
}
for ( int j = 0; j < myPathList.size(); ++j )
diff --git a/src/plugins/offline_editing/CMakeLists.txt b/src/plugins/offline_editing/CMakeLists.txt
index ec94559..32b2178 100644
--- a/src/plugins/offline_editing/CMakeLists.txt
+++ b/src/plugins/offline_editing/CMakeLists.txt
@@ -40,6 +40,7 @@ IF (WITH_INTERNAL_SPATIALITE)
ELSE (WITH_INTERNAL_SPATIALITE)
INCLUDE_DIRECTORIES(${SPATIALITE_INCLUDE_DIR})
INCLUDE_DIRECTORIES(${SQLITE3_INCLUDE_DIR})
+ TARGET_LINK_LIBRARIES(offlineeditingplugin ${SPATIALITE_LIBRARY})
ADD_DEFINITIONS(-DEXTERNAL_SPATIALITE)
ENDIF (WITH_INTERNAL_SPATIALITE)
diff --git a/src/providers/grass/qgsgrass.cpp b/src/providers/grass/qgsgrass.cpp
index ae34d80..71710c3 100644
--- a/src/providers/grass/qgsgrass.cpp
+++ b/src/providers/grass/qgsgrass.cpp
@@ -450,14 +450,21 @@ QString GRASS_EXPORT QgsGrass::openMapset( QString gisdbase, QString location, Q
{
return QObject::tr( "%1 is not a GRASS mapset." ).arg( mapsetPath );
}
+ QString lock = mapsetPath + "/.gislock";
+
+#ifndef _MSC_VER
+ int pid = getpid();
+#else
+ int pid = GetCurrentProcessId();
+#endif
+
+ QgsDebugMsg( QString( "pid = %1" ).arg( pid ) );
#ifndef Q_OS_WIN
- QString lock = mapsetPath + "/.gislock";
QFile lockFile( lock );
QProcess *process = new QProcess();
QString lockProgram( gisBase + "/etc/lock" );
- int pid = getpid();
QgsDebugMsg( QString( "pid = %1" ).arg( pid ) );
process->start( lockProgram, QStringList() << lock << QString::number( pid ) );
@@ -488,13 +495,17 @@ QString GRASS_EXPORT QgsGrass::openMapset( QString gisdbase, QString location, Q
QFileInfo dirInfo( mTmp );
if ( !dirInfo.isWritable() )
{
+#ifndef Q_OS_WIN
lockFile.remove();
+#endif
return QObject::tr( "Temporary directory %1 exists but is not writable" ).arg( mTmp );
}
}
else if ( !dir.mkdir( mTmp ) )
{
+#ifndef Q_OS_WIN
lockFile.remove();
+#endif
return QObject::tr( "Cannot create temporary directory %1" ).arg( mTmp );
}
@@ -508,7 +519,9 @@ QString GRASS_EXPORT QgsGrass::openMapset( QString gisdbase, QString location, Q
QFile out( mGisrc );
if ( !out.open( QIODevice::WriteOnly ) )
{
+#ifndef Q_OS_WIN
lockFile.remove();
+#endif
return QObject::tr( "Cannot create %1" ).arg( mGisrc );
}
QTextStream stream( &out );
@@ -566,12 +579,14 @@ QString GRASS_EXPORT QgsGrass::openMapset( QString gisdbase, QString location, Q
active = true;
+#ifndef Q_OS_WIN
// Close old mapset
if ( mMapsetLock.length() > 0 )
{
QFile file( mMapsetLock );
file.remove();
}
+#endif
mMapsetLock = lock;