diff options
Diffstat (limited to 'gnu/packages/gnuzilla.scm')
-rw-r--r-- | gnu/packages/gnuzilla.scm | 119 |
1 files changed, 65 insertions, 54 deletions
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index f2de477548..9f6e1f24e1 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <[email protected]> ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Mark H Weaver <[email protected]> ;;; Copyright © 2015 Sou Bunnbu <[email protected]> -;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <[email protected]> +;;; Copyright © 2016, 2017, 2018, 2019, 2021 Efraim Flashner <[email protected]> ;;; Copyright © 2016 Alex Griffin <[email protected]> ;;; Copyright © 2017 Clément Lassieur <[email protected]> ;;; Copyright © 2017, 2018 Nikita <[email protected]> @@ -15,6 +15,7 @@ ;;; Copyright © 2019, 2020 Adrian Malacoda <[email protected]> ;;; Copyright © 2020 Jonathan Brielmaier <[email protected]> ;;; Copyright © 2020 Marius Bakke <[email protected]> +;;; Copyright © 2021 Brice Waegeneire <[email protected]> ;;; ;;; This file is part of GNU Guix. ;;; @@ -681,21 +682,11 @@ in C/C++.") ("1j6l66v1xw27z8w78mpsnmqgv8m277mf4r0hgqcrb4zx7xc2vqyy" "527e5e090608" "zh-CN") ("1frwx35klpyz3sdwrkz7945ivb2dwaawhhyfnz4092h9hn7rc4ky" "6cd366ad2947" "zh-TW"))) -(define* (computed-origin-method gexp-promise hash-algo hash - #:optional (name "source") - #:key (system (%current-system)) - (guile (default-guile))) - "Return a derivation that executes the G-expression that results -from forcing GEXP-PROMISE." - (mlet %store-monad ((guile (package->derivation guile system))) - (gexp->derivation (or name "computed-origin") - (force gexp-promise) - #:graft? #f ;nothing to graft - #:system system - #:guile-for-build guile))) - -(define %icecat-version "78.9.0-guix0-preview1") -(define %icecat-build-id "20210323000000") ;must be of the form YYYYMMDDhhmmss +;; XXXX: Workaround 'snippet' limitations. +(define computed-origin-method (@@ (guix packages) computed-origin-method)) + +(define %icecat-version "78.14.0-guix0-preview1") +(define %icecat-build-id "20210907000000") ;must be of the form YYYYMMDDhhmmss ;; 'icecat-source' is a "computed" origin that generates an IceCat tarball ;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat' @@ -717,7 +708,7 @@ from forcing GEXP-PROMISE." "firefox-" upstream-firefox-version ".source.tar.xz")) (sha256 (base32 - "0r28wrsk2k6pc922zfs5wljh8ziqm4a98lisn7409j2szhfsq0wf")))) + "1ymjlg6p23c510m764pqr4sldrvk0c7g490a29js2cqc2nj2h3ma")))) (upstream-icecat-base-version "78.7.0") ; maybe older than base-version ;;(gnuzilla-commit (string-append "v" upstream-icecat-base-version)) @@ -910,6 +901,7 @@ from forcing GEXP-PROMISE." ;; UNBUNDLE-ME! ("nss" ,nss) ("shared-mime-info" ,shared-mime-info) ;; UNBUNDLE-ME! ("sqlite" ,sqlite) + ("eudev" ,eudev) ("unzip" ,unzip) ("zip" ,zip) ;; UNBUNDLE-ME! ("zlib" ,zlib) @@ -948,12 +940,6 @@ from forcing GEXP-PROMISE." `(#:tests? #f ; no check target #:out-of-source? #t ; must be built outside of the source directory - ;; XXX: There are RUNPATH issues such as - ;; $prefix/lib/icecat-31.6.0/plugin-container NEEDing libmozalloc.so, - ;; which is not in its RUNPATH, but they appear to be harmless in - ;; practice somehow. See <http://hydra.gnu.org/build/378133>. - #:validate-runpath? #f - #:configure-flags `("--enable-default-toolkit=cairo-gtk3-wayland" "--with-distribution-id=org.gnu" @@ -1201,6 +1187,9 @@ from forcing GEXP-PROMISE." (setenv "AUTOCONF" (which "autoconf")) ; must be autoconf-2.13 (setenv "CC" "gcc") ; apparently needed when Stylo is enabled (setenv "MOZ_BUILD_DATE" ,%icecat-build-id) ; avoid timestamp + (setenv "LDFLAGS" (string-append "-Wl,-rpath=" + (assoc-ref outputs "out") + "/lib/icecat")) (mkdir "../build") (chdir "../build") (format #t "build directory: ~s~%" (getcwd)) @@ -1274,19 +1263,21 @@ from forcing GEXP-PROMISE." (lib (string-append out "/lib")) (gtk (assoc-ref inputs "gtk+")) (gtk-share (string-append gtk "/share")) - (mesa (assoc-ref inputs "mesa")) - (mesa-lib (string-append mesa "/lib")) - (pulseaudio (assoc-ref inputs "pulseaudio")) - (pulseaudio-lib (string-append pulseaudio "/lib")) - (libxscrnsaver (assoc-ref inputs "libxscrnsaver")) - (libxscrnsaver-lib (string-append libxscrnsaver "/lib"))) + (ld-libs (map (lambda (lib) + (string-append (assoc-ref inputs lib) + "/lib")) + '("libxscrnsaver" + "mesa" + "mit-krb5" + "eudev" + "pulseaudio")))) (wrap-program (car (find-files lib "^icecat$")) `("XDG_DATA_DIRS" prefix (,gtk-share)) ;; The following line is commented out because the icecat ;; package on guix has been observed to be unstable when ;; using wayland, and the bundled extensions stop working. ;; `("MOZ_ENABLE_WAYLAND" = ("1")) - `("LD_LIBRARY_PATH" prefix (,pulseaudio-lib ,mesa-lib ,libxscrnsaver-lib))) + `("LD_LIBRARY_PATH" prefix ,ld-libs)) #t)))))) (home-page "https://www.gnu.org/software/gnuzilla/") (synopsis "Entirely free browser derived from Mozilla Firefox") @@ -1305,11 +1296,11 @@ standards of the IceCat project.") (cpe-version . ,(first (string-split version #\-))))))) ;; Update this together with icecat! -(define %icedove-build-id "20210323000000") ;must be of the form YYYYMMDDhhmmss +(define %icedove-build-id "20210810000000") ;must be of the form YYYYMMDDhhmmss (define-public icedove (package (name "icedove") - (version "78.9.0") + (version "78.13.0") (source icecat-source) (properties `((cpe-name . "thunderbird_esr"))) @@ -1499,7 +1490,9 @@ standards of the IceCat project.") "ac_add_options --with-system-nspr\n" "ac_add_options --with-system-nss\n" "ac_add_options --with-system-zlib\n" - "ac_add_options --with-user-appdir=\\.icedove\n")))) + "ac_add_options --with-user-appdir=\\.icedove\n" + "mk_add_options MOZ_MAKE_FLAGS=-j" + (number->string (parallel-job-count)) "\n")))) (display (getcwd)) (newline) (display "mach configure") @@ -1541,10 +1534,12 @@ standards of the IceCat project.") (gtk (assoc-ref inputs "gtk+")) (gtk-share (string-append gtk "/share")) (pulseaudio (assoc-ref inputs "pulseaudio")) - (pulseaudio-lib (string-append pulseaudio "/lib"))) + (pulseaudio-lib (string-append pulseaudio "/lib")) + (eudev (assoc-ref inputs "eudev")) + (eudev-lib (string-append eudev "/lib"))) (wrap-program (car (find-files lib "^icedove$")) `("XDG_DATA_DIRS" prefix (,gtk-share)) - `("LD_LIBRARY_PATH" prefix (,pulseaudio-lib))) + `("LD_LIBRARY_PATH" prefix (,pulseaudio-lib ,eudev-lib))) #t)))))) (inputs `(("bzip2" ,bzip2) @@ -1580,6 +1575,7 @@ standards of the IceCat project.") ("pulseaudio" ,pulseaudio) ("sqlite" ,sqlite) ("startup-notification" ,startup-notification) + ("eudev" ,eudev) ("unzip" ,unzip) ("zip" ,zip) ("zlib" ,zlib))) @@ -1589,7 +1585,7 @@ standards of the IceCat project.") ;; in the Thunderbird release tarball. We don't use the release ;; tarball because it duplicates the Icecat sources and only adds the ;; "comm" directory, which is provided by this repository. - ,(let ((changeset "1a5cd2aa11de609116f258b413afcf113ed72f3a")) + ,(let ((changeset "adcfedf831da719455116546865f9a5faea848a6")) (origin (method hg-fetch) (uri (hg-reference @@ -1598,7 +1594,7 @@ standards of the IceCat project.") (file-name (string-append "thunderbird-" version "-checkout")) (sha256 (base32 - "0qgz9qj8gbn2ccmhvk3259ahs9p435ipvkzsysn3xj8a6klbz02w"))))) + "1dahf3y8bm3kh7amf341wnmh82a2r0ksqihc6dwiakh6x86a94cm"))))) ("autoconf" ,autoconf-2.13) ("cargo" ,rust-1.41 "cargo") ("clang" ,clang) @@ -1621,25 +1617,40 @@ Thunderbird. It supports email, news feeds, chat, calendar and contacts.") (license license:mpl2.0))) (define-public icedove/wayland - (package/inherit icedove + (package + (inherit icedove) (name "icedove-wayland") + (native-inputs '()) + (inputs + `(("bash" ,bash-minimal) + ("icedove" ,icedove))) + (build-system trivial-build-system) (arguments - (substitute-keyword-arguments (package-arguments icedove) - ((#:phases phases) - `(modify-phases ,phases - (replace 'wrap-program - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (lib (string-append out "/lib")) - (gtk (assoc-ref inputs "gtk+")) - (gtk-share (string-append gtk "/share")) - (pulseaudio (assoc-ref inputs "pulseaudio")) - (pulseaudio-lib (string-append pulseaudio "/lib"))) - (wrap-program (car (find-files lib "^icedove$")) - `("MOZ_ENABLE_WAYLAND" = ("1")) - `("XDG_DATA_DIRS" prefix (,gtk-share)) - `("LD_LIBRARY_PATH" prefix (,pulseaudio-lib))) - #t))))))))) + '(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let* ((bash (assoc-ref %build-inputs "bash")) + (icedove (assoc-ref %build-inputs "icedove")) + (out (assoc-ref %outputs "out")) + (exe (string-append out "/bin/icedove"))) + (mkdir-p (dirname exe)) + + (call-with-output-file exe + (lambda (port) + (format port "#!~a + MOZ_ENABLE_WAYLAND=1 exec ~a $@" + (string-append bash "/bin/bash") + (string-append icedove "/bin/icedove")))) + (chmod exe #o555) + + ;; Provide the manual and .desktop file. + (copy-recursively (string-append icedove "/share") + (string-append out "/share")) + (substitute* (string-append + out "/share/applications/icedove.desktop") + ((icedove) out)) + #t)))))) (define-public firefox-decrypt (package |