Subject: [bug#51531] [PATCH] gnu: wine: Update to 6.20.

From: Liliana Marie Prikler <[email-masked]>
Date: Sun, 31 Oct 2021 19:30:40 +0100

This patch updates the logic by which the “so_dir” is patched onto RPATH.
Unlike the old hack, this one affects all Unix libraries, so it might be a tad
bit overkill, but better be safe than sorry when it comes to stuff that'd
break in validate-runpaths.

* gnu/packages/wine.scm (wine): Update to 6.20.
[#:phases]: Replace ‘patch-makefile’ with ‘patch-makedep’.
(wine64): Likewise.
---
 gnu/packages/wine.scm | 30 ++++++++++++------------------
 1 file changed, 12 insertions(+), 18 deletions(-)

diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index 4361cccd8d..271b0a88fb 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -75,7 +75,7 @@ (define-module (gnu packages wine)
 (define-public wine
   (package
     (name "wine")
-    (version "6.16")
+    (version "6.20")
     (source
      (origin
        (method url-fetch)
@@ -87,7 +87,7 @@ (define-public wine
               (string-append "https://dl.winehq.org/wine/source/" dir
                              "wine-" version ".tar.xz")))
        (sha256
-        (base32 "1s7sz1rimax4kxij1ngkwnx4hcljwjq3q5gksz22k8cq1l2r4l39"))))
+        (base32 "0wc4a8slb3k859sdw9wwy92zc4pq7xw1kbq4frnxbzbvkiz26a20"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("bison" ,bison)
@@ -195,15 +195,12 @@ (define-public wine
                  (("(#define SONAME_.* )\"(.*)\"" _ defso soname)
                   (format #f "~a\"~a\"" defso (find-so soname))))
                #t)))
-         (add-after 'patch-generated-file-shebangs 'patch-makefile
+         (add-after 'patch-generated-file-shebangs 'patch-makedep
            (lambda* (#:key outputs #:allow-other-keys)
-             (invoke "make" "Makefile") ; Makefile is first regenerated
-             (substitute* "Makefile"
-               (("-lntdll" id)
-                (string-append id
-                               " -Wl,-rpath=" (assoc-ref outputs "out")
-                               "/lib/wine32/wine/$(ARCH)-unix")))
-             #t)))))
+             (substitute* "tools/makedep.c"
+               (("output_filenames\\( unix_libs \\);" all)
+                (string-append all
+                               "output ( \" -Wl,-rpath=%s \", so_dir );"))))))))
     (home-page "https://www.winehq.org/")
     (synopsis "Implementation of the Windows API (32-bit only)")
     (description
@@ -263,15 +260,12 @@ (define-public wine64
                       #t)))))
              (_
               `()))
-         (add-after 'patch-generated-file-shebangs 'patch-makefile
+         (add-after 'patch-generated-file-shebangs 'patch-makedep
            (lambda* (#:key outputs #:allow-other-keys)
-             (invoke "make" "Makefile") ; Makefile is first regenerated
-             (substitute* "Makefile"
-               (("-lntdll" id)
-                (string-append id
-                               " -Wl,-rpath=" (assoc-ref outputs "out")
-                               "/lib/wine64/wine/$(ARCH)-unix")))
-             #t))
+             (substitute* "tools/makedep.c"
+               (("output_filenames\\( unix_libs \\);" all)
+                (string-append all
+                               "output ( \" -Wl,-rpath=%s \", so_dir );")))))
          (add-after 'install 'copy-wine32-binaries
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((wine32 (assoc-ref %build-inputs "wine"))
-- 
2.33.1