Unverified Commit d537904b authored by 7c6f434c's avatar 7c6f434c Committed by GitHub
Browse files

zxing: various fixes and improvements (#472926)

parents ee06e8c3 77ac9c63
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
#! /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 "$@"
+28 −28
Original line number Diff line number Diff line
{
  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;

  javase_jar = fetchurl {
    url = "https://repo1.maven.org/maven2/com/google/zxing/javase/${version}/javase-${version}.jar";
    hash = "sha256-GWaDH0c9cv93IFeEGasRP2QXqXI0oXENK8zGUPWuDBI=";
  src = fetchFromGitHub {
    owner = "zxing";
    repo = "zxing";
    tag = "zxing-${version}";
    hash = "sha256-D+ZKfDa406RIaTRhH9yXxgP8EpGe0iQU9CqkOMC4UdE=";
  };
in
stdenv.mkDerivation (finalAttrs: {
  pname = "zxing";
  inherit version jre;

  dontUnpack = true;
  mvnHash = "sha256-wVkWbhi5b/rZ0EF5zlQr2BMVOm5nZ1DhI6SGksZO5Vg=";

  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";
  };
})
}
+1 −1
Original line number Diff line number Diff line
#! /bin/sh

java-zxing com.google.zxing.client.j2se.CommandLineEncoder "$@"
@out@/bin/java-zxing com.google.zxing.client.j2se.CommandLineEncoder "$@"
+1 −1
Original line number Diff line number Diff line
#! /bin/sh

java-zxing com.google.zxing.client.j2se.CommandLineRunner "$@"
@out@/bin/java-zxing com.google.zxing.client.j2se.CommandLineRunner "$@"
+3 −0
Original line number Diff line number Diff line
#! /bin/sh

@out@/bin/java-zxing com.google.zxing.client.j2se.GUIRunner "$@"
Loading