Commit graph

4702 commits

Author SHA1 Message Date
happysalada
ef76a5e009 autoreconf.sh: define preConfigurePhases before assigning 2021-07-06 09:27:18 +09:00
happysalada
8ebfafbce8 shellcheck: shell=bash 2021-07-06 09:27:18 +09:00
happysalada
db37d37d84 reproducible-builds.sh: fatal: += not allowed in assignment
take in account undefined case
assign and export in separate step
https://github.com/koalaman/shellcheck/wiki/SC2155
2021-07-06 09:27:18 +09:00
Raphael Megzari
db78412f25 prefer [[ over [ for multiple conditionals
Co-authored-by: Jonas Chevalier <zimbatm@zimbatm.com>
2021-07-06 09:27:18 +09:00
happysalada
2bf424d6cc autopatchelf.sh: add link about grep -q 2021-07-06 09:27:18 +09:00
happysalada
a7d7e40c00 move-docs.sh: quote where semanticaly valid 2021-07-06 09:27:18 +09:00
happysalada
4e3d905b0d move-docs.sh: shellcheck 2166
https://github.com/koalaman/shellcheck/wiki/SC2166
2021-07-06 09:27:18 +09:00
Sandro
1619046572
Merge pull request #126894 from Stunkymonkey/pname&version 2021-07-05 18:52:04 +02:00
github-actions[bot]
6cead635ad
Merge master into staging-next 2021-07-03 12:01:23 +00:00
Luke Granger-Brown
48c23a086b dockerTools.pullImage: force disable skopeo's progress bar
skopeo will disable the progress bar if it detects that stdout isn't a
TTY - in order to make it think that stdout _isn't_ a TTY and therefore
avoid it printing a lot of "…" on separate lines, we pipe the output
through cat.

This changes the output from:

…
…
…
…
…
…

to the eminently more useful and less spammy:

Getting image source signatures
Copying blob sha256:[snip]
Copying blob sha256:[snip]
Copying blob sha256:[snip]
Copying config sha256:[snip]
Writing manifest to image destination
Storing signatures
2021-07-03 01:40:38 +00:00
Anders Kaseorg
b5160bba86 appimageTools.wrapAppImage: Fix passing arguments to wrapped executable
appimage-exec.sh parses its arguments with getopts, so we need to
delimit arguments intended for the wrapped executable with ‘--’, in
case some of them begin with ‘-’.

Without this fix, a wrapped application like Zulip Desktop can’t be
opened the normal way using the .desktop file, which includes
‘Exec=zulip --no-sandbox %U’ (as per the electron-builder default):

$ gtk-launch zulip.desktop
/usr/bin/appimage-exec.sh: illegal option -- -
Usage: appimage-run [appimage-run options] <AppImage> [AppImage options]
[…]

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2021-07-01 17:16:10 -07:00
Peter Jones
46d4bb5d01
elpaBuild: Delay src evaluation so it can be overridden
This change allows ELPA packages to have their src attribute updated
by overrideAttrs.  Without this change the installPhase references the
original src attribute and overriding is not possible.
2021-06-30 07:54:11 -07:00
Felix Buehler
6f04cd0e69 application/development: /s/name/pname&version/ 2021-06-30 09:55:22 +02:00
github-actions[bot]
dcfd9788a1
Merge master into staging-next 2021-06-29 00:10:52 +00:00
Yureka
7f07b70d08 Revert "writers: Allow string paths"
This reverts commit 33ffb05d39.
2021-06-28 22:40:40 +02:00
github-actions[bot]
1016b5a6ba
Merge staging-next into staging 2021-06-27 00:10:43 +00:00
Elis Hirwing
94d07b7492
php: Run nixpkgs-fmt on all php related files 2021-06-26 20:07:56 +02:00
github-actions[bot]
947012b992
Merge staging-next into staging 2021-06-26 00:09:11 +00:00
Robert Schütz
d6234c2165 Merge branch 'master' into staging-next 2021-06-26 00:33:58 +02:00
Silvan Mosberger
33ffb05d39 writers: Allow string paths
Before this change, it was not possible to use string paths,
because then the `types.str.check` would succeed. So the only paths that
could be used were ones from the local filesystem via e.g.
`./some/path`.

We can easily fix this by using `types.path.check` instead to determine
whether we are dealing with a path.

This notably also allows using Nix-fetched sources as the content, e.g.
`fetchFromGitHub { ... } + "/some/file"`
2021-06-25 14:39:59 +02:00
Matthew Bauer
8bc10fbc56 Add gcc for emacs wrapper so native-comp works
On macos, we don’t have a gcc executable by default, which is required
for some reason when compiling site-start.
2021-06-23 23:02:11 -05:00
deliciouslytyped
a71e906e3a trivial-builders: refactor writeTextFile to be overridable
This fixes #126344, specifically with the goal of enabling overriding the
checkPhase argument. See `design notes` at the end for details.

This allows among other things, enabling bash extension for the `checkPhase`.
Previously using such bash extensions was prohibited by the `writeShellScript`
code because there was no way to enable the extension in the checker.

As an example:

```nix
(writeShellScript "foo" ''
  shopt -s extglob
  echo @(foo|bar)
'').overrideAttrs (old: {
  checkPhase = ''
    # use subshell to preserve outer environment
    (
      export BASHOPTS
      shopt -s extglob
      ${old.checkPhase}
    )
  '';
})
```

This commit also adds tests for this feature to `pkgs/tests/default.nix`,
under `trivial-overriding`. The test code is located at
`pkgs/build-support/trivial-builders/test-overriding.nix`.

Design notes:
-------------

Per discussion with @sternenseemann, the original approach of just wrapping
`writeTextFile` in `makeOverridable` had the issue that combined with `callPackage`
in the following form, would shadow the `.override` attribute of the `writeTextFile`:

```nix
with import <nixpkgs>;
callPackage ({writeShellScript}: writeShellScript "foo" "echo foo")
```

A better approach can be seen in this commit, where `checkPhase` is moved
from an argument of `writeTextFile`, which is substituted into `buildCommand`,
into an `mkDerivation` argument, which is substituted from the environment
and `eval`-ed. (see the source)

This way we can simple use `.overideAttrs` as usual, and this also makes
`checkPhase` a bit more conformant to `mkDerivation` naming, with respect to
phases generally being overridable attrs.

Co-authored-by: sterni <sternenseemann@systemli.org>
Co-authored-by: Naïm Favier <n@monade.li>
2021-06-18 01:39:59 +02:00
Jan Tojnar
e3dfa79441
Merge branch 'staging-next' into staging
Regenerated pkgs/servers/x11/xorg/default.nix to resolve the conflict.
2021-06-16 19:59:05 +02:00
github-actions[bot]
b08ae54dd9
Merge master into staging-next 2021-06-16 12:04:47 +00:00
Alyssa Ross
508aede4bd skawarePackages.buildPackage: add me as maintainer 2021-06-16 07:59:51 +00:00
github-actions[bot]
9a860729b2
Merge staging-next into staging 2021-06-14 00:08:51 +00:00
github-actions[bot]
13f31f60bf
Merge master into staging-next 2021-06-14 00:08:48 +00:00
Robert Hensing
ab11d2114e
Merge pull request #126680 from roberth/empty
emptyFile, emptyDirectory: init
2021-06-13 20:45:21 +02:00
Robert Hensing
c38c5dba10 tests.trivial: Add emptyFile, emptyDirectory to samples 2021-06-12 17:29:27 +02:00
Robert Hensing
047fe2fe23 emptyFile, emptyDirectory: init 2021-06-12 17:28:00 +02:00
github-actions[bot]
8e50248719
Merge staging-next into staging 2021-06-11 12:04:41 +00:00
github-actions[bot]
212846c302
Merge master into staging-next 2021-06-11 12:04:38 +00:00
superherointj
15807923f9 build-support.ocaml.dune: handle minimalOCamlVersion typo 2021-06-11 11:08:12 +02:00
Alyssa Ross
926765c5e3
Merge remote-tracking branch 'nixpkgs/staging-next' into staging
Conflicts:
	pkgs/servers/http/apache-httpd/2.4.nix
2021-06-11 02:05:00 +00:00
github-actions[bot]
dcfc502458
Merge master into staging-next 2021-06-11 00:09:47 +00:00
Théo Zimmermann
489959099f mkCoqDerivation: fix useDune2 2021-06-10 21:52:03 +02:00
Jan Tojnar
ba733d435b
Merge branch 'staging-next' into staging 2021-06-10 14:07:45 +02:00
github-actions[bot]
51dce04dde
Merge master into staging-next 2021-06-10 12:05:05 +00:00
Robert Hensing
76f53eef48
Merge pull request #125223 from hercules-ci/fix-dockerTools-example-fetch-sha
nixosTests.docker-tools: Fix nixFromDockerHub example sha
2021-06-10 10:10:18 +02:00
github-actions[bot]
da8d931c82
Merge master into staging-next 2021-06-10 06:07:24 +00:00
AndersonTorres
e9e5f5f84d Change all alsaLib references to alsa-lib 2021-06-10 01:12:49 -03:00
github-actions[bot]
e40e33d9d8
Merge staging-next into staging 2021-06-08 18:16:30 +00:00
github-actions[bot]
e8f8906d68
Merge master into staging-next 2021-06-08 18:16:27 +00:00
sternenseemann
3bc8e5cd23 tests.writers: use dashes instead of underscores in drv names
This is more in line with standard derivation name policy in nixpkgs.
2021-06-08 14:06:41 +02:00
sternenseemann
f46a1e353a tests.writers: give all test derivations unique names
This makes it easier to debug test failures since the derivation name
will give an indication which writer it belongs to.
2021-06-08 14:06:41 +02:00
github-actions[bot]
59ab4de3e0
Merge staging-next into staging 2021-06-08 00:19:01 +00:00
github-actions[bot]
45dbaf4c3d
Merge master into staging-next 2021-06-08 00:18:58 +00:00
Luke Granger-Brown
840f6883fc
Merge pull request #126034 from lukegb/bazel-build-configured
Switch buildBazelPackage fetchConfigured on by default
2021-06-07 23:59:33 +01:00
github-actions[bot]
5b7fbb07b8
Merge staging-next into staging 2021-06-07 18:48:37 +00:00
github-actions[bot]
1593cddce5
Merge master into staging-next 2021-06-07 18:48:34 +00:00
Alyssa Ross
1dcba17714
wrapBintoolsWith: fix final stage NetBSD
Fixes "bintools" on NetBSD -- without this only the version in stdenv
would work, not the one from the final stage.

Andi tried to warn me about this[1].  Andi, I'm sorry for doubting you.

[1]: https://github.com/NixOS/nixpkgs/pull/124499#discussion_r641949801
2021-06-07 11:49:31 +00:00
Luke Granger-Brown
cfd38a4006 buildBazelPackage: set fetchConfigured default to true 2021-06-07 02:04:01 +00:00
Luke Granger-Brown
bc260c31f1 buildBazelPackage: don't fail if the marker file doesn't exist
This was the intent of my previous change, but it didn't quite work
because the pipeline still exits false even if the file doesn't exist.
Oops.
2021-06-06 21:18:56 +00:00
github-actions[bot]
0397e518b7
Merge staging-next into staging 2021-06-05 18:30:31 +00:00
github-actions[bot]
d9d6f71e43
Merge master into staging-next 2021-06-05 18:30:28 +00:00
Jörg Thalheim
8b5175012b
Merge pull request #125804 from Mic92/build-fhs-userenv
buildFhsUserenv: don't leak mounts to other processes
2021-06-05 18:03:11 +02:00
Jörg Thalheim
43908f4c1d
buildFhsUserenv: don't leak mounts to other processes
If run as root we were leaking mounts to the parent namespace,
which lead to an error when removing the temporary mountroot.
To fix this we remount the whole tree as private as soon as we created
the new mountenamespace.
2021-06-05 16:47:44 +02:00
Antoine Fontaine
c4b3aa6260 build-support/make-desktopitem: add some missing fields 2021-06-04 17:48:46 +02:00
github-actions[bot]
cf75c491be
Merge staging-next into staging 2021-06-02 20:25:08 +00:00
github-actions[bot]
825cffa5ae
Merge master into staging-next 2021-06-02 20:25:05 +00:00
Robert Hensing
1834bc8711
Merge pull request #125216 from hercules-ci/follow-up-115491
dockerTools: Fix passthru image tag
2021-06-02 16:58:49 +02:00
github-actions[bot]
ffe6577d05
Merge staging-next into staging 2021-06-01 20:30:47 +00:00
github-actions[bot]
42b70ad7f1
Merge master into staging-next 2021-06-01 20:30:45 +00:00
Sandro
bc64755cfa
Merge pull request #124603 from mjsir911/msirabella/peclCheck
php.buildPecl: Add checkPhase
2021-06-01 16:34:42 +02:00
Robert Hensing
d155b8c438 nixosTests.docker-tools: Fix nixFromDockerHub example sha
For https://github.com/NixOS/nixpkgs/pull/125211 I tried to test
the fetcher with

    nix-build -A dockerTools.examples.nixFromDockerHub --option substitute false

But it failed. I haven't figured out the cause, but the outputs
match, so it's probably the hashing method (flat/recursive) that
changed at some point. (The names did match.)
2021-06-01 15:13:03 +02:00
Robert Hensing
7f6a395070
Merge pull request #125211 from edwtjo/docker-fetch-wotls
build-support/docker: pass tlsVerify to support http registries
2021-06-01 15:07:48 +02:00
Robert Hensing
ff55c41fac dockerTools: Fix passthru image tag
It should match the actual image tag.
This fixes the problem introduced in 00996b5e03
https://github.com/NixOS/nixpkgs/pull/115491#pullrequestreview-672789901
2021-06-01 14:42:21 +02:00
Edward Tjörnhammar
ab4649e9d1
build-support/docker: pass tlsVerify to support http registries 2021-06-01 14:34:24 +02:00
github-actions[bot]
abef57f931
Merge staging-next into staging 2021-05-31 19:44:15 +00:00
github-actions[bot]
7f14676873
Merge master into staging-next 2021-05-31 19:44:13 +00:00
Maciej Krüger
ef555f6a0b
Merge pull request #123426 from mattchrist/brscan5 2021-05-31 17:52:16 +02:00
Alyssa Ross
35a0e15ff6 bintools: fix dynamic linker for NetBSD cross
This will fail with an assertion error on native NetBSD, but it
wouldn't have worked anyway.  We can fix that later.
2021-05-31 14:59:14 +00:00
John Ericson
603f80066e bintools-wrapper: Add sharedLibraryLoader parameter
This is used instead of `libc_lib` in case the shared library loader /
"interpreter" is not provided by the libc derivation.
2021-05-31 14:59:14 +00:00
github-actions[bot]
6a8c64f062
Merge staging-next into staging 2021-05-31 12:54:46 +00:00
github-actions[bot]
5bf27cf89e
Merge master into staging-next 2021-05-31 12:54:42 +00:00
Sandro
03fa8708ec
Merge pull request #124544 from Mic92/vmtools 2021-05-31 11:54:16 +02:00
github-actions[bot]
5c859b2875
Merge staging-next into staging 2021-05-28 12:48:43 +00:00
github-actions[bot]
f2a2e8f5e9
Merge master into staging-next 2021-05-28 12:48:40 +00:00
lsix
7731f618b7
Merge pull request #124299 from dotlambda/qmapshack-1.16.0
GIS: random bumps
2021-05-28 13:46:44 +01:00
Daniël de Kok
1da0b1dbc9
Merge pull request #122158 from danieldk/import-cargo-lock
rustPlatform.buildRustPackage: support direct use of Cargo.lock
2021-05-28 12:07:25 +02:00
github-actions[bot]
2a3a7f2e86
Merge staging-next into staging 2021-05-28 07:06:01 +00:00
github-actions[bot]
da374ab551
Merge master into staging-next 2021-05-28 07:05:58 +00:00
Daniël de Kok
d3769e43c3 rustPlatform.importCargoLock: add test cases for importCargoLock 2021-05-28 08:01:28 +02:00
Daniël de Kok
b3969f3ad7 rustPlatform.buildRustPackage: support direct use of Cargo.lock
This change introduces the cargoLock argument to buildRustPackage,
which can be used in place of cargo{Sha256,Hash} or cargoVendorDir. It
uses the importCargoLock function to build the vendor
directory. Differences compared to cargo{Sha256,Hash}:

- Requires a Cargo.lock file.
- Does not require a Cargo hash.
- Retrieves all dependencies as fixed-output derivations.

This makes buildRustPackage much easier to use as part of a Rust
project, since it does not require updating cargo{Sha256,Hash} for
every change to the lock file.
2021-05-28 08:01:28 +02:00
Daniël de Kok
2f46d77e28 rustPlatform.importCargoLock: init
This function can be used to create an output path that is a cargo
vendor directory. In contrast to e.g. fetchCargoTarball all the
dependent crates are fetched using fixed-output derivations. The
hashes for the fixed-output derivations are gathered from the
Cargo.lock file.

Usage is very simple, e.g.:

importCargoLock {
  lockFile = ./Cargo.lock;
}

would use the lockfile from the current directory.

The implementation of this function is based on Eelco Dolstra's
import-cargo:

https://github.com/edolstra/import-cargo/blob/master/flake.nix

Compared to upstream:

- We use fetchgit in place of builtins.fetchGit.
- Sync to current cargo vendoring.
2021-05-28 08:01:25 +02:00
Marco Sirabella
3a66432f26
php.buildPecl: Add checkPhase
Also update phpPackages' to use NO_INTERACTION
2021-05-27 12:19:14 -04:00
Robert Schütz
f96cff58df fetchFromGitea: init 2021-05-27 09:35:56 +02:00
Jörg Thalheim
eb0034927d
vmTools: update current maintained debian versions
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
2021-05-27 07:33:11 +02:00
Jörg Thalheim
e71c4f4628
vmTools: update current lts versions of ubuntu 2021-05-26 23:12:26 +02:00
Robert Hensing
5259d66b74 dockerTools: Allow omitting all store paths
Adds includeStorePaths, allowing the omission of the store paths.
You generally want to leave it on, but tooling may disable this
to insert the store paths more efficiently via other means, such
as bind mounting the host store.
2021-05-26 15:11:42 +02:00
Robert Hensing
69de7cc12a dockerTools: Format 2021-05-26 15:11:42 +02:00
github-actions[bot]
82cf111f8d
Merge staging-next into staging 2021-05-25 18:43:26 +00:00
github-actions[bot]
a673990e6c
Merge master into staging-next 2021-05-25 18:43:22 +00:00
Daniël de Kok
7eddab91f5
Merge pull request #123867 from danieldk/maturin-0.10.5
maturin: 0.10.4 -> 0.10.6
2021-05-25 16:01:47 +02:00
Jörg Thalheim
5551a78578
Merge pull request #123989 from Mic92/static-pie
glibc: allow to build position-independent static executable
2021-05-25 06:32:25 +01:00
github-actions[bot]
0615bb674f
Merge master into staging-next 2021-05-25 00:59:01 +00:00
Léo Gaspard
b6933f88a5
fetchurl: add testpypi mirror (#123146)
This should make it easier to run nixpkgs-based tests from versions that
are still only on test-pypi, and should not cost anything significant.
2021-05-24 22:24:30 +02:00
Jörg Thalheim
602b5f8747
Update pkgs/build-support/bintools-wrapper/ld-wrapper.sh
Co-authored-by: John Ericson <git@JohnEricson.me>
2021-05-24 15:44:01 +01:00
Jörg Thalheim
166948d479 cc-wrapper: don't set rpath on static-pie executables 2021-05-23 17:38:17 +00:00
Jonathan Ringer
b9b9cdb87c
Merge remote-tracking branch 'origin/staging' into staging-next 2021-05-22 19:23:14 -07:00
Jonathan Ringer
11a9ac00fc
Merge remote-tracking branch 'origin/master' into staging-next
Conflicts:
 pkgs/tools/networking/xh/default.nix
2021-05-22 18:19:10 -07:00
Maximilian Bosch
ef99783505
Merge pull request #122248 from aszlig/hocker-fetchdocker-eval-error
Fix fetchdocker call signature
2021-05-22 23:06:25 +02:00
Matt Christ
a9b7300f6f brscan5: init at 1.2.6-0 2021-05-21 12:59:30 -05:00
Daniël de Kok
11307c1d47 maturinBuildHook: add rustc to deps
maturin 0.10.5 uses rustc -vV to find the host:

e886c85f5a

We now need to make rustc visible to the hook for maturin to work
properly.
2021-05-21 07:51:27 +02:00
github-actions[bot]
9c9882ecd9
Merge staging-next into staging 2021-05-19 18:34:13 +00:00
Jonathan Ringer
c1f8a15dac
Merge remote-tracking branch 'origin/master' into staging-next
Conflicts:
  nixos/doc/manual/release-notes/rl-2105.xml
  pkgs/tools/security/sequoia/default.nix
2021-05-19 10:39:54 -07:00
Robert Hensing
5bbdc24b2a
Merge pull request #123597 from hercules-ci/issue-123572
tests.trivial: Avoid evaluation and ${pkgs.path} dep
2021-05-19 11:57:32 +02:00
Robert Hensing
14f54a8b3c tests.trivial: Add meta 2021-05-19 11:41:45 +02:00
talyz
27f8f6956a
replace-secret: Init
Add a small utility script which securely replaces secrets in
files. Doing this with `sed`, `replace-literal` or similar utilities
leaks the secrets through the spawned process' `/proc/<pid>/cmdline` file.
2021-05-19 09:32:00 +02:00
Robert Hensing
35406647fd tests.trivial: Avoid evaluation and ${pkgs.path} dep
> There is an issue in the test added by #123111.
> [it] introduces a dependency on the contents of nixpkgs,
> making every change evaluate with a different hash.
2021-05-19 01:06:09 +02:00
github-actions[bot]
99a3061e9f
Merge staging-next into staging 2021-05-18 18:36:38 +00:00
sternenseemann
b11d65c850 pkg-config-wrapper: mangle PKG_CONFIG_PATH{,_FOR_BUILD} correctly
Previously, mangleVarList would be used which would concatenate the
variables using a space as a separator. Paths are however separated by
`:` in PKG_CONFIG_PATH leading to entries being broken.

This is fixed by introducing mangleVarListGeneric which allows us to
specify the desired separator.

Reproducer for the issue prior to this change:

    $ nix-shell -A pkgsLLVM.wayland
    [nix-shell] $ pkg-config --libs expat
    Package expat was not found in the pkg-config search path.
    Perhaps you should add the directory containing `expat.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'expat' found
    $ printf 'Host: %s\nBuild: %s' $PKG_CONFIG_PATH $PKG_CONFIG_PATH_FOR_BUILD
    Host: /nix/store/5h308a4ab8w7prcp8iflh5pnl78mayi2-expat-2.2.10-x86_64-unknown-linux-gnu-dev/lib/pkgconfig:/nix/store/z3y9ska2h4l1map25m195iq577g7g3gz-libxml2-x86_64-unknown-linux-gnu-2.9.12-dev/lib/pkgconfig:/nix/store/lbz5m1s0r7zn0cxvl21czfspli6ribzb-zlib-1.2.11-x86_64-unknown-linux-gnu-dev/lib/pkgconfig:/nix/store/rfhvp8r8n3ygpzh8j0l34lk8hwwi3z0h-libffi-3.3-x86_64-unknown-linux-gnu-dev/lib/pkgconfig
    Build: /nix/store/dw11ywy7qwfz53qisz0dggbgix88jah2-wayland-1.19.0-bin/lib/pkgconfig

strace reveals the issue:

    stat("/nix/store/dw11ywy7qwfz53qisz0dggbgix88jah2-wayland-1.19.0-bin/lib/pkgconfig /nix/store/5h308a4ab8w7prcp8iflh5pnl78mayi2-expat-2.2.10-x86_64-unknown-linux-gnu-dev/lib/pkgconfig/expat-uninstalled.pc", 0x7fff49829fa0) = -1 ENOENT (No such file or directory)

In the pkg-config wrapper $PKG_CONFIG_PATH_FOR_BUILD and
$PKG_CONFIG_PATH are concatenated with a space which leads to two paths
being messed up. This issue likely only affects native cross
compilation.
2021-05-18 00:13:27 +02:00
Jonathan Ringer
c227fb4b17
Merge remote-tracking branch 'origin/master' into staging-next
Conflicts:
	pkgs/development/tools/rust/cargo-cache/default.nix
	pkgs/development/tools/rust/cargo-embed/default.nix
	pkgs/development/tools/rust/cargo-flash/default.nix
	pkgs/servers/nosql/influxdb2/default.nix
2021-05-17 07:01:38 -07:00
Robert Hensing
ea0c94f50d
Merge pull request #123111 from hercules-ci/writeDirectReferencesToFile
writeDirectReferencesToFile and maintenance
2021-05-17 15:44:10 +02:00
Andrew Childs
79e34294bd nukeReferences: fix code signatures on aarch64-darwin 2021-05-17 00:27:03 +09:00
Andrew Childs
f067102afe removeReferencesTo: fix code signatures on aarch64-darwin 2021-05-17 00:27:03 +09:00
Andrew Childs
772b66531a darwin: wrap strip and install_name_tool to codesign modified files
Co-authored-by: Moritz Angermann <moritz.angermann@gmail.com>
2021-05-17 00:27:02 +09:00
Andrew Childs
c696fcdacb fixDarwinDylibNames: set name of install_name_tool 2021-05-17 00:27:01 +09:00
Andrew Childs
15637fe621 bintools-wrapper: support post linker hooks 2021-05-17 00:27:01 +09:00
Robert Hensing
ed4523186e writeReferencesToFile: docs and tests 2021-05-15 17:04:25 +02:00
Robert Hensing
cc60f81e69 writeDirectReferencesToFile: init 2021-05-15 17:04:25 +02:00
John Ericson
18c38f8aee treewide: All the linker to be chosen independently
This will begin the process of breaking up the `useLLVM` monolith. That
is good in general, but I hope will be good for NetBSD and Darwin in
particular.

Co-authored-by: sterni <sternenseemann@systemli.org>
2021-05-14 21:29:51 +00:00
Jan Tojnar
ac6a4f7cf5
Merge branch 'staging-next' into staging 2021-05-14 01:40:09 +02:00
github-actions[bot]
39e3f7c2cc
Merge master into staging-next 2021-05-13 18:32:50 +00:00
Jonas Chevalier
c6b62f2381
mkShell: introduce packages argument (#122180)
The distinction between the inputs doesn't really make sense in the
mkShell context.  Technically speaking, we should be using the
nativeBuildInputs most of the time.

So in order to make this function more beginner-friendly, add "packages"
as an attribute, that maps to nativeBuildInputs.

This commit also updates all the uses in nixpkgs.
2021-05-13 19:17:29 +02:00
John Ericson
912c8262b4
Merge pull request #117591 from s1341/android_non_prebuilt
treewide: Support aarch64-android using minimal prebuilt components
2021-05-11 12:49:53 -04:00
s1341
1e1d29c2af treewide: Support aarch64-android using minimal prebuilt components
This PR adds a new aarch64 android toolchain, which leverages the
existing crossSystem infrastructure and LLVM builders to generate a
working toolchain with minimal prebuilt components.

The only thing that is prebuilt is the bionic libc. This is because it
is practically impossible to compile bionic outside of an AOSP tree. I
tried and failed, braver souls may prevail. For now I just grab the
relevant binaries from https://android.googlesource.com/.

I also grab the msm kernel sources from there to generate headers. I've
included a minor patch to the existing kernel-headers derivation in
order to expose an internal function.

Everything else, from binutils up, is using stock code. Many thanks to
@Ericson2314 for his help on this, and for building such a powerful
system in the first place!

One motivation for this is to be able to build a toolchain which will
work on an aarch64 linux machine. To my knowledge, there is no existing
toolchain for an aarch64-linux builder and an aarch64-android target.
2021-05-11 15:39:08 +00:00
Vladimír Čunát
8eabe2ecc5
Merge #115235: gcc: native aarch64-darwin support 2021-05-11 12:12:04 +02:00
Ivan Babrou
4aa95e3312 gcc: native aarch64-darwin support 2021-05-10 19:07:30 -07:00
David Arnold
14e4f9abd6
fix: fetchdocker call signature 2021-05-08 23:57:32 +02:00
Jan Tojnar
dd78ce1c53
Merge branch 'staging-next' into staging 2021-05-08 20:59:05 +02:00
Pavol Rusnak
252bf94a74 rust: 1.51.0 -> 1.52.0 2021-05-08 11:42:10 -07:00
Martin Weinelt
9651084620 Merge remote-tracking branch 'origin/master' into staging-next 2021-05-08 14:43:43 +02:00
Jan Tojnar
468cb5980b gnome: rename from gnome3
Since GNOME version is now 40, it no longer makes sense to use the old attribute name.
2021-05-08 09:47:42 +02:00
github-actions[bot]
b4416b52c5
Merge master into staging-next 2021-05-08 00:46:50 +00:00
Bjørn Forsman
2e8f6e0d93 fetchgit: document --fetch-lfs flag
Fixes: 74128561 ("fetchgit: add lfs support")
2021-05-07 15:38:54 -07:00
github-actions[bot]
12193913a1
Merge staging-next into staging 2021-05-07 12:23:21 +00:00
Robert Hensing
aaec26af39
Merge pull request #121896 from raboof/extract-version-test-to-utility
test-utilities: version test
2021-05-07 11:56:01 +02:00
Arnout Engelen
b68130fd2c
test-utilities: version test
Extract 'version test' to a reusable test utility as discussed in
https://github.com/NixOS/nixpkgs/pull/119636#issuecomment-826137021 and
2021-05-07 09:53:35 +02:00
Mauricio Collares
67bbabc0a4 emacs: adapt to renamed native-comp variables 2021-05-06 16:47:21 -03:00
John Ericson
7b413bfff9
Merge pull request #121527 from veprbl/pr/nocxx_for_c
cc-wrapper: fix regression for the C compiler wrapper
2021-05-03 10:17:18 -04:00
github-actions[bot]
afe3fd192f
Merge staging-next into staging 2021-05-03 00:53:51 +00:00
Jonathan Ringer
73a0b6c826 buildFHSUserEnvBubblewrap: add dieWithParent option, and /etc/nix
Allows for processes which fork to not be immediately
killed when the parent process dies.
2021-05-02 13:38:52 -07:00
Dmitry Kalinkin
11b744b59c
cc-wrapper.sh: make -nostdlib disable the standard C++ library, but not its includes
Should be the correct fix for #111970
2021-05-02 14:07:00 -04:00
Dmitry Kalinkin
d9bad0eae6
cc-wrapper.sh: rename variables cpp -> cxx
CPP is the C PreProcessor
CXX is C++
2021-05-02 14:03:51 -04:00
Dmitry Kalinkin
96bbe339d4
Revert "cc-wrapper: -nostdlib does not imply -nostdinc++"
This made C++ standard headers passed to be passed when C compiler is
executed, which is not a correct fix.

This reverts commit 54c7a0f422.
2021-05-02 14:00:37 -04:00
Andrew Childs
7869d16545 llvmPackages: Multuple outputs for everythting
Also begin to start work on cross compilation, though that will have to
be finished later.

The patches are based on the first version of
https://reviews.llvm.org/D99484. It's very annoying to do the
back-porting but the review has uncovered nothing super major so I'm
fine sticking with what I've got.

Beyond making the outputs work, I also strove to re-sync the packages,
as they have been drifting pointlessly apart for some time.

----

Other misc notes, highly incomplete

- lvm-config-native and llvm-config are put in `dev` because they are
  tools just for build time.

- Clang no longer has an lld dep. That was introduced in
  db29857eb3, but if clang needs help
  finding lld when it is used we should just pass it flags / put in the
  resource dir. Providing it at build time increases critical path
  length for no good reason.

----

A note on `nativeCC`:

`stdenv` takes tools from the previous stage, so:

1. `pkgsBuildBuild`: `(?1, x, x)`
2. `pkgsBuildBuild.stdenv.cc`: `(?0, ?1, x)`

while:

1. `pkgsBuildBuild`: `(?1, x, x)`
2. `pkgsBuildBuild.targetPackages`: `(x, x, ?2)`
3. `pkgsBuildBuild.targetPackages.stdenv.cc`: `(?1, x, x)`
2021-04-30 05:41:00 +00:00
github-actions[bot]
6ef7c23763
Merge master into staging-next 2021-04-19 18:11:51 +00:00
Maciej Krüger
da9400512d
Merge pull request #114400 from mkg20001/fhs-etc-nix
buildFHSUserEnv: symlink /etc/nix
2021-04-19 14:34:47 +02:00
github-actions[bot]
d4f421cad9
Merge master into staging-next 2021-04-16 12:06:14 +00:00
Robert Hensing
578acc7a42
Merge pull request #118018 from considerate/master
dockerTools: Implement merging of image tarballs
2021-04-16 09:17:44 +02:00
Luke Granger-Brown
08b22e605b Merge remote-tracking branch 'upstream/staging-next' into down-integrate-staging 2021-04-12 18:49:01 +00:00
John Ericson
82ca81cd62
Merge pull request #111988 from thefloweringash/darwin-platform-versions
Darwin platform versions
2021-04-12 11:40:16 -04:00
Jörg Thalheim
65a40ca547
Merge pull request #102725 from thefloweringash/dockertools-proc
dockerTools: fix absent /proc during runAsRoot
2021-04-12 14:14:24 +01:00
Andrew Childs
6ee72dd5ab bintools-wrapper: ensure roles are set before mangling variables 2021-04-11 10:27:16 +09:00
Andrew Childs
6c4ce7960e bintools-wrapper, cc-wrapper: parameterize darwin min version variable
These variables are the ones that the standard toolchain uses, so we
should use those and not always use MACOSX_DEPLOYMENT_TARGET.

See 236a426c12/cctools/ld64/src/ld/PlatformSupport.cpp (L54-L55)
2021-04-11 09:47:10 +09:00
Andrew Childs
2a9b3b4943 cc-wrapper, bintools-wrapper: support MACOSX_DEPLOYMENT_TARGET with roles
In a typical build environment the toolchain will use the value of the
MACOSX_DEPLOYMENT_TARGET environment variable to determine the version
of macOS to support. When cross compiling there are two distinct
toolchains, but they will look at this single environment variable. To
avoid contamination, we always set the equivalent command line flag
which effectively disables the toolchain's internal handling.

Prior to this change, the MACOSX_DEPLOYMENT_TARGET variable was
ignored, and the toolchains always used the Nix platform
definition (`darwinMinVersion`) unless overridden with command line
arguments.

This change restores support for MACOSX_DEPLOYMENT_TARGET, and adds
nix-specific MACOSX_DEPLOYMENT_TARGET_FOR_BUILD and
MACOSX_DEPLOYMENT_TARGET_FOR_TARGET for cross compilation.
2021-04-11 09:47:10 +09:00
Andrew Childs
8b59d52ca3 cc-wrapper: use legacy -mmacosx-version-min for gcc
See https://github.com/NixOS/nixpkgs/pull/105026#discussion_r587169144
2021-04-11 09:47:10 +09:00
Andrew Childs
362cb82b75 cc-wrapper: specify default -mmacos-version-min
This avoids contamination via MACSOX_DEPLOYMENT_TARGET when cross
compiling.
2021-04-11 09:47:10 +09:00
Andrew Childs
6605fadc68 bintools-wrapper: default platform versions for darwin
Instead of always supplying flags, apply the flags as defaults. Use
clang's native flags instead of lifting the linker flags from binutils
with `-Wl,`.

If a project is using clang to drive linking, make clang do the right
thing with MACOSX_DEPLOYMENT_TARGET. This can be overridden by command
line arguments. This will cause modern clang to pass
`-platform_version 10.12 0.0.0`, since it doesn't know about the SDK
settings. Older versions of clang will pass down `-macos_version_min`
flags with no sdk version.

At the linker layer, apply a default value for anything left
ambiguous. If nothing is specified, pass a full
`-platform_version`. If only `-macos_version_min` is specified, then
lock down the sdk_version explicitly with `-sdk_version`. If a min
version and sdk version is passed, do nothing.
2021-04-11 09:47:09 +09:00
arcnmx
2f1131cff7 cc-wrapper: match useGccForLibs conditional order
This breaks an evaluation cycle between `cc` and `gccForLibs` for cross
builds, fixing an infinite recursion error.
2021-04-10 10:39:07 -07:00
github-actions[bot]
bf6abedefb
Merge master into staging-next 2021-04-08 12:06:16 +00:00
zseri
ff5ff66ef3 build-rust-crate: disable incremental builds 2021-04-08 10:45:56 +02:00
github-actions[bot]
8d1d992273
Merge master into staging-next 2021-04-08 00:17:24 +00:00
Sandro
add1a1cd6b
Merge pull request #118530 from SuperSandro2000/fetchzip-urls 2021-04-07 22:39:37 +02:00
github-actions[bot]
6e4d572602
Merge master into staging-next 2021-04-07 18:14:53 +00:00
Viktor Kronvall
5caed960d3 dockerTools: add merged example images 2021-04-08 00:22:59 +09:00
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