[PATCH 0/4] Update wine and wine-staging to 7.8

  • Done
  • quality assurance status badge
Details
4 participants
  • Liliana Marie Prikler
  • Liliana Marie Prikler
  • Ludovic Courtès
  • pelzflorian (Florian Pelz)
Owner
unassigned
Submitted by
Liliana Marie Prikler
Severity
normal
L
L
Liliana Marie Prikler wrote on 7 May 2022 17:46
[PATCH 0/4] *** SUBJECT HERE ***
(address . guix-patches@gnu.org)
f9d007eb923c97c8c0de42bbba8ba0d3a5ae47ed.camel@gmail.com
*** BLURB HERE ***

Liliana Marie Prikler (4):
gnu: wine: Update to 7.8.
gnu: wine: Use new package style.
gnu: wine64: Use new package style.
gnu: wine-staging: Update to 7.8.

gnu/packages/wine.scm | 530 ++++++++++++++++--------------------------
1 file changed, 202 insertions(+), 328 deletions(-)

--
2.36.0
L
L
Liliana Marie Prikler wrote on 7 May 2022 17:46
[PATCH 0/4] Update wine and wine-staging to 7.8
(address . 55302@debbugs.gnu.org)
845c131ae30134223f213a4dd65a25f79baebc9c.camel@gmail.com
Hi Guix,

(sorry for the empty mail, forgot to save the Emacs buffer before sending)

Tobias noted “yesterday” in IRC that the wine-staging package was broken
and https://issues.guix.gnu.org/54257 for the issue), and also that
wine itself was out of date. Since wine was bumped to 7.8 upstream,
I decided to update both.

Both wine64 and wine64-staging as well as all the intermediate packages
build for me on x86_64 with the following patches, but I did not do any
runtime testing yet. So while I and others run their blessed test
suites of questionable exes, have fun with those patches :)

Cheers

Liliana Marie Prikler (4):
gnu: wine: Update to 7.8.
gnu: wine: Use new package style.
gnu: wine64: Use new package style.
gnu: wine-staging: Update to 7.8.

gnu/packages/wine.scm | 530 ++++++++++++++++--------------------------
1 file changed, 202 insertions(+), 328 deletions(-)

--
2.36.0
L
L
Liliana Marie Prikler wrote on 7 May 2022 11:46
[PATCH 1/4] gnu: wine: Update to 7.8.
(address . 55302@debbugs.gnu.org)
cb8922add8bef0d07c2e73d8118bc8c345820e99.camel@gmail.com
* gnu/packages/wine.scm (wine): Update to 7.8.
---
gnu/packages/wine.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (24 lines)
diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index 7ca2b9d0c7..5d8e9f5b90 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -74,7 +74,7 @@ (define-module (gnu packages wine)
(define-public wine
(package
(name "wine")
- (version "7.0")
+ (version "7.8")
(source
(origin
(method url-fetch)
@@ -86,7 +86,7 @@ (define-public wine
(string-append "https://dl.winehq.org/wine/source/" dir
"wine-" version ".tar.xz")))
(sha256
- (base32 "0sq8vsr8jf1a8fanh76rq7vyxm8h0cc4ckirjy7v2p08biyy4hsv"))))
+ (base32 "1f0r00b6lk59cmpj42b7f2jrd58d7vxfvpp54j7arwjhdg4yjxlg"))))
(build-system gnu-build-system)
(native-inputs
`(("bison" ,bison)
--
2.36.0
L
L
Liliana Marie Prikler wrote on 7 May 2022 17:36
[PATCH 2/4] gnu: wine: Use new package style.
(address . 55302@debbugs.gnu.org)
dc83124706abb4f70ae22b3277594c4901cbd57e.camel@gmail.com
* gnu/packages/wine.scm (wine)[inputs, native-inputs]: Drop labels.
[arguments]: Convert to list of G-Expressions.
<#:configure-flags,#:make-flags>: Replace ‘%output’ with ‘#$output’.
<#:phases>: Use ‘search-input-file’ instead of input labels.
---
gnu/packages/wine.scm | 187 +++++++++++++++++++++---------------------
1 file changed, 92 insertions(+), 95 deletions(-)

Toggle diff (231 lines)
diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index 5d8e9f5b90..eb71a8caa8 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -6,6 +6,7 @@
;;; Copyright © 2017, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2022 Liliana Marie Prikler <liliana.prikler@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -25,6 +26,7 @@
(define-module (gnu packages wine)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
+ #:use-module (guix gexp)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix utils)
@@ -89,118 +91,113 @@ (define-public wine
(base32 "1f0r00b6lk59cmpj42b7f2jrd58d7vxfvpp54j7arwjhdg4yjxlg"))))
(build-system gnu-build-system)
(native-inputs
- `(("bison" ,bison)
- ("flex" ,flex)
- ("gettext" ,gettext-minimal)
- ("perl" ,perl)
- ("pkg-config" ,pkg-config)))
+ (list bison flex gettext-minimal perl pkg-config))
(inputs
;; Some libraries like libjpeg are now compiled into native PE objects.
;; The ELF objects provided by Guix packages are of no use. Whilst this
;; is technically bundling, it's quite defensible. It might be possible
;; to build some of these from Guix PACKAGE-SOURCE but attempts were not
;; fruitful so far. See <https://www.winehq.org/announce/7.0>.
- `(("alsa-lib" ,alsa-lib)
- ("dbus" ,dbus)
- ("cups" ,cups)
- ("eudev" ,eudev)
- ("fontconfig" ,fontconfig)
- ("freetype" ,freetype)
- ("gnutls" ,gnutls)
- ("gst-plugins-base" ,gst-plugins-base)
- ("libgphoto2" ,libgphoto2)
- ("libldap" ,openldap)
- ("libnetapi" ,samba)
- ("libsane" ,sane-backends)
- ("libpcap" ,libpcap)
- ("libusb" ,libusb)
- ("libICE" ,libice)
- ("libX11" ,libx11)
- ("libXi" ,libxi)
- ("libXext" ,libxext)
- ("libXcursor" ,libxcursor)
- ("libXrender" ,libxrender)
- ("libXrandr" ,libxrandr)
- ("libXinerama" ,libxinerama)
- ("libXxf86vm" ,libxxf86vm)
- ("libXcomposite" ,libxcomposite)
- ("mit-krb5" ,mit-krb5)
- ("openal" ,openal)
- ("pulseaudio" ,pulseaudio)
- ("sdl2" ,sdl2)
- ("unixodbc" ,unixodbc)
- ("v4l-utils" ,v4l-utils)
- ("vkd3d" ,vkd3d)
- ("vulkan-loader" ,vulkan-loader)))
+ (list alsa-lib
+ cups
+ dbus
+ eudev
+ fontconfig
+ freetype
+ gnutls
+ gst-plugins-base
+ libgphoto2
+ openldap
+ samba
+ sane-backends
+ libpcap
+ libusb
+ libice
+ libx11
+ libxi
+ libxext
+ libxcursor
+ libxrender
+ libxrandr
+ libxinerama
+ libxxf86vm
+ libxcomposite
+ mit-krb5
+ openal
+ pulseaudio
+ sdl2
+ unixodbc
+ v4l-utils
+ vkd3d
+ vulkan-loader))
(arguments
- `(;; Force a 32-bit build targeting a similar architecture, i.e.:
- ;; armhf for armhf/aarch64, i686 for i686/x86_64.
- #:system ,@(match (%current-system)
- ((or "armhf-linux" "aarch64-linux")
- `("armhf-linux"))
- (_
- `("i686-linux")))
+ (list
+ ;; Force a 32-bit build targeting a similar architecture, i.e.:
+ ;; armhf for armhf/aarch64, i686 for i686/x86_64.
+ #:system (match (%current-system)
+ ((or "armhf-linux" "aarch64-linux") "armhf-linux")
+ (_ "i686-linux"))
;; XXX: There's a test suite, but it's unclear whether it's supposed to
;; pass.
#:tests? #f
#:configure-flags
- (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib/wine32"))
+ #~(list (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib/wine32"))
#:make-flags
- (list "SHELL=bash"
- (string-append "libdir=" %output "/lib/wine32"))
+ #~(list "SHELL=bash"
+ (string-append "libdir=" #$output "/lib/wine32"))
#:phases
- (modify-phases %standard-phases
- ;; Explicitly set the 32-bit version of vulkan-loader when installing
- ;; to i686-linux or x86_64-linux.
- ;; TODO: Add more JSON files as they become available in Mesa.
- ,@(match (%current-system)
- ((or "i686-linux" "x86_64-linux")
- `((add-after 'install 'wrap-executable
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (icd (string-append out "/share/vulkan/icd.d")))
- (mkdir-p icd)
- (copy-file (string-append
- (assoc-ref inputs "mesa")
- "/share/vulkan/icd.d/radeon_icd.i686.json")
- (string-append icd "/radeon_icd.i686.json"))
- (copy-file (string-append
- (assoc-ref inputs "mesa")
- "/share/vulkan/icd.d/intel_icd.i686.json")
- (string-append icd "/intel_icd.i686.json"))
- (wrap-program (string-append out "/bin/wine-preloader")
- `("VK_ICD_FILENAMES" ":" =
- (,(string-append icd
- "/radeon_icd.i686.json" ":"
- icd "/intel_icd.i686.json")))))))))
- (_
- `()))
- (add-after 'unpack 'patch-SHELL
- (lambda _
- (substitute* "configure"
- ;; configure first respects CONFIG_SHELL, clobbers SHELL later.
- (("/bin/sh")
- (which "bash")))))
- (add-after 'configure 'patch-dlopen-paths
- ;; Hardcode dlopened sonames to absolute paths.
- (lambda _
- (let* ((library-path (search-path-as-string->list
- (getenv "LIBRARY_PATH")))
- (find-so (lambda (soname)
- (search-path library-path soname))))
- (substitute* "include/config.h"
- (("(#define SONAME_.* )\"(.*)\"" _ defso soname)
- (format #f "~a\"~a\"" defso (find-so soname)))))))
- (add-after 'patch-generated-file-shebangs 'patch-makedep
- (lambda* (#:key outputs #:allow-other-keys)
- (substitute* "tools/makedep.c"
- (("output_filenames\\( unix_libs \\);" all)
- (string-append all
- "output ( \" -Wl,-rpath=%s \", so_dir );"))))))))
+ #~(modify-phases %standard-phases
+ ;; Explicitly set the 32-bit version of vulkan-loader when installing
+ ;; to i686-linux or x86_64-linux.
+ ;; TODO: Add more JSON files as they become available in Mesa.
+ #$@(match (%current-system)
+ ((or "i686-linux" "x86_64-linux")
+ `((add-after 'install 'wrap-executable
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (icd (string-append out "/share/vulkan/icd.d")))
+ (mkdir-p icd)
+ (copy-file (search-input-file
+ inputs
+ "/share/vulkan/icd.d/radeon_icd.i686.json")
+ (string-append icd "/radeon_icd.i686.json"))
+ (copy-file (search-input-file
+ inputs
+ "/share/vulkan/icd.d/intel_icd.i686.json")
+ (string-append icd "/intel_icd.i686.json"))
+ (wrap-program (string-append out "/bin/wine-preloader")
+ `("VK_ICD_FILENAMES" ":" =
+ (,(string-append icd
+ "/radeon_icd.i686.json" ":"
+ icd "/intel_icd.i686.json")))))))))
+ (_
+ `()))
+ (add-after 'unpack 'patch-SHELL
+ (lambda _
+ (substitute* "configure"
+ ;; configure first respects CONFIG_SHELL, clobbers SHELL later.
+ (("/bin/sh")
+ (which "bash")))))
+ (add-after 'configure 'patch-dlopen-paths
+ ;; Hardcode dlopened sonames to absolute paths.
+ (lambda _
+ (let* ((library-path (search-path-as-string->list
+ (getenv "LIBRARY_PATH")))
+ (find-so (lambda (soname)
+ (search-path library-path soname))))
+ (substitute* "include/config.h"
+ (("(#define SONAME_.* )\"(.*)\"" _ defso soname)
+ (format #f "~a\"~a\"" defso (find-so soname)))))))
+ (add-after 'patch-generated-file-shebangs 'patch-makedep
+ (lambda* (#:key outputs #:allow-other-keys)
+ (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
--
2.36.0
L
L
Liliana Marie Prikler wrote on 7 May 2022 17:39
[PATCH 3/4] gnu: wine64: Use new package style.
(address . 55302@debbugs.gnu.org)
e40f762aaa9a1145910e708415ac6d967ff6b1cf.camel@gmail.com
* gnu/packages/wine.scm (wine64)[arguments]: Convert to list of G-Expessions.
<#:configure-flags,#:make-flags>: Use ‘#$output’ instead of ‘%output’.
<#:phases>: Replace labels with search-input-file.
---
gnu/packages/wine.scm | 169 ++++++++++++++++++++----------------------
1 file changed, 79 insertions(+), 90 deletions(-)

Toggle diff (182 lines)
diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index eb71a8caa8..1ab9153f84 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -219,96 +219,85 @@ (define-public wine64
(inputs (modify-inputs (package-inputs wine)
(prepend wine)))
(arguments
- `(#:make-flags
- (list "SHELL=bash"
- (string-append "libdir=" %output "/lib/wine64"))
- #:phases
- (modify-phases %standard-phases
- ;; 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.
- ,@(match (%current-system)
- ((or "x86_64-linux")
- `((add-after 'copy-wine32-binaries 'wrap-executable
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out")))
- (wrap-program (string-append out "/bin/wine-preloader")
- `("VK_ICD_FILENAMES" ":" =
- (,(string-append
- (assoc-ref inputs "mesa")
- "/share/vulkan/icd.d/radeon_icd.x86_64.json" ":"
- (assoc-ref inputs "mesa")
- "/share/vulkan/icd.d/intel_icd.x86_64.json" ":"
- (assoc-ref inputs "wine")
- "/share/vulkan/icd.d/radeon_icd.i686.json" ":"
- (assoc-ref inputs "wine")
- "/share/vulkan/icd.d/intel_icd.i686.json"))))
- (wrap-program (string-append out "/bin/wine64-preloader")
- `("VK_ICD_FILENAMES" ":" =
- (,(string-append
- (assoc-ref inputs "mesa")
- "/share/vulkan/icd.d/radeon_icd.x86_64.json"
- ":" (assoc-ref inputs "mesa")
- "/share/vulkan/icd.d/intel_icd.x86_64.json"
- ":" (assoc-ref inputs "wine")
- "/share/vulkan/icd.d/radeon_icd.i686.json"
- ":" (assoc-ref inputs "wine")
- "/share/vulkan/icd.d/intel_icd.i686.json"))))
- #t)))))
- (_
- `()))
- (add-after 'unpack 'patch-SHELL
- (lambda _
- (substitute* "configure"
- ;; configure first respects CONFIG_SHELL, clobbers SHELL later.
- (("/bin/sh")
- (which "bash")))))
- (add-after 'patch-generated-file-shebangs 'patch-makedep
- (lambda* (#:key outputs #:allow-other-keys)
- (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"))
- (out (assoc-ref %outputs "out")))
- ;; Copy the 32-bit binaries needed for WoW64.
- (copy-file (string-append wine32 "/bin/wine")
- (string-append out "/bin/wine"))
- ;; Copy the real 32-bit wine-preloader instead of the wrapped
- ;; version.
- (copy-file (string-append wine32 "/bin/.wine-preloader-real")
- (string-append out "/bin/wine-preloader")))))
- (add-after 'install 'copy-wine32-libraries
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((wine32 (assoc-ref %build-inputs "wine"))
- (out (assoc-ref %outputs "out")))
- (copy-recursively (string-append wine32 "/lib/wine32")
- (string-append out "/lib/wine32")))))
- (add-after 'compress-documentation 'copy-wine32-manpage
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((wine32 (assoc-ref %build-inputs "wine"))
- (out (assoc-ref %outputs "out")))
- ;; Copy the missing man file for the wine binary from wine.
- (copy-file (string-append wine32 "/share/man/man1/wine.1.gz")
- (string-append out "/share/man/man1/wine.1.gz")))))
- (add-after 'configure 'patch-dlopen-paths
- ;; Hardcode dlopened sonames to absolute paths.
- (lambda _
- (let* ((library-path (search-path-as-string->list
- (getenv "LIBRARY_PATH")))
- (find-so (lambda (soname)
- (search-path library-path soname))))
- (substitute* "include/config.h"
- (("(#define SONAME_.* )\"(.*)\"" _ defso soname)
- (format #f "~a\"~a\"" defso (find-so soname))))))))
- #:configure-flags
- (list "--enable-win64"
- (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib/wine64"))
- ,@(strip-keyword-arguments '(#:configure-flags #:make-flags #:phases
- #:system)
- (package-arguments wine))))
+ (cons*
+ #:make-flags
+ #~(list "SHELL=bash"
+ (string-append "libdir=" #$output "/lib/wine64"))
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; 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.
+ #$@(match (%current-system)
+ ((or "x86_64-linux")
+ `((add-after 'copy-wine32-binaries 'wrap-executable
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (icd-files (map
+ (lambda (basename)
+ (search-input-file
+ inputs
+ (string-append "/share/vulkan/icd.d/"
+ basename)))
+ '("radeon_icd.x86_64.json"
+ "intel_icd.x86_64.json"
+ "radeon_icd.i686.json"
+ "intel_icd.i686.json"))))
+ (wrap-program (string-append out "/bin/wine-preloader")
+ `("VK_ICD_FILENAMES" ":" = ,icd-files))
+ (wrap-program (string-append out "/bin/wine64-preloader")
+ `("VK_ICD_FILENAMES" ":" = ,icd-files)))))))
+ (_
+ `()))
+ (add-after 'unpack 'patch-SHELL
+ (lambda _
+ (substitute* "configure"
+ ;; configure first respects CONFIG_SHELL, clobbers SHELL later.
+ (("/bin/sh")
+ (which "bash")))))
+ (add-after 'patch-generated-file-shebangs 'patch-makedep
+ (lambda* (#:key outputs #:allow-other-keys)
+ (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 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")))))
+ (add-after 'configure 'patch-dlopen-paths
+ ;; Hardcode dlopened sonames to absolute paths.
+ (lambda _
+ (let* ((library-path (search-path-as-string->list
+ (getenv "LIBRARY_PATH")))
+ (find-so (lambda (soname)
+ (search-path library-path soname))))
+ (substitute* "include/config.h"
+ (("(#define SONAME_.* )\"(.*)\"" _ defso soname)
+ (format #f "~a\"~a\"" defso (find-so soname))))))))
+ #:configure-flags
+ #~(list "--enable-win64"
+ (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib/wine64"))
+ (strip-keyword-arguments '(#:configure-flags #:make-flags #:phases
+ #:system)
+ (package-arguments wine))))
(synopsis "Implementation of the Windows API (WoW64 version)")
(supported-systems '("x86_64-linux" "aarch64-linux"))))
--
2.36.0
L
L
Liliana Marie Prikler wrote on 7 May 2022 11:47
[PATCH 4/4] gnu: wine-staging: Update to 7.8.
(address . 55302@debbugs.gnu.org)
7d524bedc294858d9a6c3f84069482d1b8f2fd1f.camel@gmail.com
* gnu/packages/wine.scm (wine-staging-patchset-data): Update to 7.8.
(wine-staging, wine64-staging)[arguments]: Reuse arguments from wine and
wine64 respectively via substitute-keyword-arguments.
<#:phases>: Rename ‘patch-source-wine-staging’ to
‘apply-wine-staging-patches’.
Reorder, so that ‘patch-SHELL’ is applied afterwards.
Drop trailing #t.
---
gnu/packages/wine.scm | 170 +++++++-----------------------------------
1 file changed, 29 insertions(+), 141 deletions(-)

Toggle diff (211 lines)
diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index 1ab9153f84..231366c5de 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -339,7 +339,7 @@ (define-public wine-minimal
(define-public wine-staging-patchset-data
(package
(name "wine-staging-patchset-data")
- (version "6.6")
+ (version "7.8")
(source
(origin
(method git-fetch)
@@ -348,7 +348,7 @@ (define-public wine-staging-patchset-data
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0d5m9pvafr0iw99ny7rgzfmw7zw45q5wfcw68zj88mvzs47xkgms"))))
+ (base32 "02rgpymhqrdr3aamvv6yvpgh82rj1n4adr36mi26cs3zbkx8zb55"))))
(build-system trivial-build-system)
(native-inputs
(list bash coreutils))
@@ -398,7 +398,7 @@ (define-public wine-staging
"wine-" wine-version ".tar.xz"))
(file-name (string-append name "-" wine-version ".tar.xz"))
(sha256
- (base32 "1bc4zmqpdqs1ncz3qisp8a313pqzi5a31gq1s99ivb60vk325rcr")))))
+ (base32 "1f0r00b6lk59cmpj42b7f2jrd58d7vxfvpp54j7arwjhdg4yjxlg")))))
(inputs (modify-inputs (package-inputs wine)
(prepend autoconf ; for autoreconf
ffmpeg
@@ -409,54 +409,19 @@ (define-public wine-staging
util-linux ; for hexdump
wine-staging-patchset-data)))
(arguments
- `(#:phases
- (modify-phases %standard-phases
- ;; Explicitly set the 32-bit version of vulkan-loader when installing
- ;; to i686-linux or x86_64-linux.
- ;; TODO: Add more JSON files as they become available in Mesa.
- ,@(match (%current-system)
- ((or "i686-linux" "x86_64-linux")
- `((add-after 'install 'wrap-executable
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (icd (string-append out "/share/vulkan/icd.d")))
- (mkdir-p icd)
- (copy-file (search-input-file inputs
- "/share/vulkan/icd.d/radeon_icd.i686.json")
- (string-append icd "/radeon_icd.i686.json"))
- (copy-file (search-input-file inputs
- "/share/vulkan/icd.d/intel_icd.i686.json")
- (string-append icd "/intel_icd.i686.json"))
- (wrap-program (string-append out "/bin/wine-preloader")
- `("VK_ICD_FILENAMES" ":" =
- (,(string-append icd
- "/radeon_icd.i686.json" ":"
- icd "/intel_icd.i686.json"))))
- #t)))))
- (_
- `())
- )
- (add-before 'configure 'patch-source-wine-staging
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((source (assoc-ref %build-inputs "source"))
- (script (string-append (assoc-ref %build-inputs
- "wine-staging-patchset-data")
- "/share/wine-staging/patches/patchinstall.sh")))
- (invoke script (string-append "DESTDIR=" ".") "--all")
- #t)))
- (add-after 'configure 'patch-dlopen-paths
- ;; Hardcode dlopened sonames to absolute paths.
- (lambda _
- (let* ((library-path (search-path-as-string->list
- (getenv "LIBRARY_PATH")))
- (find-so (lambda (soname)
- (search-path library-path soname))))
- (substitute* "include/config.h"
- (("(#define SONAME_.* )\"(.*)\"" _ defso soname)
- (format #f "~a\"~a\"" defso (find-so soname))))
- #t))))
- ,@(strip-keyword-arguments '(#:phases)
- (package-arguments wine))))
+ (substitute-keyword-arguments (package-arguments wine)
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (delete 'patch-SHELL)
+ (add-before 'configure 'apply-wine-staging-patches
+ (lambda* (#:key inputs #:allow-other-keys)
+ (invoke (search-input-file
+ inputs
+ "/share/wine-staging/patches/patchinstall.sh")
+ "DESTDIR=."
+ "--all")))
+ (add-after 'apply-wine-staging-patches 'patch-SHELL
+ (assoc-ref #$phases 'patch-SHELL))))))
(synopsis "Implementation of the Windows API (staging branch, 32-bit only)")
(description "Wine-Staging is the testing area of Wine. It
contains bug fixes and features, which have not been integrated into
@@ -479,96 +444,19 @@ (define-public wine64-staging
(inputs (modify-inputs (package-inputs wine-staging)
(prepend wine-staging)))
(arguments
- `(#:make-flags
- (list "SHELL=bash"
- (string-append "libdir=" %output "/lib/wine64"))
- #:phases
- (modify-phases %standard-phases
- ;; 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.
- ,@(match (%current-system)
- ((or "x86_64-linux")
- `((add-after 'copy-wine32-binaries 'wrap-executable
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out")))
- (wrap-program (string-append out "/bin/wine-preloader")
- `("VK_ICD_FILENAMES" ":" =
- (,(string-append (assoc-ref inputs "mesa")
- "/share/vulkan/icd.d/radeon_icd.x86_64.json" ":"
- (assoc-ref inputs "mesa")
- "/share/vulkan/icd.d/intel_icd.x86_64.json" ":"
- (assoc-ref inputs "wine-staging")
- "/share/vulkan/icd.d/radeon_icd.i686.json" ":"
- (assoc-ref inputs "wine-staging")
- "/share/vulkan/icd.d/intel_icd.i686.json"))))
- (wrap-program (string-append out "/bin/wine64-preloader")
- `("VK_ICD_FILENAMES" ":" =
- (,(string-append (assoc-ref inputs "mesa")
- "/share/vulkan/icd.d/radeon_icd.x86_64.json"
- ":" (assoc-ref inputs "mesa")
- "/share/vulkan/icd.d/intel_icd.x86_64.json"
- ":" (assoc-ref inputs "wine-staging")
- "/share/vulkan/icd.d/radeon_icd.i686.json"
- ":" (assoc-ref inputs "wine-staging")
- "/share/vulkan/icd.d/intel_icd.i686.json"))))
- #t)))))
- (_
- `())
- )
- (add-before 'configure 'patch-source-wine-staging
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((source (assoc-ref %build-inputs "source"))
- (script (string-append (assoc-ref %build-inputs
- "wine-staging-patchset-data")
- "/share/wine-staging/patches/patchinstall.sh")))
- (invoke script (string-append "DESTDIR=" ".") "--all")
- #t)))
- (add-after 'install 'copy-wine32-binaries
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((wine32 (assoc-ref %build-inputs "wine-staging"))
- (out (assoc-ref %outputs "out")))
- ;; Copy the 32-bit binaries needed for WoW64.
- (copy-file (string-append wine32 "/bin/wine")
- (string-append out "/bin/wine"))
- ;; Copy the real 32-bit wine-preloader instead of the wrapped
- ;; version.
- (copy-file (string-append wine32 "/bin/.wine-preloader-real")
- (string-append out "/bin/wine-preloader"))
- #t)))
- (add-after 'install 'copy-wine32-libraries
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((wine32 (assoc-ref %build-inputs "wine-staging"))
- (out (assoc-ref %outputs "out")))
- (copy-recursively (string-append wine32 "/lib/wine32")
- (string-append out "/lib/wine32"))
- #t)))
- (add-after 'compress-documentation 'copy-wine32-manpage
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((wine32 (assoc-ref %build-inputs "wine-staging"))
- (out (assoc-ref %outputs "out")))
- ;; Copy the missing man file for the wine binary from
- ;; wine-staging.
- (copy-file (string-append wine32 "/share/man/man1/wine.1.gz")
- (string-append out "/share/man/man1/wine.1.gz"))
- #t)))
- (add-after 'configure 'patch-dlopen-paths
- ;; Hardcode dlopened sonames to absolute paths.
- (lambda _
- (let* ((library-path (search-path-as-string->list
- (getenv "LIBRARY_PATH")))
- (find-so (lambda (soname)
- (search-path library-path soname))))
- (substitute* "include/config.h"
- (("(#define SONAME_.* )\"(.*)\"" _ defso soname)
- (format #f "~a\"~a\"" defso (find-so soname))))
- #t))))
- #:configure-flags
- (list "--enable-win64"
- (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib/wine64"))
- ,@(strip-keyword-arguments '(#:configure-flags #:make-flags #:phases
- #:system)
- (package-arguments wine-staging))))
+ (substitute-keyword-arguments (package-arguments wine64)
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (delete 'patch-SHELL)
+ (add-before 'configure 'apply-wine-staging-patches
+ (lambda* (#:key inputs #:allow-other-keys)
+ (invoke (search-input-file
+ inputs
+ "/share/wine-staging/patches/patchinstall.sh")
+ "DESTDIR=."
+ "--all")))
+ (add-after 'apply-wine-staging-patches 'patch-SHELL
+ (assoc-ref #$phases 'patch-SHELL))))))
(synopsis "Implementation of the Windows API (staging branch, WoW64
version)")
(supported-systems '("x86_64-linux" "aarch64-linux"))))
--
2.36.0
L
L
Liliana Marie Prikler wrote on 9 May 2022 08:38
(address . control@debbugs.gnu.org)
f0cc0b0ca03518de11ec80a5d4527a2bc117da69.camel@ist.tugraz.at
retitle 55302 [PATCH 0/4] Update wine and wine-staging to 7.8
thanks
P
P
pelzflorian (Florian Pelz) wrote on 10 May 2022 11:51
(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)(address . 55302@debbugs.gnu.org)
20220510095032.e4q6jkki4dbwxi2b@pelzflorian.localdomain
Thank you Liliana! I have no idea what fixed 54257, but converting to
the new style LGTM and I tested not thoroughly wine and
wine64{,-staging} on x86_64. (I see no reason why armhf should break
and aarch64 didn’t build anyway.)

Regards,
Florian
L
L
Ludovic Courtès wrote on 20 May 2022 20:16
Re: bug#55302: [PATCH 0/4] Update wine and wine-staging to 7.8
(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)(address . 55302@debbugs.gnu.org)
875ym0xe5s.fsf_-_@gnu.org
Hi!

Liliana Marie Prikler <liliana.prikler@gmail.com> skribis:

Toggle quote (5 lines)
> gnu: wine: Update to 7.8.
> gnu: wine: Use new package style.
> gnu: wine64: Use new package style.
> gnu: wine-staging: Update to 7.8.

I second Florian: if it works for you, go for it!

Thanks,
Ludo’.
L
L
Liliana Marie Prikler wrote on 21 May 2022 13:08
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 55302@debbugs.gnu.org)
51c2303e9a9856f2ea5e6f658622d87698a1213d.camel@gmail.com
Am Freitag, dem 20.05.2022 um 20:16 +0200 schrieb Ludovic Courtès:
Toggle quote (10 lines)
> Hi!
>
> Liliana Marie Prikler <liliana.prikler@gmail.com> skribis:
>
> >   gnu: wine: Update to 7.8.
> >   gnu: wine: Use new package style.
> >   gnu: wine64: Use new package style.
> >   gnu: wine-staging: Update to 7.8.
>
> I second Florian: if it works for you, go for it!
I did some very basic tests and pushed it; long term we might want to
consider peeking into wine's test suite.

Cheers
L
L
Liliana Marie Prikler wrote on 21 May 2022 13:09
(address . 55302-done@debbugs.gnu.org)
d576a8f0beb812f03dab81c88518ae748ca8941e.camel@gmail.com
Am Samstag, dem 21.05.2022 um 13:08 +0200 schrieb Liliana Marie
Prikler:
Toggle quote (15 lines)
> Am Freitag, dem 20.05.2022 um 20:16 +0200 schrieb Ludovic Courtès:
> > Hi!
> >
> > Liliana Marie Prikler <liliana.prikler@gmail.com> skribis:
> >
> > >   gnu: wine: Update to 7.8.
> > >   gnu: wine: Use new package style.
> > >   gnu: wine64: Use new package style.
> > >   gnu: wine-staging: Update to 7.8.
> >
> > I second Florian: if it works for you, go for it!
> I did some very basic tests and pushed it; long term we might want to
> consider peeking into wine's test suite.
>
> Cheers
Let's not forget to mark this done
Closed
?