Re: util-vserver debian build warnings util-vserver 0.30.216-pre3004
Corey Wright <[email protected]>
| Newsgroups | gmane.linux.vserver |
|---|---|
| Message-ID | <[email protected]> |
On Wed, 28 Dec 2011 19:02:21 +0100 Ghislain <[email protected]> wrote: > i just built packages for debian on : util-vserver 0.30.216-pre3004 > > I got some warning so i thinked perhaps it could be interesting for > you to know: > > dpkg-shlibdeps: warning: > debian/util-vserver-python/usr/lib/pyshared/python2.6/_libvserver.so > contains an unresolvable reference to symbol Py_BuildValue: it's > probably a plugin. > dpkg-shlibdeps: warning: 12 other similar warnings have been skipped > (use -v to see them all). that's expected as _libvserver.so is a python module ("plugin"). for example, see the below transcript where i demonstrate how the same "issue" exists for _snackmodule.so (from the python-newt package) and the undefined symbol is located in the python interpreter (which loads _snackmodule.so and _libvserver.so) which is rather difficult for dpkg-shlibdeps to programmatically discern. $ cat /etc/issue.net Ubuntu 10.04.3 LTS $ ls /usr/lib/python2.6/dist-packages/_*.so /usr/lib/python2.6/dist-packages/_snackmodule.so /usr/lib/python2.6/dist-packages/_xapian.so $ nm -D /usr/lib/python2.6/dist-packages/_snackmodule.so | grep Py_BuildValue U Py_BuildValue $ ldd /usr/lib/python2.6/dist-packages/_*.so /usr/lib/python2.6/dist-packages/_snackmodule.so: linux-vdso.so.1 => (0x00007fffacdff000) libnewt.so.0.52 => /usr/lib/libnewt.so.0.52 (0x00007fd61e63f000) libc.so.6 => /lib/libc.so.6 (0x00007fd61e2bc000) libslang.so.2 => /lib/libslang.so.2 (0x00007fd61df57000) /lib64/ld-linux-x86-64.so.2 (0x00007fd61ea7d000) libdl.so.2 => /lib/libdl.so.2 (0x00007fd61dd53000) libm.so.6 => /lib/libm.so.6 (0x00007fd61dad0000) $ nm -D $(which python) | grep Py_BuildValue 00000000004c4b30 T Py_BuildValue 00000000004c4a90 T _Py_BuildValue_SizeT yes, that was on ubuntu lucid, not debian squeeze, as that's what the desktop i'm current on runs, but as ubuntu is a debian derivative and lucid is not that far removed from squeeze, it should be representative enough. > dpkg-gencontrol: warning: Depends field of package util-vserver: unknown > substitution variable ${shlibs:Depends} > dpkg-gencontrol: warning: Depends field of package util-vserver-core: > unknown substitution variable ${shlibs:Depends} > dpkg-gencontrol: warning: Depends field of package util-vserver-sysv: > unknown substitution variable ${shlibs:Depends} > dpkg-gencontrol: warning: Depends field of package libvserver0-dev: > unknown substitution variable ${shlibs:Depends} these warnings are because dh_shlibdeps is not adding any associated lines (eg "shlibs:Depends=libc6 (>= 2.3)") to the associated binary packages' substvars files (eg util-vserver-0.30.216-pre3004/debian/util-vserver.substvars) and that's because those binary packages (ie util-vserver{,-core,-sysv} & libvserver0-dev) don't depend on any shared libraries (ie they don't contain any dynamically linked executables/libraries). > dpkg-gencontrol: warning: package util-vserver-python: unused > substitution variable ${python:Versions} i believe this is because dh_python2 is not getting called and providing the substitution for that variable. the util-vserver-python binary package should depend on a version of python, but it doesn't (something that i just noticed) because this substitution variable is going unused. i think the debian/control file is either the default or too generic and therefore not calling dh_python2 which would figure out which version of python the binary package was built against and provide the necessary substitution. do not interpret any of the above as a proficiency in building debian packages. i merely understand the associated concepts enough to reverse engineer the process when necessary, but i don't know enough specifics to improve/correct the source package (except removing extraneous "${shlibs:Depends}" from debian/control and somehow modifying debian/rules to call dh_python2 for util-vserver-python). > created them on debian squeeze 64bits with: > > aptitude install build-essential debhelper gawk dietlibc-dev > libnss3-dev po-debconf e2fslibs-dev pkg-config python-dev ctags; > dpkg-buildpackage -rfakeroot; i build the util-vserver source package on debian squeeze amd64 (server) and ubuntu lucid amd64 (desktop/backup) as follows: # apt-get install debhelper gawk dietlibc-dev net-tools vlan iptables procps module-init-tools libnss3-dev po-debconf e2fslibs-dev pkg-config python-dev ctags # dpkg-buildpackage -D -us -uc of course i'm doing it in a minimal pbuilder chroot so i don't have to install some packages (eg build-essential) but have to install others (eg net-tools, vlan, iptables). my build log for pre3004 is attached for comparison and the resulting binary packages (ie libvserver0 and util-vserver{,-build,-core,-sysv}) appear to install and execute properly. > Regards, > Ghislain. corey -- [email protected]
util-vserver_0.30.216-pre3004-1+udo60+1_amd64.log
(text/plain, 261.3 KB) - not displayed