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

Reply via email to