diff options
author | Yureka <yuka@yuka.dev> | 2021-07-13 19:04:57 +0200 |
---|---|---|
committer | Yureka <yuka@yuka.dev> | 2021-08-12 08:50:41 +0200 |
commit | 711d674e1322a8ccdbf985322468da87a141bc9c (patch) | |
tree | 364d7be8bfa621567857515020cc6abf68105898 | |
parent | 5e1559de12a3af65005a8ed5e7ee0325890ce60d (diff) | |
download | nixpkgs-711d674e1322a8ccdbf985322468da87a141bc9c.tar nixpkgs-711d674e1322a8ccdbf985322468da87a141bc9c.tar.gz nixpkgs-711d674e1322a8ccdbf985322468da87a141bc9c.tar.bz2 nixpkgs-711d674e1322a8ccdbf985322468da87a141bc9c.tar.lz nixpkgs-711d674e1322a8ccdbf985322468da87a141bc9c.tar.xz nixpkgs-711d674e1322a8ccdbf985322468da87a141bc9c.tar.zst nixpkgs-711d674e1322a8ccdbf985322468da87a141bc9c.zip |
firefox: rename some attributes in packaging
This should not change the derivation, but the new attribute names make more sense once we package something that is not Firefox using this expression.
4 files changed, 63 insertions, 66 deletions
diff --git a/pkgs/applications/networking/browsers/firefox/common.nix b/pkgs/applications/networking/browsers/firefox/common.nix index 514447931f3..10d9d55e9ec 100644 --- a/pkgs/applications/networking/browsers/firefox/common.nix +++ b/pkgs/applications/networking/browsers/firefox/common.nix @@ -1,4 +1,5 @@ -{ pname, ffversion, meta, updateScript ? null +{ pname, version, meta, updateScript ? null +, binaryName ? "firefox", application ? "browser" , src, unpackPhase ? null, patches ? [] , extraNativeBuildInputs ? [], extraConfigureFlags ? [], extraMakeFlags ? [], tests ? [] }: @@ -81,17 +82,16 @@ let default-toolkit = if stdenv.isDarwin then "cairo-cocoa" else "cairo-gtk3${lib.optionalString waylandSupport "-wayland"}"; - binaryName = "firefox"; binaryNameCapitalized = lib.toUpper (lib.substring 0 1 binaryName) + lib.substring 1 (-1) binaryName; - browserName = if stdenv.isDarwin then binaryNameCapitalized else binaryName; + applicationName = if stdenv.isDarwin then binaryNameCapitalized else binaryName; execdir = if stdenv.isDarwin then "/Applications/${binaryNameCapitalized}.app/Contents/MacOS" else "/bin"; # 78 ESR won't build with rustc 1.47 - inherit (if lib.versionAtLeast ffversion "82" then rustPackages else rustPackages_1_45) + inherit (if lib.versionAtLeast version "82" then rustPackages else rustPackages_1_45) rustc cargo; # Darwin's stdenv provides the default llvmPackages version, match that since @@ -118,7 +118,7 @@ let # Disable p11-kit support in nss until our cacert packages has caught up exposing CKA_NSS_MOZILLA_CA_POLICY # https://github.com/NixOS/nixpkgs/issues/126065 - nss_pkg = if lib.versionOlder ffversion "83" then nss_3_53 else nss.override { useP11kit = false; }; + nss_pkg = if lib.versionOlder version "83" then nss_3_53 else nss.override { useP11kit = false; }; # --enable-release adds -ffunction-sections & LTO that require a big amount of # RAM and the 32-bit memory space cannot handle that linking @@ -129,26 +129,26 @@ let in buildStdenv.mkDerivation ({ - name = "${pname}-unwrapped-${ffversion}"; - version = ffversion; + name = "${pname}-unwrapped-${version}"; + inherit version; inherit src unpackPhase meta; patches = [ ] ++ - lib.optional (lib.versionOlder ffversion "86") ./env_var_for_system_dir-ff85.patch ++ - lib.optional (lib.versionAtLeast ffversion "86") ./env_var_for_system_dir-ff86.patch ++ - lib.optional (lib.versionOlder ffversion "83") ./no-buildconfig-ffx76.patch ++ - lib.optional (lib.versionAtLeast ffversion "90") ./no-buildconfig-ffx90.patch ++ - lib.optional (ltoSupport && lib.versionOlder ffversion "84") ./lto-dependentlibs-generation-ffx83.patch ++ - lib.optional (ltoSupport && lib.versionAtLeast ffversion "84" && lib.versionOlder ffversion "86") + lib.optional (lib.versionOlder version "86") ./env_var_for_system_dir-ff85.patch ++ + lib.optional (lib.versionAtLeast version "86") ./env_var_for_system_dir-ff86.patch ++ + lib.optional (lib.versionOlder version "83") ./no-buildconfig-ffx76.patch ++ + lib.optional (lib.versionAtLeast version "90") ./no-buildconfig-ffx90.patch ++ + lib.optional (ltoSupport && lib.versionOlder version "84") ./lto-dependentlibs-generation-ffx83.patch ++ + lib.optional (ltoSupport && lib.versionAtLeast version "84" && lib.versionOlder version "86") (fetchpatch { url = "https://hg.mozilla.org/mozilla-central/raw-rev/fdff20c37be3"; sha256 = "135n9brliqy42lj3nqgb9d9if7x6x9nvvn0z4anbyf89bikixw48"; }) # This patch adds pipewire support for the ESR release - ++ lib.optional (pipewireSupport && lib.versionOlder ffversion "83") + ++ lib.optional (pipewireSupport && lib.versionOlder version "83") (fetchpatch { # https://src.fedoraproject.org/rpms/firefox/blob/master/f/firefox-pipewire-0-3.patch url = "https://src.fedoraproject.org/rpms/firefox/raw/e99b683a352cf5b2c9ff198756859bae408b5d9d/f/firefox-pipewire-0-3.patch"; @@ -185,11 +185,11 @@ buildStdenv.mkDerivation ({ ++ lib.optional gssSupport libkrb5 ++ lib.optionals waylandSupport [ libxkbcommon libdrm ] ++ lib.optional pipewireSupport pipewire - ++ lib.optional (lib.versionAtLeast ffversion "82") gnum4 + ++ lib.optional (lib.versionAtLeast version "82") gnum4 ++ lib.optionals buildStdenv.isDarwin [ CoreMedia ExceptionHandling Kerberos AVFoundation MediaToolbox CoreLocation Foundation libobjc AddressBook cups ] - ++ lib.optional (lib.versionOlder ffversion "90") gtk2; + ++ lib.optional (lib.versionOlder version "90") gtk2; NIX_LDFLAGS = lib.optionalString ltoSupport '' -rpath ${llvmPackages.libunwind.out}/lib @@ -201,14 +201,14 @@ buildStdenv.mkDerivation ({ rm -rf obj-x86_64-pc-linux-gnu substituteInPlace toolkit/xre/glxtest.cpp \ --replace 'dlopen("libpci.so' 'dlopen("${pciutils}/lib/libpci.so' - '' + lib.optionalString (pipewireSupport && lib.versionOlder ffversion "83") '' + '' + lib.optionalString (pipewireSupport && lib.versionOlder version "83") '' # substitute the /usr/include/ lines for the libraries that pipewire provides. # The patch we pick from fedora only contains the generated moz.build files # which hardcode the dependency paths instead of running pkg_config. substituteInPlace \ media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build \ --replace /usr/include ${pipewire.dev}/include - '' + lib.optionalString (lib.versionAtLeast ffversion "80" && lib.versionOlder ffversion "81") '' + '' + lib.optionalString (lib.versionAtLeast version "80" && lib.versionOlder version "81") '' substituteInPlace dom/system/IOUtils.h \ --replace '#include "nspr/prio.h"' '#include "prio.h"' @@ -276,7 +276,7 @@ buildStdenv.mkDerivation ({ ''; configureFlags = [ - "--enable-application=browser" + "--enable-application=${application}" "--with-system-jpeg" "--with-system-zlib" "--with-system-libevent" @@ -357,19 +357,19 @@ buildStdenv.mkDerivation ({ doInstallCheck = true; installCheckPhase = '' # Some basic testing - "$out${execdir}/${browserName}" --version + "$out${execdir}/${applicationName}" --version ''; passthru = { inherit updateScript; - version = ffversion; + inherit version; inherit alsaSupport; inherit pipewireSupport; inherit nspr; inherit ffmpegSupport; inherit gssSupport; inherit execdir; - inherit browserName; + inherit applicationName; inherit tests; inherit gtk3; }; diff --git a/pkgs/applications/networking/browsers/firefox/packages.nix b/pkgs/applications/networking/browsers/firefox/packages.nix index 33186ccba47..5d033fbf935 100644 --- a/pkgs/applications/networking/browsers/firefox/packages.nix +++ b/pkgs/applications/networking/browsers/firefox/packages.nix @@ -7,9 +7,9 @@ in rec { firefox = common rec { pname = "firefox"; - ffversion = "91.0"; + version = "91.0"; src = fetchurl { - url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz"; + url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz"; sha512 = "a02486a3996570e0cc815e92c98890bca1d27ce0018c2ee3d4bff9a6e54dbc8f5926fea8b5864f208e15389d631685b2add1e4e9e51146e40224d16d5c02f730"; }; @@ -27,15 +27,14 @@ rec { tests = [ nixosTests.firefox ]; updateScript = callPackage ./update.nix { attrPath = "firefox-unwrapped"; - versionKey = "ffversion"; }; }; firefox-esr-91 = common rec { pname = "firefox-esr"; - ffversion = "91.0esr"; + version = "91.0esr"; src = fetchurl { - url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz"; + url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz"; sha512 = "e518e1536094a1da44eb45b3b0f3adc1b5532f17da2dbcc994715419ec4fcec40574fdf633349a8e5de6382942f5706757a35f1b96b11de4754855b9cf7946ae"; }; @@ -53,15 +52,14 @@ rec { updateScript = callPackage ./update.nix { attrPath = "firefox-esr-91-unwrapped"; versionSuffix = "esr"; - versionKey = "ffversion"; }; }; firefox-esr-78 = common rec { pname = "firefox-esr"; - ffversion = "78.12.0esr"; + version = "78.12.0esr"; src = fetchurl { - url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz"; + url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz"; sha512 = "646eb803e0d0e541773e3111708c7eaa85e784e4bae6e4a77dcecdc617ee29e2e349c9ef16ae7e663311734dd7491aebd904359124dda62672dbc18bfb608f0a"; }; @@ -79,7 +77,6 @@ rec { updateScript = callPackage ./update.nix { attrPath = "firefox-esr-78-unwrapped"; versionSuffix = "esr"; - versionKey = "ffversion"; }; }; } diff --git a/pkgs/applications/networking/browsers/firefox/wrapper.nix b/pkgs/applications/networking/browsers/firefox/wrapper.nix index c868369b603..0ef5233ff6b 100644 --- a/pkgs/applications/networking/browsers/firefox/wrapper.nix +++ b/pkgs/applications/networking/browsers/firefox/wrapper.nix @@ -20,18 +20,18 @@ browser: let wrapper = - { browserName ? browser.browserName or (lib.getName browser) - , pname ? browserName + { applicationName ? browser.applicationName or (lib.getName browser) + , pname ? applicationName , version ? lib.getVersion browser - , desktopName ? # browserName with first letter capitalized - (lib.toUpper (lib.substring 0 1 browserName) + lib.substring 1 (-1) browserName) + , desktopName ? # applicationName with first letter capitalized + (lib.toUpper (lib.substring 0 1 applicationName) + lib.substring 1 (-1) applicationName) , nameSuffix ? "" - , icon ? browserName + , icon ? applicationName , extraNativeMessagingHosts ? [] , pkcs11Modules ? [] , forceWayland ? false , useGlvnd ? true - , cfg ? config.${browserName} or {} + , cfg ? config.${applicationName} or {} ## Following options are needed for extra prefs & policies # For more information about anti tracking (german website) @@ -40,7 +40,7 @@ let # For more information about policies visit # https://github.com/mozilla/policy-templates#enterprisepoliciesenabled , extraPolicies ? {} - , firefoxLibName ? "firefox" # Important for tor package or the like + , libName ? "firefox" # Important for tor package or the like , nixExtensions ? null }: @@ -162,15 +162,15 @@ let "jre" ]; pluginsError = - "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)."; + "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)."; in if configPlugins != [] then throw pluginsError else (stdenv.mkDerivation { inherit pname version; desktopItem = makeDesktopItem { - name = browserName; - exec = "${browserName}${nameSuffix} %U"; + name = applicationName; + exec = "${applicationName}${nameSuffix} %U"; inherit icon; comment = ""; desktopName = "${desktopName}${nameSuffix}${lib.optionalString forceWayland " (Wayland)"}"; @@ -193,12 +193,12 @@ let buildCommand = lib.optionalString stdenv.isDarwin '' mkdir -p $out/Applications - cp -R --no-preserve=mode,ownership ${browser}/Applications/${browserName}.app $out/Applications - rm -f $out${browser.execdir or "/bin"}/${browserName} + cp -R --no-preserve=mode,ownership ${browser}/Applications/${applicationName}.app $out/Applications + rm -f $out${browser.execdir or "/bin"}/${applicationName} '' + '' - if [ ! -x "${browser}${browser.execdir or "/bin"}/${browserName}" ] + if [ ! -x "${browser}${browser.execdir or "/bin"}/${applicationName}" ] then - echo "cannot find executable file \`${browser}${browser.execdir or "/bin"}/${browserName}'" + echo "cannot find executable file \`${browser}${browser.execdir or "/bin"}/${applicationName}'" exit 1 fi @@ -213,9 +213,9 @@ let cd "${browser}" find . -type d -exec mkdir -p "$out"/{} \; - find . -type f \( -not -name "${browserName}" \) -exec ln -sT "${browser}"/{} "$out"/{} \; + find . -type f \( -not -name "${applicationName}" \) -exec ln -sT "${browser}"/{} "$out"/{} \; - find . -type f -name "${browserName}" -print0 | while read -d $'\0' f; do + find . -type f -name "${applicationName}" -print0 | while read -d $'\0' f; do cp -P --no-preserve=mode,ownership "${browser}/$f" "$out/$f" chmod a+rwx "$out/$f" done @@ -236,11 +236,11 @@ let # create the wrapper executablePrefix="$out${browser.execdir or "/bin"}" - executablePath="$executablePrefix/${browserName}" + executablePath="$executablePrefix/${applicationName}" if [ ! -x "$executablePath" ] then - echo "cannot find executable file \`${browser}${browser.execdir or "/bin"}/${browserName}'" + echo "cannot find executable file \`${browser}${browser.execdir or "/bin"}/${applicationName}'" exit 1 fi @@ -249,25 +249,25 @@ let # Careful here, the file at executablePath may already be # a wrapper. That is why we postfix it with -old instead # of -wrapped. - oldExe="$executablePrefix"/".${browserName}"-old + oldExe="$executablePrefix"/".${applicationName}"-old mv "$executablePath" "$oldExe" else oldExe="$(readlink -v --canonicalize-existing "$executablePath")" fi - if [ ! -x "${browser}${browser.execdir or "/bin"}/${browserName}" ] + if [ ! -x "${browser}${browser.execdir or "/bin"}/${applicationName}" ] then - echo "cannot find executable file \`${browser}${browser.execdir or "/bin"}/${browserName}'" + echo "cannot find executable file \`${browser}${browser.execdir or "/bin"}/${applicationName}'" exit 1 fi makeWrapper "$oldExe" \ - "$out${browser.execdir or "/bin"}/${browserName}${nameSuffix}" \ + "$out${browser.execdir or "/bin"}/${applicationName}${nameSuffix}" \ --prefix LD_LIBRARY_PATH ':' "$libs" \ --suffix-each GTK_PATH ':' "$gtk_modules" \ --prefix PATH ':' "${xdg-utils}/bin" \ --suffix PATH ':' "$out${browser.execdir or "/bin"}" \ - --set MOZ_APP_LAUNCHER "${browserName}${nameSuffix}" \ + --set MOZ_APP_LAUNCHER "${applicationName}${nameSuffix}" \ --set MOZ_SYSTEM_DIR "$out/lib/mozilla" \ --set MOZ_LEGACY_PROFILES 1 \ --set MOZ_ALLOW_DOWNGRADE 1 \ @@ -290,7 +290,7 @@ let mkdir -p "$out/share/icons/hicolor/''${res}x''${res}/apps" icon=( "${browser}/lib/"*"/browser/chrome/icons/default/default''${res}.png" ) if [ -e "$icon" ]; then ln -s "$icon" \ - "$out/share/icons/hicolor/''${res}x''${res}/apps/${browserName}.png" + "$out/share/icons/hicolor/''${res}x''${res}/apps/${applicationName}.png" fi done fi @@ -314,24 +314,24 @@ let # # ######################### # user customization - mkdir -p $out/lib/${firefoxLibName} + mkdir -p $out/lib/${libName} # creating policies.json - mkdir -p "$out/lib/${firefoxLibName}/distribution" + mkdir -p "$out/lib/${libName}/distribution" - POL_PATH="$out/lib/${firefoxLibName}/distribution/policies.json" + POL_PATH="$out/lib/${libName}/distribution/policies.json" rm -f "$POL_PATH" cat ${policiesJson} >> "$POL_PATH" # preparing for autoconfig - mkdir -p "$out/lib/${firefoxLibName}/defaults/pref" + mkdir -p "$out/lib/${libName}/defaults/pref" - echo 'pref("general.config.filename", "mozilla.cfg");' > "$out/lib/${firefoxLibName}/defaults/pref/autoconfig.js" - echo 'pref("general.config.obscure_value", 0);' >> "$out/lib/${firefoxLibName}/defaults/pref/autoconfig.js" + echo 'pref("general.config.filename", "mozilla.cfg");' > "$out/lib/${libName}/defaults/pref/autoconfig.js" + echo 'pref("general.config.obscure_value", 0);' >> "$out/lib/${libName}/defaults/pref/autoconfig.js" - cat > "$out/lib/${firefoxLibName}/mozilla.cfg" < ${mozillaCfg} + cat > "$out/lib/${libName}/mozilla.cfg" < ${mozillaCfg} - mkdir -p $out/lib/${firefoxLibName}/distribution/extensions + mkdir -p $out/lib/${libName}/distribution/extensions ############################# # # diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index cff389cf951..9d18dbbabb1 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -24486,7 +24486,7 @@ with pkgs; }; firefox-bin = wrapFirefox firefox-bin-unwrapped { - browserName = "firefox"; + applicationName = "firefox"; pname = "firefox-bin"; desktopName = "Firefox"; }; @@ -24497,7 +24497,7 @@ with pkgs; }; firefox-beta-bin = res.wrapFirefox firefox-beta-bin-unwrapped { - browserName = "firefox"; + applicationName = "firefox"; pname = "firefox-beta-bin"; desktopName = "Firefox Beta"; }; @@ -24508,7 +24508,7 @@ with pkgs; }; firefox-devedition-bin = res.wrapFirefox firefox-devedition-bin-unwrapped { - browserName = "firefox"; + applicationName = "firefox"; nameSuffix = "-devedition"; pname = "firefox-devedition-bin"; desktopName = "Firefox DevEdition"; |