Source: dnsmasq Version: 2.80-1.1 Severity: important Tags: ftbfs patch Justification: fails to build from source (but built successfully in the past) User: debian-bsd@lists.debian.org Usertags: kfreebsd
Hello, Since 2.80-1.1, dnsmasq FTBFS on kfreebsd: x86_64-kfreebsd-gnu-gcc -Wl,-z,relro -Wl,-z,now -lbsd -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 tables.o loop.o inotify.o poll.o rrfilter.o edns0.o arp.o crypto.o dump.o ubus.o metrics.o -ldbus-1 -lidn2 -lnettle -lhogweed -lgmp /usr/bin/ld: tables.o: in function `add_to_ipset': ./debian/build/no-lua/tables.c:87: undefined reference to `strlcpy' collect2: error: ld returned 1 exit statuso The problem is that -lbsd is passed in LDFLAGS which is not suitable to add extra libraries. The attached patch fixes this, it also uses the libbsd overlay as suggested in: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=763693#10 Kind regards, Laurent Bigonville -- System Information: Debian Release: bullseye/sid APT prefers unstable-debug APT policy: (500, 'unstable-debug'), (500, 'unstable'), (1, 'experimental-debug'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 5.5.0-1-amd64 (SMP w/8 CPU cores) Locale: LANG=fr_BE.UTF-8, LC_CTYPE=fr_BE.UTF-8 (charmap=UTF-8), LANGUAGE=fr_BE:fr (charmap=UTF-8) Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: SELinux: enabled - Mode: Permissive - Policy name: refpolicy
diff -u dnsmasq-2.81/debian/control dnsmasq-2.81/debian/control --- dnsmasq-2.81/debian/control +++ dnsmasq-2.81/debian/control @@ -3,8 +3,9 @@ Priority: optional Build-depends: gettext, libnetfilter-conntrack-dev [linux-any], libidn2-dev, libdbus-1-dev (>=0.61), libgmp-dev, - nettle-dev (>=2.4-3), libbsd-dev [!linux-any], - liblua5.2-dev, dh-runit, debhelper-compat (= 10) + nettle-dev (>=2.4-3), libbsd-dev [kfreebsd-any], + liblua5.2-dev, dh-runit, debhelper-compat (= 10), + pkg-config Maintainer: Simon Kelley <si...@thekelleys.org.uk> Homepage: http://www.thekelleys.org.uk/dnsmasq/doc.html Vcs-Git: http://thekelleys.org.uk/git/dnsmasq.git diff -u dnsmasq-2.81/debian/rules dnsmasq-2.81/debian/rules --- dnsmasq-2.81/debian/rules +++ dnsmasq-2.81/debian/rules @@ -98,9 +98,10 @@ DEB_COPTS += -DHAVE_DNSSEC endif -ifneq ($(DEB_HOST_ARCH_OS),linux) +ifeq ($(DEB_HOST_ARCH_OS),kfreebsd) # For strlcpy in FreeBSD - LDFLAGS += -lbsd + LIBS += $(shell ${PKG_CONFIG} --libs libbsd-overlay) + CFLAGS += $(shell ${PKG_CONFIG} --cflags libbsd-overlay) endif define build_tree @@ -204,7 +205,7 @@ binary-arch: checkroot $(call build_tree,debian/trees/base) - make $(TARGET) BUILDDIR=debian/build/no-lua PREFIX=/usr DESTDIR=`pwd`/debian/trees/base CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" COPTS="$(DEB_COPTS)" CC=$(CC) PKG_CONFIG=$(PKG_CONFIG) + make $(TARGET) BUILDDIR=debian/build/no-lua PREFIX=/usr DESTDIR=`pwd`/debian/trees/base CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" COPTS="$(DEB_COPTS)" CC=$(CC) PKG_CONFIG=$(PKG_CONFIG) LIBS="$(LIBS)" ifeq (,$(findstring nodoc,$(DEB_BUILD_OPTIONS))) $(call add_docs,debian/trees/base) else @@ -223,7 +224,7 @@ dpkg --build debian/trees/base .. $(call build_tree,debian/trees/lua-base) - make $(TARGET) BUILDDIR=debian/build/lua PREFIX=/usr DESTDIR=`pwd`/debian/trees/lua-base CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" COPTS="-DHAVE_LUASCRIPT $(DEB_COPTS)" CC=$(CC) PKG_CONFIG=$(PKG_CONFIG) + make $(TARGET) BUILDDIR=debian/build/lua PREFIX=/usr DESTDIR=`pwd`/debian/trees/lua-base CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" COPTS="-DHAVE_LUASCRIPT $(DEB_COPTS)" CC=$(CC) PKG_CONFIG=$(PKG_CONFIG) LIBS="$(LIBS)" ifeq (,$(findstring nodoc,$(DEB_BUILD_OPTIONS))) $(call add_docs,debian/trees/lua-base) else @@ -253,7 +254,7 @@ ifeq (,$(findstring nodoc,$(DEB_BUILD_OPTIONS))) install -m 755 -d debian/trees/utils/usr/share/man/man1 endif - make -C contrib/lease-tools PREFIX=/usr DESTDIR=`pwd`/debian/trees/utils CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" COPTS="$(DEB_COPTS)" CC=$(CC) PKG_CONFIG=$(PKG_CONFIG) + make -C contrib/lease-tools PREFIX=/usr DESTDIR=`pwd`/debian/trees/utils CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" COPTS="$(DEB_COPTS)" CC=$(CC) PKG_CONFIG=$(PKG_CONFIG) LIBS="$(LIBS)" install -m 755 contrib/lease-tools/dhcp_release debian/trees/utils/usr/bin/dhcp_release install -m 755 contrib/lease-tools/dhcp_release6 debian/trees/utils/usr/bin/dhcp_release6 install -m 755 contrib/lease-tools/dhcp_lease_time debian/trees/utils/usr/bin/dhcp_lease_time