]> git.ipfire.org Git - pakfire.git/commitdiff
Fix import of database packages by checking the input a bit better.
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 20 Jul 2011 09:03:29 +0000 (11:03 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 20 Jul 2011 09:03:29 +0000 (11:03 +0200)
pakfire/constants.py
pakfire/repository/index.py
po/pakfire.pot
src/pool.c
src/relation.c
src/solvable.c

index f1f86e8f047962069587ae7d1f55d6ae07a9311f..bb2982e257216d0a8834f348833c8363e7abcb74 100644 (file)
@@ -38,7 +38,7 @@ MAKEFILE_EXTENSION = "nm"
 
 PACKAGE_FILENAME_FMT = "%(name)s-%(version)s-%(release)s.%(arch)s.%(ext)s"
 
-BUILD_PACKAGES = ["build-essentials",]
+BUILD_PACKAGES = ["build-essentials=1:3.0-alpha2-19.ip3",]
 SHELL_PACKAGES = ["elinks", "less", "pakfire", "vim",]
 BUILD_ROOT = "/var/lib/pakfire/build"
 
index 4714ad107c887a29429ded22597d826e81f56af3..5a7494b8379e7dc9ed862a90ec628d6a5df693c4 100644 (file)
@@ -79,25 +79,47 @@ class Index(object):
                        pkg.friendly_version, pkg.arch)
 
                # Save metadata.
-               solvable.set_vendor(pkg.vendor)
-               solvable.set_hash1(pkg.hash1)
+               if pkg.vendor:
+                       solvable.set_vendor(pkg.vendor)
+
+               hash1 = pkg.hash1
+               assert hash1
+               solvable.set_hash1(hash1)
+
+               assert pkg.uuid
                solvable.set_uuid(pkg.uuid)
-               solvable.set_maintainer(pkg.maintainer)
-               solvable.set_groups(" ".join(pkg.groups))
+
+               if pkg.maintainer:
+                       solvable.set_maintainer(pkg.maintainer)
+
+               if pkg.groups:
+                       solvable.set_groups(" ".join(pkg.groups))
 
                # Save upstream information (summary, description, license, url).
-               solvable.set_summary(pkg.summary)
-               solvable.set_description(pkg.description)
-               solvable.set_license(pkg.license)
-               solvable.set_url(pkg.url)
+               if pkg.summary:
+                       solvable.set_summary(pkg.summary)
+
+               if pkg.description:
+                       solvable.set_description(pkg.description)
+
+               if pkg.license:
+                       solvable.set_license(pkg.license)
+
+               if pkg.url:
+                       solvable.set_url(pkg.url)
 
                # Save build information.
-               solvable.set_buildhost(pkg.build_host)
-               solvable.set_buildtime(pkg.build_time)
+               if pkg.build_host:
+                       solvable.set_buildhost(pkg.build_host)
+
+               if pkg.build_time:
+                       solvable.set_buildtime(pkg.build_time)
 
                # Save filename.
                filename = os.path.basename(pkg.filename)
+               assert filename
                solvable.set_filename(filename)
+
                solvable.set_downloadsize(pkg.size)
                solvable.set_installsize(pkg.inst_size)
 
@@ -322,8 +344,7 @@ class IndexLocal(Index):
                                        i += 1
                                        pb.update(i)
 
-                               # XXX currently broken
-                               #self.add_package(pkg)
+                               self.add_package(pkg)
 
                        if pb:
                                pb.finish()
index f1d2d7bb39d6c3bf63afa18b29f5cae9271e21dc..6293a9aae9a89a09cacef60cf10fc40a4a3f9932 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-17 12:07+0200\n"
+"POT-Creation-Date: 2011-07-20 11:00+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -290,13 +290,19 @@ msgstr ""
 msgid "Requires"
 msgstr ""
 
-#: ../pakfire/repository/index.py:216
+#: ../pakfire/repository/index.py:215
 #, python-format
 msgid "%s: package database"
 msgstr ""
 
+#. Create progress bar.
+#: ../pakfire/repository/index.py:289
+#, python-format
+msgid "Loading from %s"
+msgstr ""
+
 #. Add all packages from the database to the index.
-#: ../pakfire/repository/index.py:317
+#: ../pakfire/repository/index.py:339
 msgid "Loading installed packages"
 msgstr ""
 
index 02befe528c7a23f502890ca73d85b114c8051565..eb530d6e2129f5fbc9d7f0c55fcb0fa9e54f13d2 100644 (file)
@@ -46,7 +46,7 @@ PyObject* Pool_new(PyTypeObject *type, PyObject *args, PyObject *kwds) {
 }
 
 PyObject *Pool_dealloc(PoolObject *self) {
-       // pool_free(self->_pool);
+       pool_free(self->_pool);
        self->ob_type->tp_free((PyObject *)self);
 }
 
@@ -120,6 +120,7 @@ PyObject *Pool_search(PoolObject *self, PyObject *args) {
 
        if (!PyArg_ParseTuple(args, "s|is", &match, &option, &keyname)) {
                /* XXX raise exception */
+               return NULL;
        }
 
        return _Pool_search(self->_pool, NULL, match, option, keyname);
@@ -142,6 +143,7 @@ PyObject *Pool_providers(PoolObject *self, PyObject *args) {
 
        if (!PyArg_ParseTuple(args, "s", &name)) {
                /* XXX raise exception */
+               return NULL;
        }
 
        Id id = pool_str2id(self->_pool, name, 0);
index 779aac702ee2a3caf0a90e5fe9903187ae0d5507..10020e6b32d3e316280ca2b8fd16a3bd121d72c7 100644 (file)
@@ -18,11 +18,12 @@ PyObject* Relation_new(PyTypeObject *type, PyObject *args, PyObject *kwds) {
        RelationObject *self;
        PoolObject *pool;
        const char *name;
-       const char *evr;
+       const char *evr = NULL;
        int flags = 0;
 
        if (!PyArg_ParseTuple(args, "Os|si", &pool, &name, &evr, &flags)) {
                /* XXX raise exception */
+               return NULL;
        }
 
        Id _name = pool_str2id(pool->_pool, name, 1);
@@ -44,4 +45,6 @@ PyObject* Relation_new(PyTypeObject *type, PyObject *args, PyObject *kwds) {
 
 PyObject *Relation_dealloc(RelationObject *self) {
        self->ob_type->tp_free((PyObject *)self);
+
+       Py_RETURN_NONE;
 }
index c00bf6502125d898e5de157fc6b66621cd402a23..feb1a0095900b36257383a819c1dd360393db9ef 100644 (file)
@@ -24,6 +24,7 @@ PyObject* Solvable_new(PyTypeObject *type, PyObject *args, PyObject *kwds) {
 
        if (!PyArg_ParseTuple(args, "Oss|s", &repo, &name, &evr, &arch)) {
                /* XXX raise exception */
+               return NULL;
        }
 
        self = (SolvableObject *)type->tp_alloc(type, 0);
@@ -48,6 +49,8 @@ PyObject* Solvable_new(PyTypeObject *type, PyObject *args, PyObject *kwds) {
 
 PyObject *Solvable_dealloc(SolvableObject *self) {
        self->ob_type->tp_free((PyObject *)self);
+
+       Py_RETURN_NONE;
 }
 
 PyObject *Solvable_get_name(SolvableObject *self) {
@@ -88,6 +91,7 @@ PyObject *Solvable_set_vendor(SolvableObject *self, PyObject *args) {
        const char *vendor;
        if (!PyArg_ParseTuple(args, "s", &vendor)) {
                /* XXX raise exception */
+               return NULL;
        }
 
        solvable->vendor = pool_str2id(self->_pool, vendor, 1);
@@ -107,6 +111,7 @@ PyObject *Solvable_add_provides(SolvableObject *self, PyObject *args) {
        RelationObject *rel;
        if (!PyArg_ParseTuple(args, "O", &rel)) {
                /* XXX raise exception */
+               return NULL;
        }
 
        solv->provides = repo_addid_dep(solv->repo, solv->provides, rel->_id, 0);
@@ -152,6 +157,7 @@ PyObject *Solvable_add_requires(SolvableObject *self, PyObject *args) {
        RelationObject *rel;
        if (!PyArg_ParseTuple(args, "O", &rel)) {
                /* XXX raise exception */
+               return NULL;
        }
 
        solv->requires = repo_addid_dep(solv->repo, solv->requires, rel->_id, 0);
@@ -171,6 +177,7 @@ PyObject *Solvable_add_obsoletes(SolvableObject *self, PyObject *args) {
        RelationObject *rel;
        if (!PyArg_ParseTuple(args, "O", &rel)) {
                /* XXX raise exception */
+               return NULL;
        }
 
        solv->obsoletes = repo_addid_dep(solv->repo, solv->obsoletes, rel->_id, 0);
@@ -190,6 +197,7 @@ PyObject *Solvable_add_conflicts(SolvableObject *self, PyObject *args) {
        RelationObject *rel;
        if (!PyArg_ParseTuple(args, "O", &rel)) {
                /* XXX raise exception */
+               return NULL;
        }
 
        solv->conflicts = repo_addid_dep(solv->repo, solv->conflicts, rel->_id, 0);
@@ -210,6 +218,7 @@ PyObject *Solvable_set_uuid(SolvableObject *self, PyObject *args) {
 
        if (!PyArg_ParseTuple(args, "s", &uuid)) {
                /* XXX raise exception */
+               return NULL;
        }
 
        repo_set_str(solv->repo, self->_id, SOLVABLE_PKGID, uuid);
@@ -232,6 +241,7 @@ PyObject *Solvable_set_hash1(SolvableObject *self, PyObject *args) {
 
        if (!PyArg_ParseTuple(args, "s", &hash1)) {
                /* XXX raise exception */
+               return NULL;
        }
 
        repo_set_str(solv->repo, self->_id, SOLVABLE_CHECKSUM, hash1);
@@ -254,6 +264,7 @@ PyObject *Solvable_set_summary(SolvableObject *self, PyObject *args) {
 
        if (!PyArg_ParseTuple(args, "s", &summary)) {
                /* XXX raise exception */
+               return NULL;
        }
 
        repo_set_str(solv->repo, self->_id, SOLVABLE_SUMMARY, summary);
@@ -276,6 +287,7 @@ PyObject *Solvable_set_description(SolvableObject *self, PyObject *args) {
 
        if (!PyArg_ParseTuple(args, "s", &desc)) {
                /* XXX raise exception */
+               return NULL;
        }
 
        repo_set_str(solv->repo, self->_id, SOLVABLE_DESCRIPTION, desc);
@@ -299,6 +311,7 @@ PyObject *Solvable_set_url(SolvableObject *self, PyObject *args) {
 
        if (!PyArg_ParseTuple(args, "s", &url)) {
                /* XXX raise exception */
+               return NULL;
        }
 
        repo_set_str(solv->repo, self->_id, SOLVABLE_URL, url);
@@ -321,6 +334,7 @@ PyObject *Solvable_set_groups(SolvableObject *self, PyObject *args) {
 
        if (!PyArg_ParseTuple(args, "s", &groups)) {
                /* XXX raise exception */
+               return NULL;
        }
 
        repo_set_str(solv->repo, self->_id, SOLVABLE_GROUP, groups);
@@ -343,6 +357,7 @@ PyObject *Solvable_set_filename(SolvableObject *self, PyObject *args) {
 
        if (!PyArg_ParseTuple(args, "s", &filename)) {
                /* XXX raise exception */
+               return NULL;
        }
 
        repo_set_str(solv->repo, self->_id, SOLVABLE_MEDIAFILE, filename);
@@ -366,6 +381,7 @@ PyObject *Solvable_set_license(SolvableObject *self, PyObject *args) {
 
        if (!PyArg_ParseTuple(args, "s", &license)) {
                /* XXX raise exception */
+               return NULL;
        }
 
        repo_set_str(solv->repo, self->_id, SOLVABLE_LICENSE, license);
@@ -389,6 +405,7 @@ PyObject *Solvable_set_buildhost(SolvableObject *self, PyObject *args) {
 
        if (!PyArg_ParseTuple(args, "s", &buildhost)) {
                /* XXX raise exception */
+               return NULL;
        }
 
        repo_set_str(solv->repo, self->_id, SOLVABLE_BUILDHOST, buildhost);
@@ -412,6 +429,7 @@ PyObject *Solvable_set_maintainer(SolvableObject *self, PyObject *args) {
 
        if (!PyArg_ParseTuple(args, "s", &maintainer)) {
                /* XXX raise exception */
+               return NULL;
        }
 
        repo_set_str(solv->repo, self->_id, SOLVABLE_PACKAGER, maintainer);
@@ -435,6 +453,7 @@ PyObject *Solvable_set_downloadsize(SolvableObject *self, PyObject *args) {
 
        if (!PyArg_ParseTuple(args, "i", &downloadsize)) {
                /* XXX raise exception */
+               return NULL;
        }
 
        repo_set_num(solv->repo, self->_id, SOLVABLE_DOWNLOADSIZE, downloadsize);
@@ -458,6 +477,7 @@ PyObject *Solvable_set_installsize(SolvableObject *self, PyObject *args) {
 
        if (!PyArg_ParseTuple(args, "i", &installedsize)) {
                /* XXX raise exception */
+               return NULL;
        }
 
        repo_set_num(solv->repo, self->_id, SOLVABLE_INSTALLSIZE, installedsize);
@@ -481,6 +501,7 @@ PyObject *Solvable_set_buildtime(SolvableObject *self, PyObject *args) {
 
        if (!PyArg_ParseTuple(args, "i", &buildtime)) {
                /* XXX raise exception */
+               return NULL;
        }
 
        repo_set_num(solv->repo, self->_id, SOLVABLE_BUILDTIME, buildtime);