about summary refs log tree commit diff
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
2023-05-07Merge master into staging-nextgithub-actions[bot]10-49/+261
2023-05-06lib.modules: configurationClass -> classRobert Hensing2-2/+2
This simplifies the documentation. `configuration` is implied by `_type`.
2023-05-06lib.modules: in evalModules return move _module.class -> configurationClassRobert Hensing2-11/+2
2023-05-06lib.modules: Change class declaration in module to _classRobert Hensing4-10/+10
2023-05-06lib/tests/modules.sh: Add submodule + class testsRobert Hensing2-1/+49
2023-05-06lib/modules: Move class out of specialArgsRobert Hensing3-12/+30
2023-05-06lib/modules.nix: Deduplicate documentationRobert Hensing1-29/+2
`file://./..` looks redundant, but makes the url clickable in vscode.
2023-05-06lib/modules: Only interpret class declaration in non-shorthand modeRobert Hensing4-1/+19
This is to avoid stealing keys from submodules. `class` might be common enough that reinterpreting existing `class` attributes in configurations as a declaration leads to fairly widespread problems.
2023-05-06lib/modules.nix: Refactor: extract applyModuleArgsRobert Hensing1-5/+6
2023-05-06lib/modules.nix: Refactor: evaluate applyModuleArgsIfFunction in attrs caseRobert Hensing1-1/+1
2023-05-06lib/modules.nix: Restore old collectModules interfaceRobert Hensing1-1/+1
2023-05-06lib/modules: Explain that a configuration can't be loaded as a moduleRobert Hensing2-2/+7
2023-05-06lib/modules: Improve error when a configuration is importedRobert Hensing3-0/+14
This is appears to be a fairly common mistake for beginners who want to build larger things from the system configurations, such as NixOps networks, etc. Further explanation seems appropriate.
2023-05-06lib/modules: Check against importing things with a _typeRobert Hensing4-1/+20
2023-05-06lib/modules: Add class concept to check importsRobert Hensing5-4/+69
This improves the error message when an incompatible module is imported.
2023-05-06lib/modules.nix: Make some functions privateRobert Hensing1-11/+22
The supposedly public nature of these functions has been holding back module system maintenance, while usages of these functions are expected to be rare. If used anywhere, presumably they're emulating module system behavior because some use case isn't supported properly. We should try to support such a use case directly, if it even exists.
2023-05-06lib/modules.nix: Use explicit exportsRobert Hensing1-4/+52
2023-05-06lib/tests/modules.sh: Unload implicit modulesRobert Hensing1-0/+1
I had some trouble understanding this. Let's try to keep new tests a bit more stateless and explicit.
2023-05-06Merge master into staging-nextgithub-actions[bot]3-0/+72
2023-05-05Merge pull request #223407 from AngryAnt/toplist-pathtoonn3-0/+72
lib.toPlist: Add support for path values
2023-05-04Merge master into staging-nextgithub-actions[bot]1-4/+4
2023-05-04lib/systems: move loongarch64-linux out of mips blockWeijia Wang1-4/+4
2023-05-01Merge staging-next into staginggithub-actions[bot]2-3/+61
2023-05-01Merge pull request #227714 from ony/feature/generateLuarocksConfig-toLuaMatthieu Coudron2-3/+61
lua.lib: use toLua in generateLuarocksConfig
2023-05-01Merge staging-next into staginggithub-actions[bot]1-3/+4
2023-05-01lib.kernel.unset: initAlyssa Ross1-3/+4
Previously, there was no way to unset an option when overriding a kernel, apart from writing out the attrset yourself. Now it's possible with lib.mkForce lib.kernel.unset. It's important to be able to do this, because setting an option in the override may cause other options to become unused, which would fail the config build unless they were overridden too.
2023-04-29lib.generators.toLua: asBindings optionMykola Orliuk2-3/+61
Allows to generate code block for setting of global variables
2023-04-28Merge staging-next into staginggithub-actions[bot]6-2/+11
2023-04-28Merge pull request #227560 from jackyliu16/loongnix-commitWeijia Wang6-2/+11
lib.platforms.loongarch64: init
2023-04-28lib.systems: allow specifying libc = nullAlyssa Ross1-0/+1
It makes sense to allow platform definitions to opt out of having libc at all. One use case would be targetting some obscure new Linux target that doesn't have a libc implementation yet, and another is UEFI, which is basically libc-less Windows. Not having libc is not commonly specified in (GNU) triples (even Linux's build system will just target either -gnu or -musl depending on the platform), so instead, we use a separate attribute for it.
2023-04-27lib.platforms.loongarch64: initjackyliu166-2/+11
2023-04-24Merge pull request #191995 from amjoseph-nixpkgs/lib/systems/inspect/commentAdam Joseph1-0/+8
lib/systems/inspect.nix: explanatory comment
2023-04-23Merge pull request #225496 from ony/feature/generators-toLuaMatthieu Coudron2-0/+143
lib/generators: add toLua/mkLuaInline
2023-04-23lib.generators.toLua: allow disabling multilineMykola Orliuk2-10/+23
2023-04-23lib.generators.toLua: tune comment for noogle useMykola Orliuk1-22/+36
See https://github.com/nix-community/noogle
2023-04-23lib/generators: add toLua/mkLuaInlineMykola Orliuk2-0/+116
Suitable to simplify Lua-based configurations like neovim-lspconfig that might need to interpolate Nix package paths.
2023-04-22lib/systems: disable docs in qemu-userArtturin1-0/+1
45M -> 31M
2023-04-19lib: add missing removeAttrs builtinzimbatm1-1/+1
I'm expecting all the builtins.* functions to be available in lib.*
2023-04-04Merge pull request #221204 from tweag/deprecate-paths-to-stringsSilvan Mosberger1-11/+75
lib.strings: Prevent paths as inputs in some functions
2023-04-04Merge pull request #222516 from ncfavier/options-better-errorNaïm Favier2-5/+9
lib/modules: better error for invalid option declarations
2023-04-01Merge pull request #219826 from noctarius/masterMario Rodas1-0/+7
Fixed TimescaleDB License Information
2023-03-27lib.toPlist: keep test output in external files for their tab indentsEmil "AngryAnt" Johansen2-46/+47
2023-03-27lib.toPlist: basic test coverageEmil "AngryAnt" Johansen1-0/+69
2023-03-27lib.toPlist: support for path valuesEmil "AngryAnt" Johansen1-0/+2
2023-03-24lib/customisation: callPackageWith should abort with errorsCole Helbling1-1/+1
ofborg relies on the behavior that existed prior to 1c00bf394867b07ed7a908408d8bc1d0afd9fa49, where evaluation would immediately abort due to a missing argument (whether it be an aliased package when `allowAliases = false;` or a typo'd or otherwise nonexistent package). If `callPackageWith` `throw`s instead of `abort`s, the following `nix-env` invocation does not fail fast but instead silently skips the attribute (assuming there is a package that has an aliased package in its `autoArgs`): $ nix-env -qa --json --file . --arg config '{ allowAliases = false; }' &>/dev/null $ echo $? 0 This does change the error output when there is a missing package (for any of the reasons mentioned above), though. Before this change, the errors looked like this: $ nix-build -A hello --arg config '{ allowAliases = false; }' error: … while calling the 'throw' builtin at /home/vin/workspace/vcs/nixpkgs/master/lib/customisation.nix:179:65: 178| 179| in if missingArgs == [] then makeOverridable f allArgs else throw error; | ^ 180| error: Function called without required argument "bash_5" at /home/vin/workspace/vcs/nixpkgs/master/pkgs/applications/misc/hello/default.nix:8, did you mean "bash" or "bashdb"? And the errors now look like this: $ nix-build -A hello --arg config '{ allowAliases = false; }' error: … while calling the 'abort' builtin at /home/vin/workspace/vcs/nixpkgs/master/lib/customisation.nix:179:65: 178| 179| in if missingArgs == [] then makeOverridable f allArgs else abort error; | ^ 180| error: evaluation aborted with the following error message: 'Function called without required argument "bash_5" at /home/vin/workspace/vcs/nixpkgs/master/pkgs/applications/misc/hello/default.nix:8, did you mean "bash" or "bashdb"?'
2023-03-24timescaledb: Fixed the licensing for the timescaledb package to be split ↵Christoph Engelbert (noctarius)1-0/+7
into TSL (Timescale Community License) and Apache 2.0 components. TimescaleDB provides two types of licenses, Apache 2.0 and Timescale Community License (TSL), with different feature sets. While all the code is in the same repository, the build system can build both versions depending on the build parameters set in. Co-authored-by: Emily Lange <git@indeednotjames.com>
2023-03-22lib/modules: better error for invalid option declarationsNaïm Favier2-5/+9
Make `byName` aware of whether it's processing options or config to give slightly more accurate error messages.
2023-03-16Merge pull request #219747 from Stunkymonkey/deprecate-isNullBernardo Meurer1-1/+1
2023-03-15lib.strings.remove{Prefix,Suffix}: Deprecate for path prefix/suffix argumentsSilvan Mosberger1-5/+23
See also parent commits
2023-03-15lib.strings.normalizePath: Deprecate for path valuesSilvan Mosberger1-1/+14
There's no need to call this function on path data types, and it's confusing with the new lib.path library functions