diff options
Diffstat (limited to 'nongnu/packages/mozilla.scm')
-rw-r--r-- | nongnu/packages/mozilla.scm | 282 |
1 files changed, 62 insertions, 220 deletions
diff --git a/nongnu/packages/mozilla.scm b/nongnu/packages/mozilla.scm index 636219b..7a51866 100644 --- a/nongnu/packages/mozilla.scm +++ b/nongnu/packages/mozilla.scm @@ -1,4 +1,4 @@ -;;; GNU Guix --- Functional package management for GNU +;;; SPDX-License-Identifier: GPL-3.0-or-later ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Mark H Weaver <mhw@netris.org> @@ -14,27 +14,13 @@ ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> ;;; Copyright © 2019, 2020 Adrian Malacoda <malacoda@monarch-pass.net> -;;; Copyright © 2020-2022 Jonathan Brielmaier <jonathan.brielmaier@web.de> +;;; Copyright © 2020-2023 Jonathan Brielmaier <jonathan.brielmaier@web.de> ;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com> ;;; Copyright © 2021 pineapples <guixuser6392@protonmail.com> ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re> -;;; Copyright © 2021, 2022 John Kehayias <john.kehayias@protonmail.com> +;;; Copyright © 2021, 2022, 2023 John Kehayias <john.kehayias@protonmail.com> ;;; Copyright © 2022 Pierre Langlois <pierre.langlois@gmx.com> -;;; -;;; This file is not part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. +;;; Copyright © 2023 Tomas Volf <wolf@wolfsden.cz> (define-module (nongnu packages mozilla) #:use-module (guix build-system gnu) @@ -60,6 +46,7 @@ #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) + #:use-module (gnu packages hunspell) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages jemalloc) @@ -67,7 +54,6 @@ #:use-module (gnu packages libcanberra) #:use-module (gnu packages libevent) #:use-module (gnu packages libffi) - #:use-module (gnu packages libreoffice) ;for hunspell #:use-module (gnu packages linux) #:use-module (gnu packages llvm) #:use-module (gnu packages m4) @@ -79,6 +65,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages rust) #:use-module (gnu packages rust-apps) + #:use-module (gnu packages speech) #:use-module (gnu packages sqlite) #:use-module (gnu packages video) #:use-module (nongnu packages wasm) @@ -90,177 +77,39 @@ ;; https://searchfox.org under the particular firefox release, like ;; mozilla-esr102. (define-public rust-firefox-esr rust) ; 1.60 is the default in Guix -(define-public rust-firefox (@@ (gnu packages rust) rust-1.61)) ; 1.63 is also listed, but 1.61 is the minimum needed +(define-public rust-firefox rust) ; 1.65 is the minimum -;; rust-cbindgen-0.23/0.24 dependencies -(define-public rust-unicode-ident-1 +(define icu4c-73 (package - (name "rust-unicode-ident") - (version "1.0.3") + (inherit icu4c) + (version "73.1") (source (origin (method url-fetch) - (uri (crate-uri "unicode-ident" version)) - (file-name (string-append name "-" version ".tar.gz")) + (uri (string-append + "https://github.com/unicode-org/icu/releases/download/release-" + (string-map (lambda (x) (if (char=? x #\.) #\- x)) version) + "/icu4c-" + (string-map (lambda (x) (if (char=? x #\.) #\_ x)) version) + "-src.tgz")) (sha256 (base32 - "1bqswc96ws8l6k7xx56dg521a3l5imi3mhlcz7rsi6a92mxb7xf4")))) - (build-system cargo-build-system) - (arguments - `(#:skip-build? #t)) - (home-page "https://github.com/dtolnay/unicode-ident") - (synopsis - "Better optimized implementation of the older unicode-xid crate") - (description - "Determine whether characters have the XID_Start or XID_Continue properties -according to Unicode Standard Annex #31") - (license (list license:unicode license:expat)))) - -(define-public rust-textwrap-0.15 - (package - (inherit rust-textwrap-0.12) - (name "rust-textwrap") - (version "0.15.0") - (source (origin - (method url-fetch) - (uri (crate-uri "textwrap" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1yw513k61lfiwgqrfvsjw1a5wpvm0azhpjr2kr0jhnq9c56is55i")))) - (arguments - `(#:skip-build? #t - #:cargo-inputs (("rust-hyphenation" ,rust-hyphenation-0.8) - ("rust-smawk" ,rust-smawk-0.3) - ("rust-terminal-size" ,rust-terminal-size-0.1) - ("rust-unicode-linebreak" ,rust-unicode-linebreak-0.1) - ("rust-unicode-width" ,rust-unicode-width-0.1)))))) + "0iccpdvc0kvpww5a31k9gjkqigyz016i7v80r9zamd34w4fl6mx4")))))) -(define-public rust-clap-lex-0.2 - (package - (name "rust-clap-lex") - (version "0.2.4") - (source (origin - (method url-fetch) - (uri (crate-uri "clap_lex" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1ib1a9v55ybnaws11l63az0jgz5xiy24jkdgsmyl7grcm3sz4l18")))) - (build-system cargo-build-system) - (arguments - `(#:skip-build? #t - #:cargo-inputs (("rust-os-str-bytes" ,rust-os-str-bytes-6)))) - (home-page "https://github.com/clap-rs/clap/tree/master/clap_lex") - (synopsis "Minimal, flexible command line parser") - (description "Minimal, flexible command line parser") - (license (list license:expat license:asl2.0)))) - -(define-public rust-clap-derive-3.2.15 - (package - (inherit rust-clap-derive-3) - (name "rust-clap-derive") - (version "3.2.15") - (source (origin - (method url-fetch) - (uri (crate-uri "clap_derive" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1d2c4vs345fwihkd8cc7m6acbiydcwramkd5mnp36p0a7g6jm9cv")))) - (arguments - `(#:skip-build? #t - #:cargo-inputs (("rust-heck" ,rust-heck-0.4) - ("rust-proc-macro-error" ,rust-proc-macro-error-1) - ("rust-proc-macro2" ,rust-proc-macro2-1) - ("rust-quote" ,rust-quote-1) - ("rust-syn" ,rust-syn-1)))))) - -(define-public rust-clap-3.2.16 - (package - (inherit rust-clap-3) - (name "rust-clap") - (version "3.2.16") - (source (origin - (method url-fetch) - (uri (crate-uri "clap" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1af06z8z7m3327yz1xvzxfjanclgpvvy3lssb745rig7adkbpnx3")))) - (arguments - `(#:skip-build? #t - #:cargo-inputs (("rust-atty" ,rust-atty-0.2) - ("rust-backtrace" ,rust-backtrace-0.3) - ("rust-bitflags" ,rust-bitflags-1) - ("rust-clap-derive" ,rust-clap-derive-3.2.15) - ("rust-clap-lex" ,rust-clap-lex-0.2) - ("rust-indexmap" ,rust-indexmap-1) - ("rust-once-cell" ,rust-once-cell-1) - ("rust-regex" ,rust-regex-1) - ("rust-strsim" ,rust-strsim-0.10) - ("rust-termcolor" ,rust-termcolor-1) - ("rust-terminal-size" ,rust-terminal-size-0.1) - ("rust-textwrap" ,rust-textwrap-0.15) - ("rust-unicase" ,rust-unicase-2) - ("rust-yaml-rust" ,rust-yaml-rust-0.4)))))) - -(define-public rust-cbindgen-0.24 - (package - (inherit rust-cbindgen-0.19) - (name "rust-cbindgen") - (version "0.24.3") - (source (origin - (method url-fetch) - (uri (crate-uri "cbindgen" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1yqxqsz2d0cppd8zwihk2139g5gy38wqgl9snj6rnk8gyvnqsdd6")))) - (arguments - `(#:cargo-inputs (("rust-clap" ,rust-clap-3.2.16) - ("rust-heck" ,rust-heck-0.4) - ("rust-indexmap" ,rust-indexmap-1) - ("rust-log" ,rust-log-0.4) - ("rust-proc-macro2" ,rust-proc-macro2-1) - ("rust-quote" ,rust-quote-1) - ("rust-serde" ,rust-serde-1) - ("rust-serde-json" ,rust-serde-json-1) - ("rust-syn" ,rust-syn-1) - ("rust-tempfile" ,rust-tempfile-3) - ("rust-toml" ,rust-toml-0.5)) - #:cargo-development-inputs (("rust-serial-test" ,rust-serial-test-0.5)))))) - -;; Bug with firefox build (v101-102) with cbindgen-0.24, see -;; https://bugzilla.mozilla.org/show_bug.cgi?id=1773259#c5 for possible patch -;; (untested) -(define-public rust-cbindgen-0.23 - (package - (inherit rust-cbindgen-0.24) - (name "rust-cbindgen") - (version "0.23.0") - (source (origin - (method url-fetch) - (uri (crate-uri "cbindgen" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "006rn3fn4njayjxr2vd24g1awssr9i3894nbmfzkybx07j728vav")))))) - -;; Update this id with every firefox update to it's release date. -;; It's used for cache validation and therefor can lead to strange bugs. -(define %firefox-esr-build-id "20221115000000") +;; Update this id with every firefox update to its release date. +;; It's used for cache validation and therefore can lead to strange bugs. +(define %firefox-esr-build-id "20240415130026") (define-public firefox-esr (package (name "firefox-esr") - (version "102.5.0esr") + (version "115.10.0esr") (source (origin (method url-fetch) (uri (string-append "https://archive.mozilla.org/pub/firefox/releases/" version "/source/firefox-" version ".source.tar.xz")) (sha256 - (base32 "1n2pq165fxmvgcr5mv3hhaid2vn7lh3jg03lf13kz4c5295x8z81")))) + (base32 "1wpf4vcrvnvhnfzqavbkzqbn51bds1l9f6ld4mzh9xwm7mrkrz8a")))) (build-system gnu-build-system) (arguments (list @@ -307,6 +156,7 @@ according to Unicode Standard Annex #31") "--disable-elf-hack")) #:imported-modules %cargo-utils-modules #:modules `((ice-9 regex) + (ice-9 string-fun) (ice-9 ftw) (srfi srfi-1) (srfi srfi-26) @@ -383,6 +233,22 @@ according to Unicode Standard Annex #31") (substitute* "build/RunCbindgen.py" (("\"--frozen\",") "")))) (delete 'bootstrap) + (add-before 'configure 'patch-SpeechDispatcherService.cpp + (lambda _ + (let* ((lib "libspeechd.so.2") + (file "dom/media/webspeech/synth/speechd/SpeechDispatcherService.cpp") + (old-content (call-with-input-file file get-string-all))) + (substitute + file + `((,(format #f "~s" lib) + . ,(lambda (line _) + (string-replace-substring + line + lib + (string-append #$speech-dispatcher "/lib/" lib)))))) + (if (string=? old-content + (call-with-input-file file get-string-all)) + (error "substitute did nothing, phase requires an update"))))) (add-before 'configure 'set-build-id ;; Firefox will write the timestamp to output, which is harmful ;; for reproducibility, so change it to a fixed date. Use a @@ -571,7 +437,7 @@ according to Unicode Standard Annex #31") gtk+ gtk+-2 hunspell - icu4c-71 + icu4c-73 jemalloc libcanberra libevent @@ -595,8 +461,9 @@ according to Unicode Standard Annex #31") pipewire pixman pulseaudio - startup-notification + speech-dispatcher sqlite + startup-notification eudev unzip zip @@ -611,12 +478,12 @@ according to Unicode Standard Annex #31") wasm32-wasi-clang-toolchain m4 nasm - node + node-lts perl pkg-config python rust-firefox-esr - rust-cbindgen-0.23 + rust-cbindgen-0.24 which yasm)) (home-page "https://mozilla.org/firefox/") @@ -663,71 +530,46 @@ MOZ_ENABLE_WAYLAND=1 exec ~a $@\n" ((firefox) out)) #t)))))) -;; Update this id with every firefox update to it's release date. -;; It's used for cache validation and therefor can lead to strange bugs. -(define %firefox-build-id "20221115000000") +;; Update this id with every firefox update to its release date. +;; It's used for cache validation and therefore can lead to strange bugs. +(define %firefox-build-id "20240422125740") (define-public firefox (package (inherit firefox-esr) (name "firefox") - (version "107.0") + (version "125.0.2") (source (origin (method url-fetch) (uri (string-append "https://archive.mozilla.org/pub/firefox/releases/" version "/source/firefox-" version ".source.tar.xz")) (sha256 - (base32 "0jjqarvs5ppyb3395rs4i39cb55li8q8ha9w72zyjmvv75d2wmla")))) + (base32 "16gpd6n52lshvkkha41z7xicggj64dw0qhr5gd07bcxsc4rmdl39")))) (arguments (substitute-keyword-arguments (package-arguments firefox-esr) ((#:phases phases) #~(modify-phases #$phases (replace 'set-build-id (lambda _ - (setenv "MOZ_BUILD_DATE" #$%firefox-build-id))))))) + (setenv "MOZ_BUILD_DATE" #$%firefox-build-id))) + (replace 'remove-cargo-frozen-flag + (lambda _ + ;; Remove --frozen flag from cargo invokation, otherwise it'll + ;; complain that it's not able to change Cargo.lock. + ;; https://bugzilla.mozilla.org/show_bug.cgi?id=1726373 + (substitute* "build/RunCbindgen.py" + (("args.append\\(\"--frozen\"\\)") "pass")))))))) (native-inputs (modify-inputs (package-native-inputs firefox-esr) (replace "rust" rust-firefox) (replace "rust:cargo" `(,rust-firefox "cargo")) - (replace "node" node-lts) - (replace "rust-cbindgen" rust-cbindgen-0.24))) + (replace "rust-cbindgen" rust-cbindgen-0.26))) (description "Full-featured browser client built from Firefox source tree, without the official icon and the name \"firefox\"."))) -(define-public firefox/wayland - (package - (inherit firefox) - (name "firefox-wayland") - (native-inputs '()) - (inputs - `(("bash" ,bash-minimal) - ("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")) - (out (assoc-ref %outputs "out")) - (exe (string-append out "/bin/firefox"))) - (mkdir-p (dirname exe)) - - (call-with-output-file exe - (lambda (port) - (format port "#!~a -MOZ_ENABLE_WAYLAND=1 exec ~a $@\n" - (string-append bash "/bin/bash") - (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)))))) +;; As of Firefox 121.0, Firefox uses Wayland by default. This means we no +;; longer need a seperate package for Firefox on Wayland. +(define-public firefox-wayland + (deprecated-package "firefox-wayland" firefox)) |