Commit Graph

7079 Commits

Author SHA1 Message Date
Robert Scott
658ab4b45b cc-wrapper: add fortify flags after invocation args, not before
this splits hardeningCFlags into hardeningCFlagsAfter and
hardeningCFlagsBefore (where most flags still remain) to allow
us to *append* `-D_FORTIFY_SOURCE=` values to the command-line,
forcing our choice of fortify level and avoiding potential
redefinition warnings/errors through use of `-U_FORTIFY_SOURCE`
2023-08-19 14:59:06 +01:00
github-actions[bot]
c9e2cfa3f4
Merge staging-next into staging 2023-08-19 06:01:31 +00:00
github-actions[bot]
1e271fd42a
Merge master into staging-next 2023-08-19 06:01:05 +00:00
aszlig
8e6c0c14a4
libredirect: Fix segfault handling null paths
While using libredirect in conjunction with geckodriver, I stumbled on
odd segfaults that happened when running the wrapped statx() call from
libredirect:

  0x00007ffff7ddd541 in __strncmp_avx2 () from .../lib/libc.so.6
  0x00007ffff7f6fe57 in statx () from .../lib/libredirect.so
  0x00005555558d35bd in std::sys::unix::fs::try_statx::h2045d39b0c66d4e8 ()
  0x00005555558d2230 in std::sys::unix::fs::stat::ha063998dfb361520 ()
  0x0000555555714019 in mozversion::firefox_version::hdc3b57eb04947426 ()
  0x00005555556a603c in geckodriver::capabilities::FirefoxCapabilities::version::h58e289917bd3c721 ()
  0x00005555556a77f5 in <geckodriver::capabilities::FirefoxCapabilities as webdriver::capabilities::BrowserCapabilities>::validate_custom::h62d23cf9fd63b719 ()
  0x000055555562a7c8 in webdriver::capabilities::SpecNewSessionParameters::validate::h60da250d33f0989f ()
  0x00005555556d7a13 in <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::try_fold::h9427a360a3d0bf8f ()
  0x0000555555669d85 in <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter::hd274d536ea29bb33 ()
  0x00005555555c05ef in core::iter::adapters::try_process::hdf96a01ec1f9b8bd ()
  0x000055555561768d in <webdriver::capabilities::SpecNewSessionParameters as webdriver::capabilities::CapabilitiesMatching>::match_browser::hfbd8c38f6db17e9f ()
  0x00005555555ca6ef in <geckodriver::marionette::MarionetteHandler as webdriver::server::WebDriverHandler<geckodriver::command::GeckoExtensionRoute>>::handle_command::h13b98b9cb87a69d6 ()
  0x00005555555e859e in webdriver::server::Dispatcher<T,U>::run::h746a8bf2f0bc24fd ()
  0x000055555569ff0f in std::sys_common::backtrace::__rust_begin_short_backtrace::h3b920773bd467d2a ()
  0x00005555555dbc99 in core::ops::function::FnOnce::call_once{{vtable.shim}}::h81ba7228877515f7 ()
  0x00005555558d31a3 in std::sys::unix:🧵:Thread:🆕:thread_start::h4514580219a899c5 ()
  0x00007ffff7d0ce24 in start_thread () from .../lib/libc.so.6
  0x00007ffff7d8e9b0 in clone3 () from .../lib/libc.so.6

The reason why I found this odd was because it happens in the following
piece of code (shortened a bit):

   1 static const char * rewrite(const char * path, char * buf)
   2 {
   3   if (path == NULL) return path;
   4   for (int n = 0; n < nrRedirects; ++n) {
   5     int len = strlen(from[n]);
   6     if (strncmp(path, from[n], len) != 0) continue;
   7     if (snprintf(buf, PATH_MAX, "%s%s", to[n], path + len) >= PATH_MAX)
   8       abort();
   9     return buf;
  10   }
  11   return path;
  12 }

When inspecting the assembly, I found that the check for the null
pointer in line 3 was completely missing and the code was directly
entering the loop and then eventually segfault when running strncmp()
with a null pointer as its first argument.

I confirmed that indeed that check was missing by compiling libredirect
with "-O0" and comparing the generated assembly with the optimized one.
The one compiled with "-O0" had that check while the optimized one did
not and indeed when running geckodriver with the unoptimized version it
worked fine.

Digging in the Git history, I found 5677ce2008,
which actually introduced the null pointer check. Going back to that
commit however, the check actually was still in the generated assembly.

So I bisected between that commit and the most recent one and ended up
with commit ca8aa5dc87, which moved
everything to use GCC 7.

I haven't found out why *exactly* GCC was optimizing the check away, but
playing around on Godbolt with various other compilers seems that other
compilers such as Clang are doing it as well. Additionally, given that
passing NULL to stat() is UB, my guess is that compilers tend to assume
that such an argument can't be NULL. My assumption is based on the fact
that GCC warns with "argument 1 null where non-null expected" when
passing NULL to eg. stat().

To address this for now, I marked the path argument of the rewrite()
volatile and also added a test that should cause a segfault in case this
would regress again as it already did.

Signed-off-by: aszlig <aszlig@nix.build>
2023-08-19 00:58:43 +02:00
Pierre Bourdon
28693fb1c3
buildNpmPackage: symlink manpages to the correct output directory 2023-08-18 12:41:05 +02:00
Shea Levy
bf7a81d8dd
nixBufferBuilders: Don't assume the user has used eshell 2023-08-18 04:49:33 -04:00
Shea Levy
994f2560d0
Fix nixBufferBuilders for newer emacs 2023-08-17 10:38:37 -04:00
Viktor Kronvall
b35440bfcf dockerTools: replace --no-clobber with --update=none
Since coreutils v9.2 the `--no-clobber` flag results in a non-zero exit
code when the destination files exist. Using `--update=none` will now
reproduce the old behavior of `--no-clobber`.

However, the `--update=none` flag was introduced in coreutils v9.3 and
thus `mergeImages` will fail if you have an older version than v9.3 in
stdenv after applying this commit.

[coreutils v9.3 changelog](f386722dc0/NEWS (L48))
2023-08-17 01:37:07 +09:00
Anton Mosich
04df8d6442 make-startupitem: fix typo in comment 2023-08-16 18:03:02 +02:00
TomaSajt
9646cb5c49
buildDotnetGlobalTool: fix typo 2023-08-14 20:56:27 +02:00
github-actions[bot]
674c2b1920
Merge master into staging-next 2023-08-14 18:01:03 +00:00
Artturin
b93da3f4b7 treewide: overrideScope' -> overrideScope
`lib.makeScope` `overrideScope'` has been renamed to `overrideScope`

`fd --type f | xargs sd --string-mode "overrideScope'" "overrideScope"`
2023-08-14 18:46:47 +03:00
Adam Joseph
a97e8fc272 make-initrd-ng: use hostPlatform.ubootArch for uinitrdArch
This allows make-initrd-ng to pick up the few cases where Linux and
u-boot disagree.
2023-08-14 01:34:08 -07:00
Yang, Bo
1b8ca87a83
Merge branch 'master' into stdenv.cc.libcxx 2023-08-12 14:19:01 -07:00
github-actions[bot]
9cc6a98540
Merge master into staging-next 2023-08-11 18:00:55 +00:00
Charlie Moog
0b4c5d23cd
trivial-builders: add meta.mainProgram to writeShellScriptBin
Derivations built with `writeShellScriptBin`
should always be runnable with `nix run`. At present,
the derivation is missing both `meta.mainProgram`
and `pname`– this means that `nix run` falls back
to inferring the bin path from `name`. This is
unreliable and depends on faulty heuristics.

For context, reference the following snippet from
`nix run --help`:

    If installable evaluates to a derivation, it will try to execute the
    program <out>/bin/<name>, where out is the primary output store path
    of the derivation, and name is the first of the following that exists:

      · The meta.mainProgram attribute of the derivation.
      · The pname attribute of the derivation.
      · The name part of the value of the name attribute of the derivation.
2023-08-11 00:40:37 -05:00
Artturi
442314b689
Merge pull request #247759 from Artturin/stripmktempdir 2023-08-10 15:18:58 +03:00
Lily Foster
785ed11d0a
prefetch-npm-deps: fix error typo and unnecessary name qualifier 2023-08-09 19:13:26 -04:00
github-actions[bot]
37cdcaae78
Merge staging-next into staging 2023-08-09 12:01:51 +00:00
Francesco Gazzetta
b2e987dd16
Merge pull request #240348 from fgaz/write-shell-application/check-platforms
writeShellApplication: use shellcheck only where supported
2023-08-09 12:17:46 +02:00
github-actions[bot]
792f4d7934
Merge staging-next into staging 2023-08-08 18:01:27 +00:00
sternenseemann
af60e68744 testers.hasPkgConfigModules: allow checking multiple pkg-config mods
This is very useful in conjunction with meta.pkgConfigModules, as the
new tester can use the list provided by this meta attribute as a default
value for moduleNames, making its usage in passthru.tests very
convenient.

For backwards compatibility, a shim under the old name is maintained
with a warning.
2023-08-08 19:16:48 +02:00
Jan Malakhovski
9437e4da35 fetchurl: cleanup a bit by moving the warning into assert 2023-08-08 13:38:11 +00:00
Jan Malakhovski
9dcecbdb31 fetchzip: cleanup and improve metrics a bit 2023-08-08 13:25:28 +00:00
github-actions[bot]
f19f490d4e
Merge staging-next into staging 2023-08-08 12:01:54 +00:00
Nick Cao
b98f6d9072
Merge pull request #246712 from NickCao/jax-rework
python3Packages.{jax,jaxlib}: update to 0.4.14
2023-08-08 01:58:03 -06:00
TomaSajt
ed60ed3562
Fix useDotnetFromEnv's DOTNET_ROOT detection 2023-08-08 00:37:49 +02:00
Artturin
520a544ee5 setup-hooks/strip: Create the log file in '$TMDPIR'
vcunat said

> This invocation of mktemp creates the file in the current directory, which is bad practice. We should add "--tmpdir=$TMPDIR" or make the template absolute.

> I noticed because one package did cd $src during installing, which is a read-only path...
2023-08-07 18:20:56 +03:00
Robert Scott
0865f1f4d7
Merge pull request #219421 from risicle/ris-fortify-headers-auto
cc-wrapper: include fortify-headers before libc includes for musl
2023-08-06 22:50:48 +01:00
github-actions[bot]
bbf876fefa
Merge staging-next into staging 2023-08-06 18:01:26 +00:00
github-actions[bot]
191e60634e
Merge master into staging-next 2023-08-06 18:01:04 +00:00
Robert Scott
95c4a1fe96 cc-wrapper: include fortify-headers before libc includes for musl 2023-08-06 17:52:28 +01:00
Weijia Wang
b3e14fbf79
Merge pull request #247501 from oxij/fix/fetchrepoproject
fetchrepoproject: fix a bug
2023-08-06 16:32:48 +02:00
Jan Malakhovski
2c50e3491e fetchrepoproject: fix a bug that was there since bef6bef0d2 2023-08-06 12:17:09 +00:00
github-actions[bot]
0031ae7742
Merge staging-next into staging 2023-08-06 00:03:36 +00:00
github-actions[bot]
c90f3611dc
Merge master into staging-next 2023-08-06 00:02:21 +00:00
Francesco Gazzetta
2c5990f03a writeShellApplication: use shellcheck only where supported 2023-08-05 18:31:20 +02:00
Naïm Favier
ec2efb7476
Merge pull request #247164 from tjni/make-wrapper-dependencies
makeBinaryWrapper: remove cc dependency on aarch64-darwin
2023-08-05 10:30:54 +02:00
Vladimír Čunát
d5732d9669
Merge branch 'staging-next' into staging 2023-08-05 07:45:29 +02:00
Theodore Ni
ca73fb024a
makeBinaryWrapper: remove cc dependency on aarch64-darwin 2023-08-04 14:12:56 -07:00
K900
8bd0cd850b requireFile: fix error message with SRI hashes 2023-08-04 15:34:30 +03:00
Artturi
c0731df13c
Merge pull request #238525 from tie/patch-shebang-update-store-paths 2023-08-04 01:21:07 +03:00
github-actions[bot]
5827446dce
Merge master into staging-next 2023-08-03 00:01:56 +00:00
Weijia Wang
67633c2a6f
Merge pull request #238323 from szlend/fixed-path-codesign-allocate
codesign_allocate: use absolute path
2023-08-02 22:10:22 +02:00
Weijia Wang
7c1239a54a
Merge pull request #245282 from reckenrode/gccStdenv-fix
cc-wrapper: use a temporary file for reponse file
2023-08-02 11:04:25 +02:00
Gaetan Lepage
e754f2946b
buildBazelPackage: add support for bazel run targets 2023-08-02 16:05:55 +08:00
Nick Cao
8423edb179
Revert "Update JAX" 2023-08-01 21:23:27 -06:00
Nick Cao
2673bcc912
Merge pull request #227145 from GaetanLepage/jax
Update JAX
2023-08-01 19:42:01 -06:00
Simon Žlender
8e912feb29 codesign_allocate: reference cctools 2023-08-01 21:27:09 +02:00
zowoq
3392d56b72 buildGoModule: set GOPROXY to go default 2023-08-02 01:08:27 +10:00
zowoq
86cd7e0948 buildGo{Module,Package}: set GOTOOLCHAIN to local
prevent go from downloading another toolchain
2023-08-02 01:08:27 +10:00
zowoq
41ccfa322e buildGoModule: refactor GO111MODULE 2023-08-02 01:08:27 +10:00
Robert Hensing
0ed9e35a22 writers: Set mainProgram
Part of https://github.com/NixOS/nixpkgs/pull/246386
2023-08-01 12:21:06 +02:00
Randy Eckenrode
6f2b3ba027 cc-wrapper: use a temporary file for reponse file
The Darwin stdenv rework conditionally sets `NIX_CC_USE_RESPONSE_FILE`
depending on the `ARG_MAX` of the build system. If it is at least 1 MiB,
the stdenv passes the arguments on the command-line (like Linux).
Otherwise, it falls back to the response file. This was done to prevent
intermitent failures with clang 16 being unable to read the response
file. Unfortunately, this breaks `gccStdenv` on older Darwin platforms.

Note: While the stdenv logic will also be reverted, this change is
needed for compatibility with clang 16.

GCC is capable of using a response file, but it does not work correctly
when the response file is a file descriptor. This can be reproduced
using the following sequence of commands:

    $ nix shell nixpkgs#gcc; NIX_CC_USE_RESPONSE_FILE=1 gcc
    # Linux
    /nix/store/9n9gjvzci75gp2sh1c4rh626dhizqynl-binutils-2.39/bin/ld: unrecognized option '-B/nix/store/vnwdak3n1w2jjil119j65k8mw1z23p84-glibc-2.35-224/lib/'
    /nix/store/9n9gjvzci75gp2sh1c4rh626dhizqynl-binutils-2.39/bin/ld: use the --help option for usage information
    collect2: error: ld returned 1 exit status
    # Darwin
    ld: unknown option: -mmacosx-version-min=11.0
    collect2: error: ld returned 1 exit status

Instead of using process substitution, create a temporary file and
remove it in a trap. This should also prevent the intermitent build
failures with clang 16 on older Darwin systems.

Fixes #245167
2023-08-01 10:32:56 +02:00
Vladimír Čunát
2141d9879a
Revert "stdenv: use improved strip.sh for aarch64-linux"
This reverts commit 39919b8f21.
The parent merge resolved this more properly.
2023-07-31 11:20:15 +02:00
Linus Heckemann
a3d2e71a6c
Merge pull request #246164 from trofi/strip-no-symlinks
setup-hooks/strip: resolve/uniq symlinks before stripping
2023-07-31 11:02:20 +02:00
Vladimír Čunát
39919b8f21
stdenv: use improved strip.sh for aarch64-linux
Adapted from PR #246164
TODO: clean up / use it everywhere on the next rebuild.
2023-07-30 21:18:30 +02:00
Sergei Trofimovich
7adf0a4eeb setup-hooks/strip: resolve/uniq symlinks before stripping
Before the change the hook had a chance to run `strip` against the same
file using multiple link paths. In case of `gcc` `libgcc.a` was stripped
multiple times in parallel and produces corrupted archive.

The change runs inputs via `realpath | uniq` to make sure we don't
attempt to strip the same files multiple times.
2023-07-30 16:27:18 +01:00
Martin Weinelt
167f6dfee4
Merge remote-tracking branch 'origin/master' into staging-next
Conflicts:
- pkgs/development/libraries/science/astronomy/cfitsio/default.nix
2023-07-30 03:54:27 +02:00
Pol Dellaiera
83085359e3
Merge pull request #244010 from majiru/add-fetch9front
fetch9front: init
2023-07-29 08:28:24 +02:00
github-actions[bot]
d64d339ecf
Merge master into staging-next 2023-07-29 06:01:06 +00:00
Andrew Marshall
ffabc8c658 fetchfirefoxaddon: fix passing md5 to fetchurl
Broken in 6f30e0a906.

See https://github.com/NixOS/nixpkgs/issues/245949.
2023-07-28 16:18:15 -04:00
github-actions[bot]
eec08f8a6d
Merge staging-next into staging 2023-07-28 12:01:43 +00:00
Ben Wolsieffer
025af47303 writers: use runCommand instead of runCommandNoCC
runCommandNoCC is now an alias for runCommand, which was causing ofborg
failures with allowAliases = false.
2023-07-28 00:39:21 -04:00
Ben Wolsieffer
09dd973987 writers: use callPackages to import sub-groups of writers
Use callPackages instead of plain import to get proper splicing. Without this,
writeNginxConfig fails when cross-compiling.
2023-07-27 22:54:41 -04:00
github-actions[bot]
433ca82232
Merge staging-next into staging 2023-07-27 12:01:56 +00:00
Vladimír Čunát
1c0d654684
Merge #239191: treewide: gobject-introspection from buildInputs to nativeBuildInputs
...into staging
2023-07-26 20:53:32 +02:00
Vladimír Čunát
13dd8ab149
Merge #243558: libredirect: fix build with clang 16
...into staging
2023-07-26 19:20:34 +02:00
Robert Hensing
0dd3989cef tests.trivial-builders.writeTextFile: Test meta.mainProgram logic 2023-07-26 18:45:54 +02:00
Robert Hensing
a6aabd9d28 tests.trivial-builders.references: Only run where supported 2023-07-26 18:22:34 +02:00
Robert Hensing
89bdfd4687 trivial-builders: Move test list closer 2023-07-26 18:22:33 +02:00
Robert Hensing
d1dc8384ca writeCBin: Add meta.mainProgram
... and add tests.
2023-07-26 18:22:26 +02:00
github-actions[bot]
f5a346e8e7
Merge staging-next into staging 2023-07-26 12:02:08 +00:00
Vladimír Čunát
88dec0c7a9
Merge #243595: cc-wrapper: -fwrapv instead of -fno-strict-overflow in clang
..into staging
2023-07-26 11:55:59 +02:00
Pol Dellaiera
435d7c0799
Merge pull request #216365 from Stunkymonkey/use-optionalAttrs
treewide: use lib.optionalAttrs
2023-07-26 10:37:07 +02:00
MicroBlock
c2b8bf7f4e
feat: implement redirect for fetch-yarn-deps
This would fix NixOS/nixpkgs#245415
2023-07-26 15:13:37 +08:00
github-actions[bot]
c494d3a0da
Merge staging-next into staging 2023-07-26 00:02:44 +00:00
Lassulus
17d98b5b7c
Merge pull request #244835 from zimbatm/data-writers
writers: add data-centric writers
2023-07-25 22:58:15 +02:00
Felix Buehler
099935b624 treewide: use lib.optionalAttrs 2023-07-24 21:59:17 +02:00
github-actions[bot]
cecfbb286d
Merge staging-next into staging 2023-07-24 12:02:11 +00:00
Artturin
7da39a7a9e
treewide .goModules: revert renaming the derivation
This is a workaround to avoid exposing non-reproducible .goModules
At least for now.
https://github.com/NixOS/nixpkgs/pull/242905#issuecomment-1646820126
2023-07-24 08:15:48 +02:00
Jacob Moody
db097eb3b5 lib: add fetchFrom9Front 2023-07-23 13:16:28 -05:00
Artturi
2afcd08762
Merge pull request #244400 from Artturin/stripprinterr 2023-07-23 03:38:20 +03:00
zimbatm
504e42b559 writers: introduce data writers
Make it easy to write structured data back to disk.
2023-07-22 17:54:41 +02:00
zimbatm
d0c7ffc596 writers: make room for other types of writers 2023-07-22 17:54:41 +02:00
zimbatm
73ee03cbc5 writers: split out the tests
Make it easier to run and debug individual tests.
2023-07-22 17:53:52 +02:00
github-actions[bot]
941ae3102b
Merge staging-next into staging 2023-07-22 12:02:07 +00:00
github-actions[bot]
045f0259fe
Merge master into staging-next 2023-07-22 12:01:28 +00:00
zimbatm
c04c43ccd1 writers: fix fsharp writer
dotnet needs a writable $HOME to operate
2023-07-22 13:36:31 +02:00
Felix Bühler
0a2745684e
Merge pull request #239624 from Stunkymonkey/use-optionalString-then
treewide: use optionalString instead of 'then ""'
2023-07-22 13:02:47 +02:00
Artturin
f46c8c1bcd setup-hooks/strip: Exit if cmd or ranlibCmd are empty 2023-07-21 21:57:44 +03:00
Artturin
2ae18b7e10 setup-hooks/strip: Add -- before $cmd 2023-07-21 21:57:44 +03:00
Artturin
5093766f79 setup-hooks/strip: Print strip stderr if command fails
This is easiest to do through a file.

mktemp needs six X because busybox only accepts exactly six X.
2023-07-21 21:57:44 +03:00
github-actions[bot]
6689e744ea
Merge staging-next into staging 2023-07-21 06:01:41 +00:00
github-actions[bot]
17a15a50ab
Merge master into staging-next 2023-07-21 06:01:05 +00:00
Theodore Ni
02ce2e9c86
fetchsvnssh: clean up md5 references 2023-07-20 21:24:13 -07:00
Theodore Ni
63804228e5
fetchgit: clean up md5 references 2023-07-20 21:24:13 -07:00
Theodore Ni
a96b466396
fetchdarcs: clean up md5 references 2023-07-20 21:24:13 -07:00
Theodore Ni
4c9ed3189c
fetchhg: clean up md5 references 2023-07-20 21:24:13 -07:00
Theodore Ni
eadaf81055
fetchsvn: clean up md5 references 2023-07-20 21:24:07 -07:00
Theodore Ni
6f30e0a906
fetchurl: clean up md5 references 2023-07-20 21:23:04 -07:00
github-actions[bot]
6ce03a2dbd
Merge staging-next into staging 2023-07-20 18:01:51 +00:00
github-actions[bot]
da1f279ece
Merge master into staging-next 2023-07-20 18:01:17 +00:00
Sandro
081d7a5712
Merge pull request #243568 from tjni/fetchsvn 2023-07-20 17:08:53 +02:00
Gaetan Lepage
263a816ac7 buildBazelPackage: add support for bazel run targets 2023-07-20 16:53:36 +02:00
Artturi
bba1411f25
Merge pull request #207101 from DeterminateSystems/parallel-strip 2023-07-19 01:42:23 +03:00
Theodore Ni
acb182363b
cc-wrapper: use -fwrapv instead of -fno-strict-overflow in clang 2023-07-17 23:41:33 -07:00
figsoda
14da6bed8a
Merge pull request #243859 from blaggacao/fix-maturin-hook-with-python-hooks 2023-07-17 23:16:34 -04:00
github-actions[bot]
8717af0ce1
Merge staging-next into staging 2023-07-17 18:01:56 +00:00
Ryan Lahfa
8fbe8379b3
Merge pull request #240808 from nrabulinski/fetchpijul 2023-07-17 19:31:53 +02:00
Nikodem Rabuliński
080e97c7f9
build-support: Add fetchpijul function. 2023-07-17 18:44:06 +02:00
github-actions[bot]
fad49da923
Merge staging-next into staging 2023-07-17 06:02:22 +00:00
Lily Foster
249efd2271
Merge pull request #223457 from lilyinstarlight/fix/fetch-yarn-deps-pulsar
fetchYarnDeps: account for more yarn.lock spec edge cases
2023-07-16 20:24:16 -04:00
github-actions[bot]
5b36eb4172
Merge staging-next into staging 2023-07-17 00:03:32 +00:00
Lily Foster
eb8c6ca753
Merge pull request #243604 from stasjok/remove-redundant-passthru
buildNpmPackage: remove redundant passthru.npmDeps
2023-07-16 19:23:39 -04:00
David Arnold
b3d2765271
rustPlatform.maturinBuildHook: fix postBuild hook to use ./dist contract 2023-07-16 16:09:37 -05:00
github-actions[bot]
034c3854f0
Merge staging-next into staging 2023-07-16 18:01:40 +00:00
Naïm Favier
4dadd7ef86
Merge pull request #242099 from ncfavier/runCommand-meta-position
runCommand: don't set meta.position if meta is given
2023-07-16 14:50:23 +02:00
Stanislav Asunkin
38ca04ed64 buildNpmPackage: remove redundant passthru.npmDeps 2023-07-15 10:29:55 +03:00
Theodore Ni
4cbdf0d1fc
fetchsvn: support hash parameter alongside sha256 2023-07-14 18:07:07 -07:00
Randy Eckenrode
d02150a783
libredirect: fix build with clang 16
* Preferentially use the stdenv clang if it is new enough to produce
  arm64e binaries; and
* Fix incompatible function pointer conversions (results in an error
  with clang 16).
2023-07-14 18:10:13 -06:00
Artturi
c831e7939f
Merge pull request #242905 from Artturin/gomodu1 2023-07-14 01:36:16 +03:00
Artturin
1c29673fcc treewide: go-modules -> goModules
In 787af0f79f
I had to change ${go-modules} to $goModules to allow overrideAttrs to work;
However, env vars cannot contain -, so  i had to change go-modules too.
This in turn broke nix-update because it uses the go-modules attr.

Instead of making nix-update more complicated, make go-modules naming match cargoDeps.

`fd --type f | xargs sd '\bgo-modules\b' 'goModules'`
and revert change to pkgs/applications/misc/dstask/default.nix
and pkgs/servers/http/dave/default.nix
and pkgs/os-specific/darwin/plistwatch/default.nix

release note added
2023-07-14 00:18:06 +03:00
github-actions[bot]
ddce1ebd78
Merge staging-next into staging 2023-07-12 12:02:00 +00:00
github-actions[bot]
bc41da4eb9
Merge master into staging-next 2023-07-12 12:01:23 +00:00
Pol Dellaiera
99152c0f2e
Merge pull request #240939 from PedroHLC/nix-prefetch-git-sri
nix-prefetch-git: add sri-hash to output
2023-07-12 13:17:08 +02:00
Felix Buehler
bec27fabee treewide: use lib.optional instead of 'then []' 2023-07-12 09:36:28 +01:00
Artturi
de5a74e9bf
Merge pull request #242532 from league/builder-info-bug
fixes #242394
2023-07-10 20:48:02 +03:00
Linus Heckemann
70945eb79b setup-hooks/strip: parallelise stripping
This makes bootstrapping to GNU hello ~1-2% faster on an 8-core
machine and ~3-4% faster on a 64-core machine.
2023-07-10 12:24:13 +02:00
Christopher League
ef2d657a01 buildenv: Limit exclusion of info/dir
While trying to exclude a generated `/share/info/dir` in a package
from symlinking into a profile, we also ended up excluding the Emacs
info manual for `dired-x`.  This change excludes only the dir file.
2023-07-09 22:06:26 -04:00
PedroHLC ☭
0142902fc4
nix-prefetch-git: add sri-hash to output 2023-07-09 14:46:58 -03:00
github-actions[bot]
e949ec41bd
Merge master into staging-next 2023-07-08 18:01:04 +00:00
Lily Foster
bee82b47b5
Merge pull request #240419 from lilyinstarlight/feature/prefetch-npm-deps-isahc
prefetch-npm-deps: use isahc instead of ureq
2023-07-08 14:18:07 +02:00
github-actions[bot]
3ab86b3cfa
Merge master into staging-next 2023-07-08 12:01:04 +00:00
Atemu
67eec418ab
Merge pull request #240860 from Atemu/fhsenv-no-multiarch
buildFHSEnv: disable multiArch by default
2023-07-08 13:53:41 +02:00
Mario Rodas
43b091f45c
Merge pull request #233804 from lilyinstarlight/feature/npm-workspaces
buildNpmPackage: add npmWorkspace and npmPruneFlags args
2023-07-08 06:45:46 -05:00
Atemu
67ac4b83ec buildFHSEnv: disable multiArch by default
Most FHSEnv-wrapped packages in Nixpkgs wrap a x86_64-linux binary; making
multiArch unnecessary bloat closure size. Saves about 1G in anki-bin.

This makes multiArch FHSEnvs the exception rather than the rule.
2023-07-07 21:33:04 +02:00
Naïm Favier
9be0bfb5e0
runCommand: don't set meta.position if meta is given
Fixes #242093 without breaking #237589

If `meta` is given we probably already have position information, so no
need to get it from the arguments.
2023-07-07 19:12:35 +02:00
github-actions[bot]
1a76e12ddc
Merge master into staging-next 2023-07-06 18:01:11 +00:00
Robert Hensing
fcea105698 buildEnv: Nix's buildEnv should be stable
It's mostly used by nix-env, but Nix should remain simple and small
for reproducibility.
2023-07-06 16:13:38 +02:00
Vladimír Čunát
58392652f0
Merge #224822: hardening flags: enable fortify3 by default
...into staging
2023-07-06 10:33:24 +02:00
Artturi
8bf1b878cf
Merge pull request #239331 from pwaller/fix-pie-hardening 2023-07-06 02:14:35 +03:00
Jan Tojnar
2819e547d3 Merge branch 'staging-next' into staging
; Conflicts:
;	pkgs/development/libraries/nss/generic.nix

- bb53634671 removed the conditionals since firefox-esr-91 and nss <3.69 has been dropped a while ago.
- cb3762857d updated the conditionals to always partition the tests based on the nss_latest version. Chosen that since it will remain future proof.
2023-07-05 02:22:26 +02:00
Artturi
359e1136a6
Merge pull request #239120 from LibreCybernetics/arch-stuff 2023-07-05 00:20:25 +03:00
Lily Foster
fb9252fa48
prefetch-npm-deps: use exponential backoff 2023-07-04 14:47:13 -04:00
github-actions[bot]
f5a8109c46
Merge staging-next into staging 2023-07-02 00:03:47 +00:00
Atemu
62b2adc753 buildFHSEnv: add multiArch flag
The intention is to allow the user control over whether 32bit deps are supposed
to be included in the fhsenv
2023-07-01 13:41:14 +02:00
Atemu
167264179b buildFHSEnv: cleanup 2023-07-01 13:41:09 +02:00
Emily
ad94541662 fetchgit: don't shallow clone if deepClone is requested
fixes: https://github.com/NixOS/nixpkgs/issues/179788
2023-07-01 00:10:26 +02:00
Artturin
fb8fdc33e8 makeSetupHook: unbreak structuredAttrsByDefault 2023-06-30 19:38:26 +03:00
github-actions[bot]
c3cfd4a6c8
Merge staging-next into staging 2023-06-30 06:01:55 +00:00
Nick Cao
d1ff959a99
Merge pull request #240613 from SuperSandro2000/binary-cache
binary-cache: use lib.makeBinPath
2023-06-30 09:14:07 +08:00
github-actions[bot]
f6242f9557
Merge staging-next into staging 2023-06-30 00:03:00 +00:00
Sandro Jäckel
88888899e5
binary-cache: use lib.makeBinPath 2023-06-30 00:42:14 +02:00
Arthur Gautier
562f879cd1 runNixOSTest: adds support for lib.extend
When lib overrides were used, before this commit, they would not be made
available in the configuration evaluation of nixosTest's nodes.

Sample code:
``` nix
let
  pkgs = import ./. {
    overlays = [
      (new: old: {
        lib = old.lib.extend (self: super: {
          sorry_dave = builtins.trace "There are no pod bay doors" "sorry dave";
        });
      })
    ];
  };
in
pkgs.testers.runNixOSTest {
  name = "demo lib overlay";

  nodes = {
    machine = { lib, ... }: {
      environment.etc."got-lib-overlay".text = lib.sorry_dave;
    };
  };

  testScript = { nodes }:
    ''
      start_all()
      machine.succeed('grep dave /etc/got-lib-overlay')
    '';
}
```
2023-06-29 09:13:44 -07:00
Lily Foster
86f94c3e45
prefetch-yarn-deps: add tests passthru 2023-06-29 11:11:41 -04:00
Lily Foster
ba7a869a9a
prefetch-npm-deps: add env_logger 2023-06-29 09:51:37 -04:00
linsui
e05bacf4e8 importCargoLock: fix git dep config file 2023-06-29 21:47:27 +08:00
Lily Foster
d2897e463d
prefetch-npm-deps: use isahc instead of ureq 2023-06-29 09:46:35 -04:00
Lily Foster
aa2f51f0d2
prefetch-npm-deps: update deps and base64 usage 2023-06-29 09:46:35 -04:00
Lily Foster
9af0383296
prefetch-npm-deps: support NIX_BUILD_CORES 2023-06-29 09:46:33 -04:00
Lily Foster
19e48f0da9
buildNpmPackage: add npmWorkspace and npmPruneFlags args 2023-06-29 07:42:25 -04:00
Sandro
198bd0a4a7
Merge pull request #239622 from corngood/dotnet-misc
dotnet: misc fixes
2023-06-28 23:41:18 +02:00
Artturin
9999bf7a21 treewide: gobject-introspection from buildInputs to nativeBuildInputs
gobject-introspection should be in nativeBuildInputs for cross to work
properly (so propagations and hook work properly)
2023-06-28 22:33:40 +03:00
Lily Foster
33898b9ad7
Merge pull request #238452 from XYenon/master
prefetch-npm-deps: add retry
2023-06-28 14:01:57 -04:00
XYenon
4915de2600 prefetch-npm-deps: add retry 2023-06-29 00:20:25 +08:00
Winter
c9abff9027 buildNpmPackage: add lilyinstarlight as maintainer/code owner
This is long overdue, Lily has done more than me for Node.js in Nixpkgs
by this point.
2023-06-27 14:59:40 -04:00
Lily Foster
5c32e0ba7c
prefetch-yarn-deps: add --fixup-lockfile flag to fixup a yarn.lock (#214062)
The flag iterates through the lockfile entries, rewrites `resolved` URLs
to those that will be in the cache (like `fixup_yarn_lock` from
yarn2nix), removes `integrity` for git deps whose hash won't match the
reproducible repacking that the fetcher does, writes the amended
lockfile, and exits.
2023-06-27 20:27:33 +02:00
Janik
974b43038e
Merge pull request #236976 from amarshall/zip-reproducible 2023-06-27 00:24:36 +02:00
github-actions[bot]
4e9dcbbbc6
Merge master into staging-next 2023-06-26 18:01:29 +00:00
Michele Guerini Rocco
9e4e0807d2
Merge pull request #239658 from rnhmjoj/pr-compress-fw
compressFirmwareXz: preserve meta attributes
2023-06-26 17:25:16 +02:00
github-actions[bot]
2c439c14b6
Merge master into staging-next 2023-06-25 18:01:21 +00:00
Felix Buehler
6672dde558 treewide: use optionalAttrs instead of 'else {}' 2023-06-25 11:01:34 -03:00
github-actions[bot]
aa5d107299
Merge master into staging-next 2023-06-25 12:01:14 +00:00
Robert Scott
db3e94c3b2 hardening flags: enable fortify3 by default 2023-06-25 11:50:46 +01:00
rnhmjoj
4124eb7bd5
compressFirmwareXz: preserve meta attributes
Among other things, this preserves the package priority, which is
important when building the `hardware.firmware` environment in NixOS.
2023-06-25 11:08:32 +02:00
David McFarland
f2027f4960 nuget-to-nix: set nullglob
This stops nuget-to-nix from failing when there are no packages in the
output.
2023-06-24 19:13:16 -03:00
David McFarland
bca3a9edfc buildDotnetModule: fix indentation 2023-06-24 19:13:16 -03:00
David McFarland
afe26f5f1d buildDotnetModule: remove fetch-deps from tool packages
This helps if we want to run nixpkgs.*.fetch-deps.  Previously
e.g. fable.fetch-deps existed, but was broken.
2023-06-24 19:13:16 -03:00
David McFarland
d6fa0f0a26 buildDotnetModule: use tmp file for fetch-deps output 2023-06-24 19:13:16 -03:00
David McFarland
cf9976de74 buildDotnetModule: unset TMPDIR instead of setting it empty
This was breaking nix-prefetch-url when running fetch-deps in nix-shell.

e.g.

    $ TMPDIR= nix-prefetch-url foo
    nix-prefetch-url: src/libutil/util.cc:119: nix::Path
    nix::canonPath(PathView, bool): Assertion `path != ""' failed. [2]
    881198 abort (core dumped)
2023-06-24 19:13:16 -03:00
David McFarland
9c16cea2bb buildDotnetModule: allow lockFile path to be set in nugetDeps
This allows fetch-deps to find the lock-file for roslyn.
2023-06-24 17:17:41 -03:00
Felix Buehler
f3719756b5 treewide: use optionalString instead of 'then ""' 2023-06-24 20:19:19 +02:00
Fabián Heredia Montiel
79dfc50bb8 lib.systems.architectures: add microarchitecture levels
Variation on:
- https://github.com/NixOS/nixpkgs/pull/208398
- https://github.com/NixOS/nixpkgs/pull/224978

Co-authored-by: Sandro Jäckel <sandro.jaeckel@gmail.com>
Co-authored-by: Shawn8901 <shawn8901@googlemail.com>
Co-authored-by: AveryanAlex <alex@averyan.ru>
2023-06-24 00:50:40 -06:00
Mario Rodas
922d55bf2d fetchgit: add a default NIX_BUILD_CORES variable
NIX_BUILD_CORES might not be defined at runtime, so the command would
fail.
2023-06-24 04:20:00 +00:00
Peter Waller
e0d2053b87 build-support: Use response-expanded params in pie test
When a response file is in use, "$*" contains the response file and not
the parameters; both the linker and compiler wrappers are updated to use
the response-expanded params.

The compiler driver likes to pass parameters to the linker via a
response file, including -shared.

LLD rejects the combination of (-shared -pie), whereas other linkers
silently ignore the contradiction:

```
ld.lld: error: -shared and -pie may not be used together
```

This breaks certain configurations using LLD as a linker.

Changing `add-hardening.sh` results in a full rebuild. To avoid the
rebuild, here is a quick test case which shows the new hardening script
allows the link to succeed:

```
{ pkgs ? import <nixpkgs> {} }:

let
  # gcc silently accepts -shared -pie together, lld does not.
  linker = pkgs.wrapBintoolsWith { bintools = pkgs.llvmPackages.lld; };

  patchWrapper = prev: prev.overrideAttrs (final: prev: let
    prevScript = builtins.match (".*(/nix/store/[a-z0-9]+-add-hardening.sh).*") prev.postFixup;
  in {
    postFixup = (builtins.replaceStrings prevScript ["${./new-add-hardening.sh}"] prev.postFixup);
  });
in

pkgs.stdenv.mkDerivation {
  name = "nixpkgs-hardening-bug";

  src = pkgs.writeText "src.c" "int main(int argc, char* argv[]) { return 0; }";
  NIX_HARDENING_ENABLE = "pie";

  unpackPhase = ":";
  buildPhase = ''
    $CC -c -o src.o $src
    bash -x ${patchWrapper linker}/bin/ld.lld -o $out @${pkgs.writeText "responsefile" "-shared"} src.o
  '';
}
```

Fixes: #178162
Signed-off-by: Peter Waller <p@pwaller.net>
2023-06-23 11:09:49 +01:00
github-actions[bot]
22e89a1418
Merge staging-next into staging 2023-06-23 00:03:31 +00:00
Sandro
67f4868a43
Merge pull request #233422 from mdarocha/crossgen-fix
buildDotnetModule: support ReadyToRun and native binaries inside nuget files
2023-06-22 22:26:53 +02:00
Guillaume Girol
a3a23358fc
Merge pull request #237235 from alyssais/vmTools-deb
nixosTests.os-prober: fix
2023-06-22 19:14:11 +00:00
github-actions[bot]
15a20aee5e
Merge staging-next into staging 2023-06-22 18:01:45 +00:00
figsoda
ca96e292cf
Merge pull request #238593 from figsoda/maturin 2023-06-22 11:36:58 -04:00
mdarocha
29e770e0eb buildDotnetModule: support native binaries in nuget packages
This helps with ie. crossgen2 building, and packages that use protoc
2023-06-21 17:06:30 +02:00
mdarocha
c51141d997 buildDotnetModule: pass runtimeId whenever possible and disable trimming when not allowed.
This fixes up some build errors
2023-06-21 17:06:30 +02:00
github-actions[bot]
c562a088e4
Merge staging-next into staging 2023-06-21 12:02:27 +00:00
Domen Kožar
b51a53644c
Merge pull request #238733 from domenkozar/fetchgit-submodules-parallel
fetchgit: fetch submodules in parallel
2023-06-21 08:55:21 +01:00
figsoda
82ee5cb909
Merge pull request #236490 from alyssais/cargo-strip 2023-06-20 20:03:11 -04:00
github-actions[bot]
74d0f1c452
Merge staging-next into staging 2023-06-21 00:03:02 +00:00
mdarocha
3408b40fb5 buildDotnetGlobalTool: init 2023-06-20 17:20:52 +02:00
mdarocha
abf6081bc2 buildDotnetModule: add useDotnetFromEnv option
This causes an alternative wrapper to be used, that takes the dotnet
runtime from the environment.
2023-06-20 17:20:51 +02:00
mdarocha
6c639e869c buildDotnetModule: tweaks to support paket
Projects that use paket, and have it setup so that it's executed
transparently during "dotnet restore" as a dotnet tool should now work.
2023-06-20 17:20:51 +02:00