control: tag -1 + patch

Hi,

On 2022-08-08 01:34, Sebastian Ramacher wrote:
> Source: libspf2
> Version: 1.2.10-7.1
> Severity: serious
> Tags: ftbfs sid bookworm
> Justification: fails to build from source (but built successfully in the past)
> X-Debbugs-Cc: sramac...@debian.org
> 
> https://buildd.debian.org/status/fetch.php?pkg=libspf2&arch=arm64&ver=1.2.10-7.1%2Bb2&stamp=1659915050&raw=0
> 
> /bin/bash ../../libtool  --tag=CC   --mode=link gcc  -g -O2 
> -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat 
> -Werror=format-security -Wall  -Wl,-z,relro 
> -Wl,--version-script=/<<PKGBUILDDIR>>/debian/libspf2.ver -o spfquery 
> spfquery.o ../../src/libspf2/libspf2.la -lpthread -lnsl -lresolv 
> libtool: link: gcc -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. 
> -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z 
> -Wl,relro -Wl,--version-script=/<<PKGBUILDDIR>>/debian/libspf2.ver -o 
> .libs/spfquery spfquery.o  ../../src/libspf2/.libs/libspf2.so -lpthread -lnsl 
> -lresolv
> /usr/bin/ld: ../../src/libspf2/.libs/libspf2.so: undefined reference to 
> `__dn_expand'
> /usr/bin/ld: ../../src/libspf2/.libs/libspf2.so: undefined reference to 
> `__dn_skipname'

It appears that these two symbols have been renamed in glibc 2.34 when
moved from libresolv to libc. Quoting the glibc NEWS file:

| * Various symbols previously defined in libresolv have been moved to libc
|   in order to prepare for libresolv moving entirely into libc (see earlier
|   entry for merging libraries into libc).  The symbols __dn_comp,
|   __dn_expand, __dn_skipname, __res_dnok, __res_hnok, __res_mailok,
|   __res_mkquery, __res_nmkquery, __res_nquery, __res_nquerydomain,
|   __res_nsearch, __res_nsend, __res_ownok, __res_query, __res_querydomain,
|   __res_search, __res_send formerly in libresolv have been renamed and no
|   longer have a __ prefix.  They are now available in libc.

libspf2 is using libreplace internally to provide "replacements in case
the OS does not have native libraries that contain (working) copies.".
In that case it takes care to rename dn_expand into __dn_expand and
dn_skipname into __dn_skipname. It appears that with the changes done in
glibc 2.34, libspf2 does not need to use libreplace anymore. Therefore
the following patch from Ubuntu fixes the issue:

https://patches.ubuntu.com/libs/libspf2/libspf2_1.2.10-7.1ubuntu1.patch

Regards
Aurelien

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurel...@aurel32.net                 http://www.aurel32.net

Reply via email to