On 2013-09-18 6:33, Niels Thykier wrote:
I think we should take this opportunity to get rid of the "empty"
PREDEPENDS slot (i.e. have the MULTIARCH field replace PREDEPENDS).
There is no point in having the empty slot for PREDEPENDS; yours
truly
was just too lazy to figure out how to remove it from the C code when
I
merged PREDEPENDS into DEPENDS.
Seems reasonable; attached is a diff on top of the earlier patch that
does that, and passes the testsuite (including live-data).
I've also attached a squashed diff showing the cumulative changes
relative to the live code. I've left the "depends" array as-is because
it's part of the underlying abstraction; I assume the four elements are
intended to correspond to the fields which dpkg/apt consider as
"dependency relations", i.e. pre-depends, depends, recommends and
suggests. If we don't care about maintaining that in the abstraction
then we could probably flatten depends from a deplistlist to a deplist.
Regards,
Adam
diff --git a/britney.py b/britney.py
index 037645f..d2bcbd6 100755
--- a/britney.py
+++ b/britney.py
@@ -525,7 +525,6 @@ class Britney(object):
version,
get_field('Architecture'),
get_field('Multi-Arch'),
- None, # Pre-depends - leave as None for the C-code
deps,
', '.join(final_conflicts_list) or None,
get_field('Provides'),
diff --git a/consts.py b/consts.py
index eba22d2..827e7d4 100644
--- a/consts.py
+++ b/consts.py
@@ -30,11 +30,8 @@ SOURCE = 2
SOURCEVER = 3
ARCHITECTURE = 4
MULTIARCH = 5
-# PREDEPENDS = 6 - No longer used by the python code
-# - The C-code needs it for alignment reasons and still check it
-# but ignore it if it is None (so keep it None).
-DEPENDS = 7
-CONFLICTS = 8
-PROVIDES = 9
-RDEPENDS = 10
-RCONFLICTS = 11
+DEPENDS = 6
+CONFLICTS = 7
+PROVIDES = 8
+RDEPENDS = 9
+RCONFLICTS = 10
diff --git a/lib/britney-py.c b/lib/britney-py.c
index 28ace3c..94833cf 100644
--- a/lib/britney-py.c
+++ b/lib/britney-py.c
@@ -85,6 +85,7 @@ static PyObject *dpkgpackages_add_binary(dpkgpackages *self,
PyObject *args) {
pkg->package = strdup(pkg_name);
pkg->priority = 0;
pkg->details = NULL;
+ pkg->depends[1] = NULL;
pkg->depends[2] = NULL;
pkg->depends[3] = NULL;
@@ -119,16 +120,10 @@ static PyObject *dpkgpackages_add_binary(dpkgpackages
*self, PyObject *args) {
pyString = PyList_GetItem(value, 7);
if (pyString == NULL) return NULL;
if (pyString != Py_None) {
- pkg->depends[1] = read_dep_andor(PyString_AsString(pyString));
- } else pkg->depends[1] = NULL;
-
- pyString = PyList_GetItem(value, 8);
- if (pyString == NULL) return NULL;
- if (pyString != Py_None) {
pkg->conflicts = read_dep_and(PyString_AsString(pyString));
} else pkg->conflicts = NULL;
- pyString = PyList_GetItem(value, 9);
+ pyString = PyList_GetItem(value, 8);
if (pyString == NULL) return NULL;
if (pyString != Py_None) {
pkg->provides = read_packagenames(PyString_AsString(pyString));
@@ -211,12 +206,11 @@ static PyObject *build_system(PyObject *self, PyObject
*args) {
# SOURCEVER = 3
# ARCHITECTURE = 4
# MULTIARCH = 5
- # PREDEPENDS = 6
- # DEPENDS = 7
- # CONFLICTS = 8
- # PROVIDES = 9
- # RDEPENDS = 10
- # RCONFLICTS = 11
+ # DEPENDS = 6
+ # CONFLICTS = 7
+ # PROVIDES = 8
+ # RDEPENDS = 9
+ # RCONFLICTS = 10
*/
dpkg_packages *dpkg_pkgs = new_packages(arch);
@@ -230,6 +224,7 @@ static PyObject *build_system(PyObject *self, PyObject
*args) {
pkg->package = strdup(PyString_AsString(key));
pkg->priority = 0;
pkg->details = NULL;
+ pkg->depends[1] = NULL;
pkg->depends[2] = NULL;
pkg->depends[3] = NULL;
@@ -264,16 +259,10 @@ static PyObject *build_system(PyObject *self, PyObject
*args) {
pyString = PyList_GetItem(value, 7);
if (pyString == NULL) continue;
if (pyString != Py_None) {
- pkg->depends[1] = read_dep_andor(PyString_AsString(pyString));
- } else pkg->depends[1] = NULL;
-
- pyString = PyList_GetItem(value, 8);
- if (pyString == NULL) continue;
- if (pyString != Py_None) {
pkg->conflicts = read_dep_and(PyString_AsString(pyString));
} else pkg->conflicts = NULL;
- pyString = PyList_GetItem(value, 9);
+ pyString = PyList_GetItem(value, 8);
if (pyString == NULL) continue;
if (pyString != Py_None) {
pkg->provides = read_packagenames(PyString_AsString(pyString));
--- /srv/release.debian.org/britney/code/b2/lib/britney-py.c 2013-07-07
13:42:04.000000000 +0000
+++ lib/britney-py.c 2013-09-18 07:09:03.000000000 +0000
@@ -85,6 +85,7 @@
pkg->package = strdup(pkg_name);
pkg->priority = 0;
pkg->details = NULL;
+ pkg->depends[1] = NULL;
pkg->depends[2] = NULL;
pkg->depends[3] = NULL;
@@ -107,14 +108,14 @@
pyString = PyList_GetItem(value, 5);
if (pyString == NULL) return NULL;
if (pyString != Py_None) {
- pkg->depends[0] = read_dep_andor(PyString_AsString(pyString));
- } else pkg->depends[0] = NULL;
+ pkg->multiarch = PyString_AsString(pyString);
+ } else pkg->multiarch = NULL;
pyString = PyList_GetItem(value, 6);
if (pyString == NULL) return NULL;
if (pyString != Py_None) {
- pkg->depends[1] = read_dep_andor(PyString_AsString(pyString));
- } else pkg->depends[1] = NULL;
+ pkg->depends[0] = read_dep_andor(PyString_AsString(pyString));
+ } else pkg->depends[0] = NULL;
pyString = PyList_GetItem(value, 7);
if (pyString == NULL) return NULL;
@@ -204,7 +205,7 @@
# SOURCE = 2
# SOURCEVER = 3
# ARCHITECTURE = 4
- # PREDEPENDS = 5
+ # MULTIARCH = 5
# DEPENDS = 6
# CONFLICTS = 7
# PROVIDES = 8
@@ -223,6 +224,7 @@
pkg->package = strdup(PyString_AsString(key));
pkg->priority = 0;
pkg->details = NULL;
+ pkg->depends[1] = NULL;
pkg->depends[2] = NULL;
pkg->depends[3] = NULL;
@@ -245,14 +247,14 @@
pyString = PyList_GetItem(value, 5);
if (pyString == NULL) continue;
if (pyString != Py_None) {
- pkg->depends[0] = read_dep_andor(PyString_AsString(pyString));
- } else pkg->depends[0] = NULL;
+ pkg->multiarch = PyString_AsString(pyString);
+ } else pkg->multiarch = NULL;
pyString = PyList_GetItem(value, 6);
if (pyString == NULL) continue;
if (pyString != Py_None) {
- pkg->depends[1] = read_dep_andor(PyString_AsString(pyString));
- } else pkg->depends[1] = NULL;
+ pkg->depends[0] = read_dep_andor(PyString_AsString(pyString));
+ } else pkg->depends[0] = NULL;
pyString = PyList_GetItem(value, 7);
if (pyString == NULL) continue;