[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#786803: Please consider versioned Provides



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: britney

Hi,

Now that both dpkg and apt are able to use versioned Provides, it would
be nice to take it into consideration for testing migrations.

Please find attached a basic new test for britney2-tests and a simple
documentation update for britney’s dependencies.

I tried to figure out what would be needed to make that work, but
unfortunately don’t understand much Python. The last patch doesn’t do
anything useful, but at least doesn’t break the existing testsuite (I
guess there is at least something to fix around there)…

X-D-CC to the Debian PHP PEAR Maintainers team, since this issue
currently prevents migration of Symfony and many of its reverse
dependencies.

Regards

David
From 28feea394c2e6aff06d5b30dc32d838abf5329aa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20Pr=C3=A9vot?= <david@tilapin.org>
Date: Mon, 25 May 2015 13:42:54 -0400
Subject: [PATCH] Basic test with versioned Provides

---
 t/basic-versioned-provides/expected                        |  4 ++++
 t/basic-versioned-provides/var/data/testing/Packages_i386  | 13 +++++++++++++
 t/basic-versioned-provides/var/data/testing/Sources        | 12 ++++++++++++
 t/basic-versioned-provides/var/data/unstable/Packages_i386 | 13 +++++++++++++
 t/basic-versioned-provides/var/data/unstable/Sources       | 12 ++++++++++++
 5 files changed, 54 insertions(+)
 create mode 100644 t/basic-versioned-provides/expected
 create mode 100644 t/basic-versioned-provides/var/data/testing/Packages_i386
 create mode 100644 t/basic-versioned-provides/var/data/testing/Sources
 create mode 100644 t/basic-versioned-provides/var/data/unstable/Packages_i386
 create mode 100644 t/basic-versioned-provides/var/data/unstable/Sources

diff --git a/t/basic-versioned-provides/expected b/t/basic-versioned-provides/expected
new file mode 100644
index 0000000..69a9f82
--- /dev/null
+++ b/t/basic-versioned-provides/expected
@@ -0,0 +1,4 @@
+pkg-a 2.0-1 i386
+pkg-b 2.0-1 i386
+pkg-a 2.0-1 source
+pkg-b 2.0-1 source
diff --git a/t/basic-versioned-provides/var/data/testing/Packages_i386 b/t/basic-versioned-provides/var/data/testing/Packages_i386
new file mode 100644
index 0000000..1d1e1da
--- /dev/null
+++ b/t/basic-versioned-provides/var/data/testing/Packages_i386
@@ -0,0 +1,13 @@
+Package: pkg-a
+Section: devel
+Architecture: i386
+Maintainer: The R-Team <debian-release@lists.debian.org>
+Version: 1.0-1
+
+Package: pkg-b
+Section: devel
+Architecture: i386
+Depends: pkg-a (>= 1.0), pkg-a (<< 2.0~)
+Maintainer: The R-Team <debian-release@lists.debian.org>
+Version: 1.0-1
+
diff --git a/t/basic-versioned-provides/var/data/testing/Sources b/t/basic-versioned-provides/var/data/testing/Sources
new file mode 100644
index 0000000..02f7cf6
--- /dev/null
+++ b/t/basic-versioned-provides/var/data/testing/Sources
@@ -0,0 +1,12 @@
+Package: pkg-a
+Binary: pkg-a
+Version: 1.0-1
+Section: devel
+Maintainer: The R-Team <debian-release@lists.debian.org>
+
+Package: pkg-b
+Binary: pkg-b
+Version: 1.0-1
+Section: devel
+Maintainer: The R-Team <debian-release@lists.debian.org>
+
diff --git a/t/basic-versioned-provides/var/data/unstable/Packages_i386 b/t/basic-versioned-provides/var/data/unstable/Packages_i386
new file mode 100644
index 0000000..9b22ee4
--- /dev/null
+++ b/t/basic-versioned-provides/var/data/unstable/Packages_i386
@@ -0,0 +1,13 @@
+Package: pkg-a
+Section: devel
+Architecture: i386
+Maintainer: The R-Team <debian-release@lists.debian.org>
+Version: 2.0-1
+Provides: pkg-c (= 2.0-1)
+
+Package: pkg-b
+Section: devel
+Architecture: i386
+Depends: pkg-c (>= 2.0), pkg-c (<< 3.0~)
+Maintainer: The R-Team <debian-release@lists.debian.org>
+Version: 2.0-1
diff --git a/t/basic-versioned-provides/var/data/unstable/Sources b/t/basic-versioned-provides/var/data/unstable/Sources
new file mode 100644
index 0000000..4c0acf3
--- /dev/null
+++ b/t/basic-versioned-provides/var/data/unstable/Sources
@@ -0,0 +1,12 @@
+Package: pkg-a
+Binary: pkg-a
+Version: 2.0-1
+Section: devel
+Maintainer: The R-Team <debian-release@lists.debian.org>
+
+Package: pkg-b
+Binary: pkg-b
+Version: 2.0-1
+Section: devel
+Maintainer: The R-Team <debian-release@lists.debian.org>
+
-- 
2.1.4

From 207e23a099bdf7138541d43fece8c643af2a7c20 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20Pr=C3=A9vot?= <david@tilapin.org>
Date: Sun, 24 May 2015 10:34:16 -0400
Subject: [PATCH 1/2] INSTALL: Update dependency for Python 3

---
 INSTALL | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/INSTALL b/INSTALL
index a65b744..e91baa7 100644
--- a/INSTALL
+++ b/INSTALL
@@ -4,6 +4,6 @@ INSTALL for britney v2.0
 Requirements:
 -------------
 
-  * Python 2.7                  aptitude install python
-  * Python APT/DPKG bindings    aptitude install python-apt
-  * Python YAML library         aptitude install python-yaml
+  * Python 3                    aptitude install python3
+  * Python APT/DPKG bindings    aptitude install python3-apt
+  * Python YAML library         aptitude install python3-yaml
-- 
2.1.4

From 872c7dfb3d520fd93da2677c3091c3a59d825ff2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20Pr=C3=A9vot?= <david@tilapin.org>
Date: Sun, 24 May 2015 10:43:06 -0400
Subject: [PATCH 2/2] britney.py: Add support for versioned Provides

---
 britney.py | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/britney.py b/britney.py
index 5c2171e..67b7e61 100755
--- a/britney.py
+++ b/britney.py
@@ -989,11 +989,9 @@ class Britney(object):
             for prov in binaries[1].get(name, []):
                 if prov not in binaries[0]: continue
                 package = binaries[0][prov]
-                # A provides only satisfies:
-                # - an unversioned dependency (per Policy Manual §7.5)
-                # - a dependency without an architecture qualifier
-                #   (per analysis of apt code)
-                if op == '' and version == '' and archqual is None:
+                # A provides only satisfies a dependency without an
+                # architecture qualifier (per analysis of apt code)
+                if ((op == '' and version == '') or (op == '=' and version != '')) and archqual is None:
                     packages.append(prov)
 
         return packages
-- 
2.1.4

Attachment: signature.asc
Description: Digital signature


Reply to: