summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2010-09-20 10:33:44 +0200
committerMichael Vogt <michael.vogt@ubuntu.com>2010-09-20 10:33:44 +0200
commitb5be0185f39aa90b86d13848531173c7ebed6b7b (patch)
treedf4c847d5ed510ba733c8a9985b81275c79589e1
parentb410a7e17e3a255127ef054b9a867354face49f3 (diff)
parentcb12be4893d8ac79dcbaa77e30cf61d69a4e859e (diff)
downloadpython-apt-b5be0185f39aa90b86d13848531173c7ebed6b7b.tar.gz
merged from lp:~mvo/python-apt/mvo
-rw-r--r--apt/debfile.py1
-rw-r--r--aptsources/distinfo.py8
-rw-r--r--aptsources/distro.py1
-rw-r--r--data/templates/Ubuntu.info.in21
-rw-r--r--debian/changelog9
-rw-r--r--python/configuration.cc2
-rw-r--r--python/depcache.cc4
-rw-r--r--python/tag.cc6
8 files changed, 45 insertions, 7 deletions
diff --git a/apt/debfile.py b/apt/debfile.py
index 7728ed21..25a45e98 100644
--- a/apt/debfile.py
+++ b/apt/debfile.py
@@ -65,7 +65,6 @@ class DebPackage(object):
self.filename = filename
self._debfile = apt_inst.DebFile(open(self.filename))
control = self._debfile.control.extractdata("control")
- # hm, 'replace' is probably better but python2.6 test fail with that
self._sections = apt_pkg.TagSection(control)
self.pkgname = self._sections["Package"]
diff --git a/aptsources/distinfo.py b/aptsources/distinfo.py
index 19308348..6374f185 100644
--- a/aptsources/distinfo.py
+++ b/aptsources/distinfo.py
@@ -52,6 +52,7 @@ class Template(object):
self.mirror_set = {}
self.distribution = None
self.available = True
+ self.official = True
def has_component(self, comp):
''' Check if the distribution provides the given component '''
@@ -207,7 +208,9 @@ class DistInfo(object):
template.parents.append(nanny)
nanny.children.append(template)
elif field == 'Available':
- template.available = value
+ template.available = apt_pkg.string_to_bool(value)
+ elif field == 'Official':
+ template.official = apt_pkg.string_to_bool(value)
elif field == 'RepositoryType':
template.type = value
elif field == 'BaseURI' and not template.base_uri:
@@ -275,6 +278,9 @@ class DistInfo(object):
if component and not template.has_component(component.name):
template.components.append(component)
component = None
+ # the official attribute is inherited
+ for t in template.parents:
+ template.official = t.official
self.templates.append(template)
diff --git a/aptsources/distro.py b/aptsources/distro.py
index e51fbe9f..23192f50 100644
--- a/aptsources/distro.py
+++ b/aptsources/distro.py
@@ -100,6 +100,7 @@ class Distribution(object):
if (source.invalid == False and
self.is_codename(source.dist) and
source.template and
+ source.template.official == True and
self.is_codename(source.template.name)):
#print "yeah! found a distro repo: %s" % source.line
# cdroms need do be handled differently
diff --git a/data/templates/Ubuntu.info.in b/data/templates/Ubuntu.info.in
index 74095516..a9b539af 100644
--- a/data/templates/Ubuntu.info.in
+++ b/data/templates/Ubuntu.info.in
@@ -35,6 +35,26 @@ _CompDescription: Officially supported
Component: restricted
_CompDescription: Restricted copyright
+Suite: maverick
+Official: false
+RepositoryType: deb
+BaseURI: http://archive.canonical.com
+MatchURI: archive.canonical.com
+_Description: Canonical Partners
+Component: partner
+_CompDescription: Software packaged by Canonical for their partners
+_CompDescriptionLong: This software is not part of Ubuntu.
+
+Suite: maverick
+Official: false
+RepositoryType: deb
+BaseURI: http://extras.ubuntu.com
+MatchURI: extras.ubuntu.com
+_Description: Independent
+Component: main
+_CompDescription: Provided by third-party software developers
+_CompDescriptionLong: Software offered by third party developers.
+
Suite: maverick-security
ParentSuite: maverick
RepositoryType: deb
@@ -756,3 +776,4 @@ Suite: warty-backports
ParentSuite: warty
RepositoryType: deb
_Description: Ubuntu 4.10 Backports
+
diff --git a/debian/changelog b/debian/changelog
index efc01884..a4358ec6 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-python-apt (0.7.97.2) UNRELEASED; urgency=low
+python-apt (0.7.98) UNRELEASED; urgency=low
[ Michael Vogt ]
* python/acquire.cc:
@@ -18,6 +18,13 @@ python-apt (0.7.97.2) UNRELEASED; urgency=low
* debian/control:
- add missing build-depends on python-debian (needed to run the
tests for apt.debfile.DebPackage()
+ * data/templates/Ubuntu.info.in:
+ - add extras.ubuntu.com and archvie.canonical.com to the
+ templates
+ * aptsources/distinfo.py, aptsources/distro.py:
+ - support non-official templates (like extras.ubuntu.com)
+ * fix return type of DebSize() and UsrSize(), thanks to
+ Sebastian Heinlein, LP: #642936
[ Kiwinote ]
* apt/debfile:
diff --git a/python/configuration.cc b/python/configuration.cc
index 848b664a..93e92efa 100644
--- a/python/configuration.cc
+++ b/python/configuration.cc
@@ -157,7 +157,7 @@ static PyObject *CnfClear(PyObject *Self,PyObject *Args)
// The amazing narrowing search ability!
static const char *doc_SubTree =
- "sub_tree(key: str) -> apt_pkg.Configuration\n\n"
+ "subtree(key: str) -> apt_pkg.Configuration\n\n"
"Return a new apt_pkg.Configuration object with the given option\n"
"as its root. Example:\n\n"
diff --git a/python/depcache.cc b/python/depcache.cc
index cd098f2f..b7294644 100644
--- a/python/depcache.cc
+++ b/python/depcache.cc
@@ -650,10 +650,10 @@ static PyObject *PkgDepCacheGetBrokenCount(PyObject *Self,void*) {
return Py_BuildValue("l", depcache->BrokenCount());
}
static PyObject *PkgDepCacheGetUsrSize(PyObject *Self,void*) {
- return Py_BuildValue("d", depcache->UsrSize());
+ return Py_BuildValue("L", depcache->UsrSize());
}
static PyObject *PkgDepCacheGetDebSize(PyObject *Self,void*) {
- return Py_BuildValue("d", depcache->DebSize());
+ return Py_BuildValue("L", depcache->DebSize());
}
#undef depcache
diff --git a/python/tag.cc b/python/tag.cc
index 97039bc4..44cd06af 100644
--- a/python/tag.cc
+++ b/python/tag.cc
@@ -344,8 +344,12 @@ static PyObject *TagFileJump(PyObject *Self,PyObject *Args)
// ---------------------------------------------------------------------
static PyObject *TagSecNew(PyTypeObject *type,PyObject *Args,PyObject *kwds) {
char *Data;
+ int Len;
char *kwlist[] = {"text", 0};
- if (PyArg_ParseTupleAndKeywords(Args,kwds,"s",kwlist,&Data) == 0)
+
+ // this allows reading "byte" types from python3 - but we don't
+ // make (much) use of it yet
+ if (PyArg_ParseTupleAndKeywords(Args,kwds,"s#",kwlist,&Data,&Len) == 0)
return 0;
// Create the object..