Package: sbuild
Version: 0.60.0-2squeeze1
Severity: normal

Hi, it's me again ;P

I've recently discovered that some of my packages stopped building because of 
the following error:

Checking for source dependency conflicts...
E: Package 'libjpeg-dev' has no installation candidate
libjpeg-dev is a virtual package provided by: 
Using  (no default, using first one)
Use of uninitialized value in join or string at 
/usr/share/perl5/Sbuild/Chroot.pm line 339.
Use of uninitialized value in join or string at 
/usr/share/perl5/Sbuild/Chroot.pm line 340.
Use of uninitialized value in join or string at 
/usr/share/perl5/Sbuild/Chroot.pm line 341.
Use of uninitialized value $command in join or string at 
/usr/share/perl5/Sbuild/Chroot.pm line 353.
Use of uninitialized value in exec at /usr/share/perl5/Sbuild/Chroot.pm line 
354.
terminate called after throwing an instance of 'std::out_of_range'
  what():  basic_string::compare
Installing positive dependencies: debhelper docbook-xml docbook-xsl ladspa-sdk 
libaa1-dev libasound2-dev libaudio-dev libcaca-dev libcdparanoia-dev 
libdirectfb-dev libdts-dev libdvdnav-dev libdvdread-dev libenca-dev libfaad-dev 
libfontconfig1-dev libfreetype6-dev libfribidi-dev libgif-dev libgl1-mesa-dev 
libjack-dev libjpeg-dev liblircclient-dev liblivemedia-dev liblzo2-dev 
libmpcdec-dev libncurses5-dev libopenal-dev libpng12-dev libpulse-dev 
libschroedinger-dev libsdl1.2-dev xsltproc libsmbclient-dev libspeex-dev yasm 
zlib1g-dev libtheora-dev libvdpau-dev libvorbis-dev libvorbisidec-dev 
libx11-dev libxext-dev libxinerama-dev libxv-dev libxvmc-dev libxxf86dga-dev 
libxxf86vm-dev pkg-config python vstream-client-dev x11proto-core-dev ccache 
quilt
Reading package lists...
Building dependency tree...
Reading state information...
Package libjpeg-dev is a virtual package provided by:
E: Package 'libjpeg-dev' has no installation candidate
libjpeg-dev is a virtual package provided by: 
Using  (no default, using first one)
Use of uninitialized value in join or string at 
/usr/share/perl5/Sbuild/Chroot.pm line 339.
Use of uninitialized value in join or string at 
/usr/share/perl5/Sbuild/Chroot.pm line 340.
Use of uninitialized value in join or string at 
/usr/share/perl5/Sbuild/Chroot.pm line 341.
Use of uninitialized value $command in join or string at 
/usr/share/perl5/Sbuild/Chroot.pm line 353.
Use of uninitialized value in exec at /usr/share/perl5/Sbuild/Chroot.pm line 
354.
Reading package lists...
Building dependency tree...
Reading state information...
terminate called after throwing an instance of 'std::out_of_range'
  what():  basic_string::compare
apt-get failed.
Package installation failed

Investigating this, I noticed that sbuild calls apt-get with '-q' in -s mode:
D: Running command: /usr/bin/schroot -d / -c 
sid-ia64-sbuild-3667d049-42aa-43a0-88ac-f064fee342c4 --run-session -q -u root 
-p -- /usr/bin/apt-get --purge -o DPkg::Options::=--force-confold -q -s install 
debhelper docbook-xml docbook-xsl ladspa-sdk libaa1-dev libasound2-dev 
libaudio-dev libcaca-dev libcdparanoia-dev libdirectfb-dev libdts-dev 
libdvdnav-dev libdvdread-dev libenca-dev libfaad-dev libfontconfig1-dev 
libfreetype6-dev libfribidi-dev libgif-dev libgl1-mesa-dev libjack-dev 
libjpeg-dev liblircclient-dev liblivemedia-dev liblzo2-dev libmpcdec-dev 
libncurses5-dev libopenal-dev libpng12-dev libpulse-dev libschroedinger-dev 
libsdl1.2-dev xsltproc libsmbclient-dev libspeex-dev yasm zlib1g-dev 
libtheora-dev libvdpau-dev libvorbis-dev libvorbisidec-dev libx11-dev 
libxext-dev libxinerama-dev libxv-dev libxvmc-dev libxxf86dga-dev 
libxxf86vm-dev pkg-config python vstream-client-dev x11proto-core-dev ccache 
quilt

Turns out -q apparently inhibits apt-get from displaying the providers of the 
virtual package:

buildd@envy:~/build$ /usr/bin/schroot -d / -c sid-ia64-sbuild -q -u root -p -- 
/usr/bin/apt-get --purge -o DPkg::Options::=--force-confold -q -s install 
libjpeg-dev
Reading package lists...
Building dependency tree...
Reading state information...
Package libjpeg-dev is a virtual package provided by:
E: Package 'libjpeg-dev' has no installation candidate
buildd@envy:~/build$ /usr/bin/schroot -d / -c sid-ia64-sbuild -q -u root -p -- 
/usr/bin/apt-get --purge -o DPkg::Options::=--force-confold -s install 
libjpeg-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package libjpeg-dev is a virtual package provided by:
  libjpeg8-dev 8c-2
  libjpeg62-dev 6b1-1
You should explicitly select one to install.

So, I tried editing /usr/share/perl5/Sbuild/Build.pm:1136 to remove the '-q' 
bit, but unfortunately it didn't fix the issue.

I've checked that the apt-get command did NOT include '-q', and that was right. 
Still, for some reason, either sbuild doesn't get the output from apt-get, or 
apt-get isn't showing its
expected behaviour when run through sbuild, because I still got the same error 
messages. Adding a 'print("pipe: $_");' at line 1147, in the "while(<pipe>)" 
block, shows:

Checking for source dependency conflicts...
pipe: Reading package lists...
pipe: Building dependency tree...
pipe: Reading state information...
pipe: Package libjpeg-dev is a virtual package provided by:
E: Package 'libjpeg-dev' has no installation candidate
libjpeg-dev is a virtual package provided by: 
Using  (no default, using first one)
Use of uninitialized value $selected in concatenation (.) or string at 
/usr/share/perl5/Sbuild/Build.pm line 1179.
Use of uninitialized value $aptcommand[59] in join or string at 
/usr/share/perl5/Sbuild/Chroot.pm line 379.
Use of uninitialized value in join or string at 
/usr/share/perl5/Sbuild/Chroot.pm line 235.
Use of uninitialized value in join or string at 
/usr/share/perl5/Sbuild/Chroot.pm line 339.
Use of uninitialized value in join or string at 
/usr/share/perl5/Sbuild/Chroot.pm line 340.
Use of uninitialized value in join or string at 
/usr/share/perl5/Sbuild/Chroot.pm line 341.
Use of uninitialized value $command in join or string at 
/usr/share/perl5/Sbuild/Chroot.pm line 353.
Use of uninitialized value in exec at /usr/share/perl5/Sbuild/Chroot.pm line 
354.
pipe: Reading package lists...
pipe: Building dependency tree...
pipe: Reading state information...
terminate called after throwing an instance of 'std::out_of_range'
  what():  basic_string::compare
Installing positive dependencies: [snip]

sbuild never gets the list of providers, and thus cannot pick any.

I *think* this might be a recent apt-get bug since I had the same issue with 
sbuild 0.58.2 a couple days before upgrading, but maybe it's also a new 
"expected" behaviour from apt-get and
thus sbuild should get fixed...

In any case, the fact is it breaks the virtual resolver for packages with 
multiple providers (i've tested that when there's only one provider, there is 
no problem. I suppose apt-get does
the right thing then).

HTH
T-Bone

-- System Information:
Debian Release: 6.0.2
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: ia64

Kernel: Linux 2.6.32.40 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=locale: Cannot set 
LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/dash

Versions of packages sbuild depends on:
ii  adduser                3.112+nmu2        add and remove users and groups
ii  libsbuild-perl         0.60.0-2squeeze1  Tool for building Debian binary pa
ii  perl                   5.10.1-17squeeze2 Larry Wall's Practical Extraction 
ii  perl-modules           5.10.1-17squeeze2 Core Perl modules

Versions of packages sbuild recommends:
ii  debootstrap              1.0.26+squeeze1 Bootstrap a basic Debian system
ii  fakeroot                 1.14.4-1        Gives a fake root environment

Versions of packages sbuild suggests:
pn  deborphan                     <none>     (no description available)
ii  wget                          1.12-2.1   retrieves files from the web

-- debconf information:
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory



-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to