Control: tags -1 + pending
Hi, 2017-08-10 22:36 Helmut Grohne:
Package: libcap-dev Version: 2.25-1 Severity: important Tags: patch User: helm...@debian.org Usertags: rebootstrap libcap.pc has a bad assignment for libdir. On most architectures it turns out to be /lib. On amd64, mips64el and sparc64 it becomes /lib64 and on x32 it becomes /libx32. Yet the .so symlink for linking it resides in /usr/lib/$(DEB_HOST_MULTIARCH). The issue becomes worse once one notices that the libdir is dependent on the build architecture (due to the ldd check in Make.Rules). Thus cross building libcap2 for mipsel on amd64 results in a libdir=/lib64 and that makes systemd FTCBFS. So essentially, libdir is always wrong. It is even more wrong when cross compiling and for mipsel, stuff breaks loudly. The cause is twofold. For one thing the build (make) and install (make install) use different assignments for lib. And then debian/rules moves the .so symlink from /lib/$(DEB_HOST_MULTIARCH) to /usr/lib/$(DEB_HOST_MULTIARCH). If one were copying the lib= assignment to the build, libdir would end up being just /lib/$(DEB_HOST_MULTIARCH), which would still be wrong but harmless. So the attached patch goes the simple route of fixing up libcap.pc after installation. Please consider applying it. Helmut
diff --minimal -Nru libcap2-2.25/debian/rules libcap2-2.25/debian/rules --- libcap2-2.25/debian/rules 2016-04-30 14:30:26.000000000 +0200 +++ libcap2-2.25/debian/rules 2017-07-24 17:49:34.000000000 +0200 @@ -46,6 +46,8 @@ cd debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH) && \ mv ../../../lib/$(DEB_HOST_MULTIARCH)/*.a . && \ ln -s ../../../lib/$(DEB_HOST_MULTIARCH)/libcap.so.*.* libcap.so + sed -i -e 's#^libdir=.*#libdir=/usr/lib/$(DEB_HOST_MULTIARCH)#' \ + debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig/libcap.pc # Remove unwanted/unused files (because of --fail-missing) rm -f debian/tmp/lib/$(DEB_HOST_MULTIARCH)/*.so
I uploaded a NMU with this change to delayed/10, the patch looks simple enough and this package is important in (re)bootstrapping situations and cross-building, due to the multiple and important packages that build-depend on it. Since it's in collab-maint, I pushed the changes directly, should you want a debdiff I can provide it, but it's basically the patch above plus a changelog entry. If it's OK we can reschedule it for sooner, if you want me to cancel it's also fine, just ask. Cheers. -- Manuel A. Fernandez Montecelo <manuel.montez...@gmail.com>