[Buildd-tools-devel] Bug#483338: Bug#483338: sbuild: ~*=PROVIDED=*= hack breaks build-conflicts

Roger Leigh rleigh at whinlatter.ukfsn.org
Sat Aug 16 11:08:25 UTC 2008


tags 483338 + fixed-upstream pending
thanks

Lucas Nussbaum <lucas at lucas-nussbaum.net> writes:

> tags 483338 + patch
> thanks
>
> On 28/05/08 at 14:43 +0200, Lucas Nussbaum wrote:
>> Package: sbuild
>> Version: 0.57.3-1
>> 
>> Hi,
>> 
>> With the sbuild version from git master, versioned build-conflicts on
>> provided packages cause builds to abort.
>> 
>> This should probably be special-cased.
>> 
>> Example packages:
>> came:
>> dpkg - warning: ignoring request to remove linux-kernel-headers which isn't installed.
>> Checking correctness of source dependencies...
>> After installing, the following source dependencies are still unsatisfied:
>> linux-kernel-headers(inst ~*=PROVIDED=*= << conflicted 2.5.999-test7-bk-10)
>> Source-dependencies not satisfied; skipping came
>> 
>> dovecot:
>> dpkg - warning: ignoring request to remove linux-kernel-headers which isn't installed.
>> Checking correctness of source dependencies...
>> After installing, the following source dependencies are still unsatisfied:
>> linux-kernel-headers(inst ~*=PROVIDED=*= <= conflicted 2.5.999-test7-bk-17)
>> Source-dependencies not satisfied; skipping dovecot
>> 
>> mysql-gui-tools:
>> Checking correctness of source dependencies...
>> After installing, the following source dependencies are still unsatisfied:
>> libmysqlclient-dev(inst ~*=PROVIDED=*= << conflicted 4.1)
>> Source-dependencies not satisfied; skipping mysql-gui-tools
>> 
>> t38modem:
>> dpkg - warning: ignoring request to remove linux-kernel-headers which
>> isn't installed.
>> Checking correctness of source dependencies...
>> After installing, the following source dependencies are still
>> unsatisfied:
>> linux-kernel-headers(inst ~*=PROVIDED=*= << conflicted
>> 2.5.999-test7-bk-14)
>> Source-dependencies not satisfied; skipping t38modem
>> 
>> transfig:
>> Checking correctness of source dependencies...
>> After installing, the following source dependencies are still
>> unsatisfied:
>> gs-esp(inst ~*=PROVIDED=*= << conflicted 8.50)
>> Source-dependencies not satisfied; skipping transfig
>
> Hi,
>
> Here is a patch for this issue:
>
> diff --git a/lib/Sbuild/Build.pm b/lib/Sbuild/Build.pm
> index 792d4c4..64127bf 100644
> --- a/lib/Sbuild/Build.pm
> +++ b/lib/Sbuild/Build.pm
> @@ -1310,6 +1310,10 @@ sub check_dependencies (\$\@) {
>                 if (!$dep->{'Rel'}) {
>                     $fail .= "$name(still installed) ";
>                 }
> +               elsif ($stat->{'Version'} == '~*=PROVIDED=*=') {
> +                   # It's a versioned build-conflict, but we installed
> +                   # a package that provides the conflicted package. It's ok.
> +               }
>                 elsif (version_compare($stat->{'Version'}, $dep->{'Rel'},
>                                        $dep->{'Version'})) {
>                     $fail .= "$name(inst $stat->{'Version'} $dep->{'Rel'} ".

Thanks.  I've applied this to the master and sbuild-lenny branches.
However, there's an annoying warning (probably already existing, but
I'd like to squash it):

Argument "~*=PROVIDED=*=" isn't numeric in numeric eq (==) at lib/Sbuild/Build.pm line 1310.

Is a numeric comparison approprate here, or should we just check that
"$dep->{'Rel'}" both exists and is not an empty string??


	if ($dep->{'Neg'}) {
	    if ($stat->{'Installed'}) {
1310		if (!$dep->{'Rel'}) {
		    $fail .= "$name(still installed) ";
		}
		elsif ($stat->{'Version'} == '~*=PROVIDED=*=') {
		    # It's a versioned build-conflict, but we installed
		    # a package that provides the conflicted package. It's ok.
		}
		elsif (version_compare($stat->{'Version'}, $dep->{'Rel'},
				       $dep->{'Version'})) {
		    $fail .= "$name(inst $stat->{'Version'} $dep->{'Rel'} ".
			"conflicted $dep->{'Version'})\n";
		}
	    }
	}


Regards,
Roger

-- 
  .''`.  Roger Leigh
 : :' :  Debian GNU/Linux             http://people.debian.org/~rleigh/
 `. `'   Printing on GNU/Linux?       http://gutenprint.sourceforge.net/
   `-    GPG Public Key: 0x25BFB848   Please GPG sign your mail.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.alioth.debian.org/pipermail/buildd-tools-devel/attachments/20080816/a3740889/attachment.pgp 


More information about the Buildd-tools-devel mailing list