Unverified Commit c2e4139f authored by Nikolay Korotkiy's avatar Nikolay Korotkiy Committed by GitHub
Browse files

Merge pull request #294708 from TomaSajt/mkgmap

mkgmap{,-splitter}: make deterministic add missing phase hook calls
parents ba6a8872 411bbcca
Loading
Loading
Loading
Loading
+1 −18
Original line number Diff line number Diff line
--- a/build.xml	(revision 4555)
+++ a/build.xml	(working copy)
@@ -222,13 +222,13 @@
 		<property name="svn.version.build" value="none"/>
 
 		<propertyfile file="${build.classes}/mkgmap-version.properties">
-			<entry key="svn.version" value="${svn.version.build}" />
-			<entry key="build.timestamp" value="${build.timestamp}" />
+			<entry key="svn.version" value="@version@" />
+			<entry key="build.timestamp" value="unknown" />
 		</propertyfile>
@@ -228,7 +228,7 @@
 	</target>
 
 	<!-- Compile the product itself (no tests). -->
@@ -35,12 +27,3 @@
 		<mkdir dir="tmp/report"/>
 		<junit printsummary="yes" failureproperty="junit.failure" forkmode="once">
 
@@ -351,7 +351,7 @@
 			ignoreerrors="true"/>
 	</target>
 
-	<target name="dist" depends="build, check-version, version-file"
+	<target name="dist" depends="build, version-file"
 					description="Make the distribution area">
 
 		<mkdir dir="${dist}"/>
+43 −18
Original line number Diff line number Diff line
{ 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;
    })
    ./build.xml.patch
    ./ignore-impure-test.patch
  ];

  postPatch = with deps; ''
    # Fix the output jar timestamps for reproducibility
    substituteInPlace build.xml \
        --replace-fail '<jar ' '<jar modificationtime="0" '

    # Manually create version properties file for reproducibility
    mkdir -p build/classes
    cat > 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 ''

    ${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";
    homepage = "https://www.mkgmap.org.uk/";
    license = licenses.gpl2Only;
    mainProgram = "mkgmap";
    maintainers = with maintainers; [ sikmir ];
    platforms = platforms.all;
    sourceProvenance = with sourceTypes; [
      fromSource
      binaryBytecode # deps
    ];
    license = licenses.gpl2Only;
    maintainers = with maintainers; [ sikmir ];
    platforms = platforms.all;
    mainProgram = "mkgmap";
  };

}
+20 −0
Original line number Diff line number Diff line
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();
 
+1 −17
Original line number Diff line number Diff line
--- a/build.xml	(revision 597)
+++ a/build.xml	(working copy)
@@ -207,12 +207,12 @@
 		<property name="svn.version.build" value="unknown"/>
 
 		<propertyfile file="${build.classes}/splitter-version.properties">
-			<entry key="svn.version" value="${svn.version.build}" />
-			<entry key="build.timestamp" value="${build.timestamp}" />
+			<entry key="svn.version" value="@version@" />
+			<entry key="build.timestamp" value="unknown" />
@@ -212,7 +212,7 @@
 		</propertyfile>
 	</target>
 
@@ -25,15 +18,6 @@
     <javac srcdir="${test}" destdir="${build.test-classes}" debug="yes" includeantruntime="false">
       <include name="**/*.java"/>
       <classpath refid="test.classpath"/>
@@ -261,7 +261,7 @@
 	  <fail if="junit.failure" message="Test failed.  See test-reports/index.html"/>
 	</target>
 
-  <target name="dist" depends="build, check-version, version-file" description="Make the distribution area">
+  <target name="dist" depends="build, version-file" description="Make the distribution area">
 
     <mkdir dir="${dist}"/>
     <mkdir dir="${dist}/doc/api"/>
@@ -324,7 +324,7 @@
 	</target>
 
+37 −15
Original line number Diff line number Diff line
{ 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;
    })

    ./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 '<jar ' '<jar modificationtime="0" '

    # Manually create version properties file for reproducibility
    mkdir -p build/classes
    cat > 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";
    homepage = "https://www.mkgmap.org.uk/";
    license = licenses.gpl2Only;
    mainProgram = "splitter";
    maintainers = with maintainers; [ sikmir ];
    platforms = platforms.all;
    sourceProvenance = with sourceTypes; [
      fromSource
      binaryBytecode # deps
    ];
    license = licenses.gpl2Only;
    maintainers = with maintainers; [ sikmir ];
    platforms = platforms.all;
  };
}