Subject: [PATCH] gnu: wine64: Fix build.

From: Liliana Marie Prikler <[email-masked]>
Date: Sat, 31 Aug 2024 21:09:30 +0200

With the core-updates merge, the handling of modify-phases makes the current
ordering a hard error.  Make it so that phases are read from top to bottom.

* gnu/packages/wine.scm (wine64)[#:phases]: Move ‘copy-wine32-binaries’
and ‘copy-wine32-libraries’ before conditional ‘wrap-executable’.
<copy-wine32-manpage>: Use “.zst” instead of “.gz” as file ending.
---
 gnu/packages/wine.scm | 34 +++++++++++++++++-----------------
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index 35520ee03b..0e1195b6ed 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -256,6 +256,21 @@ (define-public wine64
         )
        ((#:phases phases)
         #~(modify-phases #$phases
+            (add-after 'install 'copy-wine32-binaries
+              (lambda* (#:key inputs outputs #:allow-other-keys)
+                (let ((out (assoc-ref %outputs "out")))
+                  ;; Copy the 32-bit binaries needed for WoW64.
+                  (copy-file (search-input-file inputs "/bin/wine")
+                             (string-append out "/bin/wine"))
+                  ;; Copy the real 32-bit wine-preloader instead of the wrapped
+                  ;; version.
+                  (copy-file (search-input-file inputs "/bin/.wine-preloader-real")
+                             (string-append out "/bin/wine-preloader")))))
+            (add-after 'install 'copy-wine32-libraries
+              (lambda* (#:key inputs outputs #:allow-other-keys)
+                (let* ((out (assoc-ref %outputs "out")))
+                  (copy-recursively (search-input-directory inputs "/lib/wine32")
+                                    (string-append out "/lib/wine32")))))
             ;; Explicitly set both the 64-bit and 32-bit versions of vulkan-loader
             ;; when installing to x86_64-linux so both are available.
             ;; TODO: Add more JSON files as they become available in Mesa.
@@ -281,27 +296,12 @@ (define-public wine64
                             `("VK_ICD_FILENAMES" ":" = ,icd-files)))))))
                  (_
                   `()))
-            (add-after 'install 'copy-wine32-binaries
-              (lambda* (#:key inputs outputs #:allow-other-keys)
-                (let ((out (assoc-ref %outputs "out")))
-                  ;; Copy the 32-bit binaries needed for WoW64.
-                  (copy-file (search-input-file inputs "/bin/wine")
-                             (string-append out "/bin/wine"))
-                  ;; Copy the real 32-bit wine-preloader instead of the wrapped
-                  ;; version.
-                  (copy-file (search-input-file inputs "/bin/.wine-preloader-real")
-                             (string-append out "/bin/wine-preloader")))))
-            (add-after 'install 'copy-wine32-libraries
-              (lambda* (#:key inputs outputs #:allow-other-keys)
-                (let* ((out (assoc-ref %outputs "out")))
-                  (copy-recursively (search-input-directory inputs "/lib/wine32")
-                                    (string-append out "/lib/wine32")))))
             (add-after 'compress-documentation 'copy-wine32-manpage
               (lambda* (#:key inputs outputs #:allow-other-keys)
                 (let* ((out (assoc-ref %outputs "out")))
                   ;; Copy the missing man file for the wine binary from wine.
-                  (copy-file (search-input-file inputs "/share/man/man1/wine.1.gz")
-                             (string-append out "/share/man/man1/wine.1.gz")))))))
+                  (copy-file (search-input-file inputs "/share/man/man1/wine.1.zst")
+                             (string-append out "/share/man/man1/wine.1.zst")))))))
        ((#:configure-flags configure-flags '())
         #~(cons "--enable-win64" #$configure-flags))))
     (synopsis "Implementation of the Windows API (WoW64 version)")

base-commit: 19e0b937857563e77841a4fc5433589fa98c810d
-- 
2.45.2