Commit graph

4488 commits

Author SHA1 Message Date
Johannes Kirschbauer bda0c8532b
lib.getAttrFromPath: fix docs (#400948) 2025-04-23 14:09:23 +02:00
Pol Dellaiera a9320986b3
lib.strings: init splitStringBy (#385643) 2025-04-23 04:51:38 +00:00
Silvan Mosberger 3ca8b685c8 lib.getAttrFromPath: fix docs 2025-04-22 23:39:18 +02:00
Zitrone 6638639684
font-util: refactored, moved to pkgs/by-name and renamed from xorg.fontutil 2025-04-22 19:46:53 +02:00
Zitrone 5d15a3d718
font-alias: refactored, moved to pkgs/by-name and renamed from xorg.fontalias 2025-04-22 19:46:52 +02:00
Norbert Melzer b2f1b6b8f0
lib/strings: Zero‐pad hex digits in escapeC (#399722) 2025-04-21 17:12:55 +02:00
Johannes Kirschbauer 843af863e6
lib.options.mkPackageOption: use lib.showAttrPath (#398066) 2025-04-21 10:51:01 +02:00
Johannes Kirschbauer 013beed1db
lib/types: check paths in pathWith with hasStorePathPrefix (#387304) 2025-04-21 10:45:23 +02:00
Mikael Voss 487a002c63
lib/strings: Zero‐pad hex digits in escapeC
lib.strings.escapeC produces single‐digit hexadecimal strings for
character values ≤ 15, which results in an ambiguity. If the following
character is a hex digit, it will be interpreted as being part of the
escape sequence.

systemd, which also relies on C‐style escape sequences, does not
decode single‐digit sequences at all, even if unambiguous.

Padding the hexadecimal string with "0" avoids this problem.
2025-04-18 13:41:53 +02:00
Thiago Kenji Okada 4a99dd0542
grayjay: init at 5 (#368427) 2025-04-18 11:53:55 +01:00
Matt Sturgeon 6107d48bcb
lib.options.mkPackageOption: use lib.showAttrPath
Make use of `lib.showAttrPath` instead of manually doing `concatStringsSep "."`.

This means edge-cases such as the attr-path including names that are not
valid nix identifiers will be handled better.

See:
- https://nix.dev/manual/nix/2.26/language/identifiers
- https://nixos.org/manual/nixpkgs/unstable/#function-library-lib.attrsets.showAttrPath
2025-04-13 20:54:13 +01:00
Matt Sturgeon 4c26f96059
lib/tests/modules: test all mkPackageOption cases
There were several test case options declared in `declare-mkPackageOption.nix`
that were not actually tested in `modules.sh`.
2025-04-13 20:54:12 +01:00
azahi 9fee9e7371
lib.takeEnd: init 2025-04-13 17:37:35 +03:00
K900 aece6a0c1f Merge remote-tracking branch 'origin/master' into staging-next 2025-04-11 21:17:42 +03:00
Robert Hensing 3e5af839c2
lib.types.submodule: Disable check during docs generation (#396907) 2025-04-11 19:12:32 +02:00
Alyssa Ross 904b79c696
lib.systems: force qemuArch to "aarch64" on aarch64
qemu architecture names are fixed — we're using uname here just
because it's more likely to be correct than CPU name (see e.g. POWER).
This means that aarch64 is always called aarch64, even on Darwin where
uname reports arm64.

Fixes: 61582c7043 ("lib/systems: use Darwin architecture names for `config` and `uname`")
2025-04-11 10:32:19 +02:00
nixpkgs-ci[bot] c55a1a7779
Merge master into staging-next 2025-04-11 00:15:47 +00:00
Robert Hensing e09cf9f066 lib.types.submodule: Disable check during docs generation
Put simply docs generation is a weird eval, and we should avoid
generating any unnecessary errors.
2025-04-11 00:32:01 +02:00
Robert Hensing d84b0024f6
lib/modules: export class inside specialArgs (#395141) 2025-04-10 20:58:41 +02:00
Michael Hoang 6de9039315 lib/modules: add class to specialArgs
Co-Authored-By: Johannes Kirschbauer <hsjobeki@gmail.com>
2025-04-10 17:58:40 +02:00
nixpkgs-ci[bot] 6c98e107c7
Merge master into staging-next 2025-04-09 00:15:45 +00:00
Jörg Thalheim abd52dd872 nixVersions.{nix_2_28,nix_2_26}: switch simplified meson build
So we are adding a simplified version that builds a monolithic nix binary to get finished
in time for the release. Afterwards we will switch to the modular build again.
2025-04-08 12:29:11 -04:00
Heitor Augusto bb4be9a474
lib.strings: init splitStringBy 2025-04-07 15:51:18 -03:00
K900 b3146d4446 Merge remote-tracking branch 'origin/master' into staging-next 2025-04-07 21:21:10 +03:00
Johannes Kirschbauer 0196e5372b
lib/modules: Init lib.mkDefinition (#390983) 2025-04-07 14:52:48 +02:00
K900 05bc93a58a Merge remote-tracking branch 'origin/master' into staging-next 2025-04-06 11:20:16 +03:00
Maciej Krüger 1000bcdd4d
lib.systems: Add arm-embedded-nano (#392204) 2025-04-06 00:10:57 +02:00
samfundev 62f3255cd8
lib/licenses: add sfl 2025-04-03 21:37:32 -04:00
Johannes Kirschbauer 33daa3f4b9
lib.modules: init test for lib.mkDefinition 2025-04-03 15:03:00 +02:00
Robert Hensing b42b9e061b
lib.modules: init lib.mkDefinition
Free-floating definitions including file location.
2025-04-03 14:12:07 +02:00
Emily 61582c7043 lib/systems: use Darwin architecture names for config and uname
`aarch64-apple-darwin` no longer works with LLVM 20.
2025-04-02 21:22:47 +01:00
Emily 1e6ab3434f treewide: drop support for 32‐bit Darwin
It’s dead, Jim.
2025-04-02 21:20:44 +01:00
nixpkgs-ci[bot] d05ee1c1cb
Merge staging-next into staging 2025-04-02 16:38:11 +00:00
Silvan Mosberger e52d633a63 Merge remote-tracking branch 'upstream/staging-next' into staging 2025-04-02 18:30:54 +02:00
Mikael Voss 77b4dedbfc lib/systems/architecures: Add generic inferiors for x86-64 AMD 2025-04-02 14:43:21 +02:00
Mikael Voss 998f1652fb lib/system/architectures: Correct Alder Lake inferiors 2025-04-02 14:43:21 +02:00
Mikael Voss e693be89e7 lib/systems/architectures: Define inferiors for common ARM64 CPUs 2025-04-02 14:06:27 +02:00
Mikael Voss 387a5561fb lib/systems/architectures: Define generic ARM64 inferiors 2025-04-02 14:06:27 +02:00
Mikael Voss 931f464581
lib/types: check paths in pathWith with hasStorePathPrefix
This permits usage of content‐addressed derivations and has the added
benefit of checking normalised paths.
2025-04-02 13:28:52 +02:00
Mikael Voss bf790d1a7f
lib/path: properly handle /. in hasStorePathPrefix 2025-04-02 13:26:43 +02:00
Silvan Mosberger 374e6bcc40 treewide: Format all Nix files
Format all Nix files using the officially approved formatter,
making the CI check introduced in the previous commit succeed:

  nix-build ci -A fmt.check

This is the next step of the of the [implementation](https://github.com/NixOS/nixfmt/issues/153)
of the accepted [RFC 166](https://github.com/NixOS/rfcs/pull/166).

This commit will lead to merge conflicts for a number of PRs,
up to an estimated ~1100 (~33%) among the PRs with activity in the past 2
months, but that should be lower than what it would be without the previous
[partial treewide format](https://github.com/NixOS/nixpkgs/pull/322537).

Merge conflicts caused by this commit can now automatically be resolved while rebasing using the
[auto-rebase script](8616af08d9/maintainers/scripts/auto-rebase).

If you run into any problems regarding any of this, please reach out to the
[formatting team](https://nixos.org/community/teams/formatting/) by
pinging @NixOS/nix-formatting.
2025-04-01 20:10:43 +02:00
K900 a6d5666400 Merge remote-tracking branch 'origin/staging-next' into staging 2025-04-01 08:39:50 +03:00
Robert Hensing d2c9829366
lib.modules: simplified logic in usage of zipAttrsWith and minor cleanup (#388748) 2025-04-01 00:48:56 +02:00
nixpkgs-ci[bot] 86e22e1e80
Merge staging-next into staging 2025-03-31 12:06:34 +00:00
Robert Hensing bb984408d5 lib/tests/release.nix: Use nix.overrideScope for >=2.26 2025-03-31 00:47:37 +02:00
Tristan Ross 5e51e2645a
llvmPackages_{12,13,14,15,16,17,18,19,20,git}.llvm: refactor (#389873) 2025-03-29 14:23:57 -07:00
nixpkgs-ci[bot] d9eb3e5d48
Merge staging-next into staging 2025-03-28 12:06:30 +00:00
Hugo Herter fa165c6452 lib/licenses: add aml
Add the "Appple MIT License", also known as
"Apple-Sample-Code-License".

Quoting the Fedora wiki:
> This is Apple's variant of MIT. They've added wording around patents,
> which is why it gets it own shortname. Apple did not give this license
> a name, so we've named it "Apple MIT License".
> It is free and GPL compatible.

References:
- https://developer.apple.com/support/downloads/terms/apple-sample-code/Apple-Sample-Code-License.pdf
- https://spdx.org/licenses/AML.html
- https://fedoraproject.org/wiki/Licensing/Apple_MIT_License
2025-03-28 11:02:49 +01:00
Tristan Ross b26e122b14
lib.cmakeOptionType: support list 2025-03-26 21:12:07 -07:00
Tristan Ross 4d4a2f8b14
llvmPackages_20.libc-full: fix building (#385706) 2025-03-26 20:32:27 -07:00
Robert Hensing 90c1822309 nixVersions.nix_2_26: Fix cross and static 2025-03-26 18:33:43 -04:00
nicoo 05d528b56b lib.packagesFromDirectoryRecursive: drop open recursion from API surface 2025-03-26 12:11:44 +01:00
nicoo 151b6e431a lib.packagesFromDirectoryRecursive: document that symlinks are ignored
This was implicit in the previous “other files are ignored.”
2025-03-26 12:11:44 +01:00
nicoo be6ce5f40d lib.packagesFromDirectoryRecursive: Add example use of recurseIntoDirectory 2025-03-26 12:11:44 +01:00
nicoo 93d76b7344 lib.packagesFromDirectoryRecursive: reject unknown arguments
see [discussion](https://github.com/NixOS/nixpkgs/pull/270537#discussion_r1862458435)
2025-03-26 12:11:44 +01:00
nicoo 6cc285d613 lib.packagesFromDirectoryRecursive: hoist processDir out of the lambda
Fixes a bug preventing `recurseIntoDirectory` from changing the `directory` argument.

Moreover, `processDir` now cannot capture arguments from the `packagesFromDirectoryRecursive` call,
entirely preventing this class of bug from reoccurring should new parameters be added etc.
2025-03-26 12:11:44 +01:00
nicoo 32235deeb8 lib.packagesFromDirectoryRecursive: default to creating new scopes when newScope is provided
Co-authored-by: Rebecca Turner <rbt@sent.as>
2025-03-26 12:11:44 +01:00
nicoo 41f219d1d9 lib.packagesFromDirectoryRecursive: add tests for nested scopes 2025-03-26 12:11:43 +01:00
nicoo 6b7576b0cf lib.packagesFromDirectoryRecursive: use explicit recursion, support nested scopes 2025-03-26 12:11:43 +01:00
nicoo fdd2c6f80f lib/tests: move packages-from-directory/* into a subdir
in preparation for adding more tests for `lib.packagesFromDirectoryRecursive`
2025-03-24 18:35:26 +01:00
nicoo 325b3755f5 lib.filesystem: remove dead let-bindings
Found by `deadnix` 🖤
2025-03-24 18:35:25 +01:00
Tristan Ross 05219927d0
lib.systems: mark LLVM libc as static 2025-03-24 06:55:06 -07:00
Ross Smyth 57ec4f3128 lib.systems: Add arm-embedded-nano
Newlib-nano variant of the arm-embedded stdenv.
2025-03-20 16:15:09 -04:00
Johannes Kirschbauer 484a0477d8
lib/types: types.either deprecate functor.wrapped in favor of functor.payload.elemType 2025-03-20 14:11:34 +00:00
Silvan Mosberger 987a096334
lib/types: types deprecate functor.wrapped in favor of functor.payload.elemType for trivial cases (#375084) 2025-03-20 14:28:57 +01:00
Felix Bühler 30358ab7a7
formats.lua: init; types.luaInline: init (#390120) 2025-03-19 23:18:05 +01:00
nikstur 02843300bb lib.licenses.asl20-llvm: replace with separate llvm-exception
This essentially reverts 7ce8e7c4cf

asl20-llvm does not produce a valid SPDX ID, it produces a valid SPDX
Expression. However, this is not what the spdxId field promises.

This is relevant because we cannot produce valid SBOMs (e.g. CycloneDX)
using this field as the schemas for these SBOMs check that the IDs are
valid.

This change leaves us with consistently valid SPDX IDs at the cost
of slightly less convenience.
2025-03-17 13:05:21 +01:00
sanana 8e1e15cf11
lib/licenses: add bsdAxisNoDisclaimerUnmodified
This is a variant composed of clause 1 and 3 of a BSD-Modified found in the
Linux kernel and this extra variant has the words "without modification" added
at the end of clause 1 either with or without a comma. It also lacks the
warranty disclaimer.

See <https://scancode-licensedb.aboutcode.org/bsd-no-disclaimer-unmodified.html>.
2025-03-16 14:22:00 +03:00
Matt Sturgeon 0be0e7529b
lib.generators.toLua: support path-values 2025-03-15 11:40:47 +00:00
Matt Sturgeon c347d605c9
lib.types: add luaInline
Represents inline lua as expected by `lib.generators.toLua`, for
embedding raw lua expressions within structurally generated lua.
2025-03-15 10:29:28 +00:00
Matt Sturgeon 7436684102
lib.generators: alias mkLuaInline at the top-level 2025-03-15 10:26:57 +00:00
Johannes Kirschbauer 4f123107b4
lib/types: types.coercedTo deprecate functor.wrapped in favor of functor.payload.elemType 2025-03-15 00:46:02 +09:00
Johannes Kirschbauer f6214eb786
lib/types: types.functionTo deprecate functor.wrapped in favor of functor.payload.elemType 2025-03-15 00:45:39 +09:00
Johannes Kirschbauer 4fe25460e1
lib/types: types.nullOr deprecate functor.wrapped in favor of functor.payload.elemType 2025-03-15 00:45:30 +09:00
Johannes Kirschbauer 05958f27e2
lib/types: types.{unique,uniq} deprecate functor.wrapped in favor of functor.payload.elemType 2025-03-15 00:05:55 +09:00
Robert Hensing 877ebad7fa
lib/path: allow CA paths in hasStorePathPrefix (#386774) 2025-03-12 19:32:12 +00:00
toborwinner ff9b3598e6
lib.modules: simplified logic in zipAttrsWith and minor cleanup 2025-03-10 17:05:22 +01:00
Mikael Voss 7a07cc0da9
lib/strings: allow CA paths in isStorePath 2025-03-05 13:08:41 +01:00
Mikael Voss 6e2e984af0
lib/path: allow CA paths in hasStorePathPrefix 2025-03-05 10:30:08 +01:00
Wroclaw 0de1d18795 lib.types.functionTo: preserve functionArgs
Previously if function in defs had set pattern in argument,
this information would be lost.

This keeps functionArgs in set pattern,
by using functor and `__functionArgs`
that is later used by `lib.functionArgs`.
2025-03-02 00:04:19 +01:00
Johannes Kirschbauer 0e46672592
lib.types: Make functor.wrapped deprecation work in unprocessed types (#382848) 2025-02-21 15:57:20 +07:00
Johannes Kirschbauer 0d52202380
lib.strings: init toSentenceCase (#381802) 2025-02-20 07:58:44 +07:00
Martin Fink 2607578cc4 lib.systems.architectures: add sierra forest 2025-02-19 19:25:03 +01:00
isabel b109863c25 lib.strings: init toSentenceCase 2025-02-19 12:10:39 +00:00
Johannes Kirschbauer fb79705bca
lib.types: improve tests for deprecation warning on all migrated types 2025-02-19 16:54:55 +07:00
Silvan Mosberger 64a1c1da3e
lib.types: Make functor.wrapped deprecation work in unprocessed types
Otherwise nested types such as `attrsOf (attrsOf int)` won't have a
backwards compatible `type.nestedTypes.elemType.functor.wrapped`.

Follow-up work to https://github.com/NixOS/nixpkgs/pull/366015
2025-02-19 16:10:27 +07:00
Johannes Kirschbauer 7bbacbb11b
Revert "lib.types.attrsWith: remove failing test" (#382856) 2025-02-19 16:07:48 +07:00
lassulus 642babe809
Docs: migrate format of comments to doc-comments (#381381) 2025-02-19 13:51:23 +07:00
Johannes Kirschbauer 3f9d8a1fea
lib/pathWith: keep old typename, to avoid breakage in downstream projects 2025-02-19 09:03:18 +07:00
Silvan Mosberger bdddb0c517 Revert "lib.types.attrsWith: remove failing test"
This reverts commit ce8f304bb6.

The problem was simply a typo (nestedTypes.elemType ->
type.nestedTypes.elemType) ! And CI didn't run for lib in the orginal
PR which is why it didn't get caught.
2025-02-17 16:19:40 +01:00
Johannes Kirschbauer 2f6b75b26a
lib/types: add types.pathWith (#373287) 2025-02-17 09:56:48 +07:00
Jeremy Fleischman 6d7f6a92cc
lib/types: add types.pathWith
This gives people some flexibility when they need a path type, and
prevents a "combinatorial explosion" of various path stops.

I've re-implemented our existing `path` and `pathInStore` types using
`pathWith`. Our existing `package` type is potentially a candidate for
similar treatment, but it's a little quirkier (there's some stuff with
`builtins.hasContext` and `toDerivation` that I don't completely
understand), and I didn't want to muddy this PR with that.

As a happy side effect of this work, we get a new feature: the ability
to create a type for paths *not* in the store. This is useful for when a
module needs a path to a file, and wants to protect people from
accidentally leaking that file into the nix store.
2025-02-15 16:14:06 +07:00
Daniel Flanagan 208049c89c
docs(lib): fix weird structures in attrsets docstrings 2025-02-14 23:04:58 -06:00
Johannes Kirschbauer ef85e0daa0
Format: lib/path.nix 2025-02-12 15:01:45 +07:00
Johannes Kirschbauer d89ad6c70e
Format: lib/versions.nix 2025-02-12 15:01:45 +07:00
Johannes Kirschbauer e0fe216f49
Format: lib/fileset/internal.nix 2025-02-12 15:01:45 +07:00
Johannes Kirschbauer 80d5b411f6
Format: lib/sources.nix 2025-02-12 15:01:45 +07:00
Johannes Kirschbauer 88f912da48
Docs: migrate format of comments to doc-comments 2025-02-12 15:01:43 +07:00
Johannes Kirschbauer 9d3e649939
lib.types: init mergeTypes (#364620) 2025-02-10 22:10:30 +07:00
Johannes Kirschbauer 3c911b2aca
lib.types: init mergeTypes 2025-02-10 21:23:12 +07:00