Robert Hensing
9fb7d91888
Merge pull request #124556 from bergkvist/bergkvist/make-c-wrapper
...
Generate tiny compiled binary for wrapping executables
2021-12-10 00:45:30 +01:00
Jacek Galowicz
d5e028a441
make-binary-wrapper: Make CC substitution safer
2021-12-09 17:22:55 +01:00
Jacek Galowicz
87fcb7b79e
make-binary-wrapper: Add -euo pipefail to bash script
2021-12-09 17:22:55 +01:00
Jacek Galowicz
b7e00ed89e
make-binary-wrapper: Add -Wall -Werror -Wpedantic
2021-12-09 17:22:55 +01:00
Tobias Bergkvist
df13841609
Merge branch 'bergkvist/make-c-wrapper' into make-c-wrapper
2021-12-09 13:00:24 +01:00
Jacek Galowicz
177f0a6eed
make makeWrapper and makeBinaryWrapper drop-in-replaceable
2021-12-09 11:32:29 +00:00
Doron Behar
32d566e1b9
wrapProgramBinary -> binaryWrapProgram
2021-12-08 18:59:38 +02:00
Jacek Galowicz
f3b16a6b5d
Fix typo in make-binary-wrapper
2021-12-08 10:26:17 +00:00
Tobias Bergkvist
7cf1aa102a
Separate out indentation responsibility to indent4 in makeCWrapper using awk.
...
Generated code no longer needs to worry about its own indent level in the output.
2021-12-07 17:42:54 +01:00
Tobias Bergkvist
2b5a2d4a8e
Switch to embedding input arguments instead of generated C code in binary.
2021-12-07 01:50:38 +01:00
Tobias Bergkvist
64da82731d
Add new argument: --chdir DIR (alternative to --run "cd DIR" in makeWrapper)
2021-12-02 03:39:25 +01:00
Tobias Bergkvist
a47286f0a0
Add argument --inherit-argv0 to replace use case --argv0 '$0'
. Fix wrapProgramBinary by using this new argument
2021-12-02 02:29:00 +01:00
Tobias Bergkvist
e3c94f3d6b
Use cc instead of gcc in makeBinaryWrapper
2021-12-02 02:07:17 +01:00
Tobias Bergkvist
a1e62262bc
Replace concat3 with asprintf in set_env_prefix and set_env_suffix.
2021-12-01 23:27:26 +01:00
Tobias Bergkvist
3997e9de67
Switch from malloc to calloc in addFlags
2021-12-01 23:07:30 +01:00
Tobias Bergkvist
97d62a90f5
Switch from exit(1) to abort() in assert_success
2021-12-01 22:56:18 +01:00
Tobias Bergkvist
4e55d34535
Add assertValidEnvName and check that variable name is valid during code generation. Add assert_success, and assert that setenv/unsetenv succeeds to crash if they don't
2021-12-01 22:49:20 +01:00
Robert Hensing
9005cb8835
Merge pull request #145841 from l0b0/fix-indentation
...
Fix indentation
2021-11-18 00:38:59 +01:00
github-actions[bot]
f8cf67790e
Merge master into staging-next
2021-11-17 06:01:28 +00:00
Sandro
e0d488f1a3
Merge pull request #140911 from sersorrel/copy-desktop-items
2021-11-17 02:40:57 +01:00
Victor Engmark
57b496ea98
misc: Replace tab indentation with spaces
...
I've tried to be consistent, using four or eight spaces to line up
with existing code.
2021-11-14 16:04:46 +13:00
John Ericson
5a7f6e1f18
Merge pull request #144839 from l0b0/fix-redirect
...
pkgs/build-support: Redirect to standard error rather than file "2"
2021-11-13 21:56:43 -05:00
Victor Engmark
8ed1104a4a
pkgs/build-support: Redirect to standard error rather than file "2"
2021-11-11 18:14:21 +13:00
Tobias Bergkvist
3a014be2f2
Assert that malloc does not return a NULL pointer for better error messages + to satisfy static analysis tools.
2021-11-09 02:56:32 +01:00
Alyssa Ross
3f01b576af
Merge remote-tracking branch 'nixpkgs/staging-next' into staging
...
Conflicts:
nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
nixos/doc/manual/release-notes/rl-2111.section.md
2021-10-28 16:07:38 +00:00
github-actions[bot]
22401dcc39
Merge master into staging-next
2021-10-27 18:01:02 +00:00
bb010g
29fedf210f
canonicalize-jars-hook: add
...
A build hook to run functions previously only implemented privately in
`pkgs/build-support/release/functions.sh`.
2021-10-27 13:21:27 +03:00
John Ericson
e2eccfc521
Merge pull request #141072 from r-burns/validatepkgconfig-cross
...
[staging] validatePkgConfig: fix cross-compilation
2021-10-23 23:09:42 -04:00
Ryan Burns
9fb1f66d30
validatePkgConfig: fix cross-compilation
...
Fixes cross-compilation for duktape and pugixml
2021-10-23 15:50:21 -07:00
Tobias Bergkvist
1218b82bce
Move assertExecutable from makeCWrapper to makeBinaryWrapper to ensure that makeCWrapper is a pure function
2021-10-19 14:37:05 +02:00
Doron Behar
c310cb0d94
makeBinaryWrapper: add wrapProgramBinary (like wrapProgram)
2021-10-19 05:30:42 -07:00
Doron Behar
a45c5db391
makeBinaryWrapper: Assert $1 is executable
2021-10-19 05:30:42 -07:00
ash
c6b0247067
copyDesktopItems: fix handling of plain paths
2021-10-08 01:36:13 +01:00
sterni
5d0972c63b
Merge pull request #138289 from sternenseemann/fix-non-gnu-strip
...
stdenv: move --enable-deterministic-archives flag into GNU wrapper
2021-10-07 12:29:59 +02:00
Tobias Bergkvist
adef70ce7c
Specify uses_prefix, uses_suffix and uses_concat3 as local vars. Make sure errors in makeCWrapper are located next to the line with the issue.
2021-10-04 14:29:22 +02:00
Tobias Bergkvist
3df841bb99
Make error messages more consistent
2021-10-01 18:57:26 +02:00
Tobias Bergkvist
d930fecc3c
Return an #error macro if the wrong number of arguments are supplied
2021-10-01 18:51:19 +02:00
Tobias Bergkvist
b62216a211
Fix shellcheck warnings. Use single quotes for printf format strings. Switch to strncpy in concat3. Use multiline strings to print C functions. Switch from if/elif to case.
2021-10-01 17:43:23 +02:00
Noah Fontes
a7f5e8321e
autoPatchelfHook: fix packages that use stdenvNoCC
...
autoPatchelfHook actually doesn't depend on stdenv and only needs
bintools (with its wrapper). This change uses $NIX_BINTOOLS instead of
$NIX_CC and makes the dependency on bintools explicit.
2021-09-18 21:58:02 -07:00
Noah Fontes
4765a3e153
autoPatchelfHook: improve arch/ABI compatibility
...
Fully enabling crossSystem support for autoPatchelfHook came with some
perhaps unintended consequences of being a bit more aggressive about
patching ELF files from architectures/ABIs that differ from the target
(previously, those files would be ignored because ldd usually couldn't
handle them).
This change adds architecture and rough OS ABI detection to the script
so that it doesn't try to blindly replace the interpreter of files that
can't possibly use that interpreter, and also makes sure it doesn't
accidentally use libraries of other architectures/ABIs.
2021-09-18 21:57:08 -07:00
sternenseemann
11fe2fc3cf
stdenv: move --enable-deterministic-archives flag into GNU wrapper
...
`--enable-deterministic-archives` is a GNU specific strip flag and
causes other strip implementations (for example LLVM's, see #138013 )
to fail. Since strip failures are ignored, this means that stripping
doesn't work at all in certain situation (causing unnecessary
dependencies etc.).
To fix this, no longer pass `--enable-deterministic-archives`
unconditionally, but instead add it in a GNU binutils specific strip
wrapper only.
`commonStripFlags` was only used for this flag, so we can remove
it altogether.
Future work could be to make a generic strip wrapper, with support for
nix-support/strip-flags-{before,after} and NIX_STRIP_FLAGS_{BEFORE,AFTER}.
This possibly overkill and unnecessary though -- also with the
additional challenge of incorporating the darwin strip wrapper somehow.
2021-09-18 15:11:17 +02:00
github-actions[bot]
0f78d9c4b7
Merge staging-next into staging
2021-09-15 00:02:12 +00:00
github-actions[bot]
728f30ca03
Merge master into staging-next
2021-09-15 00:01:33 +00:00
Noah Fontes
b79483d2b7
autoPatchelfHook: fix detection under crossSystem
...
In #84415 , autoPatchelfHook was taught to use the correct path to the
readelf binary when a crossSystem is specified. Unfortunately, the
remainder of the functionality in the script depended on ldd, which only
reads ELF files of its own architecture. It has the further unfortunate
quality of not reporting any useful error, but rather that the file is
not a dynamic executable.
This change uses patchelf to directly analyze the DT_NEEDED tags in the
target files instead, which correctly works across architectures. It
also updates the use of objdump to be prefix-aware $OBJDUMP (which would
have been required in the PR mentioned above, but we never made it that
far into the script execution).
2021-09-12 15:07:15 -07:00
Artturi
fb2781ff0a
Merge pull request #134881 from OmnipotentEntity/dont-compress-xz
...
setup-hooks: compress-man-pages.sh: Do not attempt to compress .xz files
2021-09-11 04:03:12 +03:00
Martin Weinelt
7f732aca66
Revert "Merge remote-tracking branch 'origin/python-unstable' into staging-next"
...
This reverts commit b041b2e1b2
, reversing
changes made to 5b6c2380ad
.
2021-09-05 15:02:25 +02:00
happysalada
5b86e637d7
move-docs.sh: simplify redundant conditional
...
remove impossible check for empty variable after it's been set twice
2021-08-30 10:27:45 +09:00
Tobias Bergkvist
b58c857bfb
Switch to using strlen in concat3Fn. Make sure uses-variables are local to improve purity of makeCWrapper. Refactor
2021-08-26 14:36:30 +02:00
Tobias Bergkvist
dcba4171d4
Add support for --add-flags, --prefix and --suffix
2021-08-23 23:44:57 +02:00
Michael Reilly
51f21e91e8
setup-hooks: compress-man-pages.sh: Do not attempt to compress .xz files
2021-08-19 17:13:05 -04:00