diff --git a/pkgs/by-name/zx/zxing/java-zxing.sh b/pkgs/by-name/zx/zxing/java-zxing.sh index bee3ac9e27a6..a5660621ea5e 100644 --- a/pkgs/by-name/zx/zxing/java-zxing.sh +++ b/pkgs/by-name/zx/zxing/java-zxing.sh @@ -1,3 +1,3 @@ #! /bin/sh -@jre@/bin/java -cp @out@/lib/java/core-@version@.jar:@out@/lib/java/javase-@version@.jar "$@" +@jre@/bin/java -cp @out@/lib/java/javase-@version@-jar-with-dependencies.jar "$@" diff --git a/pkgs/by-name/zx/zxing/package.nix b/pkgs/by-name/zx/zxing/package.nix index 937bf41036f3..3e961e814dc3 100644 --- a/pkgs/by-name/zx/zxing/package.nix +++ b/pkgs/by-name/zx/zxing/package.nix @@ -1,55 +1,55 @@ { lib, - stdenv, - fetchurl, + maven, + fetchFromGitHub, jre, }: -let +maven.buildMavenPackage rec { + pname = "zxing"; version = "3.5.4"; - # Maven builds are hard to get right - core_jar = fetchurl { - url = "https://repo1.maven.org/maven2/com/google/zxing/core/${version}/core-${version}.jar"; - hash = "sha256-cd5diTQbX89d2J2n9E6E2CXQ4ITN8+x3yaviaw8M6xM="; + inherit jre; + + src = fetchFromGitHub { + owner = "zxing"; + repo = "zxing"; + tag = "zxing-${version}"; + hash = "sha256-D+ZKfDa406RIaTRhH9yXxgP8EpGe0iQU9CqkOMC4UdE="; }; - javase_jar = fetchurl { - url = "https://repo1.maven.org/maven2/com/google/zxing/javase/${version}/javase-${version}.jar"; - hash = "sha256-GWaDH0c9cv93IFeEGasRP2QXqXI0oXENK8zGUPWuDBI="; - }; -in -stdenv.mkDerivation (finalAttrs: { - pname = "zxing"; - inherit version jre; + mvnHash = "sha256-wVkWbhi5b/rZ0EF5zlQr2BMVOm5nZ1DhI6SGksZO5Vg="; - dontUnpack = true; + sourceRoot = "${src.name}/javase"; + + mvnParameters = "-Dproject.build.outputTimestamp=1980-01-01T00:00:02Z compile assembly:single"; installPhase = '' runHook preInstall mkdir -p "$out/lib/java" "$out/bin" - cp "${core_jar}" "${javase_jar}" "$out/lib/java" - substituteAll "${./java-zxing.sh}" "$out/bin/java-zxing" - substituteAll "${./zxing-cmdline-runner.sh}" "$out/bin/zxing-cmdline-runner" - substituteAll "${./zxing-cmdline-encoder.sh}" "$out/bin/zxing-cmdline-encoder" - substituteAll "${./zxing.sh}" "$out/bin/zxing" - chmod a+x "$out/bin"/* - pushd "$out/lib/java" - for i in *.jar; do - mv "$i" "''${i#*-}" + cp "target/javase-${version}-jar-with-dependencies.jar" "$out/lib/java" + for source in "${./java-zxing.sh}" "${./zxing-cmdline-encoder.sh}" "${./zxing-cmdline-runner.sh}" "${./zxing-gui-runner.sh}" "${./zxing.sh}"; do + target="''${source#*-}" + target="$out/bin/''${target%.sh}" + substituteAll "$source" "$target" + chmod a+x "$target" done - popd runHook postInstall ''; meta = { + changelog = "https://github.com/zxing/zxing/releases/tag/zxing-${version}"; description = "1D and 2D code reading library"; - sourceProvenance = with lib.sourceTypes; [ binaryBytecode ]; + sourceProvenance = with lib.sourceTypes; [ + binaryBytecode + fromSource + ]; license = lib.licenses.asl20; + mainProgram = "zxing"; maintainers = [ lib.maintainers.raskin ]; platforms = lib.platforms.linux; homepage = "https://github.com/zxing/zxing"; }; -}) +} diff --git a/pkgs/by-name/zx/zxing/zxing-cmdline-encoder.sh b/pkgs/by-name/zx/zxing/zxing-cmdline-encoder.sh index a17ba49cecf0..29795971029b 100644 --- a/pkgs/by-name/zx/zxing/zxing-cmdline-encoder.sh +++ b/pkgs/by-name/zx/zxing/zxing-cmdline-encoder.sh @@ -1,3 +1,3 @@ #! /bin/sh -java-zxing com.google.zxing.client.j2se.CommandLineEncoder "$@" +@out@/bin/java-zxing com.google.zxing.client.j2se.CommandLineEncoder "$@" diff --git a/pkgs/by-name/zx/zxing/zxing-cmdline-runner.sh b/pkgs/by-name/zx/zxing/zxing-cmdline-runner.sh index cb2a25dc03f7..f2ec839e69c1 100644 --- a/pkgs/by-name/zx/zxing/zxing-cmdline-runner.sh +++ b/pkgs/by-name/zx/zxing/zxing-cmdline-runner.sh @@ -1,3 +1,3 @@ #! /bin/sh -java-zxing com.google.zxing.client.j2se.CommandLineRunner "$@" +@out@/bin/java-zxing com.google.zxing.client.j2se.CommandLineRunner "$@" diff --git a/pkgs/by-name/zx/zxing/zxing-gui-runner.sh b/pkgs/by-name/zx/zxing/zxing-gui-runner.sh new file mode 100644 index 000000000000..69b81b5f8991 --- /dev/null +++ b/pkgs/by-name/zx/zxing/zxing-gui-runner.sh @@ -0,0 +1,3 @@ +#! /bin/sh + +@out@/bin/java-zxing com.google.zxing.client.j2se.GUIRunner "$@" diff --git a/pkgs/by-name/zx/zxing/zxing.sh b/pkgs/by-name/zx/zxing/zxing.sh index a38558d87026..f5891cfdd874 100644 --- a/pkgs/by-name/zx/zxing/zxing.sh +++ b/pkgs/by-name/zx/zxing/zxing.sh @@ -1,18 +1,21 @@ #! /bin/sh choice="$1"; -shift +[ "$#" = "0" ] || shift; case "$choice" in encode | create | write | CommandLineEncoder) - zxing-cmdline-encoder "$@"; + @out@/bin/zxing-cmdline-encoder "$@"; ;; decode | read | run | CommandLineRunner) - zxing-cmdline-runner "$@"; + @out@/bin/zxing-cmdline-runner "$@"; + ;; + gui | GUIRunner) + @out@/bin/zxing-gui-runner "$@"; ;; help | usage | --help | --usage | -h) - zxing read; - zxing write; + @out@/bin/zxing read --help; + @out@/bin/zxing write --help; ;; *) - zxing read "$choice" "$@" + @out@/bin/zxing read "$choice" "$@"; ;; esac