[Bug 269637] sysutils/nix: build fails - linker issues - undefined symbols from AWS libs
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 28 Feb 2023 21:48:32 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=269637
John Hein <jcfyecrayz@liamekaens.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #240342|0 |1
is obsolete| |
Attachment #240342|maintainer-approval?(0mp@Fr |
Flags|eeBSD.org) |
Attachment #240491| |maintainer-approval?(0mp@Fr
Flags| |eeBSD.org)
--- Comment #3 from John Hein <jcfyecrayz@liamekaens.com> ---
Created attachment 240491
--> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=240491&action=edit
[patch] update nix to 2.13.2 - resolves aws linking issues (v2)
Here is an update to the previous patch to include missing deps now needed for
1.13.2, get non-default PREFIX working, and get 'make test' fully working.
In a bit more detail v2 includes the following changes missed in the previous
patch:
- Add missing build deps: googletest, jq, nlohmann-json
- Add missing lib deps: USES+=libarchive
- Change HAS_CONFIGURE to GNU_CONFIGURE to get PREFIX working
- Specify GNU_CONFIGURE_MANPREFIX in share/ (matches plist) - needed after
switch to GNU_CONFIGURE which specifies --mandir.
- Use static patches instead of REINPLACE_CMD for linux/freebsd test
compatibility fixes (sed -i, wc -l, GNU vs BSD cmp & touch). Some
of these could be upstreamed.
- Fix getSelfExe for FreeBSD [[1]]. The patch for this can be
submitted upstream.
- Update _ALL_TESTS (also see files/Makefile.regentestlist to help
future developers when updating this port - the previous comment
instructions for updating _ALL_TESTS do not work for 2.13.2).
QA:
poudriere testport -P (ok - 12-stable (amd64 & i386))
portlint, portclippy (ok)
'make test' (ok, amd64)
[[1]] The getSelfExe() fix was noticed when the tests/flakes/flakes.sh test was
run:
error: executing 'nix': No such file or directory
error:
… while reading the response from the build hook
The reason is that src/libstore/build/hook-instance.c uses execv(3) which does
not use PATH from the environment (like execvp(3)). So it needs a full path to
the executable. And with the failure of getSelfExe() (before the patch), it
would just use "nix" (instead of "/usr/local/bin/nix"). Hence the ENOENT
failure.
--
You are receiving this mail because:
You are the assignee for the bug.