linux: Partially revert "linux: drop hacky passing around of positions"
This partially reverts commit845e340ed9. This re-introduces the `pos` juggling previous done. The rationale used in the commit was: > This is long obsolete since the versions are maintained in a JSON > file now. That is only accurate for `mainline`. Other in-tree kernels are maintained in different ways. This led to a loss of information. Before (cf3f5c4def): ``` nix-repl> linux_latest.meta.position ".../pkgs/os-specific/linux/kernel/mainline.nix:34" nix-repl> linux_rpi0.meta.position ".../pkgs/os-specific/linux/kernel/linux-rpi.nix:20" ``` After (2fb006b87f): ``` nix-repl> linux_latest.meta.position ".../pkgs/os-specific/linux/kernel/build.nix:558" nix-repl> linux_rpi0.meta.position ".../pkgs/os-specific/linux/kernel/build.nix:558" ``` This is also observable for out-of-tree kernels: ``` nix-repl> pkgs.linux_jovian.meta.position ".../Jovian-NixOS/pkgs/linux-jovian/default.nix:11" nix-repl> :r # after updating the Nixpkgs input nix-repl> pkgs.linux_jovian.meta.position "/nix/store/xjjq52iwslhz6lbc621a31v0nfdhr5ks-source/pkgs/os-specific/linux/kernel/build.nix:558" ``` This also conveniently works around the root cause of an `stdenv.mkDerivation`-based `pos` infrec regression when using the kernel package version in a NixOS configuration to conditionally apply kernel patches.
This commit is contained in:
@@ -51,6 +51,8 @@ lib.makeOverridable (
|
|||||||
version,
|
version,
|
||||||
# The kernel pname (should be set for variants)
|
# The kernel pname (should be set for variants)
|
||||||
pname ? "linux",
|
pname ? "linux",
|
||||||
|
# Position of the Linux build expression
|
||||||
|
pos ? null,
|
||||||
# Additional kernel make flags
|
# Additional kernel make flags
|
||||||
extraMakeFlags ? [ ],
|
extraMakeFlags ? [ ],
|
||||||
# The name of the kernel module directory
|
# The name of the kernel module directory
|
||||||
@@ -551,6 +553,8 @@ lib.makeOverridable (
|
|||||||
|
|
||||||
karch = stdenv.hostPlatform.linuxArch;
|
karch = stdenv.hostPlatform.linuxArch;
|
||||||
|
|
||||||
|
pos = lib.optionalDrvAttr (pos != null) pos;
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
# https://github.com/NixOS/nixpkgs/pull/345534#issuecomment-2391238381
|
# https://github.com/NixOS/nixpkgs/pull/345534#issuecomment-2391238381
|
||||||
broken = withRust && lib.versionOlder version "6.12";
|
broken = withRust && lib.versionOlder version "6.12";
|
||||||
|
|||||||
@@ -293,6 +293,7 @@ let
|
|||||||
configfile
|
configfile
|
||||||
modDirVersion
|
modDirVersion
|
||||||
;
|
;
|
||||||
|
pos = builtins.unsafeGetAttrPos "version" args;
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
CONFIG_MODULES = "y";
|
CONFIG_MODULES = "y";
|
||||||
|
|||||||
Reference in New Issue
Block a user