nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at devShellTools-shell 115 lines 2.8 kB view raw
1{ 2 lib, 3 stdenv, 4 fetchurl, 5 fetchsvn, 6 jdk, 7 jre, 8 ant, 9 makeWrapper, 10 stripJavaArchivesHook, 11 doCheck ? true, 12}: 13let 14 deps = import ../deps.nix { inherit fetchurl; }; 15 testInputs = import ./testinputs.nix { inherit fetchurl; }; 16in 17stdenv.mkDerivation rec { 18 pname = "splitter"; 19 version = "654"; 20 21 src = fetchsvn { 22 url = "https://svn.mkgmap.org.uk/mkgmap/splitter/trunk"; 23 rev = version; 24 sha256 = "sha256-y/pl8kIQ6fiF541ho72LMgJFWJdkUBqPToQGCGmmcfg="; 25 }; 26 27 patches = [ 28 # Disable automatic download of dependencies 29 ./build.xml.patch 30 # Fix func.SolverAndProblemGeneratorTest test 31 ./fix-failing-test.patch 32 ]; 33 34 postPatch = 35 with deps; 36 '' 37 # Manually create version properties file for reproducibility 38 mkdir -p build/classes 39 cat > build/classes/splitter-version.properties << EOF 40 svn.version=${version} 41 build.timestamp=unknown 42 EOF 43 44 # Put pre-fetched dependencies into the right place 45 mkdir -p lib/compile 46 cp ${fastutil} lib/compile/${fastutil.name} 47 cp ${osmpbf} lib/compile/${osmpbf.name} 48 cp ${protobuf} lib/compile/${protobuf.name} 49 cp ${xpp3} lib/compile/${xpp3.name} 50 '' 51 + lib.optionalString doCheck '' 52 mkdir -p lib/test 53 cp ${junit} lib/test/${junit.name} 54 cp ${hamcrest-core} lib/test/${hamcrest-core.name} 55 56 mkdir -p test/resources/in/osm 57 ${lib.concatMapStringsSep "\n" (res: '' 58 cp ${res} test/resources/in/${builtins.replaceStrings [ "__" ] [ "/" ] res.name} 59 '') testInputs} 60 ''; 61 62 nativeBuildInputs = [ 63 jdk 64 ant 65 makeWrapper 66 stripJavaArchivesHook 67 ]; 68 69 buildPhase = '' 70 runHook preBuild 71 ant 72 runHook postBuild 73 ''; 74 75 inherit doCheck; 76 77 checkPhase = '' 78 runHook preCheck 79 ant run.tests 80 ant run.func-tests 81 runHook postCheck 82 ''; 83 84 installPhase = '' 85 runHook preInstall 86 87 install -Dm644 dist/splitter.jar -t $out/share/java/splitter 88 install -Dm644 doc/splitter.1 -t $out/share/man/man1 89 cp -r dist/lib/ $out/share/java/splitter/ 90 makeWrapper ${jre}/bin/java $out/bin/splitter \ 91 --add-flags "-jar $out/share/java/splitter/splitter.jar" 92 93 runHook postInstall 94 ''; 95 96 passthru.updateScript = [ 97 ../update.sh 98 "mkgmap-splitter" 99 meta.downloadPage 100 ]; 101 102 meta = with lib; { 103 description = "Utility for splitting OpenStreetMap maps into tiles"; 104 downloadPage = "https://www.mkgmap.org.uk/download/splitter.html"; 105 homepage = "https://www.mkgmap.org.uk/"; 106 license = licenses.gpl2Only; 107 mainProgram = "splitter"; 108 maintainers = with maintainers; [ sikmir ]; 109 platforms = platforms.all; 110 sourceProvenance = with sourceTypes; [ 111 fromSource 112 binaryBytecode # deps 113 ]; 114 }; 115}