src/_pakfire/package.h \
src/_pakfire/pakfire.c \
src/_pakfire/pakfire.h \
- src/_pakfire/pool.c \
- src/_pakfire/pool.h \
src/_pakfire/problem.c \
src/_pakfire/problem.h \
src/_pakfire/relation.c \
src/libpakfire/package.c \
src/libpakfire/packagelist.c \
src/libpakfire/pakfire.c \
- src/libpakfire/pool.c \
src/libpakfire/problem.c \
src/libpakfire/relation.c \
src/libpakfire/relationlist.c \
src/libpakfire/include/pakfire/package.h \
src/libpakfire/include/pakfire/packagelist.h \
src/libpakfire/include/pakfire/pakfire.h \
- src/libpakfire/include/pakfire/pool.h \
src/libpakfire/include/pakfire/private.h \
src/libpakfire/include/pakfire/problem.h \
src/libpakfire/include/pakfire/relation.h \
#include "key.h"
#include "package.h"
#include "pakfire.h"
-#include "pool.h"
#include "problem.h"
#include "relation.h"
#include "repo.h"
Py_INCREF(&PackageType);
PyModule_AddObject(module, "Package", (PyObject *)&PackageType);
- // Pool
- if (PyType_Ready(&PoolType) < 0)
- return NULL;
- Py_INCREF(&PoolType);
- PyModule_AddObject(module, "Pool", (PyObject *)&PoolType);
-
// Problem
if (PyType_Ready(&ProblemType) < 0)
return NULL;
+++ /dev/null
-/*#############################################################################
-# #
-# Pakfire - The IPFire package management system #
-# Copyright (C) 2011 Pakfire development team #
-# #
-# This program is free software: you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation, either version 3 of the License, or #
-# (at your option) any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program. If not, see <http://www.gnu.org/licenses/>. #
-# #
-#############################################################################*/
-
-#include <Python.h>
-#include <fnmatch.h>
-#include <solv/poolarch.h>
-#include <solv/solver.h>
-
-#include <pakfire/errno.h>
-#include <pakfire/pakfire.h>
-#include <pakfire/pool.h>
-#include <pakfire/repo.h>
-
-#include "constants.h"
-#include "pakfire.h"
-#include "pool.h"
-#include "relation.h"
-#include "util.h"
-
-static PyObject* Pool_new(PyTypeObject* type, PyObject* args, PyObject* kwds) {
- PoolObject* self = (PoolObject *)type->tp_alloc(type, 0);
- if (self) {
- self->pool = NULL;
- }
-
- return (PyObject *)self;
-}
-
-static void Pool_dealloc(PoolObject* self) {
- if (self->pool)
- pakfire_pool_unref(self->pool);
-
- Py_TYPE(self)->tp_free((PyObject *)self);
-}
-
-static int Pool_init(PoolObject* self, PyObject* args, PyObject* kwds) {
- PakfireObject* pakfire = NULL;
-
- if (!PyArg_ParseTuple(args, "O!", &PakfireType, &pakfire))
- return -1;
-
- self->pool = pakfire_get_pool(pakfire->pakfire);
- if (!self->pool)
- return -1;
-
- return 0;
-}
-
-PyTypeObject PoolType = {
- PyVarObject_HEAD_INIT(NULL, 0)
- tp_name: "_pakfire.Pool",
- tp_basicsize: sizeof(PoolObject),
- tp_flags: Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE,
- tp_new: Pool_new,
- tp_dealloc: (destructor)Pool_dealloc,
- tp_init: (initproc)Pool_init,
- tp_doc: "Pool object",
-};
+++ /dev/null
-/*#############################################################################
-# #
-# Pakfire - The IPFire package management system #
-# Copyright (C) 2011 Pakfire development team #
-# #
-# This program is free software: you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation, either version 3 of the License, or #
-# (at your option) any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program. If not, see <http://www.gnu.org/licenses/>. #
-# #
-#############################################################################*/
-
-#ifndef PYTHON_PAKFIRE_POOL_H
-#define PYTHON_PAKFIRE_POOL_H
-
-#include <Python.h>
-
-#include <pakfire/pool.h>
-
-typedef struct {
- PyObject_HEAD
- PakfirePool pool;
-} PoolObject;
-
-extern PyTypeObject PoolType;
-
-#endif /* PYTHON_PAKFIRE_POOL_H */
#include <pakfire/errno.h>
#include <pakfire/problem.h>
-#include "pool.h"
#include "problem.h"
#include "solution.h"
static void Relation_dealloc(RelationObject* self) {
pakfire_relation_unref(self->relation);
- Py_XDECREF(self->pool);
+ Py_XDECREF(self->pakfire);
Py_TYPE(self)->tp_free((PyObject *)self);
}
#include <Python.h>
-#include <solv/pooltypes.h>
-#include <pakfire/relation.h>
+#include <pakfire/types.h>
#include "pakfire.h"
-#include "pool.h"
typedef struct {
PyObject_HEAD
PakfireObject* pakfire;
- PoolObject* pool;
PakfireRelation relation;
-
- // XXX COMPAT
- Pool* _pool;
- Id _id;
} RelationObject;
extern PyTypeObject RelationType;
#include <pakfire/errno.h>
#include <pakfire/solution.h>
-#include "pool.h"
#include "solution.h"
static SolutionObject* Solution_new_core(PyTypeObject* type, PakfireSolution solution) {
#include <pakfire/package.h>
#include <pakfire/packagelist.h>
-#include <pakfire/pool.h>
#include <pakfire/transaction.h>
#include "package.h"
const char* pakfire_get_path(Pakfire pakfire);
const char* pakfire_get_arch(Pakfire pakfire);
-PakfirePool pakfire_get_pool(Pakfire pakfire);
-
const char** pakfire_get_installonly(Pakfire pakfire);
void pakfire_set_installonly(Pakfire pakfire, const char** installonly);
+++ /dev/null
-/*#############################################################################
-# #
-# Pakfire - The IPFire package management system #
-# Copyright (C) 2013 Pakfire development team #
-# #
-# This program is free software: you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation, either version 3 of the License, or #
-# (at your option) any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program. If not, see <http://www.gnu.org/licenses/>. #
-# #
-#############################################################################*/
-
-#ifndef PAKFIRE_POOL_H
-#define PAKFIRE_POOL_H
-
-#include <pakfire/types.h>
-
-PakfirePool pakfire_pool_create(Pakfire pakfire);
-
-PakfirePool pakfire_pool_ref(PakfirePool pool);
-PakfirePool pakfire_pool_unref(PakfirePool pool);
-
-#ifdef PAKFIRE_PRIVATE
-
-#include <solv/pool.h>
-
-Pool* pakfire_pool_get_solv_pool(PakfirePool pool);
-
-#endif
-
-#endif /* PAKFIRE_POOL_H */
#include <solv/pooltypes.h>
#include <solv/queue.h>
-#include <pakfire/pool.h>
#include <pakfire/types.h>
PakfireRelation pakfire_relation_create(Pakfire pakfire, const char* name, int cmp_type, const char* evr);
PakfireRepo pakfire_repo_ref(PakfireRepo repo);
PakfireRepo pakfire_repo_unref(PakfireRepo repo);
-PakfirePool pakfire_repo_get_pool(PakfireRepo repo);
-
int pakfire_repo_identical(PakfireRepo repo1, PakfireRepo repo2);
int pakfire_repo_cmp(PakfireRepo repo1, PakfireRepo repo2);
int pakfire_repo_count(PakfireRepo repo);
PakfireRequest pakfire_request_ref(PakfireRequest request);
PakfireRequest pakfire_request_unref(PakfireRequest request);
-PakfirePool pakfire_request_get_pool(PakfireRequest request);
-
int pakfire_request_solve(PakfireRequest request, int flags);
PakfireProblem pakfire_request_get_problems(PakfireRequest request);
PakfireTransaction pakfire_request_get_transaction(PakfireRequest request);
PakfireTransaction pakfire_transaction_unref(PakfireTransaction transaction);
Pakfire pakfire_transaction_get_pakfire(PakfireTransaction transaction);
-PakfirePool pakfire_transaction_get_pool(PakfireTransaction transaction);
size_t pakfire_transaction_count(PakfireTransaction transaction);
ssize_t pakfire_transaction_installsizechange(PakfireTransaction transaction);
typedef struct _PakfireKey* PakfireKey;
typedef struct _PakfirePackage* PakfirePackage;
typedef struct _PakfirePackageList* PakfirePackageList;
-typedef struct _PakfirePool* PakfirePool;
typedef struct _PakfireProblem* PakfireProblem;
typedef struct _PakfireRelation* PakfireRelation;
typedef struct _PakfireRelationList* PakfireRelationList;
pakfire_packagelist_sort;
pakfire_packagelist_unref;
- # pool
- pakfire_pool_create;
- pakfire_pool_ref;
- pakfire_pool_unref;
-
# problem
pakfire_problem_append;
pakfire_problem_create;
#include <pakfire/logging.h>
#include <pakfire/package.h>
#include <pakfire/pakfire.h>
-#include <pakfire/pool.h>
#include <pakfire/private.h>
#include <pakfire/relation.h>
#include <pakfire/relationlist.h>
};
static Pool* pakfire_package_get_solv_pool(PakfirePackage pkg) {
- PakfirePool pool = pakfire_get_pool(pkg->pakfire);
-
- Pool* p = pakfire_pool_get_solv_pool(pool);
- pakfire_pool_unref(pool);
-
- return p;
+ return pakfire_get_solv_pool(pkg->pakfire);
}
static void pakfire_package_add_self_provides(Pakfire pakfire, PakfirePackage pkg, const char* name, const char* evr) {
}
PAKFIRE_EXPORT PakfirePackageList pakfire_packagelist_from_queue(Pakfire pakfire, Queue* q) {
- PakfirePool _pool = pakfire_get_pool(pakfire);
PakfirePackageList list = pakfire_packagelist_create();
- Pool* pool = pakfire_pool_get_solv_pool(_pool);
+ Pool* pool = pakfire_get_solv_pool(pakfire);
Id p, pp;
for (int i = 0; i < q->count; i += 2) {
FOR_JOB_SELECT(p, pp, q->elements[i], q->elements[i + 1]) {
}
}
- pakfire_pool_unref(_pool);
-
return list;
}
#include <pakfire/package.h>
#include <pakfire/packagelist.h>
#include <pakfire/pakfire.h>
-#include <pakfire/pool.h>
#include <pakfire/private.h>
#include <pakfire/repo.h>
#include <pakfire/system.h>
char* arch;
// Pool stuff
- PakfirePool _pool;
Pool* pool;
int pool_ready;
Queue installonly;
DEBUG(" path = %s\n", pakfire_get_path(pakfire));
// Initialize the pool
- pakfire->_pool = pakfire_pool_create(pakfire);
pakfire->pool = pool_create();
// Set architecture of the pool
if (--pakfire->nrefs > 0)
return pakfire;
- pakfire_pool_unref(pakfire->_pool);
pakfire_pool_free_repos(pakfire->pool);
pool_free(pakfire->pool);
queue_free(&pakfire->installonly);
return pakfire->arch;
}
-PAKFIRE_EXPORT PakfirePool pakfire_get_pool(Pakfire pakfire) {
- return pakfire_pool_ref(pakfire->_pool);
-}
-
PAKFIRE_EXPORT int pakfire_version_compare(Pakfire pakfire, const char* evr1, const char* evr2) {
return pool_evrcmp_str(pakfire->pool, evr1, evr2, EVRCMP_COMPARE);
}
+++ /dev/null
-/*#############################################################################
-# #
-# Pakfire - The IPFire package management system #
-# Copyright (C) 2013 Pakfire development team #
-# #
-# This program is free software: you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation, either version 3 of the License, or #
-# (at your option) any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program. If not, see <http://www.gnu.org/licenses/>. #
-# #
-#############################################################################*/
-
-#include <assert.h>
-
-#include <solv/pool.h>
-#include <solv/queue.h>
-#include <solv/repo.h>
-
-#include <pakfire/logging.h>
-#include <pakfire/package.h>
-#include <pakfire/packagelist.h>
-#include <pakfire/pakfire.h>
-#include <pakfire/pool.h>
-#include <pakfire/private.h>
-#include <pakfire/repo.h>
-#include <pakfire/types.h>
-#include <pakfire/util.h>
-
-
-// This is just being left here for compatibility
-struct _PakfirePool {
- Pakfire pakfire;
- int nrefs;
-};
-
-PAKFIRE_EXPORT PakfirePool pakfire_pool_create(Pakfire pakfire) {
- PakfirePool pool = pakfire_calloc(1, sizeof(*pool));
- if (pool) {
- DEBUG("Allocated Pool at %p\n", pool);
- pool->nrefs = 1;
-
- pool->pakfire = pakfire_ref(pakfire);
- }
-
- return pool;
-}
-
-static void pakfire_pool_free(PakfirePool pool) {
- pakfire_unref(pool->pakfire);
- pakfire_free(pool);
-
- DEBUG("Released Pool at %p\n", pool);
-}
-
-PAKFIRE_EXPORT PakfirePool pakfire_pool_ref(PakfirePool pool) {
- ++pool->nrefs;
-
- return pool;
-}
-
-PAKFIRE_EXPORT PakfirePool pakfire_pool_unref(PakfirePool pool) {
- if (!pool)
- return NULL;
-
- if (--pool->nrefs > 0)
- return pool;
-
- pakfire_pool_free(pool);
- return NULL;
-}
-
-Pool* pakfire_pool_get_solv_pool(PakfirePool pool) {
- return pakfire_get_solv_pool(pool->pakfire);
-}
#include <pakfire/logging.h>
#include <pakfire/packagelist.h>
#include <pakfire/pakfire.h>
-#include <pakfire/pool.h>
#include <pakfire/private.h>
#include <pakfire/relation.h>
#include <pakfire/types.h>
#include <pakfire/logging.h>
#include <pakfire/pakfire.h>
-#include <pakfire/pool.h>
#include <pakfire/private.h>
#include <pakfire/relation.h>
#include <pakfire/relationlist.h>
#include <pakfire/logging.h>
#include <pakfire/package.h>
#include <pakfire/pakfire.h>
-#include <pakfire/pool.h>
#include <pakfire/private.h>
#include <pakfire/repo.h>
#include <pakfire/types.h>
return NULL;
}
-static PakfireRepo get_pakfire_repo_by_name(PakfirePool pool, const char* name) {
- Pool* p = pakfire_pool_get_solv_pool(pool);
-
- Repo* repo = get_repo_by_name(p, name);
+static PakfireRepo get_pakfire_repo_by_name(Pakfire pakfire, const char* name) {
+ Pool* pool = pakfire_get_solv_pool(pakfire);
+ Repo* repo = get_repo_by_name(pool, name);
if (repo)
return repo->appdata;
}
PAKFIRE_EXPORT PakfireRepo pakfire_repo_create(Pakfire pakfire, const char* name) {
- PakfirePool pool = pakfire_get_pool(pakfire);
-
- PakfireRepo repo = get_pakfire_repo_by_name(pool, name);
+ PakfireRepo repo = get_pakfire_repo_by_name(pakfire, name);
if (repo) {
repo->nrefs++;
-
- pakfire_pool_unref(pool);
-
return repo;
}
- Pool* p = pakfire_pool_get_solv_pool(pool);
- pakfire_pool_unref(pool);
+ Pool* pool = pakfire_get_solv_pool(pakfire);
- Repo* r = get_repo_by_name(p, name);
+ Repo* r = get_repo_by_name(pool, name);
if (!r)
- r = repo_create(p, name);
+ r = repo_create(pool, name);
return pakfire_repo_create_from_repo(pakfire, r);
}
return repo->filelist;
}
-PAKFIRE_EXPORT PakfirePool pakfire_repo_get_pool(PakfireRepo repo) {
- return pakfire_get_pool(repo->pakfire);
-}
-
-static Pool* pakfire_repo_get_solv_pool(PakfireRepo repo) {
- PakfirePool pool = pakfire_repo_get_pool(repo);
-
- Pool* p = pakfire_pool_get_solv_pool(pool);
- pakfire_pool_unref(pool);
-
- return p;
-}
-
PAKFIRE_EXPORT int pakfire_repo_identical(PakfireRepo repo1, PakfireRepo repo2) {
Repo* r1 = repo1->repo;
Repo* r2 = repo2->repo;
}
PAKFIRE_EXPORT int pakfire_repo_count(PakfireRepo repo) {
- Pool* pool = pakfire_repo_get_solv_pool(repo);
+ Pool* pool = pakfire_get_solv_pool(repo->pakfire);
int cnt = 0;
for (int i = 2; i < pool->nsolvables; i++) {
return NULL;
}
-PAKFIRE_EXPORT PakfirePool pakfire_request_get_pool(PakfireRequest request) {
- return pakfire_get_pool(request->pakfire);
-}
-
Solver* pakfire_request_get_solver(PakfireRequest request) {
return request->solver;
}
#include <pakfire/package.h>
#include <pakfire/packagelist.h>
#include <pakfire/pakfire.h>
-#include <pakfire/pool.h>
#include <pakfire/private.h>
#include <pakfire/selector.h>
#include <pakfire/types.h>
#include <pakfire/logging.h>
#include <pakfire/package.h>
#include <pakfire/pakfire.h>
-#include <pakfire/pool.h>
#include <pakfire/private.h>
#include <pakfire/repo.h>
#include <pakfire/step.h>
#include <pakfire/package.h>
#include <pakfire/packagelist.h>
#include <pakfire/pakfire.h>
-#include <pakfire/pool.h>
#include <pakfire/private.h>
#include <pakfire/repo.h>
#include <pakfire/step.h>
return pakfire_ref(transaction->pakfire);
}
-PAKFIRE_EXPORT PakfirePool pakfire_transaction_get_pool(PakfireTransaction transaction) {
- return pakfire_get_pool(transaction->pakfire);
-}
-
Transaction* pakfire_transaction_get_transaction(PakfireTransaction transaction) {
return transaction->transaction;
}
# Load configuration
self.config = config or Config("general.conf")
- self.pool = _pakfire.Pool(self)
self.cache_path = cache_path or \
os.path.join(CACHE_DIR, self.distro.sname, self.distro.release)
pkgs.append(pkg)
else:
- pkgs += self.pakfire.pool.whatprovides(pattern, name_only=True)
+ pkgs += self.pakfire.whatprovides(pattern, name_only=True)
return sorted(pkgs)
pkgs = []
for pattern in patterns:
- for pkg in self.pakfire.pool.whatprovides(self, pattern):
+ for pkg in self.pakfire.whatprovides(self, pattern):
if pkg in pkgs:
continue
return sorted(pkgs)
def search(self, pattern):
- return self.pakfire.pool.search(pattern)
+ return self.pakfire.search(pattern)
# Transactions
# XXX handle files and URLs
for req in requires:
- relation = _pakfire.Relation(self.pakfire.pool, req)
+ relation = _pakfire.Relation(self.pakfire, req)
request.install(relation)
return request.solve(**kwargs)
request = _pakfire.Request(self.pakfire)
for pkg in pkgs:
- relation = _pakfire.Relation(self.pakfire.pool, pkg)
+ relation = _pakfire.Relation(self.pakfire, pkg)
request.erase(relation)
return request.solve(**kwargs)
# Add all packages that should be updated to the request
for req in reqs or []:
- relation = _pakfire.Relation(self.pakfire.pool, req)
+ relation = _pakfire.Relation(self.pakfire, req)
request.upgrade(relation)
# Otherwise we will try to upgrade everything
# Exclude packages that should not be updated
for exclude in excludes or []:
- relation = _pakfire.Relation(self.pakfire.pool, exclude)
+ relation = _pakfire.Relation(self.pakfire, exclude)
request.lock(relation)
return request.solve(**kwargs)
logger = logging.getLogger("pakfire")
# Create a new request.
- request = self.pakfire.pool.create_request()
+ request = self.pakfire.create_request()
# Fill request.
for pattern in pkgs:
if best is None:
logger.warning(_("\"%s\" package does not seem to be installed.") % pattern)
else:
- rel = self.pakfire.pool.create_relation("%s < %s" % (best.name, best.friendly_version))
+ rel = self.pakfire.create_relation("%s < %s" % (best.name, best.friendly_version))
request.install(rel)
# Solve the request.
- solver = self.pakfire.pool.solve(request, allow_downgrade=True, **kwargs)
+ solver = self.pakfire.solve(request, allow_downgrade=True, **kwargs)
assert solver.status is True
# Create the transaction.
#log.debug("%s is equal to %s by UUID" % (self, other))
return 0
- ret = util.version_compare(self.pakfire.pool,
- self.friendly_version, other.friendly_version)
+ ret = self.pakfire.version_compare(self.friendly_version, other.friendly_version)
# XXX this is to move packages that have been built a while ago and
# do not have all the meta information that they won't be evaluated
def distro(self):
return self.pakfire.distro
- @property
- def pool(self):
- return self.pakfire.pool
-
def load_configuration(self, *paths):
c = config.Config()
repo.enabled = False
def whatprovides(self, *args, **kwargs):
- return self.pool.whatprovides(self.pakfire, *args, **kwargs)
+ return self.pakfire.whatprovides(*args, **kwargs)
def clean(self):
log.info("Cleaning up all repository caches...")
from .i18n import _
# Import binary version of version_compare and capability functions
-from ._pakfire import version_compare, get_capabilities, set_capabilities, personality
+from ._pakfire import get_capabilities, set_capabilities, personality
def cli_is_interactive():
"""