diff options
author | Nagy Gabor <ngaba@bibl.u-szeged.hu> | 2007-11-18 18:45:46 +0100 |
---|---|---|
committer | Chantry Xavier <shiningxc@gmail.com> | 2008-02-06 08:46:15 +0100 |
commit | e63366ae5e701d8e9ae33144f68e8786b092a468 (patch) | |
tree | 4b258502587555e3973486140a7a441ea54065fc /lib/libalpm/deps.h | |
parent | e81dec9b8c65f7c882f5f447cdc117783259f4a4 (diff) | |
download | pacman-e63366ae5e701d8e9ae33144f68e8786b092a468.tar.xz |
New remove option : -u / --unneeded (FS#6505).
With --unneeded option 'pacman -R' doesn't stop in case of dependency error;
it removes the needed-dependency targets from the target-list instead. See
also: http://archlinux.org/pipermail/pacman-dev/2007-October/009653.html .
The patch also adds a new causingpkg field to pmdepmissing_t which indicates
the to-be-removed package which would cause a dependency break. This is
needed, because miss->depend.name may be a provision. miss->causingpkg will
be useful in -R dependency error messages too.
[Xavier: renamed inducer to causingpkg, removed the _alpm_pkgname_pkg_cmp
helper function as requested by Aaron. This might be added by a further
commit. Other small cleanups, updated manpage and bash completion.]
Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
Diffstat (limited to 'lib/libalpm/deps.h')
-rw-r--r-- | lib/libalpm/deps.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/libalpm/deps.h b/lib/libalpm/deps.h index fdbfebed..439a92a2 100644 --- a/lib/libalpm/deps.h +++ b/lib/libalpm/deps.h @@ -37,6 +37,7 @@ struct __pmdepend_t { struct __pmdepmissing_t { char *target; pmdepend_t *depend; + char *causingpkg; /* this is used in case of remove dependency error only */ }; /* Graphs */ @@ -51,7 +52,8 @@ struct __pmgraph_t { void _alpm_dep_free(pmdepend_t *dep); pmdepend_t *_alpm_dep_dup(const pmdepend_t *dep); -pmdepmissing_t *_alpm_depmiss_new(const char *target, pmdepend_t *dep); +pmdepmissing_t *_alpm_depmiss_new(const char *target, pmdepend_t *dep, + const char *causinpkg); void _alpm_depmiss_free(pmdepmissing_t *miss); alpm_list_t *_alpm_sortbydeps(alpm_list_t *targets, pmtranstype_t mode); void _alpm_recursedeps(pmdb_t *db, alpm_list_t *targs, int include_explicit); |