Commit graph

3110 commits

Author SHA1 Message Date
figsoda d29b0096d3 lib/options.nix: remove unused binding 2022-09-26 22:18:55 -04:00
figsoda 05fc3747c9 lib/modules.nix: remove unused bindings 2022-09-26 22:18:55 -04:00
figsoda 07b3a5a0dd lib/generators.nix: remove unused bindings 2022-09-26 22:18:54 -04:00
github-actions[bot] e0bea8e017
Merge staging-next into staging 2022-09-26 00:03:58 +00:00
piegames 0ada9fff8a lib/types.nix: Document that it should not be used
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>
2022-09-25 16:37:15 +02:00
toonn bf9ff0c687
Merge branch 'amjoseph-nixpkgs-pr/resume182058' into staging 2022-09-25 14:45:17 +02:00
Adam Joseph 037cf2fad1 unionOfDisjoint: use builtins.intersectAttrs
This brings two benefits:

1. The complete list of collisions is printed in the whenever any colliding
   attribute is accessed.

2. The sets are intersected using a C++ primitive, which runs in O(n) time
   (intersecting pre-sorted lists) with small constants rather than interpreted
   Nix code.

Thanks to @toonn for prompting this improvement.
2022-09-25 00:09:15 -07:00
Robert Hensing cc6dce5c0a
Merge pull request #189836 from erikarvstedt/options-definitionsWithLocations
lib/modules: add `definitionsWithLocations` to evaluated options
2022-09-24 12:43:19 +01:00
Robert Hensing 43efa4900c lib.types.unspecified: Make name match attribute name again
@Infinisil: This isn't right, the name shouldn't be changed, but instead a description should be added
https://github.com/NixOS/nixpkgs/pull/191353#discussion_r978983401
2022-09-24 12:29:09 +01:00
Robert Hensing 1ffa30b055 lib/modules: Fix meta duplication in shorthand syntax 2022-09-21 10:55:11 +01:00
Robert Hensing fce8b018f0 lib: Add lazyDerivation 2022-09-21 10:55:07 +01:00
Robert Hensing 1cbe950384 lib.types: Add parentheses where description is ambiguous 2022-09-17 22:16:39 +01:00
Stefan Junker 60cf98b067 lib.licenses: add CAL-1.0 2022-09-15 10:09:06 +02:00
Artturi d73864ae2f
Merge pull request #189314 from Artturin/addemulatoravailable 2022-09-13 21:13:07 +03:00
Adam Joseph 99da193877 note that unionOfDisjoint is commutative, unlike // 2022-09-12 12:59:16 -07:00
Adam Joseph 47de66b1a4 lib/attrsets.nix: add unionOfDisjoint 2022-09-12 12:53:31 -07:00
Artturin 20f90d3921 lib/systems: add emulatorAvailable
```
nix-repl> pkgsCross.arm-embedded.stdenv.hostPlatform.emulatorAvailable pkgsCross.arm-embedded.buildPackages
false

nix-repl> pkgsCross.aarch64-multiplatform.stdenv.hostPlatform.emulatorAvailable pkgsCross.aarch64-multiplatform.buildPackages
true
```

will be useful for stuff like handling https://github.com/NixOS/nixpkgs/issues/187109
2022-09-11 19:34:15 +03:00
pennae 767485a0de lib/options: deprecate docbook text and literalDocBook
deprecate literalDocBook by adding a warning (that will not fire yet) to
its uses and other docbook literal strings by adding optional warning
message to mergeJSON.
2022-09-10 18:23:13 +02:00
Silvan Mosberger 6389a26e5f
Merge pull request #181834 from ncfavier/numbers
lib/types: add `number`
2022-09-09 19:59:29 +02:00
Adam Joseph ba3c562fdc
lib/systems: uname.processor is "uname -m", not "uname -p" (#189958)
The comment in lib/systems/default.nix for uname.processor indicates that it
should match `uname -p`.  I tried that command and found that it reports
`unknown` on all of these machines:

- `x86_64-linux`
- `aarch64-linux`
- `mips64el-linux`
- `powerpc64le-linux`

The command `uname -m` reports the expected value on all of the above.

I think the comment is wrong.  So I fixed it.
2022-09-06 10:17:09 -05:00
Erik Arvstedt 9f22df9a7f
lib/modules: add definitionsWithLocations to evaluated options
This attr provides the location of each definition.

This is particularly useful for introspecting options of type
`attrsOf`. E.g., it allows finding the location of a systemd
service definition by parsing
`options.systemd.services.definitionsWithLocations`.
2022-09-05 12:11:43 +02:00
Jonas Heinrich 4c1f1c5853
Merge pull request #161118 from arkivm/init-dwarf2json
dwarf2json: init at unstable-2021-04-15
2022-09-05 12:07:17 +02:00
pennae 3bddcf5f90
Merge branch 'master' into option-docs-md 2022-09-01 16:10:09 +02:00
pennae e04a09082e lib/modules: convert option description to MD 2022-08-31 17:27:37 +02:00
Robert Hensing 3ebb588ab3
Merge pull request #188289 from erikarvstedt/fix-disabled-modules-abs-paths
lib.modules: support strings with absolute paths in `disabledModules`
2022-08-31 15:27:03 +02:00
Erik Arvstedt e2cc361970
lib.modules: support strings with absolute paths in disabledModules
This is particularly useful for disabling modules defined in a flake.
Example:
disabledModules = [ "${flake}/modules/mymodule.nix" ];

Previously, absolute string paths were internally prepended with `modulesPath`,
which caused the module filtering to fail.
2022-08-31 14:23:28 +02:00
pennae 9bb82c35b7 lib/options: add mdDoc support to mkEnableOption 2022-08-30 15:05:05 +02:00
Minijackson b2190a3cce lib/systems/doubles: add ELFvx GNU ABIs 2022-08-28 21:46:44 +02:00
Minijackson 345595a8b8 lib/systems: add convenience isAbiElfv2 function 2022-08-28 21:46:44 +02:00
Minijackson cdb0f02a36 lib/systems/examples: use provided ABIs in PPC64 triple 2022-08-28 21:46:44 +02:00
Minijackson 3fa4274ff6 lib/systems/parse: use ELFv2 by default for PPC64 BE 2022-08-28 21:46:44 +02:00
Minijackson da2d9a2aca lib/systems: add elfv1 / elfv2 ABIs 2022-08-28 21:46:44 +02:00
Minijackson 4db467f7e9
lib/systems: add MicroBlaze architectures 2022-08-25 16:00:42 +02:00
Vladimír Čunát b784c5ae63
Merge #186941: staging-next 2022-08-16 2022-08-24 19:10:16 +02:00
Stig 24f160cfcd
Merge pull request #187884 from helsinki-systems/feat/perl-sri
perlPackages: Switch to SRI hashes, add `hash` support to bootstrap fetchurl, bump minimal nix version
2022-08-24 17:28:04 +02:00
Vladimír Čunát 7bfc2b2564
Merge branch 'master' into staging-next 2022-08-24 17:10:55 +02:00
Michal Sojka c1b2e4a9b1 perlPackages.Crypt{Blowfish,DES,IDEA}: Use correct license
Recent commit 59356f11c1 ("perlPackages: Ensure all packages have a
license", 2022-08-22) added a license field to Perl packages where the
license was missing. The above mentioned packages got assigned
`unfreeRedistributable` license, which is not precise and makes all
packages depending on them unbuildable without `NIXPKGS_ALLOW_UNFREE`.

The packages actually have a license which SPDX calls
BSD-4-Clause-Shortened (https://spdx.org/licenses/BSD-4-Clause-Shortened.html).
In this commit, we add this license to the list of allowed licenses
and change the license field of the mentioned packages.

Closes #188103
2022-08-24 15:10:17 +02:00
Janne Heß 0b3e7f063c
boostrap fetchurl: Add SRI support 2022-08-24 09:55:45 +02:00
github-actions[bot] 9968240f42
Merge master into staging-next 2022-08-22 18:01:16 +00:00
Janne Heß e6b89a5a52
perlPackages: Clarify all unfree licenses 2022-08-22 11:16:50 +02:00
github-actions[bot] a6c886b7fd
Merge master into staging-next 2022-08-21 06:01:17 +00:00
Skyler d61bc96d16
Fix a typo in the lib.foldr docstring
- This quote mark should be a backtick
- Using a quote mark instead of a backtick breaks formatting when rendering the docs
2022-08-20 23:58:57 +01:00
Daniel Olsen 875d77ca03 lib/systems: Add staticLibrary and library
staticLibrary includes common extensions for static libraries
library is a new common attribute that includes both shared and static extensions
2022-08-16 08:36:57 +00:00
Robert Hensing 661c29c806
Merge pull request #181222 from hercules-ci/module-specialArgs
`_module.specialArgs` + unit test for nixos/documentation module
2022-08-08 11:53:10 +02:00
sternenseemann 17746af0c5 Merge remote-tracking branch 'origin/master' into haskell-updates 2022-08-04 14:31:47 +02:00
Sandro 7c073f917a
lib/system: resolve TODO 2022-08-02 14:13:18 +02:00
github-actions[bot] 093f236f30
Merge master into haskell-updates 2022-07-30 00:13:25 +00:00
Sandro 463327086d lib/systems/inspect.nix: add isAarch 2022-07-29 19:16:01 +00:00
sternenseemann 7f909b041b haskell.compiler: ghc923 -> ghc924
https://www.haskell.org/ghc/download_ghc_9_2_4.html
2022-07-28 18:09:33 +02:00
Sandro cb9d1d71ed
Merge pull request #182217 from GuillaumeDesforges/GuillaumeDesforges@dbx-init 2022-07-27 22:29:25 +02:00
Vladimír Čunát 87980a5a14
Merge #170736: lib/systems/platforms.nix: fix mips32 ABI 2022-07-27 19:53:38 +02:00
Guillaume Desforges b079da4c56 python3Packages.dbx: 0.5.0 2022-07-25 17:44:21 +02:00
Naïm Favier eb72be8541
lib/types: add number
For numbers that can be ints or floats.
2022-07-24 18:03:28 +02:00
Florian Klink 7c119675a3
Merge pull request #179002 from klemensn/move-passwdEntry-type
move passwdEntry type
2022-07-22 14:16:57 +07:00
Robert Hensing bf5b75864d lib/modules: Add _module.specialArgs 2022-07-21 15:31:34 +02:00
Rick van Schijndel 9532db9eb7
Merge pull request #160554 from Cloudef/android-prebuilt
Fix android prebuilt toolchains
2022-07-18 10:01:00 +02:00
Janne Heß 68da5b2a22
lib/trivial: Update oldestSupportedRelease 2022-07-04 20:07:44 +02:00
Alyssa Ross e8d7d52fae lib.systems.examples: canonicalize MIPS triples
In Nixpkgs, we assume that the "config" field is a canonicalized GNU
triple.  I noticed that non-canonical values were being used here,
because the pkgsCross.mips64el-linux-gnu triples did not contain the
vendor field, but the pkgsCross.mips64el-linux-gnu.pkgsStatic did.

Here, I've run all the MIPS triples in lib.systems.examples through
config.sub to canonicalize them.  I think this will avoid nasty
surprises in future.

Tested by building Nix and the bootstrap files for
pkgsCross.mips64el-linux-gnu.
2022-07-03 23:01:21 +00:00
toastal bf0608a642 lib.licenses: add Aladdin Free Public License 2022-07-02 15:51:25 +07:00
Jari Vetoniemi 539222e8d4 canExecute: check for android 2022-06-29 18:27:16 +09:00
Jari Vetoniemi 2a914f022c update android targets to recommended ones 2022-06-29 18:27:16 +09:00
Robert Hensing 4a8bc4fd07 lib/options: Add hint for debugging infinite recursion in docs 2022-06-27 17:41:32 +02:00
Klemens Nanni 574a90771f lib.types, nixos/users: Make passwdEntry available
More nixpkgs code such as `boot.initrd.systemd.emergencyAccess` defines
options that takes hashed passwords, so move the type definition from
modules/ into lib/.

The type definition itself stays unchanged.
2022-06-25 16:34:47 +04:00
Robert Hensing 89b4bd8b24 lib/options: Add showOptionWithDefLocs 2022-06-21 14:22:33 +02:00
Robert Hensing e2c261f2c0
Merge pull request #176146 from pennae/module-docs-markdown
treewide: markdown option docs
2022-06-21 13:16:02 +02:00
Graham Christensen 9ed793229c teams/maintainers list: show instructions for validating the contents 2022-06-20 22:20:26 +02:00
Graham Christensen ff38ee15c2 maintainer teams: check them in lib tests 2022-06-20 22:20:26 +02:00
Graham Christensen 3ac995a568 maintainer lib test: extract maintainer module 2022-06-20 22:20:26 +02:00
Graham Christensen c8cebff38b maintainers: remove longkeyid
see https://dkg.fifthhorseman.net/blog/openpgp-key-ids-are-not-useful.html
2022-06-20 22:20:26 +02:00
Robert Hensing 3c4a49f506 lib/modules: Throw earlier when module function does not return attrs
`m` must always be an attrset at this point. It is basically always
evaluated. This will make it throw when any of the attrs is accessed,
rather than just `config`. We assume that this will improve the error
message in more scenarios.
2022-06-14 23:23:41 +02:00
Robert Hensing dfd98a5da2 lib.deferredModule: Make it properly singular 2022-06-14 23:01:27 +02:00
Robert Hensing 19a069ab8b lib.types: Add deferredModuleWith 2022-06-14 23:01:27 +02:00
Robert Hensing 781c2e0789 lib.types.deferredModule: Allow path-typed module references 2022-06-14 23:01:26 +02:00
Robert Hensing a2c29561e7 lib.types.deferredModule: Improve reported location 2022-06-14 23:01:26 +02:00
Robert Hensing 38b7709a6f lib/test/modules.sh: Test deferredModule error location file 2022-06-14 23:01:26 +02:00
Robert Hensing 4746f6d03e lib.types: Add deferredModule 2022-06-14 23:01:23 +02:00
Robert Hensing 9dead5565a lib/types, lib/modules: Remove unused extensionOffset 2022-06-14 17:25:06 +02:00
Robert Hensing d4a84aeeca lib/types: Use map instead of imap1 in submoduleWith 2022-06-14 17:09:05 +02:00
Silvan Mosberger 907627f656 lib/types: Simplify submoduleWith shorthandOnlyDefinesConfig handling
The module system already uses the parent module's _file as a fallback,
so we don't need to inject the file in a weird way
2022-06-14 17:07:33 +02:00
Silvan Mosberger 79441600c2 lib/tests: Add submodule file propagation test 2022-06-14 17:01:58 +02:00
pennae 320aa2a791 treewide: attempt at markdown option docs 2022-06-12 12:44:38 +02:00
Robert Hensing b37801bc3f
Merge pull request #157480 from MatthewCroughan/in-pure-eval-mode
lib: add inPureEvalMode
2022-06-10 16:31:31 +02:00
Robert Hensing d9e71531a0 lib/modules: Fix missing prefix in extendModules when unset in both eval- and extend- 2022-06-10 12:21:23 +02:00
Robert Hensing ec82f36ab6
Merge pull request #173621 from ncfavier/submodule-description
lib/types: allow custom `submoduleWith` descriptions
2022-06-10 11:10:20 +02:00
Silvan Mosberger 53ee7c4879
Merge pull request #177061 from ckiee/bitXOr-typo
lib/zip-int-bits: fix typo: bitXOR -> bitXor
2022-06-09 19:06:32 +02:00
ckie 00a46966be
lib/zip-int-bits: fix typo: bitXOR -> bitXor 2022-06-09 20:04:37 +03:00
Alyssa Ross 74562a214e
lib.systems.amd64-netbsd: remove
This has been deprecated for a long time, and it's doubtful it had any
users to start with.  And having an undisablable warning when
enumarating platforms is not good.
2022-06-08 17:14:05 +00:00
github-actions[bot] 68b515131f
Merge master into haskell-updates 2022-06-01 00:15:07 +00:00
github-actions[bot] 5250c9bcbc
Merge master into haskell-updates 2022-05-31 00:12:58 +00:00
michaelmouf b1aa4a7f25
Fix typo in compareLists docstring 2022-05-30 12:14:45 +02:00
Robert Scott ae0df5d38a lib.sourceTypes: simplify implementation
Co-authored-by: Alexander Foremny <aforemny@posteo.de>
2022-05-30 16:27:34 +08:00
Robert Scott da9162f667 add mechanism for handling meta.sourceProvenance attributes
heavily based on patterns used by licenses infrastructure, so may
appear overengineered for its initial level of use
2022-05-30 16:27:34 +08:00
sternenseemann 90099ac5fa haskell.compiler: ghc922 -> ghc923
https://www.haskell.org/ghc/download_ghc_9_2_3.html

Since the tarball is generated by Hadrian, neither autoreconf nor ./boot
is executed so ./configure and ghc.mk is missing.
2022-05-28 21:11:07 +02:00
sternenseemann d01774baa3
Merge pull request #174917 from alyssais/scaleway-c1
lib.systems: drop scaleway-c1
2022-05-27 14:52:42 +02:00
Alyssa Ross 089ff89f49
lib.systems: drop scaleway-c1
These servers apparently no longer exist, since September 2, 2021[1].
If somebody needs this for non-Scaleway machines, they should suggest
its reintroduction with a different name.

[1]: https://news.ycombinator.com/item?id=27192757
2022-05-27 12:02:39 +00:00
Adam Joseph c0085404bd lib/systems/inspect.nix: remove isPowerPC
Very confusingly, the `isPowerPC` predicate in
`lib/systems/inspect.nix` does *not* match `powerpc64le`!

This is because `isPowerPC` is defined as

  isPowerPC      = { cpu = cpuTypes.powerpc; };

Where `cpuTypes.powerpc` is:

  { bits = 32; significantByte = bigEndian; family = "power"; };

This means that the `isPowerPC` predicate actually only matches the
subset of machines marketed under this name which happen to be 32-bit
and running in big-endian mode which is equivalent to:

  with stdenv.hostPlatform; isPower && isBigEndian && is32bit

This seems like a sharp edge that people could easily cut themselves
on.  In fact, that has already happened: in
`linux/kernel/common-config.nix` there is a test which will always
fail:

  (stdenv.hostPlatform.isPowerPC && stdenv.hostPlatform.is64bit)

A more subtle case of the strict isPowerPC being used instead of the
moreg general isPower accidentally are the GHC expressions:

  Update pkgs/development/compilers/ghc/8.10.7.nix
  Update pkgs/development/compilers/ghc/8.8.4.nix
  Update pkgs/development/compilers/ghc/9.2.2.nix
  Update pkgs/development/compilers/ghc/9.0.2.nix
  Update pkgs/development/compilers/ghc/head.nix

Since the remaining legitimate use sites of isPowerPC are so few, remove
the isPowerPC predicate completely. The alternative expression above is
noted in the release notes as an alternative.

Co-authored-by: sternenseemann <sternenseemann@systemli.org>
2022-05-25 09:45:42 +02:00
Robert Hensing 40b6089f21
Merge pull request #171014 from hercules-ci/nixpkgs-warn-undeclared-options
pkgs/top-level/config.nix: Add warnUndeclaredOptions
2022-05-25 08:37:15 +02:00
Nick Cao eef4bbd82f
stdenv: fix evaluation of platform emulator 2022-05-24 12:01:56 +08:00
sternenseemann 82c434b3de lib.systems: inform isCompatible users about removal 2022-05-23 21:26:03 +02:00
sternenseemann acb063701a lib.systems.elaborate: expose canExecute predicate over isCompatible
canExecute is like isCompatible, but also checks that the Kernels are
_equal_, i.e. that both platforms use the same syscall interface. This
is crucial in order to actually be able to execute binaries for the
other platform.

isCompatible is dropped, since it has changed semantically and there's
no use case left in nixpkgs.
2022-05-23 21:25:04 +02:00