diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/mailreaders/thunderbird')
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) |