summary refs log tree commit diff
diff options
context:
space:
mode:
authorArtturi <Artturin@artturin.com>2021-10-25 13:13:22 +0300
committerGitHub <noreply@github.com>2021-10-25 13:13:22 +0300
commit44403b728b3869685fa8bceaa9e491f5b5ad5347 (patch)
tree0f3e4d1f627d831e5ec8cf50ab1d60a2e187cdd6
parentb0d580340086409e6181643a37d82d834a164bf2 (diff)
downloadnixpkgs-44403b728b3869685fa8bceaa9e491f5b5ad5347.tar
nixpkgs-44403b728b3869685fa8bceaa9e491f5b5ad5347.tar.gz
nixpkgs-44403b728b3869685fa8bceaa9e491f5b5ad5347.tar.bz2
nixpkgs-44403b728b3869685fa8bceaa9e491f5b5ad5347.tar.lz
nixpkgs-44403b728b3869685fa8bceaa9e491f5b5ad5347.tar.xz
nixpkgs-44403b728b3869685fa8bceaa9e491f5b5ad5347.tar.zst
nixpkgs-44403b728b3869685fa8bceaa9e491f5b5ad5347.zip
patchutils: add 0.4.2 variant + remove meta.executable + enable tests + fix inter-dependencies by wrapping (#141567)
-rw-r--r--pkgs/build-support/fetchpatch/tests.nix8
-rw-r--r--pkgs/tools/text/patchutils/0.4.2.nix8
-rw-r--r--pkgs/tools/text/patchutils/generic.nix28
-rw-r--r--pkgs/top-level/all-packages.nix7
4 files changed, 43 insertions, 8 deletions
diff --git a/pkgs/build-support/fetchpatch/tests.nix b/pkgs/build-support/fetchpatch/tests.nix
new file mode 100644
index 00000000000..4240b325d65
--- /dev/null
+++ b/pkgs/build-support/fetchpatch/tests.nix
@@ -0,0 +1,8 @@
+{ invalidateFetcherByDrvHash, fetchpatch, ... }:
+
+{
+  simple = invalidateFetcherByDrvHash fetchpatch {
+    url = "https://github.com/facebook/zstd/pull/2724/commits/e1f85dbca3a0ed5ef06c8396912a0914db8dea6a.patch";
+    sha256 = "sha256-PuYAqnJWAE+L9bsroOnnBGJhERW8LHrGSLtIEkKU9vg=";
+  };
+}
diff --git a/pkgs/tools/text/patchutils/0.4.2.nix b/pkgs/tools/text/patchutils/0.4.2.nix
new file mode 100644
index 00000000000..1b2c0d6b1f3
--- /dev/null
+++ b/pkgs/tools/text/patchutils/0.4.2.nix
@@ -0,0 +1,8 @@
+{ callPackage, python3, ... } @ args:
+
+callPackage ./generic.nix (args // {
+  version = "0.4.2";
+  sha256 = "sha256-iHWwll/jPeYriQ9s15O+f6/kGk5VLtv2QfH+1eu/Re0=";
+  # for gitdiff
+  extraBuildInputs = [ python3 ];
+})
diff --git a/pkgs/tools/text/patchutils/generic.nix b/pkgs/tools/text/patchutils/generic.nix
index d3e9da242e2..923dd06d182 100644
--- a/pkgs/tools/text/patchutils/generic.nix
+++ b/pkgs/tools/text/patchutils/generic.nix
@@ -1,5 +1,5 @@
-{ lib, stdenv, fetchurl, perl
-, version, sha256, patches ? []
+{ lib, stdenv, fetchurl, perl, makeWrapper
+, version, sha256, patches ? [], extraBuildInputs ? []
 , ...
 }:
 stdenv.mkDerivation rec {
@@ -11,18 +11,32 @@ stdenv.mkDerivation rec {
     inherit sha256;
   };
 
-  buildInputs = [ perl ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ perl ] ++ extraBuildInputs;
   hardeningDisable = [ "format" ];
 
-  doCheck = false; # fails
+  postInstall = ''
+    for bin in $out/bin/{splitdiff,rediff,editdiff,dehtmldiff}; do
+      wrapProgram "$bin" \
+        --prefix PATH : "$out/bin"
+    done
+  '';
+
+  doCheck = lib.versionAtLeast version "0.3.4";
+
+  preCheck = ''
+    patchShebangs tests
+    chmod +x scripts/*
+  '' + lib.optionalString (lib.versionOlder version "0.4.2") ''
+    find tests -type f -name 'run-test' \
+      -exec sed -i '{}' -e 's|/bin/echo|echo|g' \;
+  '';
 
   meta = with lib; {
     description = "Tools to manipulate patch files";
     homepage = "http://cyberelk.net/tim/software/patchutils";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
-    executables = [ "combinediff" "dehtmldiff" "editdiff" "espdiff"
-      "filterdiff" "fixcvsdiff" "flipdiff" "grepdiff" "interdiff" "lsdiff"
-      "recountdiff" "rediff" "splitdiff" "unwrapdiff" ];
+    maintainers = with maintainers; [ artturin ];
   };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index eac377f9aa2..b83938c39ff 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -507,7 +507,10 @@ with pkgs;
 
   mht2htm = callPackage ../tools/misc/mht2htm { };
 
-  fetchpatch = callPackage ../build-support/fetchpatch { };
+  fetchpatch = callPackage ../build-support/fetchpatch { }
+    // {
+      tests = callPackages ../build-support/fetchpatch/tests.nix { };
+    };
 
   fetchs3 = callPackage ../build-support/fetchs3 { };
 
@@ -8296,6 +8299,8 @@ with pkgs;
 
   patchutils_0_3_3 = callPackage ../tools/text/patchutils/0.3.3.nix { };
 
+  patchutils_0_4_2 = callPackage ../tools/text/patchutils/0.4.2.nix { };
+
   parted = callPackage ../tools/misc/parted { };
 
   passh = callPackage ../tools/networking/passh { };