diff options
-rw-r--r-- | pkgs/applications/gis/openorienteering-mapper/default.nix | 69 | ||||
-rw-r--r-- | pkgs/applications/gis/openorienteering-mapper/fix-qttranslations-path.diff | 13 |
2 files changed, 63 insertions, 19 deletions
diff --git a/pkgs/applications/gis/openorienteering-mapper/default.nix b/pkgs/applications/gis/openorienteering-mapper/default.nix index 2fc118597f92..39f8694dd177 100644 --- a/pkgs/applications/gis/openorienteering-mapper/default.nix +++ b/pkgs/applications/gis/openorienteering-mapper/default.nix @@ -1,31 +1,61 @@ -{ stdenv, fetchFromGitHub, gdal, cmake, ninja, proj, clipper, zlib, qtbase, qttools -, qtlocation, qtsensors, doxygen, cups, wrapQtAppsHook, qtimageformats +{ stdenv +, mkDerivation +, fetchFromGitHub +, gdal +, cmake +, ninja +, proj +, clipper +, zlib +, qttools +, qtlocation +, qtsensors +, qttranslations +, doxygen +, cups +, qtimageformats }: -stdenv.mkDerivation rec { +mkDerivation rec { pname = "OpenOrienteering-Mapper"; - version = "0.9.2"; + version = "0.9.3"; - buildInputs = [ gdal qtbase qttools qtlocation qtimageformats - qtsensors clipper zlib proj doxygen cups]; + buildInputs = [ + gdal + qtlocation + qtimageformats + qtsensors + clipper + zlib + proj + cups + ]; - nativeBuildInputs = [ cmake wrapQtAppsHook ninja ]; + nativeBuildInputs = [ cmake doxygen ninja qttools ]; src = fetchFromGitHub { owner = "OpenOrienteering"; repo = "mapper"; rev = "v${version}"; - sha256 = "1787f2agjzcyizk2m60icb44yv9dlwv6irw3k53fqfmwkhkd2h5p"; + sha256 = "05bliglpc8170px6k9lfrp9ylpnb2zf47gnjns9b2bif8dv8zq0l"; }; - cmakeFlags = - [ + patches = [ + # See https://github.com/NixOS/nixpkgs/issues/86054 + ./fix-qttranslations-path.diff + ]; + + postPatch = '' + substituteInPlace src/util/translation_util.cpp \ + --subst-var-by qttranslations ${qttranslations} + ''; + + cmakeFlags = [ # Building the manual and bundling licenses fails + # See https://github.com/NixOS/nixpkgs/issues/85306 "-DLICENSING_PROVIDER:BOOL=OFF" "-DMapper_MANUAL_QTHELP:BOOL=OFF" - ] ++ - (stdenv.lib.optionals stdenv.isDarwin - [ + ] ++ stdenv.lib.optionals stdenv.isDarwin [ # Usually enabled on Darwin "-DCMAKE_FIND_FRAMEWORK=never" # FindGDAL is broken and always finds /Library/Framework unless this is @@ -38,16 +68,17 @@ stdenv.mkDerivation rec { "-DMapper_PACKAGE_QT=0" "-DMapper_PACKAGE_ASSISTANT=0" "-DMapper_PACKAGE_GDAL=0" - ]); + ]; - postInstall = - stdenv.lib.optionalString stdenv.isDarwin '' + postInstall = with stdenv; lib.optionalString isDarwin '' + mkdir -p $out/Applications + mv $out/Mapper.app $out/Applications # Fixes "This application failed to start because it could not find or load the Qt # platform plugin "cocoa"." - wrapQtApp $out/Mapper.app/Contents/MacOS/Mapper + wrapQtApp $out/Applications/Mapper.app/Contents/MacOS/Mapper mkdir -p $out/bin - ln -s $out/Mapper.app/Contents/MacOS/Mapper $out/bin/mapper - ''; + ln -s $out/Applications/Mapper.app/Contents/MacOS/Mapper $out/bin/mapper + ''; meta = with stdenv.lib; { description = '' diff --git a/pkgs/applications/gis/openorienteering-mapper/fix-qttranslations-path.diff b/pkgs/applications/gis/openorienteering-mapper/fix-qttranslations-path.diff new file mode 100644 index 000000000000..06c465a8fb33 --- /dev/null +++ b/pkgs/applications/gis/openorienteering-mapper/fix-qttranslations-path.diff @@ -0,0 +1,13 @@ +diff --git i/src/util/translation_util.cpp w/src/util/translation_util.cpp +index da03d216..c1f12751 100644 +--- i/src/util/translation_util.cpp ++++ w/src/util/translation_util.cpp +@@ -103,7 +103,7 @@ TranslationUtil::TranslationUtil(const QString& code, QString translation_file) + } + + QString translation_name = QLatin1String("qt_") + language.code; +- if (!qt_translator.load(translation_name, QLibraryInfo::location(QLibraryInfo::TranslationsPath))) ++ if (!qt_translator.load(translation_name, QLatin1String("@qttranslations@/translations"))) + load(qt_translator, translation_name); + + load(app_translator, translation_file); |