mirror of
https://github.com/moparisthebest/pacman
synced 2024-12-23 00:08:50 -05:00
- reworked pmsyncpkg_t structure
- got ride of uneeded handle external references
This commit is contained in:
parent
29a712e393
commit
36087bb392
@ -40,9 +40,13 @@
|
|||||||
#include "rpmvercmp.h"
|
#include "rpmvercmp.h"
|
||||||
#include "handle.h"
|
#include "handle.h"
|
||||||
|
|
||||||
|
/* ORE
|
||||||
|
set CACHEDIR as a library option? */
|
||||||
|
#define PM_CACHEDIR "var/cache/pacman/pkg"
|
||||||
|
|
||||||
extern pmhandle_t *handle;
|
extern pmhandle_t *handle;
|
||||||
|
|
||||||
pmsyncpkg_t *sync_new(int type, pmpkg_t *lpkg, pmpkg_t *spkg)
|
pmsyncpkg_t *sync_new(int type, pmpkg_t *spkg, void *data)
|
||||||
{
|
{
|
||||||
pmsyncpkg_t *sync;
|
pmsyncpkg_t *sync;
|
||||||
|
|
||||||
@ -51,9 +55,13 @@ pmsyncpkg_t *sync_new(int type, pmpkg_t *lpkg, pmpkg_t *spkg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
sync->type = type;
|
sync->type = type;
|
||||||
sync->lpkg = lpkg;
|
sync->pkg = spkg;
|
||||||
sync->spkg = spkg;
|
|
||||||
sync->replaces = NULL;
|
if(sync->type == PM_SYNC_TYPE_REPLACE) {
|
||||||
|
sync->data = pm_list_add(NULL, data);
|
||||||
|
} else {
|
||||||
|
sync->data = data;
|
||||||
|
}
|
||||||
|
|
||||||
return(sync);
|
return(sync);
|
||||||
}
|
}
|
||||||
@ -61,7 +69,9 @@ pmsyncpkg_t *sync_new(int type, pmpkg_t *lpkg, pmpkg_t *spkg)
|
|||||||
void sync_free(pmsyncpkg_t *sync)
|
void sync_free(pmsyncpkg_t *sync)
|
||||||
{
|
{
|
||||||
if(sync) {
|
if(sync) {
|
||||||
FREELISTPTR(sync->replaces);
|
if(sync->type == PM_SYNC_TYPE_REPLACE) {
|
||||||
|
FREELISTPTR(sync->data);
|
||||||
|
}
|
||||||
free(sync);
|
free(sync);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -77,7 +87,7 @@ static pmsyncpkg_t* find_pkginsync(char *needle, PMList *haystack)
|
|||||||
|
|
||||||
for(i = haystack; i && !found; i = i->next) {
|
for(i = haystack; i && !found; i = i->next) {
|
||||||
sync = i->data;
|
sync = i->data;
|
||||||
if(sync && !strcmp(sync->spkg->name, needle)) {
|
if(sync && !strcmp(sync->pkg->name, needle)) {
|
||||||
found = 1;
|
found = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -91,7 +101,7 @@ static pmsyncpkg_t* find_pkginsync(char *needle, PMList *haystack)
|
|||||||
/* It returns a PMList of packages extracted from the given archive
|
/* It returns a PMList of packages extracted from the given archive
|
||||||
* (the archive must have been generated by gensync)
|
* (the archive must have been generated by gensync)
|
||||||
*/
|
*/
|
||||||
PMList *sync_load_archive(char *archive)
|
PMList *sync_load_dbarchive(char *archive)
|
||||||
{
|
{
|
||||||
PMList *lp = NULL;
|
PMList *lp = NULL;
|
||||||
DIR *dir = NULL;
|
DIR *dir = NULL;
|
||||||
@ -125,39 +135,32 @@ error:
|
|||||||
return(NULL);
|
return(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
int sync_sysupgrade(PMList **data)
|
int sync_sysupgrade(pmtrans_t *trans, pmdb_t *db_local, PMList *dbs_sync)
|
||||||
{
|
{
|
||||||
PMList *i, *j, *k;
|
PMList *i, *j, *k;
|
||||||
PMList *targets = NULL;
|
|
||||||
|
|
||||||
*data = NULL;
|
|
||||||
|
|
||||||
/* check for "recommended" package replacements */
|
/* check for "recommended" package replacements */
|
||||||
for(i = handle->dbs_sync; i; i = i->next) {
|
for(i = dbs_sync; i; i = i->next) {
|
||||||
PMList *j;
|
PMList *j;
|
||||||
|
|
||||||
for(j = db_get_pkgcache(i->data); j; j = j->next) {
|
for(j = db_get_pkgcache(i->data); j; j = j->next) {
|
||||||
pmpkg_t *spkg = j->data;
|
pmpkg_t *spkg = j->data;
|
||||||
|
|
||||||
for(k = spkg->replaces; k; k = k->next) {
|
for(k = spkg->replaces; k; k = k->next) {
|
||||||
PMList *m;
|
PMList *m;
|
||||||
|
for(m = db_get_pkgcache(db_local); m; m = m->next) {
|
||||||
for(m = db_get_pkgcache(handle->db_local); m; m = m->next) {
|
|
||||||
pmpkg_t *lpkg = m->data;
|
pmpkg_t *lpkg = m->data;
|
||||||
|
|
||||||
if(!strcmp(k->data, lpkg->name)) {
|
if(!strcmp(k->data, lpkg->name)) {
|
||||||
if(pm_list_is_strin(lpkg->name, handle->ignorepkg)) {
|
if(pm_list_is_strin(lpkg->name, handle->ignorepkg)) {
|
||||||
_alpm_log(PM_LOG_WARNING, "%s-%s: ignoring package upgrade (to be replaced by %s-%s)",
|
_alpm_log(PM_LOG_WARNING, "%s-%s: ignoring package upgrade (to be replaced by %s-%s)",
|
||||||
lpkg->name, lpkg->version, spkg->name, spkg->version);
|
lpkg->name, lpkg->version, spkg->name, spkg->version);
|
||||||
} else {
|
} else {
|
||||||
pmsyncpkg_t *sync = sync_new(PM_SYNC_TYPE_REPLACE, lpkg, spkg);
|
pmsyncpkg_t *sync = sync_new(PM_SYNC_TYPE_REPLACE, spkg, lpkg);
|
||||||
if(sync == NULL) {
|
if(sync == NULL) {
|
||||||
pm_errno = PM_ERR_MEMORY;
|
pm_errno = PM_ERR_MEMORY;
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
_alpm_log(PM_LOG_DEBUG, "%s-%s elected for upgrade (to be replaced by %s-%s)",
|
_alpm_log(PM_LOG_DEBUG, "%s-%s elected for upgrade (to be replaced by %s-%s)",
|
||||||
lpkg->name, lpkg->version, spkg->name, spkg->version);
|
lpkg->name, lpkg->version, spkg->name, spkg->version);
|
||||||
targets = pm_list_add(targets, sync);
|
trans->packages = pm_list_add(trans->packages, sync);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -166,14 +169,13 @@ int sync_sysupgrade(PMList **data)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* match installed packages with the sync dbs and compare versions */
|
/* match installed packages with the sync dbs and compare versions */
|
||||||
for(i = db_get_pkgcache(handle->db_local); i; i = i->next) {
|
for(i = db_get_pkgcache(db_local); i; i = i->next) {
|
||||||
int cmp;
|
int cmp;
|
||||||
pmpkg_t *local = i->data;
|
pmpkg_t *local = i->data;
|
||||||
pmpkg_t *spkg = NULL;
|
pmpkg_t *spkg = NULL;
|
||||||
pmsyncpkg_t *sync;
|
pmsyncpkg_t *sync;
|
||||||
|
|
||||||
for(j = handle->dbs_sync; !spkg && j; j = j->next) {
|
for(j = dbs_sync; !spkg && j; j = j->next) {
|
||||||
|
|
||||||
for(k = db_get_pkgcache(j->data); !spkg && k; k = k->next) {
|
for(k = db_get_pkgcache(j->data); !spkg && k; k = k->next) {
|
||||||
pmpkg_t *sp = k->data;
|
pmpkg_t *sp = k->data;
|
||||||
if(!strcmp(local->name, sp->name)) {
|
if(!strcmp(local->name, sp->name)) {
|
||||||
@ -199,27 +201,24 @@ int sync_sysupgrade(PMList **data)
|
|||||||
_alpm_log(PM_LOG_FLOW1, "%s-%s: ignoring package upgrade (%s)",
|
_alpm_log(PM_LOG_FLOW1, "%s-%s: ignoring package upgrade (%s)",
|
||||||
local->name, local->version, spkg->version);
|
local->name, local->version, spkg->version);
|
||||||
} else {
|
} else {
|
||||||
sync = sync_new(PM_SYNC_TYPE_UPGRADE, local, spkg);
|
sync = sync_new(PM_SYNC_TYPE_UPGRADE, spkg, local);
|
||||||
if(sync == NULL) {
|
if(sync == NULL) {
|
||||||
pm_errno = PM_ERR_MEMORY;
|
pm_errno = PM_ERR_MEMORY;
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
_alpm_log(PM_LOG_DEBUG, "%s-%s elected for upgrade (%s => %s)",
|
_alpm_log(PM_LOG_DEBUG, "%s-%s elected for upgrade (%s => %s)",
|
||||||
local->name, local->version, local->version, spkg->version);
|
local->name, local->version, local->version, spkg->version);
|
||||||
targets = pm_list_add(targets, sync);
|
trans->packages = pm_list_add(trans->packages, sync);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
*data = targets;
|
|
||||||
|
|
||||||
return(0);
|
return(0);
|
||||||
|
|
||||||
error:
|
error:
|
||||||
FREELIST(targets);
|
|
||||||
return(-1);
|
return(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
int sync_addtarget(pmdb_t *db, PMList *dbs_sync, pmtrans_t *trans, char *name)
|
int sync_addtarget(pmtrans_t *trans, pmdb_t *db_local, PMList *dbs_sync, char *name)
|
||||||
{
|
{
|
||||||
char targline[(PKG_NAME_LEN-1)+1+(DB_TREENAME_LEN-1)+1];
|
char targline[(PKG_NAME_LEN-1)+1+(DB_TREENAME_LEN-1)+1];
|
||||||
char *targ;
|
char *targ;
|
||||||
@ -229,14 +228,10 @@ int sync_addtarget(pmdb_t *db, PMList *dbs_sync, pmtrans_t *trans, char *name)
|
|||||||
pmsyncpkg_t *sync;
|
pmsyncpkg_t *sync;
|
||||||
int cmp;
|
int cmp;
|
||||||
|
|
||||||
ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
|
ASSERT(db_local != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
|
||||||
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
||||||
ASSERT(name != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1));
|
ASSERT(name != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1));
|
||||||
|
|
||||||
if(trans->flags & PM_TRANS_FLAG_SYSUPG) {
|
|
||||||
RET_ERR(PM_ERR_XXX, -1);
|
|
||||||
}
|
|
||||||
|
|
||||||
strncpy(targline, name, (PKG_NAME_LEN-1)+1+(DB_TREENAME_LEN-1)+1);
|
strncpy(targline, name, (PKG_NAME_LEN-1)+1+(DB_TREENAME_LEN-1)+1);
|
||||||
targ = strchr(targline, '/');
|
targ = strchr(targline, '/');
|
||||||
if(targ) {
|
if(targ) {
|
||||||
@ -262,7 +257,7 @@ int sync_addtarget(pmdb_t *db, PMList *dbs_sync, pmtrans_t *trans, char *name)
|
|||||||
RET_ERR(PM_ERR_PKG_NOT_FOUND, -1);
|
RET_ERR(PM_ERR_PKG_NOT_FOUND, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
local = db_get_pkgfromcache(db, name);
|
local = db_get_pkgfromcache(db_local, name);
|
||||||
if(local) {
|
if(local) {
|
||||||
cmp = alpm_pkg_vercmp(local->version, spkg->version);
|
cmp = alpm_pkg_vercmp(local->version, spkg->version);
|
||||||
if(cmp > 0) {
|
if(cmp > 0) {
|
||||||
@ -284,7 +279,7 @@ int sync_addtarget(pmdb_t *db, PMList *dbs_sync, pmtrans_t *trans, char *name)
|
|||||||
|
|
||||||
/* add the package to the transaction */
|
/* add the package to the transaction */
|
||||||
if(!find_pkginsync(spkg->name, trans->packages)) {
|
if(!find_pkginsync(spkg->name, trans->packages)) {
|
||||||
sync = sync_new(PM_SYNC_TYPE_UPGRADE, local, spkg);
|
sync = sync_new(PM_SYNC_TYPE_UPGRADE, spkg, local);
|
||||||
if(sync == NULL) {
|
if(sync == NULL) {
|
||||||
RET_ERR(PM_ERR_MEMORY, -1);
|
RET_ERR(PM_ERR_MEMORY, -1);
|
||||||
}
|
}
|
||||||
@ -294,14 +289,14 @@ int sync_addtarget(pmdb_t *db, PMList *dbs_sync, pmtrans_t *trans, char *name)
|
|||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int sync_prepare(pmdb_t *db, pmtrans_t *trans, PMList **data)
|
int sync_prepare(pmtrans_t *trans, pmdb_t *db_local, PMList *dbs_sync, PMList **data)
|
||||||
{
|
{
|
||||||
PMList *deps = NULL;
|
PMList *deps = NULL;
|
||||||
PMList *list = NULL;
|
PMList *list = NULL;
|
||||||
PMList *trail = NULL;
|
PMList *trail = NULL;
|
||||||
PMList *i;
|
PMList *i;
|
||||||
|
|
||||||
ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
|
ASSERT(db_local != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
|
||||||
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
||||||
ASSERT(data != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
ASSERT(data != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
||||||
|
|
||||||
@ -314,7 +309,7 @@ int sync_prepare(pmdb_t *db, pmtrans_t *trans, PMList **data)
|
|||||||
if(!(trans->flags & PM_TRANS_FLAG_NODEPS)) {
|
if(!(trans->flags & PM_TRANS_FLAG_NODEPS)) {
|
||||||
for(i = trans->packages; i; i = i->next) {
|
for(i = trans->packages; i; i = i->next) {
|
||||||
pmsyncpkg_t *sync = i->data;
|
pmsyncpkg_t *sync = i->data;
|
||||||
list = pm_list_add(list, sync->spkg);
|
list = pm_list_add(list, sync->pkg);
|
||||||
}
|
}
|
||||||
trail = pm_list_new();
|
trail = pm_list_new();
|
||||||
|
|
||||||
@ -323,9 +318,9 @@ int sync_prepare(pmdb_t *db, pmtrans_t *trans, PMList **data)
|
|||||||
_alpm_log(PM_LOG_FLOW1, "resolving targets dependencies");
|
_alpm_log(PM_LOG_FLOW1, "resolving targets dependencies");
|
||||||
for(i = trans->packages; i; i = i->next) {
|
for(i = trans->packages; i; i = i->next) {
|
||||||
pmsyncpkg_t *sync = i->data;
|
pmsyncpkg_t *sync = i->data;
|
||||||
pmpkg_t *spkg = sync->spkg;
|
pmpkg_t *spkg = sync->pkg;
|
||||||
_alpm_log(PM_LOG_FLOW1, "resolving dependencies for package %s", spkg->name);
|
_alpm_log(PM_LOG_FLOW1, "resolving dependencies for package %s", spkg->name);
|
||||||
if(resolvedeps(handle->db_local, handle->dbs_sync, spkg, list, trail) == -1) {
|
if(resolvedeps(db_local, dbs_sync, spkg, list, trail) == -1) {
|
||||||
/* pm_errno is set by resolvedeps */
|
/* pm_errno is set by resolvedeps */
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
@ -336,7 +331,7 @@ int sync_prepare(pmdb_t *db, pmtrans_t *trans, PMList **data)
|
|||||||
for(i = list; i; i = i->next) {
|
for(i = list; i; i = i->next) {
|
||||||
pmpkg_t *spkg = i->data;
|
pmpkg_t *spkg = i->data;
|
||||||
if(!find_pkginsync(spkg->name, trans->packages)) {
|
if(!find_pkginsync(spkg->name, trans->packages)) {
|
||||||
pmsyncpkg_t *sync = sync_new(PM_SYNC_TYPE_DEPEND, NULL, spkg);
|
pmsyncpkg_t *sync = sync_new(PM_SYNC_TYPE_DEPEND, spkg, NULL);
|
||||||
trans->packages = pm_list_add(trans->packages, sync);
|
trans->packages = pm_list_add(trans->packages, sync);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -345,7 +340,7 @@ int sync_prepare(pmdb_t *db, pmtrans_t *trans, PMList **data)
|
|||||||
/* ORE
|
/* ORE
|
||||||
check for inter-conflicts and whatnot */
|
check for inter-conflicts and whatnot */
|
||||||
TRANS_CB(trans, PM_TRANS_EVT_INTERCONFLICTS_START, NULL, NULL);
|
TRANS_CB(trans, PM_TRANS_EVT_INTERCONFLICTS_START, NULL, NULL);
|
||||||
deps = checkdeps(db, PM_TRANS_TYPE_UPGRADE, list);
|
deps = checkdeps(db_local, PM_TRANS_TYPE_UPGRADE, list);
|
||||||
if(deps) {
|
if(deps) {
|
||||||
int errorout = 0;
|
int errorout = 0;
|
||||||
_alpm_log(PM_LOG_FLOW1, "looking for unresolvable dependencies");
|
_alpm_log(PM_LOG_FLOW1, "looking for unresolvable dependencies");
|
||||||
@ -399,9 +394,9 @@ error:
|
|||||||
return(-1);
|
return(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
int sync_commit(pmdb_t *db, pmtrans_t *trans)
|
int sync_commit(pmtrans_t *trans, pmdb_t *db)
|
||||||
{
|
{
|
||||||
PMList *i, *j = NULL;
|
PMList *i;
|
||||||
PMList *data;
|
PMList *data;
|
||||||
pmtrans_t *tr;
|
pmtrans_t *tr;
|
||||||
char ldir[PATH_MAX];
|
char ldir[PATH_MAX];
|
||||||
@ -409,11 +404,7 @@ int sync_commit(pmdb_t *db, pmtrans_t *trans)
|
|||||||
ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
|
ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
|
||||||
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
||||||
|
|
||||||
/* ORE
|
|
||||||
set CACHEDIR as a library option? */
|
|
||||||
#define PM_CACHEDIR "var/cache/pacman/pkg"
|
|
||||||
snprintf(ldir, PATH_MAX, "%s" PM_CACHEDIR, handle->root);
|
snprintf(ldir, PATH_MAX, "%s" PM_CACHEDIR, handle->root);
|
||||||
#undef CACHEDIR
|
|
||||||
|
|
||||||
/* remove any conflicting packages (WITHOUT dep checks) */
|
/* remove any conflicting packages (WITHOUT dep checks) */
|
||||||
/* ORE - alpm does not handle removal of conflicting pkgs for now */
|
/* ORE - alpm does not handle removal of conflicting pkgs for now */
|
||||||
@ -424,15 +415,17 @@ int sync_commit(pmdb_t *db, pmtrans_t *trans)
|
|||||||
if(tr == NULL) {
|
if(tr == NULL) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
for(i = trans->packages; i; i = i->next) {
|
/*for(i = trans->packages; i; i = i->next) {
|
||||||
pmsyncpkg_t *sync = i->data;
|
pmsyncpkg_t *sync = i->data;
|
||||||
for(j = sync->replaces; j; j = j->next) {
|
if(sync->type == PM_SYNC_TYPE_REPLACE) {
|
||||||
pmpkg_t *pkg = j->data;
|
pmpkg_t *pkg = sync->lpkg;
|
||||||
if(trans_addtarget(tr, pkg->name)) {
|
if(trans_addtarget(tr, pkg->name)) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
trans_prepare(tr, &data);
|
||||||
|
trans_commit(tr);*/
|
||||||
trans_free(tr);
|
trans_free(tr);
|
||||||
|
|
||||||
/* install targets */
|
/* install targets */
|
||||||
@ -443,13 +436,15 @@ int sync_commit(pmdb_t *db, pmtrans_t *trans)
|
|||||||
}
|
}
|
||||||
for(i = trans->packages; i; i = i->next) {
|
for(i = trans->packages; i; i = i->next) {
|
||||||
pmsyncpkg_t *sync = i->data;
|
pmsyncpkg_t *sync = i->data;
|
||||||
pmpkg_t *spkg = sync->spkg;
|
if(sync->type != PM_SYNC_TYPE_REPLACE) {
|
||||||
|
pmpkg_t *spkg = sync->pkg;
|
||||||
char str[PATH_MAX];
|
char str[PATH_MAX];
|
||||||
snprintf(str, PATH_MAX, "%s/%s-%s" PM_EXT_PKG, ldir, spkg->name, spkg->version);
|
snprintf(str, PATH_MAX, "%s/%s-%s" PM_EXT_PKG, ldir, spkg->name, spkg->version);
|
||||||
if(trans_addtarget(tr, str) == -1) {
|
if(trans_addtarget(tr, str) == -1) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if(trans_prepare(tr, &data) == -1) {
|
if(trans_prepare(tr, &data) == -1) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
@ -462,6 +457,7 @@ int sync_commit(pmdb_t *db, pmtrans_t *trans)
|
|||||||
for(i = trans->packages; i; i = i->next) {
|
for(i = trans->packages; i; i = i->next) {
|
||||||
/*syncpkg_t *sync = (syncpkg_t*)i->data;
|
/*syncpkg_t *sync = (syncpkg_t*)i->data;
|
||||||
if(sync->replaces) {
|
if(sync->replaces) {
|
||||||
|
PMList *j;
|
||||||
pkginfo_t *new = db_scan(db, sync->pkg->name, INFRQ_DEPENDS);
|
pkginfo_t *new = db_scan(db, sync->pkg->name, INFRQ_DEPENDS);
|
||||||
for(j = sync->replaces; j; j = j->next) {
|
for(j = sync->replaces; j; j = j->next) {
|
||||||
pkginfo_t *old = (pkginfo_t*)j->data;
|
pkginfo_t *old = (pkginfo_t*)j->data;
|
||||||
|
@ -24,25 +24,22 @@
|
|||||||
#include "db.h"
|
#include "db.h"
|
||||||
#include "package.h"
|
#include "package.h"
|
||||||
#include "trans.h"
|
#include "trans.h"
|
||||||
#include "alpm.h"
|
|
||||||
|
|
||||||
typedef struct __pmsyncpkg_t {
|
typedef struct __pmsyncpkg_t {
|
||||||
unsigned char type;
|
unsigned char type;
|
||||||
pmpkg_t *lpkg;
|
pmpkg_t *pkg;
|
||||||
pmpkg_t *spkg;
|
void *data;
|
||||||
PMList *replaces;
|
|
||||||
} pmsyncpkg_t;
|
} pmsyncpkg_t;
|
||||||
|
|
||||||
pmsyncpkg_t *sync_new(int type, pmpkg_t *lpkg, pmpkg_t *spkg);
|
pmsyncpkg_t *sync_new(int type, pmpkg_t *spkg, void *data);
|
||||||
void sync_free(pmsyncpkg_t *sync);
|
void sync_free(pmsyncpkg_t *sync);
|
||||||
|
|
||||||
PMList *sync_load_archive(char *archive);
|
PMList *sync_load_archive(char *archive);
|
||||||
|
|
||||||
int sync_sysupgrade(pmlist_t **data);
|
int sync_sysupgrade(pmtrans_t *trans, pmdb_t *db, PMList *dbs_sync);
|
||||||
|
int sync_addtarget(pmtrans_t *trans, pmdb_t *db, PMList *dbs_sync, char *name);
|
||||||
int sync_addtarget(pmdb_t *db, PMList *dbs_sync, pmtrans_t *trans, char *name);
|
int sync_prepare(pmtrans_t *trans, pmdb_t *db, PMList *dbs_sync, PMList **data);
|
||||||
int sync_prepare(pmdb_t *db, pmtrans_t *trans, PMList **data);
|
int sync_commit(pmtrans_t *trans, pmdb_t *db);
|
||||||
int sync_commit(pmdb_t *db, pmtrans_t *trans);
|
|
||||||
|
|
||||||
#endif /* _ALPM_SYNC_H */
|
#endif /* _ALPM_SYNC_H */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user