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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.