summary refs log tree commit diff
path: root/lib
Commit message (Collapse)AuthorAge
* Merge pull request #66407 from Infinisil/fix-option-renameSilvan Mosberger2019-08-27
|\ | | | | lib/modules: Use options `apply` function even if no values are defined
| * lib/modules: Use options `apply` function even if no values are definedSilvan Mosberger2019-08-10
| | | | | | | | | | | | 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/options: fix path in commentJan Tojnar2019-08-26
| |
* | Merge branch 'master' into flip-map-foreachdanbst2019-08-18
|\ \
| * \ Merge pull request #65728 from Infinisil/types-eithersAaron Andersen2019-08-13
| |\ \ | | |/ | |/| lib/types: Add oneOf, extension of either to a list of types
| | * lib/types: Add oneOf, extension of either to a list of typesSilvan Mosberger2019-08-06
| | |
* | | and one more placedanbst2019-08-05
| | |
* | | Merge branch 'master' into flip-map-foreachDanylo Hlynskyi2019-08-05
|\| |
| * | Merge pull request #65380 from danbst/int-merge-one-optionSilvan Mosberger2019-07-29
| |\ \ | | |/ | |/| lib/types: change merge strategy for `str`, `int`, `float`, `path` and `enum`
| | * lib/types: change merge strategy for `str`, `int`, `float` and `enum`danbst2019-07-25
| | | | | | | | | | | | Change to `mergeEqualOption`.
| * | Add RISC-V embedded crossSystemsJay Kruer2019-07-25
| | |
| * | lib: allow sourceByRegex to be composed after cleanSourceWithBas van Dijk2019-07-19
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `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 ```
* | rename foreach -> forEachdanbst2019-08-05
| |
* | lib: introduce `foreach` = flip mapdanbst2019-07-14
|/ | | | | | | | | | | | | | | | | | | | | | | | | 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)
* make-tarball / lib-tests: reduce duplicationFrederik Rietdijk2019-07-11
| | | | | The misc.nix and systems.nix tests were invoked at three different places. Let's not that.
* Revert "Revert "systems/doubles.nix: add Apple doubles""Matthew Bauer2019-07-10
| | | | | | | | | | 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.
* Revert "systems/doubles.nix: add Apple doubles"Frederik Rietdijk2019-07-10
| | | | | | | | The lib tests need to be fixed as well. This unbreaks the tarball job. This reverts commit 00ba557856d6217121e50ea69c251e9458d9dc08.
* systems/doubles.nix: add Apple doublesMatthew Bauer2019-07-08
| | | | | | These are used in cross-compilation to iOS devices and simulators. Fallout from #60349.
* treewide: remove unused variables (#63177)volth2019-06-16
| | | | | | * treewide: remove unused variables * making ofborg happy
* Merge pull request #62712 from danbst/module-conflict-namingDanylo Hlynskyi2019-06-13
|\ | | | | NixOS module system: improve one of error messages
| * module system: prettify a bit error when unique option defined twicedanbst2019-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | licenses: refer to libpng2 using spdxOrivej Desh2019-06-12
| | | | | | | | https://spdx.org/licenses/libpng-2.0.html
* | licenses: fix LGPL 2.1 full nameOrivej Desh2019-06-06
| |
* | systems: fix lib-testsMatthew Bauer2019-06-04
| | | | | | | | | | These were broken by the added system doubles. This just adds those to the lib-tests.
* | systems: fixup from last commitMatthew Bauer2019-06-04
| | | | | | | | it’s powerpc-none not ppc-none
* | systems: add missing doublesMatthew Bauer2019-06-04
| | | | | | | | | | | | | | | | | | 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
* | Merge pull request #60349 from matthewbauer/fix-60345Matthew Bauer2019-06-04
|\ \ | |/ |/| check-meta: use system tuple in platforms
| * systems: allow passing in string for cross/localSystemMatthew Bauer2019-06-04
| | | | | | | | | | | | 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
| * systems: remove forMetaMatthew Bauer2019-06-04
| | | | | | | | This is unused now.
| * systems: add riscv doubleMatthew Bauer2019-04-30
| | | | | | | | This was never listed in doubles.nix! Not sure why?
| * check-meta: use system tuple in platformsMatthew Bauer2019-04-30
| | | | | | | | Fixes #60345
* | Merge pull request #60406 from JohnAZoidberg/remove-isnullRobin Gloster2019-05-18
|\ \ | | | | | | treewide: Remove usage of isNull
| * | treewide: Remove usage of isNullDaniel Schaefer2019-04-29
| | | | | | | | | | | | isNull "is deprecated; just write e == null instead" says the Nix manual
* | | Adds pkgsCross.gnu32 and pkgsCross.gnu64 platformsLionello Lunesu2019-05-05
| |/ |/|
* | Merge master into staging-nextFrederik Rietdijk2019-04-27
|\|
| * lib.licences: Add CC-BY-NC-3.0Mario Rodas2019-04-24
| |
* | tests/systems: fix testsMatthew Bauer2019-04-25
| |
* | Merge pull request #56555 from matthewbauer/wasmMatthew Bauer2019-04-23
|\ \ | | | | | | Initial WebAssembly/WASI cross-compilation support
| * | wasmtime: init and use for emulationMatthew Bauer2019-04-23
| | | | | | | | | | | | | | | This isn’t really an "emulator" but it’s the closest concept we have right now.
| * | wasm: don’t assume muslMatthew Bauer2019-04-23
| | |
| * | wasm: init cross targetMatthew Bauer2019-04-23
| |/ | | | | | | | | | | | | | | | | 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.
* / cc-wrapper: make machine configuration configurableMatthew Bauer2019-04-20
|/ | | | | | | | | | | | | | | | | | | | | | 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
* release-cross: remove alpha-elf targetMatthew Bauer2019-04-20
| | | | | | | | 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
* kernel-headers: infer ARCH from config tripleMatthew Bauer2019-04-19
| | | | | | | 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
* systems: correct qemu architecturesMatthew Bauer2019-04-19
| | | | | | | 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.
* systems: fix emulator identityMatthew Bauer2019-04-19
| | | | Squashed to fix shell quoting, thanks @Ericson2314
* systems/parse.nix: fixup arm compatibilitiesMatthew Bauer2019-04-19
|
* Merge master into staging-nextFrederik Rietdijk2019-04-18
|\
| * lib.converge: optimiseAlyssa Ross2019-04-17
| |
| * androidndk-pkgs: Remove -mfloat flagKen Micklas2019-04-16
| |