Merge branch 'master' into core-updates
[jackhill/guix/guix.git] / gnu / packages / wine.scm
index 9a1bd56..513b0eb 100644 (file)
@@ -1,6 +1,8 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014, 2015 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -39,6 +41,7 @@
   #:use-module (gnu packages linux)
   #:use-module (gnu packages openldap)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages mp3)
   #:use-module (gnu packages ncurses)
 (define-public wine
   (package
     (name "wine")
-    (version "1.9.15")
+    (version "2.0.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://dl.winehq.org/wine/source/"
-                                  (version-major+minor version)
-                                  "/wine-" version ".tar.bz2"))
+              (uri (string-append "https://dl.winehq.org/wine/source/2.0"
+                                  "/wine-" version ".tar.xz"))
               (sha256
                (base32
-                "1nmd65knzyh8b0yhxlqqvzai5rpnmhhm0c46n789zr5hj74jm6fg"))))
+                "10qm0xxqzvl4y3mhvaxcaacrcs8d5kdz5wf0gbxpmp36wnm4xyvc"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)
                      ("gettext" ,gettext-minimal)
        ("libXcomposite" ,libxcomposite)
        ("ncurses" ,ncurses)
        ("openal" ,openal)
+       ("pulseaudio" ,pulseaudio)
        ("unixodbc" ,unixodbc)
        ("zlib" ,zlib)))
     (arguments
-     `(;; The 64-bit build of Wine is reportedly less useful or even usable,
-       ;; so force a 32-bit build (under the assumption that this package is
+     `(;; Force a 32-bit build (under the assumption that this package is
        ;; being used on an IA32-compatible architecture.)
        #:system "i686-linux"
 
        (list "SHELL=bash")
 
        #:phases
-       (alist-cons-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))))))
-        %standard-phases)))
-    (home-page "http://www.winehq.org/")
+       (modify-phases %standard-phases
+         (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))))))
+    (home-page "https://www.winehq.org/")
     (synopsis "Implementation of the Windows API")
     (description
      "Wine (originally an acronym for \"Wine Is Not an Emulator\") is a
@@ -143,3 +145,31 @@ integrate Windows applications into your desktop.")
     ;; It really only supports IA32, but building on x86_64 will have the same
     ;; effect as building on i686 anyway.
     (supported-systems '("i686-linux" "x86_64-linux"))))
+
+(define-public wine64
+  (package
+    (inherit wine)
+    (name "wine64")
+    (arguments
+     `(#:configure-flags
+       (list "--enable-win64"
+             (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib64"))
+       ,@(strip-keyword-arguments '(#:configure-flags #:system)
+                                  (package-arguments wine))))
+    (synopsis "Implementation of the Windows API (64-bit version)")
+    (supported-systems '("x86_64-linux"))))
+
+;; TODO: This is wine development version, provided for historical reasons.
+;; We can remove it as soon as a new stable release is out.
+(define-public wine-next
+  (package (inherit wine)
+    (name "wine-next")
+    (version "2.11")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://dl.winehq.org/wine/source/2.x"
+                                  "/wine-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0g6cwjyqwc660w33453aklh3hpc0b8rrb88dryn23ah6wannvagg"))))))
+