diff --git a/pkgs/applications/misc/mkgmap/build.xml.patch b/pkgs/applications/misc/mkgmap/build.xml.patch
index 2aced4452062..567c0d5586f8 100644
--- a/pkgs/applications/misc/mkgmap/build.xml.patch
+++ b/pkgs/applications/misc/mkgmap/build.xml.patch
@@ -1,14 +1,6 @@
--- a/build.xml (revision 4555)
+++ a/build.xml (working copy)
-@@ -222,13 +222,13 @@
-
-
-
--
--
-+
-+
-
+@@ -228,7 +228,7 @@
@@ -35,12 +27,3 @@
-@@ -351,7 +351,7 @@
- ignoreerrors="true"/>
-
-
--
-
-
diff --git a/pkgs/applications/misc/mkgmap/default.nix b/pkgs/applications/misc/mkgmap/default.nix
index 5648e34d8461..03405506052b 100644
--- a/pkgs/applications/misc/mkgmap/default.nix
+++ b/pkgs/applications/misc/mkgmap/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchurl
, fetchsvn
-, substituteAll
, jdk
, jre
, ant
@@ -24,14 +24,24 @@ stdenv.mkDerivation rec {
};
patches = [
- (substituteAll {
- # Disable automatic download of dependencies
- src = ./build.xml.patch;
- inherit version;
- })
+ # Disable automatic download of dependencies
+ ./build.xml.patch
+ ./ignore-impure-test.patch
];
postPatch = with deps; ''
+ # Fix the output jar timestamps for reproducibility
+ substituteInPlace build.xml \
+ --replace-fail ' build/classes/mkgmap-version.properties << EOF
+ svn.version=${version}
+ build.timestamp=unknown
+ EOF
+
+ # Put pre-fetched dependencies into the right place
mkdir -p lib/compile
cp ${fastutil} lib/compile/${fastutil.name}
cp ${osmpbf} lib/compile/${osmpbf.name}
@@ -53,36 +63,51 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ jdk ant makeWrapper ];
- buildPhase = "ant";
+ buildPhase = ''
+ runHook preBuild
+ ant
+ runHook postBuild
+ '';
inherit doCheck;
- checkPhase = "ant test";
+ checkPhase = ''
+ runHook preCheck
+ ant test
+ runHook postCheck
+ '';
installPhase = ''
+ runHook preInstall
+
install -Dm644 dist/mkgmap.jar -t $out/share/java/mkgmap
install -Dm644 dist/doc/mkgmap.1 -t $out/share/man/man1
cp -r dist/lib/ $out/share/java/mkgmap/
makeWrapper ${jre}/bin/java $out/bin/mkgmap \
--add-flags "-jar $out/share/java/mkgmap/mkgmap.jar"
- '' + lib.optionalString withExamples ''
- mkdir -p $out/share/mkgmap
- cp -r dist/examples $out/share/mkgmap/
+
+ ${lib.optionalString withExamples ''
+ mkdir -p $out/share/mkgmap
+ cp -r dist/examples $out/share/mkgmap/
+ ''}
+
+ runHook postInstall
'';
passthru.updateScript = [ ./update.sh "mkgmap" meta.downloadPage ];
meta = with lib; {
description = "Create maps for Garmin GPS devices from OpenStreetMap (OSM) data";
- homepage = "https://www.mkgmap.org.uk/";
downloadPage = "https://www.mkgmap.org.uk/download/mkgmap.html";
- sourceProvenance = with sourceTypes; [
- fromSource
- binaryBytecode # deps
- ];
+ homepage = "https://www.mkgmap.org.uk/";
license = licenses.gpl2Only;
+ mainProgram = "mkgmap";
maintainers = with maintainers; [ sikmir ];
platforms = platforms.all;
- mainProgram = "mkgmap";
+ sourceProvenance = with sourceTypes; [
+ fromSource
+ binaryBytecode # deps
+ ];
};
+
}
diff --git a/pkgs/applications/misc/mkgmap/ignore-impure-test.patch b/pkgs/applications/misc/mkgmap/ignore-impure-test.patch
new file mode 100644
index 000000000000..1ed2f7092f08
--- /dev/null
+++ b/pkgs/applications/misc/mkgmap/ignore-impure-test.patch
@@ -0,0 +1,20 @@
+diff --git a/test/uk/me/parabola/imgfmt/app/srt/SrtCollatorTest.java b/test/uk/me/parabola/imgfmt/app/srt/SrtCollatorTest.java
+index e1e4ac7..954b918 100644
+--- a/test/uk/me/parabola/imgfmt/app/srt/SrtCollatorTest.java
++++ b/test/uk/me/parabola/imgfmt/app/srt/SrtCollatorTest.java
+@@ -17,6 +17,7 @@ import java.text.Collator;
+ import uk.me.parabola.mkgmap.srt.SrtTextReader;
+
+ import org.junit.Before;
++import org.junit.Ignore;
+ import org.junit.Test;
+
+ import static org.junit.Assert.*;
+@@ -111,6 +112,7 @@ public class SrtCollatorTest {
+ * meant to be identical to the java one.
+ */
+ @Test
++ @Ignore
+ public void testJavaRules() {
+ Collator collator = Collator.getInstance();
+
diff --git a/pkgs/applications/misc/mkgmap/splitter/build.xml.patch b/pkgs/applications/misc/mkgmap/splitter/build.xml.patch
index a028dbef0314..1fb0a14ef4c3 100644
--- a/pkgs/applications/misc/mkgmap/splitter/build.xml.patch
+++ b/pkgs/applications/misc/mkgmap/splitter/build.xml.patch
@@ -1,13 +1,6 @@
--- a/build.xml (revision 597)
+++ a/build.xml (working copy)
-@@ -207,12 +207,12 @@
-
-
-
--
--
-+
-+
+@@ -212,7 +212,7 @@
@@ -25,15 +18,6 @@
-@@ -261,7 +261,7 @@
-
-
-
--
-+
-
-
-
@@ -324,7 +324,7 @@
diff --git a/pkgs/applications/misc/mkgmap/splitter/default.nix b/pkgs/applications/misc/mkgmap/splitter/default.nix
index d9b886cbe2b3..010b140e9bf9 100644
--- a/pkgs/applications/misc/mkgmap/splitter/default.nix
+++ b/pkgs/applications/misc/mkgmap/splitter/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchurl
, fetchsvn
-, substituteAll
, jdk
, jre
, ant
@@ -23,17 +23,25 @@ stdenv.mkDerivation rec {
};
patches = [
- (substituteAll {
- # Disable automatic download of dependencies
- src = ./build.xml.patch;
- inherit version;
- })
-
+ # Disable automatic download of dependencies
+ ./build.xml.patch
# Fix func.SolverAndProblemGeneratorTest test
./fix-failing-test.patch
];
postPatch = with deps; ''
+ # Fix the output jar timestamps for reproducibility
+ substituteInPlace build.xml \
+ --replace-fail ' build/classes/splitter-version.properties << EOF
+ svn.version=${version}
+ build.timestamp=unknown
+ EOF
+
+ # Put pre-fetched dependencies into the right place
mkdir -p lib/compile
cp ${fastutil} lib/compile/${fastutil.name}
cp ${osmpbf} lib/compile/${osmpbf.name}
@@ -52,32 +60,46 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ jdk ant makeWrapper ];
- buildPhase = "ant";
+ buildPhase = ''
+ runHook preBuild
+ ant
+ runHook postBuild
+ '';
inherit doCheck;
- checkPhase = "ant run.tests && ant run.func-tests";
+ checkPhase = ''
+ runHook preCheck
+ ant run.tests
+ ant run.func-tests
+ runHook postCheck
+ '';
installPhase = ''
+ runHook preInstall
+
install -Dm644 dist/splitter.jar -t $out/share/java/splitter
install -Dm644 doc/splitter.1 -t $out/share/man/man1
cp -r dist/lib/ $out/share/java/splitter/
makeWrapper ${jre}/bin/java $out/bin/splitter \
--add-flags "-jar $out/share/java/splitter/splitter.jar"
+
+ runHook postInstall
'';
passthru.updateScript = [ ../update.sh "mkgmap-splitter" meta.downloadPage ];
meta = with lib; {
description = "Utility for splitting OpenStreetMap maps into tiles";
- homepage = "https://www.mkgmap.org.uk/";
downloadPage = "https://www.mkgmap.org.uk/download/splitter.html";
- sourceProvenance = with sourceTypes; [
- fromSource
- binaryBytecode # deps
- ];
+ homepage = "https://www.mkgmap.org.uk/";
license = licenses.gpl2Only;
+ mainProgram = "splitter";
maintainers = with maintainers; [ sikmir ];
platforms = platforms.all;
+ sourceProvenance = with sourceTypes; [
+ fromSource
+ binaryBytecode # deps
+ ];
};
}