about summary refs log tree commit diff
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
2021-02-25lib/licenses: fix regression removing shortName for some licensessternenseemann1-2/+2
Usually we ensure using the mapAttrs call wrapping the license set that every license has an associated shortName. A change related to legacy aliases most likely introduced the removal of the shortName attribute for all the legacy license names by splitting the set into two sets connected by a record update operator -- leading to mapAttrs only affecting the first set. Since it used to be a valid assumption to have that every license had a shortName attribute, we reintroduce this attribute for the legacy aliases as well.
2021-02-12Merge pull request #112885 from alyssais/wiktionaryMichael Raskin1-0/+5
dictdDBs.wiktionary: 20161001 -> 20210201; refactor
2021-02-11lib.licenses.fdl11Plus: initAlyssa Ross1-0/+5
2021-02-11lib: fix typo in platforms.nixPhilipp Adolf1-1/+1
In 9c213398b312e0f0bb9cdf05090fd20223a82ad0 kernelPreferBuiltin was moved/renamed to linux-kernel.preferBuiltin. However, for armv7l-hf-multiplatform the new option was written with an uppercase P, which made the kernel build process ignore it.
2021-02-08lib: remove mention of flashplayer in docsBernardo Meurer1-1/+1
2021-02-02lib.licenses: add bsd1 (BSD 1-Clause License)Fabian Affolter1-0/+5
2021-02-01Revert "lib/generators: fix toPretty throwing on (partially applied) builtins"sternenseemann1-9/+4
This reverts commit d9a7d03da8c58aa863911506ae3153729f8931da. Reason for this is that it actually doesn't migitate the issue on nix stable for another reason: builtins.tryEval doesn't prevent the error generated by builtins.functionArgs from halting evaluation: > builtins.tryEval (builtins.functionArgs builtins.functionArgs) error: 'functionArgs' requires a function, at (string):1:19 Thus it seems that there is no workaround to make lib.generators.toPretty work with nix stable and primops since there is no way to distinguish between primops and lambdas in nix.
2021-01-31Merge pull request #111469 from sternenseemann/topretty-fix-curryingSilvan Mosberger1-4/+9
lib/generators: fix toPretty throwing on (partially applied) builtins
2021-01-31lib/types: add description for functionToFritz Otlinghaus1-1/+2
2021-01-31lib/generators: fix toPretty throwing on (partially applied) builtinssternenseemann1-4/+9
An high level example case of this problem occuring can be found below: nix-repl> lib.generators.toPretty {} (lib.concatStringsSep "\n") error: 'functionArgs' requires a function, at /home/lukas/src/nix/nixpkgs/lib/trivial.nix:334:42 However this does not happen on other partially applied functions: nix-repl> lib.generators.toPretty {} (lib.concatMapStringsSep "\n") "<function>" The issue, as it turns out is that while builtins are functions, builtins.functionArgs throws if is passed a builtin or a partially applied builtin: nix-repl> lib.generators.toPretty {} builtins.toString error: 'functionArgs' requires a function, at /home/lukas/src/nix/nixpkgs/lib/trivial.nix:334:42 nix-repl> lib.generators.toPretty {} (builtins.foldl' (a: b: a + b)) error: 'functionArgs' requires a function, at /home/lukas/src/nix/nixpkgs/lib/trivial.nix:334:42 I'm pretty sure this qualifies as a nix bug and should be filed accordingly, but we can work around it in lib.generators.toPretty by using tryEval and falling back to {} which functionArgs _should_ return for builtins. The nix behavior is inconsistent to say the least: nix-repl> builtins.functionArgs builtins.functionArgs error: 'functionArgs' requires a function, at (string):1:1 nix-repl> builtins.typeOf builtins.functionArgs "lambda" builtins.functionArgs (a: 1 + a) { } nix-repl> builtins.typeOf (a: 1 + a) "lambda"
2021-01-30Merge pull request #111345 from r-burns/ppc64-big-endianJohn Ericson4-3/+26
Enable PPC64 (big-endian)
2021-01-30lib.systems: add powerpc64-linuxRyan Burns4-3/+26
PPC64 supports two ABIs: ELF v1 and v2. ELFv1 is historically what GCC and most packages expect, but this is changing because musl outright does not work with ELFv1. So any distro which uses musl must use ELFv2. Many other platforms are moving to ELFv2 too, such as FreeBSD (as of v13) and Gentoo (as of late 2020). Since we use musl extensively, let's default to ELFv2. Nix gives us the power to specify this declaratively for the entire system, so ELFv1 is not dropped entirely. It can be specified explicitly in the target config, e.g. "powerpc64-unknown-linux-elfv1". Otherwise the default is "powerpc64-unknown-linux-elfv2". For musl, "powerpc64-unknown-linux-musl" must use elfv2 internally to function.
2021-01-29Merge pull request #110787 from tfc/cartesian-productSilvan Mosberger4-3/+89
lib/attrsets: add cartesianProductOfSets function
2021-01-29gcc: fix armhf targetAlexander Foremny1-0/+6
Fixes #96921
2021-01-28Deprecate lib.crossListsJacek Galowicz1-1/+3
2021-01-28lib/attrsets: add cartesianProductOfSets functionJacek Galowicz3-2/+86
2021-01-27Merge pull request #110707 from Infinisil/functionToRobert Hensing7-0/+128
Bring back `types.functionTo`
2021-01-27lib/tests: More functionTo testsSilvan Mosberger7-31/+117
2021-01-27lib/types: Improved functionTo mergingSilvan Mosberger1-1/+1
Now type checks the resulting function values and allows mkMerge and co. Also indicates that the type check is done in the function body Co-Authored-By: Robert Hensing <robert@roberthensing.nl>
2021-01-25lib/systems: fix linuxArch for power + riscvRyan Burns1-0/+2
Looks like these got left behind in the kernelArch -> linuxArch migration. Fixes: * pkgsCross.powernv.linuxHeaders * pkgsCross.riscv64.linuxHeaders * pkgsCross.riscv32.linuxHeaders and dependees
2021-01-25Merge pull request #110672 from Profpatsch/lib-add-traceFnSeqNSilvan Mosberger2-1/+23
lib/debug: add traceFnSeqN
2021-01-25lib/debug: add traceFnSeqNProfpatsch2-1/+23
Immensely helpful when you want to see the changes a function makes to its value as it passes through. Example: ``` $ nix-instantiate --strict --eval -E '(with import ./lib; traceFnSeqN 2 "id" (x: x) { a.b.c = 3; })' trace: { fn = "id"; from = { a = { b = {…}; }; }; to = { a = { b = {…}; }; }; } { a = { b = { c = 3; }; }; } ```
2021-01-24lib/tests/modules: add a test for the functionTo typeBas van Dijk2-0/+32
(cherry picked from commit 478af112e83df806bd8a51174834d2a130fbdeb9)
2021-01-24Revert "Remove types.functionTo."Bas van Dijk1-0/+10
This reverts commit 4ff1ab5a56f1280d2de319ad4eb4b2796e07ed35. We need this to type options like: services.xserver.windowManager.xmonad.extraPackages that specify functions that take an attribute set containing packages / plugins and return a list containing a selection of the values in this set. The reason we need a dedicated type for this is to have the correct merge behaviour. Without the functionTo type merging multiple function option definitions results in an evaluation error. The functionTo type merges definitions by returning a new function that applies the functions of all the definitions to the given input and merges the result. (cherry picked from commit 7ed41ff5e7e633dd64866398ee497ac02736a3a5)
2021-01-24treewide: fix double quoted strings in meta.descriptionvolth1-2/+2
Signed-off-by: Ben Siraphob <bensiraphob@gmail.com>
2021-01-23Merge pull request #100687 from spease/add-newer-xcode-hashesMatthew Bauer1-8/+8
darwin: update xcode versions
2021-01-23lib: Clean up how linux and gcc config is specifiedJohn Ericson4-374/+365
Second attempt of 8929989614589ee3acd070a6409b2b9700c92d65; see that commit for details. This reverts commit 0bc275e63423456d6deb650e146120c39c1e0723.
2021-01-22Revert "lib: Clean up how linux and gcc config is specified"Jonathan Ringer3-361/+370
This is a stdenv-rebuild, and should not be merged into master This reverts commit 8929989614589ee3acd070a6409b2b9700c92d65.
2021-01-22Merge pull request #107214 from Ericson2314/linux-config-cleanupJohn Ericson3-370/+361
lib: Clean up how linux and gcc config is specified
2021-01-21lib: Clean up how linux and gcc config is specifiedJohn Ericson3-370/+361
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.
2021-01-21lib/modules: Set submodule type for renamed option setsSilvan Mosberger1-1/+1
For renames like mkAliasOptionModule [ "services" "compton" ] [ "services" "picom" ] where the target is an option set (like services.picom) instead of a single option (like services.picom.enable), previously the renamed option type was unset, leading to it being `types.unspecified`. This changes it to be `types.submodule {}` instead, which makes more sense.
2021-01-19Merge branch 'master' into add-newer-xcode-hashesSteven Pease22-190/+596
2021-01-19Update to XCode 12.3Steven Pease1-8/+8
2021-01-18Merge pull request #104648 from samueldr/cleanup/kernelMajorJohn Ericson1-8/+0
platforms.nix: Remove now unused kernelMajor
2021-01-01Merge pull request #107417 from jtojnar/deprecate-unclear-gpl-licensesJan Tojnar1-10/+50
licenses: Mark unclear GPL licenses explicitly deprecated
2020-12-31Merge pull request #107999 from andir/platforms-arm-trusted-platformJohn Ericson1-2/+3
lib/systems/platforms: treat missing cpu version as generic pcBase
2020-12-31lib/systems: add emulator for mmixBen Siraphob1-0/+2
2020-12-31lib/systems/platforms: treat missing cpu version as generic pcBaseAndreas Rammhold1-2/+3
Since 40e7be1 all ARM platforms that didn't have a parsed cpu version (e.g. arm-none-eabi) would be handled as armv7l-hf-multiplatform which did break building arm-trusted-platform packages for some targets (e.g. rk3399). Using pcBase as fallback, instead of armv7l-hf-multiplatform, corresponds with the behaviour we had before 40e7be1.
2020-12-23lib.systems: update processor architecture infoFabián Heredia Montiel1-7/+37
2020-12-22licenses: Mark unclear GPL licenses explicitly deprecatedJan Tojnar1-10/+50
We recently switched to more explicit GPL license names in line with the SPDX change and GNU Foundation recommendations: https://www.gnu.org/licenses/identify-licenses-clearly.html This followed up older change to use the recommended SPDX ID https://github.com/NixOS/nixpkgs/commit/18a5e8c36b2681f5fc4aecd79f4cc723365d2d94 but using the `-only` variant for these deprecated licenses too makes it harder to check for them automatically. Let’s switch to the appropriate SPDX ID again.
2020-12-18Merge pull request #97145 from lheckemann/initrd-improvementsLinus Heckemann1-1/+1
Initrd improvements
2020-12-18Revert "Module-builtin assertions, disabling assertions and submodule ↵Silvan Mosberger13-303/+45
assertions"
2020-12-18Merge pull request #97023 from Infinisil/module-assertionsSilvan Mosberger13-45/+303
Module-builtin assertions, disabling assertions and submodule assertions
2020-12-18Merge pull request #104118 from LibreCybernetics/add-parity-licenseDoron Behar1-0/+6
lib.licenses: add Parity-7.0.0 license
2020-12-18lib/modules: Prefix mkRemovedOptionModule & co. check namesSilvan Mosberger1-3/+3
To avoid name clashes Co-authored-by: Robert Hensing <robert@roberthensing.nl>
2020-12-17lib/modules: Introduce _module.checks.*.checkSilvan Mosberger11-29/+39
Previously the .enable option was used to encode the condition as well, which lead to some oddness: - In order to encode an assertion, one had to invert it - To disable a check, one had to mkForce it By introducing a separate .check option this is solved because: - It can be used to encode assertions - Disabling is done separately with .enable option, whose default can be overridden without a mkForce
2020-12-17lib/systems: fix kernelArch for x86_64Linus Heckemann1-1/+1
IA64 (Itanium) is something completely different and certainly not what we want! x86_64 code lives in arch/x86 just like "classic" x86.
2020-12-08Merge pull request #101248 from makefu/pkgs/pfsshell/initSandro1-0/+5
2020-12-05lib/string: drop redundant string in description of toInt.Alex Brandt1-1/+1
Describing the string argument as a string is redundant and not needed to describe what this function does.
2020-12-04lib/strings: fix typo in exampleAlex Brandt1-2/+2
The example refers to a snake_case function name but Nix uses camelCase function names. This ensures the example is correct for the given function.