Bug 190149

Summary: Missing dependency for dns/dnsmasq with DNSSEC
Product: Ports & Packages Reporter: Kevin Zheng <kevinz5000>
Component: Individual Port(s)Assignee: Matthias Andree <mandree>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   

Description Kevin Zheng 2014-05-23 18:50:00 UTC
cc  -o dnsmasq cache.o rfc1035.o util.o option.o forward.o network.o  dnsmasq.o dhcp.o lease.o rfc2131.o netlink.o dbus.o bpf.o  helper.o tftp.o log.o conntrack.o dhcp6.o rfc3315.o  dhcp-common.o outpacket.o radv.o slaac.o auth.o ipset.o  domain.o dnssec.o blockdata.o -lgmp -L/usr/local/lib  
dnssec.o: In function `dnssec_validate_by_ds':
dnssec.c:(.text+0x290): undefined reference to `nettle_hashes'
dnssec.c:(.text+0x29f): undefined reference to `nettle_hashes'
dnssec.c:(.text+0x2ac): undefined reference to `nettle_hashes'
dnssec.o: In function `validate_rrset':
dnssec.c:(.text+0x1253): undefined reference to `nettle_hashes'
dnssec.c:(.text+0x14c3): undefined reference to `nettle_hashes'
dnssec.o:dnssec.c:(.text+0x308c): more undefined references to `nettle_hashes' follow
dnssec.o: In function `verify':
dnssec.c:(.text+0x45fd): undefined reference to `nettle_rsa_public_key_init'
dnssec.c:(.text+0x4699): undefined reference to `nettle_dsa_public_key_init'
dnssec.c:(.text+0x46a6): undefined reference to `nettle_dsa_signature_init'
dnssec.c:(.text+0x4888): undefined reference to `nettle_dsa_sha1_verify_digest'
dnssec.c:(.text+0x48c8): undefined reference to `nettle_dsa_signature_init'
dnssec.c:(.text+0x491f): undefined reference to `nettle_secp_384r1'
dnssec.c:(.text+0x4964): undefined reference to `nettle_secp_256r1'
dnssec.c:(.text+0x4969): undefined reference to `nettle_ecc_point_init'
dnssec.c:(.text+0x4a22): undefined reference to `nettle_ecc_point_set'
dnssec.c:(.text+0x4abb): undefined reference to `nettle_ecdsa_verify'
dnssec.c:(.text+0x4bbf): undefined reference to `nettle_rsa_sha1_verify_digest'
dnssec.c:(.text+0x4be7): undefined reference to `nettle_rsa_md5_verify_digest'
dnssec.c:(.text+0x4c05): undefined reference to `nettle_rsa_sha256_verify_digest'
dnssec.c:(.text+0x4c23): undefined reference to `nettle_rsa_sha512_verify_digest'
cc: error: linker command failed with exit code 1 (use -v to see invocation)
*** Error code 1

Fix: 

Add dependency on security/nettle.
How-To-Repeat: Build this port in a clean room environment.
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2014-05-23 18:50:03 UTC
Responsible Changed
From-To: freebsd-ports-bugs->mandree

Over to maintainer (via the GNATS Auto Assign Tool)
Comment 2 Matthias Andree 2014-05-23 19:12:19 UTC
What is _your_ "clean room environment"?

I test built with poudriere and on redports, and DNSSEC is a default
option, and dnsmasq builds just fine.  libnettle is a requisite if the
DNSSEC option is enabled.

Make sure that nothing overrides LIBS or LDFLAGS. /etc/make.conf comes
to mind.

Please provide me with exact instructions to reproduce your problem.
Comment 3 Matthias Andree freebsd_committer freebsd_triage 2014-05-23 19:12:50 UTC
State Changed
From-To: open->feedback

waiting for submitter's feedback
Comment 4 Kevin Zheng 2014-05-23 21:26:08 UTC
Hi Matthias,

Sorry, I just took a look at the port 'Makefile' and realized that
nettle is indeed installed.

I believe the problem has to do with a missing dependency on pkgconf:

===>  Building for dnsmasq-2.71,1
/wrkdirs/usr/ports/dns/dnsmasq/work/dnsmasq-2.71/bld/pkg-wrapper:
pkg-config: not found
/wrkdirs/usr/ports/dns/dnsmasq/work/dnsmasq-2.71/bld/pkg-wrapper:
pkg-config: not found

Setting NLS seems to pull in pkgconf as a dependency. I do not set NLS,
which means that pkgconf is missing. Without pkgconf, the correct linker
flags are not there, which leads to a linker failure.

If this isn't the issue I'll attach my buildlog somewhere.

Thanks,
Kevin Zheng
Comment 5 dfilter service freebsd_committer freebsd_triage 2014-05-23 22:11:06 UTC
Author: mandree
Date: Fri May 23 21:11:02 2014
New Revision: 354963
URL: http://svnweb.freebsd.org/changeset/ports/354963
QAT: https://qat.redports.org/buildarchive/r354963/

Log:
  Fix build with DNSSEC and without NLS/DBUS options.
  
  PR:		190149
  Submitted by:	Kevin Zheng

Modified:
  head/dns/dnsmasq/Makefile

Modified: head/dns/dnsmasq/Makefile
==============================================================================
--- head/dns/dnsmasq/Makefile	Fri May 23 20:48:20 2014	(r354962)
+++ head/dns/dnsmasq/Makefile	Fri May 23 21:11:02 2014	(r354963)
@@ -77,6 +77,7 @@ USES+=		lua
 
 .if ${PORT_OPTIONS:MDNSSEC}
 CFLAGS+=	-DHAVE_DNSSEC
+USES+=		pkgconfig
 LIB_DEPENDS+=	libnettle.so:${PORTSDIR}/security/nettle
 LIB_DEPENDS+=	libgmp.so:${PORTSDIR}/math/gmp
 .endif
_______________________________________________
svn-ports-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-ports-all
To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
Comment 6 Matthias Andree freebsd_committer freebsd_triage 2014-05-23 22:11:52 UTC
State Changed
From-To: feedback->closed

Should be fixed in ports tree as of SVN r354963. Thanks for reporting 
this. (I've added pkgconfig to the DNSSEC requisites.)