Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=0744fc74459d1fd767ec0df0d7b1c011cdda5e2f
commit 0744fc74459d1fd767ec0df0d7b1c011cdda5e2f Author: Michel Hermier <[email protected]> Date: Sun Apr 27 21:23:25 2014 +0200 libpacman: s/pmpkg_t/Package/ diff --git a/lib/libpacman/cache.cpp b/lib/libpacman/cache.cpp index 392077b..15b7fe4 100644 --- a/lib/libpacman/cache.cpp +++ b/lib/libpacman/cache.cpp @@ -58,7 +58,7 @@ int _pacman_db_load_grpcache(Database *db); */ int _pacman_db_load_pkgcache(Database *db) { - pmpkg_t *info; + Package *info; ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); @@ -107,9 +107,9 @@ pmlist_t *_pacman_db_get_pkgcache(Database *db) return(db->pkgcache); } -int _pacman_db_add_pkgincache(Database *db, pmpkg_t *pkg) +int _pacman_db_add_pkgincache(Database *db, Package *pkg) { - pmpkg_t *newpkg; + Package *newpkg; ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); if(pkg == NULL) { @@ -128,9 +128,9 @@ int _pacman_db_add_pkgincache(Database *db, pmpkg_t *pkg) return(0); } -int _pacman_db_remove_pkgfromcache(Database *db, pmpkg_t *pkg) +int _pacman_db_remove_pkgfromcache(Database *db, Package *pkg) { - pmpkg_t *data; + Package *data; ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); if(pkg == NULL) { @@ -151,7 +151,7 @@ int _pacman_db_remove_pkgfromcache(Database *db, pmpkg_t *pkg) return(0); } -pmpkg_t *_pacman_db_get_pkgfromcache(Database *db, const char *target) +Package *_pacman_db_get_pkgfromcache(Database *db, const char *target) { ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, NULL)); if(_pacman_strempty(target)) { @@ -194,7 +194,7 @@ int _pacman_db_load_grpcache(Database *db) for(; lp; lp = lp->next) { pmlist_t *i; - pmpkg_t *pkg = lp->data; + Package *pkg = lp->data; if(!(pkg->infolevel & INFRQ_DESC)) { pkg->database->read(pkg, INFRQ_DESC); diff --git a/lib/libpacman/cache.h b/lib/libpacman/cache.h index 5f5a4fa..396e4b3 100644 --- a/lib/libpacman/cache.h +++ b/lib/libpacman/cache.h @@ -28,10 +28,10 @@ /* packages */ int _pacman_db_load_pkgcache(libpacman::Database *db); void _pacman_db_free_pkgcache(libpacman::Database *db); -int _pacman_db_add_pkgincache(libpacman::Database *db, pmpkg_t *pkg); -int _pacman_db_remove_pkgfromcache(libpacman::Database *db, pmpkg_t *pkg); +int _pacman_db_add_pkgincache(libpacman::Database *db, libpacman::Package *pkg); +int _pacman_db_remove_pkgfromcache(libpacman::Database *db, libpacman::Package *pkg); pmlist_t *_pacman_db_get_pkgcache(libpacman::Database *db); -pmpkg_t *_pacman_db_get_pkgfromcache(libpacman::Database *db, const char *target); +libpacman::Package *_pacman_db_get_pkgfromcache(libpacman::Database *db, const char *target); pmlist_t *_pacman_db_whatprovides(libpacman::Database *db, char *package); /* groups */ pmlist_t *_pacman_db_get_grpcache(libpacman::Database *db); diff --git a/lib/libpacman/conflict.cpp b/lib/libpacman/conflict.cpp index 20bc44e..f09c19e 100644 --- a/lib/libpacman/conflict.cpp +++ b/lib/libpacman/conflict.cpp @@ -51,7 +51,7 @@ using namespace libpacman; */ pmlist_t *_pacman_checkconflicts(pmtrans_t *trans, pmlist_t *packages) { - pmpkg_t *info = NULL; + Package *info = NULL; pmlist_t *i, *j, *k; pmlist_t *baddeps = NULL; pmdepmissing_t *miss = NULL; @@ -66,7 +66,7 @@ pmlist_t *_pacman_checkconflicts(pmtrans_t *trans, pmlist_t *packages) howmany = _pacman_list_count(packages); for(i = packages; i; i = i->next) { - pmpkg_t *tp = i->data; + Package *tp = i->data; if(tp == NULL) { continue; } @@ -87,7 +87,7 @@ pmlist_t *_pacman_checkconflicts(pmtrans_t *trans, pmlist_t *packages) /* CHECK 1: check targets against database */ _pacman_log(PM_LOG_DEBUG, _("checkconflicts: targ '%s' vs db"), tp->name); for(k = _pacman_db_get_pkgcache(db_local); k; k = k->next) { - pmpkg_t *dp = (pmpkg_t *)k->data; + Package *dp = (Package *)k->data; if(!strcmp(dp->name, tp->name)) { /* a package cannot conflict with itself -- that's just not nice */ continue; @@ -123,7 +123,7 @@ pmlist_t *_pacman_checkconflicts(pmtrans_t *trans, pmlist_t *packages) /* CHECK 2: check targets against targets */ _pacman_log(PM_LOG_DEBUG, _("checkconflicts: targ '%s' vs targs"), tp->name); for(k = packages; k; k = k->next) { - pmpkg_t *otp = (pmpkg_t *)k->data; + Package *otp = (Package *)k->data; if(!strcmp(otp->name, tp->name)) { /* a package cannot conflict with itself -- that's just not nice */ continue; @@ -171,7 +171,7 @@ pmlist_t *_pacman_checkconflicts(pmtrans_t *trans, pmlist_t *packages) * conflicts list from the new package, not the old one (*info) */ for(j = packages; j; j = j->next) { - pmpkg_t *pkg = j->data; + Package *pkg = j->data; if(!strcmp(pkg->name, info->name)) { /* Use the new, to-be-installed package's conflicts */ conflicts = _pacman_pkg_getinfo(pkg, PM_PKG_CONFLICTS); @@ -263,7 +263,7 @@ pmlist_t *_pacman_db_find_conflicts(pmtrans_t *trans, char *root, pmlist_t **ski struct stat buf; pmlist_t *conflicts = NULL; pmlist_t *targets = trans->packages; - pmpkg_t *p, *dbpkg; + Package *p, *dbpkg; double percent; int howmany, remain; Database *db_local = trans->handle->db_local; @@ -275,12 +275,12 @@ pmlist_t *_pacman_db_find_conflicts(pmtrans_t *trans, char *root, pmlist_t **ski /* CHECK 1: check every target against every target */ for(i = targets; i; i = i->next) { - pmpkg_t *p1 = (pmpkg_t*)i->data; + Package *p1 = (Package*)i->data; remain = _pacman_list_count(i); percent = (double)(howmany - remain + 1) / howmany; PROGRESS(trans, PM_TRANS_PROGRESS_CONFLICTS_START, "", (percent * 100), howmany, howmany - remain + 1); for(j = i; j; j = j->next) { - pmpkg_t *p2 = (pmpkg_t*)j->data; + Package *p2 = (Package*)j->data; if(strcmp(p1->name, p2->name)) { pmlist_t *ret = chk_fileconflicts(p1->files, p2->files); for(k = ret; k; k = k->next) { @@ -299,7 +299,7 @@ pmlist_t *_pacman_db_find_conflicts(pmtrans_t *trans, char *root, pmlist_t **ski } /* CHECK 2: check every target against the filesystem */ - p = (pmpkg_t*)i->data; + p = (Package*)i->data; dbpkg = NULL; for(j = p->files; j; j = j->next) { filestr = (char*)j->data; @@ -330,10 +330,10 @@ pmlist_t *_pacman_db_find_conflicts(pmtrans_t *trans, char *root, pmlist_t **ski if(!ok) { /* Look at all the targets */ for(k = targets; k && !ok; k = k->next) { - pmpkg_t *p2 = (pmpkg_t *)k->data; + Package *p2 = (Package *)k->data; /* As long as they're not the current package */ if(strcmp(p2->name, p->name)) { - pmpkg_t *dbpkg2 = NULL; + Package *dbpkg2 = NULL; dbpkg2 = _pacman_db_get_pkgfromcache(db_local, p2->name); if(dbpkg2 && !(dbpkg2->infolevel & INFRQ_FILES)) { _pacman_log(PM_LOG_DEBUG, _("loading FILES info for '%s'"), dbpkg2->name); diff --git a/lib/libpacman/db.cpp b/lib/libpacman/db.cpp index bdad96d..4e12f7d 100644 --- a/lib/libpacman/db.cpp +++ b/lib/libpacman/db.cpp @@ -106,7 +106,7 @@ pmlist_t *Database::search(pmlist_t *needles) if(f_strmatcher_init(&strmatcher, targ, F_STRMATCHER_ALL_IGNORE_CASE) == 0 && _pacman_packagestrmatcher_init(&packagestrmatcher, &strmatcher, PM_PACKAGE_FLAG_NAME | PM_PACKAGE_FLAG_DESCRIPTION | PM_PACKAGE_FLAG_PROVIDES) == 0) { for(j = _pacman_db_get_pkgcache(this); j; j = j->next) { - pmpkg_t *pkg = j->data; + Package *pkg = j->data; if(f_match(pkg, &packagestrmatcher)) { ret = f_ptrlist_append(ret, pkg); @@ -156,7 +156,7 @@ int Database::settimestamp(const time_t *timestamp) return _pacman_db_setlastupdate(this, buffer); } -int Database::read(pmpkg_t *info, unsigned int inforeq) +int Database::read(Package *info, unsigned int inforeq) { int ret; @@ -172,13 +172,13 @@ int Database::read(pmpkg_t *info, unsigned int inforeq) return ret; } -int Database::write(pmpkg_t *info, unsigned int inforeq) +int Database::write(Package *info, unsigned int inforeq) { ASSERT(info != NULL, RET_ERR(PM_ERR_PKG_INVALID, -1)); RET_ERR(PM_ERR_WRONG_ARGS, -1); // Not supported } -int Database::remove(pmpkg_t *info) +int Database::remove(Package *info) { ASSERT(info != NULL, RET_ERR(PM_ERR_PKG_INVALID, -1)); RET_ERR(PM_ERR_WRONG_ARGS, -1); // Not supported diff --git a/lib/libpacman/db.h b/lib/libpacman/db.h index 6226275..02563b6 100644 --- a/lib/libpacman/db.h +++ b/lib/libpacman/db.h @@ -40,13 +40,14 @@ namespace libpacman { class Database; +class Package; } typedef struct __pmdb_ops_t pmdb_ops_t; struct __pmdb_ops_t { - int (*read)(libpacman::Database *db, pmpkg_t *info, unsigned int inforeq); + int (*read)(libpacman::Database *db, libpacman::Package *info, unsigned int inforeq); }; namespace libpacman { @@ -68,12 +69,12 @@ class Database /* Package iterator */ virtual int rewind() = 0; - virtual pmpkg_t *readpkg(unsigned int inforeq) = 0; - virtual pmpkg_t *scan(const char *target, unsigned int inforeq) = 0; + virtual libpacman::Package *readpkg(unsigned int inforeq) = 0; + virtual libpacman::Package *scan(const char *target, unsigned int inforeq) = 0; - virtual int read(pmpkg_t *info, unsigned int inforeq); - virtual int write(pmpkg_t *info, unsigned int inforeq); - virtual int remove(pmpkg_t *info); + virtual int read(libpacman::Package *info, unsigned int inforeq); + virtual int write(libpacman::Package *info, unsigned int inforeq); + virtual int remove(libpacman::Package *info); // Cache operations pmlist_t *search(pmlist_t *needles); diff --git a/lib/libpacman/db/fakedb.cpp b/lib/libpacman/db/fakedb.cpp index 9315a59..46078f5 100644 --- a/lib/libpacman/db/fakedb.cpp +++ b/lib/libpacman/db/fakedb.cpp @@ -36,11 +36,13 @@ #include <time.h> -static pmpkg_t *_pacman_fakedb_pkg_new(pmdb_t *fakedb, const char *name) +using namespace libpacman; + +static Package *_pacman_fakedb_pkg_new(pmdb_t *fakedb, const char *name) { char *ptr, *p; char *str = NULL; - pmpkg_t *dummy = NULL; + Package *dummy = NULL; dummy = _pacman_pkg_new(NULL, NULL); if(dummy == NULL) { @@ -81,7 +83,7 @@ static pmpkg_t *_pacman_fakedb_pkg_new(pmdb_t *fakedb, const char *name) int _pacman_fakedb_addtarget(pmtrans_t *trans, const char *name) { - pmpkg_t *dummy = _pacman_fakedb_pkg_new(NULL, name); + Package *dummy = _pacman_fakedb_pkg_new(NULL, name); if (dummy == NULL) return -1; diff --git a/lib/libpacman/db/localdb.cpp b/lib/libpacman/db/localdb.cpp index a9efe6c..6bdbade 100644 --- a/lib/libpacman/db/localdb.cpp +++ b/lib/libpacman/db/localdb.cpp @@ -48,7 +48,7 @@ using namespace libpacman; static -int _pacman_localpkg_file_reader(Database *db, pmpkg_t *pkg, unsigned int flags, unsigned int flags_masq, const char *file, int (*reader)(pmpkg_t *, FILE *)) +int _pacman_localpkg_file_reader(Database *db, Package *pkg, unsigned int flags, unsigned int flags_masq, const char *file, int (*reader)(Package *, FILE *)) { int ret = 0; @@ -70,7 +70,7 @@ int _pacman_localpkg_file_reader(Database *db, pmpkg_t *pkg, unsigned int flags, } static int -_pacman_localpkg_read(pmpkg_t *pkg, unsigned int flags) +_pacman_localpkg_read(Package *pkg, unsigned int flags) { Database *db; struct stat buf; @@ -108,33 +108,26 @@ _pacman_localpkg_read(pmpkg_t *pkg, unsigned int flags) } static int -_pacman_localpkg_write(pmpkg_t *pkg, unsigned int flags) +_pacman_localpkg_write(Package *pkg, unsigned int flags) { return pkg->database->write(pkg, flags); } static int -_pacman_localpkg_remove(pmpkg_t *pkg) +_pacman_localpkg_remove(Package *pkg) { return pkg->database->remove(pkg); } static const struct __pmpkg_operations_t _pacman_localpkg_operations = { - .as_pmobject_operations_t = { - .fini = NULL, - - .get = NULL, - .set = NULL, - }, - .read = _pacman_localpkg_read, .write = _pacman_localpkg_write, .remove = _pacman_localpkg_remove, }; static -int _pacman_localpkg_init(pmpkg_t *pkg, Database *db) +int _pacman_localpkg_init(Package *pkg, Database *db) { ASSERT(pkg != NULL, RET_ERR(PM_ERR_PKG_INVALID, -1)); ASSERT(_pacman_pkg_init(pkg, db) == 0, return -1); @@ -143,9 +136,9 @@ int _pacman_localpkg_init(pmpkg_t *pkg, Database *db) } static -pmpkg_t *_pacman_localdb_pkg_new(Database *db, const struct dirent *dirent, unsigned int inforeq) +Package *_pacman_localdb_pkg_new(Database *db, const struct dirent *dirent, unsigned int inforeq) { - pmpkg_t *pkg; + Package *pkg; const char *dname; ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, NULL)); @@ -233,7 +226,7 @@ int LocalDatabase::rewind() return 0; } -pmpkg_t *LocalDatabase::readpkg(unsigned int inforeq) +Package *LocalDatabase::readpkg(unsigned int inforeq) { struct dirent *ent = NULL; struct stat sbuf; @@ -252,7 +245,7 @@ pmpkg_t *LocalDatabase::readpkg(unsigned int inforeq) return NULL; } -pmpkg_t *LocalDatabase::scan(const char *target, unsigned int inforeq) +Package *LocalDatabase::scan(const char *target, unsigned int inforeq) { struct dirent *ent = NULL; struct stat sbuf; @@ -292,7 +285,7 @@ pmpkg_t *LocalDatabase::scan(const char *target, unsigned int inforeq) } static -int _pacman_localdb_file_reader(Database *db, pmpkg_t *info, unsigned int inforeq, unsigned int inforeq_masq, const char *file, int (*reader)(pmpkg_t *, FILE *)) +int _pacman_localdb_file_reader(Database *db, Package *info, unsigned int inforeq, unsigned int inforeq_masq, const char *file, int (*reader)(Package *, FILE *)) { int ret = 0; @@ -314,7 +307,7 @@ int _pacman_localdb_file_reader(Database *db, pmpkg_t *info, unsigned int infore } static -int _pacman_localdb_read(Database *db, pmpkg_t *info, unsigned int inforeq) +int _pacman_localdb_read(Database *db, Package *info, unsigned int inforeq) { struct stat buf; char path[PATH_MAX]; @@ -381,7 +374,7 @@ void _pacman_localdb_write_stringlist(const char *entry, const pmlist_t *values, } } -int LocalDatabase::write(pmpkg_t *info, unsigned int inforeq) +int LocalDatabase::write(Package *info, unsigned int inforeq) { FILE *fp = NULL; char path[PATH_MAX]; @@ -473,7 +466,7 @@ cleanup: return(retval); } -int LocalDatabase::remove(pmpkg_t *info) +int LocalDatabase::remove(Package *info) { char path[PATH_MAX]; diff --git a/lib/libpacman/db/localdb.h b/lib/libpacman/db/localdb.h index e37b815..82d99fb 100644 --- a/lib/libpacman/db/localdb.h +++ b/lib/libpacman/db/localdb.h @@ -42,11 +42,11 @@ public: virtual int close(); virtual int rewind(); - virtual pmpkg_t *readpkg(unsigned int inforeq); - virtual pmpkg_t *scan(const char *target, unsigned int inforeq); + virtual libpacman::Package *readpkg(unsigned int inforeq); + virtual libpacman::Package *scan(const char *target, unsigned int inforeq); - virtual int write(pmpkg_t *info, unsigned int inforeq); - virtual int remove(pmpkg_t *info); + virtual int write(libpacman::Package *info, unsigned int inforeq); + virtual int remove(libpacman::Package *info); protected: virtual int open(int flags, time_t *timestamp); diff --git a/lib/libpacman/db/localdb_files.cpp b/lib/libpacman/db/localdb_files.cpp index 60d1ffc..4b56bf4 100644 --- a/lib/libpacman/db/localdb_files.cpp +++ b/lib/libpacman/db/localdb_files.cpp @@ -47,6 +47,8 @@ #include "error.h" #include "handle.h" +using namespace libpacman; + static int _pacman_db_read_lines(FStringList **list, char *s, size_t size, FILE *fp) { @@ -59,7 +61,7 @@ int _pacman_db_read_lines(FStringList **list, char *s, size_t size, FILE *fp) return lines; } -int _pacman_localdb_desc_fread(pmpkg_t *info, FILE *fp) +int _pacman_localdb_desc_fread(Package *info, FILE *fp) { char line[512]; int sline = sizeof(line)-1; @@ -181,7 +183,7 @@ error: return -1; } -int _pacman_localdb_depends_fread(pmpkg_t *info, FILE *fp) +int _pacman_localdb_depends_fread(Package *info, FILE *fp) { char line[512]; int sline = sizeof(line)-1; @@ -217,7 +219,7 @@ int _pacman_localdb_depends_fread(pmpkg_t *info, FILE *fp) return 0; } -int _pacman_localdb_files_fread(pmpkg_t *info, FILE *fp) +int _pacman_localdb_files_fread(Package *info, FILE *fp) { char line[512]; int sline = sizeof(line)-1; diff --git a/lib/libpacman/db/localdb_files.h b/lib/libpacman/db/localdb_files.h index dd65f16..3eb4478 100644 --- a/lib/libpacman/db/localdb_files.h +++ b/lib/libpacman/db/localdb_files.h @@ -77,9 +77,9 @@ #define PM_LOCALPACKAGE_FLAGS_ALL ~0 -int _pacman_localdb_desc_fread(pmpkg_t *info, FILE *fp); -int _pacman_localdb_depends_fread(pmpkg_t *info, FILE *fp); -int _pacman_localdb_files_fread(pmpkg_t *info, FILE *fp); +int _pacman_localdb_desc_fread(libpacman::Package *info, FILE *fp); +int _pacman_localdb_depends_fread(libpacman::Package *info, FILE *fp); +int _pacman_localdb_files_fread(libpacman::Package *info, FILE *fp); #endif /* _PACMAN_LOCALDB_FILES_H */ diff --git a/lib/libpacman/db/syncdb.cpp b/lib/libpacman/db/syncdb.cpp index 1e5be5c..cdfe72e 100644 --- a/lib/libpacman/db/syncdb.cpp +++ b/lib/libpacman/db/syncdb.cpp @@ -62,7 +62,7 @@ int suffixcmp(const char *str, const char *suffix) } static -int _pacman_syncpkg_file_reader(Database *db, pmpkg_t *pkg, unsigned int flags, unsigned int flags_masq, int (*reader)(pmpkg_t *, FILE *)) +int _pacman_syncpkg_file_reader(Database *db, Package *pkg, unsigned int flags, unsigned int flags_masq, int (*reader)(Package *, FILE *)) { int ret = 0; @@ -77,7 +77,7 @@ int _pacman_syncpkg_file_reader(Database *db, pmpkg_t *pkg, unsigned int flags, } static -int _pacman_syncpkg_read(pmpkg_t *pkg, unsigned int flags) +int _pacman_syncpkg_read(Package *pkg, unsigned int flags) { Database *db; int descdone = 0, depsdone = 0; @@ -110,20 +110,13 @@ int _pacman_syncpkg_read(pmpkg_t *pkg, unsigned int flags) static const struct __pmpkg_operations_t _pacman_syncpkg_operations = { - .as_pmobject_operations_t = { - .fini = NULL, - - .get = NULL, - .set = NULL, - }, - .read = _pacman_syncpkg_read, .write = NULL, .remove = NULL, }; static -int _pacman_syncpkg_init(pmpkg_t *pkg, Database *db) +int _pacman_syncpkg_init(Package *pkg, Database *db) { ASSERT(pkg != NULL, RET_ERR(PM_ERR_PKG_INVALID, -1)); ASSERT(_pacman_pkg_init(pkg, db) == 0, return -1); @@ -132,9 +125,9 @@ int _pacman_syncpkg_init(pmpkg_t *pkg, Database *db) } static -pmpkg_t *_pacman_syncdb_pkg_new(Database *db, const struct archive_entry *entry, unsigned int inforeq) +Package *_pacman_syncdb_pkg_new(Database *db, const struct archive_entry *entry, unsigned int inforeq) { - pmpkg_t *pkg; + Package *pkg; const char *dname; ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, NULL)); @@ -236,7 +229,7 @@ int SyncDatabase::rewind() return open(0, NULL); } -pmpkg_t *SyncDatabase::readpkg(unsigned int inforeq) +Package *SyncDatabase::readpkg(unsigned int inforeq) { struct archive_entry *entry = NULL; @@ -260,7 +253,7 @@ pmpkg_t *SyncDatabase::readpkg(unsigned int inforeq) return NULL; } -pmpkg_t *SyncDatabase::scan(const char *target, unsigned int inforeq) +Package *SyncDatabase::scan(const char *target, unsigned int inforeq) { char name[PKG_FULLNAME_LEN]; char *ptr = NULL; @@ -294,7 +287,7 @@ pmpkg_t *SyncDatabase::scan(const char *target, unsigned int inforeq) } static -int _pacman_syncdb_file_reader(Database *db, pmpkg_t *info, unsigned int inforeq, unsigned int inforeq_masq, int (*reader)(pmpkg_t *, FILE *)) +int _pacman_syncdb_file_reader(Database *db, Package *info, unsigned int inforeq, unsigned int inforeq_masq, int (*reader)(Package *, FILE *)) { int ret = 0; @@ -309,7 +302,7 @@ int _pacman_syncdb_file_reader(Database *db, pmpkg_t *info, unsigned int inforeq } static -int _pacman_syncdb_read(Database *db, pmpkg_t *info, unsigned int inforeq) +int _pacman_syncdb_read(Database *db, Package *info, unsigned int inforeq) { int descdone = 0, depsdone = 0; diff --git a/lib/libpacman/db/syncdb.h b/lib/libpacman/db/syncdb.h index c71dbcb..1615727 100644 --- a/lib/libpacman/db/syncdb.h +++ b/lib/libpacman/db/syncdb.h @@ -42,8 +42,8 @@ public: virtual int close(); virtual int rewind(); - virtual pmpkg_t *readpkg(unsigned int inforeq); - virtual pmpkg_t *scan(const char *target, unsigned int inforeq); + virtual libpacman::Package *readpkg(unsigned int inforeq); + virtual libpacman::Package *scan(const char *target, unsigned int inforeq); protected: virtual int open(int flags, time_t *timestamp); diff --git a/lib/libpacman/deps.cpp b/lib/libpacman/deps.cpp index 5c04927..b0d93b5 100644 --- a/lib/libpacman/deps.cpp +++ b/lib/libpacman/deps.cpp @@ -38,6 +38,7 @@ #include "util.h" #include "error.h" #include "package.h" +#include "pacman_p.h" #include "db.h" #include "cache.h" #include "versioncmp.h" @@ -136,11 +137,11 @@ pmlist_t *_pacman_sortbydeps(pmlist_t *targets, int mode) /* We compute the edges */ for(i = vertices; i; i = i->next) { pmgraph_t *vertex_i = i->data; - pmpkg_t *p_i = vertex_i->data; + Package *p_i = vertex_i->data; /* TODO this should be somehow combined with _pacman_checkdeps */ for(j = vertices; j; j = j->next) { pmgraph_t *vertex_j = j->data; - pmpkg_t *p_j = vertex_j->data; + Package *p_j = vertex_j->data; int child = 0; for(k = _pacman_pkg_getinfo(p_i, PM_PKG_DEPENDS); k && !child; k = k->next) { pmdepend_t depend; @@ -225,8 +226,8 @@ pmlist_t *_pacman_checkdeps(pmtrans_t *trans, unsigned char op, pmlist_t *packag * listed in the requiredby field. */ for(i = packages; i; i = i->next) { - pmpkg_t *tp = i->data; - pmpkg_t *oldpkg; + Package *tp = i->data; + Package *oldpkg; if(tp == NULL) { continue; } @@ -236,7 +237,7 @@ pmlist_t *_pacman_checkdeps(pmtrans_t *trans, unsigned char op, pmlist_t *packag } for(j = _pacman_pkg_getinfo(oldpkg, PM_PKG_REQUIREDBY); j; j = j->next) { //char *ver; - pmpkg_t *p; + Package *p; found = 0; if((p = _pacman_db_get_pkgfromcache(db_local, j->data)) == NULL) { /* hmmm... package isn't installed.. */ @@ -267,7 +268,7 @@ pmlist_t *_pacman_checkdeps(pmtrans_t *trans, unsigned char op, pmlist_t *packag if(op == PM_TRANS_TYPE_ADD || op == PM_TRANS_TYPE_UPGRADE) { /* DEPENDENCIES -- look for unsatisfied dependencies */ for(i = packages; i; i = i->next) { - pmpkg_t *tp = i->data; + Package *tp = i->data; if(tp == NULL) { continue; } @@ -278,7 +279,7 @@ pmlist_t *_pacman_checkdeps(pmtrans_t *trans, unsigned char op, pmlist_t *packag found = 0; /* check database for literal packages */ for(k = _pacman_db_get_pkgcache(db_local); k && !found; k = k->next) { - pmpkg_t *p = (pmpkg_t *)k->data; + Package *p = (Package *)k->data; if(!strcmp(p->name, depend.name)) { if(depend.mod == PM_DEP_MOD_ANY) { /* accept any version */ @@ -314,11 +315,11 @@ pmlist_t *_pacman_checkdeps(pmtrans_t *trans, unsigned char op, pmlist_t *packag * to install. this way, if we match against a to-be-installed * package, we'll defer to the NEW one, not the one already * installed. */ - pmpkg_t *p = m->data; + Package *p = m->data; pmlist_t *n; int skip = 0; for(n = packages; n && !skip; n = n->next) { - pmpkg_t *ptp = n->data; + Package *ptp = n->data; if(!strcmp(ptp->name, p->name)) { skip = 1; } @@ -355,7 +356,7 @@ pmlist_t *_pacman_checkdeps(pmtrans_t *trans, unsigned char op, pmlist_t *packag } /* check other targets */ for(k = packages; k && !found; k = k->next) { - pmpkg_t *p = (pmpkg_t *)k->data; + Package *p = (Package *)k->data; /* see if the package names match OR if p provides depend.name */ if(!strcmp(p->name, depend.name) || _pacman_list_is_strin(depend.name, _pacman_pkg_getinfo(p, PM_PKG_PROVIDES))) { if(depend.mod == PM_DEP_MOD_ANY || @@ -401,7 +402,7 @@ pmlist_t *_pacman_checkdeps(pmtrans_t *trans, unsigned char op, pmlist_t *packag } else if(op == PM_TRANS_TYPE_REMOVE) { /* check requiredby fields */ for(i = packages; i; i = i->next) { - pmpkg_t *tp = i->data; + Package *tp = i->data; if(tp == NULL) { continue; } @@ -411,7 +412,7 @@ pmlist_t *_pacman_checkdeps(pmtrans_t *trans, unsigned char op, pmlist_t *packag if(!_pacman_list_is_strin((char *)j->data, packages)) { /* check if a package in trans->packages provides this package */ for(k=trans->packages; !found && k; k=k->next) { - pmpkg_t *spkg = k->data; + Package *spkg = k->data; if(spkg && _pacman_list_is_strin(tp->name, _pacman_pkg_getinfo(spkg, PM_PKG_PROVIDES))) { found=1; @@ -419,7 +420,7 @@ pmlist_t *_pacman_checkdeps(pmtrans_t *trans, unsigned char op, pmlist_t *packag } for(k=trans->syncpkgs; !found && k; k=k->next) { pmsyncpkg_t *ps = k->data; - pmpkg_t *spkg = ps->pkg; + Package *spkg = ps->pkg; if(spkg && _pacman_list_is_strin(tp->name, _pacman_pkg_getinfo(spkg, PM_PKG_PROVIDES))) { found=1; @@ -504,9 +505,9 @@ pmlist_t *_pacman_removedeps(Database *db, pmlist_t *targs) } for(i = targs; i; i = i->next) { - for(j = (_pacman_pkg_getinfo((pmpkg_t *)i->data, PM_PKG_DEPENDS)); j; j = j->next) { + for(j = (_pacman_pkg_getinfo((Package *)i->data, PM_PKG_DEPENDS)); j; j = j->next) { pmdepend_t depend; - pmpkg_t *dep; + Package *dep; int needed = 0; if(_pacman_splitdep(j->data, &depend)) { @@ -521,7 +522,7 @@ pmlist_t *_pacman_removedeps(Database *db, pmlist_t *targs) _pacman_log(PM_LOG_WARNING, _("cannot find package \"%s\" or anything that provides it!"), depend.name); continue; } - dep = _pacman_db_get_pkgfromcache(db, ((pmpkg_t *)k->data)->name); + dep = _pacman_db_get_pkgfromcache(db, ((Package *)k->data)->name); if(dep == NULL) { _pacman_log(PM_LOG_ERROR, _("dep is NULL!")); /* wtf */ @@ -541,13 +542,13 @@ pmlist_t *_pacman_removedeps(Database *db, pmlist_t *targs) /* see if other packages need it */ for(k = _pacman_pkg_getinfo(dep, PM_PKG_REQUIREDBY); k && !needed; k = k->next) { - pmpkg_t *dummy = _pacman_db_get_pkgfromcache(db, k->data); + Package *dummy = _pacman_db_get_pkgfromcache(db, k->data); if(!_pacman_pkg_isin(dummy->name, targs)) { needed = 1; } } if(!needed) { - pmpkg_t *pkg = _pacman_pkg_new(dep->name, dep->version); + Package *pkg = _pacman_pkg_new(dep->name, dep->version); if(pkg == NULL) { continue; } @@ -569,7 +570,7 @@ pmlist_t *_pacman_removedeps(Database *db, pmlist_t *targs) * * make sure *list and *trail are already initialized */ -int _pacman_resolvedeps(pmtrans_t *trans, pmpkg_t *syncpkg, pmlist_t *list, +int _pacman_resolvedeps(pmtrans_t *trans, Package *syncpkg, pmlist_t *list, pmlist_t *trail, pmlist_t **data) { pmlist_t *i, *j; @@ -592,11 +593,11 @@ int _pacman_resolvedeps(pmtrans_t *trans, pmpkg_t *syncpkg, pmlist_t *list, for(i = deps; i; i = i->next) { int found = 0; pmdepmissing_t *miss = i->data; - pmpkg_t *ps = NULL; + Package *ps = NULL; /* check if one of the packages in *list already provides this dependency */ for(j = list; j && !found; j = j->next) { - pmpkg_t *sp = (pmpkg_t *)j->data; + Package *sp = (Package *)j->data; if(_pacman_list_is_strin(miss->depend.name, _pacman_pkg_getinfo(sp, PM_PKG_PROVIDES))) { _pacman_log(PM_LOG_DEBUG, _("%s provides dependency %s -- skipping"), sp->name, miss->depend.name); @@ -648,7 +649,7 @@ int _pacman_resolvedeps(pmtrans_t *trans, pmpkg_t *syncpkg, pmlist_t *list, */ int usedep = 1; if(_pacman_list_is_strin(ps->name, handle->ignorepkg)) { - pmpkg_t *dummypkg = _pacman_pkg_new(miss->target, NULL); + Package *dummypkg = _pacman_pkg_new(miss->target, NULL); QUESTION(trans, PM_TRANS_CONV_INSTALL_IGNOREPKG, dummypkg, ps, NULL, &usedep); FREEPKG(dummypkg); } @@ -688,7 +689,7 @@ error: return(-1); } -int _pacman_depcmp(pmpkg_t *pkg, pmdepend_t *dep) +int _pacman_depcmp(Package *pkg, pmdepend_t *dep) { int equal = 0, cmp; const char *mod = "~="; @@ -757,7 +758,7 @@ extern "C" { int pacman_output_generate(pmlist_t *targets, pmlist_t *dblist) { pmlist_t *found = NULL; pmlist_t *k = NULL, *j = NULL; - pmpkg_t *pkg = NULL; + Package *pkg = NULL; char *match = NULL; int foundMatch = 0; unsigned int inforeq = INFRQ_DEPENDS; @@ -767,7 +768,7 @@ int pacman_output_generate(pmlist_t *targets, pmlist_t *dblist) { foundMatch = 0; pkg = db->readpkg(inforeq); while(pkg != NULL) { - char *pname = (char *)pacman_pkg_getinfo(pkg, PM_PKG_NAME); + char *pname = (char *)pacman_pkg_getinfo(c_cast(pkg), PM_PKG_NAME); targets = _pacman_list_remove(targets, (void*) pname, str_cmp, (void **)&match); if(match) { foundMatch = 1; diff --git a/lib/libpacman/deps.h b/lib/libpacman/deps.h index 5948676..c6e0257 100644 --- a/lib/libpacman/deps.h +++ b/lib/libpacman/deps.h @@ -53,9 +53,9 @@ pmlist_t *_pacman_sortbydeps(pmlist_t *targets, int mode); pmlist_t *_pacman_checkdeps(pmtrans_t *trans, unsigned char op, pmlist_t *packages); int _pacman_splitdep(char *depstr, pmdepend_t *depend); pmlist_t *_pacman_removedeps(libpacman::Database *db, pmlist_t *targs); -int _pacman_resolvedeps(pmtrans_t *trans, pmpkg_t *syncpkg, pmlist_t *list, +int _pacman_resolvedeps(pmtrans_t *trans, libpacman::Package *syncpkg, pmlist_t *list, pmlist_t *trail, pmlist_t **data); -int _pacman_depcmp(pmpkg_t *pkg, pmdepend_t *dep); +int _pacman_depcmp(libpacman::Package *pkg, pmdepend_t *dep); #endif /* _PACMAN_DEPS_H */ diff --git a/lib/libpacman/package.cpp b/lib/libpacman/package.cpp index 48c26c2..cc84561 100644 --- a/lib/libpacman/package.cpp +++ b/lib/libpacman/package.cpp @@ -48,18 +48,13 @@ using namespace libpacman; -Package::~Package() -{ -} - -int Package::write(pmpkg_t *pkg, unsigned int flags) +Package::Package(__pmpkg_operations_t *_operations) + : operations(_operations) { - return -1; } -int Package::remove(pmpkg_t *pkg) +Package::~Package() { - return -1; } /* @@ -115,22 +110,11 @@ unsigned int _pacman_pkg_parm_to_flag(unsigned char parm) } */ -pmpkg_t *_pacman_pkg_alloc(size_t size, const struct __pmpkg_operations_t *package_operations) +Package *_pacman_pkg_new(const char *name, const char *version) { - pmpkg_t *ret; - - ASSERT(size >= sizeof(*ret), RET_ERR(PM_ERR_WRONG_ARGS, NULL)); - ASSERT(package_operations != NULL, RET_ERR(PM_ERR_WRONG_ARGS, NULL)); - - ret = (pmpkg_t *)_pacman_object_alloc(size, &package_operations->as_pmobject_operations_t, NULL); - return ret; -} + Package* pkg = NULL; -pmpkg_t *_pacman_pkg_new(const char *name, const char *version) -{ - pmpkg_t* pkg = NULL; - - if((pkg = (pmpkg_t *)f_zalloc(sizeof(pmpkg_t))) == NULL) { + if((pkg = (Package *)f_zalloc(sizeof(Package))) == NULL) { return NULL; } @@ -144,9 +128,9 @@ pmpkg_t *_pacman_pkg_new(const char *name, const char *version) return(pkg); } -pmpkg_t *_pacman_pkg_new_from_filename(const char *filename, int witharch) +Package *_pacman_pkg_new_from_filename(const char *filename, int witharch) { - pmpkg_t *pkg; + Package *pkg; ASSERT(pkg = _pacman_pkg_new(NULL, NULL), return NULL); @@ -157,9 +141,9 @@ pmpkg_t *_pacman_pkg_new_from_filename(const char *filename, int witharch) return pkg; } -pmpkg_t *_pacman_pkg_dup(pmpkg_t *pkg) +Package *_pacman_pkg_dup(Package *pkg) { - pmpkg_t* newpkg = _pacman_malloc(sizeof(pmpkg_t)); + Package* newpkg = _pacman_malloc(sizeof(Package)); if(newpkg == NULL) { return(NULL); @@ -203,7 +187,7 @@ pmpkg_t *_pacman_pkg_dup(pmpkg_t *pkg) return(newpkg); } -int _pacman_pkg_delete(pmpkg_t *self) +int _pacman_pkg_delete(Package *self) { ASSERT(_pacman_pkg_fini(self) == 0, RET_ERR(PM_ERR_WRONG_ARGS, -1)); @@ -211,10 +195,9 @@ int _pacman_pkg_delete(pmpkg_t *self) return 0; } -int _pacman_pkg_init(pmpkg_t *self, Database *db) +int _pacman_pkg_init(Package *self, Database *db) { ASSERT(self != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1)); - ASSERT(_pacman_object_init(&self->as_pmobject_t, NULL) == 0, return -1); ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); self->database = db; @@ -222,7 +205,7 @@ int _pacman_pkg_init(pmpkg_t *self, Database *db) return 0; } -int _pacman_pkg_fini(pmpkg_t *self) +int _pacman_pkg_fini(Package *self) { ASSERT(self != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1)); @@ -244,24 +227,14 @@ int _pacman_pkg_fini(pmpkg_t *self) return 0; } -static -const struct __pmpkg_operations_t *_pacman_package_operations(pmpkg_t *self) -{ - const struct __pmobject_operations_t *object_operations; - - ASSERT((object_operations = _pacman_object_operations(&self->as_pmobject_t)) != NULL, RET_ERR(PM_ERR_WRONG_ARGS, NULL)); - - return (const struct __pmpkg_operations_t *)object_operations; -} - /* Helper function for comparing packages */ int _pacman_pkg_cmp(const void *p1, const void *p2) { - return(strcmp(((pmpkg_t *)p1)->name, ((pmpkg_t *)p2)->name)); + return(strcmp(((Package *)p1)->name, ((Package *)p2)->name)); } -int _pacman_pkg_is_valid(const pmpkg_t *pkg, const pmtrans_t *trans, const char *pkgfile) +int _pacman_pkg_is_valid(const Package *pkg, const pmtrans_t *trans, const char *pkgfile) { struct utsname name; @@ -305,9 +278,9 @@ pkg_error: } /* Test for existence of a package in a pmlist_t* - * of pmpkg_t* + * of Package* */ -pmpkg_t *_pacman_pkg_isin(const char *needle, pmlist_t *haystack) +Package *_pacman_pkg_isin(const char *needle, pmlist_t *haystack) { pmlist_t *lp; @@ -316,7 +289,7 @@ pmpkg_t *_pacman_pkg_isin(const char *needle, pmlist_t *haystack) } for(lp = haystack; lp; lp = lp->next) { - pmpkg_t *info = lp->data; + Package *info = lp->data; if(info && !strcmp(info->name, needle)) { return(lp->data); @@ -366,46 +339,41 @@ int _pacman_pkg_splitname(const char *target, char *name, char *version, int wit return(0); } -int _pacman_pkg_read(pmpkg_t *pkg, unsigned int flags) +int Package::read(unsigned int flags) { - const struct __pmpkg_operations_t *package_operations; - - ASSERT((package_operations = _pacman_package_operations(pkg)) != NULL, return -1); - ASSERT(package_operations->read != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1)); + ASSERT(operations != NULL, return -1); + ASSERT(operations->read != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1)); - if(~pkg->flags & flags) { - return package_operations->read(pkg, flags); + if(~this->flags & flags) { + return operations->read(this, flags); } return 0; } -int _pacman_pkg_write(pmpkg_t *pkg, unsigned int flags) +int Package::write(unsigned int flags) { - const struct __pmpkg_operations_t *package_operations; int ret; - ASSERT((package_operations = _pacman_package_operations(pkg)) != NULL, return -1); - ASSERT(package_operations->write != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1)); + ASSERT(operations != NULL, return -1); + ASSERT(operations->write != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1)); - if((ret = package_operations->write(pkg, flags)) != 0) { + if((ret = operations->write(this, flags)) != 0) { _pacman_log(PM_LOG_ERROR, _("could not update requiredby for database entry %s-%s"), - pkg->name, pkg->version); + this->name, this->version); } return ret; } -int _pacman_pkg_remove(pmpkg_t *pkg) +int Package::remove() { - const struct __pmpkg_operations_t *package_operations; - - ASSERT((package_operations = _pacman_package_operations(pkg)) != NULL, return -1); - ASSERT(package_operations->remove != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1)); + ASSERT(operations != NULL, return -1); + ASSERT(operations->remove != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1)); - return package_operations->remove(pkg); + return operations->remove(this); } static -void *__pacman_pkg_getinfo(pmpkg_t *pkg, unsigned char parm) +void *__pacman_pkg_getinfo(Package *pkg, unsigned char parm) { void *data = NULL; @@ -503,7 +471,7 @@ void *__pacman_pkg_getinfo(pmpkg_t *pkg, unsigned char parm) return(data); } -void *_pacman_pkg_getinfo(pmpkg_t *pkg, unsigned char parm) +void *_pacman_pkg_getinfo(Package *pkg, unsigned char parm) { #if 0 return pkg->operations->getinfo(pkg, parm); @@ -531,7 +499,7 @@ pmlist_t *_pacman_pkg_getowners(const char *filename) } for(lp = _pacman_db_get_pkgcache(handle->db_local); lp; lp = lp->next) { - pmpkg_t *info; + Package *info; pmlist_t *i; info = lp->data; @@ -558,16 +526,16 @@ pmlist_t *_pacman_pkg_getowners(const char *filename) return(ret); } -int _pacman_pkg_filename(char *str, size_t size, const pmpkg_t *pkg) +int _pacman_pkg_filename(char *str, size_t size, const Package *pkg) { return snprintf(str, size, "%s-%s-%s%s", pkg->name, pkg->version, pkg->arch, PM_EXT_PKG); } -/* Look for a filename in a pmpkg_t.backup list. If we find it, +/* Look for a filename in a Package.backup list. If we find it, * then we return the md5 or sha1 hash (parsed from the same line) */ -char *_pacman_pkg_fileneedbackup(const pmpkg_t *pkg, const char *file) +char *_pacman_pkg_fileneedbackup(const Package *pkg, const char *file) { const pmlist_t *lp; @@ -600,13 +568,6 @@ char *_pacman_pkg_fileneedbackup(const pmpkg_t *pkg, const char *file) } const struct __pmpkg_operations_t pmpkg_operations = { - .as_pmobject_operations_t = { - .fini = NULL, - - .get = NULL, - .set = NULL, - }, - .read = NULL, .write = NULL, .remove = NULL @@ -622,7 +583,7 @@ struct FPackageStrMatcher static int _pacman_packagestrmatcher_match(const void *ptr, const void *matcher_data) { - const pmpkg_t *pkg = ptr; + const Package *pkg = ptr; const FPackageStrMatcher *data = matcher_data; const int flags = data->flags; const FStrMatcher *strmatcher = data->strmatcher; @@ -632,19 +593,19 @@ int _pacman_packagestrmatcher_match(const void *ptr, const void *matcher_data) { if(pkg->origin == PKG_FROM_CACHE) { if(!(pkg->infolevel & INFRQ_DESC)) { _pacman_log(PM_LOG_DEBUG, _("loading DESC info for '%s'"), pkg->name); - _pacman_db_read(pkg->data, (pmpkg_t *)pkg, INFRQ_DESC); + _pacman_db_read(pkg->data, (Package *)pkg, INFRQ_DESC); } if(!(pkg->infolevel & INFRQ_DEPENDS)) { _pacman_log(PM_LOG_DEBUG, "loading DEPENDS info for '%s'", pkg->name); - _pacman_db_read(pkg->data, (pmpkg_t *)pkg, INFRQ_DEPENDS); + _pacman_db_read(pkg->data, (Package *)pkg, INFRQ_DEPENDS); } if(pkg->data == handle->db_local && !(pkg->infolevel & INFRQ_FILES)) { _pacman_log(PM_LOG_DEBUG, _("loading FILES info for '%s'"), pkg->name); - _pacman_db_read(pkg->data, (pmpkg_t *)pkg, INFRQ_FILES); + _pacman_db_read(pkg->data, (Package *)pkg, INFRQ_FILES); } if(pkg->data == handle->db_local && !(pkg->infolevel & INFRQ_SCRIPLET)) { _pacman_log(PM_LOG_DEBUG, _("loading SCRIPLET info for '%s'"), pkg->name); - _pacman_db_read(pkg->data, (pmpkg_t *)pkg, INFRQ_SCRIPLET); + _pacman_db_read(pkg->data, (Package *)pkg, INFRQ_SCRIPLET); } } #endif diff --git a/lib/libpacman/package.h b/lib/libpacman/package.h index 3142da0..81acd5c 100644 --- a/lib/libpacman/package.h +++ b/lib/libpacman/package.h @@ -78,17 +78,34 @@ enum { #define PM_PACKAGE_FLAG_SCRIPTLET (1<<24) #define PM_PACKAGE_FLAG_STICKY (1<<25) -struct __pmpkg_operations_t { - struct __pmobject_operations_t as_pmobject_operations_t; +namespace libpacman { + +class Package; + +} - int (*read)(pmpkg_t *pkg, unsigned int flags); - int (*write)(pmpkg_t *pkg, unsigned int flags); /* Optional */ - int (*remove)(pmpkg_t *pkg); /* Optional */ +struct __pmpkg_operations_t { + int (*read)(libpacman::Package *pkg, unsigned int flags); + int (*write)(libpacman::Package *pkg, unsigned int flags); /* Optional */ + int (*remove)(libpacman::Package *pkg); /* Optional */ }; +namespace libpacman { + /* IMPROVEMENT: Add a dirty_flags to know what flags needs to be written */ -struct __pmpkg_t { - struct __pmobject_t as_pmobject_t; +class Package + : public libpacman::Object +{ +public: + + Package(__pmpkg_operations_t *operations); + virtual ~Package(); + + virtual int read(unsigned int flags); + virtual int write(unsigned int flags); /* Optional */ + virtual int remove(); /* Optional */ + + __pmpkg_operations_t *operations; libpacman::Database *database; unsigned int flags; @@ -128,6 +145,8 @@ struct __pmpkg_t { unsigned char infolevel; }; +} + #define FREEPKG(p) \ do { \ if(p && _pacman_pkg_delete(p) == 0) { \ @@ -137,54 +156,30 @@ do { \ #define FREELISTPKGS(p) _FREELIST(p, _pacman_pkg_delete) -pmpkg_t *_pacman_pkg_alloc(size_t size, const struct __pmpkg_operations_t *package_operations); +libpacman::Package *_pacman_pkg_new(const char *name, const char *version); +libpacman::Package *_pacman_pkg_new_from_filename(const char *filename, int witharch); +libpacman::Package *_pacman_pkg_dup(libpacman::Package *pkg); +int _pacman_pkg_delete(libpacman::Package *self); -pmpkg_t *_pacman_pkg_new(const char *name, const char *version); -pmpkg_t *_pacman_pkg_new_from_filename(const char *filename, int witharch); -pmpkg_t *_pacman_pkg_dup(pmpkg_t *pkg); -int _pacman_pkg_delete(pmpkg_t *self); - -int _pacman_pkg_init(pmpkg_t *self, libpacman::Database *db); -int _pacman_pkg_fini(pmpkg_t *self); +int _pacman_pkg_init(libpacman::Package *self, libpacman::Database *db); +int _pacman_pkg_fini(libpacman::Package *self); int _pacman_pkg_cmp(const void *p1, const void *p2); -int _pacman_pkg_is_valid(const pmpkg_t *pkg, const pmtrans_t *trans, const char *pkgfile); -pmpkg_t *_pacman_pkg_isin(const char *needle, pmlist_t *haystack); +int _pacman_pkg_is_valid(const libpacman::Package *pkg, const pmtrans_t *trans, const char *pkgfile); +libpacman::Package *_pacman_pkg_isin(const char *needle, pmlist_t *haystack); int _pacman_pkg_splitname(const char *target, char *name, char *version, int witharch); -int _pacman_pkg_read(pmpkg_t *pkg, unsigned int flags); -int _pacman_pkg_write(pmpkg_t *pkg, unsigned int flags); -int _pacman_pkg_remove(pmpkg_t *pkg); - -void *_pacman_pkg_getinfo(pmpkg_t *pkg, unsigned char parm); +void *_pacman_pkg_getinfo(libpacman::Package *pkg, unsigned char parm); pmlist_t *_pacman_pkg_getowners(const char *filename); -int _pacman_pkg_filename(char *str, size_t size, const pmpkg_t *pkg); -char *_pacman_pkg_fileneedbackup(const pmpkg_t *pkg, const char *file); +int _pacman_pkg_filename(char *str, size_t size, const libpacman::Package *pkg); +char *_pacman_pkg_fileneedbackup(const libpacman::Package *pkg, const char *file); int _pacman_packagestrmatcher_init(FMatcher *matcher, const FStrMatcher *strmatcher, int flags); int _pacman_packagestrmatcher_fini(FMatcher *matcher); int _pacman_packagestrmatcher_set_flags(FMatcher *matcher, int flags); -namespace libpacman -{ - -class Package - : public libpacman::Object -{ -public: - ~Package(); - - virtual int read(pmpkg_t *pkg, unsigned int flags) = 0; - virtual int write(pmpkg_t *pkg, unsigned int flags); /* Optional */ - virtual int remove(pmpkg_t *pkg); /* Optional */ - - struct __pmpkg_t *d; -}; - -} - #endif /* _PACMAN_PACKAGE_H */ /* vim: set ts=2 sw=2 noet: */ diff --git a/lib/libpacman/package/fpmpackage.cpp b/lib/libpacman/package/fpmpackage.cpp index eba7232..927ecd0 100644 --- a/lib/libpacman/package/fpmpackage.cpp +++ b/lib/libpacman/package/fpmpackage.cpp @@ -44,11 +44,13 @@ #include <stdio.h> #include <stdlib.h> +using namespace libpacman; + /* Parses the pkginfo package description file for the current package * * Returns: 0 on success, 1 on error */ -int _pacman_pkginfo_fread(FILE *descfile, pmpkg_t *info, int output) +int _pacman_pkginfo_fread(FILE *descfile, Package *info, int output) { char line[PATH_MAX]; char* ptr = NULL; @@ -133,7 +135,7 @@ int _pacman_pkginfo_fread(FILE *descfile, pmpkg_t *info, int output) return(0); } -int _pacman_pkginfo_read(char *descfile, pmpkg_t *info, int output) +int _pacman_pkginfo_read(char *descfile, Package *info, int output) { FILE* fp = NULL; int ret; @@ -151,7 +153,7 @@ int _pacman_pkginfo_read(char *descfile, pmpkg_t *info, int output) return ret; } -pmpkg_t *_pacman_fpmpackage_load(const char *pkgfile) +Package *_pacman_fpmpackage_load(const char *pkgfile) { char *expath; int i, ret; @@ -160,7 +162,7 @@ pmpkg_t *_pacman_fpmpackage_load(const char *pkgfile) int scriptcheck = 0; register struct archive *archive; struct archive_entry *entry; - pmpkg_t *info = NULL; + Package *info = NULL; if((archive = _pacman_archive_read_open_all_file(pkgfile)) == NULL) { RET_ERR(PM_ERR_PKG_OPEN, NULL); @@ -201,7 +203,7 @@ pmpkg_t *_pacman_fpmpackage_load(const char *pkgfile) char *str; if((str = (char *)malloc(PATH_MAX)) == NULL) { - RET_ERR(PM_ERR_MEMORY, (pmpkg_t *)-1); + RET_ERR(PM_ERR_MEMORY, (Package *)-1); } filelist = _pacman_archive_read_fropen(archive); while(!feof(filelist)) { diff --git a/lib/libpacman/package/fpmpackage.h b/lib/libpacman/package/fpmpackage.h index a59aeb6..e43a6ad 100644 --- a/lib/libpacman/package/fpmpackage.h +++ b/lib/libpacman/package/fpmpackage.h @@ -25,14 +25,14 @@ #ifndef _PACMAN_FPMPACKAGE_H #define _PACMAN_FPMPACKAGE_H -#include "pacman.h" +#include "pacman_p.h" #include <stdio.h> -int _pacman_pkginfo_fread(FILE *descfile, pmpkg_t *info, int output); -int _pacman_pkginfo_read(char *descfile, pmpkg_t *info, int output); +int _pacman_pkginfo_fread(FILE *descfile, libpacman::Package *info, int output); +int _pacman_pkginfo_read(char *descfile, libpacman::Package *info, int output); -pmpkg_t *_pacman_fpmpackage_load(const char *pkgfile); +libpacman::Package *_pacman_fpmpackage_load(const char *pkgfile); #endif /* _PACMAN_FPMPACKAGE_H */ diff --git a/lib/libpacman/pacman.cpp b/lib/libpacman/pacman.cpp index 14a65d5..2411cf0 100644 --- a/lib/libpacman/pacman.cpp +++ b/lib/libpacman/pacman.cpp @@ -355,7 +355,7 @@ pmpkg_t *pacman_db_readpkg(pmdb_t *_db, const char *name) ASSERT(db != NULL, return(NULL)); ASSERT(!_pacman_strempty(name), return(NULL)); - return(_pacman_db_get_pkgfromcache(db, name)); + return c_cast(_pacman_db_get_pkgfromcache(db, name)); } /** Get the package cache of a package database @@ -586,8 +586,10 @@ int pacman_download_xfered(const pmdownload_t *download, off64_t *offset) * @param parm name of the info to get * @return a void* on success (the value), NULL on error */ -void *pacman_pkg_getinfo(pmpkg_t *pkg, unsigned char parm) +void *pacman_pkg_getinfo(pmpkg_t *_pkg, unsigned char parm) { + Package *pkg = cxx_cast(_pkg); + /* Sanity checks */ ASSERT(handle != NULL, return(NULL)); ASSERT(pkg != NULL, return(NULL)); @@ -622,7 +624,7 @@ int pacman_pkg_load(char *filename, pmpkg_t **pkg) ASSERT(!_pacman_strempty(filename), RET_ERR(PM_ERR_WRONG_ARGS, -1)); ASSERT(pkg != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1)); - *pkg = _pacman_fpmpackage_load(filename); + *pkg = c_cast(_pacman_fpmpackage_load(filename)); if(*pkg == NULL) { /* pm_errno is set by pkg_load */ return(-1); @@ -635,8 +637,10 @@ int pacman_pkg_load(char *filename, pmpkg_t **pkg) * @param pkg package pointer to free * @return 0 on success, -1 on error (pm_errno is set accordingly) */ -int pacman_pkg_free(pmpkg_t *pkg) +int pacman_pkg_free(pmpkg_t *_pkg) { + Package *pkg = cxx_cast(_pkg); + _pacman_log(PM_LOG_FUNCTION, "enter pacman_pkg_free"); ASSERT(pkg != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1)); diff --git a/lib/libpacman/pacman_p.h b/lib/libpacman/pacman_p.h index b7ef7d8..5a4a040 100644 --- a/lib/libpacman/pacman_p.h +++ b/lib/libpacman/pacman_p.h @@ -34,11 +34,13 @@ namespace libpacman { class Database; class Group; +class Package; } DEFINE_CAST(struct __pmdb_t, libpacman::Database) DEFINE_CAST(struct __pmgrp_t, libpacman::Group) +DEFINE_CAST(struct __pmpkg_t, libpacman::Package) #undef DEFINE_CAST diff --git a/lib/libpacman/sync.cpp b/lib/libpacman/sync.cpp index c03bc3d..38db513 100644 --- a/lib/libpacman/sync.cpp +++ b/lib/libpacman/sync.cpp @@ -61,7 +61,7 @@ using namespace libpacman; -pmsyncpkg_t *_pacman_syncpkg_new(int type, pmpkg_t *spkg, void *data) +pmsyncpkg_t *_pacman_syncpkg_new(int type, Package *spkg, void *data) { pmsyncpkg_t *ps; @@ -103,8 +103,8 @@ int _pacman_sync_addtarget(pmtrans_t *trans, const char *name) char targline[PKG_FULLNAME_LEN]; char *targ; pmlist_t *j; - pmpkg_t *pkg_local; - pmpkg_t *spkg = NULL; + Package *pkg_local; + Package *spkg = NULL; int cmp; Database *db_local = trans->handle->db_local; pmlist_t *dbs_sync = trans->handle->dbs_sync; @@ -184,7 +184,7 @@ int _pacman_sync_addtarget(pmtrans_t *trans, const char *name) /* add the package to the transaction */ if(!_pacman_trans_find(trans, spkg->name)) { - pmpkg_t *dummy = NULL; + Package *dummy = NULL; pmsyncpkg_t *ps; if(pkg_local) { @@ -206,7 +206,7 @@ int _pacman_sync_addtarget(pmtrans_t *trans, const char *name) static int pkg_cmp(const void *p1, const void *p2) { - return(strcmp(((pmpkg_t *)p1)->name, ((pmsyncpkg_t *)p2)->pkg->name)); + return(strcmp(((Package *)p1)->name, ((pmsyncpkg_t *)p2)->pkg->name)); } static int check_olddelay(void) @@ -260,7 +260,7 @@ int _pacman_sync_prepare(pmtrans_t *trans, pmlist_t **data) EVENT(trans, PM_TRANS_EVT_RESOLVEDEPS_START, NULL, NULL); _pacman_log(PM_LOG_FLOW1, _("resolving targets dependencies")); for(i = trans->syncpkgs; i; i = i->next) { - pmpkg_t *spkg = ((pmsyncpkg_t *)i->data)->pkg; + Package *spkg = ((pmsyncpkg_t *)i->data)->pkg; if(_pacman_resolvedeps(trans, spkg, list, trail, data) == -1) { /* pm_errno is set by resolvedeps */ ret = -1; @@ -270,7 +270,7 @@ int _pacman_sync_prepare(pmtrans_t *trans, pmlist_t **data) for(i = list; i; i = i->next) { /* add the dependencies found by resolvedeps to the transaction set */ - pmpkg_t *spkg = i->data; + Package *spkg = i->data; if(!_pacman_trans_find(trans, spkg->name)) { pmsyncpkg_t *ps = _pacman_syncpkg_new(PM_SYNC_TYPE_DEPEND, spkg, NULL); if(ps == NULL) { @@ -338,7 +338,7 @@ int _pacman_sync_prepare(pmtrans_t *trans, pmlist_t **data) pmdepmissing_t *miss = i->data; int found = 0; pmsyncpkg_t *ps; - pmpkg_t *local; + Package *local; _pacman_log(PM_LOG_FLOW2, _("package '%s' is conflicting with '%s'"), miss->target, miss->depend.name); @@ -431,7 +431,7 @@ int _pacman_sync_prepare(pmtrans_t *trans, pmlist_t **data) asked = _pacman_stringlist_append(asked, miss->depend.name); if(doremove) { pmsyncpkg_t *rsync = _pacman_trans_find(trans, miss->depend.name); - pmpkg_t *q = _pacman_pkg_new(miss->depend.name, NULL); + Package *q = _pacman_pkg_new(miss->depend.name, NULL); if(q == NULL) { if(data) { FREELIST(*data); @@ -532,8 +532,8 @@ int _pacman_sync_prepare(pmtrans_t *trans, pmlist_t **data) int pfound = 0; /* If miss->depend.name depends on something that miss->target and a * package in final both provide, then it's okay... */ - pmpkg_t *leavingp = _pacman_db_get_pkgfromcache(db_local, miss->target); - pmpkg_t *conflictp = _pacman_db_get_pkgfromcache(db_local, miss->depend.name); + Package *leavingp = _pacman_db_get_pkgfromcache(db_local, miss->target); + Package *conflictp = _pacman_db_get_pkgfromcache(db_local, miss->depend.name); if(!leavingp || !conflictp) { _pacman_log(PM_LOG_ERROR, _("something has gone horribly wrong")); ret = -1; @@ -642,7 +642,7 @@ int _pacman_sync_commit(pmtrans_t *trans, pmlist_t **data) pmsyncpkg_t *ps = i->data; if(ps->type == PM_SYNC_TYPE_REPLACE) { for(j = ps->data; j; j = j->next) { - pmpkg_t *pkg = j->data; + Package *pkg = j->data; if(!_pacman_pkg_isin(pkg->name, tr->packages)) { if(_pacman_trans_addtarget(tr, pkg->name) == -1) { goto error; @@ -681,7 +681,7 @@ int _pacman_sync_commit(pmtrans_t *trans, pmlist_t **data) } for(i = trans->syncpkgs; i; i = i->next) { pmsyncpkg_t *ps = i->data; - pmpkg_t *spkg = ps->pkg; + Package *spkg = ps->pkg; char str[PATH_MAX]; snprintf(str, PATH_MAX, "%s%s/%s-%s-%s" PM_EXT_PKG, handle->root, handle->cachedir, spkg->name, spkg->version, spkg->arch); if(_pacman_trans_addtarget(tr, str) == -1) { @@ -713,16 +713,16 @@ int _pacman_sync_commit(pmtrans_t *trans, pmlist_t **data) for(i = trans->syncpkgs; i; i = i->next) { pmsyncpkg_t *ps = i->data; if(ps->type == PM_SYNC_TYPE_REPLACE) { - pmpkg_t *pkg_new = _pacman_db_get_pkgfromcache(db_local, ps->pkg_name); + Package *pkg_new = _pacman_db_get_pkgfromcache(db_local, ps->pkg_name); for(j = ps->data; j; j = j->next) { pmlist_t *k; - pmpkg_t *old = j->data; + Package *old = j->data; /* merge lists */ for(k = old->requiredby; k; k = k->next) { if(!_pacman_list_is_strin(k->data, pkg_new->requiredby)) { /* replace old's name with new's name in the requiredby's dependency list */ pmlist_t *m; - pmpkg_t *depender = _pacman_db_get_pkgfromcache(db_local, k->data); + Package *depender = _pacman_db_get_pkgfromcache(db_local, k->data); if(depender == NULL) { /* If the depending package no longer exists in the local db, * then it must have ALSO conflicted with ps->pkg. If @@ -787,7 +787,7 @@ int _pacman_trans_download_commit(pmtrans_t *trans, pmlist_t **data) for(j = trans->syncpkgs; j; j = j->next) { pmsyncpkg_t *ps = j->data; - pmpkg_t *spkg = ps->pkg; + Package *spkg = ps->pkg; Database *dbs = spkg->data; if(current == dbs) { @@ -853,7 +853,7 @@ int _pacman_trans_download_commit(pmtrans_t *trans, pmlist_t **data) for(i = trans->syncpkgs; i; i = i->next) { pmsyncpkg_t *ps = i->data; - pmpkg_t *spkg = ps->pkg; + Package *spkg = ps->pkg; char str[PATH_MAX], pkgname[PATH_MAX]; char *md5sum1, *md5sum2, *sha1sum1, *sha1sum2; char *ptr=NULL; diff --git a/lib/libpacman/sync.h b/lib/libpacman/sync.h index 2ff9478..900ec28 100644 --- a/lib/libpacman/sync.h +++ b/lib/libpacman/sync.h @@ -30,12 +30,12 @@ struct __pmsyncpkg_t { unsigned char type; const char *pkg_name; - pmpkg_t *pkg; + libpacman::Package *pkg; void *data; - pmpkg_t *pkg_local; + libpacman::Package *pkg_local; }; -pmsyncpkg_t *_pacman_syncpkg_new(int type, pmpkg_t *spkg, void *data); +pmsyncpkg_t *_pacman_syncpkg_new(int type, libpacman::Package *spkg, void *data); int _pacman_syncpkg_delete(pmsyncpkg_t *syncpkg); extern diff --git a/lib/libpacman/trans.cpp b/lib/libpacman/trans.cpp index 1e61700..c28bf0f 100644 --- a/lib/libpacman/trans.cpp +++ b/lib/libpacman/trans.cpp @@ -169,12 +169,12 @@ int _pacman_trans_compute_triggers(pmtrans_t *trans) /* NOTE: Not the most efficient way, but will do until we add some string hash. */ for(lp = trans->packages; lp; lp = lp->next) { - pmpkg_t *pkg = lp->data; + Package *pkg = lp->data; trans->triggers = f_stringlist_append_stringlist(trans->triggers, pkg->triggers); } for(lp = trans->syncpkgs; lp; lp = lp->next) { - pmpkg_t *pkg = ((pmsyncpkg_t *)lp->data)->pkg; + Package *pkg = ((pmsyncpkg_t *)lp->data)->pkg; /* FIXME: might be incomplete */ trans->triggers = f_stringlist_append_stringlist(trans->triggers, pkg->triggers); @@ -288,7 +288,7 @@ pmsyncpkg_t *_pacman_trans_add(pmtrans_t *trans, pmsyncpkg_t *syncpkg, int flags return syncpkg; } -int _pacman_trans_add_package(pmtrans_t *trans, pmpkg_t *pkg, pmtranstype_t type, int flags) +int _pacman_trans_add_package(pmtrans_t *trans, Package *pkg, pmtranstype_t type, int flags) { ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1)); ASSERT(pkg != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1)); @@ -307,7 +307,7 @@ pmsyncpkg_t *_pacman_trans_add_target(pmtrans_t *trans, const char *target, pmtr } static -pmpkg_t *_pacman_filedb_load(Database *db, const char *name) +Package *_pacman_filedb_load(Database *db, const char *name) { struct stat buf; @@ -323,7 +323,7 @@ pmpkg_t *_pacman_filedb_load(Database *db, const char *name) static int _pacman_remove_addtarget(pmtrans_t *trans, const char *name) { - pmpkg_t *pkg_local; + Package *pkg_local; Database *db_local = trans->handle->db_local; ASSERT(db_local != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); @@ -354,7 +354,7 @@ int _pacman_remove_addtarget(pmtrans_t *trans, const char *name) int _pacman_trans_addtarget(pmtrans_t *trans, const char *target) { pmlist_t *i; - pmpkg_t *pkg_new, *pkg_local, *pkg_queued = NULL; + Package *pkg_new, *pkg_local, *pkg_queued = NULL; Database *db_local = trans->handle->db_local; /* Sanity checks */ @@ -413,7 +413,7 @@ int _pacman_trans_addtarget(pmtrans_t *trans, const char *target) /* check if an older version of said package is already in transaction packages. * if so, replace it in the list */ for(i = trans->packages; i; i = i->next) { - pmpkg_t *pkg = i->data; + Package *pkg = i->data; if(strcmp(pkg->name, pkg_new->name) == 0) { pkg_queued = pkg; break; @@ -503,7 +503,7 @@ int _pacman_add_prepare(pmtrans_t *trans, pmlist_t **data) EVENT(trans, PM_TRANS_EVT_CLEANUP_START, NULL, NULL); _pacman_log(PM_LOG_FLOW1, _("cleaning up")); for (lp=trans->packages; lp!=NULL; lp=lp->next) { - pmpkg_t *pkg_new=(pmpkg_t *)lp->data; + Package *pkg_new=(Package *)lp->data; pmlist_t *rmlist; for (rmlist=pkg_new->removes; rmlist!=NULL; rmlist=rmlist->next) { @@ -570,7 +570,7 @@ int _pacman_remove_prepare(pmtrans_t *trans, pmlist_t **data) pmlist_t *i; for(i = lp; i; i = i->next) { pmdepmissing_t *miss = (pmdepmissing_t *)i->data; - pmpkg_t *pkg_local = db_local->scan(miss->depend.name, INFRQ_ALL); + Package *pkg_local = db_local->scan(miss->depend.name, INFRQ_ALL); if(pkg_local) { _pacman_log(PM_LOG_FLOW2, _("pulling %s in the targets list"), pkg_local->name); trans->packages = _pacman_list_add(trans->packages, pkg_local); @@ -650,7 +650,7 @@ int _pacman_trans_prepare(pmtrans_t *trans, pmlist_t **data) } static -int _pacman_fpmpackage_install(pmpkg_t *pkg, pmtranstype_t type, pmtrans_t *trans, unsigned char cb_state, int howmany, int remain, pmpkg_t *oldpkg) +int _pacman_fpmpackage_install(Package *pkg, pmtranstype_t type, pmtrans_t *trans, unsigned char cb_state, int howmany, int remain, Package *oldpkg) { int archive_ret, errors = 0, i; double percent = 0; @@ -951,7 +951,7 @@ int _pacman_fpmpackage_install(pmpkg_t *pkg, pmtranstype_t type, pmtrans_t *tran } static -int _pacman_localpackage_remove(pmpkg_t *pkg, pmtrans_t *trans, int howmany, int remain) +int _pacman_localpackage_remove(Package *pkg, pmtrans_t *trans, int howmany, int remain) { pmlist_t *lp; struct stat buf; @@ -1058,8 +1058,8 @@ int _pacman_add_commit(pmtrans_t *trans, pmlist_t **data) unsigned short pmo_upgrade; pmtranstype_t type; char pm_install[PATH_MAX]; - pmpkg_t *pkg_new = (pmpkg_t *)targ->data; - pmpkg_t *oldpkg = NULL, *pkg_local = NULL; + Package *pkg_new = (Package *)targ->data; + Package *oldpkg = NULL, *pkg_local = NULL; remain = _pacman_list_count(targ); if(handle->trans->state == STATE_INTERRUPTED) { @@ -1157,7 +1157,7 @@ int _pacman_add_commit(pmtrans_t *trans, pmlist_t **data) /* Update the requiredby field by scanning the whole database * looking for packages depending on the package to add */ for(lp = _pacman_db_get_pkgcache(db_local); lp; lp = lp->next) { - pmpkg_t *tmpp = lp->data; + Package *tmpp = lp->data; pmlist_t *tmppm = NULL; if(tmpp == NULL) { continue; @@ -1195,7 +1195,7 @@ int _pacman_add_commit(pmtrans_t *trans, pmlist_t **data) _pacman_log(PM_LOG_FLOW2, _("updating dependency packages 'requiredby' fields")); } for(lp = pkg_new->depends; lp; lp = lp->next) { - pmpkg_t *depinfo; + Package *depinfo; pmdepend_t depend; if(_pacman_splitdep(lp->data, &depend)) { continue; @@ -1209,7 +1209,7 @@ int _pacman_add_commit(pmtrans_t *trans, pmlist_t **data) * the first one. */ /* use the first one */ - depinfo = _pacman_db_get_pkgfromcache(db_local, ((pmpkg_t *)provides->data)->name); + depinfo = _pacman_db_get_pkgfromcache(db_local, ((Package *)provides->data)->name); FREELISTPTR(provides); } if(depinfo == NULL) { @@ -1263,7 +1263,7 @@ static int str_cmp(const void *s1, const void *s2) static int _pacman_remove_commit(pmtrans_t *trans, pmlist_t **data) { - pmpkg_t *pkg_local; + Package *pkg_local; pmlist_t *targ, *lp; int howmany, remain; Database *db_local = trans->handle->db_local; @@ -1275,7 +1275,7 @@ int _pacman_remove_commit(pmtrans_t *trans, pmlist_t **data) for(targ = trans->packages; targ; targ = targ->next) { char pm_install[PATH_MAX]; - pkg_local = (pmpkg_t*)targ->data; + pkg_local = (Package*)targ->data; if(handle->trans->state == STATE_INTERRUPTED) { break; @@ -1322,7 +1322,7 @@ int _pacman_remove_commit(pmtrans_t *trans, pmlist_t **data) /* update dependency packages' REQUIREDBY fields */ _pacman_log(PM_LOG_FLOW2, _("updating dependency packages 'requiredby' fields")); for(lp = pkg_local->depends; lp; lp = lp->next) { - pmpkg_t *depinfo = NULL; + Package *depinfo = NULL; pmdepend_t depend; char *data; if(_pacman_splitdep((char*)lp->data, &depend)) { @@ -1344,7 +1344,7 @@ int _pacman_remove_commit(pmtrans_t *trans, pmlist_t **data) * the first one. */ /* use the first one */ - depinfo = _pacman_db_get_pkgfromcache(db_local, ((pmpkg_t *)provides->data)->name); + depinfo = _pacman_db_get_pkgfromcache(db_local, ((Package *)provides->data)->name); FREELISTPTR(provides); } if(depinfo == NULL) { diff --git a/lib/libpacman/trans_sysupgrade.cpp b/lib/libpacman/trans_sysupgrade.cpp index a9c3ac8..80c50eb 100644 --- a/lib/libpacman/trans_sysupgrade.cpp +++ b/lib/libpacman/trans_sysupgrade.cpp @@ -58,7 +58,7 @@ using namespace libpacman; -static int istoonew(pmpkg_t *pkg) +static int istoonew(Package *pkg) { time_t t; if (!handle->upgradedelay) @@ -87,11 +87,11 @@ int _pacman_trans_sysupgrade(pmtrans_t *trans) _pacman_log(PM_LOG_FLOW1, _("checking for package replacements")); for(i = dbs_sync; i; i = i->next) { for(j = _pacman_db_get_pkgcache(i->data); j; j = j->next) { - pmpkg_t *spkg = j->data; + Package *spkg = j->data; for(k = _pacman_pkg_getinfo(spkg, PM_PKG_REPLACES); k; k = k->next) { pmlist_t *m; for(m = _pacman_db_get_pkgcache(db_local); m; m = m->next) { - pmpkg_t *lpkg = m->data; + Package *lpkg = m->data; if(!strcmp(k->data, lpkg->name)) { _pacman_log(PM_LOG_DEBUG, _("checking replacement '%s' for package '%s'"), k->data, spkg->name); if(_pacman_list_is_strin(lpkg->name, handle->ignorepkg)) { @@ -107,7 +107,7 @@ int _pacman_trans_sysupgrade(pmtrans_t *trans) * the package to replace. */ pmsyncpkg_t *ps; - pmpkg_t *dummy = _pacman_pkg_new(lpkg->name, NULL); + Package *dummy = _pacman_pkg_new(lpkg->name, NULL); if(dummy == NULL) { pm_errno = PM_ERR_MEMORY; goto error; @@ -145,8 +145,8 @@ int _pacman_trans_sysupgrade(pmtrans_t *trans) for(i = _pacman_db_get_pkgcache(db_local); i; i = i->next) { int cmp; int replace=0; - pmpkg_t *local = i->data; - pmpkg_t *spkg = NULL; + Package *local = i->data; + Package *spkg = NULL; pmsyncpkg_t *ps; for(j = dbs_sync; !spkg && j; j = j->next) { @@ -196,7 +196,7 @@ int _pacman_trans_sysupgrade(pmtrans_t *trans) local->name, local->version, local->version, spkg->version); /* check if spkg->name is already in the packages list. */ if(!_pacman_trans_find(trans, spkg->name)) { - pmpkg_t *dummy = _pacman_pkg_new(local->name, local->version); + Package *dummy = _pacman_pkg_new(local->name, local->version); if(dummy == NULL) { goto error; } diff --git a/lib/libpacman/util.cpp b/lib/libpacman/util.cpp index 258732a..9bdb008 100644 --- a/lib/libpacman/util.cpp +++ b/lib/libpacman/util.cpp @@ -52,6 +52,8 @@ #include <stdlib.h> #include <unistd.h> +using namespace libpacman; + /* does the same thing as 'mkdir -p' */ int _pacman_makepath(const char *path) { @@ -484,14 +486,14 @@ int _pacman_check_freespace(pmtrans_t *trans, pmlist_t **data) long long pkgsize=0, freespace; for(i = trans->packages; i; i = i->next) { - pmpkg_t *pkg = i->data; + Package *pkg = i->data; pkgsize += pkg->size; } for(i = trans->syncpkgs; i; i = i->next) { pmsyncpkg_t *ps = i->data; if(ps->type != PM_SYNC_TYPE_REPLACE) { - pmpkg_t *pkg = ps->pkg; + Package *pkg = ps->pkg; pkgsize += pkg->usize; } } _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
