Package: release.debian.org
Severity: normal
Tags: stretch
User: release.debian....@packages.debian.org
Usertags: pu

Hi,

please consider accepting dose3 version 5.0.1-8+deb9u1 for the next
stable point release. This source package generates in particular
the binary package dose-distcheck and dose-builddebcheck; the latter
is used by wanna-build to decide whether packages can be scheduled
for rebuild.

This version contains a fix for an erroneous handling of versioned
provides. Please refer to 

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=867104

for a full history of the discussion.

The diff with respect of the version of the package in stable consists
essentially of 7 lines of changed OCaml code, plus an additional test case
for ci tests. Full diff is attached.

Thanks for considering -Ralf.

-- System Information:
Debian Release: buster/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.12.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8) (ignored: LC_ALL 
set to en_US.utf8), LANGUAGE=en_US:en (charmap=UTF-8) (ignored: LC_ALL set to 
en_US.utf8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
diff --git a/debian/changelog b/debian/changelog
index f70cf83..88bdbd3 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+dose3 (5.0.1-8+deb9u1) stretch; urgency=medium
+
+  * patch virtual_provides: packages that provide the same virtual package
+    in different versions, or that provide the same versioned virtual package
+    as a real package, are co-installable (closes: #867104).
+  * add test-case for versioned virtual packages
+
+ -- Ralf Treinen <trei...@debian.org>  Tue, 29 Aug 2017 14:43:57 +0200
+
 dose3 (5.0.1-8) unstable; urgency=medium
 
   * Patches taken from upstream (thanks, Josch!)
diff --git a/debian/patches/series b/debian/patches/series
index beee4c9..b0ebd7d 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -12,3 +12,4 @@ ocaml-4.02.3+gcc-6.2.0
 architecture-tuples
 architectures-dpkg-1.18.15
 deb-drop-b-d-arch
+versioned_provides
diff --git a/debian/patches/versioned_provides 
b/debian/patches/versioned_provides
new file mode 100644
index 0000000..63609de
--- /dev/null
+++ b/debian/patches/versioned_provides
@@ -0,0 +1,30 @@
+Author: Ralf Treinen <trei...@debian.org>
+Description: packages that provide the same virtual package in different
+  versions, or that provide the same versioned virtual package as a real
+  package, are co-installable
+Debian-bug: #867104
+
+diff --git a/deb/debcudf.ml b/deb/debcudf.ml
+index 44f72e8..c70ed67 100644
+--- a/deb/debcudf.ml
++++ b/deb/debcudf.ml
+@@ -307,12 +307,13 @@ let loadlc ?native_arch ?package_arch tables name l =
+ let loadlp ?native_arch ?package_arch tables l =
+   List.flatten (
+     List.map (fun ((name,_) as vpkgname,constr) ->
+-      let encname = add_arch_info ?native_arch ?package_arch vpkgname in
+-      match constr with
+-      |None -> [("--virtual-"^encname,Some(`Eq,Util.max32int - 1))]
+-      |Some("=",v) ->
+-        let constr = Some(`Eq,get_cudf_version tables (name,v)) in
+-        [("--virtual-"^encname,constr);(encname,constr)]
++        let encname = add_arch_info ?native_arch ?package_arch vpkgname in
++        let vencname = "--virtual-"^encname in 
++        match constr with
++        |None -> [(vencname,Some(`Eq,Util.max32int - 1))]
++        |Some("=",v) ->
++          let constr = Some(`Eq,get_cudf_version tables (name,v)) in
++          [(vencname,constr);(vencname,Some(`Eq,Util.max32int - 1))]
+       |_ -> fatal "This should never happen : a provide can be either = or 
unversioned"
+     ) l
+   )
diff --git a/debian/tests/bug867104 b/debian/tests/bug867104
new file mode 100755
index 0000000..9697c11
--- /dev/null
+++ b/debian/tests/bug867104
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+# debian bug 867104: wanna-build issue with src:perl versioned Provides
+
+set -e
+
+this=dose-debcheck
+indir=debian/tests/repos
+outdir=${ADT_ARTIFACTS}/${this}
+mkdir -p ${outdir}
+
+packfile=$indir/virtual_and_real
+base=$(basename $packfile)
+
+dose-debcheck --checkonly=main ${packfile} \
+    | tee ${outdir}/${base}.out \
+    | grep -q "broken-packages: 0"
diff --git a/debian/tests/control b/debian/tests/control
index 29b1424..abb12d7 100644
--- a/debian/tests/control
+++ b/debian/tests/control
@@ -1,4 +1,4 @@
-Tests: dose-debcheck bug811569 bug790422
+Tests: dose-debcheck bug811569 bug790422 bug867104
 Depends: dose-distcheck
 
 Tests: dose-builddebcheck
diff --git a/debian/tests/repos/virtual_and_real 
b/debian/tests/repos/virtual_and_real
new file mode 100644
index 0000000..28553c6
--- /dev/null
+++ b/debian/tests/repos/virtual_and_real
@@ -0,0 +1,14 @@
+Package: main
+Version: 1
+Architecture: amd64
+Depends: perl-base, libscalar-list-utils-perl (= 1:1.48-1)
+
+Package: perl-base
+Version: 5.24.1-5
+Architecture: amd64
+Provides: libscalar-list-utils-perl (= 1:1.42.02)
+
+Package: libscalar-list-utils-perl
+Version: 1:1.48-1
+Architecture: amd64
+

Reply via email to