On 20.06.2016 20:48, Graham Inggs wrote: > Since version 1.9.9-1, wine-development has FTBFS on all architectures > in Ubuntu. > I see the following in the build log: > > ./debian/scripts/sonames2elf libfontconfig.so.1 libfreetype.so.6 > libncurses.so.5 > debian/tmp/elf.depends > ./debian/scripts/sonames2elf libcups.so.2 libdbus-1.so.3 > libfontconfig.so.1 libfreetype.so.6 libGL.so.1 libgnutls.so.30 > libgsm.so.1 libjpeg.so.8 libncurses.so.5 libodbc.so.2 libopenal.so.1 > libOSMesa.so.8 libpng16.so.16 libtiff.so.5 libX11.so.6 > libXcomposite.so.1 libXcursor.so.1 libXext.so.6 libXi.so.6 > libXinerama.so.1 libXrandr.so.2 libXrender.so.1 libxslt.so.1 > libXxf86vm.so.1 > debian/tmp/elf.recommends > /usr/bin/ld: cannot find libGL.so.1 > collect2: error: ld returned 1 exit status > debian/rules:153: recipe for target 'override_dh_shlibdeps' failed > > Assuming this had something to do with packaging differences between > Debian and Ubuntu's mesa package, I made the following changes:
Contrary to Debian, in Ubuntu libGL.so.1 is in /usr/lib/<arch>/mesa/, so it is not found automatically. See: http://packages.ubuntu.com/search?searchon=contents&keywords=libGL.so.1&mode=exactfilename&suite=yakkety&arch=any Try adding it to rpath (change existing line in d/rules): export DEB_LDFLAGS_MAINT_APPEND+=-Wl,-rpath,/$(LIBDIR),/usr/lib/$(shell dpkg-architecture -qDEB_HOST_MULTIARCH)/mesa Question at all: If this works, should we add this to the Debian packaging (conditionally for ubuntu)? Is there a best practice syntax for that? > With the above changes in place, the builds succeeded on amd64, arm64 > and i386, but failed on armhf with a new error: [...] > dpkg-shlibdeps: error: couldn't find library libXxf86vm.so.1 needed by > debian/tmp/elf.recommends (ELF format: 'elf32-littlearm-sfabi'; RPATH: > '') [...] > To help dpkg-shlibdeps find private libraries, you might need to use -l. > make[1]: *** [override_dh_shlibdeps] Error 2 I checked a few of the so files on armhf/yakkety: they are in /usr/lib/arm-linux-gnueabihf and the build dependencies make sure that they are installed. Sounds fine. Anyway, try specifying the path explicitly for dpkg-shlibdeps (add the last line, since this is arch neutral it shouldn't hurt on the working arches): dpkg-shlibdeps --warnings=1 \ -pdlopen \ -dDepends -edebian/tmp/elf.depends \ -dRecommends -edebian/tmp/elf.recommends \ -Tdebian/libwine$(VERSION).substvars \ -l/usr/lib/$(shell dpkg-architecture -qDEB_HOST_MULTIARCH) If this works, then I'd ask Ubuntu's dpkg maintainer about it. This Ubuntu dpkg change sounds related: - Special-case arm{el,hf} ELF objects in Shlibs/Objdump.pm for multilib. Greets jre

