gnu: wine64: Share phases with parent wine package.
* gnu/packages/wine.scm (wine64): Share phases with parent wine package. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>master
parent
6bfd48ff72
commit
d9a7bc96ae
|
@ -236,84 +236,62 @@ integrate Windows applications into your desktop.")
|
|||
(inputs (modify-inputs (package-inputs wine)
|
||||
(prepend wine)))
|
||||
(arguments
|
||||
(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 \", arch_install_dirs[arch] );")))))
|
||||
(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")
|
||||
(strip-keyword-arguments '(#:configure-flags #:make-flags #:phases
|
||||
#:system)
|
||||
(package-arguments wine))))
|
||||
(substitute-keyword-arguments
|
||||
(strip-keyword-arguments '(#:system) (package-arguments wine))
|
||||
((#:make-flags _)
|
||||
#~(list "SHELL=bash"
|
||||
(string-append "libdir=" #$output "/lib/wine64"))
|
||||
)
|
||||
((#:phases phases)
|
||||
#~(modify-phases #$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")
|
||||
`((delete 'wrap-executable)
|
||||
(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 '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")))))))
|
||||
((#:configure-flags configure-flags '())
|
||||
#~(cons "--enable-win64" #$configure-flags))))
|
||||
(synopsis "Implementation of the Windows API (WoW64 version)")
|
||||
(supported-systems '("x86_64-linux" "aarch64-linux"))))
|
||||
|
||||
|
|
Reference in New Issue