diff --git a/goredo/default.nix b/goredo/default.nix index 3d66406..4c9d046 100644 --- a/goredo/default.nix +++ b/goredo/default.nix @@ -1,4 +1,5 @@ -{ buildGoModule, fetchurl, lib, zstd }: +{ buildGoModule, fetchurl, lib, zstd +, sharness, python3, perl }: buildGoModule rec { pname = "goredo"; @@ -9,16 +10,29 @@ buildGoModule rec { sha256 = "Wc+QIrkrsGA35KeI2UmYOUiyU78ItPQGCKpZO/vndxM="; }; - nativeBuildInputs = [ zstd ]; + patches = [ ./fix-tests.diff ]; + + nativeBuildInputs = [ zstd ] ++ lib.optionals doCheck [ python3 perl ]; + SHARNESS_TEST_SRCDIR = sharness + "/share/sharness"; vendorSha256 = null; subPackages = [ "." ]; - postPatch = "cd src"; + preBuild = "cd src"; + postBuild = '' + ( cd $GOPATH/bin; ./goredo -symlinks ) + cd .. + ''; + + doCheck = true; + checkPhase = '' + export PATH=$GOPATH/bin:$PATH + prove -f + ''; + postInstall = '' mkdir -p "$out/share/info" - cp ../goredo.info "$out/share/info" - ( cd $out/bin; ./goredo -symlinks ) + cp goredo.info "$out/share/info" ''; outputs = [ "out" "info" ]; diff --git a/goredo/fix-tests.diff b/goredo/fix-tests.diff new file mode 100644 index 0000000..dd75487 --- /dev/null +++ b/goredo/fix-tests.diff @@ -0,0 +1,36 @@ +diff -ur goredo-1.4.1/t/apenwarr/105-sympath/all.do goredo-1.4.1.new/t/apenwarr/105-sympath/all.do +--- goredo-1.4.1/t/apenwarr/105-sympath/all.do 2021-04-29 14:03:11.000000000 +0200 ++++ goredo-1.4.1.new/t/apenwarr/105-sympath/all.do 2021-05-10 15:04:46.912799930 +0200 +@@ -11,12 +11,13 @@ + ( + cd y/x/x/x/x/x + IFS=$(printf '\n') ++ _wd=$(env pwd) + redo-ifchange static x/x/x/static $PWD/static \ +- $(/bin/pwd)/static /etc/passwd ++ $_wd/static /etc/passwd + # goredo: that symlink path is not resolving even at OS level + # redo-ifchange $PWD/../static 2>/dev/null && exit 35 + redo-ifchange 1.dyn x/x/x/2.dyn $PWD/3.dyn \ +- $PWD/../4.dyn $(/bin/pwd)/5.dyn ++ $PWD/../4.dyn $_wd/5.dyn + ) + [ -e y/1.dyn ] || exit $((iter + 1)) + [ -e y/2.dyn ] || exit $((iter + 2)) +diff -ur goredo-1.4.1/t/apenwarr/clean.do goredo-1.4.1.new/t/apenwarr/clean.do +--- goredo-1.4.1/t/apenwarr/clean.do 2021-04-29 14:03:11.000000000 +0200 ++++ goredo-1.4.1.new/t/apenwarr/clean.do 2021-05-10 15:06:07.099591609 +0200 +@@ -1,3 +1,3 @@ +-/bin/ls [0-9s][0-9][0-9]*/clean.do | ++env ls [0-9s][0-9][0-9]*/clean.do | + sed 's/\.do$//' | + xargs redo +diff -ur goredo-1.4.1/t/redo-sh.tests/clean.do goredo-1.4.1.new/t/redo-sh.tests/clean.do +--- goredo-1.4.1/t/redo-sh.tests/clean.do 2021-04-29 14:03:11.000000000 +0200 ++++ goredo-1.4.1.new/t/redo-sh.tests/clean.do 2021-05-10 15:02:41.607562802 +0200 +@@ -1,4 +1,4 @@ + for f in * ; do + [ -d $f ] || continue +- find $f ! -name test -delete ++ find $f ! -name test -delete || true + done