* gnu/packages/cdrom.scm (xorriso)[outputs]: Add gui.[arguments]: Add custom phase to install gui files to separate outputand wrap the binary.[inputs]: Add tk.---
A while ago I had to burn a CD (or I thought I did) and I realized Ididn't know how to do it anymore and for some reason it was easier tobuild the GUI front-end for xorriso than other options.
Adding tk as an input increases the closure size from about 80 MiB to about150 MiB so I moved it to a separate output. Creating a separate packageentirely would be easier, it's literally just adding "tk" as an input.
--- gnu/packages/cdrom.scm | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-)
Toggle diff (63 lines)
diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scmindex d6127d11f9..c760725ba3 100644--- a/gnu/packages/cdrom.scm+++ b/gnu/packages/cdrom.scm@@ -3,7 +3,7 @@ ;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>-;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Alex Kost <alezost@gmail.com> ;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 John Darrington <jmd@gnu.org>@@ -66,6 +66,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages image) #:use-module (gnu packages photo)+ #:use-module (gnu packages tcl) #:use-module (gnu packages video) #:use-module (gnu packages wget) #:use-module (gnu packages xiph))@@ -156,6 +157,7 @@ libcdio.") (package (name "xorriso") (version "1.5.2")+ (outputs '("out" "gui")) (source (origin (method url-fetch) (uri (string-append "mirror://gnu/xorriso/xorriso-"@@ -172,10 +174,31 @@ libcdio.") (let* ((out (assoc-ref outputs "out")) (out-bin (string-append out "/bin"))) (install-file "frontend/grub-mkrescue-sed.sh" out-bin)+ #t)))+ (add-after 'install 'move-gui-to-separate-output+ (lambda* (#:key outputs #:allow-other-keys)+ (let ((out (assoc-ref outputs "out"))+ (gui (assoc-ref outputs "gui"))+ (name "xorriso-tcltk"))+ (mkdir-p (string-append gui "/bin"))+ (mkdir-p (string-append gui "/share/info"))+ (mkdir-p (string-append gui "/share/man/man1"))+ (rename-file+ (string-append out "/bin/" name)+ (string-append gui "/bin/" name))+ (rename-file+ (string-append out "/share/info/" name ".info")+ (string-append gui "/share/info/" name ".info"))+ (rename-file+ (string-append out "/share/man/man1/" name ".1")+ (string-append gui "/share/man/man1/" name ".1"))+ (wrap-program (string-append gui "/bin/" name)+ `("PATH" ":" prefix (,(string-append out "/bin")))) #t)))))) (inputs `(("acl" ,acl) ("readline" ,readline)+ ("tk" ,tk) ("zlib" ,zlib))) (home-page "https://www.gnu.org/software/xorriso/") (synopsis "Create, manipulate, burn ISO-9660 file systems")-- 2.26.0