From 571f390dd9f4c59e86e78b75defc14414dc263c5 Mon Sep 17 00:00:00 2001 From: Audrey Dutcher Date: Fri, 3 May 2024 07:12:26 -0700 Subject: [PATCH] freebsd: Only support branch selection via override... for now. Remove config element for freebsdBranch --- .../bsd/freebsd/default-branch.nix | 0 pkgs/os-specific/bsd/freebsd/default.nix | 71 +++++++------------ pkgs/top-level/all-packages.nix | 6 +- pkgs/top-level/config.nix | 8 --- 4 files changed, 26 insertions(+), 59 deletions(-) delete mode 100644 pkgs/os-specific/bsd/freebsd/default-branch.nix diff --git a/pkgs/os-specific/bsd/freebsd/default-branch.nix b/pkgs/os-specific/bsd/freebsd/default-branch.nix deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/pkgs/os-specific/bsd/freebsd/default.nix b/pkgs/os-specific/bsd/freebsd/default.nix index 0b8bed04659f..4295dc213af9 100644 --- a/pkgs/os-specific/bsd/freebsd/default.nix +++ b/pkgs/os-specific/bsd/freebsd/default.nix @@ -1,10 +1,11 @@ { lib, - config, makeScopeWithSplicing', generateSplicesForMkScope, callPackage, crossLibcStdenv, + attributePathToSplice ? [ "freebsd" ], + branch ? "release/13.1.0", }: let @@ -20,34 +21,9 @@ let * `stable/` for stable versions working towards the next minor release * `main` for the latest development version - Set one with the NIXPKGS_FREEBSD_BRANCH environment variable or by setting `nixpkgs.config.freebsdBranch`. + Branches can be selected by overriding the `branch` attribute on the freebsd package set. ''; - attributes = - let - supported13 = "release/13.1.0"; - supported14 = "release/14.0.0"; - branch = - let - fallbackBranch = supported13; - envBranch = builtins.getEnv "NIXPKGS_FREEBSD_BRANCH"; - selectedBranch = - if config.freebsdBranch != null then - config.freebsdBranch - else if envBranch != "" then - envBranch - else - null; - chosenBranch = if selectedBranch != null then selectedBranch else fallbackBranch; - in - chosenBranch; - in - { - freebsd = versions.${branch} or (badBranchError branch); - freebsd13 = versions.${supported13} or (badBranchError supported13); - freebsd14 = versions.${supported14} or (badBranchError supported14); - }; - # `./package-set.nix` should never know the name of the package set we # are constructing; just this function is allowed to know that. This # is why we: @@ -57,31 +33,32 @@ let # - construct the *anonymized* `buildFreebsd` attribute to be passed # to `./package-set.nix`. callFreeBSDWithAttrs = - extraArgs: attribute: sourceData: + extraArgs: let - otherSplices = generateSplicesForMkScope [ attribute ]; + # we do not include the branch in the splice here because the branch + # parameter to this file will only ever take on one value - more values + # are provided through overrides. + otherSplices = generateSplicesForMkScope attributePathToSplice; in makeScopeWithSplicing' { inherit otherSplices; - f = callPackage ./package-set.nix ( + f = + self: { - buildFreebsd = otherSplices.selfBuildHost; - inherit sourceData; - versionData = sourceData.version; - patchesRoot = ./patches/${sourceData.version.revision}; + inherit branch; } - // extraArgs - ); + // callPackage ./package-set.nix ( + { + sourceData = versions.${self.branch} or (throw (badBranchError self.branch)); + versionData = self.sourceData.version; + buildFreebsd = otherSplices.selfBuildHost; + patchesRoot = ./patches/${self.versionData.revision}; + } + // extraArgs + ) self; }; - - exportedAttrSetsNative = lib.mapAttrs (callFreeBSDWithAttrs { }) attributes; - - exportedAttrSetsCross = lib.mapAttrs' ( - name: sourceData: - lib.nameValuePair (name + "Cross") ( - callFreeBSDWithAttrs { stdenv = crossLibcStdenv; } name sourceData - ) - ) attributes; in - -exportedAttrSetsNative // exportedAttrSetsCross +{ + freebsd = callFreeBSDWithAttrs { }; + freebsdCross = callFreeBSDWithAttrs { stdenv = crossLibcStdenv; }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f01a0f12634b..f42229dadae7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -40910,10 +40910,8 @@ with pkgs; name = "bsd-setup-hook"; } ../os-specific/bsd/setup-hook.sh; - inherit (callPackage ../os-specific/bsd/freebsd {}) - freebsd freebsdCross - freebsd13 freebsd13Cross - freebsd14 freebsd14Cross; + inherit (callPackage ../os-specific/bsd/freebsd { }) + freebsd freebsdCross; netbsd = callPackage ../os-specific/bsd/netbsd { }; netbsdCross = callPackage ../os-specific/bsd/netbsd { diff --git a/pkgs/top-level/config.nix b/pkgs/top-level/config.nix index 4a5b12ed70db..67a9a60dbaea 100644 --- a/pkgs/top-level/config.nix +++ b/pkgs/top-level/config.nix @@ -74,14 +74,6 @@ let feature = "set `__contentAddressed` to true by default"; }; - freebsdBranch = mkMassRebuild { - type = types.nullOr types.str; - default = null; - description = '' - Default FreeBSD release to use for FreeBSD packages - ''; - }; - allowAliases = mkOption { type = types.bool; default = true;