summary refs log tree commit diff
path: root/lib
Commit message (Collapse)AuthorAge
...
| * | | lib.trivial: Change comment type before concat functionJan Tojnar2022-01-30
| |/ / | | | | | | | | | C-style comment was being picked up by nixdoc as a documentation comment for the function.
* | | Merge branch 'staging-next' into stagingDmitry Kalinkin2022-01-27
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: nixos/doc/manual/from_md/release-notes/rl-2205.section.xml nixos/doc/manual/release-notes/rl-2205.section.md pkgs/development/python-modules/aioesphomeapi/default.nix pkgs/development/python-modules/mat2/default.nix pkgs/development/python-modules/pydevccu/default.nix pkgs/development/python-modules/pywlroots/default.nix pkgs/development/python-modules/rokuecp/default.nix
| * | Merge pull request #156503 from hercules-ci/nixos-add-system.build-optionsRobert Hensing2022-01-25
| |\ \ | | | | | | | | nixos: Add `system.build.`{`toplevel`,`installBootLoader`}, improve error message
| | * | lib.modules: Define mergeOneOption in terms of mergeUniqueOptionRobert Hensing2022-01-24
| | | |
| | * | lib.types: Add unique like uniq, but custom errorsRobert Hensing2022-01-24
| | | | | | | | | | | | | | | | | | | | Couldn't extend types.uniq and it had a silly name anyway. Now we can have better error messages.
* | | | Merge remote-tracking branch 'origin/staging-next' into stagingJonathan Ringer2022-01-24
|\| | | | | | | | | | | | | | | | | | | Conflicts: pkgs/development/python-modules/googleapis-common-protos/default.nix
| * | | lib/meta: fix typo in platformMatch commentThiago Kenji Okada2022-01-24
| | | |
| * | | Merge pull request #155669 from schuelermine/patch-mkPackageOptionpennae2022-01-24
| |\ \ \ | | | | | | | | | | lib/options: Add mkPackageOption
| | * | | nixos/docs/option-declarations: Document mkEnableOption and mkPackageOptionAnselm Schüler2022-01-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a squashed commit. These are the original commit messages: lib/option: Improve comment better comment Update documentation Updated nixos/doc/manual/development/options-declarations.md with info on mkEnableOption and mkPackageOption. Updated the comment on mkEnableOption in lib/options.nix remove trailing whitespace nixos/doc/option-declarations: Update IDs & formatting nixos/docs/option-declarations: Escape angle brackets Build DB from MD (Amended) Fix typo Co-authored-by: pennae <82953136+pennae@users.noreply.github.com> (Amended) Build DB from MD (again)
| | * | | lib/options: Add mkPackageOptionAnselm Schüler2022-01-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a squashed commit. These are the original commit messages: lib/options: Add mkPackageOption lib/options: Add missing semicolon lib/options.nix: Make mkPackageOption more complicated lib/options: Fix indent. & spacing lib/options.nix: Remove example and align comment lib/options: ravenous overuse of arguments lib/options: Format better lib/options: Add default examplePath decl lib/options: Make better mkPackageOption function lib/options: Remove trailing whitespace lib/options: Improve mkPackageOptions lib/options: Remove pkgs prefixing Co-authored-by: pennae <82953136+pennae@users.noreply.github.com> lib/options: Slim down mkPackageOption further lib/options: mkPackageOption: Add "pkgs." to example lib/options: mkPackageOption: Make name & pkgs single arguments lib/options: mkPackageOption: Swap name & pkgs lib/options: Remove unnecessary import Co-authored-by: pennae <82953136+pennae@users.noreply.github.com>
* | | | | Merge remote-tracking branch 'nixpkgs/staging-next' into stagingAlyssa Ross2022-01-24
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: pkgs/development/python-modules/cupy/default.nix pkgs/development/python-modules/staticjinja/default.nix
| * | | | Merge pull request #156215 from Atemu/update/svt-av1Martin Weinelt2022-01-24
| |\ \ \ \ | | |_|/ / | |/| | |
| | * | | licenses: add Alliance for Open Media Patent License 1.0Atemu2022-01-22
| | |/ /
* | | | lib.licenses: add MIT-advertisingc0bw3b2022-01-23
| | | |
* | | | lib.licenses: add Imlib2c0bw3b2022-01-22
|/ / /
* | | Merge pull request #155522 from Julow/single_line_strRobert Hensing2022-01-21
|\ \ \ | |/ / |/| | types.singleLineStr: strings that don't contain '\n'
| * | types.singleLineStr: Improve descriptionJules Aguillon2022-01-21
| | | | | | | | | | | | Co-authored-by: pennae <82953136+pennae@users.noreply.github.com>
| * | types.singleLineStr: Allow and trim trailing \nJules Aguillon2022-01-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow a \n character at the end of the string and remove it during the merge function. An option of this type will resolve to the value "foo" whether it is set to "foo" or "foo\n". This is useful when using 'builtins.readFile' or ''-strings, which might add an unintended newline (for example, bash trim the final newline from a subshell).
| * | types.singleLineStr: Disallow \rJules Aguillon2022-01-18
| | |
| * | types.singleLineStr: strings that don't contain '\n'Jules Aguillon2022-01-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a new type, inheriting 'types.str' but checking whether the value doesn't contain any newline characters. The motivation comes from a problem with the 'users.users.${u}.openssh.authorizedKeys' option. It is easy to unintentionally insert a newline character at the end of a string, or even in the middle, for example: restricted_ssh_keys = command: keys: let prefix = '' command="${command}",no-pty,no-agent-forwarding,no-port-forwarding,no-X11-forwarding ''; in map (key: "${prefix} ${key}") keys; The 'prefix' string ends with a newline, which ends up in the middle of a key entry after a few manipulations. This is problematic because the key file is built by concatenating all the keys with 'concatStringsSep "\n"', with result in two entries for the faulty key: '' command="...",options... MY_KEY '' This is hard to debug and might be dangerous. This is now caught at build time.
* | | lib/asserts: use throw to display message for assertMsgsternenseemann2022-01-19
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `assert` has the annoying property that it dumps a lot of code at the user without the built in capability to display a nicer message. We have worked around this using `assertMsg` which would *additionally* display a nice message. We can do even better: By using `throw` we can make evaluation fail before assert draws its conclusions and prevent it from displaying the code making up the assert condition, so we get the nicer message of `throw` and the syntactical convenience of `assert`. Before: nix-repl> python.override { reproducibleBuild = true; stripBytecode = false; } trace: Deterministic builds require stripping bytecode. error: assertion (((lib).assertMsg (reproducibleBuild -> stripBytecode)) "Deterministic builds require stripping bytecode.") failed at /home/lukas/src/nix/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix:45:1 After: nix-repl> python.override { reproducibleBuild = true; stripBytecode = false; } error: Deterministic builds require stripping bytecode.
* | Merge pull request #152392 from polykernel/attrset-optimizations-patch-1pennae2022-01-11
|\ \ | | | | | | lib/attrset: various function optimizations
| * | lib/attrset: miscellaneous optimizationspolykernel2021-12-27
| | | | | | | | | | | | | | | | | | | | | - Eta reduce `mapAttrsRecursiveCond`, `foldAttrs`, `getAttrFromPath`. - Modify `matchAttrs` to use `elemAt` instead of `head (tail xs)` to access elements. - Modify `matchAttrs` to use `any id` instead of `foldr and true`.
| * | lib/attrset: optimize element access in recursiveUpdateUntilpolykernel2021-12-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | - Eta reduce formal arguments of `recursiveUpdate'. - Access elements in `recursiveUpdateUntil` using `elemAt` and `head` directly instead of `head (tail xs)` which copies a singleton unnecessarily. (`elemAt` is used instead of `last` to save a primitive call to `length`, this is possible because the 2-tuple structure is guranteed) - Use `length` instead of comparison to empty list to save a copy.
* | | Merge pull request #152046 from pennae/optimize-modules-byNameRobert Hensing2022-01-10
|\ \ \ | | | | | | | | lib/modules: optimize byName
| * | | lib/modules: extract multiply-used value in byNamepennae2021-12-28
| | | | | | | | | | | | | | | | | | | | | | | | module.${attr} is used at least twice, so it must be evaluated at least twice (and since it's a function argument, be turned into a thunk twice).
| * | | lib/attrsets: use builtins.zipAttrsWith if availablepennae2021-12-25
| | | |
| * | | lib/modules: optimize byNamepennae2021-12-25
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the foldl is equivalent to a zip with concat. list concatenation in nix is an O(n) operation, which makes this operation extremely inefficient when large numbers of modules are involved. this change reduces the number of list elements by 7 million on the system used to write this, total memory spent on lists by 58MB, and total memory allocated on the GC heap by almost 100MB (with a similar reduction in GC heap size). it's also slightly faster.
* | / lib.checkListOfEnum: initJosé Romildo2022-01-09
| |/ |/|
* | Merge pull request #151748 from hercules-ci/check-nixpkgs-overlays-typeRobert Hensing2022-01-05
|\ \ | | | | | | Check nixpkgs overlays argument types
| * | lib.throwIfNot: initRobert Hensing2021-12-22
| |/
* / nixos/documentation: split options doc buildpennae2022-01-02
|/ | | | | | | | | | | | | | | | most modules can be evaluated for their documentation in a very restricted environment that doesn't include all of nixpkgs. this evaluation can then be cached and reused for subsequent builds, merging only documentation that has changed into the cached set. since nixos ships with a large number of modules of which only a few are used in any given config this can save evaluation a huge percentage of nixos options available in any given config. in tests of this caching, despite having to copy most of nixos/, saves about 80% of the time needed to build the system manual, or about two second on the machine used for testing. build time for a full system config shrank from 9.4s to 7.4s, while turning documentation off entirely shortened the build to 7.1s.
* Merge pull request #148785 from pennae/more-option-doc-staticizingGraham Christensen2021-12-17
|\ | | | | treewide: more defaultText for options
| * nixos/modules: Allow options to be coerced to a string for convenienceSilvan Mosberger2021-12-08
| |
* | lib.systems.supported: remove aarch64-darwin from Tier 3 liststernenseemann2021-12-16
| | | | | | | | | | | | | | | | While it is a fact of life that aarch64-darwin is built on Hydra, it has never formally been elevated from the Tier 7 state it was originally assigned in RFC 0046. Since platform Tier status is not only descriptive, but also normative, a consensus to commit to supporting aarch64-darwin would need to be reached.
* | lib: fix flake checkzimbatm2021-12-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `builtins.currentSystem` is not available in pure eval. For this particular test, we don't really care since it's all about generating .drv files. Fixes the following error: $ nix flake check warning: unknown flake output 'lib' error: attribute 'currentSystem' missing at /nix/store/8wvnlbjxlr90kq2qa6d9zjpj8rqkilr5-source/lib/tests/misc.nix:499:73: 498| let 499| deriv = derivation { name = "test"; builder = "/bin/sh"; system = builtins.currentSystem; }; | ^ 500| in { (use '--show-trace' to show detailed location informat
* | Merge pull request #149924 from Mic92/aarch64be-embeddedJörg Thalheim2021-12-09
|\ \ | | | | | | pkgsCross.aarch64be-embedded: fix eval
| * | pkgsCross.ppcle-embedded: fix evalJörg Thalheim2021-12-09
| | |
| * | pkgsCross.aarch64be-embedded: fix evalJörg Thalheim2021-12-09
| | |
* | | pkgsCross.x86_64-netbsd-llvm: mark as brokenJörg Thalheim2021-12-09
|/ /
* | Merge pull request #144022 from hercules-ci/lib-modules-optimize-unmatchedDefnsSilvan Mosberger2021-12-07
|\ \ | | | | | | lib/modules: Short-circuit unmatchedDefns when configs is empty
| * | lib/modules: Use strict fold' as recursiveUpdate is also strictRobert Hensing2021-11-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | recursiveUpdate does not produce an attrset until it has evaluated both its arguments to weak head normal form. nix-repl> lib.recursiveUpdate (throw "a") (throw "b") error: b nix-repl> lib.recursiveUpdate (throw "a") {} error: a
| * | lib/modules: Fix import* commentsRobert Hensing2021-11-03
| | | | | | | | | | | | Very confusing otherwise.
| * | lib/modules: Remove a lib.flipRobert Hensing2021-11-03
| | | | | | | | | | | | In hot code, the overhead (envs, applies) can matter.
| * | lib/tests/modules: Test non-strictness some moreRobert Hensing2021-11-03
| | | | | | | | | | | | | | | Doesn't seem to have been a problem actually, but now it won't regress.
| * | lib/modules: Short-circuit unmatchedDefns earlierRobert Hensing2021-11-03
| | |
| * | lib/modules: Short-circuit unmatchedDefns when configs is emptyRobert Hensing2021-10-31
| | |
* | | Merge pull request #141856 from ShamrockLee/lib-spdx-licenseSilvan Mosberger2021-12-07
|\ \ \ | | | | | | | | lib/meta: add getLicenseFromSpdxId function (resumed)
| * | | lib/meta: add getLicenseFromSpdxId functionShamrock Lee2021-12-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move function spdxLicense, internally used in yarn2nix to lib/meta.nix, and rename to getLicenseFromSpdxId A similar function is implemented in poetry2nix, but the one originally in yarn2nix seems beter. since it falls back to an license-like attrset for mismatched case instead of a plain string
* | | | lib/modules: Deprecate args and checkRobert Hensing2021-12-02
| | | |