Commit Graph

2882 Commits

Author SHA1 Message Date
Philip Taron
f4cd623ed3
stdenv: bump required Bash version from 4 to 5 (#340765) 2024-09-11 07:32:57 -07:00
Aleksana
cda49c202f
stdenv/freebsd: don't inherit curl from previous stage (#340913) 2024-09-11 09:12:33 +08:00
Audrey Dutcher
5da4fa1dd6 stdenv/freebsd: don't inherit curl from previous stage
This was adding dependencies on the bootstrap files for longer than
necessary.
2024-09-09 19:40:56 -07:00
Ivan Trubach
799d0c8a7d stdenv: bump required Bash version from 4 to 5
Currently stdenv requires Bash 4.x that was released in 2009. This
change bumps the required version to Bash 5.x (2019, 5 years ago).

See https://mywiki.wooledge.org/BashFAQ/061 for more details.

Using a relatively modern Bash version allows us to rely on newer
features (e.g. ${var@a}) and remove workarounds for older quirks (e.g.
https://stackoverflow.com/a/7577209, “old bash empty array problem”).
Note that many setup hooks are using features added after 4.0 version,
e.g. makeWrapper uses ${var@Q} from 4.4, but some even require >5.0,
e.g. cargoBuildHook uses ${var@U} from 5.1.
2024-09-09 15:22:11 +03:00
github-actions[bot]
90a93f92bb
Merge master into staging-next 2024-09-09 12:05:58 +00:00
Audrey Dutcher
423dc16f1a Include libclang-rt in the FreeBSD bootstrap tools 2024-09-08 11:08:07 -07:00
github-actions[bot]
5a5ebe5a1c
Merge master into staging-next 2024-09-07 18:04:01 +00:00
Marcus Ramberg
384f9f8336
perl: 5.38.2 -> 5.40.0
- perl: perl538 -> perl540
- perl: disable parallel building as it fails for 5.40
- perlPackages: perl538Packages -> perl540Packages
- perlCross:  84db4c7 -> 1.6
2024-09-07 19:09:39 +02:00
Jörg Thalheim
54216ceb22 pkgs/stdenv/freebsd: update x86_64-unknown-freebsd bootstrap-files
sha256sum of files to be uploaded:

$ sha256sum /nix/store/ikzxl9ws9yxrl8g8z2kcjwqlq5gfjbhx-build/on-server/*
7fb16ac6da63effd126ecfa452032cee82742663ee8776ea0f66333814f0d9f7  /nix/store/ikzxl9ws9yxrl8g8z2kcjwqlq5gfjbhx-build/on-server/bootstrap-tools.tar.xz
aff88c12a32eab790f8bbaea08ef4917b0a52ea71ca2fcefe8093f1f40c1ff27  /nix/store/ikzxl9ws9yxrl8g8z2kcjwqlq5gfjbhx-build/on-server/unpack.nar.xz

Suggested commands to upload files to 'tarballs.nixos.org':

    $ nix-store --realize /nix/store/ikzxl9ws9yxrl8g8z2kcjwqlq5gfjbhx-build
    $ aws s3 cp --recursive --acl public-read /nix/store/ikzxl9ws9yxrl8g8z2kcjwqlq5gfjbhx-build/on-server/ s3://nixpkgs-tarballs/stdenv/x86_64-unknown-freebsd/6414ef7ca3bf18ec4f9628d09ccc1eb030276ee2
    $ aws s3 cp --recursive s3://nixpkgs-tarballs/stdenv/x86_64-unknown-freebsd/6414ef7ca3bf18ec4f9628d09ccc1eb030276ee2 ./
    $ sha256sum bootstrap-tools.tar.xz unpack.nar.xz
    $ sha256sum /nix/store/ikzxl9ws9yxrl8g8z2kcjwqlq5gfjbhx-build/on-server/*
2024-09-07 09:19:18 +02:00
github-actions[bot]
b6b2ac4f61
Merge master into staging-next 2024-09-07 00:12:59 +00:00
Philip Taron
d89b0969ac
overrideSDK: fix on aarch64-darwin (#340131) 2024-09-06 14:01:44 -07:00
John Ericson
f43cc75868
Clean up cross bootstrapping, take 2 (#321525) 2024-09-06 14:56:54 -04:00
Emily
f69ba1fed5 overrideSDK: fix on aarch64-darwin
I don’t want to talk about it.

Fixes QEMU.
2024-09-06 16:59:17 +01:00
John Ericson
5f134ec6cf Clean up cross bootstrapping
For a long time, we've had `crossLibcStdenv`, `*Cross` libc attributes,
and `*bsdCross` pre-libc package sets. This was always bad because
having "cross" things is "not declarative": the naming doesn't reflect
what packages *need* but rather how we *provide* something. This is
ugly, and creates needless friction between cross and native building.

Now, almost all of these `*Cross` attributes are gone: just these are
kept:

- Glibc's and Musl's are kept, because those packages are widely used
  and I didn't want to risk changing the native builds of those at this
  time.

- generic `libcCross`, `theadsCross`, and friends, because these relate
  to the convolulted GCC bootstrap which still needs to be redone.

The BSD and obscure Linux or freestnanding libcs have conversely all
been made to use a new `stdenvNoLibc`, which is like the old
`crossLibcStdenv` except:

1. It usable for native and cross alike

2. It named according to what it *is* ("a standard environment without
   libc but with a C compiler"), rather than some non-compositional
   jargon ("the stdenv used for building libc when cross compiling",
   yuck).

I should have done this change long ago, but I was stymied because of
"infinite recursions". The problem was that in too many cases we are
overriding `stdenv` to *remove* things we don't need, and this risks
cyles since those more minimal stdenvs are used to build things in the
more maximal stdenvs.

The solution is to pass `stage.nix` `stdenvNoCC`, so we can override to
*build up* rather than *tear down*. For now, the full `stdenv` is also
passed, so I don't need to change the native bootstraps, but I can see
this changing as we make things more uniform and clean those up.

(adapted from commit 51f1ecaa59)
(adapted from commit 1743662e55)
2024-09-06 10:26:56 -04:00
github-actions[bot]
74cdd9c9b1
Merge master into staging-next 2024-09-05 00:13:11 +00:00
Philip Taron
8ed9f95120
stdenv: Allow user to supply their bootstrapFiles set of tools (#317119) 2024-09-04 11:34:37 -07:00
github-actions[bot]
a07f612219
Merge master into staging-next 2024-09-03 00:13:11 +00:00
Azat Bahawi
e8f0b7b782
stdenv: throw when using mold for targeting darwin
Mold does not support linking Mach-O, but still can be used on MacOS to
emit ELF.

Fixes: #338970
2024-09-02 13:59:59 +03:00
w
d7ec977f86 stdenv: Allow user to supply their bootstrapFiles set of tools 2024-08-30 02:31:18 +00:00
github-actions[bot]
4a1df24885
Merge staging-next into staging 2024-08-29 06:05:29 +00:00
github-actions[bot]
b430e34392
Merge master into staging-next 2024-08-29 06:05:05 +00:00
Philip Taron
4758cfe98f
stdenv/linux: disable and drop isl from gcc's bootstrap tools (#336985) 2024-08-28 19:32:54 -07:00
Philip Taron
0d1b26857b
treewide: support structuredAttrs in setup hooks (part 2) (#335666) 2024-08-28 14:07:58 -07:00
github-actions[bot]
4420fe8b58
Merge staging-next into staging 2024-08-28 12:05:53 +00:00
github-actions[bot]
42531ffc56
Merge master into staging-next 2024-08-28 12:05:25 +00:00
Jörg Thalheim
2c9d00dbed
pkgs/stdenv/linux: update s390x-unknown-linux-gnu bootstrap-files (#334334) 2024-08-28 09:27:19 +02:00
Emily
e1c31678e8
xar: 1.6.1 -> 498 (#329721) 2024-08-27 03:00:43 +01:00
Ivan Trubach
5eee6cf40a xar: 1.6.1 -> 498
This change switches the xar package from unmaintained fork of the
original project to the Apple Open Source tarball. See also
https://repology.org/project/xar/versions

Since the package is essentially rewritten from scratch, we take an
opportunity and move it to pkgs/by-name/xa/xar (formatted with nixfmt).

We also remove Windows from the supported platforms because even before
this change pkgsCross.mingwW64.xar failed with
xar> configure: error: can not detect the size of your system's uid_t type
2024-08-25 18:10:08 +03:00
Wolfgang Walther
1efcffa700
stdenv: support default values in concatTo
The previously used pattern was introduced in #318614, but technically
leaked the default flags into the global scope. While this would
probably not make much of a practical difference, making concatTo
support default values is a much cleaner approach.
2024-08-24 12:23:35 +02:00
Sergei Trofimovich
a74147fe6a stdenv/linux: disable and drop isl from gcc's bootstrap tools
`isl` is only needed to support `gcc` transformations enabled by
`-fgraphite*` options. Packages do not usually use those flags. None of
the bootstrap packages use it.

`nixpkgs` does not use up-to-date `isl` for `gcc` either. Let's drop
`isl` dependency from the bootstrap binary seed.
2024-08-24 10:27:24 +01:00
github-actions[bot]
eb0aa91a48
Merge staging-next into staging 2024-08-23 00:13:10 +00:00
K900
5c68540f8b Merge remote-tracking branch 'origin/staging-next' into staging 2024-08-22 13:20:38 +03:00
Audrey Dutcher
f3a104c11a stdenv/freebsd: do not require recursive-nix 2024-08-22 00:09:55 -07:00
Audrey Dutcher
90bf0c5119 stdenv/freebsd: rsync with --safe-links
This discarss links with absolute paths, which are useless for the
bootstrap tools.
2024-08-22 00:06:44 -07:00
Thomas Gerbet
d00775c1d9 stdenv: create env-vars file before writing data to it
This fixes the regression introduced by c47a1e701d
on Darwin. The creation of the file using `install` and process
substitution does not work on Darwin, you get the following complain:
```
install: skipping file '/dev/fd/63', as it was replaced while being copied
```

Fixes #335016
2024-08-20 19:02:41 +02:00
Philip Taron
2cf5e918df
stdenv: remove with statements 2024-08-18 06:32:22 -07:00
Philip Taron
4ef32bd71b
Merge pull request #334973 from SomeoneSerge/fix/structuredAttrs/xxxArray
stdenv: concatTo: fallback for non-__structuredAttrs derivations
2024-08-17 17:33:53 -07:00
github-actions[bot]
150d965bfb
Merge staging-next into staging 2024-08-17 18:01:41 +00:00
Artturin
c9270f6274
Merge pull request #329964 from Artturin/androidrenamesdk
treewide: Rename android `sdkVer` and `ndkVer`
2024-08-17 19:22:42 +03:00
Someone Serge
ebf6790c39 stdenv: concatTo: fall back to old behaviour for "*Array" variables
Fixes e.g. the `sudo` build failure
2024-08-16 12:51:51 +00:00
Someone
ccaaa9ca53
Merge pull request #318614 from wolfgangwalther/structured-attrs-setup-hooks
treewide: support structuredAttrs in setup hooks
2024-08-13 19:29:36 +00:00
bl0v3
f32f54b860 pkgs/stdenv/linux: update s390x-unknown-linux-gnu bootstrap-files
sha256sum of files to be uploaded:

$ sha256sum /nix/store/ijkl5anf7mx1p3whdkxv4qs5crf6ic35-stdenv-bootstrap-tools-s390x-unknown-linux-gnu/on-server/*
1d8a28370912b69f50d6764ec3d71e9448903d6c14ee24873f589ac68741bf58  /nix/store/ijkl5anf7mx1p3whdkxv4qs5crf6ic35-stdenv-bootstrap-tools-s390x-unknown-linux-gnu/on-server/bootstrap-tools.tar.xz
03f16d698a45ec58bd5a0dc428d64ad5122a3ea1fd4d886cc93618951e4e74eb  /nix/store/ijkl5anf7mx1p3whdkxv4qs5crf6ic35-stdenv-bootstrap-tools-s390x-unknown-linux-gnu/on-server/busybox

Suggested commands to upload files to 'tarballs.nixos.org':

    $ nix-store --realize /nix/store/ijkl5anf7mx1p3whdkxv4qs5crf6ic35-stdenv-bootstrap-tools-s390x-unknown-linux-gnu
    $ aws s3 cp --recursive --acl public-read /nix/store/ijkl5anf7mx1p3whdkxv4qs5crf6ic35-stdenv-bootstrap-tools-s390x-unknown-linux-gnu/on-server/ s3://nixpkgs-tarballs/stdenv/s390x-unknown-linux-gnu/0a7eaa55ccaa5103f44a9a4e3e0b06e5314a6401
    $ aws s3 cp --recursive s3://nixpkgs-tarballs/stdenv/s390x-unknown-linux-gnu/0a7eaa55ccaa5103f44a9a4e3e0b06e5314a6401 ./
    $ sha256sum bootstrap-tools.tar.xz busybox
    $ sha256sum /nix/store/ijkl5anf7mx1p3whdkxv4qs5crf6ic35-stdenv-bootstrap-tools-s390x-unknown-linux-gnu/on-server/*
2024-08-13 10:18:32 +02:00
Randy Eckenrode
2c5001b1db
darwin.stdenv: format with nixfmt-rfc-style 2024-08-11 23:11:04 -04:00
Someone Serge
64eaa63181 stdenv: concatStringsSep: quote ${sep} 2024-08-10 23:38:10 +00:00
github-actions[bot]
addc823ceb
Merge master into staging-next 2024-08-07 12:01:21 +00:00
adisbladis
f4579bdf8d stdenv: Fix args.env.NIX_CFLAGS_LINK/args.NIX_CFLAGS_LINK typo 2024-08-07 18:49:56 +12:00
K900
a74e503640 make-derivation.nix: *unfancies your quotes* 2024-08-07 09:28:39 +03:00
K900
7cd4d5d7a3 make-derivation.nix: better error reporting for conflicting env attributes 2024-08-06 18:57:51 +03:00
Philip Taron
d8fbb16219
stdenv: change the logging in _allFlags to talkative 2024-08-05 18:35:57 -07:00
Philip Taron
e844424e4f
stdenv: replace other $NIX_DEBUG log statements 2024-08-05 18:35:57 -07:00
Philip Taron
465dbd2ddf
stdenv: log hooks at nixTalkativeLog level
Nix filters out messages with level ≥ 4 by default as of this commit.
2024-08-05 18:35:57 -07:00
Philip Taron
624463391d
stdenv: introduce specific logging functions 2024-08-05 18:35:57 -07:00
Philip Taron
bbb9f2f1c9
stdenv: set the phase in showPhaseHeader 2024-08-05 18:35:57 -07:00
github-actions[bot]
cf88251824
Merge staging-next into staging 2024-08-05 18:01:40 +00:00
éclairevoyant
1188923cde
Revert "pkgs/top-level/config.nix: nixfmt, declare options" 2024-08-05 16:44:45 +00:00
Marcus Ramberg
8e931f3330
Merge pull request #332462 from bolives-hax/bootstrap-tools-cross-add-s390x
Bootstrap tools cross add s390x
2024-08-05 18:41:17 +02:00
Philip Taron
42d0012a8b
Merge pull request #330753 from eclairevoyant/nixpkgs-declare-options
pkgs/top-level/config.nix: nixfmt, declare options
2024-08-05 08:55:03 -07:00
bl0v3
398058603f stdenv: add bootstrap files for s390x 2024-08-05 13:04:20 +02:00
Vladimír Čunát
d4720e9c1e
Merge branch 'staging-next' into staging
There was a nontrivial conflict in pkgs/stdenv/linux/bootstrap-tools*
(reorganizing code vs. modifying it)  I hope I really got it right.
2024-08-05 11:05:55 +02:00
éclairevoyant
d65c92e966
pkgs/top-level/config.nix: pass nixf-tidy 2024-08-05 01:10:07 -04:00
éclairevoyant
1d47396274
pkgs/top-level/config.nix: add options.inHydra 2024-08-05 01:10:06 -04:00
éclairevoyant
139f90426b
pkgs/top-level/config.nix: add options.{permittedInsecurePackages,allowInsecurePredicate} 2024-08-05 01:10:06 -04:00
Martin Weinelt
423c64a625
Merge pull request #331576 from LeSuisse/env-vars-not-world-readable
stdenv: make sure the `env-vars` file created is not world readable
2024-08-05 00:33:37 +02:00
éclairevoyant
333370df4f
pkgs/top-level/config.nix: add options.allowNonSourcePredicate 2024-08-04 14:54:34 -04:00
éclairevoyant
598f2257d7
pkgs/top-level/config.nix: add options.allowUnfreePredicate 2024-08-04 14:54:33 -04:00
Philip Taron
2b8276d312
Merge pull request #331878 from philiptaron/issue-208242/stdenv/linux/make-bootstrap-tools.nix
freshBootstrapTools: refactor to use callPackage style for Linux
2024-08-03 09:11:27 -07:00
Marcus Ramberg
36f51bc719
Merge pull request #331964 from adisbladis/stdenv-adapters-env-cflags-link
stdenv: Take nested env.NIX_CFLAGS_LINK into account when making static binaries
2024-08-03 18:08:32 +02:00
adisbladis
00b9996c9a stdenv: Take nested env.NIX_CFLAGS_LINK into account when making static binaries
https://github.com/NixOS/nixpkgs/pull/315998/files#diff-2828f66a476875b1160e3c241960db085c2a3933211cc187bcd1fb456fb95e7fL213-R216 moved NIX_CFLAGS_LINK from a top-level `mkDerivation` argument to the nested `env` attribute.

This doesn't play nicely with how `stdenv/adapters.nix` adds it's NIX_CFLAGS_LINK in the top-level.

This changes the stdenv adapter to check for the presence of `env.NIX_CFLAGS_LINK`, and override that one if present, and only otherwise override on the top-level drv attrset.
2024-08-03 23:26:42 +12:00
Philip Taron
e915f6b32e
freshBootstrapTools: run nixfmt 2024-08-02 17:47:52 -07:00
Philip Taron
2587d88ee8
freshBootstrapTools.bootstrapTools: extract as a sort of package 2024-08-02 17:47:40 -07:00
Philip Taron
052ecdbfae
freshBootstrapTools: unify glibc and musl into the same directory
CI required that I `nixfmt` them at the same time.
2024-08-02 17:47:19 -07:00
Philip Taron
0a8120ff7d
freshBootstrapTools: avoid top-level with 2024-08-02 17:31:07 -07:00
Philip Taron
fd5887f5d0
freshBootstrapTools.build: put bootstrapFiles into stdenv-bootstrap-tools.nix 2024-08-02 17:31:04 -07:00
Philip Taron
67a5dcdc41
freshBootstrapTools.test: extract a package 2024-08-02 17:31:00 -07:00
Philip Taron
ed4cd6ab51
freshBootstrapTools.build: extract a package 2024-08-02 17:30:22 -07:00
github-actions[bot]
81cddc1677
Merge staging-next into staging 2024-08-03 00:02:50 +00:00
Philip Taron
1441f48d99
freshBootstrapTools: remove rec in favor of explicit attrset building 2024-08-02 16:11:03 -07:00
Philip Taron
91e1f1c9d6
freshBootstrapTools: nixfmt make-bootstrap-tools.nix 2024-08-02 16:11:02 -07:00
Philip Taron
d0d5a7a112
freshBootstrapTools: extract bootstrapFiles as a passthru on its core derivation 2024-08-02 16:11:02 -07:00
Philip Taron
d7c66f0996
freshBootstrapTools.build: extract as a package 2024-08-02 16:10:59 -07:00
Philip Taron
1cd5d6843a
freshBootstrapTools.test: extract as a package 2024-08-02 16:08:15 -07:00
Philip Taron
003725a97d
freshBootstrapTools.bootstrapTools: extract as a package 2024-08-02 16:08:15 -07:00
Philip Taron
217c61a1d7
freshBootstrapTools: remove top-level with statement 2024-08-02 16:08:15 -07:00
Emily
c6a4f2c6cd
Merge pull request #314167 from reckenrode/override-sdk-list-inputs-fix
overrideSDK: handle propagated lists of inputs
2024-08-02 22:55:05 +01:00
Wolfgang Walther
471cbdd062
stdenv: add concatStringsSep helper
This can be used to separate lists for example with commas, when
creating argument strings. This works with both structuredAttrs disabled
and enabled.
2024-08-02 22:11:41 +02:00
Wolfgang Walther
8cb51ec38e
stdenv: refactor default flags without __structuredAttrs use
Instead of checking for __structuredAttrs everywhere, it's easier to
just set the default value via parameter expansion and then hand the
array construction off to "concatTo".

Once more setup-hooks will be made structuredAttrs-aware, this pattern
will reduce the use of this implementation detail even more.
2024-08-02 22:11:38 +02:00
Wolfgang Walther
6bdfef9d2d
stdenv: generalize _accumFlagsArray to concatTo
Passing "flagsArray" as the first argument allows using this function
in a few more places.
2024-08-02 22:11:38 +02:00
Wolfgang Walther
bfd97a691f
stdenv: make _accumFlagsArray independent of structuredAttrs
structuredAttrs was used here to make an assumption about the type of
the named variables passed as arguments.  This can be done better by
looking at the actual types of those variables.

This gives a bit more backwards compatibility as well: Once you turn to
structuredAttrs, you should still be able to pass a bare string instead
of a list and have it behave as a whitespace-separated string like
before.
2024-08-02 21:54:25 +02:00
Thomas Gerbet
c47a1e701d stdenv: make sure the env-vars file created is not world readable
Under some circumstances this file might contain private information
that should not be accessible to everybody.
2024-08-01 19:26:05 +02:00
K900
4f29b5a16b Merge remote-tracking branch 'origin/staging-next' into staging 2024-07-31 08:57:17 +03:00
Pol Dellaiera
5efe6c1019
Merge pull request #330830 from tie/nix-develop-unbound-variable
stdenv: fix unbound NIX_LOG_FD in `nix develop`
2024-07-30 23:00:01 +02:00
Wolfgang Walther
cdb2f2971c
stdenv: refactor appendToVar and prependToVar
No need to call declare -p twice. The case statement is easier to read
than the multi-if.
2024-07-30 21:38:14 +02:00
Randy Eckenrode
4b35b26dad
stdenv/darwin/make-bootstrap-tools.nix: add libcodedirectory.1.dylib
`libcodedirectory.1.dylib` is needed by ld64 and several tools from cctools such as `codesign_allocate`.
2024-07-30 15:26:40 -04:00
éclairevoyant
1899a02870
pkgs/top-level/config.nix: add options.allowNonSource 2024-07-29 14:00:40 -04:00
Ivan Trubach
bd872b4a77 stdenv: fix unbound NIX_LOG_FD in nix develop
When running `nix develop` for a package, Nix records the stdenv
environment with NIX_LOG_FD set. That is, when the actual development
shell runs, it uses the functions that attempt to log to NIX_LOG_FD, but
this variable is not actually set.

As a workaround, check whether NIX_LOG_FD is set at runtime.

Example (before this change):
```console
$ nix develop --file . bash
$ echo "${NIX_LOG_FD-unset}"
unset
$ runPhase unpackPhase
bash: "$NIX_LOG_FD": Bad file descriptor
Running phase: unpackPhase
unpacking source archive /nix/store/v28dv6l0qk3j382kp40bksa1v6h7dx9p-bash-5.2.tar.gz
bash: "$NIX_LOG_FD": Bad file descriptor
source root is bash-5.2
bash: "$NIX_LOG_FD": Bad file descriptor
setting SOURCE_DATE_EPOCH to timestamp 1663942708 of file bash-5.2/y.tab.h
```

After this change:
```console
$ nix develop --file . bash
$ runPhase unpackPhase
Running phase: unpackPhase
unpacking source archive /nix/store/v28dv6l0qk3j382kp40bksa1v6h7dx9p-bash-5.2.tar.gz
source root is bash-5.2
setting SOURCE_DATE_EPOCH to timestamp 1663942708 of file bash-5.2/y.tab.h
```
2024-07-29 13:08:17 +03:00
github-actions[bot]
d0b2f51f0f
Merge staging-next into staging 2024-07-29 06:01:55 +00:00
John Ericson
18cb69fb9b
Merge pull request #330069 from rhelmot/freebsd-14.1
freebsd: 14.0 -> 14.1
2024-07-28 23:24:38 -05:00
Audrey Dutcher
43fb06aa92
freebsd: 14.0 -> 14.1 2024-07-28 19:42:11 +00:00
Robert Scott
48bde3a189 cc-wrapper: add support for pacret hardening flag on aarch64 2024-07-28 19:27:14 +01:00
tomberek
cc7b011fe1
Merge pull request #318034 from ExpidusOS/feat/zig-cc
Add stdenv & CC support for Zig
2024-07-28 14:09:31 -04:00