Closed lfam closed 8 years ago
@lfam: I am not super familiar with Guix, but at some point I had Guix installed over my existing GNU/Linux system (as described here), so I have an idea of what's going on. I think the culprit is line 187 of the Makefile
, which defines the signify
target like this:
signify: $O $(PKG_LDLIBS)
$(CC) $(LDFLAGS) -o $@ $^
The above scheme works well when building a static bundled libbsd
, because then can point to the locally built libbsd.a
and make
will take care to build it as a dependency.
In your case pkg-config
is adding -L/gnue/store/<hash>-libbsd-0.8.2/lib
to $(PKG_LDLIBS)
, which of course cannot be resolved as a target. In a traditional filesystem layout, the variable contains only -lbsd
, which make
will resolve as the libbsd.so
file from the libraries search path.
I can cook a patch for this which puts the flags obtained from pkg-config
always in the command line for linking, and the path to the locally-built libbsd.a
in the dependencies list (when enabled). It would be really helpful if you could try building from a branch before pushing the commit to master
.
@lfam: Could you please check building in a Guix box from the pkgconf-flags-in-command
branch to check that the build completes succesfully? Unfortunately I don't have my local Guix installation so it's gonna be much faster if you could verify that for me. Thank you in advance!
That change made it work for me — thank you!
@lfam: Great, thanks for confirming that it worked. I have merged the branch to master
and tagged v17
. That way you can update your Guix package to use v17
, which contains the fix for the Makefile
.
Thanks again for reporting and for your help checking ythe fix :smile:
Hi!
I've been working on packaging signify for GNU Guix [0].
My packaging of version 14 works fine, but the changes to the build system in version 15 (and into 16) seem to have broken my package. Specifically, the compilation fails with this error:
make: *\ No rule to make target '-L/gnu/store/gjfw0kz6pyxa9nvq958q5ha7igfhij1c-libbsd-0.8.2/lib', needed by 'signify'. Stop.
The only option that I am passing to Make is to set the PREFIX to the output directory, which is something like /gnu/store/...-signify-16/, where '...' is a hash.
Guix is an unusual environment, so please feel free to ask for more information about what's happening on my end.
[0] http://www.gnu.org/software/guix/