;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2017, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
-;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;;
;;; This file is part of GNU Guix.
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages bison)
- #:use-module (gnu packages compression)
#:use-module (gnu packages cups)
#:use-module (gnu packages databases)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages kerberos)
+ #:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages mingw)
#:use-module (gnu packages openldap)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages mp3)
- #:use-module (gnu packages ncurses)
#:use-module (gnu packages photo)
#:use-module (gnu packages samba)
#:use-module (gnu packages scanner)
(define-public wine
(package
(name "wine")
- (version "5.0")
+ (version "6.6")
(source
(origin
(method url-fetch)
- (uri (string-append "https://dl.winehq.org/wine/source/"
- (version-major+minor version)
- "/wine-" version ".tar.xz"))
+ (uri (let ((dir (string-append
+ (version-major version)
+ (if (string-suffix? ".0" (version-major+minor version))
+ ".0/"
+ ".x/"))))
+ (string-append "https://dl.winehq.org/wine/source/" dir
+ "wine-" version ".tar.xz")))
(sha256
- (base32 "1d0kcy338radq07hrnzcpc9lc9j2fvzjh37q673002x8d6x5058q"))))
+ (base32 "1bc4zmqpdqs1ncz3qisp8a313pqzi5a31gq1s99ivb60vk325rcr"))))
(build-system gnu-build-system)
- (native-inputs `(("pkg-config" ,pkg-config)
- ("gettext" ,gettext-minimal)
- ("flex" ,flex)
- ("bison" ,bison)
- ("perl" ,perl)))
+ (native-inputs
+ `(("bison" ,bison)
+ ("flex" ,flex)
+ ("gettext" ,gettext-minimal)
+ ("perl" ,perl)
+ ("pkg-config" ,pkg-config)))
(inputs
`(("alsa-lib" ,alsa-lib)
("dbus" ,dbus)
("faudio" ,faudio)
("fontconfig" ,fontconfig)
("freetype" ,freetype)
- ("glu" ,glu)
("gnutls" ,gnutls)
("gst-plugins-base" ,gst-plugins-base)
("lcms" ,lcms)
("libpcap" ,libpcap)
("libpng" ,libpng)
("libjpeg" ,libjpeg-turbo)
+ ("libusb" ,libusb)
("libtiff" ,libtiff)
("libICE" ,libice)
("libX11" ,libx11)
("libXxf86vm" ,libxxf86vm)
("libXcomposite" ,libxcomposite)
("mit-krb5" ,mit-krb5)
- ("ncurses" ,ncurses)
("openal" ,openal)
("pulseaudio" ,pulseaudio)
("sdl2" ,sdl2)
("unixodbc" ,unixodbc)
("v4l-utils" ,v4l-utils)
("vkd3d" ,vkd3d)
- ("vulkan-loader" ,vulkan-loader)
- ("zlib" ,zlib)))
+ ("vulkan-loader" ,vulkan-loader)))
(arguments
`(;; Force a 32-bit build targeting a similar architecture, i.e.:
;; armhf for armhf/aarch64, i686 for i686/x86_64.
(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")
+ (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")
+ (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"))))
+ `("VK_ICD_FILENAMES" ":" =
+ (,(string-append icd
+ "/radeon_icd.i686.json" ":"
+ icd "/intel_icd.i686.json"))))
#t)))))
(_
- `())
- )
+ `()))
(add-after 'configure 'patch-dlopen-paths
;; Hardcode dlopened sonames to absolute paths.
(lambda _
;; 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)))))
- (_
- `())
- )
+ ((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 'install 'copy-wine32-binaries
(lambda* (#:key outputs #:allow-other-keys)
(let* ((wine32 (assoc-ref %build-inputs "wine"))
(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"))
+ (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"))
(define-public wine-staging-patchset-data
(package
(name "wine-staging-patchset-data")
- (version "5.0")
+ (version "5.22")
(source
(origin
(method git-fetch)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "054m2glvav29qnlgr3p36kahyv3kbxzba82djzqpc7cmsrin0d3f"))))
+ (base32 "0sjljp5aa558ff5wn47q86z0dm4vcjs0gh9n35916bbwj02lhay2"))))
(build-system trivial-build-system)
(native-inputs
`(("bash" ,bash)
(name "wine-staging")
(version (package-version wine-staging-patchset-data))
(source
- (origin
- (method url-fetch)
- (uri (let ((dir (string-append
- (version-major version)
- (if (string-suffix? ".0" (version-major+minor version))
- ".0"
- ".x"))))
- (string-append
- "https://dl.winehq.org/wine/source/" dir
- "/wine-" version ".tar.xz")))
- (file-name (string-append name "-" version ".tar.xz"))
- (sha256
- (base32 "1d0kcy338radq07hrnzcpc9lc9j2fvzjh37q673002x8d6x5058q"))))
+ (let* ((wine-version (version-major+minor version))
+ (subdirectory (string-append
+ (version-major version)
+ (if (string-suffix? ".0" wine-version)
+ ".0"
+ ".x"))))
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://dl.winehq.org/wine/source/"
+ subdirectory "/"
+ "wine-" wine-version ".tar.xz"))
+ (file-name (string-append name "-" wine-version ".tar.xz"))
+ (sha256
+ (base32 "08adrsxhwgj5slwgi7f0dyspw8fpfp4cw1s5sdm4x5wcgk40dg89")))))
(inputs `(("autoconf" ,autoconf) ; for autoreconf
("ffmpeg" ,ffmpeg)
("gtk+" ,gtk+)
;; This package provides 32-bit dxvk libraries on 64-bit systems.
(package
(name "dxvk32")
- (version "1.5")
+ (version "1.5.5")
(home-page "https://github.com/doitsujin/dxvk/")
(source (origin
(method git-fetch)
(file-name (git-file-name name version))
(sha256
(base32
- "009p99jkskrmy186gsqrf0p3v9z3lskw51r4vdp35af057q26a6x"))))
+ "1inl0qswgvbp0fs76md86ilqf9mbshkpjm8ga81khn9zd6v3fvan"))))
(build-system meson-build-system)
(arguments
`(#:system "i686-linux"
(dxvk32 (assoc-ref inputs "dxvk32")))
(mkdir-p (string-append out "/lib32"))
(copy-recursively (string-append dxvk32 "/lib")
- (string-append out "/lib32"))))))
+ (string-append out "/lib32"))
+ #t))))
'())
(add-after 'install 'install-setup
(lambda* (#:key inputs outputs #:allow-other-keys)
,@(match (%current-system)
("x86_64-linux"
`(("dxvk32" ,dxvk32)))
- (_ '()))
- ))
+ (_ '()))))
(supported-systems '("i686-linux" "x86_64-linux"))))