Expose alpm_pkg_should_ignore
This function is useful for frontends to annotate package upgrades that will be ignored. Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
parent
d4ba5bdda6
commit
23923200c3
5 changed files with 19 additions and 11 deletions
|
@ -793,6 +793,15 @@ alpm_list_t *alpm_pkg_compute_requiredby(alpm_pkg_t *pkg);
|
||||||
*/
|
*/
|
||||||
alpm_list_t *alpm_pkg_compute_optionalfor(alpm_pkg_t *pkg);
|
alpm_list_t *alpm_pkg_compute_optionalfor(alpm_pkg_t *pkg);
|
||||||
|
|
||||||
|
/** Test if a package should be ignored.
|
||||||
|
* Checks if the package is ignored via IgnorePkg, or if the package is
|
||||||
|
* in a group ignored via IgnoreGroup.
|
||||||
|
* @param handle the context handle
|
||||||
|
* @param pkg the package to test
|
||||||
|
* @return 1 if the package should be ignored, 0 otherwise
|
||||||
|
*/
|
||||||
|
int alpm_pkg_should_ignore(alpm_handle_t *handle, alpm_pkg_t *pkg);
|
||||||
|
|
||||||
/** @name Package Property Accessors
|
/** @name Package Property Accessors
|
||||||
* Any pointer returned by these functions points to internal structures
|
* Any pointer returned by these functions points to internal structures
|
||||||
* allocated by libalpm. They should not be freed nor modified in any
|
* allocated by libalpm. They should not be freed nor modified in any
|
||||||
|
|
|
@ -664,7 +664,7 @@ static alpm_pkg_t *resolvedep(alpm_handle_t *handle, alpm_depend_t *dep,
|
||||||
pkg = _alpm_db_get_pkgfromcache(db, dep->name);
|
pkg = _alpm_db_get_pkgfromcache(db, dep->name);
|
||||||
if(pkg && _alpm_depcmp_literal(pkg, dep)
|
if(pkg && _alpm_depcmp_literal(pkg, dep)
|
||||||
&& !alpm_pkg_find(excluding, pkg->name)) {
|
&& !alpm_pkg_find(excluding, pkg->name)) {
|
||||||
if(_alpm_pkg_should_ignore(handle, pkg)) {
|
if(alpm_pkg_should_ignore(handle, pkg)) {
|
||||||
int install = 0;
|
int install = 0;
|
||||||
if(prompt) {
|
if(prompt) {
|
||||||
QUESTION(handle, ALPM_QUESTION_INSTALL_IGNOREPKG, pkg,
|
QUESTION(handle, ALPM_QUESTION_INSTALL_IGNOREPKG, pkg,
|
||||||
|
@ -693,7 +693,7 @@ static alpm_pkg_t *resolvedep(alpm_handle_t *handle, alpm_depend_t *dep,
|
||||||
* possibly be the same string */
|
* possibly be the same string */
|
||||||
if(pkg->name_hash != dep->name_hash && _alpm_depcmp(pkg, dep)
|
if(pkg->name_hash != dep->name_hash && _alpm_depcmp(pkg, dep)
|
||||||
&& !alpm_pkg_find(excluding, pkg->name)) {
|
&& !alpm_pkg_find(excluding, pkg->name)) {
|
||||||
if(_alpm_pkg_should_ignore(handle, pkg)) {
|
if(alpm_pkg_should_ignore(handle, pkg)) {
|
||||||
int install = 0;
|
int install = 0;
|
||||||
if(prompt) {
|
if(prompt) {
|
||||||
QUESTION(handle, ALPM_QUESTION_INSTALL_IGNOREPKG,
|
QUESTION(handle, ALPM_QUESTION_INSTALL_IGNOREPKG,
|
||||||
|
|
|
@ -753,7 +753,7 @@ alpm_pkg_t SYMEXPORT *alpm_pkg_find(alpm_list_t *haystack, const char *needle)
|
||||||
*
|
*
|
||||||
* @return 1 if the package should be ignored, 0 otherwise
|
* @return 1 if the package should be ignored, 0 otherwise
|
||||||
*/
|
*/
|
||||||
int _alpm_pkg_should_ignore(alpm_handle_t *handle, alpm_pkg_t *pkg)
|
int SYMEXPORT alpm_pkg_should_ignore(alpm_handle_t *handle, alpm_pkg_t *pkg)
|
||||||
{
|
{
|
||||||
alpm_list_t *groups = NULL;
|
alpm_list_t *groups = NULL;
|
||||||
|
|
||||||
|
|
|
@ -148,7 +148,6 @@ alpm_pkg_t *_alpm_pkg_load_internal(alpm_handle_t *handle,
|
||||||
|
|
||||||
int _alpm_pkg_cmp(const void *p1, const void *p2);
|
int _alpm_pkg_cmp(const void *p1, const void *p2);
|
||||||
int _alpm_pkg_compare_versions(alpm_pkg_t *local_pkg, alpm_pkg_t *pkg);
|
int _alpm_pkg_compare_versions(alpm_pkg_t *local_pkg, alpm_pkg_t *pkg);
|
||||||
int _alpm_pkg_should_ignore(alpm_handle_t *handle, alpm_pkg_t *pkg);
|
|
||||||
|
|
||||||
#endif /* _ALPM_PACKAGE_H */
|
#endif /* _ALPM_PACKAGE_H */
|
||||||
|
|
||||||
|
|
|
@ -93,8 +93,8 @@ static int check_literal(alpm_handle_t *handle, alpm_pkg_t *lpkg,
|
||||||
_alpm_log(handle, ALPM_LOG_DEBUG, "new version of '%s' found (%s => %s)\n",
|
_alpm_log(handle, ALPM_LOG_DEBUG, "new version of '%s' found (%s => %s)\n",
|
||||||
lpkg->name, lpkg->version, spkg->version);
|
lpkg->name, lpkg->version, spkg->version);
|
||||||
/* check IgnorePkg/IgnoreGroup */
|
/* check IgnorePkg/IgnoreGroup */
|
||||||
if(_alpm_pkg_should_ignore(handle, spkg)
|
if(alpm_pkg_should_ignore(handle, spkg)
|
||||||
|| _alpm_pkg_should_ignore(handle, lpkg)) {
|
|| alpm_pkg_should_ignore(handle, lpkg)) {
|
||||||
_alpm_log(handle, ALPM_LOG_WARNING, _("%s: ignoring package upgrade (%s => %s)\n"),
|
_alpm_log(handle, ALPM_LOG_WARNING, _("%s: ignoring package upgrade (%s => %s)\n"),
|
||||||
lpkg->name, lpkg->version, spkg->version);
|
lpkg->name, lpkg->version, spkg->version);
|
||||||
} else {
|
} else {
|
||||||
|
@ -105,8 +105,8 @@ static int check_literal(alpm_handle_t *handle, alpm_pkg_t *lpkg,
|
||||||
} else if(cmp < 0) {
|
} else if(cmp < 0) {
|
||||||
if(enable_downgrade) {
|
if(enable_downgrade) {
|
||||||
/* check IgnorePkg/IgnoreGroup */
|
/* check IgnorePkg/IgnoreGroup */
|
||||||
if(_alpm_pkg_should_ignore(handle, spkg)
|
if(alpm_pkg_should_ignore(handle, spkg)
|
||||||
|| _alpm_pkg_should_ignore(handle, lpkg)) {
|
|| alpm_pkg_should_ignore(handle, lpkg)) {
|
||||||
_alpm_log(handle, ALPM_LOG_WARNING, _("%s: ignoring package downgrade (%s => %s)\n"),
|
_alpm_log(handle, ALPM_LOG_WARNING, _("%s: ignoring package downgrade (%s => %s)\n"),
|
||||||
lpkg->name, lpkg->version, spkg->version);
|
lpkg->name, lpkg->version, spkg->version);
|
||||||
} else {
|
} else {
|
||||||
|
@ -148,8 +148,8 @@ static alpm_list_t *check_replacers(alpm_handle_t *handle, alpm_pkg_t *lpkg,
|
||||||
int doreplace = 0;
|
int doreplace = 0;
|
||||||
alpm_pkg_t *tpkg;
|
alpm_pkg_t *tpkg;
|
||||||
/* check IgnorePkg/IgnoreGroup */
|
/* check IgnorePkg/IgnoreGroup */
|
||||||
if(_alpm_pkg_should_ignore(handle, spkg)
|
if(alpm_pkg_should_ignore(handle, spkg)
|
||||||
|| _alpm_pkg_should_ignore(handle, lpkg)) {
|
|| alpm_pkg_should_ignore(handle, lpkg)) {
|
||||||
_alpm_log(handle, ALPM_LOG_WARNING,
|
_alpm_log(handle, ALPM_LOG_WARNING,
|
||||||
_("ignoring package replacement (%s-%s => %s-%s)\n"),
|
_("ignoring package replacement (%s-%s => %s-%s)\n"),
|
||||||
lpkg->name, lpkg->version, spkg->name, spkg->version);
|
lpkg->name, lpkg->version, spkg->name, spkg->version);
|
||||||
|
@ -270,7 +270,7 @@ alpm_list_t SYMEXPORT *alpm_find_group_pkgs(alpm_list_t *dbs,
|
||||||
if(alpm_pkg_find(ignorelist, pkg->name)) {
|
if(alpm_pkg_find(ignorelist, pkg->name)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if(_alpm_pkg_should_ignore(db->handle, pkg)) {
|
if(alpm_pkg_should_ignore(db->handle, pkg)) {
|
||||||
ignorelist = alpm_list_add(ignorelist, pkg);
|
ignorelist = alpm_list_add(ignorelist, pkg);
|
||||||
int install = 0;
|
int install = 0;
|
||||||
QUESTION(db->handle, ALPM_QUESTION_INSTALL_IGNOREPKG, pkg,
|
QUESTION(db->handle, ALPM_QUESTION_INSTALL_IGNOREPKG, pkg,
|
||||||
|
|
Loading…
Add table
Reference in a new issue