
gdt at ir
Jul 26, 2006, 8:48 AM
Post #2 of 4
(908 views)
Permalink
|
|
Re: GnuPG 1.4.4 does not compile on NetBSD is curl library is installed from pkgsrc
[In reply to]
|
|
"Gilbert Fernandes" <gilboooo[at]gmail.com> writes: executive summary: GnuPG has a bug, which is that LIBCURL_CPPFLAGS is not included for gpgkeys_finger.c (which includes ksutil.h which includes curl/libcurl.h, and thus it needs it). add gpgkeys_finger_CPPFLAGS = @LIBCURL_CPPFLAGS@ gpgkeys_finger_LDADD = @LIBCURL@ @GETOPT@ to keyserver/Makefile.am, and probably similarly for fake curl. long version: > when GnuPG 1.4.4 is compiled on NetBSD 3.0 it works fine. The configure > does its job, as the make and make install. Is there some reason you aren't using pkgsrc? If you were, you wouldn't be having this problem. > But if the curl library has been installed on the system (on one of > my computers, it has been installed as dependency of clamav) then > the make fails because a file does not find the proper include file > at the right place. > > In file included from gpgkeys_finger.c:48: > ksutil.h:26:23: curl/curl.h: No such file or directory Are you passing CPPFLAGS of -I/usr/pkg/include? (I assuming not; if you did gnupg would work. In general on NetBSD when using dependencies from pkgsrc you need to do that.) curl supports both pkg-config and curl-config. gnupg seems to use curl-config. > 1. GnuPG make file is adapted to NetBSD > 2. The curl package maintener does a change that allows GnuPG make file > to find curl where it should be. > 3. #ifdef __NETBSD__ include the curl file located in /usr/pkg/include/curl/ I don't know what 1 means, but really (see above) there's a small bug to fix which is independent of NetBSD. 2 is not the answer because both curl-config and the curl pkg-config file seem correct. 3 is wrong because pkgsrc isn't just NetBSD, and someone might have curl elsewhere. Which leaves us with 1. Use pkgsrc, which sets up CPPFLAGS and works fine. 2. Fix the bug in gnupg makefiles On my system (3.99), with curl, I did a manual build of gnupg 1.4.4. I notice in config.status that curl was found and the variables look ok s,@LIBCURL_CPPFLAGS@,-I/usr/pkg/include,;t t s,@LIBCURL@,-L/usr/pkg/lib -lcurl -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -lidn -lssl -lcrypto -lz,;t t but in keyserver it seems that LIBCURL_CPPFLAGS are not included: gdt 35 ~/SOFTWARE/GNUPG/gnupg-1.4.4/keyserver > gmake if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../intl -g -O2 -Wall -MT gpgkeys_finger.o -MD -MP -MF ".deps/gpgkeys_finger.Tpo" -c -o gpgkeys_finger.o gpgkeys_finger.c; \ then mv -f ".deps/gpgkeys_finger.Tpo" ".deps/gpgkeys_finger.Po"; else rm -f ".deps/gpgkeys_finger.Tpo"; exit 1; fi In file included from gpgkeys_finger.c:48: ksutil.h:26:23: curl/curl.h: No such file or directory In file included from gpgkeys_finger.c:48: ksutil.h:108: error: syntax error before "error" gmake: *** [gpgkeys_finger.o] Error 1 That's because of a bug in Makefile.am, shown at the very top of this message. (Werner: hope that's "trivial"; my papers are not in order :-) -- Greg Troxel <gdt[at]ir.bbn.com>
|