diff options
author | Florian Pritz <bluewind@xinu.at> | 2014-07-04 23:12:01 +0200 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2014-09-30 22:33:26 +1000 |
commit | 04e8048725441465788a6c76a326ff252c2fd815 (patch) | |
tree | 22ce157e65f1eae5e1f11357adee781b10fb1246 /src/pacman/conf.c | |
parent | 4e263f24c6ed1cc710b7873b9ea37534117247ea (diff) | |
download | pacman-04e8048725441465788a6c76a326ff252c2fd815.tar.xz |
Add --assume-installed option
This allows to ignore specific dependencies.
Signed-off-by: Florian Pritz <bluewind@xinu.at>
Diffstat (limited to 'src/pacman/conf.c')
-rw-r--r-- | src/pacman/conf.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/pacman/conf.c b/src/pacman/conf.c index 8b298ccf..5028284d 100644 --- a/src/pacman/conf.c +++ b/src/pacman/conf.c @@ -134,6 +134,7 @@ int config_free(config_t *oldconfig) FREELIST(oldconfig->holdpkg); FREELIST(oldconfig->ignorepkg); FREELIST(oldconfig->ignoregrp); + FREELIST(oldconfig->assumeinstalled); FREELIST(oldconfig->noupgrade); FREELIST(oldconfig->noextract); free(oldconfig->configfile); @@ -650,6 +651,7 @@ static int setup_libalpm(void) int ret = 0; alpm_errno_t err; alpm_handle_t *handle; + alpm_list_t *i; pm_printf(ALPM_LOG_DEBUG, "setup_libalpm called\n"); @@ -742,6 +744,22 @@ static int setup_libalpm(void) alpm_option_set_noupgrades(handle, config->noupgrade); alpm_option_set_noextracts(handle, config->noextract); + for(i = config->assumeinstalled; i; i = i->next) { + char *entry = i->data; + alpm_depend_t *dep = alpm_dep_from_string(entry); + if(!dep) { + return 1; + } + pm_printf(ALPM_LOG_DEBUG, "parsed assume installed: %s %s\n", dep->name, dep->version); + + ret = alpm_option_add_assumeinstalled(handle, dep); + if(ret) { + pm_printf(ALPM_LOG_ERROR, _("Failed to pass assume installed entry to libalpm")); + alpm_dep_free(dep); + return ret; + } + } + return 0; } |