Commit Graph

2841 Commits

Author SHA1 Message Date
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
Emily
8a837af302
Merge pull request #326819 from risicle/ris-shadowstack
cc-wrapper: add support for `shadowstack` hardening flag
2024-07-28 19:07:52 +01:00
github-actions[bot]
384d08d20d
Merge master into staging-next 2024-07-28 06:01:00 +00:00
Tristan Ross
9f589ea3a0
arocc: init at 0-unstable-06-01 2024-07-27 19:43:41 -07:00
Tristan Ross
c472b840a3
pkgs/stdenv/cross: add zig 2024-07-27 19:43:40 -07:00
Tristan Ross
a1e23f5a24
makeBinaryWrapper: ensure wrapper works with llvm 2024-07-27 18:59:25 -07:00
Artturin
1144d46f95 treewide: Rename android sdkVer and ndkVer
`sdkVer` conflicts with the old `sdkVer`(now `darwinSdkVersion` but that still uses `sdkVer` if set) used by darwin

This shouldn't be an issue but due to `pkgs/development/interpreters/python/cpython/default.nix`
running `lib.filterAttrs (n: v: ! lib.isDerivation v && n != "passthruFun")` on it's inputs (2 of them are darwin only)
the `throw "Unsupported sdk...` in `pkgs/top-level/darwin-packages.nix` will be triggered.

After this change `pkgsCross.armv7a-android-prebuilt.python3.pythonOnBuildForHost` won't fail with
`error: Unsupported sdk: 33`

Issue was bisected to 3cb23cec23
2024-07-25 22:08:49 +03:00
Vladimír Čunát
cd346565bb
Merge branch 'master' into staging-next 2024-07-24 07:19:19 +02:00
Jörg Thalheim
afe8fbf038
Merge pull request #328582 from rhelmot/freebsd-stdenv
FreeBSD stdenv: re-init
2024-07-24 06:43:35 +02:00
Randy Eckenrode
d5e2c40823
darwin.stdenv: remove darwin.ICU from the final overlay
Nothing in the stdenv needs it. Keeping it there pulls bootstrap tools into its build environment.
2024-07-22 20:54:22 -04:00
Artturin
60e9cffe2c Merge branch 'master' into staging-next 2024-07-22 22:53:31 +03:00
Randy Eckenrode
312e20a312
darwin.stdenv: fix scons Python override
This reduces the number of Python builds in the bootstrap to two: a minimal build and a normal build. Both have LTO disabled, which is required due to missing LLVM LTO libraries. This is necessary to correctly enable LTO builds in Python because it needs `llvm-ar` from `stdenv.cc.cc.libllvm`, which does not exist in the bootstrap.
2024-07-20 21:32:38 -04:00
Audrey Dutcher
c3c71a9809 [squashme] finish rename 2024-07-20 16:40:02 -07:00
Audrey Dutcher
8d34730121 [squashme] elaborate comment on unpack-bootstrap-files.sh 2024-07-20 09:23:29 -07:00
Audrey Dutcher
3cf427ebe3 [squashme] rename linkBS to linkBootstrap 2024-07-20 09:21:23 -07:00
Audrey Dutcher
c494d17409 [squashme] remove unused/bad code 2024-07-20 09:20:33 -07:00
Audrey Dutcher
37affb5b76 [squashme] Remove some hacks 2024-07-19 21:32:08 -07:00
Audrey Dutcher
9dbd5a9a9d [squashme] do the requested changes 2024-07-19 21:32:07 -07:00
Audrey Dutcher
1e2071847d stdenv/freebsd: reinit
The old stdenv didn't work, and was also impure. The new one works, and
is pure. Presently, the bootstrap tools are cross compiled into one small
nar and one large tar, which is then unpacked, patched, and split into
smaller derivations. Efforts were made to make the boot process as short
as possible - there are only two clangs built, and as many packages are
propagated between stages as possible while leaving the bootstrap tools
out of the final stdenv's closure.
2024-07-19 21:32:05 -07:00
toonn
c3c5870e96
Merge pull request #307880 from reckenrode/ld64
cctools: 973.0.1 -> 1010.6
2024-07-17 08:22:14 +02:00
bolives-hax
59dabc0d10
add s390x to make-bootstrap-tools-cross.nix 2024-07-16 20:33:49 +02:00
Robert Scott
b207b6ef74 cc-wrapper: add support for shadowstack hardening flag 2024-07-14 21:25:47 +01:00
Robert Scott
c68739f4f0 bootstrap-tools-musl: match bootstrap-tools hardeningUnsupportedFlags
seems we missed adding stackclashprotection
2024-07-14 21:25:47 +01:00
Yueh-Shun Li
c65cf1b9c5
pkgs/stdenv/generic/setup.sh: fix unbound variables and pass ShellCheck checks (#298831)
* pkgs/stdenv/generic/setup.sh: supress ShellCheck error about Bash array indexing syntax

* pkgs/stdenv/generic/setup.sh: loop by per-line read

* pkgs/stdenv/generic/setup.sh: fix variable quoting

* pkgs/stdenv/generic/setup.sh: separate declaration and assignment
2024-07-14 19:17:55 +03:00
Randy Eckenrode
a49dbb2544
darwin.stdenv: switch to top-level cctools and ld64 2024-07-13 17:54:36 -04:00
Randy Eckenrode
10c87ee2c7
stdenv: set NIX_DONT_SET_RPATH_FOR_TARGET on Darwin 2024-07-13 17:54:35 -04:00
Randy Eckenrode
9403fdc4a6
darwin.stdenv: consolidate stage 2 into one stage
Separate stages are no longer necessary because CF is not built from source and will not be built in the future.
2024-07-13 17:54:35 -04:00
Randy Eckenrode
05e5d7f73e
darwin.stdenv: clean up GNU binutils ban
- Only propagate binutils-unwrapped; and
- Clarify in the `throw` that it cannot be used in the Darwin bootstrap.
2024-07-13 17:54:35 -04:00
Randy Eckenrode
78da51cdb0
darwin.stdenv: adjust flags for llvm-strip in bootstrap tools 2024-07-13 17:54:35 -04:00
Randy Eckenrode
8559d6466b
darwin.stdenv: always use a response file
The bootstrap tools have been updated, so it is no longer necessary to suppress using a response file in the Darwin stdenv bootstrap.
2024-07-13 17:54:35 -04:00
Randy Eckenrode
65a37e7b14
darwin.stdenv: make sure curl cannot be used
Fetchers can use the `curl` binary from the bootstrap tools. Allowing packages in the Darwin bootstrap to link curl makes any curl update cause a full rebuild on Darwin, which is undesirable.
2024-07-13 17:54:35 -04:00
Martin Weinelt
176a56c40f
Merge remote-tracking branch 'origin/staging-next' into staging
Conflicts:
- pkgs/applications/misc/blender/default.nix
- pkgs/development/web/nodejs/nodejs.nix
2024-07-11 01:06:28 +02:00
John Ericson
000b58721f Merge remote-tracking branch 'upstream/master' into openbsd-static 2024-07-09 18:18:47 -04:00
John Ericson
676df1cf2d openbsd: Add static linking support
I've had better luck creating statically-linked binaries that work than
dynamically-linked ones, so this is needed quite practically.
2024-07-09 18:17:06 -04:00
Tristan Ross
cfe063d174
overrideSDK: fix missing host platform inside of override 2024-07-08 17:21:55 -07:00
Tristan Ross
7a95a8948b
Merge pull request #324155 from paparodeo/x64-sdk11-no-rebuilds
treewide: change various flags to allow x64 darwin to default to sdk 11.0 when ready
2024-07-08 17:19:17 -07:00
Martin Weinelt
e7b1ee45cf
Merge remote-tracking branch 'origin/staging-next' into staging
Conflicts:
- pkgs/tools/misc/watchlog/default.nix
2024-07-06 01:52:35 +02:00
Randy Eckenrode
75504615ad
stdenv/darwin/make-bootstrap-tools.nix: use darwin.binutils-unwrapped
After https://github.com/NixOS/nixpkgs/pull/322388, darwin.cctools is just Apple’s cctools again. The replacement for what the bootstrap tools wants is darwin.binutils-unwrapped.
2024-07-04 10:45:08 -04:00
Ryan Hendrickson
40428630bc
Merge pull request #317106 from trofi/dashed-source
stdenv: handle $sourceRoot that starts with dash
2024-07-02 23:48:25 -04:00
Reno Dakota
3cb23cec23
treewide: fixes to allow x64 darwin to default to sdk 11
update code to not assume that x64 darwin must use sdk 10.12. After this
change it's possible to build a sdk 11 stdenv on darwin x64
2024-07-02 23:30:01 +00:00
Randy Eckenrode
c6e9b98725
darwin.stdenv: make sure GNU binutils cannot be used
GNU binutils is not preferred on Darwin, and newer versions have issues building. Make it an evaluation error to use it in the Darwin stdenv bootstrap.
2024-06-27 08:10:34 -04:00
Randy Eckenrode
2b21ece48b
darwin.stdenv: update for darwin.binutils cleanup
- Only link binaries that exist for stage 0 cctools and LLVM bintools;
- Drop cctools-llvm in favor of the updated darwin.binutils; and
- Update llvm-manages Python overrides (needed for newer versions of LLVM).
2024-06-27 08:10:34 -04:00