aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/mailreaders/thunderbird')
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/68.nix340
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig-68.patch36
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch26
4 files changed, 404 insertions, 33 deletions
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/68.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/68.nix
new file mode 100644
index 00000000000..fef707b7293
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/68.nix
@@ -0,0 +1,340 @@
+# This pakcage is keeped until Thunderbird 78 supports OpenPGP.
+# https://www.thunderbird.net/en-US/thunderbird/78.0.1/releasenotes/
+{ autoconf213
+, bzip2
+, cargo
+, common-updater-scripts
+, coreutils
+, curl
+, dbus
+, dbus-glib
+, fetchurl
+, file
+, fontconfig
+, freetype
+, glib
+, gnugrep
+, gnused
+, icu
+, jemalloc
+, lib
+, libGL
+, libGLU
+, libevent
+, libjpeg
+, libnotify
+, libpng
+, libstartup_notification
+, libvpx
+, libwebp
+, llvmPackages
+, m4
+, makeDesktopItem
+, nasm
+, nodejs
+, nspr
+, nss
+, pango
+, perl
+, pkgconfig
+, python2
+, python3
+, runtimeShell
+, rust-cbindgen
+, rustc
+, sqlite
+, stdenv
+, systemd
+, unzip
+, which
+, writeScript
+, xidel
+, xorg
+, yasm
+, zip
+, zlib
+
+, debugBuild ? false
+
+, alsaSupport ? stdenv.isLinux, alsaLib
+, pulseaudioSupport ? stdenv.isLinux, libpulseaudio
+, gtk3Support ? true, gtk2, gtk3, wrapGAppsHook
+, waylandSupport ? true
+, libxkbcommon, calendarSupport ? true
+
+# Use official trademarked branding. Permission obtained at:
+# https://github.com/NixOS/nixpkgs/pull/94880#issuecomment-675907971
+, enableOfficialBranding ? true
+}:
+
+assert waylandSupport -> gtk3Support == true;
+
+stdenv.mkDerivation rec {
+ pname = "thunderbird";
+ version = "68.12.0";
+
+ src = fetchurl {
+ url =
+ "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
+ sha512 =
+ "33350vjgzvsg6sdhdld92z75k1xcf1wmngdcvzsj4f3y3aal73pyw03mlvgg6y36bm0j8fhaxvgbbg5zm7hxhn779z78970m4v9amg7";
+ };
+
+ nativeBuildInputs = [
+ autoconf213
+ cargo
+ gnused
+ llvmPackages.llvm
+ m4
+ nasm
+ nodejs
+ perl
+ pkgconfig
+ python2
+ python3
+ rust-cbindgen
+ rustc
+ which
+ yasm
+ ] ++ lib.optional gtk3Support wrapGAppsHook;
+
+ buildInputs = [
+ bzip2
+ dbus
+ dbus-glib
+ file
+ fontconfig
+ freetype
+ glib
+ gtk2
+ icu
+ jemalloc
+ libGL
+ libGLU
+ libevent
+ libjpeg
+ libnotify
+ libpng
+ libstartup_notification
+ libvpx
+ libwebp
+ nspr
+ nss
+ pango
+ perl
+ sqlite
+ unzip
+ xorg.libX11
+ xorg.libXScrnSaver
+ xorg.libXcursor
+ xorg.libXext
+ xorg.libXft
+ xorg.libXi
+ xorg.libXrender
+ xorg.libXt
+ xorg.pixman
+ xorg.xorgproto
+ zip
+ zlib
+ ] ++ lib.optional alsaSupport alsaLib
+ ++ lib.optional gtk3Support gtk3
+ ++ lib.optional pulseaudioSupport libpulseaudio
+ ++ lib.optional waylandSupport libxkbcommon;
+
+ NIX_CFLAGS_COMPILE =[
+ "-I${glib.dev}/include/gio-unix-2.0"
+ "-I${nss.dev}/include/nss"
+ ];
+
+ patches = [
+ ./no-buildconfig-68.patch
+ ];
+
+ postPatch = ''
+ rm -rf obj-x86_64-pc-linux-gnu
+ '';
+
+ hardeningDisable = [ "format" ];
+
+ preConfigure = ''
+ # remove distributed configuration files
+ rm -f configure
+ rm -f js/src/configure
+ rm -f .mozconfig*
+
+ configureScript="$(realpath ./mach) configure"
+ # AS=as in the environment causes build failure https://bugzilla.mozilla.org/show_bug.cgi?id=1497286
+ unset AS
+
+ export MOZCONFIG=$(pwd)/mozconfig
+
+ # Set C flags for Rust's bindgen program. Unlike ordinary C
+ # compilation, bindgen does not invoke $CC directly. Instead it
+ # uses LLVM's libclang. To make sure all necessary flags are
+ # included we need to look in a few places.
+ # TODO: generalize this process for other use-cases.
+
+ BINDGEN_CFLAGS="$(< ${stdenv.cc}/nix-support/libc-cflags) \
+ $(< ${stdenv.cc}/nix-support/cc-cflags) \
+ $(< ${stdenv.cc}/nix-support/libcxx-cxxflags) \
+ ${
+ lib.optionalString stdenv.cc.isClang
+ "-idirafter ${stdenv.cc.cc}/lib/clang/${
+ lib.getVersion stdenv.cc.cc
+ }/include"
+ } \
+ ${
+ lib.optionalString stdenv.cc.isGNU
+ "-isystem ${stdenv.cc.cc}/include/c++/${
+ lib.getVersion stdenv.cc.cc
+ } -isystem ${stdenv.cc.cc}/include/c++/${
+ lib.getVersion stdenv.cc.cc
+ }/${stdenv.hostPlatform.config}"
+ } \
+ $NIX_CFLAGS_COMPILE"
+
+ echo "ac_add_options BINDGEN_CFLAGS='$BINDGEN_CFLAGS'" >> $MOZCONFIG
+ '';
+
+ configureFlags = let
+ toolkitSlug = if gtk3Support then
+ "3${lib.optionalString waylandSupport "-wayland"}"
+ else
+ "2";
+ toolkitValue = "cairo-gtk${toolkitSlug}";
+ in [
+ "--enable-application=comm/mail"
+
+ "--with-system-bz2"
+ "--with-system-icu"
+ "--with-system-jpeg"
+ "--with-system-libevent"
+ "--with-system-nspr"
+ "--with-system-nss"
+ "--with-system-png" # needs APNG support
+ "--with-system-icu"
+ "--with-system-zlib"
+ "--with-system-webp"
+ "--with-system-libvpx"
+
+ "--enable-rust-simd"
+ "--enable-crashreporter"
+ "--enable-default-toolkit=${toolkitValue}"
+ "--enable-js-shell"
+ "--enable-necko-wifi"
+ "--enable-startup-notification"
+ "--enable-system-ffi"
+ "--enable-system-pixman"
+ "--enable-system-sqlite"
+
+ "--disable-gconf"
+ "--disable-tests"
+ "--disable-updater"
+ "--enable-jemalloc"
+ ] ++ (if debugBuild then [
+ "--enable-debug"
+ "--enable-profiling"
+ ] else [
+ "--disable-debug"
+ "--enable-release"
+ "--disable-debug-symbols"
+ "--enable-optimize"
+ "--enable-strip"
+ ]) ++ lib.optionals (!stdenv.hostPlatform.isi686) [
+ # on i686-linux: --with-libclang-path is not available in this configuration
+ "--with-libclang-path=${llvmPackages.libclang}/lib"
+ "--with-clang-path=${llvmPackages.clang}/bin/clang"
+ ] ++ lib.optional alsaSupport "--enable-alsa"
+ ++ lib.optional calendarSupport "--enable-calendar"
+ ++ lib.optional enableOfficialBranding "--enable-official-branding"
+ ++ lib.optional pulseaudioSupport "--enable-pulseaudio";
+
+ enableParallelBuilding = true;
+
+ postConfigure = ''
+ cd obj-*
+ '';
+
+ makeFlags = lib.optionals enableOfficialBranding [
+ "MOZILLA_OFFICIAL=1"
+ "BUILD_OFFICIAL=1"
+ ];
+
+ doCheck = false;
+
+ postInstall = let
+ desktopItem = makeDesktopItem {
+ categories = lib.concatStringsSep ";" [ "Application" "Network" ];
+ desktopName = "Thunderbird";
+ genericName = "Mail Reader";
+ name = "thunderbird";
+ exec = "thunderbird %U";
+ icon = "$out/lib/thunderbird/chrome/icons/default/default256.png";
+ mimeType = lib.concatStringsSep ";" [
+ # Email
+ "x-scheme-handler/mailto"
+ "message/rfc822"
+ # Feeds
+ "x-scheme-handler/feed"
+ "application/rss+xml"
+ "application/x-extension-rss"
+ # Newsgroups
+ "x-scheme-handler/news"
+ "x-scheme-handler/snews"
+ "x-scheme-handler/nntp"
+ ];
+ };
+ in ''
+ # TODO: Move to a dev output?
+ rm -rf $out/include $out/lib/thunderbird-devel-* $out/share/idl
+
+ ${desktopItem.buildCommand}
+ '';
+
+ preFixup = ''
+ # Needed to find Mozilla runtime
+ gappsWrapperArgs+=(
+ --argv0 "$out/bin/thunderbird"
+ --set MOZ_APP_LAUNCHER thunderbird
+ # https://github.com/NixOS/nixpkgs/pull/61980
+ --set SNAP_NAME "thunderbird"
+ --set MOZ_LEGACY_PROFILES 1
+ --set MOZ_ALLOW_DOWNGRADE 1
+ )
+ '';
+
+ # FIXME: The XUL portion of this can probably be removed as soon as we
+ # package a Thunderbird >=71.0 since XUL shouldn't be anymore (in use)?
+ postFixup = ''
+ local xul="$out/lib/thunderbird/libxul.so"
+ patchelf --set-rpath "${libnotify}/lib:${lib.getLib systemd}/lib:$(patchelf --print-rpath $xul)" $xul
+ '';
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ "$out/bin/thunderbird" --version
+ '';
+
+ disallowedRequisites = [
+ stdenv.cc
+ ];
+
+ passthru.updateScript = import ./../../browsers/firefox/update.nix {
+ attrPath = "thunderbird";
+ baseUrl = "http://archive.mozilla.org/pub/thunderbird/releases/";
+ inherit writeScript lib common-updater-scripts xidel coreutils gnused
+ gnugrep curl runtimeShell;
+ };
+
+ meta = with stdenv.lib; {
+ description = "A full-featured e-mail client";
+ homepage = "https://www.thunderbird.net";
+ maintainers = with maintainers; [
+ eelco
+ lovesegfault
+ pierron
+ ];
+ platforms = platforms.linux;
+ license = licenses.mpl20;
+ };
+}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix
index ee8d36b421a..e6b279fd35c 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix
@@ -18,7 +18,6 @@
, lib
, libGL
, libGLU
-, libIDL
, libevent
, libjpeg
, libnotify
@@ -43,6 +42,7 @@
, rustc
, sqlite
, stdenv
+, systemd
, unzip
, which
, writeScript
@@ -60,25 +60,22 @@
, waylandSupport ? true
, libxkbcommon, calendarSupport ? true
-, # If you want the resulting program to call itself "Thunderbird" instead
-# of "Earlybird" or whatever, enable this option. However, those
-# binaries may not be distributed without permission from the
-# Mozilla Foundation, see
-# http://www.mozilla.org/foundation/trademarks/.
-enableOfficialBranding ? false
+# Use official trademarked branding. Permission obtained at:
+# https://github.com/NixOS/nixpkgs/pull/94880#issuecomment-675907971
+, enableOfficialBranding ? true
}:
assert waylandSupport -> gtk3Support == true;
stdenv.mkDerivation rec {
pname = "thunderbird";
- version = "68.8.1";
+ version = "78.2.2";
src = fetchurl {
url =
"mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
sha512 =
- "2zq65qhrg8xsz75yywcijdjbkndn79w73v5vyahiyyibc8lfjphz0zaihk67ja82fpnxlnsfvy45s8x5l42kcbb0wibkjy7m55bd6h7";
+ "2cbpyx9jn23kc289z8ikzx3035g5z6p076izvld50mj3kqc0v4n3igih3rv1lsdwysik8c0ax5w3pa037lnrp6ridgbnix34gxr4nw6";
};
nativeBuildInputs = [
@@ -112,7 +109,6 @@ stdenv.mkDerivation rec {
jemalloc
libGL
libGLU
- libIDL
libevent
libjpeg
libnotify
@@ -176,9 +172,10 @@ stdenv.mkDerivation rec {
# included we need to look in a few places.
# TODO: generalize this process for other use-cases.
- BINDGEN_CFLAGS="$(< ${stdenv.cc}/nix-support/libc-cflags) \
+ BINDGEN_CFLAGS="$(< ${stdenv.cc}/nix-support/libc-crt1-cflags) \
+ $(< ${stdenv.cc}/nix-support/libc-cflags) \
$(< ${stdenv.cc}/nix-support/cc-cflags) \
- ${stdenv.cc.default_cxx_stdlib_compile} \
+ $(< ${stdenv.cc}/nix-support/libcxx-cxxflags) \
${
lib.optionalString stdenv.cc.isClang
"-idirafter ${stdenv.cc.cc}/lib/clang/${
@@ -207,14 +204,12 @@ stdenv.mkDerivation rec {
in [
"--enable-application=comm/mail"
- "--with-system-bz2"
"--with-system-icu"
"--with-system-jpeg"
"--with-system-libevent"
"--with-system-nspr"
"--with-system-nss"
"--with-system-png" # needs APNG support
- "--with-system-icu"
"--with-system-zlib"
"--with-system-webp"
"--with-system-libvpx"
@@ -224,12 +219,9 @@ stdenv.mkDerivation rec {
"--enable-default-toolkit=${toolkitValue}"
"--enable-js-shell"
"--enable-necko-wifi"
- "--enable-startup-notification"
"--enable-system-ffi"
"--enable-system-pixman"
- "--enable-system-sqlite"
- "--disable-gconf"
"--disable-tests"
"--disable-updater"
"--enable-jemalloc"
@@ -305,11 +297,11 @@ stdenv.mkDerivation rec {
)
'';
- # FIXME: This can probably be removed as soon as we package a
- # Thunderbird >=71.0 since XUL shouldn't be anymore (in use)?
+ # FIXME: The XUL portion of this can probably be removed as soon as we
+ # package a Thunderbird >=71.0 since XUL shouldn't be anymore (in use)?
postFixup = ''
local xul="$out/lib/thunderbird/libxul.so"
- patchelf --set-rpath "${libnotify}/lib:$(patchelf --print-rpath $xul)" $xul
+ patchelf --set-rpath "${libnotify}/lib:${lib.getLib systemd}/lib:$(patchelf --print-rpath $xul)" $xul
'';
doInstallCheck = true;
@@ -322,7 +314,7 @@ stdenv.mkDerivation rec {
];
passthru.updateScript = import ./../../browsers/firefox/update.nix {
- attrPath = "thunderbird";
+ attrPath = "thunderbird-78";
baseUrl = "http://archive.mozilla.org/pub/thunderbird/releases/";
inherit writeScript lib common-updater-scripts xidel coreutils gnused
gnugrep curl runtimeShell;
@@ -337,5 +329,6 @@ stdenv.mkDerivation rec {
pierron
];
platforms = platforms.linux;
+ license = licenses.mpl20;
};
}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig-68.patch b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig-68.patch
new file mode 100644
index 00000000000..482c10bd1cf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig-68.patch
@@ -0,0 +1,36 @@
+Remove about:buildconfig. If used as-is, it would add unnecessary runtime dependencies.
+diff -ru -x '*~' a/docshell/base/nsAboutRedirector.cpp b/docshell/base/nsAboutRedirector.cpp
+--- a/docshell/base/nsAboutRedirector.cpp 2017-07-31 18:20:51.000000000 +0200
++++ b/docshell/base/nsAboutRedirector.cpp 2017-09-26 22:02:00.814151731 +0200
+@@ -32,8 +32,6 @@
+ {"about", "chrome://global/content/aboutAbout.xhtml", 0},
+ {"addons", "chrome://mozapps/content/extensions/extensions.xul",
+ nsIAboutModule::ALLOW_SCRIPT},
+- {"buildconfig", "chrome://global/content/buildconfig.html",
+- nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT},
+ {"checkerboard", "chrome://global/content/aboutCheckerboard.xhtml",
+ nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
+ nsIAboutModule::ALLOW_SCRIPT},
+diff -ru -x '*~' a/toolkit/content/jar.mn b/toolkit/content/jar.mn
+--- a/toolkit/content/jar.mn 2017-07-31 18:20:52.000000000 +0200
++++ b/toolkit/content/jar.mn 2017-09-26 22:01:42.383350314 +0200
+@@ -39,7 +39,6 @@
+ content/global/plugins.css
+ content/global/browser-child.js
+ content/global/browser-content.js
+-* content/global/buildconfig.html
+ content/global/buildconfig.css
+ content/global/contentAreaUtils.js
+ content/global/datepicker.xhtml
+--- a/comm/mail/base/jar.mn
++++ b/comm/mail/base/jar.mn
+@@ -117,9 +117,7 @@
+ % override chrome://mozapps/content/profile/profileDowngrade.js chrome://messenger/content/profileDowngrade.js
+ % override chrome://mozapps/content/profile/profileDowngrade.xul chrome://messenger/content/profileDowngrade.xul
+
+-* content/messenger/buildconfig.html (content/buildconfig.html)
+ content/messenger/buildconfig.css (content/buildconfig.css)
+-% override chrome://global/content/buildconfig.html chrome://messenger/content/buildconfig.html
+ % override chrome://global/content/buildconfig.css chrome://messenger/content/buildconfig.css
+
+ # L10n resources and overrides.
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch
index fe3a93ebda7..d413a06475d 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch
@@ -1,31 +1,33 @@
+Remove about:buildconfig. If used as-is, it would add unnecessary runtime dependencies.
diff -ru -x '*~' a/docshell/base/nsAboutRedirector.cpp b/docshell/base/nsAboutRedirector.cpp
---- a/docshell/base/nsAboutRedirector.cpp 2017-07-31 18:20:51.000000000 +0200
-+++ b/docshell/base/nsAboutRedirector.cpp 2017-09-26 22:02:00.814151731 +0200
-@@ -32,8 +32,6 @@
- {"about", "chrome://global/content/aboutAbout.xhtml", 0},
- {"addons", "chrome://mozapps/content/extensions/extensions.xul",
+--- a/docshell/base/nsAboutRedirector.cpp
++++ b/docshell/base/nsAboutRedirector.cpp
+@@ -63,8 +63,6 @@
+ {"about", "chrome://global/content/aboutAbout.html", 0},
+ {"addons", "chrome://mozapps/content/extensions/extensions.xhtml",
nsIAboutModule::ALLOW_SCRIPT},
- {"buildconfig", "chrome://global/content/buildconfig.html",
- nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT},
- {"checkerboard", "chrome://global/content/aboutCheckerboard.xhtml",
+ {"checkerboard", "chrome://global/content/aboutCheckerboard.html",
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
nsIAboutModule::ALLOW_SCRIPT},
diff -ru -x '*~' a/toolkit/content/jar.mn b/toolkit/content/jar.mn
---- a/toolkit/content/jar.mn 2017-07-31 18:20:52.000000000 +0200
-+++ b/toolkit/content/jar.mn 2017-09-26 22:01:42.383350314 +0200
-@@ -39,7 +39,6 @@
- content/global/plugins.css
+--- a/toolkit/content/jar.mn
++++ b/toolkit/content/jar.mn
+@@ -35,7 +35,6 @@
+ content/global/plugins.js
content/global/browser-child.js
content/global/browser-content.js
-* content/global/buildconfig.html
content/global/buildconfig.css
content/global/contentAreaUtils.js
content/global/datepicker.xhtml
+diff -ru -x '*~' a/comm/mail/base/jar.mn b/comm/mail/base/jar.mn
--- a/comm/mail/base/jar.mn
+++ b/comm/mail/base/jar.mn
-@@ -117,9 +117,7 @@
+@@ -119,9 +119,7 @@
% override chrome://mozapps/content/profile/profileDowngrade.js chrome://messenger/content/profileDowngrade.js
- % override chrome://mozapps/content/profile/profileDowngrade.xul chrome://messenger/content/profileDowngrade.xul
+ % override chrome://mozapps/content/profile/profileDowngrade.xhtml chrome://messenger/content/profileDowngrade.xhtml
-* content/messenger/buildconfig.html (content/buildconfig.html)
content/messenger/buildconfig.css (content/buildconfig.css)