Commit graph

4435 commits

Author SHA1 Message Date
Viktor Kronvall b2aa1f9d7a dockerTools: preserve order of images in manifest 2021-04-07 23:20:14 +09:00
Viktor Kronvall dcc9aef015 dockerTools: take a list of images in mergeImages 2021-04-07 22:49:44 +09:00
Viktor Kronvall ecc293ff7a dockerTools: Implement merging of image tarballs
The `docker load` command supports loading tarballs that contain
multiple docker images with their respective image names and tags. This
enables distributing these images as a single file which simplifies the
release of software when an application requires multiple services to
run.

However, pkgs.dockerTools only create tarballs with a single docker
image and there exists is no mechanism in nixpkgs to combine the created
tarballs. This commit implements merging of tarballs in a way that is
compatible with `docker load`.
2021-04-07 22:49:44 +09:00
Robert Hensing 58b21dea78
Merge pull request #116749 from vroad/docker-layered-image-fakeroot
dockerTools.streamLayeredImage: add fakeRootCommands option
2021-04-07 15:02:24 +02:00
vroad 63e7c4186f dockerTools.streamLayeredImage: Add test for fakeRootCommands 2021-04-07 18:11:02 +09:00
Sandro Jäckel 9f78dd4a1c fetchzip: accept urls
Required after 9bbfb26854
2021-04-07 02:41:25 +02:00
Jan Tojnar c04a14edd6 Merge branch 'master' into staging-next 2021-04-06 16:01:14 +02:00
Sandro 8af17b602c
Merge pull request #115936 from matthewmazzanti/bubblewrap-hardcode-readlink
fhs-userenv-bubblewrap: Add store path to readlink
2021-04-05 22:53:13 +02:00
Sandro Jäckel 3453b89f4b
lzma: deprecate alias 2021-04-04 19:49:52 +02:00
github-actions[bot] 60739e07d2
Merge master into staging-next 2021-04-02 12:06:12 +00:00
Doron Behar 785d2c03a0
Merge pull request #116677 from alexarice/agda-test-hello-world 2021-04-02 10:19:00 +00:00
github-actions[bot] 636e58e31b
Merge staging-next into staging 2021-04-02 00:21:46 +00:00
Vladimír Čunát e5ec487840
fetchurl: check that url is a string
Otherwise we (may) get a hard to debug issue in the tarball job,
e.g. see the grandparent commit.
2021-04-01 22:50:22 +02:00
rnhmjoj 61b7cab481
treewide: use perl.withPackages when possible
Since 03eaa48 added perl.withPackages, there is a canonical way to
create a perl interpreter from a list of libraries, for use in script
shebangs or generic build inputs. This method is declarative (what we
are doing is clear), produces short shebangs[1] and needs not to wrap
existing scripts.

Unfortunately there are a few exceptions that I've found:

  1. Scripts that are calling perl with the -T switch. This makes perl
  ignore PERL5LIB, which is what perl.withPackages is using to inform
  the interpreter of the library paths.

  2. Perl packages that depends on libraries in their own path. This
  is not possible because perl.withPackages works at build time. The
  workaround is to add `-I $out/${perl.libPrefix}` to the shebang.

In all other cases I propose to switch to perl.withPackages.

[1]: https://lwn.net/Articles/779997/
2021-03-31 21:35:37 +02:00
github-actions[bot] cb1554f24c
Merge staging-next into staging 2021-03-31 00:12:32 +00:00
github-actions[bot] 4ba71fb819
Merge master into staging-next 2021-03-31 00:12:29 +00:00
Alex Rice 0e162b97d6
agda nixos test: add to passthru for agda + stdlib 2021-03-30 13:54:02 +01:00
Sander van der Burg 44704440ef releaseTools: fix nixBuild function
Without this fix, I can no longer build anything with releaseTools.nixBuild {}. A job typically fails with:

$ nix-build release.nix -A build.basic.x86_64-linux --show-trace
error: while evaluating the attribute 'lib' of the derivation 'libnixxml-0.1pre1234' at /home/sander/teststuff/nixpkgs/pkgs/build-support/release/nix-build.nix:89:5:
cannot coerce a set to a string, at /home/sander/teststuff/nixpkgs/pkgs/build-support/release/nix-build.nix:89:5

This is caused by the fact that `lib' is propagated as a parameter, which is a function. Functions cannot be converted to strings.
2021-03-29 21:24:00 +02:00
github-actions[bot] 219312a10b
Merge staging-next into staging 2021-03-26 12:06:44 +00:00
github-actions[bot] eddd1a74ec
Merge master into staging-next 2021-03-26 12:06:41 +00:00
Louis Blin b3f68289df dockerTools.streamLayeredImage: resolve duplicate env vars
For images running on Kubernetes, there is no guarantee on how duplicate
environment variables in the image config will be handled. This seems
to be different from Docker, where the last environment variable value
is consistently selected.

The current code for `streamLayeredImage` was exploiting that assumption
to easily propagate environment variables from the base image, leaving
duplicates unchecked. It should rather resolve these duplicates to
ensure consistent behavior on Docker and Kubernetes.
2021-03-25 23:29:54 +00:00
github-actions[bot] 0a29e611e1
Merge staging-next into staging 2021-03-24 00:41:13 +00:00
github-actions[bot] 2417360191
Merge master into staging-next 2021-03-24 00:41:10 +00:00
Benjamin Hipple 561cc81ee6
Merge pull request #115857 from lbpdt/feature/docker-tools-layered-base-image
dockerTools.buildLayeredImage: support fromImage
2021-03-23 18:15:34 -04:00
Louis Blin aae8588182 dockerTools.buildLayeredImage: support fromImage
It is now possible to pass a `fromImage` to `buildLayeredImage` and
`streamLayeredImage`, similar to what `buildImage` currently supports.

This will prepend the layers of the given base image to the resulting
image, while ensuring that at most `maxLayers` are used. It will also
ensure that environment variables from the base image are propagated
to the final image.
2021-03-23 14:50:42 +00:00
github-actions[bot] 2c40ff9620
Merge staging-next into staging 2021-03-21 06:17:18 +00:00
github-actions[bot] b0455cafa7
Merge master into staging-next 2021-03-21 06:17:15 +00:00
Sandro 6cecff003a
Merge pull request #112073 from ztzg/x-16304-debbuild-checkinstall 2021-03-21 05:35:45 +01:00
Sandro d6df2c3fab
Merge pull request #111782 from Luflosi/fetchgit-escape-regex
fetchgit: escape dot in regex
2021-03-21 05:34:53 +01:00
Thomas Tuegel 54c7a0f422 cc-wrapper: -nostdlib does not imply -nostdinc++
The check for including the C++ standard library headers was nested inside the
check for linking with the C++ standard library. As a result, the `-nostdlib`
flag incorrectly implied `-nostdinc++`, which made it virtually impossible to
partially link C++ objects.
2021-03-20 09:26:04 +01:00
vroad 057c7a2d58 dockerTools.streamLayeredImage: source $stdenv/setup before running fakeRootCommands 2021-03-19 11:01:10 +09:00
vroad 5199c7e6da
dockerTools.streamLayeredImage: simplify inherit statements
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
2021-03-19 10:56:00 +09:00
vroad b4d92811be dockerTools.streamLayeredImage: add fakeRootCommands option 2021-03-19 10:25:26 +09:00
sternenseemann de78745bdd trivial-builders: rework runCommand' into runCommandWith && expose
runCommandWith receives an attribute set with options which previously
were positional arguments of runCommand' and a buildCommand. This
allows for overriding the used stdenv freely (so stuff like
llvmPackages.stdenv can be used). Additionally the possibility to change
arguments passed to stdenv.mkDerivation is made more explicit via the
derivationArgs argument.
2021-03-18 19:56:40 +01:00
sternenseemann b398d00903 trivial-builders: merge passAsFile with env in runCommand'
Previously it was awkward to use the runCommand-variants with
passAsFile as a double definition of passAsFile would potentially
break runCommand: passAsFile would overwrite the previous definition,
defeating the purpose of setting it in runCommand in the first place.
This is now fixed by concatenating the [ "buildCommand" ] list with
one the one from env, if present.

Adjust buildEnv where passAsFile = null; was passed in some cases,
breaking evaluation since it'd evaluate to [ "buildCommand" ] ++ null.
2021-03-18 19:56:40 +01:00
github-actions[bot] 4915d2cb4c
Merge master into staging-next 2021-03-15 18:16:46 +00:00
github-actions[bot] 903fc48674
Merge master into staging-next 2021-03-12 00:39:51 +00:00
IvarWithoutBones dd9f4e8517 apple-music-electron: 1.5.2 -> 1.5.5 2021-03-12 01:21:33 +01:00
Benjamin Hipple 17a9f368e3
Merge pull request #115793 from lbpdt/feature/docker-tools-layered-image-name-slashes
dockerTools.buildLayeredImage: image names with registry/ prefix
2021-03-11 14:58:26 -05:00
Benjamin Hipple f707104092
Merge pull request #115791 from lbpdt/feature/docker-tools-nix-store-dir
dockerTools.buildLayeredImage: configurable store root
2021-03-11 14:56:39 -05:00
Matthew Mazzanti eb268eabad fhs-userenv-bubblewrap: Add store path to readlink
Commit df4761 added a call to readlink, which fails if it is not in the
user's path when run. Updated the readlink call to pull from the
coreutils store path directly.
2021-03-11 08:50:15 -05:00
github-actions[bot] b4d5951d9e
Merge master into staging-next 2021-03-11 12:21:28 +00:00
Michael Weiss 938453eacd
Merge pull request #102225 from luc65r/fetchsrht
Add fetcher: fetchFromSourcehut
2021-03-11 12:51:13 +01:00
github-actions[bot] 6a3a358b0d
Merge master into staging-next 2021-03-10 18:23:15 +00:00
Louis Blin 419a4fa596 dockerTools.buildLayeredImage: image names with registry/ prefix
When using `buildLayeredImage`, it is not possible to specify an image
name of the form `<registry>/my/image`, although it is a valid name.

This is due to derivations under `buildLayeredImage` using that image
name as their derivation name, but slashes are not permitted in that
context.

A while ago, #13099 fixed that exact same problem in `buildImage` by
using `baseNameOf name` in derivation names instead of `name`. This
change does the same thing for `buildLayeredImage`.
2021-03-10 17:44:24 +00:00
Louis Blin bf56388c92 dockerTools.buildLayeredImage: configurable store root
`stream_layered_image.py` currently assumes that the store root will be
at `/nix/store`, although the user might have configured this
differently. This makes `buildLayeredImage` unusable with stores having
a different root, as they will fail an assertion in the python script.

This change updates that assertion to use `builtins.storeDir` as the
source of truth about where the store lives, instead of assuming
`/nix/store`.
2021-03-10 16:44:53 +00:00
Cyril Cohen 1550a4fe6b
coqPackages.multinomials: 1.5.2 -> 1.5.4 (#115427)
- This is the first packages which uses Dune in order to build and install
  so I had to refactor build-support/coq/default.nix in order to support it.
- I added a new feature: one can now release.v.sha256 empty to try to download
  with a fake sha256, hence failures are reported and one can copy paste the
  sha256 given by the error message.
- I updated the documentation of languages-frameworks/coq.section.md accordingly.
2021-03-10 16:25:32 +01:00
github-actions[bot] 5d13702776
Merge master into staging-next 2021-03-09 12:25:54 +00:00
Chris Roberts 00996b5e03 dockerTools: Do not lowercase image tag in buildImage
Closes #115455
2021-03-09 09:06:04 +00:00
Andrew Childs 86e962a41a cc-wrapper: remove quoting of response file
Fixes build failures with clang:

    clang-7: error: unknown argument: '-fPIC                -target'
    clang-7: error: no such file or directory: '@<(printf %qn        -O2'
    clang-7: error: no such file or directory: 'x86_64-apple-darwin'

Introduced by 60c5cf9cea in #112449
2021-03-09 14:01:34 +09:00
github-actions[bot] 3db2dee35f
Merge master into staging-next 2021-03-09 00:39:09 +00:00
Sandro 0b3115f7e4
Merge pull request #112424 from alyssais/fetchbitbucket
fetchFromBitbucket: remove hack for Mercurial
2021-03-08 21:02:40 +01:00
Jonathan Ringer 042adf08d1 cargo/hooks: allow hooks to be disabled 2021-03-08 19:17:03 +01:00
luc65r 83a0627f33
fetchFromSourcehut: init 2021-03-08 15:51:24 +01:00
github-actions[bot] dcea8212b5
Merge staging-next into staging 2021-03-07 12:20:40 +00:00
Vincent Laporte 60785fe4db ocamlPackages.dune: rename into dune_1 2021-03-07 12:07:14 +01:00
John Ericson 6979a72840
Merge pull request #112449 from angerman/angerman/response-files
Add response file support when compiling with clang
2021-03-06 11:24:32 -05:00
github-actions[bot] fb5c8b556d
Merge staging-next into staging 2021-03-06 06:17:00 +00:00
Sandro Jäckel 03831816d8
writers: format 2021-03-05 18:14:34 +01:00
Daniël de Kok d8a19fb9ef
Merge pull request #115008 from Hoverbear/rust-debug-build-support
rustPlatform.buildRustPackage: support debug builds
2021-03-05 06:58:00 +01:00
Jan Tojnar 6d1958ad2d
Merge branch 'staging-next' into staging 2021-03-04 22:16:45 +01:00
John Ericson 7f76da8f7a
Merge pull request #115118 from obsidiansystems/prebuilt-android-fix-eval
android prebuilt: Fix eval
2021-03-04 13:57:35 -05:00
s1341 aee60bef7a android_prebuilt: Fix eval 2021-03-04 18:17:39 +00:00
Elis Hirwing bc8532b8e6
Merge pull request #115089 from Ma27/php-ext-fix
Revert "php: Add php package versions to extensions/packages pnames"
2021-03-04 18:10:14 +01:00
Robert Hensing f3d006c1d4
Merge pull request #115083 from osener/fix-dockertools-on-darwin
dockerTools: fix build on Darwin
2021-03-04 16:50:26 +01:00
Ozan Sener 78f322f2d0 dockerTools: fix build on Darwin
Fixes #110665

Introduced by #109420
2021-03-04 16:17:48 +01:00
Ana Hobden a84cb88c47 rustPlatform.buildRustPackage: support debug builds
Signed-off-by: Ana Hobden <operator@hoverbear.org>
2021-03-04 07:16:29 -08:00
Robert Hensing 89aa0173ca
Merge pull request #115075 from siraben/stdenv-cleanup
treewide: remove stdenv where not needed
2021-03-04 15:51:04 +01:00
Maximilian Bosch 8c26eaa144
Revert "php: Add php package versions to extensions/packages pnames"
This reverts commit a081dcf86d.
2021-03-04 15:26:36 +01:00
Ben Siraphob 98f26993f2 treewide: remove stdenv where not needed 2021-03-04 19:54:50 +07:00
taku0 61706fc470
Merge pull request #114853 from lourkeur/fix-string-escaping
nixos/kresd, nixos/dokuwiki, tests/fpm, build-bazel-package, libcutl: fix string escaping
2021-03-03 19:35:16 +09:00
John Ericson d39fafe409
Merge pull request #114902 from obsidiansystems/fix-tools-withPackages
treewide: Fix various tools wrappers "with packages"
2021-03-02 19:46:10 -05:00
John Ericson 4f6ec19dbc buildEnv: Support nativeBuildInputs too
Since #112276, we should always put `makeWrapper` in
`nativeBuildInputs`. But `buildEnv` was saying put it in `buildInputs`.
That's wrong!

Fix the instructions, and make the right thing possible.
2021-03-02 22:34:54 +00:00
John Ericson 09d0e10e95
Merge pull request #114817 from thefloweringash/darwin-arch
darwin: introduce darwinArch, apply in {cc,bintools}-wrappers
2021-03-02 15:27:15 -05:00
github-actions[bot] e668a36492
Merge staging-next into staging 2021-03-02 12:17:32 +00:00
Max Hausch ebe3ae4d4d
buildRustPackage: Add cargoTestFlags
This makes it possible to pass flags to `cargo test`, which is needed if
a crate is compiled with custom feature flags.
2021-03-02 09:45:26 +01:00
Andrew Childs b26e0bac8d bintools-wrapper: set -arch on darwin 2021-03-02 17:21:08 +09:00
Andrew Childs fc0456bed1 cc-wrapper: set -arch on darwin 2021-03-02 17:21:08 +09:00
Elis Hirwing a081dcf86d
php: Add php package versions to extensions/packages pnames 2021-02-27 21:57:02 +01:00
Maciej Krüger e41249e466
buildFHSUserEnv: symlink /etc/nix
this fixes experimental-features option not being available in fhs
and breaking the flakes feature
2021-02-26 20:13:28 +01:00
Daniël de Kok c50a347cb5 buildRustPackage: use checkType argument
The `checkType` argument of buildRustPackage was not used anymore
since the refactoring of `buildRustPackage` into hooks. This was
an oversight that is fixed by this change.

The check type can also be passed directly to cargoCheckHook using the
`cargoCheckType` environment variable.
2021-02-26 11:57:27 +01:00
Robert Schütz 54757b35c1 Merge branch 'staging-next' into staging 2021-02-26 10:56:17 +01:00
Frederik Rietdijk c456a2512f Merge master into staging-next 2021-02-26 10:25:13 +01:00
Moritz Angermann 60c5cf9cea
Update pkgs/build-support/cc-wrapper/cc-wrapper.sh
Co-authored-by: Matthew Bauer <mjbauer95@gmail.com>
2021-02-26 10:07:27 +08:00
midchildan 7208e57cf6
emacsWithPackages: prevent the UI showing prematurely during startup
This change makes the wrapper script avoid displaying echo area messages
during startup. This helps prevent split second UI glitches early in the
startup process. The messages itself will still be logged and therefore
will not hamper inspection for debugging purposes.
2021-02-25 22:30:40 +09:00
Bernardo Meurer cdcaafc3fe
Merge pull request #114024 from LuigiPiucco/pressure-vessel
steam: fix proton versions with pressure-vessel
2021-02-23 19:20:12 +00:00
Graham Christensen 3ef281c3a2
Merge pull request #113176 from danieldk/cargoDepsName
buildRustPackage: add cargoDepsName attribute
2021-02-23 10:02:45 -05:00
Luigi Sartor Piucco 548d50d695 build-fhs-userenv-bubblewrap:->writeShellScriptBin 2021-02-23 11:47:40 -03:00
Luigi Sartor Piucco 12c2eae2c5 build-fhs-userenv-bubblewrap: add folders comment 2021-02-23 11:44:16 -03:00
André Silva 770cd71936
build-fhs-userenv: fix ssl certificates mount point 2021-02-22 19:54:04 +00:00
Luigi Sartor Piucco baaec29531 fhs-bubblewrap: mount cache on 32 bit glibc too 2021-02-22 14:35:45 -03:00
Luigi Sartor Piucco bdd9027760 fhs-bubblewrap: merge /usr/share from both archs 2021-02-22 14:35:45 -03:00
Benedikt Morbach d5cbb650e1 fhs-userenv-bubblewrap: add ld.so.conf/cache to fhs 2021-02-22 14:35:44 -03:00
Benedikt Morbach df4761d450 fhs-userenv-bubblewrap: Preserve symlinks
Preserve top-level symlinks such as /lib -> /usr/lib.

This allows nested containers such as Steam's new runtime to remount
/usr if they need to and then run unmodified binaries that reference
e.g. /lib/ld-linux-x86-64.so.2

Before, we would mount the fully resolved host directory at /lib and
thus the dynamic loader would always be the one from the host filesystem.
2021-02-22 14:35:44 -03:00
github-actions[bot] 1aed95568f
Merge staging-next into staging 2021-02-21 18:17:25 +00:00
github-actions[bot] 93b17c1b4d
Merge master into staging-next 2021-02-21 18:17:22 +00:00
Léo Gaspard 037936b7a3
Merge pull request #107322 from sternenseemann/fetch-github-leavedotgit
fetchFromGitHub: also use git if deepClone or leaveDotGit is used
2021-02-21 13:28:00 +01:00
Ben Siraphob 127733211e
treewide: unzip buildInputs to nativeBuildInputs (#112302) 2021-02-20 16:01:53 -05:00
github-actions[bot] 5884dca2b9
Merge master into staging-next 2021-02-20 12:19:39 +00:00
Ivan Babrou c62662c962 garble: fix aarch64 build 2021-02-20 21:13:46 +10:00