gnu: emacs-consult: Fix grammar.
[jackhill/guix/guix.git] / gnu / packages / wine.scm
index f5b879a..78c4cda 100644 (file)
@@ -4,7 +4,7 @@
 ;;; 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.
@@ -38,7 +38,6 @@
   #: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)
@@ -52,6 +51,7 @@
   #: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)
@@ -60,7 +60,6 @@
   #: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 _
@@ -222,34 +225,35 @@ integrate Windows applications into your desktop.")
          ;; 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"))
@@ -262,6 +266,13 @@ integrate Windows applications into your desktop.")
                (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"))
@@ -323,7 +334,7 @@ integrate Windows applications into your desktop.")
 (define-public wine-staging-patchset-data
   (package
     (name "wine-staging-patchset-data")
-    (version "5.0")
+    (version "5.22")
     (source
      (origin
        (method git-fetch)
@@ -332,7 +343,7 @@ integrate Windows applications into your desktop.")
              (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)
@@ -370,19 +381,20 @@ integrate Windows applications into your desktop.")
     (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+)
@@ -554,7 +566,7 @@ version)")
   ;; 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)
@@ -564,7 +576,7 @@ version)")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "009p99jkskrmy186gsqrf0p3v9z3lskw51r4vdp35af057q26a6x"))))
+                "1inl0qswgvbp0fs76md86ilqf9mbshkpjm8ga81khn9zd6v3fvan"))))
     (build-system meson-build-system)
     (arguments
      `(#:system "i686-linux"
@@ -607,7 +619,8 @@ Use @command{setup_dxvk} to install the required libraries to a Wine prefix.")
                           (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)
@@ -633,6 +646,5 @@ Use @command{setup_dxvk} to install the required libraries to a Wine prefix.")
        ,@(match (%current-system)
            ("x86_64-linux"
             `(("dxvk32" ,dxvk32)))
-           (_ '()))
-       ))
+           (_ '()))))
     (supported-systems '("i686-linux" "x86_64-linux"))))