unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Jonathan Brielmaier <jonathan.brielmaier@web.de>
To: Mark H Weaver <mhw@netris.org>
Cc: guix-devel@gnu.org
Subject: Re: IceCat-78.2 preview on 'wip-icecat-78' branch; need icedove-78.
Date: Tue, 22 Sep 2020 21:00:12 +0200	[thread overview]
Message-ID: <1caf1577-c31f-8040-979f-fb3e3d3fdeee@web.de> (raw)
In-Reply-To: <87k0wvb9c7.fsf@netris.org>

[-- 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


  reply	other threads:[~2020-09-22 19:02 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-07 19:57 IceCat-78.2 preview on 'wip-icecat-78' branch; need icedove-78 Mark H Weaver
2020-09-08 17:09 ` Jonathan Brielmaier
2020-09-14 21:14   ` Jonathan Brielmaier
2020-09-15  7:40     ` Andreas Enge
2020-09-15 10:52     ` Mark H Weaver
2020-09-22 19:00       ` Jonathan Brielmaier [this message]
2020-09-27 15:21         ` Jonathan Brielmaier
2020-09-27 23:50           ` Mark H Weaver
  -- strict thread matches above, loose matches on Subject: below --
2020-09-27 15:03 Zhu Zihao
2020-09-27 20:15 ` Mark H Weaver

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1caf1577-c31f-8040-979f-fb3e3d3fdeee@web.de \
    --to=jonathan.brielmaier@web.de \
    --cc=guix-devel@gnu.org \
    --cc=mhw@netris.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).