[buildd-tools-devel] Bug#576979: Chroot build dir with tilde in path confuses old libtools

Evan Broder broder at MIT.EDU
Thu Apr 8 17:08:31 UTC 2010


Package: sbuild
Version: 0.60.0-1
Severity: minor
Tags: patch

This is an obscure one, I know.

The default "Chroot Build Dir" includes the full version number in the
path. However, for really old versions of libtool (from the era of
Debian Etch/Ubuntu Hardy or so) can't deal with tildes in their path,
truncating the path when they reach one:

  mkdir /build/builder-debathena-lprng_3.8.28dfsg.1-1.1ubuntu2debathena7~ubuntu8.04-amd64-v26GWv/debathena-lprng-3.8.28dfsg.1/debian/debathena-lprng/usr/lib
  mkdir /build/builder-debathena-lprng_3.8.28dfsg.1-1.1ubuntu2debathena7~ubuntu8.04-amd64-v26GWv/debathena-lprng-3.8.28dfsg.1/debian/debathena-lprng/usr/lib/lprng
  mkdir /build/builder-debathena-lprng_3.8.28dfsg.1-1.1ubuntu2debathena7~ubuntu8.04-amd64-v26GWv/debathena-lprng-3.8.28dfsg.1/debian/debathena-lprng/usr/lib/lprng/filters
  /bin/sh ../libtool --mode=install /usr/bin/install -c liblpr.la /build/builder-debathena-lprng_3.8.28dfsg.1-1.1ubuntu2debathena7~ubuntu8.04-amd64-v26GWv/debathena-lprng-3.8.28dfsg.1/debian/debathena-lprng/usr/lib/liblpr.la
  /usr/bin/install -c .libs/liblpr.lai /build/builder-debathena-lprng_3.8.28dfsg.1-1.1ubuntu2debathena7~ubuntu8.04-amd64-v26GWv/debathena-lprng-3.8.28dfsg.1/debian/debathena-lprng/usr/lib/liblpr.la
  /usr/bin/install -c .libs/liblpr.a /build/builder-debathena-lprng_3.8.28dfsg.1-1.1ubuntu2debathena7~ubuntu8.04-amd64-v26GWv/debathena-lprng-3.8.28dfsg.1/debian/debathena-lprng/usr/lib/liblpr.a
  ranlib /build/builder-debathena-lprng_3.8.28dfsg.1-1.1ubuntu2debathena7
  ranlib: '/build/builder-debathena-lprng_3.8.28dfsg.1-1.1ubuntu2debathena7': No such file
  make[3]: *** [install] Error 1
  make[2]: *** [src] Error 2
  make[1]: *** [install] Error 2
  make: *** [install] Error 2
  dpkg-buildpackage: failure: /usr/bin/fakeroot debian/rules binary gave error exit status 2
  make[3]: Leaving directory `/build/builder-debathena-lprng_3.8.28dfsg.1-1.1ubuntu2debathena7~ubuntu8.04-amd64-v26GWv/debathena-lprng-3.8.28dfsg.1/src'
  make[2]: Leaving directory `/build/builder-debathena-lprng_3.8.28dfsg.1-1.1ubuntu2debathena7~ubuntu8.04-amd64-v26GWv/debathena-lprng-3.8.28dfsg.1'
  make[1]: Leaving directory `/build/builder-debathena-lprng_3.8.28dfsg.1-1.1ubuntu2debathena7~ubuntu8.04-amd64-v26GWv/debathena-lprng-3.8.28dfsg.1'

This has come up for us a couple of times because we use
--append-to-version to add a backports-style modifier to packages we
build. For our purposes, we just modified the Chroot Build Dir to use
Package_OSVersion instead of Package_SVersion, but a better solution
might be to filter out all tildes in the build dir path.
-------------- next part --------------
--- /usr/share/perl5/Sbuild/Build.pm~	2010-02-23 17:38:47.000000000 -0500
+++ /usr/share/perl5/Sbuild/Build.pm	2010-04-08 12:54:17.000000000 -0400
@@ -246,7 +246,7 @@
     $self->set('Chroot Dir', $session->get('Location'));
     $self->set('Chroot Build Dir',
 	       tempdir($self->get_conf('USERNAME') . '-' .
-		       $self->get('Package_SVersion') . '-' .
+		       $self->get('Package_OSVersion') . '-' .
 		       $self->get('Arch') . '-XXXXXX',
 		       DIR => $session->get('Build Location')));
     # TODO: Don't hack the build location in; add a means to customise


More information about the Buildd-tools-devel mailing list