summary refs log tree commit diff
path: root/pkgs/os-specific/linux/kernel/generic.nix
Commit message (Collapse)AuthorAge
* Merge master into staging-nextgithub-actions[bot]2023-11-03
|\
| * linux: allow to omit the common-config.nixAdam Joseph2023-10-22
| |
* | Merge pull request #245965 from amjoseph-nixpkgs/pr/linux/kernel/repick2Artturi2023-09-30
|\ \ | |/ |/| linux.configfile: remove unused kernelTarget attr
| * linux.configfile: remove unused kernelTarget attrAlyssa Ross2023-07-28
| | | | | | | | | | | | | | As far as I can tell this is unused since f95d214cfdf. Fixes: f95d214cfdf ("Implement generic kernel build via manual-config") Fixes: https://github.com/NixOS/nixpkgs/issues/234084
* | Merge staging-next into staginggithub-actions[bot]2023-08-09
|\ \ | |/ |/|
| * kernel: fix passthru.testsAtemu2023-08-06
| | | | | | | | | | | | | | | | | | https://github.com/NixOS/nixpkgs/pull/191540 indirectly broke kernel passthru.tests; calling the testsForLinuxPackages and testsForKernel functions with some args intended for some other exposed test-internal function. Organise the passed-through functions under `passthru` to prevent this from happening.
* | Revert "linux: default stdenv.hostPlatform.linux-kernel"Adam Joseph2023-07-28
| | | | | | | | This reverts commit febe4776287fd81b9dc0fd88a8bcb686765c8a6b.
* | Revert "linux.configfile: remove unused kernelTarget attr"Adam Joseph2023-07-28
|/ | | | This reverts commit 01b36425890182d3a1898c27d479189a7c496646.
* linux.configfile: remove unused kernelTarget attrAlyssa Ross2023-06-04
| | | | | | | As far as I can tell this is unused since f95d214cfdf. Fixes: f95d214cfdf ("Implement generic kernel build via manual-config") Fixes: https://github.com/NixOS/nixpkgs/issues/234084
* linux: default stdenv.hostPlatform.linux-kernelAlyssa Ross2023-05-22
| | | | | | | | | | | | With this change, we can do a reasonable default build of Linux for configurations that do not have a corresponding platforms.nix entry, and where the user has not explicitly specified the linux-kernel values. This allows us to do best effort builds for obscure architectures (I tested a build for s390x). The platformName binding has not been used since 70cb7050f5c ("Trying to make the linux kernels also cross-build."), so I removed it.
* linuxManualConfig: don't ignore cross config errorsAlyssa Ross2023-05-19
| | | | | All "pc" kernel configurations in lib.systems.examples build fine without errors when cross compiling.
* nixos/doc: update custom kernel instructionsNaïm Favier2022-12-22
| | | | | | | Document the `linux.override` way first, then `linuxManualConfig`. Add a `linux.configEnv` passthru attribute for quickly getting a `make nconfig`-ready shell.
* linuxManualConfig: don't require lib and stdenv argumentsNaïm Favier2022-12-22
| | | | | | | Reverts https://github.com/NixOS/nixpkgs/commit/7c7c83e2335c3aa6f26a4f9c905c49c430b5be09 which was only needed for the minimal-kernel.nix test module and clutters the call site. stdenv can still be overridden with `linuxManualConfig.override { stdenv = ...; }`.
* linux: use `lib.versions.pad` for `modDirVersion`Naïm Favier2022-12-21
|
* kernel: move prePatch to postPatch to not mess with patchesSandro Jäckel2022-10-14
|
* linux: provide pahole when configuringK9002022-08-02
| | | | | | | | The kernel checks the version of pahole at configuration time to know if it supports features like split BTFs. If pahole doesn't exist, all of that gets disabled in the config file, so the kernel ends up built without split BTFs, despite having a working pahole for the actual build.
* kernel/generic: remove redundant kernelOlder/kernelAtLeastAtemu2021-11-22
|
* linux: make sure that `src`/`version` actually refer to the declaring fileMaximilian Bosch2021-11-01
| | | | | | | | | | | | | | With this change it's ensured that `builtins.unsafeGetAttrPos` actually points to `<nixpkgs/pkgs/os-specific/linux/kernel/linux-x.y.nix>` when retrieving the position of `src` or `version` of `linuxPackages.kernel`. This is relevant to make sure that ofborg pinging maintainers on kernel updates actually works[1]. While the underlying issue should be fixed in ofborg or Nix itself, this is IMHO a pragmatic change to ensure that all kernel maintainers are automatically notified on updates. [1] https://github.com/NixOS/nixpkgs/pull/143113#issuecomment-953319957
* kernel/generic: add kernelTests automaticallyAtemu2021-08-23
| | | | | | | | Unfortunately, there seems to be no way of referencing an overridable version of the package you're in, so it had to be stubed to work at all. This isn't important for our current, very basic kernel nixosTests but might become important when we add more sophisticated ones.
* Merge pull request #110742 from siraben/deprecate-foldBen Siraphob2021-07-27
|\
| * treewide: fold -> foldrBen Siraphob2021-01-26
| |
* | buildLinux: pass buildPackages to linuxManualConfigBernardo Meurer2021-07-17
| | | | | | | | | | | | | | | | | | | | We should be using the _same_ buildPackages when we generate the configuration (which happens in buildLinux) as when we actually build the kernel (which happens in linuxManualConfig). This change enforces that when we callPackage `manual-config.nix` we pass on whatever `buildPackages` that `buildLinux` itself was called with.
* | buildLinux: preserve structuredExtraConfig and extraMakeFlags in passthruBernardo Meurer2021-07-13
| | | | | | | | | | This allows users to override custom kernel packages (e.g. linux_xanmod) that set their own structuredExtraConfig with ease.
* | buildLinux: take and propagate extraMakeFlagsBernardo Meurer2021-07-12
| | | | | | | | | | | | | | This is just for practicity, as it allows users of buildLinux to pass along extra flags they need in the kernel's make invocation. This makes, for example, supporting LLVM _much_ easier, and could enable us in the future to provide clang-built kernels.
* | buildLinux: apply hostPlatform.linux-kernel.makeFlags to generate-config.plBernardo Meurer2021-07-12
| | | | | | | | | | | | | | | | | | | | | | | | This enforces that the configuration generated will obey any/all flags set in the platform/stdenv configuration. This is crucial, for example, if you'd like to build a kernel using clang. Without this patch, anything you set in `stdenv.hostPlatform.linux-kernel.makeFlags` is wholly ignored during config generation, causing (for example) any changes in the desired toolchain (e.g. `LLVM`, `LLVM_IAS`) to not be reflected in the generated config, and for the subsequent build to fail.
* | Merge pull request #113225 from mroi/patch-linuxJörg Thalheim2021-05-11
|\ \ | | | | | | linux: improve cross compilation with clang
| * | linux: improve cross compilation with clangMichael Roitzsch2021-05-10
| |/ | | | | | | | | | | set HOST* variables for host build tools * do not assume the host compiler is gcc * pass all build tools to make
* | Merge branch 'staging-next' into stagingDmitry Kalinkin2021-04-08
|\ \ | | | | | | | | | | | | | | | | | | Conflicts: pkgs/development/python-modules/panel/default.nix pkgs/os-specific/linux/kernel/generic.nix pkgs/servers/home-assistant/default.nix
| * | kernel: Add test for RC kernelsTim Steinbach2021-04-08
| | |
| * | kernel: Add tests to passthru.testsTim Steinbach2021-04-08
| |/
* | linux: remove remnants of grsecurityAlyssa Ross2021-04-06
| | | | | | | | | | | | | | | | | | | | Nixpkgs hasn't supported grsecurity kernels since 2017, so unless anybody is manually enabling the grsecurity feature to make these small kernel tweaks this is dead code. This means we don't actually support any "features" in the kernel common-config any more, but I've left the argument there because it's conceivable we could have some again in future.
* | linux: remove xen_dom0 feature entirelyAlyssa Ross2021-04-05
|/ | | | | | | Xen is now enabled unconditionally on kernels that support it, so the xen_dom0 feature doesn't do anything. The isXen attribute will now produce a deprecation warning and unconditionally return true. Passing in a custom value for isXen is no longer supported.
* lib: Clean up how linux and gcc config is specifiedJohn Ericson2021-01-23
| | | | | | | Second attempt of 8929989614589ee3acd070a6409b2b9700c92d65; see that commit for details. This reverts commit 0bc275e63423456d6deb650e146120c39c1e0723.
* Revert "lib: Clean up how linux and gcc config is specified"Jonathan Ringer2021-01-22
| | | | | | | This is a stdenv-rebuild, and should not be merged into master This reverts commit 8929989614589ee3acd070a6409b2b9700c92d65.
* lib: Clean up how linux and gcc config is specifiedJohn Ericson2021-01-21
| | | | | | | | | | | | | | | | The `platform` field is pointless nesting: it's just stuff that happens to be defined together, and that should be an implementation detail. This instead makes `linux-kernel` and `gcc` top level fields in platform configs. They join `rustc` there [all are optional], which was put there and not in `platform` in anticipation of a change like this. `linux-kernel.arch` in particular also becomes `linuxArch`, to match the other `*Arch`es. The next step after is this to combine the *specific* machines from `lib.systems.platforms` with `lib.systems.examples`, keeping just the "multiplatform" ones for defaulting.
* pkgs/os-specific: stdenv.lib -> libBen Siraphob2021-01-17
|
* linux: add flavor metadataJonathan Ringer2020-10-30
|
* treewide: add warning comment to “boot” packagesMatthew Bauer2020-07-31
| | | | | | | | | | | | | | | This adds a warning to the top of each “boot” package that reads: Note: this package is used for bootstrapping fetchurl, and thus cannot use fetchpatch! All mutable patches (generated by GitHub or cgit) that are needed here should be included directly in Nixpkgs as files. This makes it clear to maintainer that they may need to treat this package a little differently than others. Importantly, we can’t use fetchpatch here due to using <nix/fetchurl.nix>. To avoid having stale hashes, we need to include patches that are subject to changing overtime (for instance, gitweb’s patches contain a version number at the bottom).
* kernel: fix config generationMatthieu Coudron2020-04-01
| | | | | | Addresses https://github.com/NixOS/nixpkgs/issues/71803: Kernel options are not merged as described, especially the "optional" aspects. The error silences legitimate warnings.
* linux: clearer origin for settings configurationMatthieu Coudron2019-09-04
| | | | | adds _file so that nix may have a chance to display what file the conflictings settings come from.
* treewide: name -> pnamevolth2019-08-17
|
* treewide: remove unused variables (#63177)volth2019-06-16
| | | | | | * treewide: remove unused variables * making ofborg happy
* Merge pull request #53826 from delroth/randstruct-custom-seedJoachim F2019-04-16
|\ | | | | nixos: allow customizing the kernel RANDSTRUCT seed
| * kernel: extend the RANDSTRUCT seed with a user-configurable sectionPierre Bourdon2019-01-24
| |
* | linux: (re)take into account extraConfigMatthieu Coudron2019-01-31
| | | | | | | | PR #42838 wrongly started to ignore extraConfig. This fixes that.
* | linux: ability to merge structured configsMatthieu Coudron2019-01-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This should make the composability of kernel configurations more straigthforward. - now distinguish freeform options from tristate ones - will look for a structured config in kernelPatches too one can now access the structuredConfig from a kernel via linux_test.configfile.structuredConfig in order to reinject it into another kernel, no need to rewrite the config from scratch The following merge strategies are used in case of conflict: -- freeform items must be equal or they conflict (mergeEqualOption) -- for tristate (y/m/n) entries, I use the mergeAnswer strategy which takes the best available value, "best" being defined by the user (by default "y" > "m" > "n", e.g. if one entry is both marked "y" and "n", "y" wins) -- if one item is both marked optional/mandatory, mandatory wins (mergeFalseByDefault)
* | Merge pull request #53511 from joachifm/kernel-32bit-emu-feature-flagJoachim F2019-01-25
|\ \ | |/ |/| linux: flag to indicate 32bit emulation support
| * linux: add feature flag to indicate support for 32bit emulationJoachim Fasting2019-01-06
| | | | | | | | | | Motivated by the need to warn users trying to build configurations that depend on being able to run 32bit apps on 64bit kernels.
* | kernel/generic.nix: provide required dependencies for GCC plugins buildsPierre Bourdon2019-01-04
|/
* treewide: Remove usage of remaining redundant platform compatability stuffJohn Ericson2018-08-30
| | | | | Want to get this out of here for 18.09, so it can be deprecated thereafter.