summary refs log tree commit diff
path: root/pkgs/applications/gis
diff options
context:
space:
mode:
authorNikolay Korotkiy <sikmir@gmail.com>2021-11-11 13:31:11 +0300
committerNikolay Korotkiy <sikmir@gmail.com>2021-11-12 12:26:48 +0300
commit5fe151db46c5cbf7fe6ddedbb2cfd04b52cae6ba (patch)
tree2f3af044efc11fb69a2c59ac3aee761da10f8b97 /pkgs/applications/gis
parent07d3557fa58d18ff0f9e14569c901498ba60d431 (diff)
downloadnixpkgs-5fe151db46c5cbf7fe6ddedbb2cfd04b52cae6ba.tar
nixpkgs-5fe151db46c5cbf7fe6ddedbb2cfd04b52cae6ba.tar.gz
nixpkgs-5fe151db46c5cbf7fe6ddedbb2cfd04b52cae6ba.tar.bz2
nixpkgs-5fe151db46c5cbf7fe6ddedbb2cfd04b52cae6ba.tar.lz
nixpkgs-5fe151db46c5cbf7fe6ddedbb2cfd04b52cae6ba.tar.xz
nixpkgs-5fe151db46c5cbf7fe6ddedbb2cfd04b52cae6ba.tar.zst
nixpkgs-5fe151db46c5cbf7fe6ddedbb2cfd04b52cae6ba.zip
qmapshack: fix localization
Diffstat (limited to 'pkgs/applications/gis')
-rw-r--r--pkgs/applications/gis/qmapshack/default.nix12
-rw-r--r--pkgs/applications/gis/qmapshack/fix-qttranslations-path.patch74
2 files changed, 84 insertions, 2 deletions
diff --git a/pkgs/applications/gis/qmapshack/default.nix b/pkgs/applications/gis/qmapshack/default.nix
index d0d39e299aa..dd440dfffda 100644
--- a/pkgs/applications/gis/qmapshack/default.nix
+++ b/pkgs/applications/gis/qmapshack/default.nix
@@ -1,5 +1,5 @@
-{ mkDerivation, lib, fetchFromGitHub, cmake
-, qtscript, qtwebengine, gdal, proj, routino, quazip }:
+{ mkDerivation, lib, fetchFromGitHub, cmake, substituteAll
+, qtscript, qttranslations, qtwebengine, gdal, proj, routino, quazip }:
 
 mkDerivation rec {
   pname = "qmapshack";
@@ -12,6 +12,14 @@ mkDerivation rec {
     sha256 = "1yzgkdjxwyg8ggbxyjwr0zjrx99ckrbz2p2524iii9i7qqn8wfsx";
   };
 
+  patches = [
+    # See https://github.com/NixOS/nixpkgs/issues/86054
+    (substituteAll {
+      src = ./fix-qttranslations-path.patch;
+      inherit qttranslations;
+    })
+  ];
+
   nativeBuildInputs = [ cmake ];
 
   buildInputs = [ qtscript qtwebengine gdal proj routino quazip ];
diff --git a/pkgs/applications/gis/qmapshack/fix-qttranslations-path.patch b/pkgs/applications/gis/qmapshack/fix-qttranslations-path.patch
new file mode 100644
index 00000000000..f91f4228d2c
--- /dev/null
+++ b/pkgs/applications/gis/qmapshack/fix-qttranslations-path.patch
@@ -0,0 +1,74 @@
+diff --git i/src/qmapshack/setup/CAppSetupLinux.cpp w/src/qmapshack/setup/CAppSetupLinux.cpp
+index 63ea06c0..3a03b816 100644
+--- i/src/qmapshack/setup/CAppSetupLinux.cpp
++++ w/src/qmapshack/setup/CAppSetupLinux.cpp
+@@ -30,7 +30,7 @@ void CAppSetupLinux::initQMapShack()
+     prepareGdal("", "");
+ 
+     // setup translators
+-    QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
++    QLatin1String resourceDir = QLatin1String("@qttranslations@/translations");
+     QString translationPath = QCoreApplication::applicationDirPath();
+     translationPath.replace(QRegExp("bin$"), "share/qmapshack/translations");
+     prepareTranslator(resourceDir, "qt_");
+diff --git i/src/qmapshack/setup/CAppSetupMac.cpp w/src/qmapshack/setup/CAppSetupMac.cpp
+index ad9b21e9..9dca8a1e 100644
+--- i/src/qmapshack/setup/CAppSetupMac.cpp
++++ w/src/qmapshack/setup/CAppSetupMac.cpp
+@@ -63,7 +63,7 @@ void CAppSetupMac::initQMapShack()
+ 
+     // setup translators
+     QString translationPath = getApplicationDir(relTranslationDir).absolutePath();
+-    prepareTranslator(translationPath, "qt_");
++    prepareTranslator(QLatin1String("@qttranslations@/translations"), "qt_");
+     prepareTranslator(translationPath, "qmapshack_");
+ 
+     // load and apply style sheet
+diff --git i/src/qmaptool/setup/CAppSetupLinux.cpp w/src/qmaptool/setup/CAppSetupLinux.cpp
+index dea1c4f3..8da95574 100644
+--- i/src/qmaptool/setup/CAppSetupLinux.cpp
++++ w/src/qmaptool/setup/CAppSetupLinux.cpp
+@@ -29,7 +29,7 @@ void CAppSetupLinux::initQMapTool()
+     prepareGdal("", "");
+ 
+     // setup translators
+-    QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
++    QLatin1String resourceDir = QLatin1String("@qttranslations@/translations");
+     QString translationPath = QCoreApplication::applicationDirPath();
+     translationPath.replace(QRegExp("bin$"), "share/qmaptool/translations");
+     prepareTranslator(resourceDir, "qt_");
+diff --git i/src/qmaptool/setup/CAppSetupMac.cpp w/src/qmaptool/setup/CAppSetupMac.cpp
+index 02b27e07..fae27748 100644
+--- i/src/qmaptool/setup/CAppSetupMac.cpp
++++ w/src/qmaptool/setup/CAppSetupMac.cpp
+@@ -64,7 +64,7 @@ void CAppSetupMac::initQMapTool()
+ 
+     // setup translators
+     QString translationPath = getApplicationDir(relTranslationDir).absolutePath();
+-    prepareTranslator(translationPath, "qt_");
++    prepareTranslator(QLatin1String("@qttranslations@/translations"), "qt_");
+     prepareTranslator(translationPath, "qmaptool_");
+ 
+     migrateDirContent(defaultCachePath());
+diff --git i/src/qmt_rgb2pct/main.cpp w/src/qmt_rgb2pct/main.cpp
+index 21267d03..d539cec8 100644
+--- i/src/qmt_rgb2pct/main.cpp
++++ w/src/qmt_rgb2pct/main.cpp
+@@ -50,7 +50,7 @@ static void prepareTranslator(QString translationPath, QString translationPrefix
+ static void loadTranslations()
+ {
+ #if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) || defined(__FreeBSD_kernel__) || defined(__GNU__) || defined(Q_OS_CYGWIN)
+-    QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
++    QLatin1String resourceDir = QLatin1String("@qttranslations@/translations");
+     QString translationPath = QCoreApplication::applicationDirPath();
+     translationPath.replace(QRegExp("bin$"), "share/" APP_STR "/translations");
+     prepareTranslator(resourceDir, "qt_");
+@@ -61,7 +61,7 @@ static void loadTranslations()
+     // os x
+     static QString relTranslationDir = "Resources/translations"; // app
+     QString translationPath = getApplicationDir(relTranslationDir).absolutePath();
+-    prepareTranslator(translationPath, "qt_");
++    prepareTranslator(QLatin1String("@qttranslations@/translations"), "qt_");
+     prepareTranslator(translationPath, APP_STR "_");
+ #endif
+