Commit Graph

512 Commits

Author SHA1 Message Date
Artturi
6096abb008
Merge pull request #255208 from rhendric/rhendric/make-binary-wrapper 2023-09-20 09:41:44 +03:00
Ryan Hendrickson
df8b425f89 makeBinaryWrapper: protect wildcards in flags 2023-09-18 02:49:33 -04:00
Nick Cao
c6e11d15ce
makeBinaryWrapper.extractCmd: fix use in cross compilation 2023-09-16 22:17:22 -04:00
toonn
924efe5313
Merge pull request #249268 from Enzime/remmina-bundle
writeDarwinBundle: use binary wrapper
2023-09-14 15:05:13 +02:00
Artturi
31c9deb4f7
Merge pull request #218783 from timbertson/stripExcludeExtensions 2023-09-05 00:37:17 +03:00
Artturi
d5139e3017
Merge pull request #245909 from Artturin/setupshchanges2 2023-09-04 20:41:16 +03:00
Artturin
fa98c56f75 setup-hooks/separate-debug-info.sh: Warn if necessary variables are not set
`$OBJCOPY` is not available in bootstrap tools
`stdenv.__bootPackages.stdenv.__bootPackages.stdenv.__bootPackages.stdenv.__bootPackages.stdenv.__bootPackages.bash.stdenv.cc.bintools`
2023-09-03 23:02:45 +03:00
Tim Cuthbertson
0bffcc3f3c setup-hooks/strip: add stripExclude 2023-09-03 20:18:10 +03:00
Artturin
1db1e3c467 stdenv: Fix possible issues discovered with
```
set -o errexit -o nounset -o pipefail
shopt -s inherit_errexit
```

in `stdenv/default-builder.sh`
2023-09-02 03:25:36 +03:00
brano543
1086f093a9 win-dll-links: also copy dll from dependencies
Fixes running `pkgsCross.mingwW64._7zz` in wine.

Fixes issue 38451

```
tree result/bin
result/bin
├── 7zz.exe
└── mcfgthread-12.dll -> ../../wmgj476qjfw26f9aij1d64lxrjfv6kk0-mcfgthreads-x86_64-w64-mingw32-git/bin/mcfgthread-12.dll
```

Co-authored-by: marius david <marius@mariusdavid.fr>
2023-08-31 21:47:48 +03:00
markuskowa
212d454c2a
Merge pull request #246867 from markuskowa/add-mpi-hook
add mpiCheckPhaseHook
2023-08-26 11:54:56 +02:00
Markus Kowalewski
587a19e43c mpiCheckPhaseHook: add new setup hook for MPI aware check phases
Add this hook to checkPhase to allow for running MPI application in
the sandbox. It detects the MPI implementations and sets the respective
environment variables.
2023-08-22 23:27:47 +02:00
Michael Hoang
66884a4912 writeDarwinBundle: use binary wrapper
Previously `writeDarwinBundle` used a handcrafted shell wrapper, however
this causes issues on Apple Silicon Macs as script-only application
bundles are always run under Rosetta[0][1].

Replacing the handcrafted shell wrapper with a binary wrapper allows
apps to run natively instead of requiring Rosetta. However, this means
we can no longer use `$1` and `$@`.

After checking nearly every current usage of `desktopToDarwinBundle`,
there were no apps that used `%[fFuU]` before the last argument, meaning
removing them naively is good enough for the current apps.

[0]: https://developer.apple.com/documentation/apple-silicon/building-a-universal-macos-binary
[1]: https://stackoverflow.com/a/68208374
2023-08-21 13:29:12 +10: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
Theodore Ni
ca73fb024a
makeBinaryWrapper: remove cc dependency on aarch64-darwin 2023-08-04 14:12:56 -07:00
Artturi
c0731df13c
Merge pull request #238525 from tie/patch-shebang-update-store-paths 2023-08-04 01:21:07 +03: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
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
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
Ivan Trubach
ebd4619053 patch-shebangs: add a flag to update shebangs with store paths
This change adds a flag to update shebang paths that point to the Nix
store. This is particularly useful when a cross-compiled package uses
same script at compile-time and run-time, but the interpreter must be
changed since hostPlatform != buildPlatform.
2023-06-19 09:01:21 +03:00
James Kay
40fbc97988 makeWrapper: fix flag handling
When `--add-flags` is not used, `flagsBefore` is unset.  This causes an error when invoking `makeWrapper` from a context that sets `-o nounset`, as is done in `buildDotnetModule`.
This change makes `makeWrapper` safe for use in these conditions.
2023-06-11 23:14:54 +03:00
fetsorn
3565fdf30c pkgs/build-support: fix typos 2023-05-31 04:00:14 +04:00
Guillaume Maudoux
dd0dee4c97 autoPatchelfHook: Add support for single files 2023-05-30 13:48:30 +02:00
Vladimír Čunát
50983f16a3
Merge #229154: staging: make wrapProgram<Type> use the right wrapper
...into staging
2023-05-01 10:17:18 +02:00
github-actions[bot]
fa2258cd02
Merge master into staging-next 2023-05-01 00:02:46 +00:00
Artturi
e6090800bd
Merge pull request #224178 from Yarny0/patch-ppd-files-meta 2023-04-30 21:15:46 +03:00
K900
a3cad4378e pkgs/build-support: call the right makeWrapper function from wrapProgram<Type> 2023-04-30 20:35:27 +03:00
github-actions[bot]
3f176be544
Merge staging-next into staging 2023-04-25 18:01:56 +00:00
github-actions[bot]
2e27a36b4b
Merge master into staging-next 2023-04-25 18:01:17 +00:00
toonn
acc386e521
Merge pull request #223759 from 2xsaiko/outgoing/darwin-bundle
desktopToDarwinBundle: Parsing & icon conversion fixes
2023-04-25 15:38:05 +02:00
Guillaume Girol
56009de17d
Merge pull request #227762 from raboof/separate-debug-info-deterministically
setup-hooks/separate-debug-info.sh: make deterministic
2023-04-23 13:41:09 +00:00
Arnout Engelen
9156daa547
setup-hooks/separate-debug-info.sh: make deterministic
If multiple files with the same build id were found, we silently randomly
overwrote one with the other.

Change the order to make the output deterministic, and emit a
warning when overwriting.
2023-04-23 11:53:47 +02:00
github-actions[bot]
5f6ff7e8cf
Merge staging-next into staging 2023-04-15 00:02:38 +00:00
Weijia Wang
ddd8604a3b moveBuildTree: init 2023-04-14 21:08:27 +03:00
Someone Serge
b612fe36b2
autoPatchelfHook: add appendRunpaths argument 2023-04-13 19:12:37 +03:00
Yarny0
fcbf9c6415 patch-ppd-files: use meta and passthru directly
When I authored the nix file in
335a9083b0,
`makeSetupHook` didn't know about `passthru` or `meta`.
So I foisted these attributes on the
derivation with `.overrideAttrs`.

Commits ba895a7da8 and
48034046bf enabled
`makeSetupHook` to receive these attributes directly.
It seems advisable to use that instead of `.overrideAttrs`.
2023-04-11 16:58:18 +02:00
Sandro
4806f62694
Merge pull request #224669 from raboof/preserve-dates-while-stripping 2023-04-09 03:28:06 +02:00
Arnout Engelen
112150ec70
setup-hooks/strip.sh: preserve file dates
AFAIK this doesn't have a noticable effect for typical
Linux executables, but will avoid setting the timestamp
inside the file for Windows executables to the build
date.
2023-04-04 18:52:39 +02:00
Marco Rebhan
f78175ad35 desktopToDarwinBundle: Fix icon selection algorithm
Now, the fallback icon is only used after considering all possible icons
instead of only the first one.
2023-03-29 16:42:57 +02:00
Marco Rebhan
d9a07bcd41 desktopToDarwinBundle: Add debug outputs for icon conversion 2023-03-29 16:42:57 +02:00
Marco Rebhan
b48f6118c4
desktopToDarwinBundle: Return at most 1 literal match from desktop file
This fixes multiple entries being returned from getDesktopParam, e.g. in the
case of localized key names: 'Name', 'Name[de]', and makes this function to
match this key exactly instead of a pattern for the same reason.
2023-03-26 12:47:52 +02:00
Sergei Trofimovich
22b935ace8
Merge pull request #219683 from symphorien/separatedebuginfo_static
separate-debug-info.sh: succeed when output only contains static libs
2023-03-12 17:02:03 +00:00
Guillaume Girol
94c7bf576a separate-debug-info.sh: succeed when output does not contain elf files
Currently, separate-debug-info adds a debug output, and the build fail when it is
not created. the output is only created when at least one elf file is
stripped.
As a result, adding separateDebugInfo = true on a lib will break the
static build (unless the lib also contains an executable). In order to
not have to remember to add an exception every time, let's just create
the debug output unconditionally.
2023-03-12 12:00:00 +00:00
Artturi
3b7e0ed336
Merge pull request #219182 from Artturin/multipleoutputsshdirnotempty 2023-03-10 23:46:23 +02:00
Artturin
9c72ea8725 multiple-outputs.sh: silence 'rmdir: failed to remove ... Directory not empty'
++ rmdir /nix/store/6f233lsgbqv87w4nmzpsdaydwhyapps6-at-spi2-core-aarch64-unknown-linux-gnu-2.46.0/lib
rmdir: failed to remove '/nix/store/6f233lsgbqv87w4nmzpsdaydwhyapps6-at-spi2-core-aarch64-unknown-linux-gnu-2.46.0/lib': Directory not empty
2023-03-04 14:43:38 +02:00