* Re: IceCat-78.2 preview on 'wip-icecat-78' branch; need icedove-78.
2020-09-15 10:52 ` Mark H Weaver
@ 2020-09-22 19:00 ` Jonathan Brielmaier
2020-09-27 15:21 ` Jonathan Brielmaier
0 siblings, 1 reply; 10+ messages in thread
From: Jonathan Brielmaier @ 2020-09-22 19:00 UTC (permalink / raw)
To: Mark H Weaver; +Cc: guix-devel
[-- Attachment #1: Type: text/plain, Size: 1391 bytes --]
On 15.09.20 12:52, Mark H Weaver wrote:
> Hi Jonathan,
>
> Jonathan Brielmaier <jonathan.brielmaier@web.de> writes:
>> I had a look. It's at the moment two WIP patches here:
>> https://gitlab.com/jonsger/Guix/-/tree/wip-icedove-78
>
> Thanks very much for working on it.
>
>> Icedove 78 needs nss >= 3.53.1 and we have only 3.52.1.
>
> An easy solution for now would be to use the bundled NSS, by simply
> removing --with-system-nss from the mozconfig and removing 'nss' from
> the inputs. What do you think?
In the mean time I got icedove 78 working. The two patches are attached.
gnu: Add nss@3.56.
- It's basically like nss 3.52.1 apart from two files are gone in
'install phase. The only way I found is to copy all phases over and
remove those two lines.
```
(delete-file (string-append lib "/libgtest1.so"))
(delete-file (string-append lib "/libgtestutil.so"))
```
- nss-3.56-pkgconfig.patch is like nss-pkgconfig.patch with only
difference in a slightly adjusted nss/manifest.mn diff. I don't know how
to do that more elegant
gnu: icedove: Update to 78.2.2.
- Mostly house keeping and some updates of components. To get icedove
run properly we need icedove-78-fix-new-page.patch, otherwise it's
completely broken. I found no other way to add it, then to use the
release tarball instead of the icecat sources.
~Jonathan
Sent from Icedove 78 :P
[-- Attachment #2: 0001-gnu-Add-nss-3.56.patch --]
[-- Type: text/x-patch, Size: 12301 bytes --]
From 86df2060bf729d848badffd569ac18daf705c4ad Mon Sep 17 00:00:00 2001
From: Jonathan Brielmaier <jonathan.brielmaier@web.de>
Date: Tue, 22 Sep 2020 20:34:42 +0200
Subject: [PATCH 1/2] gnu: Add nss@3.56.
Icedove 78 requires nss > 3.53. This version is the only one building
out-of-the-box.
* gnu/packages/nss.scm (nss-3.56): New variable.
* gnu/packages/patches/nss-3.56-pkgconfig.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
---
gnu/local.mk | 1 +
gnu/packages/nss.scm | 92 +++++++
gnu/packages/patches/nss-3.56-pkgconfig.patch | 228 ++++++++++++++++++
3 files changed, 321 insertions(+)
create mode 100644 gnu/packages/patches/nss-3.56-pkgconfig.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index dd15126b26..579974b517 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1352,6 +1352,7 @@ dist_patch_DATA = \
%D%/packages/patches/nsis-env-passthru.patch \
%D%/packages/patches/nss-increase-test-timeout.patch \
%D%/packages/patches/nss-pkgconfig.patch \
+ %D%/packages/patches/nss-3.56-pkgconfig.patch \
%D%/packages/patches/ntfs-3g-CVE-2019-9755.patch \
%D%/packages/patches/nvi-assume-preserve-path.patch \
%D%/packages/patches/nvi-dbpagesize-binpower.patch \
diff --git a/gnu/packages/nss.scm b/gnu/packages/nss.scm
index b19ad7e1e9..32267b0a83 100644
--- a/gnu/packages/nss.scm
+++ b/gnu/packages/nss.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -191,3 +192,94 @@ applications. Applications built with NSS can support SSL v2 and v3, TLS,
PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates, and other
security standards.")
(license license:mpl2.0)))
+
+(define-public nss-3.56
+ (package
+ (inherit nss)
+ (version "3.56")
+ (source (origin
+ (method url-fetch)
+ (uri (let ((version-with-underscores
+ (string-join (string-split version #\.) "_")))
+ (string-append
+ "https://ftp.mozilla.org/pub/mozilla.org/security/nss/"
+ "releases/NSS_" version-with-underscores "_RTM/src/"
+ "nss-" version ".tar.gz")))
+ (sha256
+ (base32
+ "174f0ki2f8szkgv02jlsg2ci332sl9dabr2vcwnyjp1vxplf0xgq"))
+ ;; Create nss.pc and nss-config.
+ (patches (search-patches "nss-3.56-pkgconfig.patch"
+ "nss-increase-test-timeout.patch"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Delete the bundled copy of these libraries.
+ (delete-file-recursively "nss/lib/zlib")
+ (delete-file-recursively "nss/lib/sqlite")
+ #t))))
+ (arguments
+ `(#:parallel-build? #f ; not supported
+ #:make-flags
+ (let* ((out (assoc-ref %outputs "out"))
+ (nspr (string-append (assoc-ref %build-inputs "nspr")))
+ (rpath (string-append "-Wl,-rpath=" out "/lib/nss")))
+ (list "-C" "nss" (string-append "PREFIX=" out)
+ "NSDISTMODE=copy"
+ "NSS_USE_SYSTEM_SQLITE=1"
+ (string-append "NSPR_INCLUDE_DIR=" nspr "/include/nspr")
+ ;; Add $out/lib/nss to RPATH.
+ (string-append "RPATH=" rpath)
+ (string-append "LDFLAGS=" rpath)))
+ #:modules ((guix build gnu-build-system)
+ (guix build utils)
+ (ice-9 ftw)
+ (ice-9 match)
+ (srfi srfi-26))
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ (setenv "CC" "gcc")
+ ;; Tells NSS to build for the 64-bit ABI if we are 64-bit system.
+ ,@(match (%current-system)
+ ((or "x86_64-linux" "aarch64-linux")
+ `((setenv "USE_64" "1")))
+ (_
+ '()))
+ #t))
+ (replace 'check
+ (lambda _
+ ;; Use 127.0.0.1 instead of $HOST.$DOMSUF as HOSTADDR for testing.
+ ;; The later requires a working DNS or /etc/hosts.
+ (setenv "DOMSUF" "localdomain")
+ (setenv "USE_IP" "TRUE")
+ (setenv "IP_ADDRESS" "127.0.0.1")
+
+ ;; The "PayPalEE.cert" certificate expires every six months,
+ ;; leading to test failures:
+ ;; <https://bugzilla.mozilla.org/show_bug.cgi?id=609734>. To
+ ;; work around that, set the time to roughly the release date.
+ (invoke "faketime" "2020-02-01" "./nss/tests/all.sh")))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append (assoc-ref outputs "bin") "/bin"))
+ (inc (string-append out "/include/nss"))
+ (lib (string-append out "/lib/nss"))
+ (obj (match (scandir "dist" (cut string-suffix? "OBJ" <>))
+ ((obj) (string-append "dist/" obj)))))
+ ;; Install nss-config to $out/bin.
+ (install-file (string-append obj "/bin/nss-config")
+ (string-append out "/bin"))
+ (delete-file (string-append obj "/bin/nss-config"))
+ ;; Install nss.pc to $out/lib/pkgconfig.
+ (install-file (string-append obj "/lib/pkgconfig/nss.pc")
+ (string-append out "/lib/pkgconfig"))
+ (delete-file (string-append obj "/lib/pkgconfig/nss.pc"))
+ (rmdir (string-append obj "/lib/pkgconfig"))
+ ;; Install other files.
+ (copy-recursively "dist/public/nss" inc)
+ (copy-recursively (string-append obj "/bin") bin)
+ (copy-recursively (string-append obj "/lib") lib)
+ #t))))))))
diff --git a/gnu/packages/patches/nss-3.56-pkgconfig.patch b/gnu/packages/patches/nss-3.56-pkgconfig.patch
new file mode 100644
index 0000000000..42fff822bc
--- /dev/null
+++ b/gnu/packages/patches/nss-3.56-pkgconfig.patch
@@ -0,0 +1,228 @@
+Description: Create nss.pc and nss-config
+Author: Lars Wendler <polynomial-c@gentoo.org>
+Source: http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/nss/files/nss-3.17.1-gentoo-fixups.patch
+
+Modifications:
+ Change libdir from ${prefix}/lib64 to ${prefix}/lib/nss.
+ Remove optional patching in nss/Makefile.
+ Include -L$libdir in output from "nss-config --libs".
+
+Later adapted to apply cleanly to nss-3.53.
+
+--- nss-3.21/nss/config/Makefile
++++ nss-3.21/nss/config/Makefile
+@@ -0,0 +1,40 @@
++CORE_DEPTH = ..
++DEPTH = ..
++
++include $(CORE_DEPTH)/coreconf/config.mk
++
++NSS_MAJOR_VERSION = `grep "NSS_VMAJOR" ../lib/nss/nss.h | awk '{print $$3}'`
++NSS_MINOR_VERSION = `grep "NSS_VMINOR" ../lib/nss/nss.h | awk '{print $$3}'`
++NSS_PATCH_VERSION = `grep "NSS_VPATCH" ../lib/nss/nss.h | awk '{print $$3}'`
++PREFIX = /usr
++
++all: export libs
++
++export:
++ # Create the nss.pc file
++ mkdir -p $(DIST)/lib/pkgconfig
++ sed -e "s,@prefix@,$(PREFIX)," \
++ -e "s,@exec_prefix@,\$${prefix}," \
++ -e "s,@libdir@,\$${prefix}/lib/nss," \
++ -e "s,@includedir@,\$${prefix}/include/nss," \
++ -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION),g" \
++ -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \
++ -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \
++ nss.pc.in > nss.pc
++ chmod 0644 nss.pc
++ cp nss.pc $(DIST)/lib/pkgconfig
++
++ # Create the nss-config script
++ mkdir -p $(DIST)/bin
++ sed -e "s,@prefix@,$(PREFIX)," \
++ -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION)," \
++ -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \
++ -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \
++ nss-config.in > nss-config
++ chmod 0755 nss-config
++ cp nss-config $(DIST)/bin
++
++libs:
++
++dummy: all export libs
++
+--- nss-3.21/nss/config/nss-config.in
++++ nss-3.21/nss/config/nss-config.in
+@@ -0,0 +1,145 @@
++#!/bin/sh
++
++prefix=@prefix@
++
++major_version=@NSS_MAJOR_VERSION@
++minor_version=@NSS_MINOR_VERSION@
++patch_version=@NSS_PATCH_VERSION@
++
++usage()
++{
++ cat <<EOF
++Usage: nss-config [OPTIONS] [LIBRARIES]
++Options:
++ [--prefix[=DIR]]
++ [--exec-prefix[=DIR]]
++ [--includedir[=DIR]]
++ [--libdir[=DIR]]
++ [--version]
++ [--libs]
++ [--cflags]
++Dynamic Libraries:
++ nss
++ ssl
++ smime
++ nssutil
++EOF
++ exit $1
++}
++
++if test $# -eq 0; then
++ usage 1 1>&2
++fi
++
++lib_ssl=yes
++lib_smime=yes
++lib_nss=yes
++lib_nssutil=yes
++
++while test $# -gt 0; do
++ case "$1" in
++ -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
++ *) optarg= ;;
++ esac
++
++ case $1 in
++ --prefix=*)
++ prefix=$optarg
++ ;;
++ --prefix)
++ echo_prefix=yes
++ ;;
++ --exec-prefix=*)
++ exec_prefix=$optarg
++ ;;
++ --exec-prefix)
++ echo_exec_prefix=yes
++ ;;
++ --includedir=*)
++ includedir=$optarg
++ ;;
++ --includedir)
++ echo_includedir=yes
++ ;;
++ --libdir=*)
++ libdir=$optarg
++ ;;
++ --libdir)
++ echo_libdir=yes
++ ;;
++ --version)
++ echo ${major_version}.${minor_version}.${patch_version}
++ ;;
++ --cflags)
++ echo_cflags=yes
++ ;;
++ --libs)
++ echo_libs=yes
++ ;;
++ ssl)
++ lib_ssl=yes
++ ;;
++ smime)
++ lib_smime=yes
++ ;;
++ nss)
++ lib_nss=yes
++ ;;
++ nssutil)
++ lib_nssutil=yes
++ ;;
++ *)
++ usage 1 1>&2
++ ;;
++ esac
++ shift
++done
++
++# Set variables that may be dependent upon other variables
++if test -z "$exec_prefix"; then
++ exec_prefix=`pkg-config --variable=exec_prefix nss`
++fi
++if test -z "$includedir"; then
++ includedir=`pkg-config --variable=includedir nss`
++fi
++if test -z "$libdir"; then
++ libdir=`pkg-config --variable=libdir nss`
++fi
++
++if test "$echo_prefix" = "yes"; then
++ echo $prefix
++fi
++
++if test "$echo_exec_prefix" = "yes"; then
++ echo $exec_prefix
++fi
++
++if test "$echo_includedir" = "yes"; then
++ echo $includedir
++fi
++
++if test "$echo_libdir" = "yes"; then
++ echo $libdir
++fi
++
++if test "$echo_cflags" = "yes"; then
++ echo -I$includedir
++fi
++
++if test "$echo_libs" = "yes"; then
++ libdirs=-L$libdir
++ if test -n "$lib_ssl"; then
++ libdirs="$libdirs -lssl${major_version}"
++ fi
++ if test -n "$lib_smime"; then
++ libdirs="$libdirs -lsmime${major_version}"
++ fi
++ if test -n "$lib_nss"; then
++ libdirs="$libdirs -lnss${major_version}"
++ fi
++ if test -n "$lib_nssutil"; then
++ libdirs="$libdirs -lnssutil${major_version}"
++ fi
++ echo $libdirs
++fi
++
+--- nss-3.21/nss/config/nss.pc.in
++++ nss-3.21/nss/config/nss.pc.in
+@@ -0,0 +1,12 @@
++prefix=@prefix@
++exec_prefix=@exec_prefix@
++libdir=@libdir@
++includedir=@includedir@
++
++Name: NSS
++Description: Network Security Services
++Version: @NSS_MAJOR_VERSION@.@NSS_MINOR_VERSION@.@NSS_PATCH_VERSION@
++Requires: nspr >= 4.8
++Libs: -L${libdir} -lssl3 -lsmime3 -lnss3 -lnssutil3
++Cflags: -I${includedir}
++
+--- nss-3.21/nss/manifest.mn
++++ nss-3.21/nss/manifest.mn
+@@ -10,7 +10,7 @@
+
+ RELEASE = nss
+
+-DIRS = coreconf lib cmd cpputil gtests
++DIRS = coreconf lib cmd cpputil gtests config
+
+ lib: coreconf
+ cmd: lib
--
2.28.0
[-- Attachment #3: 0002-gnu-icedove-Update-to-78.2.2.patch --]
[-- Type: text/x-patch, Size: 13576 bytes --]
From d4fc615be83009ac79a36ecd9a0997d6a11dde55 Mon Sep 17 00:00:00 2001
From: Jonathan Brielmaier <jonathan.brielmaier@web.de>
Date: Tue, 22 Sep 2020 20:40:49 +0200
Subject: [PATCH 2/2] gnu: icedove: Update to 78.2.2.
* gnu/packages/gnuzilla.scm (icedove): Update to 78.2.2.
[source]: Separate from icecat-source. This allows adding patches for
icedove only.
[arguments]: We don't need to copy stuff in 'prepare-thunderbird-sources
phase anymore. Use more flexible approach for generating cargo checksums
from icecat. Update files in 'rename-to-icedove phase. Remove gone
configure flags and rename disable-ion to disable-jit.
[inputs]: Update icu4c to version 67 and nss to 3.56.
[native-inputs]: Remove thunderbird-sources as the release tarball is
used instead. Update rust and cargo to 1.41, rust-cbindgen to 0.14 and
node to 10.22.
* gnu/packages/patches/icedove-78-fix-new-page.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
Tested-by: Jonathan Brielmaier <jonathan.brielmaier@web.de>
---
gnu/local.mk | 1 +
gnu/packages/gnuzilla.scm | 77 ++++++++-----------
.../patches/icedove-78-fix-new-page.patch | 63 +++++++++++++++
3 files changed, 94 insertions(+), 47 deletions(-)
create mode 100644 gnu/packages/patches/icedove-78-fix-new-page.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index 579974b517..f715a09b49 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1137,6 +1137,7 @@ dist_patch_DATA = \
%D%/packages/patches/icecat-use-system-media-libs.patch \
%D%/packages/patches/icedtea-6-hotspot-gcc-segfault-workaround.patch \
%D%/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch \
+ %D%/packages/patches/icedove-78-fix-new-page.patch \
%D%/packages/patches/icu4c-CVE-2020-10531.patch \
%D%/packages/patches/id3lib-CVE-2007-4460.patch \
%D%/packages/patches/id3lib-UTF16-writing-bug.patch \
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 5f4d179b87..3c96775c11 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -1154,12 +1154,19 @@ standards of the IceCat project.")
(cpe-version . ,(first (string-split version #\-)))))))
;; Update this together with icecat!
-(define %icedove-build-id "20200825000000") ;must be of the form YYYYMMDDhhmmss
+(define %icedove-build-id "20200910000000") ;must be of the form YYYYMMDDhhmmss
(define-public icedove
(package
(name "icedove")
- (version "68.12.0")
- (source icecat-source)
+ (version "78.2.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://ftp.mozilla.org/pub/thunderbird/releases/"
+ version "/source/thunderbird-" version ".source.tar.xz"))
+ (patches (search-patches "icedove-78-fix-new-page.patch")) ; remove in 78.3.0
+ (sha256
+ (base32
+ "0rzcfkcsxwspbbcf9c0fwclvajixwfx600hhbqc6l7yja4an9s33"))))
(properties
`((cpe-name . "thunderbird_esr")))
(build-system gnu-build-system)
@@ -1174,9 +1181,6 @@ standards of the IceCat project.")
(modify-phases %standard-phases
(add-after 'unpack 'prepare-thunderbird-sources
(lambda* (#:key inputs #:allow-other-keys)
- (mkdir "comm")
- (copy-recursively (assoc-ref inputs "thunderbird-sources")
- "comm")
(delete-file-recursively "obj-x86_64-pc-linux-gnu")
(delete-file "sourcestamp.txt")
#t))
@@ -1184,10 +1188,15 @@ standards of the IceCat project.")
(lambda _
(use-modules (guix build cargo-utils))
(let ((null-hash "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"))
- (substitute* '("Cargo.lock" "gfx/wr/Cargo.lock")
- (("(\"checksum .* = )\".*\"" all name)
- (string-append name "\"" null-hash "\"")))
- (generate-all-checksums "third_party/rust"))
+ (for-each (lambda (file)
+ (format #t "patching checksums in ~a~%" file)
+ (substitute* (find-files "." "Cargo.lock$")
+ (("^checksum = \".*\"")
+ (string-append "checksum = \"" null-hash "\""))))
+ (find-files "." "Cargo.lock$"))
+ (for-each generate-all-checksums
+ '("third_party/rust"
+ "toolkit/library/rust")))
#t))
;; Fixes issue where each installation directory generates its own profile.
;; See e.g. https://trac.torproject.org/projects/tor/ticket/31457
@@ -1229,12 +1238,10 @@ standards of the IceCat project.")
(("mozilla.org") "guix.gnu.org")))
;; Remove other mentions of Thunderbird in user-visible text.
(with-directory-excursion "comm/mail/base/content"
- (substitute* '("newInstallPage.xhtml"
- "overrides/app-license-name.html"
- "newInstall.xul")
+ (substitute* '("overrides/app-license-name.html")
(("Thunderbird") "Icedove")))
(with-directory-excursion "comm/mail/components/"
- (substitute* '("mailGlue.js"
+ (substitute* '("MailGlue.jsm"
"extensions/schemas/addressBook.json"
"extensions/schemas/tabs.json"
"extensions/schemas/cloudFile.json"
@@ -1244,14 +1251,9 @@ standards of the IceCat project.")
"im/messages/mail/Info.plist"
"enterprisepolicies/moz.build"
"enterprisepolicies/helpers/moz.build"
- "enterprisepolicies/schemas/moz.build"
- "preferences/chat.inc.xul")
+ "enterprisepolicies/schemas/moz.build")
(("Thunderbird") "Icedove")))
- (substitute* "comm/calendar/lightning/lightning-packager.mk"
- (("ifeq \\(thunderbird")
- "ifeq (icedove"))
(substitute* '("comm/mailnews/base/prefs/content/accountUtils.js"
- "comm/mailnews/extensions/newsblog/content/feed-subscriptions.js"
"comm/common/src/customizeToolbar.js")
(("AppConstants.MOZ_APP_NAME (.)= \"thunderbird" _ e)
(format #f "AppConstants.MOZ_APP_NAME ~a= \"icedove" e)))
@@ -1324,8 +1326,7 @@ standards of the IceCat project.")
"ac_add_options --disable-debug\n"
"ac_add_options --disable-debug-symbols\n"
"ac_add_options --disable-elf-hack\n"
- "ac_add_options --disable-gconf\n"
- "ac_add_options --disable-ion\n"
+ "ac_add_options --disable-jit\n"
"ac_add_options --disable-necko-wifi\n"
"ac_add_options --disable-official-branding\n"
"ac_add_options --disable-tests\n"
@@ -1333,16 +1334,13 @@ standards of the IceCat project.")
"ac_add_options --disable-webrtc\n"
"ac_add_options --enable-application=comm/mail\n"
"ac_add_options --enable-calendar\n"
- "ac_add_options --enable-content-sandbox\n"
"ac_add_options --enable-default-toolkit=\"cairo-gtk3\"\n"
"ac_add_options --enable-optimize\n"
"ac_add_options --enable-pulseaudio\n"
"ac_add_options --enable-release\n"
- "ac_add_options --enable-startup-notification\n"
"ac_add_options --enable-strip\n"
"ac_add_options --enable-system-ffi\n"
"ac_add_options --enable-system-pixman\n"
- "ac_add_options --enable-system-sqlite\n"
"ac_add_options --prefix=" out "\n"
"ac_add_options --with-clang-path=" (assoc-ref %build-inputs "clang") "/bin/clang\n"
"ac_add_options --with-distribution-id=org.gnu\n"
@@ -1413,7 +1411,7 @@ standards of the IceCat project.")
("gtk+" ,gtk+)
("gtk+-2" ,gtk+-2)
("hunspell" ,hunspell)
- ("icu4c" ,icu4c)
+ ("icu4c" ,icu4c-67)
("libcanberra" ,libcanberra)
("libevent" ,libevent)
("libffi" ,libffi)
@@ -1429,7 +1427,7 @@ standards of the IceCat project.")
("mesa" ,mesa)
("mit-krb5" ,mit-krb5)
("nspr" ,nspr)
- ("nss" ,nss)
+ ("nss" ,nss-3.56)
("pango" ,pango)
("pixman" ,pixman)
("pulseaudio" ,pulseaudio)
@@ -1439,33 +1437,18 @@ standards of the IceCat project.")
("zip" ,zip)
("zlib" ,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 "b41cdff70b185358d9c4c1d4a36cfad15a24f001"))
- (origin
- (method hg-fetch)
- (uri (hg-reference
- (url "https://hg.mozilla.org/releases/comm-esr68")
- (changeset changeset)))
- (file-name (string-append "thunderbird-" version "-checkout"))
- (sha256
- (base32
- "1xvky8p5r41mxdyg9amydy94p51wmmdwdz0zq2vzspr9viixf7xm")))))
- ("autoconf" ,autoconf-2.13)
- ("cargo" ,rust "cargo")
+ `(("autoconf" ,autoconf-2.13)
+ ("cargo" ,rust-1.41 "cargo")
("clang" ,clang)
("llvm" ,llvm)
("nasm" ,nasm)
- ("node" ,node)
+ ("node" ,node-10.22)
("perl" ,perl)
("pkg-config" ,pkg-config)
("python" ,python)
("python2" ,python-2.7)
- ("rust" ,rust)
- ("rust-cbindgen" ,rust-cbindgen)
+ ("rust" ,rust-1.41)
+ ("rust-cbindgen" ,rust-cbindgen-0.14)
("which" ,which)
("yasm" ,yasm)))
(home-page "https://www.thunderbird.net")
diff --git a/gnu/packages/patches/icedove-78-fix-new-page.patch b/gnu/packages/patches/icedove-78-fix-new-page.patch
new file mode 100644
index 0000000000..fe886ca9fa
--- /dev/null
+++ b/gnu/packages/patches/icedove-78-fix-new-page.patch
@@ -0,0 +1,63 @@
+# HG changeset patch
+# User Rob Lemley <rob@thunderbird.net>
+# Date 1600079976 -10800
+# Node ID f085dbd311bc4b013605202de04de9a81bb55ed1
+# Parent 391f1b69f6d617dd566297dd92c5f1188c6eca20
+Bug 1664607 - Don't try to load what's new page when built with updater disabled. r=mkmelin a=wsmwk
+
+
+When Thunderbird is built with --disable-updater, as it done by most Linux
+distributions, accessing the nsIUpdateManager service will throw an error
+resulting in a broken UI. Check AppConstants.MOZ_UPDATER when using
+nsIUpdateManger to prevent errors.
+
+Differential Revision: https://phabricator.services.mozilla.com/D90023
+
+Added "comm" to the file paths (by Jonathan Brielmaier <jonathan.brielmaier@web.de>)
+
+diff --git a/comm/mail/base/content/specialTabs.js b/comm/mail/base/content/specialTabs.js
+--- a/comm/mail/base/content/specialTabs.js
++++ b/comm/mail/base/content/specialTabs.js
+@@ -1043,28 +1043,30 @@ var specialTabs = {
+ ""
+ );
+
+ let mstone = Services.appinfo.version;
+ if (mstone != old_mstone) {
+ Services.prefs.setCharPref("mailnews.start_page_override.mstone", mstone);
+ }
+
+- let update = Cc["@mozilla.org/updates/update-manager;1"].getService(
+- Ci.nsIUpdateManager
+- ).activeUpdate;
++ if (AppConstants.MOZ_UPDATER) {
++ let update = Cc["@mozilla.org/updates/update-manager;1"].getService(
++ Ci.nsIUpdateManager
++ ).activeUpdate;
+
+- if (update && Services.vc.compare(update.appVersion, old_mstone) > 0) {
+- let overridePage = Services.urlFormatter.formatURLPref(
+- "mailnews.start_page.override_url"
+- );
+- overridePage = this.getPostUpdateOverridePage(update, overridePage);
+- overridePage = overridePage.replace("%OLD_VERSION%", old_mstone);
+- if (overridePage) {
+- openLinkExternally(overridePage);
++ if (update && Services.vc.compare(update.appVersion, old_mstone) > 0) {
++ let overridePage = Services.urlFormatter.formatURLPref(
++ "mailnews.start_page.override_url"
++ );
++ overridePage = this.getPostUpdateOverridePage(update, overridePage);
++ overridePage = overridePage.replace("%OLD_VERSION%", old_mstone);
++ if (overridePage) {
++ openLinkExternally(overridePage);
++ }
+ }
+ }
+ },
+
+ /**
+ * Gets the override page for the first run after the application has been
+ * updated.
+ * @param {nsIUpdate} update - The nsIUpdate for the update that has been applied.
+
--
2.28.0
^ permalink raw reply related [flat|nested] 10+ messages in thread