| Commit message (Collapse) | Author | Age |
|\
| |
| | |
lib/modules: Use options `apply` function even if no values are defined
|
| |
| |
| |
| |
| |
| | |
This allows `apply` functions to return a valid value if they completely
ignore their argument, which is the case for the option renaming
functions like `mkAliasOptionModule`. Therefore this solves issue #63693
|
| | |
|
|\ \ |
|
| |\ \
| | |/
| |/| |
lib/types: Add oneOf, extension of either to a list of types
|
| | | |
|
| | | |
|
|\| | |
|
| |\ \
| | |/
| |/| |
lib/types: change merge strategy for `str`, `int`, `float`, `path` and `enum`
|
| | |
| | |
| | |
| | | |
Change to `mergeEqualOption`.
|
| | | |
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
`sourceByRegex src regexes` should include a source file if one of the
regular expressions `regexes` matches the path of that file relative
to `src`.
However to compute this relative path `sourceByRegex` uses:
```
relPath = lib.removePrefix (toString src + "/") (toString path);
```
Note that `toString path` evaluates to an absolute file somewhere
under `src` and not under `/nix/store`.
The problem is that this doesn't work if `src` is a `cleanSourceWith`
invocation as well because `toString src` will then evaluate to
`src.outPath` which will evaluate to `builtins.filterSource ...` which
evaluates to a path in `/nix/store` which is not a prefix of `path`.
The solution is to replace `src` with `origSrc` where
```
origSrc = if isFiltered then src.origSrc else src;
isFiltered = src ? _isLibCleanSourceWith;
```
Test this by executing the following from the nixpkgs repo:
```
(cat << 'EOI'
let
pkgs = import ./. {};
in pkgs.runCommand "test-sourceByRegex" {
test_sourceByRegex =
let
src1 = pkgs.lib.sourceByRegex ./. [ "^test-sourceByRegex.nix$" ];
src2 = pkgs.lib.sourceByRegex src1 [ "^test-sourceByRegex.nix$" ];
in src2 + "/test-sourceByRegex.nix";
} ''
cp $test_sourceByRegex $out
''
EOI
) > test-sourceByRegex.nix
nix-build test-sourceByRegex.nix
```
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The main purpose is to bring attention to `flip map`, which improves
code readablity. It is useful when ad-hoc anonymous function
grows two or more lines in `map` application:
```
map (lcfg:
let port = lcfg.port;
portStr = if port != defaultPort then ":${toString port}" else "";
scheme = if cfg.enableSSL then "https" else "http";
in "${scheme}://cfg.hostName${portStr}"
) (getListen cfg);
```
Compare this to `foreach`-style:
```
foreach (getListen cfg) (lcfg:
let port = lcfg.port;
portStr = if port != defaultPort then ":${toString port}" else "";
scheme = if cfg.enableSSL then "https" else "http";
in "${scheme}://cfg.hostName${portStr}"
);
```
This is similar to Haskell's `for` (http://hackage.haskell.org/package/base-4.12.0.0/docs/Data-Traversable.html#v:for)
|
|
|
|
|
| |
The misc.nix and systems.nix tests were invoked at three different
places. Let's not that.
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit ce2f74df2cade57e74c235292c8b074281903e71.
Doubles are treated as -darwin here, to provide some consistency.
There is some ambiguity between “x86_64-darwin” and “i686-darwin”
which could refer to binaries linked between iOS simulator or real
macOS binaries. useiOSPrebuilt can be used to determine which to use,
however.
|
|
|
|
|
|
|
|
| |
The lib tests need to be fixed as well.
This unbreaks the tarball job.
This reverts commit 00ba557856d6217121e50ea69c251e9458d9dc08.
|
|
|
|
|
|
| |
These are used in cross-compilation to iOS devices and simulators.
Fallout from #60349.
|
|
|
|
|
|
| |
* treewide: remove unused variables
* making ofborg happy
|
|\
| |
| | |
NixOS module system: improve one of error messages
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The error can be reproduced like:
```
$ nix-instantiate ./nixos -A system --arg configuration '
{ fileSystems."/".device = "nodev";
boot.loader.grub.devices = [ "nodev" ];
containers.t.config.imports = [ <nixpkgs/nixos/modules/virtualisation/amazon-image.nix> ];
}'
```
Previously error was:
```
error: The unique option `containers.t.networking.hostName' is defined multiple times, in `/nix/var/nix/profiles/per-user/root/channels/nixpkgs/nixos/modules/virtualisation/amazon-image.nix' and `module at /home/danbst/dev/nixpkgs/nixos/modules/virtualisation/containers.nix:470'.
(use '--show-trace' to show detailed location information)
```
Now it is:
```
error: The unique option `containers.t.networking.hostName' is defined multiple times, in:
- /nix/var/nix/profiles/per-user/root/channels/nixpkgs/nixos/modules/virtualisation/amazon-image.nix
- module at /home/danbst/dev/nixpkgs/nixos/modules/virtualisation/containers.nix:470.
(use '--show-trace' to show detailed location information)
```
Related: https://github.com/NixOS/nixpkgs/issues/15747
|
| |
| |
| |
| | |
https://spdx.org/licenses/libpng-2.0.html
|
| | |
|
| |
| |
| |
| |
| | |
These were broken by the added system doubles. This just adds those to
the lib-tests.
|
| |
| |
| |
| | |
it’s powerpc-none not ppc-none
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
in https://github.com/NixOS/nixpkgs/pull/60349, the attr handling was
removed. This means we rely on these double values for determing what
we are compatible with. This adds some of the missing doubles to this
list.
https://hydra.nixos.org/eval/1523389#tabs-removed
|
|\ \
| |/
|/| |
check-meta: use system tuple in platforms
|
| |
| |
| |
| |
| |
| | |
This makes things a little bit more convenient. Just pass in like:
$ nix-build ’<nixpkgs>’ -A hello --argstr localSystem x86_64-linux --argstr crossSystem aarch64-linux
|
| |
| |
| |
| | |
This is unused now.
|
| |
| |
| |
| | |
This was never listed in doubles.nix! Not sure why?
|
| |
| |
| |
| | |
Fixes #60345
|
|\ \
| | |
| | | |
treewide: Remove usage of isNull
|
| | |
| | |
| | |
| | | |
isNull "is deprecated; just write e == null instead" says the Nix manual
|
| |/
|/| |
|
|\| |
|
| | |
|
| | |
|
|\ \
| | |
| | | |
Initial WebAssembly/WASI cross-compilation support
|
| | |
| | |
| | |
| | |
| | | |
This isn’t really an "emulator" but it’s the closest concept we have
right now.
|
| | | |
|
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
Adds pkgsCross.wasm32 and pkgsCross.wasm64. Use it to build Nixpkgs
with a WebAssembly toolchain.
stdenv/cross: use static overlay on isWasm
isWasm doesn’t make sense dynamically linked.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It is useful to make these dynamic and not bake them into gcc. This
means we don’t have to rebuild gcc to change these values. Instead, we
will pass cflags to gcc based on platform values. This was already
done hackily for android gcc (which is multi-target), but not for our
own gccs which are single target.
To accomplish this, we need to add a few things:
- add ‘arch’ to cpu
- add NIX_CFLAGS_COMPILE_BEFORE flag (goes before args)
- set -march everywhere
- set mcpu, mfpu, mmode, and mtune based on targetPlatform.gcc flags
cc-wrapper: only set -march when it is in the cpu type
Some architectures don’t have a good mapping of -march. For instance
POWER architecture doesn’t support the -march flag at all!
https://gcc.gnu.org/onlinedocs/gcc/RS_002f6000-and-PowerPC-Options.html#RS_002f6000-and-PowerPC-Options
|
|
|
|
|
|
|
|
| |
This doesn’t appear to ever have worked. binutils doesn’t seem to
support the alpha-elf target at all. It doesn’t make sense to keep
this around.
https://hydra.nixos.org/build/92403855/nixlog/1/tail
|
|
|
|
|
|
|
| |
This makes us less reliant on the systems/examples.nix. You should be
able to cross compile with just your triple:
$ nix build --arg crossSystem '{ config = "armv6l-unknown-linux-gnueabi"; }' stdenv
|
|
|
|
|
|
|
| |
ppc64le and ppc64 are different targets in the configure script. We
can’t use the same one.
TODO: canonicalize similar ones based on qemu’s configure script.
|
|
|
|
| |
Squashed to fix shell quoting, thanks @Ericson2314
|
| |
|
|\ |
|
| | |
|
| | |
|