Commit Graph

6093 Commits

Author SHA1 Message Date
Robert Hensing
a1cd06f900
Merge pull request #211082 from hercules-ci/fix-issue-16182
Fix issue 16182  `Error: _assignFirst found no valid variant!`
2023-01-19 19:22:04 +01:00
Alyssa Ross
1fc2a79ee1 makeSetupHook: make "name" argument mandatory
It's very frustrating to try to read through a derivation graph full
of derivations that are all just called "hook", so let's try to avoid
that.
2023-01-19 15:00:36 +00:00
Alyssa Ross
0ae87d514f treewide: add names to all setup hooks 2023-01-19 15:00:36 +00:00
Robert Hensing
c696a19bfa multiple-outputs.sh: Apply suggestions from code review
Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>
2023-01-17 21:18:59 +01:00
Robert Hensing
d16e068b14 testers.testBuildFailure: Fix
A call to getAllOutputNames was added as part of the structuredAttrs
effort, but this script does not source `setup.sh`, so I repeat the
definition here.
Should be a bit quicker than `source setup.sh`.
2023-01-16 12:57:01 +01:00
Robert Hensing
01d7f19346 multi-outputs.sh: Improve _assignFirst error message
Closes #16182

This improves the error message

    Error: _assignFirst found no valid variant!

which occurred when the set of outputs was not sufficient to set
the various outputDev, outputBin, etc variables. Specifically, this
would mean that "out" is not among the outputs, which is valid for
a derivation.

This changes the message to something like

    error: _assignFirst: could not find a non-empty variable to assign to outputDev. The following variables were all unset or empty: dev out.
          If you did not define an "out" output, make sure to define all the specific required outputs: define an output for one of the unset variables.

While this isn't a full explanation of what stdenv can and can not do,
I think it's vast improvement over the 0 bits of information that it
used to provide. This at least gives a clue as to what's going on, and
even suggests a fix, although probably multiple such fixes are required
in an instance where someone starts with a no-out derivation from scratch
(and decide to persist).
2023-01-16 12:57:01 +01:00
Artturin
fe1c7a1945 treewide: remove usages of header and stopNest
they're obsolete
2023-01-16 00:08:12 +02:00
Guillaume Maudoux
aa7cfc3aed
Merge pull request #210908 from Yarny0/auto-patchelf
autoPatchelfHook: fix symlink handling
2023-01-15 17:18:01 +01:00
Yarny0
818d0f8cf1 auto-patchelf: don't resolve symlinks if basenames don't match
The auto-patchelf python script assembles a list of
library (so=shared object) file names and their paths.
This helps speed up the discovery of
library files later when patching elf files.
As further optimization, if a symlink points to a library file,
the script uses the resolved path and file name.
However, this produces a broken list entry if the
symlink's target name doesn't match the symlink's name.

A symptom of the bug, affecting the `tsm-client` package,
is fixed in https://github.com/NixOS/nixpkgs/pull/172372 .

The commit at hand stops resolving symlinks if
the target name differs from the symlink's name.
The commit has been authored by
layus (Guillaume Maudoux <layus.on@gmail.com>)
in pull request comment

https://github.com/NixOS/nixpkgs/pull/172372#issuecomment-1194687183
2023-01-15 10:57:22 +01:00
github-actions[bot]
142d3af1cb
Merge staging-next into staging 2023-01-15 00:03:07 +00:00
Mateusz Kowalczyk
22770e2381 buildRustCrate: fixup integration test mod name
Fixes #204051. I have tried this on the reproducer stated in the ticket.

```
[nix-develop]$ $(nix-build  -I nixpkgs=/home/shana/programming/nixpkgs --no-out-link)/tests/foo

running 1 test
test check_module_name ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
```
2023-01-14 14:18:09 -05:00
github-actions[bot]
5ad514cb7e
Merge staging-next into staging 2023-01-14 18:01:41 +00:00
Artturi
1121c8fcb7
Merge pull request #185005 from amjoseph-nixpkgs/pr/fetchgit/fix-comment 2023-01-14 19:50:20 +02:00
Martin Weinelt
b974cf6522
Merge pull request #209180 from NixOS/staging-next 2023-01-14 16:26:39 +00:00
Artturin
6694168ccd unblock tarball job
nixpkgs-release-checks> Nixpkgs is not allowed to use <nixpkgs> to refer to itself.
nixpkgs-release-checks> The offending files: /nix/store/mpwvmd4mr2nx1ymw1b2r44lm34ff2vs7-source/pkgs/build-support/deterministic-uname/default.nix
2023-01-14 17:51:01 +02:00
Sergei Trofimovich
ca4da963f8 Merge remote-tracking branch 'origin/staging-next' into staging
Conflicts:
    pkgs/development/libraries/audio/roc-toolkit/default.nix
2023-01-14 11:07:42 +00:00
Sergei Trofimovich
67a3a14f24
Merge pull request #210004 from trofi/cc-fake-sysroot
build-support/cc-wrapper: pass in non-existent --sysroot= to untangle…
2023-01-14 08:18:56 +00:00
github-actions[bot]
4712ed9439
Merge master into staging-next 2023-01-14 00:02:26 +00:00
Artturi
3c3b3ab88a
Merge pull request #196334 from alyssais/pkg-config-cleanup 2023-01-13 22:22:39 +02:00
Artturi
567e81c363
Merge pull request #210102 from Artturin/fakeunameinit 2023-01-13 20:20:26 +02:00
github-actions[bot]
49722fd14a
Merge master into staging-next 2023-01-13 18:01:34 +00:00
Vladimír Čunát
befc83905c
Merge #209423: gnat12: add for x86_64-darwin 2023-01-13 18:32:21 +01:00
Adam Joseph
9297b5382f
default-crate-overrides.nix: add graphene-sys 2023-01-13 16:43:39 +00:00
Adam Joseph
e40de94c42 default-crate-overrides: add pkg-config to evdev-sys 2023-01-13 16:31:15 +00:00
Adam Joseph
62d571148a default-crate-overrides: servo-fontconfig-sys needs fontconfig 2023-01-13 16:18:27 +00:00
Alyssa Ross
979a975dbe
pkg-config: use dontUnpack instead of no-op phase 2023-01-13 16:01:13 +00:00
github-actions[bot]
9e72ff5c31
Merge staging-next into staging 2023-01-13 00:02:48 +00:00
Martin Weinelt
5342b695b1 Merge remote-tracking branch 'origin/master' into staging-next 2023-01-12 23:07:01 +01:00
Naïm Favier
bbb6af88eb agda: pass through meta 2023-01-12 22:26:05 +01:00
figsoda
b9259df616 rustPlatform.buildRustPackage: fix cross compiling auditable packages 2023-01-12 12:22:59 -05:00
Artturin
96ebc83053 deterministic-uname: init
for reproducibility

deterministic-uname: dont hardcode OPERATING_SYSTEM_VAL to GNU/Linux
2023-01-12 18:29:14 +02:00
github-actions[bot]
db669efe0d
Merge staging-next into staging 2023-01-11 06:02:05 +00:00
Martin Weinelt
c1e6c6af69 Merge remote-tracking branch 'origin/master' into staging-next 2023-01-11 03:51:33 +01:00
Adam Joseph
dfa3f14493 cc-wrapper: -march= is not allowed on powerpc
Gcc does not allow `-march=` on PowerPC:

  https://gcc.gnu.org/onlinedocs/gcc-12.2.0/gcc/RS_002f6000-and-PowerPC-Options.html#RS_002f6000-and-PowerPC-Options

Instead, `-mcpu=` should be used to set the minimum instruction set
and `-mtune=` is used to optimize instruction scheduling for a
specific processor.  Both flags take the same set of valid values,
which includes `native`.

This commit causes `isGccArchSupported` to return `false` for PowerPC
targets so we never pass an `-march=` flag, since that will always be
rejected by gcc.
2023-01-10 14:05:03 +01:00
Sergei Trofimovich
8c80bd08b7 build-support/cc-wrapper: pass in non-existent --sysroot= to untangle from libc
I would like to add an extra `gcc` build step during linux bootstrap
(https://github.com/NixOS/nixpkgs/issues/208412). This makes it early
bootstrap compiler linked and targeted against `bootstrapTools` `glibc`
including it's headers.

Without this change `gcc`'s spec files always prefer `bootstrapTools` `glibc`
for header search path (passed in as --with-native-system-header-dir=). We'can't
override it with:

- `-I` option as it gets stacked before gcc-specific headers, we need to keep
  glibc headers after gcc as gcc cleans namespace up for C standard by using
  #include_next and by undefining system macros.
- `-idirafter` option as it gets appended after existing `glibc`-includes

This `--sysroot=/nix/store/does/not/exist` hack allows us to remove existing
`glibc` headers and add new ones with `-idirafter`.

We use `cc-cflags-before` instead of `libc-cflags` to allow user to define
their own `--sysroot=` (like `firefox` does).

To keep it working prerequisite cross-symlink in gcc.libs is required:
https://github.com/NixOS/nixpkgs/pull/209153
2023-01-10 07:54:13 +00:00
Artturi
386f2bb148
Merge pull request #209255 from Artturin/stdenvupdate1
stdenv: don't fail installPhase on missing makefile
2023-01-10 03:48:17 +02:00
Artturi
27c1ec2ecf
Merge pull request #209816 from Artturin/deprecate-top-level-platform-aliases 2023-01-09 22:15:50 +02:00
Artturin
2eeb34c273 treewide: {build,host,target}Platform -> stdenv.{build,host,target}Platform 2023-01-09 21:13:22 +02:00
github-actions[bot]
33aa224777
Merge master into staging-next 2023-01-09 18:01:24 +00:00
Erik Arvstedt
89c457d847
build-dotnet-module: fix mktemp
Re-add missing `-t` arg which I erroneously removed in
a98e520855.

Without it, the tmpdir is created in $PWD.
2023-01-09 17:33:10 +01:00
Pavol Rusnak
9ede79d58b
Merge pull request #209357 from erikarvstedt/fix-dotnet-fetch-deps-tmpdir
build-dotnet-module: avoid `/run/user` for downloading packages
2023-01-09 16:12:38 +00:00
Artturin
033ec05960 setup-hooks/strip.sh: redirect stdout to dev/null
to not unnecessarily print

```
hello> ++ type -f strip
hello> strip is /nix/store/xzqzq99kbbkad23s2bf4bbrjppg6x0vj-bootstrap-stage2-gcc-wrapper-/bin/strip
```

printing what the strip command is is already done in stripDirs

`echo "stripping (with command $cmd and flags $stripFlags) in $paths"`
2023-01-08 21:02:22 +02:00
github-actions[bot]
b60b0a223e
Merge master into staging-next 2023-01-08 06:01:06 +00:00
Nick Cao
46ee37ca1d rustPlatform.bindgenHook: use the same clang/libclang as rustc 2023-01-08 15:22:04 +10:00
figsoda
45fc1f185f rustPlatform.fetchCargoTarball: default outputHashAlgo to sha256 2023-01-07 17:53:21 -05:00
Erik Arvstedt
a98e520855
build-dotnet-module: avoid /run/user for downloading packages
Inside `nix-shell`, `TMPDIR` (used by `mktemp`) is set to
`/run/user/<uid>` which is usually a tmpfs stored in RAM.

When fetching a large dotnet deps tree to this tmpdir from a
nix-shell (e.g. via `btcpayserver/update.sh`), this can easily exceed
system RAM and `fetch-deps` fails.

mktemp arg `-t` is deprecated and can be omitted.
2023-01-07 17:59:34 +01:00
Boey Maun Suang
a584587bea cc-wrapper: Wrap/link all other GNAT commands 2023-01-07 18:32:12 +11:00
Boey Maun Suang
c1308ac58c cc-wrapper: Fix gnatmake wrapper
Switches that gnatmake needs to pass to gcc must be given as
"-cargs <gcc_switches>" after at least the files to compile (see the
gnatmake docs for all the subtleties).  This commit makes that happen,
in a way that triggers rebuilds only for things that actually depend on
GNAT, and not the other compilers contained in GCC.
2023-01-07 18:32:12 +11:00
Boey Maun Suang
82b88d2db6 bintoolsDualAs: Add package
For reasons explained in the commit contents, in order to build the
native gnat package for x86_64-darwin, the native gnatboot package for
x86_64-darwin must have access to both the Clang integrated assembler
and the cctools GNU assembler for that platform.  This commit creates a
package with both of those assemblers that x86_64-darwin gnatboot can
then be wrapped with.
2023-01-07 18:32:12 +11:00
Martin Weinelt
5b308cd1df Merge remote-tracking branch 'origin/master' into staging-next 2023-01-06 19:10:05 +01:00