-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Subject: sbuild: Wrong handling of or'ed build-dependencies
Package: sbuild
Version: 0.56
Severity: important
Tags: patch

Actually I'm using the SVN trunk r1250.

I'm trying to build bzr-svn for Debian Etch.

The package has the following build dependencies:

Build-Depends-Indep: python-subversion, bzr (>= 1.0~), python (>= 2.5) | 
python-pysqlite2

The following text is the relevant output from running
sbuild -A -s -D -d halut bzr-svn_0.4.5-1lhm1.dsc

==============================

...
Source dependencies of bzr-svn: python-central (>= 0.5), cdbs (>= 0.4.43),
python, debhelper (>= 5.0.37.2), python-subversion, bzr (>= 1.0~), python (>= 
2.5)|python-pysqlite2
Filtering dependencies
Requesting dpkg status for packages: python-subversion python cdbs bzr
python-pysqlite2 python-central debhelper
...
python: pos dep, not installed
python: missing
/usr/bin/schroot -d '/build/buildd' -c halut --run-session -q -u root -p
- -- /bin/sh -c '/usr/bin/apt-get  --purge -o
DPkg::Options::=--force-confold -q -s install python-central cdbs python
debhelper python-subversion bzr=1.0-1lhm1 python 2>&1 </dev/null'
Default version of python not sufficient, no suitable version found.
Skipping for now, maybe there are alternatives.
python-pysqlite2: pos dep, not installed
python-pysqlite2: missing
using python for install
...
After installing, the following source dependencies are still
unsatisfied:
python(inst 2.4.4-2 ! >= wanted 2.5)|python-pysqlite2(missing)
...

==============================

The attached patch fixes this problem for me and additionally adds some
checks to to sbuild for wrong commandline args.

Jan-Marek


- -- System Information:
Debian Release: 4.0
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: i386 (x86_64)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-5-amd64
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)

Versions of packages sbuild depends on:
ii  adduser                     3.102        Add and remove users and groups
ii  apt                         0.6.46.4-0.1 Advanced front-end for dpkg
ii  dctrl-tools                 2.9.3        Command-line tools to process Debi
ii  dpkg-dev                    1.13.25      package building tools for Debian
ii  exim4                       4.63-17      metapackage to ease exim MTA (v4)
ii  exim4-daemon-light [mail-tr 4.63-17      lightweight exim MTA (v4) daemon
ii  perl                        5.8.8-7etch1 Larry Wall's Practical Extraction
ii  perl-modules                5.8.8-7etch1 Core Perl modules
ii  schroot                     1.1.6-1lhm1  Execute commands in a chroot envir

Versions of packages sbuild recommends:
ii  debootstrap                 0.3.3.2etch1 Bootstrap a basic Debian system
ii  fakeroot                    1.5.10       Gives a fake root environment

- -- no debconf information
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFHZ+5gj6MK58wZA3cRAlmeAJ9C0UltlZV88OrTi3PHJwyKSNXX6gCfcLXD
H78LjnhSEAZmibADN17Ua0I=
=HiqA
-----END PGP SIGNATURE-----
Index: sbuild
===================================================================
--- sbuild      (Revision 1250)
+++ sbuild      (Arbeitskopie)
@@ -210,7 +210,19 @@
        my $download = 1;
        if ($dscbase =~ m/\.dsc$/) {
                $download = 0;
+               if( ! -f $dscfile ) {
+                       print PLOG "Invalid source: $dscfile\n";
+                       print PLOG "Skipping $pkg\n";
+                       $main::pkg_status = "skipped";
+                       goto cleanup_close;
+               }
        }
+       elsif( ! defined $version ) {
+               print PLOG "Invalid source: $dscfile\n";
+               print PLOG "Skipping $dscfile\n";
+               $main::pkg_status = "skipped";
+               goto cleanup_close;
+       }
 
        print STDERR "D: dscfile = $dscfile\n" if $conf::debug;
        print STDERR "D: dir = $dir\n" if $conf::debug;
@@ -1316,7 +1328,8 @@
                                                        }
                                                }
                                                if(!$installable) {
-                                                       print PLOG "no suitable 
version found. Skipping for now, maybe there are alternatives.\n" if 
!$installable;
+                                                       print PLOG "no suitable 
version found. Skipping for now, maybe there are alternatives.\n";
+                                                       next;
                                                }
                                        } else {
                                                print PLOG "Using default 
version " . $policy{$name}->{defversion} . "\n";

Reply via email to