63 lines
2 KiB
Scheme
63 lines
2 KiB
Scheme
(define-module (packages mozillia)
|
|
#:use-module (gnu)
|
|
#:use-module (guix download)
|
|
#:use-module (guix packages)
|
|
#:use-module ((guix licenses) #:prefix license:)
|
|
#:use-module (gnu packages bash)
|
|
#:use-module (gnu packages linux)
|
|
#:use-module (guix build-system trivial)
|
|
#:use-module (nongnu packages mozilla))
|
|
|
|
(define firefox*
|
|
(package/inherit
|
|
firefox
|
|
(inputs
|
|
(modify-inputs
|
|
(package-inputs firefox)
|
|
(delete "pipewire")
|
|
(append pipewire)))))
|
|
|
|
(define-public firefox-wayland
|
|
(package
|
|
(inherit firefox*)
|
|
(name "firefox-wayland")
|
|
(native-inputs '())
|
|
(inputs
|
|
`(("bash" ,bash-minimal)
|
|
("pipewire" ,pipewire)
|
|
("firefox" ,firefox*)))
|
|
(build-system trivial-build-system)
|
|
(arguments
|
|
'(#:modules ((guix build utils))
|
|
#:builder
|
|
(begin
|
|
(use-modules (guix build utils))
|
|
(let* ((bash (assoc-ref %build-inputs "bash"))
|
|
(firefox (assoc-ref %build-inputs "firefox"))
|
|
(pipewire (assoc-ref %build-inputs "pipewire"))
|
|
(out (assoc-ref %outputs "out"))
|
|
(exe (string-append out "/bin/firefox")))
|
|
(mkdir-p (dirname exe))
|
|
|
|
(call-with-output-file exe
|
|
(lambda (port)
|
|
;; NOTE: added "export LD_LIBRARY_PATH=pipewire"
|
|
;; maybe this can be done better with `wrap-programm'
|
|
(format port "#!~a \n
|
|
export LD_LIBRARY_PATH=~a \n
|
|
export MOZ_ENABLE_WAYLAND=1 \n
|
|
exec ~a $@\n"
|
|
(string-append bash "/bin/bash")
|
|
(string-append pipewire "/lib")
|
|
(string-append firefox "/bin/firefox"))))
|
|
(chmod exe #o555)
|
|
|
|
;; Provide the manual and .desktop file.
|
|
(copy-recursively (string-append firefox "/share")
|
|
(string-append out "/share"))
|
|
(substitute* (string-append
|
|
out "/share/applications/firefox.desktop")
|
|
((firefox) out))
|
|
#t))))))
|
|
|