- загрузить 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;