[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#763693: dnsmasq: FTBFS[kfreebsd]: missing strlcpy



Hi!

On Wed, 2014-10-01 at 22:24:29 +0100, Steven Chamberlain wrote:
> Package: dnsmasq
> Version: 2.72-1
> Severity: serious
> Tags: patch
> User: debian-bsd@lists.debian.org
> Usertags: kfreebsd

> dnsmasq FTBFS on kfreebsd, because it builds some code to use FreeBSD
> PF, which also uses strlcpy, which is only found in FreeBSD libc.
> 
> For Debian GNU/kFreeBSD it is possible to get this function from libbsd;
> patch attached!

> diff -Nru dnsmasq-2.72.orig/debian/rules dnsmasq-2.72/debian/rules
> --- dnsmasq-2.72.orig/debian/rules	2014-10-01 21:57:13.000000000 +0100
> +++ dnsmasq-2.72/debian/rules	2014-10-01 22:05:34.282734624 +0100
> @@ -83,6 +83,11 @@
>       DEB_COPTS += -DHAVE_DNSSEC
>  endif
>  
> +ifneq ($(DEB_BUILD_ARCH_OS),linux)

This should be DEB_HOST_ARCH_OS.

> +     # For strlcpy
> +     LDFLAGS += -lbsd
> +endif
> +
>  clean:
>  	$(checkdir)
>  	rm -rf debian/daemon debian/base debian/utils debian/*~ debian/files debian/substvars debian/utils-substvars
> diff -Nru dnsmasq-2.72.orig/src/tables.c dnsmasq-2.72/src/tables.c
> --- dnsmasq-2.72.orig/src/tables.c	2014-10-01 22:05:38.761734000 +0100
> +++ dnsmasq-2.72/src/tables.c	2014-10-01 22:06:03.831679913 +0100
> @@ -19,6 +19,9 @@
>  #include "dnsmasq.h"
>  
>  #if defined(HAVE_IPSET) && defined(HAVE_BSD_NETWORK)
> +#ifndef __FreeBSD__
> +#include <bsd/string.h>
> +#endif

The other option is to use the libbsd overlay, which should require no
upstream source patching. Either through pkg-config, or passing the
equivalent output to CPPFLAGS:

  $ pkg-config --cflags libbsd-overlay

But it needs to be tested as it could meddle with the build.

Thanks,
Guillem


Reply to: