nongnu: winetricks: Improve package style.

* nongnu/packages/wine.scm (winetricks)[inputs]: Use label-less style.
[arguments]: Use G-expressions.
<#:make-flags>: Replace '(assoc-ref %outputs "out")' with '#$output'.
<#:phases>: In 'wrap-program' and 'patch-perl-path', Replace
'(assoc-ref inputs ...)' with 'this-package-input'.

Signed-off-by: John Kehayias <john.kehayias@protonmail.com>
This commit is contained in:
Zhu Zihao 2023-08-12 00:50:56 +08:00 committed by John Kehayias
parent 8cffc6b168
commit 14c3e1fdc8
No known key found for this signature in database
GPG key ID: 499097AE5EA815D9

View file

@ -9,6 +9,7 @@
#:use-module (guix build-system trivial) #:use-module (guix build-system trivial)
#:use-module (guix build-system copy) #:use-module (guix build-system copy)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
@ -33,43 +34,42 @@
"15glm6ws0zihcks93l39mli8wf5b5vkijb0vaid9cqra6x0zppd5")))) "15glm6ws0zihcks93l39mli8wf5b5vkijb0vaid9cqra6x0zppd5"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("cabextract" ,cabextract) (list cabextract
("p7zip" ,p7zip) p7zip
("perl" ,perl) perl
;; ("unrar" ,unrar) ; TODO: Include unrar? It is referenced in the source. ;; unrar ; TODO: Include unrar? It is referenced in the source.
("unzip" ,unzip) unzip
("wget" ,wget) wget
("zenity" ,zenity))) zenity))
(arguments (arguments
`(#:tests? #f (list
#:tests? #f
;; TODO: Checks need bashate, shellcheck (in Guix), and checkbashisms. ;; TODO: Checks need bashate, shellcheck (in Guix), and checkbashisms.
#:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out")) #:make-flags #~(list (string-append "DESTDIR=" #$output)
"PREFIX=") "PREFIX=")
#:phases #:phases
(modify-phases %standard-phases #~(modify-phases %standard-phases
(delete 'configure) (delete 'configure)
(add-after 'install 'wrap-program (add-after 'install 'wrap-program
;; The script relies on WINETRICKS_GUI being exactly "zenity", so ;; The script relies on WINETRICKS_GUI being exactly "zenity", so
;; we can't patch the path directly. Probably same for other dependencies. ;; we can't patch the path directly. Probably same for other dependencies.
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda _
(let* ((zenity-bin (string-append (assoc-ref inputs "zenity") "/bin/")) (let* ((winetricks (string-append #$output "/bin/winetricks"))
(perl-bin (string-append (assoc-ref inputs "perl") "/bin/")) (paths (map
(winetricks (string-append (assoc-ref outputs "out") (lambda (p) (string-append p "/bin"))
"/bin/winetricks"))) (list #$(this-package-input "cabextract")
#$(this-package-input "p7zip")
#$(this-package-input "perl")
#$(this-package-input "unzip")
#$(this-package-input "wget")
#$(this-package-input "zenity")))))
(wrap-program winetricks (wrap-program winetricks
`("PATH" prefix (,@(map (lambda (in) `("PATH" prefix ,paths)))))
(string-append (assoc-ref inputs in) "/bin/"))
'("cabextract"
"p7zip"
"perl"
"unzip"
"wget"
"zenity"))))))))
(add-after 'install 'patch-perl-path (add-after 'install 'patch-perl-path
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda _
(let* ((perl (string-append (assoc-ref inputs "perl") "/bin/perl")) (let* ((perl (string-append #$(this-package-input "perl")
(winetricks (string-append (assoc-ref outputs "out") "/bin/perl"))
"/bin/winetricks"))) (winetricks (string-append #$output "/bin/winetricks")))
(substitute* winetricks (substitute* winetricks
(("#!/usr/bin/env perl") (string-append "#!" perl))))))))) (("#!/usr/bin/env perl") (string-append "#!" perl)))))))))
(home-page "https://github.com/Winetricks/winetricks") (home-page "https://github.com/Winetricks/winetricks")