Commit graph

7087 commits

Author SHA1 Message Date
github-actions[bot] 8a62479e06
Merge staging-next into staging 2023-08-20 00:03:24 +00:00
github-actions[bot] f6a4c6f912
Merge master into staging-next 2023-08-20 00:02:29 +00:00
Adam Joseph af0400c500
Merge pull request #193086 from Atry/stdenv.cc.libcxx
clang-wrapper and gcc-wrapper: add `stdenv.cc.libcxx` to detect the standard C++ library
2023-08-19 21:11:51 +00:00
github-actions[bot] 9145b3fd81
Merge staging-next into staging 2023-08-19 18:01:22 +00:00
github-actions[bot] b34f222b02
Merge master into staging-next 2023-08-19 18:00:51 +00:00
Robert Schütz 96e5dce777 buildNpmPackage: use installManPage 2023-08-19 10:04:00 -07:00
Robert Hensing 65d41fb588
Merge pull request #248735 from considerate/considerate/merge-docker
dockerTools: replace --no-clobber with --update=none
2023-08-19 17:58:40 +02:00
Viktor Kronvall ca072c08a2 dockerTools: replace fakechroot with proot
The command `fakechroot` errored with buffer overflows. The `proot`
command doesn't seem to suffer from the same problem. The tar command
creating the layer errors with "permission denied" on a bunch of paths
in /proc but the layer seems to get built anyway.
2023-08-19 23:34:21 +09:00
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