Merge branch 'maint'
Conflicts: lib/libalpm/sync.c test/pacman/tests/ignore007.py
This commit is contained in:
commit
08d885fda5
3 changed files with 36 additions and 18 deletions
|
@ -52,7 +52,7 @@ EXTRA_DIST = \
|
||||||
$(DOXYGEN_MANS)
|
$(DOXYGEN_MANS)
|
||||||
|
|
||||||
# Files that should be removed, but which Automake does not know.
|
# Files that should be removed, but which Automake does not know.
|
||||||
MOSTLYCLEANFILES = *.xml $(ASCIIDOC_MANS) $(HTML_DOCS) repo-remove.8
|
MOSTLYCLEANFILES = *.xml $(ASCIIDOC_MANS) $(HTML_DOCS) repo-remove.8 website.tar.gz
|
||||||
|
|
||||||
# Ensure manpages are fresh when building a dist tarball
|
# Ensure manpages are fresh when building a dist tarball
|
||||||
dist-hook:
|
dist-hook:
|
||||||
|
|
|
@ -248,29 +248,15 @@ static int sync_pkg(pmpkg_t *spkg, alpm_list_t *pkg_list)
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sync_target(alpm_list_t *dbs_sync, const char *target)
|
static int sync_group(alpm_list_t *dbs_sync, const char *target)
|
||||||
{
|
{
|
||||||
alpm_list_t *i, *j;
|
alpm_list_t *i, *j;
|
||||||
alpm_list_t *known_pkgs = NULL;
|
alpm_list_t *known_pkgs = NULL;
|
||||||
pmpkg_t *spkg;
|
|
||||||
pmdepend_t *dep; /* provisions and dependencies are also allowed */
|
|
||||||
pmgrp_t *grp;
|
pmgrp_t *grp;
|
||||||
int found = 0;
|
int found = 0;
|
||||||
|
|
||||||
ALPM_LOG_FUNC;
|
ALPM_LOG_FUNC;
|
||||||
|
|
||||||
/* Sanity checks */
|
|
||||||
ASSERT(target != NULL && strlen(target) != 0, RET_ERR(PM_ERR_WRONG_ARGS, -1));
|
|
||||||
ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1));
|
|
||||||
|
|
||||||
dep = _alpm_splitdep(target);
|
|
||||||
spkg = _alpm_resolvedep(dep, dbs_sync, NULL, 1);
|
|
||||||
_alpm_dep_free(dep);
|
|
||||||
|
|
||||||
if(spkg != NULL) {
|
|
||||||
return(sync_pkg(spkg, handle->trans->add));
|
|
||||||
}
|
|
||||||
|
|
||||||
_alpm_log(PM_LOG_DEBUG, "%s package not found, searching for group...\n", target);
|
_alpm_log(PM_LOG_DEBUG, "%s package not found, searching for group...\n", target);
|
||||||
for(i = dbs_sync; i; i = i->next) {
|
for(i = dbs_sync; i; i = i->next) {
|
||||||
pmdb_t *db = i->data;
|
pmdb_t *db = i->data;
|
||||||
|
@ -279,6 +265,18 @@ static int sync_target(alpm_list_t *dbs_sync, const char *target)
|
||||||
found = 1;
|
found = 1;
|
||||||
for(j = alpm_grp_get_pkgs(grp); j; j = j->next) {
|
for(j = alpm_grp_get_pkgs(grp); j; j = j->next) {
|
||||||
pmpkg_t *pkg = j->data;
|
pmpkg_t *pkg = j->data;
|
||||||
|
|
||||||
|
/* check if group member is ignored */
|
||||||
|
if(_alpm_pkg_should_ignore(pkg)) {
|
||||||
|
int install = 0;
|
||||||
|
QUESTION(handle->trans, PM_TRANS_CONV_INSTALL_IGNOREPKG, pkg,
|
||||||
|
NULL, NULL, &install);
|
||||||
|
if(install == 0) {
|
||||||
|
_alpm_log(PM_LOG_WARNING, _("skipping target: %s\n"), alpm_pkg_get_name(pkg));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(sync_pkg(pkg, known_pkgs) == -1) {
|
if(sync_pkg(pkg, known_pkgs) == -1) {
|
||||||
if(pm_errno == PM_ERR_TRANS_DUP_TARGET || pm_errno == PM_ERR_PKG_IGNORED) {
|
if(pm_errno == PM_ERR_TRANS_DUP_TARGET || pm_errno == PM_ERR_PKG_IGNORED) {
|
||||||
/* just skip duplicate or ignored targets */
|
/* just skip duplicate or ignored targets */
|
||||||
|
@ -305,6 +303,28 @@ static int sync_target(alpm_list_t *dbs_sync, const char *target)
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int sync_target(alpm_list_t *dbs_sync, const char *target)
|
||||||
|
{
|
||||||
|
pmpkg_t *spkg;
|
||||||
|
pmdepend_t *dep; /* provisions and dependencies are also allowed */
|
||||||
|
|
||||||
|
ALPM_LOG_FUNC;
|
||||||
|
|
||||||
|
/* Sanity checks */
|
||||||
|
ASSERT(target != NULL && strlen(target) != 0, RET_ERR(PM_ERR_WRONG_ARGS, -1));
|
||||||
|
ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1));
|
||||||
|
|
||||||
|
dep = _alpm_splitdep(target);
|
||||||
|
spkg = _alpm_resolvedep(dep, dbs_sync, NULL, 1);
|
||||||
|
_alpm_dep_free(dep);
|
||||||
|
|
||||||
|
if(spkg != NULL) {
|
||||||
|
return(sync_pkg(spkg, handle->trans->add));
|
||||||
|
}
|
||||||
|
|
||||||
|
return(sync_group(dbs_sync, target));
|
||||||
|
}
|
||||||
|
|
||||||
/** Add a sync target to the transaction.
|
/** Add a sync target to the transaction.
|
||||||
* @param target the name of the sync target to add
|
* @param target the name of the sync target to add
|
||||||
* @return 0 on success, -1 on error (pm_errno is set accordingly)
|
* @return 0 on success, -1 on error (pm_errno is set accordingly)
|
||||||
|
|
|
@ -19,5 +19,3 @@ self.addrule("PACMAN_RETCODE=0")
|
||||||
self.addrule("!PKG_EXIST=%s" % pkg1.name)
|
self.addrule("!PKG_EXIST=%s" % pkg1.name)
|
||||||
self.addrule("PKG_EXIST=%s" % pkg2.name)
|
self.addrule("PKG_EXIST=%s" % pkg2.name)
|
||||||
self.addrule("PACMAN_OUTPUT=IgnorePkg")
|
self.addrule("PACMAN_OUTPUT=IgnorePkg")
|
||||||
|
|
||||||
self.expectfailure = True
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue