summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/libalpm/alpm.c90
-rw-r--r--lib/libalpm/alpm.h21
-rw-r--r--lib/libalpm/handle.h4
3 files changed, 57 insertions, 58 deletions
diff --git a/lib/libalpm/alpm.c b/lib/libalpm/alpm.c
index 8afe73b4..1c85eafe 100644
--- a/lib/libalpm/alpm.c
+++ b/lib/libalpm/alpm.c
@@ -50,6 +50,9 @@
#include "handle.h"
#include "alpm.h"
+#define PM_LOCK "/tmp/pacman.lck"
+
+
/* Globals */
pmhandle_t *handle = NULL;
enum __pmerrno_t pm_errno;
@@ -141,7 +144,7 @@ int alpm_get_option(unsigned char parm, long *data)
* Databases
*/
-PM_DB *alpm_db_register(char *treename)
+pmdb_t *alpm_db_register(char *treename)
{
pmdb_t *db;
@@ -174,7 +177,7 @@ PM_DB *alpm_db_register(char *treename)
return(db);
}
-int alpm_db_unregister(PM_DB *db)
+int alpm_db_unregister(pmdb_t *db)
{
PMList *i;
int found = 0;
@@ -191,9 +194,7 @@ int alpm_db_unregister(PM_DB *db)
for(i = handle->dbs_sync; i && !found; i = i->next) {
if(db == i->data) {
db_close(i->data);
- i->data = NULL;
- /* ORE
- it should be _alpm_list_removed instead */
+ handle->dbs_sync = _alpm_list_remove(handle->dbs_sync, i);
found = 1;
}
}
@@ -282,7 +283,7 @@ int alpm_db_update(PM_DB *db, char *archive, char *ts)
return(0);
}
-PM_PKG *alpm_db_readpkg(PM_DB *db, char *name)
+pmpkg_t *alpm_db_readpkg(pmdb_t *db, char *name)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -292,7 +293,7 @@ PM_PKG *alpm_db_readpkg(PM_DB *db, char *name)
return(db_get_pkgfromcache(db, name));
}
-PM_LIST *alpm_db_getpkgcache(PM_DB *db)
+PMList *alpm_db_getpkgcache(pmdb_t *db)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -301,7 +302,7 @@ PM_LIST *alpm_db_getpkgcache(PM_DB *db)
return(db_get_pkgcache(db));
}
-PM_GRP *alpm_db_readgrp(PM_DB *db, char *name)
+pmgrp_t *alpm_db_readgrp(pmdb_t *db, char *name)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -311,7 +312,7 @@ PM_GRP *alpm_db_readgrp(PM_DB *db, char *name)
return(db_get_grpfromcache(db, name));
}
-PM_LIST *alpm_db_getgrpcache(PM_DB *db)
+PMList *alpm_db_getgrpcache(pmdb_t *db)
{
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
@@ -324,7 +325,7 @@ PM_LIST *alpm_db_getgrpcache(PM_DB *db)
* Packages
*/
-void *alpm_pkg_getinfo(PM_PKG *pkg, unsigned char parm)
+void *alpm_pkg_getinfo(pmpkg_t *pkg, unsigned char parm)
{
void *data = NULL;
@@ -353,8 +354,8 @@ void *alpm_pkg_getinfo(PM_PKG *pkg, unsigned char parm)
case PM_PKG_REPLACES:
case PM_PKG_MD5SUM:
if(!(pkg->infolevel & INFRQ_DESC)) {
- char target[PKG_NAME_LEN+PKG_VERSION_LEN];
- snprintf(target, PKG_NAME_LEN+PKG_VERSION_LEN, "%s-%s", pkg->name, pkg->version);
+ char target[(PKG_NAME_LEN-1)+1+(PKG_VERSION_LEN-1)+1];
+ snprintf(target, (PKG_NAME_LEN-1)+1+(PKG_VERSION_LEN-1)+1, "%s-%s", pkg->name, pkg->version);
db_read(pkg->data, target, INFRQ_DESC, pkg);
}
break;*/
@@ -366,8 +367,8 @@ void *alpm_pkg_getinfo(PM_PKG *pkg, unsigned char parm)
case PM_PKG_CONFLICTS:
case PM_PKG_PROVIDES:
if(!(pkg->infolevel & INFRQ_DEPENDS)) {
- char target[PKG_NAME_LEN+PKG_VERSION_LEN];
- snprintf(target, PKG_NAME_LEN+PKG_VERSION_LEN, "%s-%s", pkg->name, pkg->version);
+ char target[(PKG_NAME_LEN-1)+1+(PKG_VERSION_LEN-1)+1];
+ snprintf(target, (PKG_NAME_LEN-1)+1+(PKG_VERSION_LEN-1)+1, "%s-%s", pkg->name, pkg->version);
db_read(pkg->data, target, INFRQ_DEPENDS, pkg);
}
break;*/
@@ -375,16 +376,16 @@ void *alpm_pkg_getinfo(PM_PKG *pkg, unsigned char parm)
case PM_PKG_FILES:
case PM_PKG_BACKUP:
if(pkg->data == handle->db_local && !(pkg->infolevel & INFRQ_FILES)) {
- char target[PKG_NAME_LEN+PKG_VERSION_LEN];
- snprintf(target, PKG_NAME_LEN+PKG_VERSION_LEN, "%s-%s", pkg->name, pkg->version);
+ char target[(PKG_NAME_LEN-1)+1+(PKG_VERSION_LEN-1)+1];
+ snprintf(target, (PKG_NAME_LEN-1)+1+(PKG_VERSION_LEN-1)+1, "%s-%s", pkg->name, pkg->version);
db_read(pkg->data, target, INFRQ_FILES, pkg);
}
break;
/* Scriptlet */
case PM_PKG_SCRIPLET:
if(pkg->data == handle->db_local && !(pkg->infolevel & INFRQ_SCRIPLET)) {
- char target[PKG_NAME_LEN+PKG_VERSION_LEN];
- snprintf(target, PKG_NAME_LEN+PKG_VERSION_LEN, "%s-%s", pkg->name, pkg->version);
+ char target[(PKG_NAME_LEN-1)+1+(PKG_VERSION_LEN-1)+1];
+ snprintf(target, (PKG_NAME_LEN-1)+1+(PKG_VERSION_LEN-1)+1, "%s-%s", pkg->name, pkg->version);
db_read(pkg->data, target, INFRQ_SCRIPLET, pkg);
}
break;
@@ -413,7 +414,7 @@ void *alpm_pkg_getinfo(PM_PKG *pkg, unsigned char parm)
case PM_PKG_FILES: data = pkg->files; break;
case PM_PKG_BACKUP: data = pkg->backup; break;
case PM_PKG_SCRIPLET: data = (void *)(int)pkg->scriptlet; break;
- case PM_PKG_DB: data = pkg->data; break;
+ case PM_PKG_DATA: data = pkg->data; break;
default:
data = NULL;
break;
@@ -422,7 +423,7 @@ void *alpm_pkg_getinfo(PM_PKG *pkg, unsigned char parm)
return(data);
}
-int alpm_pkg_load(char *filename, PM_PKG **pkg)
+int alpm_pkg_load(char *filename, pmpkg_t **pkg)
{
/* Sanity checks */
ASSERT(filename != NULL && strlen(filename) != 0, RET_ERR(PM_ERR_WRONG_ARGS, -1));
@@ -437,14 +438,12 @@ int alpm_pkg_load(char *filename, PM_PKG **pkg)
return(0);
}
-int alpm_pkg_free(PM_PKG *pkg)
+void alpm_pkg_free(pmpkg_t *pkg)
{
- /* Sanity checks */
- ASSERT(pkg != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1));
-
+ if(pkg == NULL) {
+ return;
+ }
pkg_free(pkg);
-
- return(0);
}
int alpm_pkg_vercmp(const char *ver1, const char *ver2)
@@ -456,7 +455,7 @@ int alpm_pkg_vercmp(const char *ver1, const char *ver2)
* Groups
*/
-void *alpm_grp_getinfo(PM_GRP *grp, unsigned char parm)
+void *alpm_grp_getinfo(pmgrp_t *grp, unsigned char parm)
{
void *data = NULL;
@@ -478,7 +477,7 @@ void *alpm_grp_getinfo(PM_GRP *grp, unsigned char parm)
* Sync operations
*/
-void *alpm_sync_getinfo(PM_SYNCPKG *sync, unsigned char parm)
+void *alpm_sync_getinfo(pmsyncpkg_t *sync, unsigned char parm)
{
void *data;
@@ -487,9 +486,8 @@ void *alpm_sync_getinfo(PM_SYNCPKG *sync, unsigned char parm)
switch(parm) {
case PM_SYNC_TYPE: data = (void *)(int)sync->type; break;
- case PM_SYNC_LOCALPKG: data = sync->lpkg; break;
- case PM_SYNC_SYNCPKG: data = sync->spkg; break;
- case PM_SYNC_REPLACES: data = sync->replaces; break;
+ case PM_SYNC_PKG: data = sync->pkg; break;
+ case PM_SYNC_DATA: data = sync->data; break;
default:
data = NULL;
break;
@@ -498,14 +496,6 @@ void *alpm_sync_getinfo(PM_SYNCPKG *sync, unsigned char parm)
return(data);
}
-int alpm_sync_sysupgrade(PM_LIST **data)
-{
- ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1));
- ASSERT(data != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1));
-
- return(sync_sysupgrade(data));
-}
-
/*
* Transactions
*/
@@ -548,6 +538,20 @@ int alpm_trans_init(unsigned char type, unsigned char flags, alpm_trans_cb cb)
return(trans_init(handle->trans, type, flags, cb));
}
+int alpm_trans_sysupgrade()
+{
+ pmtrans_t *trans;
+
+ ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1));
+
+ trans = handle->trans;
+ ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
+ ASSERT(trans->state == STATE_INITIALIZED, RET_ERR(PM_ERR_TRANS_NOT_INITIALIZED, -1));
+ ASSERT(trans->type == PM_TRANS_TYPE_SYNC, RET_ERR(PM_ERR_XXX, -1));
+
+ return(trans_sysupgrade(trans));
+}
+
int alpm_trans_addtarget(char *target)
{
pmtrans_t *trans;
@@ -672,28 +676,28 @@ int alpm_logaction(char *fmt, ...)
* Lists wrappers
*/
-PM_LIST *alpm_list_first(PM_LIST *list)
+PMList *alpm_list_first(PMList *list)
{
ASSERT(list != NULL, return(NULL));
return(list);
}
-PM_LIST *alpm_list_next(PM_LIST *entry)
+PMList *alpm_list_next(PMList *entry)
{
ASSERT(entry != NULL, return(NULL));
return(entry->next);
}
-void *alpm_list_getdata(PM_LIST *entry)
+void *alpm_list_getdata(PMList *entry)
{
ASSERT(entry != NULL, return(NULL));
return(entry->data);
}
-int alpm_list_free(PM_LIST *entry)
+int alpm_list_free(PMList *entry)
{
if(entry) {
/* ORE
diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h
index 1cc0c791..82512a83 100644
--- a/lib/libalpm/alpm.h
+++ b/lib/libalpm/alpm.h
@@ -25,6 +25,11 @@
* Arch Linux Package Management library
*/
+#define PM_VERSION "0.1.0"
+
+#define PM_ROOT "/"
+#define PM_DBPATH "var/lib/pacman"
+
#define PM_EXT_PKG ".pkg.tar.gz"
#define PM_EXT_DB ".db.tar.gz"
@@ -44,9 +49,6 @@ typedef struct __pmdepmissing_t PM_DEPMISS;
* Library
*/
-/* Version */
-#define PM_VERSION "0.1.0"
-
int alpm_initialize(char *root);
int alpm_release();
@@ -144,7 +146,7 @@ enum {
/* Sciplet */
PM_PKG_SCRIPLET,
/* Misc */
- PM_PKG_DB
+ PM_PKG_DATA
};
/* reasons -- ie, why the package was installed */
@@ -153,7 +155,7 @@ enum {
void *alpm_pkg_getinfo(PM_PKG *pkg, unsigned char parm);
int alpm_pkg_load(char *filename, PM_PKG **pkg);
-int alpm_pkg_free(PM_PKG *pkg);
+void alpm_pkg_free(PM_PKG *pkg);
int alpm_pkg_vercmp(const char *ver1, const char *ver2);
/*
@@ -181,15 +183,12 @@ enum {
/* Info parameters */
enum {
PM_SYNC_TYPE = 1,
- PM_SYNC_LOCALPKG,
- PM_SYNC_SYNCPKG,
- PM_SYNC_REPLACES
+ PM_SYNC_PKG,
+ PM_SYNC_DATA
};
void *alpm_sync_getinfo(PM_SYNCPKG *sync, unsigned char parm);
-int alpm_sync_sysupgrade(PM_LIST **data);
-
/*
* Transactions
*/
@@ -210,7 +209,6 @@ enum {
#define PM_TRANS_FLAG_CASCADE 0x10
#define PM_TRANS_FLAG_RECURSE 0x20
#define PM_TRANS_FLAG_DBONLY 0x40
-#define PM_TRANS_FLAG_SYSUPG 0x80
/* Events */
enum {
@@ -243,6 +241,7 @@ enum {
void *alpm_trans_getinfo(unsigned char parm);
int alpm_trans_init(unsigned char type, unsigned char flags, alpm_trans_cb cb);
+int alpm_trans_sysupgrade();
int alpm_trans_addtarget(char *target);
int alpm_trans_prepare(PM_LIST **data);
int alpm_trans_commit();
diff --git a/lib/libalpm/handle.h b/lib/libalpm/handle.h
index 4fe3c3ce..55894d80 100644
--- a/lib/libalpm/handle.h
+++ b/lib/libalpm/handle.h
@@ -26,10 +26,6 @@
#include "trans.h"
#include "alpm.h"
-#define PM_ROOT "/"
-#define PM_DBPATH "var/lib/pacman"
-#define PM_LOCK "/tmp/pacman.lck"
-
typedef enum __pmaccess_t {
PM_ACCESS_RO,
PM_ACCESS_RW