me
/
guix
Archived
1
0
Fork 0

gnu: wine: Update to 7.0.

* gnu/packages/wine.scm (wine): Update to 7.0.
[inputs]: Remove now-bundled faudio, lcms, libxml2, libxslt, libmpg123,
libpng, libjpeg, and libtiff.  But read the comment.
* gnu/packages/wine.scm (wine, wine64, wine-minimal)[arguments]:
Add a new 'patch-SHELL phase.  Don't explicitly return #t from phases.
master
Tobias Geerinckx-Rice 2022-01-16 01:00:13 +01:00
parent 03cdd729c6
commit ab4cdfe7c2
No known key found for this signature in database
GPG Key ID: 0DB0FF884F556D79
1 changed files with 33 additions and 25 deletions

View File

@ -4,7 +4,7 @@
;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2017, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2017, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 20182021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -74,7 +74,7 @@
(define-public wine (define-public wine
(package (package
(name "wine") (name "wine")
(version "6.20") (version "7.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -86,7 +86,7 @@
(string-append "https://dl.winehq.org/wine/source/" dir (string-append "https://dl.winehq.org/wine/source/" dir
"wine-" version ".tar.xz"))) "wine-" version ".tar.xz")))
(sha256 (sha256
(base32 "0wc4a8slb3k859sdw9wwy92zc4pq7xw1kbq4frnxbzbvkiz26a20")))) (base32 "0sq8vsr8jf1a8fanh76rq7vyxm8h0cc4ckirjy7v2p08biyy4hsv"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("bison" ,bison) `(("bison" ,bison)
@ -95,28 +95,25 @@
("perl" ,perl) ("perl" ,perl)
("pkg-config" ,pkg-config))) ("pkg-config" ,pkg-config)))
(inputs (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) `(("alsa-lib" ,alsa-lib)
("dbus" ,dbus) ("dbus" ,dbus)
("cups" ,cups) ("cups" ,cups)
("eudev" ,eudev) ("eudev" ,eudev)
("faudio" ,faudio)
("fontconfig" ,fontconfig) ("fontconfig" ,fontconfig)
("freetype" ,freetype) ("freetype" ,freetype)
("gnutls" ,gnutls) ("gnutls" ,gnutls)
("gst-plugins-base" ,gst-plugins-base) ("gst-plugins-base" ,gst-plugins-base)
("lcms" ,lcms)
("libxml2" ,libxml2)
("libxslt" ,libxslt)
("libgphoto2" ,libgphoto2) ("libgphoto2" ,libgphoto2)
("libmpg123" ,mpg123)
("libldap" ,openldap) ("libldap" ,openldap)
("libnetapi" ,samba) ("libnetapi" ,samba)
("libsane" ,sane-backends) ("libsane" ,sane-backends)
("libpcap" ,libpcap) ("libpcap" ,libpcap)
("libpng" ,libpng)
("libjpeg" ,libjpeg-turbo)
("libusb" ,libusb) ("libusb" ,libusb)
("libtiff" ,libtiff)
("libICE" ,libice) ("libICE" ,libice)
("libX11" ,libx11) ("libX11" ,libx11)
("libXi" ,libxi) ("libXi" ,libxi)
@ -179,10 +176,15 @@
`("VK_ICD_FILENAMES" ":" = `("VK_ICD_FILENAMES" ":" =
(,(string-append icd (,(string-append icd
"/radeon_icd.i686.json" ":" "/radeon_icd.i686.json" ":"
icd "/intel_icd.i686.json")))) icd "/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 'configure 'patch-dlopen-paths (add-after 'configure 'patch-dlopen-paths
;; Hardcode dlopened sonames to absolute paths. ;; Hardcode dlopened sonames to absolute paths.
(lambda _ (lambda _
@ -192,8 +194,7 @@
(search-path library-path soname)))) (search-path library-path soname))))
(substitute* "include/config.h" (substitute* "include/config.h"
(("(#define SONAME_.* )\"(.*)\"" _ defso soname) (("(#define SONAME_.* )\"(.*)\"" _ defso soname)
(format #f "~a\"~a\"" defso (find-so soname)))) (format #f "~a\"~a\"" defso (find-so soname)))))))
#t)))
(add-after 'patch-generated-file-shebangs 'patch-makedep (add-after 'patch-generated-file-shebangs 'patch-makedep
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(substitute* "tools/makedep.c" (substitute* "tools/makedep.c"
@ -259,6 +260,12 @@ integrate Windows applications into your desktop.")
#t))))) #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 (add-after 'patch-generated-file-shebangs 'patch-makedep
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(substitute* "tools/makedep.c" (substitute* "tools/makedep.c"
@ -275,23 +282,20 @@ integrate Windows applications into your desktop.")
;; Copy the real 32-bit wine-preloader instead of the wrapped ;; Copy the real 32-bit wine-preloader instead of the wrapped
;; version. ;; version.
(copy-file (string-append wine32 "/bin/.wine-preloader-real") (copy-file (string-append wine32 "/bin/.wine-preloader-real")
(string-append out "/bin/wine-preloader")) (string-append out "/bin/wine-preloader")))))
#t)))
(add-after 'install 'copy-wine32-libraries (add-after 'install 'copy-wine32-libraries
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((wine32 (assoc-ref %build-inputs "wine")) (let* ((wine32 (assoc-ref %build-inputs "wine"))
(out (assoc-ref %outputs "out"))) (out (assoc-ref %outputs "out")))
(copy-recursively (string-append wine32 "/lib/wine32") (copy-recursively (string-append wine32 "/lib/wine32")
(string-append out "/lib/wine32")) (string-append out "/lib/wine32")))))
#t)))
(add-after 'compress-documentation 'copy-wine32-manpage (add-after 'compress-documentation 'copy-wine32-manpage
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((wine32 (assoc-ref %build-inputs "wine")) (let* ((wine32 (assoc-ref %build-inputs "wine"))
(out (assoc-ref %outputs "out"))) (out (assoc-ref %outputs "out")))
;; Copy the missing man file for the wine binary from wine. ;; Copy the missing man file for the wine binary from wine.
(copy-file (string-append wine32 "/share/man/man1/wine.1.gz") (copy-file (string-append wine32 "/share/man/man1/wine.1.gz")
(string-append out "/share/man/man1/wine.1.gz")) (string-append out "/share/man/man1/wine.1.gz")))))
#t)))
(add-after 'configure 'patch-dlopen-paths (add-after 'configure 'patch-dlopen-paths
;; Hardcode dlopened sonames to absolute paths. ;; Hardcode dlopened sonames to absolute paths.
(lambda _ (lambda _
@ -301,8 +305,7 @@ integrate Windows applications into your desktop.")
(search-path library-path soname)))) (search-path library-path soname))))
(substitute* "include/config.h" (substitute* "include/config.h"
(("(#define SONAME_.* )\"(.*)\"" _ defso soname) (("(#define SONAME_.* )\"(.*)\"" _ defso soname)
(format #f "~a\"~a\"" defso (find-so soname)))) (format #f "~a\"~a\"" defso (find-so soname))))))))
#t))))
#:configure-flags #:configure-flags
(list "--enable-win64" (list "--enable-win64"
(string-append "LDFLAGS=-Wl,-rpath=" %output "/lib/wine64")) (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib/wine64"))
@ -325,6 +328,12 @@ integrate Windows applications into your desktop.")
`(#:validate-runpath? #f `(#:validate-runpath? #f
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(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 (add-after 'configure 'patch-dlopen-paths
;; Hardcode dlopened sonames to absolute paths. ;; Hardcode dlopened sonames to absolute paths.
(lambda _ (lambda _
@ -334,8 +343,7 @@ integrate Windows applications into your desktop.")
(search-path library-path soname)))) (search-path library-path soname))))
(substitute* "include/config.h" (substitute* "include/config.h"
(("(#define SONAME_.* )\"(.*)\"" _ defso soname) (("(#define SONAME_.* )\"(.*)\"" _ defso soname)
(format #f "~a\"~a\"" defso (find-so soname)))) (format #f "~a\"~a\"" defso (find-so soname))))))))
#t))))
#:configure-flags #:configure-flags
(list "--without-freetype" (list "--without-freetype"
"--without-x") "--without-x")