Bug#896084: dose-builddebcheck: Finds invalid solution with versioned provides
Package: dose-builddebcheck
Version: 5.0.1-9
Tags: upstream
[It's quite likely this should be against libdose3-ocaml(-dev) as I
imagine this is a bug in the common library code also used by
dose-distcheck]
Hi,
Whilst running a new kfreebsd-{amd64,i386} buildd, I noticed that
dose-builddebcheck doesn't quite handle versioned provides correctly[1],
when combined with versioned dependencies. This
stems from the use of MAX_INT32-1 for an unversioned provides, which is
of course greater than any version number used in the dependency.
Below is a tiny example illustrating the problem.
Regards,
James
[1] An example is libsigrok, which build depends on libusb-1.0-0-dev (>=
1.0.16), which doesn't exist on kFreeBSD; instead libusb2 provides
libusb-1.0-0-dev (= 1.0.6). Because dose-builddebcheck thinks this
is satisfiable, wanna-build keeps scheduling builds, but apt keeps
failing to find a solution (since there isn't one).
> jrtc27@deb4g:~/tmp/dose-versioned-provides$ cat Packages
> Package: build-essential
> Version: 1
> Architecture: amd64
>
> Package: binary-package
> Version: 1
> Architecture: amd64
> Provides: provided (= 2)
> jrtc27@deb4g:~/tmp/dose-versioned-provides$ cat Sources
> Package: source-package
> Architecture: any
> Version: 1
> Build-Depends: provided (>= 3)
> jrtc27@deb4g:~/tmp/dose-versioned-provides$ dose-builddebcheck --deb-native-arch=amd64 -es --dump=cudf Packages Sources
> output-version: 1.2
> native-architecture: amd64
> report:
> -
> package: source-package
> version: 1
> architecture: any
> type: src
> status: ok
> installationset:
> -
> package: source-package
> version: 1
> architecture: any
> type: src
> -
> package: binary-package
> version: 1
> architecture: amd64
> -
> package: build-essential
> version: 1
> architecture: amd64
>
> binary-packages: 3
> source-packages: 1
> broken-packages: 0
> jrtc27@deb4g:~/tmp/dose-versioned-provides$ cat cudf
> preamble:
> property: native: int = [0], multiarch: string = [""], installedsize: int = [0], filename: string = [""], essential: bool = [false], sourceversion: int = [1], sourcenumber: string = [""], source: string = [""], priority: string = [""], recommends: vpkgformula = [true!], replaces: vpkglist = [], architecture: string, type: string, number: string, name: string
>
> package: binary-package%3aamd64
> version: 5
> conflicts: binary-package%3aamd64 , binary-package
> provides: binary-package , --virtual-provided%3aamd64 = 3 , --virtual-provided%3aamd64 = 2147483646
> name: binary-package
> architecture: amd64
> number: 1
> source: binary-package
> sourcenumber: 1
> sourceversion: 5
> native: 1
> type: bin
> filename: Packages
>
> package: src%3asource-package
> version: 2
> depends: build-essential%3aamd64 , --virtual-provided%3aamd64 >= 4
> conflicts: src%3asource-package%3aamd64 , src%3asource-package
> provides: src%3asource-package
> name: source-package
> architecture: any
> number: 1
> source: source-package
> sourcenumber: 1
> sourceversion: 2
> type: src
>
> package: build-essential%3aamd64
> version: 2
> conflicts: build-essential%3aamd64 , build-essential
> provides: build-essential
> name: build-essential
> architecture: amd64
> number: 1
> source: build-essential
> sourcenumber: 1
> sourceversion: 2
> native: 1
> type: bin
> filename: Packages
Reply to: