Merge pull request #130116 from yu-re-ka/feature/new-thunderbird

thunderbird: 78.13.0 -> 91.0 and use firefox expression

authored by Bernardo Meurer and committed by GitHub 8e02a42d bb03a951

+197 -471
+22 -22
pkgs/applications/networking/browsers/firefox/common.nix
··· 1 - { pname, ffversion, meta, updateScript ? null 2 , src, unpackPhase ? null, patches ? [] 3 , extraNativeBuildInputs ? [], extraConfigureFlags ? [], extraMakeFlags ? [], tests ? [] }: 4 ··· 81 default-toolkit = if stdenv.isDarwin then "cairo-cocoa" 82 else "cairo-gtk3${lib.optionalString waylandSupport "-wayland"}"; 83 84 - binaryName = "firefox"; 85 binaryNameCapitalized = lib.toUpper (lib.substring 0 1 binaryName) + lib.substring 1 (-1) binaryName; 86 87 - browserName = if stdenv.isDarwin then binaryNameCapitalized else binaryName; 88 89 execdir = if stdenv.isDarwin 90 then "/Applications/${binaryNameCapitalized}.app/Contents/MacOS" 91 else "/bin"; 92 93 # 78 ESR won't build with rustc 1.47 94 - inherit (if lib.versionAtLeast ffversion "82" then rustPackages else rustPackages_1_45) 95 rustc cargo; 96 97 # Darwin's stdenv provides the default llvmPackages version, match that since ··· 118 119 # Disable p11-kit support in nss until our cacert packages has caught up exposing CKA_NSS_MOZILLA_CA_POLICY 120 # https://github.com/NixOS/nixpkgs/issues/126065 121 - nss_pkg = if lib.versionOlder ffversion "83" then nss_3_53 else nss.override { useP11kit = false; }; 122 123 # --enable-release adds -ffunction-sections & LTO that require a big amount of 124 # RAM and the 32-bit memory space cannot handle that linking ··· 129 in 130 131 buildStdenv.mkDerivation ({ 132 - name = "${pname}-unwrapped-${ffversion}"; 133 - version = ffversion; 134 135 inherit src unpackPhase meta; 136 137 patches = [ 138 ] ++ 139 - lib.optional (lib.versionOlder ffversion "86") ./env_var_for_system_dir-ff85.patch ++ 140 - lib.optional (lib.versionAtLeast ffversion "86") ./env_var_for_system_dir-ff86.patch ++ 141 - lib.optional (lib.versionOlder ffversion "83") ./no-buildconfig-ffx76.patch ++ 142 - lib.optional (lib.versionAtLeast ffversion "90") ./no-buildconfig-ffx90.patch ++ 143 - lib.optional (ltoSupport && lib.versionOlder ffversion "84") ./lto-dependentlibs-generation-ffx83.patch ++ 144 - lib.optional (ltoSupport && lib.versionAtLeast ffversion "84" && lib.versionOlder ffversion "86") 145 (fetchpatch { 146 url = "https://hg.mozilla.org/mozilla-central/raw-rev/fdff20c37be3"; 147 sha256 = "135n9brliqy42lj3nqgb9d9if7x6x9nvvn0z4anbyf89bikixw48"; 148 }) 149 150 # This patch adds pipewire support for the ESR release 151 - ++ lib.optional (pipewireSupport && lib.versionOlder ffversion "83") 152 (fetchpatch { 153 # https://src.fedoraproject.org/rpms/firefox/blob/master/f/firefox-pipewire-0-3.patch 154 url = "https://src.fedoraproject.org/rpms/firefox/raw/e99b683a352cf5b2c9ff198756859bae408b5d9d/f/firefox-pipewire-0-3.patch"; ··· 185 ++ lib.optional gssSupport libkrb5 186 ++ lib.optionals waylandSupport [ libxkbcommon libdrm ] 187 ++ lib.optional pipewireSupport pipewire 188 - ++ lib.optional (lib.versionAtLeast ffversion "82") gnum4 189 ++ lib.optionals buildStdenv.isDarwin [ CoreMedia ExceptionHandling Kerberos 190 AVFoundation MediaToolbox CoreLocation 191 Foundation libobjc AddressBook cups ] 192 - ++ lib.optional (lib.versionOlder ffversion "90") gtk2; 193 194 NIX_LDFLAGS = lib.optionalString ltoSupport '' 195 -rpath ${llvmPackages.libunwind.out}/lib ··· 201 rm -rf obj-x86_64-pc-linux-gnu 202 substituteInPlace toolkit/xre/glxtest.cpp \ 203 --replace 'dlopen("libpci.so' 'dlopen("${pciutils}/lib/libpci.so' 204 - '' + lib.optionalString (pipewireSupport && lib.versionOlder ffversion "83") '' 205 # substitute the /usr/include/ lines for the libraries that pipewire provides. 206 # The patch we pick from fedora only contains the generated moz.build files 207 # which hardcode the dependency paths instead of running pkg_config. 208 substituteInPlace \ 209 media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build \ 210 --replace /usr/include ${pipewire.dev}/include 211 - '' + lib.optionalString (lib.versionAtLeast ffversion "80" && lib.versionOlder ffversion "81") '' 212 substituteInPlace dom/system/IOUtils.h \ 213 --replace '#include "nspr/prio.h"' '#include "prio.h"' 214 ··· 279 ''); 280 281 configureFlags = [ 282 - "--enable-application=browser" 283 "--with-system-jpeg" 284 "--with-system-zlib" 285 "--with-system-libevent" ··· 356 doInstallCheck = true; 357 installCheckPhase = '' 358 # Some basic testing 359 - "$out${execdir}/${browserName}" --version 360 ''; 361 362 passthru = { 363 inherit updateScript; 364 - version = ffversion; 365 inherit alsaSupport; 366 inherit pipewireSupport; 367 inherit nspr; 368 inherit ffmpegSupport; 369 inherit gssSupport; 370 inherit execdir; 371 - inherit browserName; 372 inherit tests; 373 inherit gtk3; 374 };
··· 1 + { pname, version, meta, updateScript ? null 2 + , binaryName ? "firefox", application ? "browser" 3 , src, unpackPhase ? null, patches ? [] 4 , extraNativeBuildInputs ? [], extraConfigureFlags ? [], extraMakeFlags ? [], tests ? [] }: 5 ··· 82 default-toolkit = if stdenv.isDarwin then "cairo-cocoa" 83 else "cairo-gtk3${lib.optionalString waylandSupport "-wayland"}"; 84 85 binaryNameCapitalized = lib.toUpper (lib.substring 0 1 binaryName) + lib.substring 1 (-1) binaryName; 86 87 + applicationName = if stdenv.isDarwin then binaryNameCapitalized else binaryName; 88 89 execdir = if stdenv.isDarwin 90 then "/Applications/${binaryNameCapitalized}.app/Contents/MacOS" 91 else "/bin"; 92 93 # 78 ESR won't build with rustc 1.47 94 + inherit (if lib.versionAtLeast version "82" then rustPackages else rustPackages_1_45) 95 rustc cargo; 96 97 # Darwin's stdenv provides the default llvmPackages version, match that since ··· 118 119 # Disable p11-kit support in nss until our cacert packages has caught up exposing CKA_NSS_MOZILLA_CA_POLICY 120 # https://github.com/NixOS/nixpkgs/issues/126065 121 + nss_pkg = if lib.versionOlder version "83" then nss_3_53 else nss.override { useP11kit = false; }; 122 123 # --enable-release adds -ffunction-sections & LTO that require a big amount of 124 # RAM and the 32-bit memory space cannot handle that linking ··· 129 in 130 131 buildStdenv.mkDerivation ({ 132 + name = "${pname}-unwrapped-${version}"; 133 + inherit version; 134 135 inherit src unpackPhase meta; 136 137 patches = [ 138 ] ++ 139 + lib.optional (lib.versionOlder version "86") ./env_var_for_system_dir-ff85.patch ++ 140 + lib.optional (lib.versionAtLeast version "86") ./env_var_for_system_dir-ff86.patch ++ 141 + lib.optional (lib.versionOlder version "83") ./no-buildconfig-ffx76.patch ++ 142 + lib.optional (lib.versionAtLeast version "90") ./no-buildconfig-ffx90.patch ++ 143 + lib.optional (ltoSupport && lib.versionOlder version "84") ./lto-dependentlibs-generation-ffx83.patch ++ 144 + lib.optional (ltoSupport && lib.versionAtLeast version "84" && lib.versionOlder version "86") 145 (fetchpatch { 146 url = "https://hg.mozilla.org/mozilla-central/raw-rev/fdff20c37be3"; 147 sha256 = "135n9brliqy42lj3nqgb9d9if7x6x9nvvn0z4anbyf89bikixw48"; 148 }) 149 150 # This patch adds pipewire support for the ESR release 151 + ++ lib.optional (pipewireSupport && lib.versionOlder version "83") 152 (fetchpatch { 153 # https://src.fedoraproject.org/rpms/firefox/blob/master/f/firefox-pipewire-0-3.patch 154 url = "https://src.fedoraproject.org/rpms/firefox/raw/e99b683a352cf5b2c9ff198756859bae408b5d9d/f/firefox-pipewire-0-3.patch"; ··· 185 ++ lib.optional gssSupport libkrb5 186 ++ lib.optionals waylandSupport [ libxkbcommon libdrm ] 187 ++ lib.optional pipewireSupport pipewire 188 + ++ lib.optional (lib.versionAtLeast version "82") gnum4 189 ++ lib.optionals buildStdenv.isDarwin [ CoreMedia ExceptionHandling Kerberos 190 AVFoundation MediaToolbox CoreLocation 191 Foundation libobjc AddressBook cups ] 192 + ++ lib.optional (lib.versionOlder version "90") gtk2; 193 194 NIX_LDFLAGS = lib.optionalString ltoSupport '' 195 -rpath ${llvmPackages.libunwind.out}/lib ··· 201 rm -rf obj-x86_64-pc-linux-gnu 202 substituteInPlace toolkit/xre/glxtest.cpp \ 203 --replace 'dlopen("libpci.so' 'dlopen("${pciutils}/lib/libpci.so' 204 + '' + lib.optionalString (pipewireSupport && lib.versionOlder version "83") '' 205 # substitute the /usr/include/ lines for the libraries that pipewire provides. 206 # The patch we pick from fedora only contains the generated moz.build files 207 # which hardcode the dependency paths instead of running pkg_config. 208 substituteInPlace \ 209 media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build \ 210 --replace /usr/include ${pipewire.dev}/include 211 + '' + lib.optionalString (lib.versionAtLeast version "80" && lib.versionOlder version "81") '' 212 substituteInPlace dom/system/IOUtils.h \ 213 --replace '#include "nspr/prio.h"' '#include "prio.h"' 214 ··· 279 ''); 280 281 configureFlags = [ 282 + "--enable-application=${application}" 283 "--with-system-jpeg" 284 "--with-system-zlib" 285 "--with-system-libevent" ··· 356 doInstallCheck = true; 357 installCheckPhase = '' 358 # Some basic testing 359 + "$out${execdir}/${applicationName}" --version 360 ''; 361 362 passthru = { 363 inherit updateScript; 364 + inherit version; 365 inherit alsaSupport; 366 inherit pipewireSupport; 367 inherit nspr; 368 inherit ffmpegSupport; 369 inherit gssSupport; 370 inherit execdir; 371 + inherit applicationName; 372 inherit tests; 373 inherit gtk3; 374 };
+6 -9
pkgs/applications/networking/browsers/firefox/packages.nix
··· 7 rec { 8 firefox = common rec { 9 pname = "firefox"; 10 - ffversion = "91.0"; 11 src = fetchurl { 12 - url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz"; 13 sha512 = "a02486a3996570e0cc815e92c98890bca1d27ce0018c2ee3d4bff9a6e54dbc8f5926fea8b5864f208e15389d631685b2add1e4e9e51146e40224d16d5c02f730"; 14 }; 15 ··· 27 tests = [ nixosTests.firefox ]; 28 updateScript = callPackage ./update.nix { 29 attrPath = "firefox-unwrapped"; 30 - versionKey = "ffversion"; 31 }; 32 }; 33 34 firefox-esr-91 = common rec { 35 pname = "firefox-esr"; 36 - ffversion = "91.0esr"; 37 src = fetchurl { 38 - url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz"; 39 sha512 = "e518e1536094a1da44eb45b3b0f3adc1b5532f17da2dbcc994715419ec4fcec40574fdf633349a8e5de6382942f5706757a35f1b96b11de4754855b9cf7946ae"; 40 }; 41 ··· 53 updateScript = callPackage ./update.nix { 54 attrPath = "firefox-esr-91-unwrapped"; 55 versionSuffix = "esr"; 56 - versionKey = "ffversion"; 57 }; 58 }; 59 60 firefox-esr-78 = common rec { 61 pname = "firefox-esr"; 62 - ffversion = "78.12.0esr"; 63 src = fetchurl { 64 - url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz"; 65 sha512 = "646eb803e0d0e541773e3111708c7eaa85e784e4bae6e4a77dcecdc617ee29e2e349c9ef16ae7e663311734dd7491aebd904359124dda62672dbc18bfb608f0a"; 66 }; 67 ··· 79 updateScript = callPackage ./update.nix { 80 attrPath = "firefox-esr-78-unwrapped"; 81 versionSuffix = "esr"; 82 - versionKey = "ffversion"; 83 }; 84 }; 85 }
··· 7 rec { 8 firefox = common rec { 9 pname = "firefox"; 10 + version = "91.0"; 11 src = fetchurl { 12 + url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz"; 13 sha512 = "a02486a3996570e0cc815e92c98890bca1d27ce0018c2ee3d4bff9a6e54dbc8f5926fea8b5864f208e15389d631685b2add1e4e9e51146e40224d16d5c02f730"; 14 }; 15 ··· 27 tests = [ nixosTests.firefox ]; 28 updateScript = callPackage ./update.nix { 29 attrPath = "firefox-unwrapped"; 30 }; 31 }; 32 33 firefox-esr-91 = common rec { 34 pname = "firefox-esr"; 35 + version = "91.0esr"; 36 src = fetchurl { 37 + url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz"; 38 sha512 = "e518e1536094a1da44eb45b3b0f3adc1b5532f17da2dbcc994715419ec4fcec40574fdf633349a8e5de6382942f5706757a35f1b96b11de4754855b9cf7946ae"; 39 }; 40 ··· 52 updateScript = callPackage ./update.nix { 53 attrPath = "firefox-esr-91-unwrapped"; 54 versionSuffix = "esr"; 55 }; 56 }; 57 58 firefox-esr-78 = common rec { 59 pname = "firefox-esr"; 60 + version = "78.12.0esr"; 61 src = fetchurl { 62 + url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz"; 63 sha512 = "646eb803e0d0e541773e3111708c7eaa85e784e4bae6e4a77dcecdc617ee29e2e349c9ef16ae7e663311734dd7491aebd904359124dda62672dbc18bfb608f0a"; 64 }; 65 ··· 77 updateScript = callPackage ./update.nix { 78 attrPath = "firefox-esr-78-unwrapped"; 79 versionSuffix = "esr"; 80 }; 81 }; 82 }
+32 -32
pkgs/applications/networking/browsers/firefox/wrapper.nix
··· 20 21 let 22 wrapper = 23 - { browserName ? browser.browserName or (lib.getName browser) 24 - , pname ? browserName 25 , version ? lib.getVersion browser 26 - , desktopName ? # browserName with first letter capitalized 27 - (lib.toUpper (lib.substring 0 1 browserName) + lib.substring 1 (-1) browserName) 28 , nameSuffix ? "" 29 - , icon ? browserName 30 , extraNativeMessagingHosts ? [] 31 , pkcs11Modules ? [] 32 , forceWayland ? false 33 , useGlvnd ? true 34 - , cfg ? config.${browserName} or {} 35 36 ## Following options are needed for extra prefs & policies 37 # For more information about anti tracking (german website) ··· 40 # For more information about policies visit 41 # https://github.com/mozilla/policy-templates#enterprisepoliciesenabled 42 , extraPolicies ? {} 43 - , firefoxLibName ? "firefox" # Important for tor package or the like 44 , nixExtensions ? null 45 }: 46 ··· 162 "jre" 163 ]; 164 pluginsError = 165 - "Your configuration mentions ${lib.concatMapStringsSep ", " (p: browserName + "." + p) configPlugins}. All plugin related options have been removed, since Firefox from version 52 onwards no longer supports npapi plugins (see https://support.mozilla.org/en-US/kb/npapi-plugins)."; 166 167 in if configPlugins != [] then throw pluginsError else 168 (stdenv.mkDerivation { 169 inherit pname version; 170 171 desktopItem = makeDesktopItem { 172 - name = browserName; 173 - exec = "${browserName}${nameSuffix} %U"; 174 inherit icon; 175 comment = ""; 176 desktopName = "${desktopName}${nameSuffix}${lib.optionalString forceWayland " (Wayland)"}"; ··· 193 194 buildCommand = lib.optionalString stdenv.isDarwin '' 195 mkdir -p $out/Applications 196 - cp -R --no-preserve=mode,ownership ${browser}/Applications/${browserName}.app $out/Applications 197 - rm -f $out${browser.execdir or "/bin"}/${browserName} 198 '' + '' 199 - if [ ! -x "${browser}${browser.execdir or "/bin"}/${browserName}" ] 200 then 201 - echo "cannot find executable file \`${browser}${browser.execdir or "/bin"}/${browserName}'" 202 exit 1 203 fi 204 ··· 213 cd "${browser}" 214 find . -type d -exec mkdir -p "$out"/{} \; 215 216 - find . -type f \( -not -name "${browserName}" \) -exec ln -sT "${browser}"/{} "$out"/{} \; 217 218 - find . -type f -name "${browserName}" -print0 | while read -d $'\0' f; do 219 cp -P --no-preserve=mode,ownership "${browser}/$f" "$out/$f" 220 chmod a+rwx "$out/$f" 221 done ··· 236 # create the wrapper 237 238 executablePrefix="$out${browser.execdir or "/bin"}" 239 - executablePath="$executablePrefix/${browserName}" 240 241 if [ ! -x "$executablePath" ] 242 then 243 - echo "cannot find executable file \`${browser}${browser.execdir or "/bin"}/${browserName}'" 244 exit 1 245 fi 246 ··· 249 # Careful here, the file at executablePath may already be 250 # a wrapper. That is why we postfix it with -old instead 251 # of -wrapped. 252 - oldExe="$executablePrefix"/".${browserName}"-old 253 mv "$executablePath" "$oldExe" 254 else 255 oldExe="$(readlink -v --canonicalize-existing "$executablePath")" 256 fi 257 258 - if [ ! -x "${browser}${browser.execdir or "/bin"}/${browserName}" ] 259 then 260 - echo "cannot find executable file \`${browser}${browser.execdir or "/bin"}/${browserName}'" 261 exit 1 262 fi 263 264 makeWrapper "$oldExe" \ 265 - "$out${browser.execdir or "/bin"}/${browserName}${nameSuffix}" \ 266 --prefix LD_LIBRARY_PATH ':' "$libs" \ 267 --suffix-each GTK_PATH ':' "$gtk_modules" \ 268 --prefix PATH ':' "${xdg-utils}/bin" \ 269 --suffix PATH ':' "$out${browser.execdir or "/bin"}" \ 270 - --set MOZ_APP_LAUNCHER "${browserName}${nameSuffix}" \ 271 --set MOZ_SYSTEM_DIR "$out/lib/mozilla" \ 272 --set MOZ_LEGACY_PROFILES 1 \ 273 --set MOZ_ALLOW_DOWNGRADE 1 \ ··· 290 mkdir -p "$out/share/icons/hicolor/''${res}x''${res}/apps" 291 icon=( "${browser}/lib/"*"/browser/chrome/icons/default/default''${res}.png" ) 292 if [ -e "$icon" ]; then ln -s "$icon" \ 293 - "$out/share/icons/hicolor/''${res}x''${res}/apps/${browserName}.png" 294 fi 295 done 296 fi ··· 314 # # 315 ######################### 316 # user customization 317 - mkdir -p $out/lib/${firefoxLibName} 318 319 # creating policies.json 320 - mkdir -p "$out/lib/${firefoxLibName}/distribution" 321 322 - POL_PATH="$out/lib/${firefoxLibName}/distribution/policies.json" 323 rm -f "$POL_PATH" 324 cat ${policiesJson} >> "$POL_PATH" 325 326 # preparing for autoconfig 327 - mkdir -p "$out/lib/${firefoxLibName}/defaults/pref" 328 329 - echo 'pref("general.config.filename", "mozilla.cfg");' > "$out/lib/${firefoxLibName}/defaults/pref/autoconfig.js" 330 - echo 'pref("general.config.obscure_value", 0);' >> "$out/lib/${firefoxLibName}/defaults/pref/autoconfig.js" 331 332 - cat > "$out/lib/${firefoxLibName}/mozilla.cfg" < ${mozillaCfg} 333 334 - mkdir -p $out/lib/${firefoxLibName}/distribution/extensions 335 336 ############################# 337 # #
··· 20 21 let 22 wrapper = 23 + { applicationName ? browser.applicationName or (lib.getName browser) 24 + , pname ? applicationName 25 , version ? lib.getVersion browser 26 + , desktopName ? # applicationName with first letter capitalized 27 + (lib.toUpper (lib.substring 0 1 applicationName) + lib.substring 1 (-1) applicationName) 28 , nameSuffix ? "" 29 + , icon ? applicationName 30 , extraNativeMessagingHosts ? [] 31 , pkcs11Modules ? [] 32 , forceWayland ? false 33 , useGlvnd ? true 34 + , cfg ? config.${applicationName} or {} 35 36 ## Following options are needed for extra prefs & policies 37 # For more information about anti tracking (german website) ··· 40 # For more information about policies visit 41 # https://github.com/mozilla/policy-templates#enterprisepoliciesenabled 42 , extraPolicies ? {} 43 + , libName ? "firefox" # Important for tor package or the like 44 , nixExtensions ? null 45 }: 46 ··· 162 "jre" 163 ]; 164 pluginsError = 165 + "Your configuration mentions ${lib.concatMapStringsSep ", " (p: applicationName + "." + p) configPlugins}. All plugin related options have been removed, since Firefox from version 52 onwards no longer supports npapi plugins (see https://support.mozilla.org/en-US/kb/npapi-plugins)."; 166 167 in if configPlugins != [] then throw pluginsError else 168 (stdenv.mkDerivation { 169 inherit pname version; 170 171 desktopItem = makeDesktopItem { 172 + name = applicationName; 173 + exec = "${applicationName}${nameSuffix} %U"; 174 inherit icon; 175 comment = ""; 176 desktopName = "${desktopName}${nameSuffix}${lib.optionalString forceWayland " (Wayland)"}"; ··· 193 194 buildCommand = lib.optionalString stdenv.isDarwin '' 195 mkdir -p $out/Applications 196 + cp -R --no-preserve=mode,ownership ${browser}/Applications/${applicationName}.app $out/Applications 197 + rm -f $out${browser.execdir or "/bin"}/${applicationName} 198 '' + '' 199 + if [ ! -x "${browser}${browser.execdir or "/bin"}/${applicationName}" ] 200 then 201 + echo "cannot find executable file \`${browser}${browser.execdir or "/bin"}/${applicationName}'" 202 exit 1 203 fi 204 ··· 213 cd "${browser}" 214 find . -type d -exec mkdir -p "$out"/{} \; 215 216 + find . -type f \( -not -name "${applicationName}" \) -exec ln -sT "${browser}"/{} "$out"/{} \; 217 218 + find . -type f -name "${applicationName}" -print0 | while read -d $'\0' f; do 219 cp -P --no-preserve=mode,ownership "${browser}/$f" "$out/$f" 220 chmod a+rwx "$out/$f" 221 done ··· 236 # create the wrapper 237 238 executablePrefix="$out${browser.execdir or "/bin"}" 239 + executablePath="$executablePrefix/${applicationName}" 240 241 if [ ! -x "$executablePath" ] 242 then 243 + echo "cannot find executable file \`${browser}${browser.execdir or "/bin"}/${applicationName}'" 244 exit 1 245 fi 246 ··· 249 # Careful here, the file at executablePath may already be 250 # a wrapper. That is why we postfix it with -old instead 251 # of -wrapped. 252 + oldExe="$executablePrefix"/".${applicationName}"-old 253 mv "$executablePath" "$oldExe" 254 else 255 oldExe="$(readlink -v --canonicalize-existing "$executablePath")" 256 fi 257 258 + if [ ! -x "${browser}${browser.execdir or "/bin"}/${applicationName}" ] 259 then 260 + echo "cannot find executable file \`${browser}${browser.execdir or "/bin"}/${applicationName}'" 261 exit 1 262 fi 263 264 makeWrapper "$oldExe" \ 265 + "$out${browser.execdir or "/bin"}/${applicationName}${nameSuffix}" \ 266 --prefix LD_LIBRARY_PATH ':' "$libs" \ 267 --suffix-each GTK_PATH ':' "$gtk_modules" \ 268 --prefix PATH ':' "${xdg-utils}/bin" \ 269 --suffix PATH ':' "$out${browser.execdir or "/bin"}" \ 270 + --set MOZ_APP_LAUNCHER "${applicationName}${nameSuffix}" \ 271 --set MOZ_SYSTEM_DIR "$out/lib/mozilla" \ 272 --set MOZ_LEGACY_PROFILES 1 \ 273 --set MOZ_ALLOW_DOWNGRADE 1 \ ··· 290 mkdir -p "$out/share/icons/hicolor/''${res}x''${res}/apps" 291 icon=( "${browser}/lib/"*"/browser/chrome/icons/default/default''${res}.png" ) 292 if [ -e "$icon" ]; then ln -s "$icon" \ 293 + "$out/share/icons/hicolor/''${res}x''${res}/apps/${applicationName}.png" 294 fi 295 done 296 fi ··· 314 # # 315 ######################### 316 # user customization 317 + mkdir -p $out/lib/${libName} 318 319 # creating policies.json 320 + mkdir -p "$out/lib/${libName}/distribution" 321 322 + POL_PATH="$out/lib/${libName}/distribution/policies.json" 323 rm -f "$POL_PATH" 324 cat ${policiesJson} >> "$POL_PATH" 325 326 # preparing for autoconfig 327 + mkdir -p "$out/lib/${libName}/defaults/pref" 328 329 + echo 'pref("general.config.filename", "mozilla.cfg");' > "$out/lib/${libName}/defaults/pref/autoconfig.js" 330 + echo 'pref("general.config.obscure_value", 0);' >> "$out/lib/${libName}/defaults/pref/autoconfig.js" 331 332 + cat > "$out/lib/${libName}/mozilla.cfg" < ${mozillaCfg} 333 334 + mkdir -p $out/lib/${libName}/distribution/extensions 335 336 ############################# 337 # #
-357
pkgs/applications/networking/mailreaders/thunderbird/default.nix
··· 1 - { autoconf213 2 - , bzip2 3 - , cargo 4 - , common-updater-scripts 5 - , copyDesktopItems 6 - , coreutils 7 - , curl 8 - , dbus 9 - , dbus-glib 10 - , fetchpatch 11 - , fetchurl 12 - , file 13 - , fontconfig 14 - , freetype 15 - , glib 16 - , gnugrep 17 - , gnupg 18 - , gnused 19 - , gpgme 20 - , icu 21 - , jemalloc 22 - , lib 23 - , libevent 24 - , libGL 25 - , libGLU 26 - , libjpeg 27 - , libnotify 28 - , libpng 29 - , libstartup_notification 30 - , libvpx 31 - , libwebp 32 - , llvmPackages 33 - , m4 34 - , makeDesktopItem 35 - , nasm 36 - , nodejs 37 - , nspr 38 - , nss_3_53 39 - , pango 40 - , perl 41 - , pkg-config 42 - , python2 43 - , python3 44 - , runtimeShell 45 - , rust-cbindgen 46 - , rustc 47 - , sqlite 48 - , stdenv 49 - , systemd 50 - , unzip 51 - , which 52 - , writeScript 53 - , xdg-utils 54 - , xidel 55 - , xorg 56 - , yasm 57 - , zip 58 - , zlib 59 - 60 - , debugBuild ? false 61 - 62 - , alsaSupport ? stdenv.isLinux, alsa-lib 63 - , pulseaudioSupport ? stdenv.isLinux, libpulseaudio 64 - , gtk3Support ? true, gtk2, gtk3, wrapGAppsHook 65 - , waylandSupport ? true, libdrm 66 - , libxkbcommon, calendarSupport ? true 67 - 68 - # Use official trademarked branding. Permission obtained at: 69 - # https://github.com/NixOS/nixpkgs/pull/94880#issuecomment-675907971 70 - , enableOfficialBranding ? true 71 - }: 72 - 73 - assert waylandSupport -> gtk3Support == true; 74 - 75 - stdenv.mkDerivation rec { 76 - pname = "thunderbird"; 77 - version = "78.13.0"; 78 - 79 - src = fetchurl { 80 - url = 81 - "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz"; 82 - sha512 = 83 - "daee9ea9e57bdfce231a35029807f279a06f8790d71efc8998c78eb42d99a93cf98623170947df99202da038f949ba9111a7ff7adbd43c161794deb6791370a0"; 84 - }; 85 - 86 - nativeBuildInputs = [ 87 - autoconf213 88 - cargo 89 - copyDesktopItems 90 - gnused 91 - llvmPackages.llvm 92 - m4 93 - nasm 94 - nodejs 95 - perl 96 - pkg-config 97 - python2 98 - python3 99 - rust-cbindgen 100 - rustc 101 - which 102 - yasm 103 - unzip 104 - ] ++ lib.optional gtk3Support wrapGAppsHook; 105 - 106 - buildInputs = [ 107 - bzip2 108 - dbus 109 - dbus-glib 110 - file 111 - fontconfig 112 - freetype 113 - glib 114 - gtk2 115 - icu 116 - jemalloc 117 - libGL 118 - libGLU 119 - libevent 120 - libjpeg 121 - libnotify 122 - libpng 123 - libstartup_notification 124 - libvpx 125 - libwebp 126 - nspr 127 - nss_3_53 128 - pango 129 - perl 130 - sqlite 131 - xorg.libX11 132 - xorg.libXScrnSaver 133 - xorg.libXcursor 134 - xorg.libXext 135 - xorg.libXft 136 - xorg.libXi 137 - xorg.libXrender 138 - xorg.libXt 139 - xorg.pixman 140 - xorg.xorgproto 141 - xorg.libXdamage 142 - zip 143 - zlib 144 - ] ++ lib.optional alsaSupport alsa-lib 145 - ++ lib.optional gtk3Support gtk3 146 - ++ lib.optional pulseaudioSupport libpulseaudio 147 - ++ lib.optionals waylandSupport [ libxkbcommon libdrm ]; 148 - 149 - NIX_CFLAGS_COMPILE =[ 150 - "-I${glib.dev}/include/gio-unix-2.0" 151 - "-I${nss_3_53.dev}/include/nss" 152 - ]; 153 - 154 - patches = [ 155 - ./no-buildconfig.patch 156 - ]; 157 - 158 - postPatch = '' 159 - rm -rf obj-x86_64-pc-linux-gnu 160 - ''; 161 - 162 - hardeningDisable = [ "format" ]; 163 - 164 - preConfigure = '' 165 - # remove distributed configuration files 166 - rm -f configure 167 - rm -f js/src/configure 168 - rm -f .mozconfig* 169 - 170 - configureScript="$(realpath ./mach) configure" 171 - # AS=as in the environment causes build failure https://bugzilla.mozilla.org/show_bug.cgi?id=1497286 172 - unset AS 173 - 174 - export MOZCONFIG=$(pwd)/mozconfig 175 - 176 - # Set C flags for Rust's bindgen program. Unlike ordinary C 177 - # compilation, bindgen does not invoke $CC directly. Instead it 178 - # uses LLVM's libclang. To make sure all necessary flags are 179 - # included we need to look in a few places. 180 - # TODO: generalize this process for other use-cases. 181 - 182 - BINDGEN_CFLAGS="$(< ${stdenv.cc}/nix-support/libc-crt1-cflags) \ 183 - $(< ${stdenv.cc}/nix-support/libc-cflags) \ 184 - $(< ${stdenv.cc}/nix-support/cc-cflags) \ 185 - $(< ${stdenv.cc}/nix-support/libcxx-cxxflags) \ 186 - ${ 187 - lib.optionalString stdenv.cc.isClang 188 - "-idirafter ${stdenv.cc.cc}/lib/clang/${ 189 - lib.getVersion stdenv.cc.cc 190 - }/include" 191 - } \ 192 - ${ 193 - lib.optionalString stdenv.cc.isGNU 194 - "-isystem ${stdenv.cc.cc}/include/c++/${ 195 - lib.getVersion stdenv.cc.cc 196 - } -isystem ${stdenv.cc.cc}/include/c++/${ 197 - lib.getVersion stdenv.cc.cc 198 - }/${stdenv.hostPlatform.config}" 199 - } \ 200 - $NIX_CFLAGS_COMPILE" 201 - 202 - echo "ac_add_options BINDGEN_CFLAGS='$BINDGEN_CFLAGS'" >> $MOZCONFIG 203 - ''; 204 - 205 - configureFlags = let 206 - toolkitSlug = if gtk3Support then 207 - "3${lib.optionalString waylandSupport "-wayland"}" 208 - else 209 - "2"; 210 - toolkitValue = "cairo-gtk${toolkitSlug}"; 211 - in [ 212 - "--enable-application=comm/mail" 213 - 214 - "--with-system-icu" 215 - "--with-system-jpeg" 216 - "--with-system-libevent" 217 - "--with-system-nspr" 218 - "--with-system-nss" 219 - "--with-system-png" # needs APNG support 220 - "--with-system-zlib" 221 - "--with-system-webp" 222 - "--with-system-libvpx" 223 - 224 - "--enable-rust-simd" 225 - "--enable-crashreporter" 226 - "--enable-default-toolkit=${toolkitValue}" 227 - "--enable-js-shell" 228 - "--enable-necko-wifi" 229 - "--enable-system-ffi" 230 - "--enable-system-pixman" 231 - 232 - "--disable-tests" 233 - "--disable-updater" 234 - "--enable-jemalloc" 235 - ] ++ (if debugBuild then [ 236 - "--enable-debug" 237 - "--enable-profiling" 238 - ] else [ 239 - "--disable-debug" 240 - "--enable-release" 241 - "--disable-debug-symbols" 242 - "--enable-optimize" 243 - "--enable-strip" 244 - ]) ++ lib.optionals (!stdenv.hostPlatform.isi686) [ 245 - # on i686-linux: --with-libclang-path is not available in this configuration 246 - "--with-libclang-path=${llvmPackages.libclang.lib}/lib" 247 - "--with-clang-path=${llvmPackages.clang}/bin/clang" 248 - ] ++ lib.optional alsaSupport "--enable-alsa" 249 - ++ lib.optional calendarSupport "--enable-calendar" 250 - ++ lib.optional enableOfficialBranding "--enable-official-branding" 251 - ++ lib.optional pulseaudioSupport "--enable-pulseaudio"; 252 - 253 - enableParallelBuilding = true; 254 - 255 - postConfigure = '' 256 - cd obj-* 257 - ''; 258 - 259 - makeFlags = lib.optionals enableOfficialBranding [ 260 - "MOZILLA_OFFICIAL=1" 261 - "BUILD_OFFICIAL=1" 262 - ]; 263 - 264 - doCheck = false; 265 - 266 - desktopItems = [ 267 - (makeDesktopItem { 268 - categories = lib.concatStringsSep ";" [ "Application" "Network" ]; 269 - desktopName = "Thunderbird"; 270 - genericName = "Mail Reader"; 271 - name = "thunderbird"; 272 - exec = "thunderbird %U"; 273 - icon = "thunderbird"; 274 - mimeType = lib.concatStringsSep ";" [ 275 - # Email 276 - "x-scheme-handler/mailto" 277 - "message/rfc822" 278 - # Feeds 279 - "x-scheme-handler/feed" 280 - "application/rss+xml" 281 - "application/x-extension-rss" 282 - # Newsgroups 283 - "x-scheme-handler/news" 284 - "x-scheme-handler/snews" 285 - "x-scheme-handler/nntp" 286 - ]; 287 - }) 288 - ]; 289 - 290 - postInstall = '' 291 - # TODO: Move to a dev output? 292 - rm -rf $out/include $out/lib/thunderbird-devel-* $out/share/idl 293 - install -Dm 444 $out/lib/thunderbird/chrome/icons/default/default256.png $out/share/icons/hicolor/256x256/apps/thunderbird.png 294 - ''; 295 - 296 - # Note on GPG support: 297 - # Thunderbird's native GPG support does not yet support smartcards. 298 - # The official upstream recommendation is to configure fall back to gnupg 299 - # using the Thunderbird config `mail.openpgp.allow_external_gnupg` 300 - # and GPG keys set up; instructions with pictures at: 301 - # https://anweshadas.in/how-to-use-yubikey-or-any-gpg-smartcard-in-thunderbird-78/ 302 - # For that to work out of the box, it requires `gnupg` on PATH and 303 - # `gpgme` in `LD_LIBRARY_PATH`; we do this below. 304 - 305 - preFixup = '' 306 - # Needed to find Mozilla runtime 307 - gappsWrapperArgs+=( 308 - --argv0 "$out/bin/thunderbird" 309 - --set MOZ_APP_LAUNCHER thunderbird 310 - # https://github.com/NixOS/nixpkgs/pull/61980 311 - --set SNAP_NAME "thunderbird" 312 - --set MOZ_LEGACY_PROFILES 1 313 - --set MOZ_ALLOW_DOWNGRADE 1 314 - --prefix PATH : "${lib.getBin gnupg}/bin" 315 - --prefix PATH : "${lib.getBin xdg-utils}/bin" 316 - --prefix LD_LIBRARY_PATH : "${lib.getLib gpgme}/lib" 317 - ) 318 - ''; 319 - 320 - # FIXME: The XUL portion of this can probably be removed as soon as we 321 - # package a Thunderbird >=71.0 since XUL shouldn't be anymore (in use)? 322 - postFixup = '' 323 - local xul="$out/lib/thunderbird/libxul.so" 324 - patchelf --set-rpath "${libnotify}/lib:${lib.getLib systemd}/lib:$(patchelf --print-rpath $xul)" $xul 325 - ''; 326 - 327 - doInstallCheck = true; 328 - installCheckPhase = '' 329 - "$out/bin/thunderbird" --version 330 - ''; 331 - 332 - disallowedRequisites = [ 333 - stdenv.cc 334 - ]; 335 - 336 - passthru.updateScript = import ./../../browsers/firefox/update.nix { 337 - attrPath = "thunderbird-78"; 338 - baseUrl = "http://archive.mozilla.org/pub/thunderbird/releases/"; 339 - inherit writeScript lib common-updater-scripts xidel coreutils gnused 340 - gnugrep gnupg curl runtimeShell; 341 - }; 342 - 343 - requiredSystemFeatures = [ "big-parallel" ]; 344 - 345 - meta = with lib; { 346 - description = "A full-featured e-mail client"; 347 - homepage = "https://www.thunderbird.net"; 348 - maintainers = with maintainers; [ 349 - eelco 350 - lovesegfault 351 - pierron 352 - vcunat 353 - ]; 354 - platforms = platforms.linux; 355 - license = licenses.mpl20; 356 - }; 357 - }
···
+13
pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig-78.patch
···
··· 1 + Remove about:buildconfig. If used as-is, it would add unnecessary runtime dependencies. 2 + --- a/comm/mail/base/jar.mn 3 + +++ b/comm/mail/base/jar.mn 4 + @@ -119,9 +119,7 @@ 5 + % override chrome://mozapps/content/profile/profileDowngrade.js chrome://messenger/content/profileDowngrade.js 6 + % override chrome://mozapps/content/profile/profileDowngrade.xhtml chrome://messenger/content/profileDowngrade.xhtml 7 + 8 + -* content/messenger/buildconfig.html (content/buildconfig.html) 9 + content/messenger/buildconfig.css (content/buildconfig.css) 10 + -% override chrome://global/content/buildconfig.html chrome://messenger/content/buildconfig.html 11 + % override chrome://global/content/buildconfig.css chrome://messenger/content/buildconfig.css 12 + 13 + # L10n resources and overrides.
+13
pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig-90.patch
···
··· 1 + Remove about:buildconfig. If used as-is, it would add unnecessary runtime dependencies. 2 + --- a/comm/mail/base/jar.mn 3 + +++ b/comm/mail/base/jar.mn 4 + @@ -119,9 +119,6 @@ messenger.jar: 5 + % override chrome://mozapps/content/profile/profileDowngrade.js chrome://messenger/content/profileDowngrade.js 6 + % override chrome://mozapps/content/profile/profileDowngrade.xhtml chrome://messenger/content/profileDowngrade.xhtml 7 + 8 + -* content/messenger/buildconfig.html (content/buildconfig.html) 9 + -% override chrome://global/content/buildconfig.html chrome://messenger/content/buildconfig.html 10 + - 11 + # L10n resources and overrides. 12 + % override chrome://mozapps/locale/profile/profileDowngrade.dtd chrome://messenger/locale/profileDowngrade.dtd 13 + % override chrome://global/locale/netError.dtd chrome://messenger/locale/netError.dtd
-37
pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch
··· 1 - Remove about:buildconfig. If used as-is, it would add unnecessary runtime dependencies. 2 - diff -ru -x '*~' a/docshell/base/nsAboutRedirector.cpp b/docshell/base/nsAboutRedirector.cpp 3 - --- a/docshell/base/nsAboutRedirector.cpp 4 - +++ b/docshell/base/nsAboutRedirector.cpp 5 - @@ -63,8 +63,6 @@ 6 - {"about", "chrome://global/content/aboutAbout.html", 0}, 7 - {"addons", "chrome://mozapps/content/extensions/extensions.xhtml", 8 - nsIAboutModule::ALLOW_SCRIPT}, 9 - - {"buildconfig", "chrome://global/content/buildconfig.html", 10 - - nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT}, 11 - {"checkerboard", "chrome://global/content/aboutCheckerboard.html", 12 - nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT | 13 - nsIAboutModule::ALLOW_SCRIPT}, 14 - diff -ru -x '*~' a/toolkit/content/jar.mn b/toolkit/content/jar.mn 15 - --- a/toolkit/content/jar.mn 16 - +++ b/toolkit/content/jar.mn 17 - @@ -35,7 +35,6 @@ 18 - content/global/plugins.js 19 - content/global/browser-child.js 20 - content/global/browser-content.js 21 - -* content/global/buildconfig.html 22 - content/global/buildconfig.css 23 - content/global/contentAreaUtils.js 24 - content/global/datepicker.xhtml 25 - diff -ru -x '*~' a/comm/mail/base/jar.mn b/comm/mail/base/jar.mn 26 - --- a/comm/mail/base/jar.mn 27 - +++ b/comm/mail/base/jar.mn 28 - @@ -119,9 +119,7 @@ 29 - % override chrome://mozapps/content/profile/profileDowngrade.js chrome://messenger/content/profileDowngrade.js 30 - % override chrome://mozapps/content/profile/profileDowngrade.xhtml chrome://messenger/content/profileDowngrade.xhtml 31 - 32 - -* content/messenger/buildconfig.html (content/buildconfig.html) 33 - content/messenger/buildconfig.css (content/buildconfig.css) 34 - -% override chrome://global/content/buildconfig.html chrome://messenger/content/buildconfig.html 35 - % override chrome://global/content/buildconfig.css chrome://messenger/content/buildconfig.css 36 - 37 - # L10n resources and overrides.
···
+66
pkgs/applications/networking/mailreaders/thunderbird/packages.nix
···
··· 1 + { stdenv, lib, callPackage, fetchurl, fetchpatch, nixosTests }: 2 + 3 + let 4 + common = opts: callPackage (import ../../browsers/firefox/common.nix opts) { 5 + webrtcSupport = false; 6 + geolocationSupport = false; 7 + }; 8 + in 9 + 10 + rec { 11 + thunderbird = common rec { 12 + pname = "thunderbird"; 13 + version = "91.0"; 14 + application = "comm/mail"; 15 + binaryName = pname; 16 + src = fetchurl { 17 + url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz"; 18 + sha512 = "f3fcaff97b37ef41850895e44fbd2f42b0f1cb982542861bef89ef7ee606c6332296d61f666106be9455078933a2844c46bf243b71cc4364d9ff457d9c808a7a"; 19 + }; 20 + patches = [ 21 + ./no-buildconfig-90.patch 22 + ]; 23 + 24 + meta = with lib; { 25 + description = "A full-featured e-mail client"; 26 + homepage = "https://thunderbird.net/"; 27 + maintainers = with maintainers; [ eelco lovesegfault pierron vcunat ]; 28 + platforms = platforms.unix; 29 + badPlatforms = platforms.darwin; 30 + broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory". 31 + # not in `badPlatforms` because cross-compilation on 64-bit machine might work. 32 + license = licenses.mpl20; 33 + }; 34 + updateScript = callPackage ./update.nix { 35 + attrPath = "thunderbird-unwrapped"; 36 + }; 37 + }; 38 + 39 + thunderbird-78 = common rec { 40 + pname = "thunderbird"; 41 + version = "78.13.0"; 42 + application = "comm/mail"; 43 + binaryName = pname; 44 + src = fetchurl { 45 + url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz"; 46 + sha512 = "daee9ea9e57bdfce231a35029807f279a06f8790d71efc8998c78eb42d99a93cf98623170947df99202da038f949ba9111a7ff7adbd43c161794deb6791370a0"; 47 + }; 48 + patches = [ 49 + ./no-buildconfig-78.patch 50 + ]; 51 + 52 + meta = with lib; { 53 + description = "A full-featured e-mail client"; 54 + homepage = "https://thunderbird.net/"; 55 + maintainers = with maintainers; [ eelco lovesegfault pierron vcunat ]; 56 + platforms = platforms.unix; 57 + badPlatforms = platforms.darwin; 58 + broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory". 59 + # not in `badPlatforms` because cross-compilation on 64-bit machine might work. 60 + license = licenses.mpl20; 61 + }; 62 + updateScript = callPackage ./update.nix { 63 + attrPath = "thunderbird-78-unwrapped"; 64 + }; 65 + }; 66 + }
+23
pkgs/applications/networking/mailreaders/thunderbird/wrapper.nix
···
··· 1 + { lib, wrapFirefox, gpgme, gnupg }: 2 + 3 + browser: 4 + args: 5 + 6 + (wrapFirefox browser ({ 7 + libName = "thunderbird"; 8 + } // args)) 9 + 10 + .overrideAttrs (old: { 11 + # Thunderbird's native GPG support does not yet support smartcards. 12 + # The official upstream recommendation is to configure fall back to gnupg 13 + # using the Thunderbird config `mail.openpgp.allow_external_gnupg` 14 + # and GPG keys set up; instructions with pictures at: 15 + # https://anweshadas.in/how-to-use-yubikey-or-any-gpg-smartcard-in-thunderbird-78/ 16 + # For that to work out of the box, it requires `gnupg` on PATH and 17 + # `gpgme` in `LD_LIBRARY_PATH`; we do this below. 18 + buildCommand = old.buildCommand + '' 19 + wrapProgram $out/bin/thunderbird \ 20 + --prefix LD_LIBRARY_PATH ':' "${lib.makeLibraryPath [ gpgme ]}" \ 21 + --prefix PATH ':' "${lib.makeBinPath [ gnupg ]}" 22 + ''; 23 + })
+21 -13
pkgs/top-level/all-packages.nix
··· 24486 }; 24487 24488 firefox-bin = wrapFirefox firefox-bin-unwrapped { 24489 - browserName = "firefox"; 24490 pname = "firefox-bin"; 24491 desktopName = "Firefox"; 24492 }; ··· 24497 }; 24498 24499 firefox-beta-bin = res.wrapFirefox firefox-beta-bin-unwrapped { 24500 - browserName = "firefox"; 24501 pname = "firefox-beta-bin"; 24502 desktopName = "Firefox Beta"; 24503 }; ··· 24508 }; 24509 24510 firefox-devedition-bin = res.wrapFirefox firefox-devedition-bin-unwrapped { 24511 - browserName = "firefox"; 24512 nameSuffix = "-devedition"; 24513 pname = "firefox-devedition-bin"; 24514 desktopName = "Firefox DevEdition"; ··· 27646 27647 thonny = callPackage ../applications/editors/thonny { }; 27648 27649 - thunderbird = thunderbird-78; 27650 27651 - thunderbird-78 = callPackage ../applications/networking/mailreaders/thunderbird { 27652 - # Using older Rust for workaround: 27653 - # https://bugzilla.mozilla.org/show_bug.cgi?id=1663715 27654 - inherit (rustPackages_1_45) cargo rustc; 27655 - libpng = libpng_apng; 27656 - icu = icu67; 27657 - libvpx = libvpx_1_8; 27658 - gtk3Support = true; 27659 - }; 27660 27661 thunderbolt = callPackage ../os-specific/linux/thunderbolt {}; 27662 ··· 28275 wpsoffice = libsForQt514.callPackage ../applications/office/wpsoffice {}; 28276 28277 wrapFirefox = callPackage ../applications/networking/browsers/firefox/wrapper.nix { }; 28278 28279 wp-cli = callPackage ../development/tools/wp-cli { }; 28280
··· 24486 }; 24487 24488 firefox-bin = wrapFirefox firefox-bin-unwrapped { 24489 + applicationName = "firefox"; 24490 pname = "firefox-bin"; 24491 desktopName = "Firefox"; 24492 }; ··· 24497 }; 24498 24499 firefox-beta-bin = res.wrapFirefox firefox-beta-bin-unwrapped { 24500 + applicationName = "firefox"; 24501 pname = "firefox-beta-bin"; 24502 desktopName = "Firefox Beta"; 24503 }; ··· 24508 }; 24509 24510 firefox-devedition-bin = res.wrapFirefox firefox-devedition-bin-unwrapped { 24511 + applicationName = "firefox"; 24512 nameSuffix = "-devedition"; 24513 pname = "firefox-devedition-bin"; 24514 desktopName = "Firefox DevEdition"; ··· 27646 27647 thonny = callPackage ../applications/editors/thonny { }; 27648 27649 + thunderbirdPackages = recurseIntoAttrs (callPackage ../applications/networking/mailreaders/thunderbird/packages.nix { 27650 + callPackage = pkgs.newScope { 27651 + inherit (rustPackages) cargo rustc; 27652 + libpng = libpng_apng; 27653 + gnused = gnused_422; 27654 + inherit (darwin.apple_sdk.frameworks) CoreMedia ExceptionHandling 27655 + Kerberos AVFoundation MediaToolbox 27656 + CoreLocation Foundation AddressBook; 27657 + inherit (darwin) libobjc; 27658 + }; 27659 + }); 27660 27661 + thunderbird-unwrapped = thunderbirdPackages.thunderbird; 27662 + thunderbird-78-unwrapped = thunderbirdPackages.thunderbird-78; 27663 + thunderbird = wrapThunderbird thunderbird-unwrapped { }; 27664 + thunderbird-78 = wrapThunderbird thunderbird-78-unwrapped { }; 27665 + thunderbird-wayland = wrapThunderbird thunderbird-unwrapped { forceWayland = true; }; 27666 27667 thunderbolt = callPackage ../os-specific/linux/thunderbolt {}; 27668 ··· 28281 wpsoffice = libsForQt514.callPackage ../applications/office/wpsoffice {}; 28282 28283 wrapFirefox = callPackage ../applications/networking/browsers/firefox/wrapper.nix { }; 28284 + 28285 + wrapThunderbird = callPackage ../applications/networking/mailreaders/thunderbird/wrapper.nix { }; 28286 28287 wp-cli = callPackage ../development/tools/wp-cli { }; 28288
+1 -1
pkgs/top-level/release.nix
··· 104 jobs.nix-info.x86_64-linux 105 jobs.nix-info-tested.x86_64-linux 106 # Ensure that X11/GTK are in order. 107 - jobs.thunderbird.x86_64-linux 108 jobs.cachix.x86_64-linux 109 110 /*
··· 104 jobs.nix-info.x86_64-linux 105 jobs.nix-info-tested.x86_64-linux 106 # Ensure that X11/GTK are in order. 107 + jobs.thunderbird-unwrapped.x86_64-linux 108 jobs.cachix.x86_64-linux 109 110 /*