diff options
author | Ludovic Courtès <ludo@gnu.org> | 2022-06-08 14:46:24 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2022-06-08 14:46:24 +0200 |
commit | 8c3e9da13a3c92a7db308db8c0d81cb474ad7799 (patch) | |
tree | 88d06952aa5cc3a9c4991d9c43eb7950ff174fe1 /gnu/packages/gnuzilla.scm | |
parent | 5439c04ebdb7b6405f5ea2446b375f1d155a8d95 (diff) | |
parent | 0c5299200ffcd16370f047b7ccb187c60f30da34 (diff) | |
download | guix-8c3e9da13a3c92a7db308db8c0d81cb474ad7799.tar guix-8c3e9da13a3c92a7db308db8c0d81cb474ad7799.tar.gz |
Merge branch 'master' into core-updates
Diffstat (limited to 'gnu/packages/gnuzilla.scm')
-rw-r--r-- | gnu/packages/gnuzilla.scm | 1125 |
1 files changed, 553 insertions, 572 deletions
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 88637d2fcd..7f02984dd4 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -17,7 +17,7 @@ ;;; Copyright © 2020 Marius Bakke <marius@gnu.org> ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> -;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2021 Baptiste Strazzul <bstrazzull@hotmail.fr> ;;; ;;; This file is part of GNU Guix. @@ -449,13 +449,16 @@ in C/C++.") (sha256 (base32 "0l91cxdc5v9fps79ckb1kid4gw6v5qng1jd9zvaacwaiv628shx4")))) + (build-system gnu-build-system) (arguments - `(#:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums' - #:modules ((guix build cargo-utils) + (list + #:imported-modules %cargo-utils-modules ;for `generate-all-checksums' + #:modules `((guix build cargo-utils) ,@%gnu-build-system-modules) - #:test-target "check-jstests" - #:configure-flags - '(;; Disable debugging symbols to save space. + #:test-target "check-jstests" + #:configure-flags + #~(list + ;; Disable debugging symbols to save space. "--disable-debug" "--disable-debug-symbols" ;; This is important because without it gjs will segfault during the @@ -476,109 +479,111 @@ in C/C++.") "--with-system-nspr" "--with-system-zlib" "--with-intl-api") - #:phases - (modify-phases %standard-phases - (add-after 'patch-source-shebangs 'patch-cargo-checksums - (lambda _ - (let ((null-hash - "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855")) - (for-each (lambda (file) - (format #t "patching checksums in ~a~%" file) - (substitute* file - (("^checksum = \".*\"") - (string-append "checksum = \"" null-hash "\"")))) - (find-files "." "Cargo\\.lock$")) - (for-each generate-all-checksums - '("js" "third_party/rust")) - #t))) - (replace 'configure - (lambda* (#:key inputs outputs configure-flags #:allow-other-keys) - ;; The configure script does not accept environment variables as - ;; arguments. It also must be run from a different directory, - ;; but not the root directory either. - (let ((out (assoc-ref outputs "out"))) - (mkdir "run-configure-from-here") - (chdir "run-configure-from-here") - (setenv "SHELL" (which "sh")) - (setenv "CONFIG_SHELL" (which "sh")) - (setenv "AUTOCONF" (which "autoconf")) - (apply invoke "../js/src/configure" - (cons (string-append "--prefix=" out) - configure-flags)) - #t))) - (add-after 'unpack 'adjust-for-icu-68 - (lambda _ - (with-directory-excursion "js/src/tests" - ;; The test suite expects a lightly patched ICU 67. Since - ;; Guix is about to switch to ICU 68, massage the tests to - ;; work with that instead of patching ICU. Try removing this - ;; phase for newer versions of mozjs. - - ;; These tests look up locale names and expects to get - ;; "GB" instead of "UK". - (substitute* "non262/Intl/DisplayNames/language.js" - (("Traditionell, GB") - "Traditionell, UK")) - (substitute* "non262/Intl/DisplayNames/region.js" - (("\"GB\": \"GB\"") - "\"GB\": \"UK\"")) - - ;; XXX: Some localized time formats have changed, and - ;; substitution fails for accented characters, even though - ;; it works in the REPL(?). Just delete these for now. - (delete-file "non262/Intl/Date/toLocaleString_timeZone.js") - (delete-file "non262/Intl/Date/toLocaleDateString_timeZone.js") - - ;; Similarly, these get an unexpected "A" suffix when looking - ;; up a time in the "ar-MA-u-ca-islamicc" locale, which is - ;; tricky to substitute. - (delete-file "non262/Intl/DateTimeFormat/format_timeZone.js") - (delete-file "non262/Intl/DateTimeFormat/format.js") - - ;; This file compares a generated list of ICU locale names - ;; with actual lookups. Some have changed slightly, i.e. - ;; daf-Latn-ZZ -> daf-Latn-CI, so drop it for simplicity. - (delete-file "non262/Intl/Locale/likely-subtags-generated.js")) - - #t)) - (add-before 'check 'pre-check - (lambda _ - (with-directory-excursion "../js/src/tests" - (substitute* "shell/os.js" - ;; FIXME: Why does the killed process have an exit status? - ((".*killed process should not have exitStatus.*") - "")) - - ;; XXX: Delete all tests that test time zone functionality, - ;; because the test suite uses /etc/localtime to figure out - ;; the offset from the hardware clock, which does not work - ;; in the build container. See <tests/non262/Date/shell.js>. - (delete-file-recursively "non262/Date") - (delete-file "non262/Intl/DateTimeFormat/tz-environment-variable.js") - - (setenv "JSTESTS_EXTRA_ARGS" - (string-join - (list - ;; Do not run tests marked as "random". - "--exclude-random" - ;; Exclude web platform tests. - "--wpt=disabled" - ;; Respect the daemons configured number of jobs. - (string-append "--worker-count=" - (number->string (parallel-job-count))))))) - #t))))) + #:phases + #~(modify-phases %standard-phases + (add-after 'patch-source-shebangs 'patch-cargo-checksums + (lambda _ + (let ((null-hash + "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855")) + (for-each (lambda (file) + (format #t "patching checksums in ~a~%" file) + (substitute* file + (("^checksum = \".*\"") + (string-append "checksum = \"" null-hash "\"")))) + (find-files "." "Cargo\\.lock$")) + (for-each generate-all-checksums + '("js" "third_party/rust"))))) + (replace 'configure + (lambda* (#:key inputs configure-flags #:allow-other-keys) + ;; The configure script does not accept environment variables as + ;; arguments. It also must be run from a different directory, + ;; but not the root directory either. + (mkdir "run-configure-from-here") + (chdir "run-configure-from-here") + (setenv "SHELL" (which "sh")) + (setenv "CONFIG_SHELL" (which "sh")) + (setenv "AUTOCONF" (which "autoconf")) + (apply invoke "../js/src/configure" + (cons (string-append "--prefix=" #$output) + configure-flags)))) + (add-after 'unpack 'adjust-for-icu-68 + (lambda _ + (with-directory-excursion "js/src/tests" + ;; The test suite expects a lightly patched ICU 67. Since + ;; Guix is about to switch to ICU 68, massage the tests to + ;; work with that instead of patching ICU. Try removing this + ;; phase for newer versions of mozjs. + + ;; These tests look up locale names and expects to get + ;; "GB" instead of "UK". + (substitute* "non262/Intl/DisplayNames/language.js" + (("Traditionell, GB") + "Traditionell, UK")) + (substitute* "non262/Intl/DisplayNames/region.js" + (("\"GB\": \"GB\"") + "\"GB\": \"UK\"")) + + ;; XXX: Some localized time formats have changed, and + ;; substitution fails for accented characters, even though + ;; it works in the REPL(?). Just delete these for now. + (delete-file "non262/Intl/Date/toLocaleString_timeZone.js") + (delete-file "non262/Intl/Date/toLocaleDateString_timeZone.js") + + ;; Similarly, these get an unexpected "A" suffix when looking + ;; up a time in the "ar-MA-u-ca-islamicc" locale, which is + ;; tricky to substitute. + (delete-file "non262/Intl/DateTimeFormat/format_timeZone.js") + (delete-file "non262/Intl/DateTimeFormat/format.js") + + ;; This file compares a generated list of ICU locale names + ;; with actual lookups. Some have changed slightly, i.e. + ;; daf-Latn-ZZ -> daf-Latn-CI, so drop it for simplicity. + (delete-file "non262/Intl/Locale/likely-subtags-generated.js")))) + (add-before 'check 'pre-check + (lambda _ + (with-directory-excursion "../js/src/tests" + (substitute* "shell/os.js" + ;; FIXME: Why does the killed process have an exit status? + ((".*killed process should not have exitStatus.*") + "")) + + ;; XXX: Delete all tests that test time zone functionality, + ;; because the test suite uses /etc/localtime to figure out + ;; the offset from the hardware clock, which does not work + ;; in the build container. See <tests/non262/Date/shell.js>. + (delete-file-recursively "non262/Date") + (delete-file "non262/Intl/DateTimeFormat/tz-environment-variable.js") + + (setenv "JSTESTS_EXTRA_ARGS" + (string-join + (list + ;; Do not run tests marked as "random". + "--exclude-random" + ;; Exclude web platform tests. + "--wpt=disabled" + ;; Respect the daemons configured number of jobs. + (string-append "--worker-count=" + (number->string (parallel-job-count)))))))))))) (native-inputs - `(("autoconf" ,autoconf-2.13) - ("automake" ,automake) - ;; TODO(staging): Use the default LLVM in the next rebuild cycle. - ("llvm" ,llvm-9) ;for llvm-objdump - ("perl" ,perl) - ("pkg-config" ,pkg-config) - ("python" ,python-3) - ("rust" ,rust) - ("cargo" ,rust "cargo"))) + (list autoconf-2.13 + automake + ;; TODO(staging): Use the default LLVM in the next rebuild cycle. + llvm-9 ;for llvm-objdump + perl + pkg-config + python-3 + rust + `(,rust "cargo"))) (inputs - (list icu4c readline zlib)))) + (list icu4c readline zlib)) + (propagated-inputs + (list nspr)) ; in the Requires.private field of mozjs-*.pc + (home-page + "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey") + (synopsis "Mozilla javascript engine") + (description "SpiderMonkey is Mozilla's JavaScript engine written +in C/C++.") + (license license:mpl2.0))) ; and others for some files (define mozilla-compare-locales (origin @@ -709,8 +714,8 @@ in C/C++.") ;; XXXX: Workaround 'snippet' limitations. (define computed-origin-method (@@ (guix packages) computed-origin-method)) -(define %icecat-version "91.7.0-guix0-preview1") -(define %icecat-build-id "20220307000000") ;must be of the form YYYYMMDDhhmmss +(define %icecat-version "91.10.0-guix0-preview1") +(define %icecat-build-id "20220531000000") ;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' @@ -732,11 +737,11 @@ in C/C++.") "firefox-" upstream-firefox-version ".source.tar.xz")) (sha256 (base32 - "0npf1w6ic14zjn2h5zp8il4l0s61l9mykgnbcinxc47gw6myjflw")))) + "1fz11rmbb0qjcp84wz7hmq7wy1zh9bk6vk47xwhrinmmifrqqnl2")))) - (upstream-icecat-base-version "91.7.0") ; maybe older than base-version + (upstream-icecat-base-version "91.10.0") ; maybe older than base-version ;;(gnuzilla-commit (string-append "v" upstream-icecat-base-version)) - (gnuzilla-commit "76e23c5f1bcebc22f7936baa29f75c6c9415935e") + (gnuzilla-commit "4c39c619daf344f36962d958d809f6d42d3fce4e") (gnuzilla-source (origin (method git-fetch) @@ -748,7 +753,7 @@ in C/C++.") (string-take gnuzilla-commit 8))) (sha256 (base32 - "1qvhpyws73f5is7l5isiag6lbqj9gkbdkc9gj29lhhhgla8j6qyg")))) + "1fizsq0dphm40nj6vnvjp87v34iyg78gllv3jp5ssn43ln4jiyb7")))) ;; 'search-patch' returns either a valid file name or #f, so wrap it ;; in 'assume-valid-file-name' to avoid 'local-file' warnings. @@ -897,162 +902,156 @@ in C/C++.") (source icecat-source) (build-system mozilla-build-system) (inputs - `(("alsa-lib" ,alsa-lib) - ("bzip2" ,bzip2) - ("cups" ,cups) - ("dbus-glib" ,dbus-glib) - ("gdk-pixbuf" ,gdk-pixbuf) - ("glib" ,glib) - ("gtk+" ,gtk+) - ("gtk+-2" ,gtk+-2) - ;; UNBUNDLE-ME! ("graphite2" ,graphite2) - ("cairo" ,cairo) - ("pango" ,pango) - ("freetype" ,freetype) - ("font-dejavu" ,font-dejavu) - ;; UNBUNDLE-ME! ("harfbuzz" ,harfbuzz) - ("libcanberra" ,libcanberra) - ("libgnome" ,libgnome) - ("libjpeg-turbo" ,libjpeg-turbo) - ("libpng-apng" ,libpng-apng) - ;; UNBUNDLE-ME! ("libogg" ,libogg) - ;; UNBUNDLE-ME! ("libtheora" ,libtheora) ; wants theora-1.2, not yet released - ;; UNBUNDLE-ME! ("libvorbis" ,libvorbis) - ("libxft" ,libxft) - ("libevent" ,libevent) - ("libxinerama" ,libxinerama) - ("libxscrnsaver" ,libxscrnsaver) - ("libxcomposite" ,libxcomposite) - ("libxt" ,libxt) - ("libffi" ,libffi) - ("ffmpeg" ,ffmpeg) - ("libvpx" ,libvpx) - ("icu4c" ,icu4c) - ("pixman" ,pixman) - ("pulseaudio" ,pulseaudio) - ("mesa" ,mesa) - ("pciutils" ,pciutils) - ("mit-krb5" ,mit-krb5) - ("hunspell" ,hunspell) - ("libnotify" ,libnotify) - ;; See <https://bugs.gnu.org/32833> - ;; and related comments in the 'remove-bundled-libraries' phase. - ;; UNBUNDLE-ME! ("nspr" ,nspr) - ;; UNBUNDLE-ME! ("nss" ,nss) - ("shared-mime-info" ,shared-mime-info) - ("sqlite" ,sqlite) - ("eudev" ,eudev) - ("unzip" ,unzip) - ("zip" ,zip) - ("zlib" ,zlib))) + (list alsa-lib + bzip2 + cups + dbus-glib + gdk-pixbuf + glib + gtk+ + gtk+-2 + ;; UNBUNDLE-ME! graphite2 + cairo + pango + freetype + font-dejavu + ;; UNBUNDLE-ME! harfbuzz + libcanberra + libgnome + libjpeg-turbo + libpng-apng + ;; UNBUNDLE-ME! libogg + ;; UNBUNDLE-ME! libtheora ; wants theora-1.2, not yet released + ;; UNBUNDLE-ME! libvorbis + libxft + libevent + libxinerama + libxscrnsaver + libxcomposite + libxt + libffi + ffmpeg + libvpx + icu4c + pixman + pulseaudio + mesa + pciutils + mit-krb5 + hunspell + libnotify + ;; See <https://bugs.gnu.org/32833> + ;; and related comments in the 'remove-bundled-libraries' phase. + ;; UNBUNDLE-ME! nspr + ;; UNBUNDLE-ME! nss + shared-mime-info + sqlite + eudev + unzip + zip + zlib)) (native-inputs ;; The following patches are specific to the Guix packaging of IceCat, ;; and therefore we prefer to leave them out of 'source', which should be ;; a tarball suitable for compilation on any system that IceCat supports. ;; (Bug fixes and security fixes, however, should go in 'source'). - `(;; XXX TODO: Adapt these patches to IceCat 91. - ;; ("icecat-avoid-bundled-libraries.patch" - ;; ,(search-patch "icecat-avoid-bundled-libraries.patch")) - ;; ("icecat-use-system-graphite2+harfbuzz.patch" - ;; ,(search-patch "icecat-use-system-graphite2+harfbuzz.patch")) - ;; ("icecat-use-system-media-libs.patch" - ;; ,(search-patch "icecat-use-system-media-libs.patch")) + (list + ;; XXX TODO: Adapt these patches to IceCat 91. + ;; ("icecat-avoid-bundled-libraries.patch" + ;; ,(search-patch "icecat-avoid-bundled-libraries.patch")) + ;; ("icecat-use-system-graphite2+harfbuzz.patch" + ;; ,(search-patch "icecat-use-system-graphite2+harfbuzz.patch")) + ;; ("icecat-use-system-media-libs.patch" + ;; ,(search-patch "icecat-use-system-media-libs.patch")) + rust + `(,rust "cargo") + rust-cbindgen-0.19 + llvm-11 + clang-11 + perl + node + python-wrapper + yasm + nasm ; XXX FIXME: only needed on x86_64 and i686 + pkg-config + m4 + which)) + (arguments + (list + #:tests? #f ;not worth the cost + + ;; Some dynamic lib was determined at runtime, so rpath check may fail. + #:validate-runpath? #f + + #:configure-flags + #~(list + "--enable-application=browser" + "--with-distribution-id=org.gnu" + "--enable-geckodriver" + ;; Do not require addons in the global app or system directories to + ;; be signed by Mozilla. + "--with-unsigned-addon-scopes=app,system" + "--allow-addon-sideload" + + "--enable-pulseaudio" + + "--disable-tests" + "--disable-updater" + "--disable-crashreporter" + "--disable-eme" + + ;; Building with debugging symbols takes ~5GiB, so disable it. + "--disable-debug" + "--disable-debug-symbols" - ("patch" ,(canonical-package patch)) + "--enable-rust-simd" + "--enable-release" + "--enable-optimize" + "--enable-strip" + "--disable-elf-hack" + + ;; Clang is needed to build Stylo, Mozilla's new CSS engine. We must + ;; specify the clang paths manually, because otherwise the Mozilla + ;; build system looks in the directories returned by llvm-config + ;; --bindir and llvm-config --libdir, which return paths in the llvm + ;; package where clang is not found. + (string-append "--with-clang-path=" + (search-input-file %build-inputs "bin/clang")) + (string-append "--with-libclang-path=" + (dirname (search-input-file %build-inputs + "lib/libclang.so"))) + + ;; Hack to work around missing "unofficial" branding in icecat. + "--enable-official-branding" + + ;; Avoid bundled libraries. + "--with-system-jpeg" ;must be libjpeg-turbo + "--with-system-png" ;must be libpng-apng + "--with-system-zlib" + ;; UNBUNDLE-ME! "--with-system-bz2" + ;; UNBUNDLE-ME! "--with-system-libevent" + ;; UNBUNDLE-ME! "--with-system-ogg" + ;; UNBUNDLE-ME! "--with-system-vorbis" + ;; UNBUNDLE-ME! "--with-system-theora" ; wants theora-1.2, not yet released + ;; UNBUNDLE-ME! "--with-system-libvpx" + "--with-system-icu" - ("rust" ,rust) - ("cargo" ,rust "cargo") - ("rust-cbindgen" ,rust-cbindgen-0.19) - ("llvm" ,llvm-11) - ("clang" ,clang-11) - ("perl" ,perl) - ("node" ,node) - ("python" ,python) - ("python-2" ,python-2) - ("python2-pysqlite" ,python2-pysqlite) - ("yasm" ,yasm) - ("nasm" ,nasm) ; XXX FIXME: only needed on x86_64 and i686 - ("pkg-config" ,pkg-config) - ("m4" ,m4) - ("which" ,which))) - (arguments - `(#:tests? #f ;not worth the cost - - ;; Some dynamic lib was determined at runtime, so rpath check may fail. - #:validate-runpath? #f - - #:configure-flags `("--enable-application=browser" - "--with-distribution-id=org.gnu" - "--enable-geckodriver" - ;; Do not require addons in the global app or - ;; system directories to be signed by Mozilla. - "--with-unsigned-addon-scopes=app,system" - "--allow-addon-sideload" - - "--enable-pulseaudio" - - "--disable-tests" - "--disable-updater" - "--disable-crashreporter" - "--disable-eme" - - ;; Building with debugging symbols takes ~5GiB, so - ;; disable it. - "--disable-debug" - "--disable-debug-symbols" - - "--enable-rust-simd" - "--enable-release" - "--enable-optimize" - "--enable-strip" - "--disable-elf-hack" - - ;; Clang is needed to build Stylo, Mozilla's new - ;; CSS engine. We must specify the clang paths - ;; manually, because otherwise the Mozilla build - ;; system looks in the directories returned by - ;; llvm-config --bindir and llvm-config --libdir, - ;; which return paths in the llvm package where - ;; clang is not found. - ,(string-append "--with-clang-path=" - (assoc-ref %build-inputs "clang") - "/bin/clang") - ,(string-append "--with-libclang-path=" - (assoc-ref %build-inputs "clang") - "/lib") - - ;; Hack to work around missing - ;; "unofficial" branding in icecat. - "--enable-official-branding" - - ;; Avoid bundled libraries. - "--with-system-jpeg" ; must be libjpeg-turbo - "--with-system-png" ; must be libpng-apng - "--with-system-zlib" - ;; UNBUNDLE-ME! "--with-system-bz2" - ;; UNBUNDLE-ME! "--with-system-libevent" - ;; UNBUNDLE-ME! "--with-system-ogg" - ;; UNBUNDLE-ME! "--with-system-vorbis" - ;; UNBUNDLE-ME! "--with-system-theora" ; wants theora-1.2, not yet released - ;; UNBUNDLE-ME! "--with-system-libvpx" - "--with-system-icu" - - ;; See <https://bugs.gnu.org/32833> - ;; and related comments in the - ;; 'remove-bundled-libraries' phase below. - ;; UNBUNDLE-ME! "--with-system-nspr" - ;; UNBUNDLE-ME! "--with-system-nss" - - ;; UNBUNDLE-ME! "--with-system-harfbuzz" - ;; UNBUNDLE-ME! "--with-system-graphite2" - "--enable-system-pixman" - "--enable-system-ffi" - ;; UNBUNDLE-ME! "--enable-system-sqlite" - ) + ;; See <https://bugs.gnu.org/32833> + ;; and related comments in the + ;; 'remove-bundled-libraries' phase below. + ;; UNBUNDLE-ME! "--with-system-nspr" + ;; UNBUNDLE-ME! "--with-system-nss" - #:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums' + ;; UNBUNDLE-ME! "--with-system-harfbuzz" + ;; UNBUNDLE-ME! "--with-system-graphite2" + "--enable-system-pixman" + "--enable-system-ffi" + ;; UNBUNDLE-ME! "--enable-system-sqlite" + ) - #:modules ((ice-9 ftw) + #:imported-modules %cargo-utils-modules ;for `generate-all-checksums' + + #:modules `((ice-9 ftw) (ice-9 match) (srfi srfi-1) (srfi srfi-26) @@ -1061,257 +1060,247 @@ in C/C++.") (guix elf) (guix build gremlin) ,@%gnu-build-system-modules) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'apply-guix-specific-patches - (lambda* (#:key inputs native-inputs #:allow-other-keys) - (let ((patch (string-append (assoc-ref (or native-inputs inputs) - "patch") - "/bin/patch"))) - (for-each (match-lambda - ((label . file) - (when (and (string-prefix? "icecat-" label) - (string-suffix? ".patch" label)) - (format #t "applying '~a'...~%" file) - (invoke patch "--force" "--no-backup-if-mismatch" - "-p1" "--input" file)))) - (or native-inputs inputs))))) - (add-after 'apply-guix-specific-patches 'remove-bundled-libraries - (lambda _ - ;; Remove bundled libraries that we don't use, since they may - ;; contain unpatched security flaws, they waste disk space and - ;; memory, and may cause confusion. - (for-each (lambda (file) - (format #t "deleting '~a'...~%" file) - (delete-file-recursively file)) - '(;; FIXME: Removing the bundled icu breaks configure. - ;; * The bundled icu headers are used in some places. - ;; * The version number is taken from the bundled copy. - ;;"intl/icu" - ;; - ;; FIXME: A script from the bundled nspr is used. - ;;"nsprpub" - ;; - ;; FIXME: With the update to IceCat 60, using system NSS - ;; broke certificate validation. See - ;; <https://bugs.gnu.org/32833>. For now, we use - ;; the bundled NSPR and NSS. TODO: Investigate, - ;; and try to unbundle these libraries again. - ;; UNBUNDLE-ME! "security/nss" - ;; - ;; TODO: Use more system media libraries. See: - ;; <https://bugzilla.mozilla.org/show_bug.cgi?id=517422> - ;; * libtheora: esr60 wants v1.2, not yet released. - ;; * soundtouch: avoiding the bundled library would - ;; result in some loss of functionality. There's - ;; also an issue with exception handling - ;; configuration. It seems that this is needed in - ;; some moz.build: - ;; DEFINES['ST_NO_EXCEPTION_HANDLING'] = 1 - ;; * libopus - ;; * speex - ;; - "modules/freetype2" - ;; "media/libjpeg" ; needed for now, because media/libjpeg/moz.build is referenced from config/external/moz.build - ;; UNBUNDLE-ME! "modules/zlib" - ;; UNBUNDLE-ME! "ipc/chromium/src/third_party/libevent" - ;; UNBUNDLE-ME! "media/libvpx" - ;; UNBUNDLE-ME! "media/libogg" - ;; UNBUNDLE-ME! "media/libvorbis" - ;; UNBUNDLE-ME! "media/libtheora" ; wants theora-1.2, not yet released - ;; UNBUNDLE-ME! "media/libtremor" - ;; UNBUNDLE-ME! "gfx/harfbuzz" - ;; UNBUNDLE-ME! "gfx/graphite2" - "js/src/ctypes/libffi" - ;; UNBUNDLE-ME! "db/sqlite3" - )))) - (add-after 'remove-bundled-libraries 'fix-ffmpeg-runtime-linker - (lambda* (#:key inputs #:allow-other-keys) - (let* ((ffmpeg (assoc-ref inputs "ffmpeg")) - (libavcodec (string-append ffmpeg "/lib/libavcodec.so"))) - ;; Arrange to load libavcodec.so by its absolute file name. - (substitute* "dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp" - (("libavcodec\\.so") - libavcodec))))) - (add-after 'fix-ffmpeg-runtime-linker 'build-sandbox-whitelist - (lambda* (#:key inputs #:allow-other-keys) - (define (runpath-of lib) - (call-with-input-file lib - (compose elf-dynamic-info-runpath - elf-dynamic-info - parse-elf - get-bytevector-all))) - (define (runpaths-of-input label) - (let* ((dir (string-append (assoc-ref inputs label) "/lib")) - (libs (find-files dir "\\.so$"))) - (append-map runpath-of libs))) - ;; Populate the sandbox read-path whitelist as needed by ffmpeg. - (let* ((whitelist - (map (cut string-append <> "/") - (delete-duplicates - `(,(string-append (assoc-ref inputs "shared-mime-info") - "/share/mime") - ,(string-append (assoc-ref inputs "font-dejavu") - "/share/fonts") - "/run/current-system/profile/share/fonts" - ,@(append-map runpaths-of-input - '("mesa" "ffmpeg")))))) - (whitelist-string (string-join whitelist ",")) - (port (open-file "browser/app/profile/icecat.js" "a"))) - (format #t "setting 'security.sandbox.content.read_path_whitelist' to '~a'~%" - whitelist-string) - (format port "~%pref(\"security.sandbox.content.read_path_whitelist\", ~S);~%" - whitelist-string) - (close-output-port port)))) - (add-after 'patch-source-shebangs 'patch-cargo-checksums - (lambda _ - (use-modules (guix build cargo-utils)) - (let ((null-hash "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855")) - (for-each (lambda (file) - (format #t "patching checksums in ~a~%" file) - (substitute* file - (("^checksum = \".*\"") - (string-append "checksum = \"" null-hash "\"")))) - (find-files "." "Cargo.lock$")) - (for-each generate-all-checksums - '("services" - "js" - "third_party/rust" - "dom/media" - "dom/webauthn" - "toolkit" - "gfx" - "storage" - "modules" - "xpcom/rust" - "media" - "mozglue/static/rust" - "netwerk" - "remote" - "intl" - "servo" - "security/manager/ssl" - "build"))))) - (delete 'bootstrap) - (replace 'configure - ;; configure does not work followed by both "SHELL=..." and - ;; "CONFIG_SHELL=..."; set environment variables instead - (lambda* (#:key outputs configure-flags #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bash (which "bash")) - (abs-srcdir (getcwd)) - (flags `(,(string-append "--prefix=" out) - ,(string-append "--with-l10n-base=" - abs-srcdir "/l10n") - ,@configure-flags))) - (setenv "SHELL" bash) - (setenv "CONFIG_SHELL" bash) - - (setenv "AR" "llvm-ar") - (setenv "NM" "llvm-nm") - (setenv "CC" "clang") - (setenv "CXX" "clang++") - (setenv "LDFLAGS" (string-append "-Wl,-rpath=" - (assoc-ref outputs "out") - "/lib/icecat")) - - (setenv "MACH_USE_SYSTEM_PYTHON" "1") - (setenv "MOZ_NOSPAM" "1") - (setenv "MOZ_BUILD_DATE" ,%icecat-build-id) ; avoid timestamp - - (format #t "build directory: ~s~%" (getcwd)) - (format #t "configure flags: ~s~%" flags) - - (call-with-output-file "mozconfig" - (lambda (out) - (for-each (lambda (flag) - (format out "ac_add_options ~a\n" flag)) - flags))) - - (invoke "./mach" "configure")))) - (replace 'build - (lambda* (#:key (make-flags '()) (parallel-build? #t) - #:allow-other-keys) - (apply invoke "./mach" "build" - ;; mach will use parallel build if possible by default - `(,@(if parallel-build? - '() - '("-j1")) - ,@make-flags)))) - (add-after 'build 'neutralise-store-references - (lambda _ - ;; Mangle the store references to compilers & other build tools in - ;; about:buildconfig, reducing IceCat's closure by 1 GiB on x86-64. - (let* ((obj-dir (match (scandir "." (cut string-prefix? "obj-" <>)) - ((dir) dir))) - (file (string-append - obj-dir - "/dist/bin/chrome/toolkit/content/global/buildconfig.html"))) - (substitute* file - (("[0-9a-df-np-sv-z]{32}" hash) - (string-append (string-take hash 8) - "<!-- Guix: not a runtime dependency -->" - (string-drop hash 8))))))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (invoke "./mach" "install") - ;; The geckodriver binary is not installed by the above, for some - ;; reason. Use 'find-files' to avoid having to deal with the - ;; system/architecture-specific file name. - (install-file (first (find-files "." "geckodriver")) - (string-append (assoc-ref outputs "out") "/bin")))) - (add-after 'install '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")) - (ld-libs (map (lambda (label) - (string-append (assoc-ref inputs label) - "/lib")) - '("libpng-apng" - "libxscrnsaver" - "mesa" - "pciutils" - "mit-krb5" - "eudev" - "pulseaudio" - ;; For the integration of native notifications - "libnotify")))) - (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 ,ld-libs))))) - (add-after 'wrap-program 'install-desktop-entry - (lambda* (#:key outputs #:allow-other-keys) - ;; Install the '.desktop' file. - (let* ((desktop-file "taskcluster/docker/icecat-snap/icecat.desktop") - (out (assoc-ref outputs "out")) - (applications (string-append out "/share/applications"))) - (substitute* desktop-file - (("^Exec=icecat") (string-append "Exec=" out "/bin/icecat")) - (("IceCat") "GNU IceCat") - (("Icon=.*") "Icon=icecat\n") - (("NewWindow") "new-window") - (("NewPrivateWindow") "new-private-window")) - (install-file desktop-file applications)))) - (add-after 'install-desktop-entry 'install-icons - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (with-directory-excursion "browser/branding/official" - (for-each - (lambda (file) - (let* ((size (string-filter char-numeric? file)) - (icons (string-append out "/share/icons/hicolor/" - size "x" size "/apps"))) - (mkdir-p icons) - (copy-file file (string-append icons "/icecat.png")))) - '("default16.png" "default22.png" "default24.png" - "default32.png" "default48.png" "content/icon64.png" - "mozicon128.png" "default256.png"))))))))) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'apply-guix-specific-patches + (lambda* (#:key inputs native-inputs #:allow-other-keys) + (let ((patch (search-input-file inputs "bin/patch"))) + (for-each (match-lambda + ((label . file) + (when (and (string-prefix? "icecat-" label) + (string-suffix? ".patch" label)) + (format #t "applying '~a'...~%" file) + (invoke patch "--force" "--no-backup-if-mismatch" + "-p1" "--input" file)))) + (or native-inputs inputs))))) + (add-after 'apply-guix-specific-patches 'remove-bundled-libraries + (lambda _ + ;; Remove bundled libraries that we don't use, since they may + ;; contain unpatched security flaws, they waste disk space and + ;; memory, and may cause confusion. + (for-each (lambda (file) + (format #t "deleting '~a'...~%" file) + (delete-file-recursively file)) + '( ;; FIXME: Removing the bundled icu breaks configure. + ;; * The bundled icu headers are used in some places. + ;; * The version number is taken from the bundled copy. + ;;"intl/icu" + ;; + ;; FIXME: A script from the bundled nspr is used. + ;;"nsprpub" + ;; + ;; FIXME: With the update to IceCat 60, using system NSS + ;; broke certificate validation. See + ;; <https://bugs.gnu.org/32833>. For now, we use + ;; the bundled NSPR and NSS. TODO: Investigate, + ;; and try to unbundle these libraries again. + ;; UNBUNDLE-ME! "security/nss" + ;; + ;; TODO: Use more system media libraries. See: + ;; <https://bugzilla.mozilla.org/show_bug.cgi?id=517422> + ;; * libtheora: esr60 wants v1.2, not yet released. + ;; * soundtouch: avoiding the bundled library would + ;; result in some loss of functionality. There's + ;; also an issue with exception handling + ;; configuration. It seems that this is needed in + ;; some moz.build: + ;; DEFINES['ST_NO_EXCEPTION_HANDLING'] = 1 + ;; * libopus + ;; * speex + ;; + "modules/freetype2" + ;; "media/libjpeg" ; needed for now, because media/libjpeg/moz.build is referenced from config/external/moz.build + ;; UNBUNDLE-ME! "modules/zlib" + ;; UNBUNDLE-ME! "ipc/chromium/src/third_party/libevent" + ;; UNBUNDLE-ME! "media/libvpx" + ;; UNBUNDLE-ME! "media/libogg" + ;; UNBUNDLE-ME! "media/libvorbis" + ;; UNBUNDLE-ME! "media/libtheora" ; wants theora-1.2, not yet released + ;; UNBUNDLE-ME! "media/libtremor" + ;; UNBUNDLE-ME! "gfx/harfbuzz" + ;; UNBUNDLE-ME! "gfx/graphite2" + "js/src/ctypes/libffi" + ;; UNBUNDLE-ME! "db/sqlite3" + )))) + (add-after 'remove-bundled-libraries 'fix-ffmpeg-runtime-linker + (lambda* (#:key inputs #:allow-other-keys) + ;; Arrange to load libavcodec.so by its absolute file name. + (substitute* "dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp" + (("libavcodec\\.so") + (search-input-file inputs "lib/libavcodec.so"))))) + (add-after 'fix-ffmpeg-runtime-linker 'build-sandbox-whitelist + (lambda* (#:key inputs #:allow-other-keys) + (define (runpath-of lib) + (call-with-input-file lib + (compose elf-dynamic-info-runpath + elf-dynamic-info + parse-elf + get-bytevector-all))) + (define (runpaths-of-input label) + (let* ((dir (string-append (assoc-ref inputs label) "/lib")) + (libs (find-files dir "\\.so$"))) + (append-map runpath-of libs))) + ;; Populate the sandbox read-path whitelist as needed by ffmpeg. + (let* ((whitelist + (map (cut string-append <> "/") + (delete-duplicates + `(,(string-append (assoc-ref inputs "shared-mime-info") + "/share/mime") + ,(string-append (assoc-ref inputs "font-dejavu") + "/share/fonts") + "/run/current-system/profile/share/fonts" + ,@(append-map runpaths-of-input + '("mesa" "ffmpeg")))))) + (whitelist-string (string-join whitelist ",")) + (port (open-file "browser/app/profile/icecat.js" "a"))) + (format #t "setting 'security.sandbox.content.read_path_whitelist' to '~a'~%" + whitelist-string) + (format port "~%pref(\"security.sandbox.content.read_path_whitelist\", ~S);~%" + whitelist-string) + (close-output-port port)))) + (add-after 'patch-source-shebangs 'patch-cargo-checksums + (lambda _ + (use-modules (guix build cargo-utils)) + (let ((null-hash "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855")) + (for-each (lambda (file) + (format #t "patching checksums in ~a~%" file) + (substitute* file + (("^checksum = \".*\"") + (string-append "checksum = \"" null-hash "\"")))) + (find-files "." "Cargo.lock$")) + (for-each generate-all-checksums + '("services" + "js" + "third_party/rust" + "dom/media" + "dom/webauthn" + "toolkit" + "gfx" + "storage" + "modules" + "xpcom/rust" + "media" + "mozglue/static/rust" + "netwerk" + "remote" + "intl" + "servo" + "security/manager/ssl" + "build"))))) + (delete 'bootstrap) + (replace 'configure + ;; configure does not work followed by both "SHELL=..." and + ;; "CONFIG_SHELL=..."; set environment variables instead + (lambda* (#:key outputs configure-flags #:allow-other-keys) + (let* ((bash (which "bash")) + (abs-srcdir (getcwd)) + (flags `(,(string-append "--prefix=" #$output) + ,(string-append "--with-l10n-base=" + abs-srcdir "/l10n") + ,@configure-flags))) + (setenv "SHELL" bash) + (setenv "CONFIG_SHELL" bash) + + (setenv "AR" "llvm-ar") + (setenv "NM" "llvm-nm") + (setenv "CC" "clang") + (setenv "CXX" "clang++") + (setenv "LDFLAGS" (string-append "-Wl,-rpath=" + #$output "/lib/icecat")) + + (setenv "MACH_USE_SYSTEM_PYTHON" "1") + (setenv "MOZ_NOSPAM" "1") + (setenv "MOZ_BUILD_DATE" #$%icecat-build-id) ; avoid timestamp + + (format #t "build directory: ~s~%" (getcwd)) + (format #t "configure flags: ~s~%" flags) + + (call-with-output-file "mozconfig" + (lambda (port) + (for-each (lambda (flag) + (format port "ac_add_options ~a\n" flag)) + flags))) + + (invoke "./mach" "configure")))) + (replace 'build + (lambda* (#:key (make-flags '()) (parallel-build? #t) + #:allow-other-keys) + (apply invoke "./mach" "build" + ;; mach will use parallel build if possible by default + `(,@(if parallel-build? + '() + '("-j1")) + ,@make-flags)))) + (add-after 'build 'neutralise-store-references + (lambda _ + ;; Mangle the store references to compilers & other build tools in + ;; about:buildconfig, reducing IceCat's closure by 1 GiB on x86-64. + (let* ((obj-dir (match (scandir "." (cut string-prefix? "obj-" <>)) + ((dir) dir))) + (file (string-append + obj-dir + "/dist/bin/chrome/toolkit/content/global/buildconfig.html"))) + (substitute* file + (("[0-9a-df-np-sv-z]{32}" hash) + (string-append (string-take hash 8) + "<!-- Guix: not a runtime dependency -->" + (string-drop hash 8))))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (invoke "./mach" "install") + ;; The geckodriver binary is not installed by the above, for some + ;; reason. Use 'find-files' to avoid having to deal with the + ;; system/architecture-specific file name. + (install-file (first (find-files "." "geckodriver")) + (string-append #$output "/bin")))) + (add-after 'install 'wrap-program + (lambda* (#:key inputs #:allow-other-keys) + (let* ((lib (string-append #$output "/lib")) + (gtk #$(this-package-input "gtk+")) + (gtk-share (string-append gtk "/share")) + (ld-libs '#$(map (lambda (label) + (file-append (this-package-input label) "/lib")) + '("libpng-apng" + "libxscrnsaver" + "mesa" + "pciutils" + "mit-krb5" + "eudev" + "pulseaudio" + ;; For the integration of native notifications + "libnotify")))) + (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 ,ld-libs))))) + (add-after 'wrap-program 'install-desktop-entry + (lambda _ + ;; Install the '.desktop' file. + (let* ((desktop-file "taskcluster/docker/icecat-snap/icecat.desktop") + (applications (string-append #$output "/share/applications"))) + (substitute* desktop-file + (("^Exec=icecat") (string-append "Exec=" #$output "/bin/icecat")) + (("IceCat") "GNU IceCat") + (("Icon=.*") "Icon=icecat\n") + (("NewWindow") "new-window") + (("NewPrivateWindow") "new-private-window")) + (install-file desktop-file applications)))) + (add-after 'install-desktop-entry 'install-icons + (lambda _ + (with-directory-excursion "browser/branding/official" + (for-each + (lambda (file) + (let* ((size (string-filter char-numeric? file)) + (icons (string-append #$output "/share/icons/hicolor/" + size "x" size "/apps"))) + (mkdir-p icons) + (copy-file file (string-append icons "/icecat.png")))) + '("default16.png" "default22.png" "default24.png" + "default32.png" "default48.png" "content/icon64.png" + "mozicon128.png" "default256.png")))))))) (home-page "https://www.gnu.org/software/gnuzilla/") (synopsis "Entirely free browser derived from Mozilla Firefox") (description @@ -1331,11 +1320,11 @@ standards of the IceCat project.") (cpe-version . ,(first (string-split version #\-))))))) ;; Update this together with icecat! -(define %icedove-build-id "20220308000000") ;must be of the form YYYYMMDDhhmmss +(define %icedove-build-id "20220531000000") ;must be of the form YYYYMMDDhhmmss (define-public icedove (package (name "icedove") - (version "91.7") + (version "91.10.0") (source icecat-source) (properties `((cpe-name . "thunderbird_esr"))) @@ -1343,7 +1332,7 @@ standards of the IceCat project.") (arguments `(#:tests? #f ; no check target #:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums' - #:modules ((guix build utils) ;find-files + #:modules ((guix build utils) ;find-files (sxml simple) (ice-9 regex) ,@%gnu-build-system-modules) @@ -1354,8 +1343,7 @@ standards of the IceCat project.") (mkdir "comm") (copy-recursively (assoc-ref inputs "thunderbird-sources") "comm") - (delete-file "sourcestamp.txt") - #t)) + (delete-file "sourcestamp.txt"))) (add-after 'patch-source-shebangs 'patch-cargo-checksums (lambda _ (use-modules (guix build cargo-utils)) @@ -1368,16 +1356,14 @@ standards of the IceCat project.") (find-files "." "Cargo.lock$")) (for-each generate-all-checksums '("third_party/rust" - "toolkit/library/rust"))) - #t)) + "toolkit/library/rust"))))) ;; Fixes issue where each installation directory generates its own profile. ;; See e.g. https://trac.torproject.org/projects/tor/ticket/31457 (add-after 'patch-source-shebangs 'fix-profile-setting (lambda _ (substitute* "comm/mail/moz.configure" (("MOZ_DEDICATED_PROFILES, True") - "MOZ_DEDICATED_PROFILES, False")) - #t)) + "MOZ_DEDICATED_PROFILES, False")))) (add-after 'prepare-thunderbird-sources 'rename-to-icedove (lambda _ (substitute* "comm/mail/confvars.sh" @@ -1440,8 +1426,7 @@ standards of the IceCat project.") (("(pref\\(\"extensions.systemAddon.update.enabled\").*" _ m) (string-append m ", false);")) (("(pref\\(\"lightweightThemes.update.enabled\").*" _ m) - (string-append m ", false);"))) - #t)) + (string-append m ", false);"))))) (add-after 'build 'neutralize-store-references (lambda _ ;; Mangle the store references to compilers & other build tools in @@ -1457,8 +1442,7 @@ standards of the IceCat project.") (string-append store (string-take hash 8) "<!-- Guix: not a runtime dependency -->" - (string-drop hash 8)))) - #t)) + (string-drop hash 8)))))) (delete 'bootstrap) (replace 'configure (lambda* (#:key inputs outputs configure-flags #:allow-other-keys) @@ -1560,8 +1544,7 @@ standards of the IceCat project.") [Desktop Action ComposeMessage]~@ Name=Write new message~@ Exec=~@*~a/bin/icedove -compose~%" - out)))) - #t)) + out)))))) (add-after 'install 'wrap-program (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -1574,54 +1557,53 @@ standards of the IceCat project.") (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 ,eudev-lib))) - #t)))))) + `("LD_LIBRARY_PATH" prefix (,pulseaudio-lib ,eudev-lib))))))))) (inputs - `(("bzip2" ,bzip2) - ("cairo" ,cairo) - ("cups" ,cups) - ("dbus-glib" ,dbus-glib) - ("ffmpeg" ,ffmpeg) - ("freetype" ,freetype) - ("gdk-pixbuf" ,gdk-pixbuf) - ("glib" ,glib) - ("gtk+" ,gtk+) - ("gtk+-2" ,gtk+-2) - ("hunspell" ,hunspell) - ("icu4c" ,icu4c) - ("libcanberra" ,libcanberra) - ("libevent" ,libevent) - ("libffi" ,libffi) - ("libgnome" ,libgnome) - ("libjpeg-turbo" ,libjpeg-turbo) - ("libpng-apng" ,libpng-apng) - ("libvpx" ,libvpx) - ("libxcomposite" ,libxcomposite) - ("libxft" ,libxft) - ("libxinerama" ,libxinerama) - ("libxscrnsaver" ,libxscrnsaver) - ("libxt" ,libxt) - ("mesa" ,mesa) - ("mit-krb5" ,mit-krb5) - ("nspr" ,nspr-4.32) - ; FIXME: create nss >= 3.68 after core-updates merge - ;("nss" ,nss) - ("pango" ,pango) - ("pixman" ,pixman) - ("pulseaudio" ,pulseaudio) - ("sqlite" ,sqlite) - ("startup-notification" ,startup-notification) - ("eudev" ,eudev) - ("unzip" ,unzip) - ("zip" ,zip) - ("zlib" ,zlib))) + (list bzip2 + cairo + cups + dbus-glib + ffmpeg + freetype + gdk-pixbuf + glib + gtk+ + gtk+-2 + hunspell + icu4c + libcanberra + libevent + libffi + libgnome + libjpeg-turbo + libpng-apng + libvpx + libxcomposite + libxft + libxinerama + libxscrnsaver + libxt + mesa + mit-krb5 + nspr-4.32 + ;; FIXME: create nss >= 3.68 after core-updates merge + ;;nss + pango + pixman + pulseaudio + sqlite + startup-notification + eudev + unzip + zip + zlib)) (native-inputs `(("thunderbird-sources" ;; The changeset identifier is taken from the file "sourcestamp.txt" ;; 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 "39ccd0b9ea033f3292af90667e470b98a79eb8c9")) + ,(let ((changeset "4a4b901410a9055d078d0cdd7c62b2b5d56ffbad")) (origin (method hg-fetch) (uri (hg-reference @@ -1630,17 +1612,16 @@ standards of the IceCat project.") (file-name (string-append "thunderbird-" version "-checkout")) (sha256 (base32 - "0zk6f3yxqq5dn4dh96jmip3xy66n4lnai5fan31kl2l63vfcm1ag"))))) + "0i2wpi08jfksqqc0j6q362nyk3zmlqd5ds2w7mm74infvrw6fzzq"))))) ("cargo" ,rust "cargo") - ("clang" ,clang-11) - ("llvm" ,llvm-11) + ("clang" ,clang) + ("llvm" ,llvm) ("m4" ,m4) ("nasm" ,nasm) ("node" ,node) ("perl" ,perl) ("pkg-config" ,pkg-config) - ("python" ,python) - ("python2" ,python-2.7) + ("python" ,python-wrapper) ("rust" ,rust) ("rust-cbindgen" ,rust-cbindgen-0.19) ("which" ,which) |