summary refs log tree commit diff
diff options
context:
space:
mode:
authorHilton Chain <hako@ultrarare.space>2024-09-29 09:32:39 +0800
committerLudovic Courtès <ludo@gnu.org>2024-10-07 12:51:23 +0200
commit66db4f5c5751afa7c3471079136c6be1ae1e947b (patch)
tree3a64c8fc6f8f5591ca58cccb6a5252353d754b7e
parent516c63ef8cd2f3e0b3b88cc4bc0b22918ffe22d5 (diff)
downloadguix-66db4f5c5751afa7c3471079136c6be1ae1e947b.tar.gz
gnu: Add patchelf-0.16.
* gnu/packages/elf.scm (patchelf-0.16): New variable.

Change-Id: Ide4c547734156ffe909a6d010974a7450aaa45cd
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r--gnu/packages/elf.scm27
1 files changed, 27 insertions, 0 deletions
diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm
index dc2db83632..119f8d13dd 100644
--- a/gnu/packages/elf.scm
+++ b/gnu/packages/elf.scm
@@ -28,6 +28,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages elf)
+  #:use-module (guix gexp)
   #:use-module (guix utils)
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -320,6 +321,32 @@ static analysis of the ELF binaries at hand.")
 changed.")
     (license gpl3+)))
 
+;; Newer patchelf may break binaries.  e.g. When setting RUNPATH for a Go
+;; program.
+;; See also: https://github.com/NixOS/patchelf/issues/482
+(define-public patchelf-0.16
+  (package
+    (inherit patchelf)
+    (name "patchelf")
+    (version "0.16.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/NixOS/patchelf/releases/download/"
+                    version
+                    "/patchelf-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "0zdby3gpmm8q4735pviaq92zj41i2rdnhwhyrsb3sinc9hzmz4db"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments patchelf)
+       ((#:phases phases '%standard-phases)
+        #~(modify-phases #$phases
+            (add-after 'fix-tests 'skip-empty-rpath-test
+              (lambda _
+                (substitute* "tests/set-empty-rpath.sh"
+                  (("^\\$\\{SCRATCH\\}\\/simple.$") ""))))))))))
+
 (define-public libdwarf
   (package
     (name "libdwarf")