Re: [pacman-dev] [PATCH 2/4] libalpm: resolvedep(): don't compare names twice

2019-10-06 Thread Allan McRae
On 9/9/19 7:45 am, morganamilo wrote:
> If we failed to get the pkg from pkgcache then we know no satisfying
> package exists by name. So only compare provides.
> ---
>  lib/libalpm/deps.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 

Thanks.  Applied.

> diff --git a/lib/libalpm/deps.c b/lib/libalpm/deps.c
> index ce7869c3..322c4e7e 100644
> --- a/lib/libalpm/deps.c
> +++ b/lib/libalpm/deps.c
> @@ -698,7 +698,8 @@ static alpm_pkg_t *resolvedep(alpm_handle_t *handle, 
> alpm_depend_t *dep,
>   for(j = _alpm_db_get_pkgcache(db); j; j = j->next) {
>   alpm_pkg_t *pkg = j->data;
>   if((pkg->name_hash != dep->name_hash || 
> strcmp(pkg->name, dep->name) != 0)
> - && _alpm_depcmp(pkg, dep) && 
> !alpm_pkg_find(excluding, pkg->name)) {
> + && _alpm_depcmp_provides(dep, 
> alpm_pkg_get_provides(pkg))
> + && !alpm_pkg_find(excluding, 
> pkg->name)) {
>   if(alpm_pkg_should_ignore(handle, pkg)) {
>   alpm_question_install_ignorepkg_t 
> question = {
>   .type = 
> ALPM_QUESTION_INSTALL_IGNOREPKG,
> 


Re: [pacman-dev] [PATCH 2/4] libalpm: resolvedep(): don't compare names twice

2019-09-10 Thread Andrew Gregory
On 09/08/19 at 10:45pm, morganamilo wrote:
> If we failed to get the pkg from pkgcache then we know no satisfying
> package exists by name. So only compare provides.
> ---
>  lib/libalpm/deps.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/libalpm/deps.c b/lib/libalpm/deps.c
> index ce7869c3..322c4e7e 100644
> --- a/lib/libalpm/deps.c
> +++ b/lib/libalpm/deps.c
> @@ -698,7 +698,8 @@ static alpm_pkg_t *resolvedep(alpm_handle_t *handle, 
> alpm_depend_t *dep,
>   for(j = _alpm_db_get_pkgcache(db); j; j = j->next) {
>   alpm_pkg_t *pkg = j->data;
>   if((pkg->name_hash != dep->name_hash || 
> strcmp(pkg->name, dep->name) != 0)

Unrelated to this patch, but we probably shouldn't be filtering out
name matches here.  A package could provide a different version of
itself.

> - && _alpm_depcmp(pkg, dep) && 
> !alpm_pkg_find(excluding, pkg->name)) {
> + && _alpm_depcmp_provides(dep, 
> alpm_pkg_get_provides(pkg))
> + && !alpm_pkg_find(excluding, 
> pkg->name)) {
>   if(alpm_pkg_should_ignore(handle, pkg)) {
>   alpm_question_install_ignorepkg_t 
> question = {
>   .type = 
> ALPM_QUESTION_INSTALL_IGNOREPKG,
> -- 
> 2.23.0


[pacman-dev] [PATCH 2/4] libalpm: resolvedep(): don't compare names twice

2019-09-08 Thread morganamilo
If we failed to get the pkg from pkgcache then we know no satisfying
package exists by name. So only compare provides.
---
 lib/libalpm/deps.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/libalpm/deps.c b/lib/libalpm/deps.c
index ce7869c3..322c4e7e 100644
--- a/lib/libalpm/deps.c
+++ b/lib/libalpm/deps.c
@@ -698,7 +698,8 @@ static alpm_pkg_t *resolvedep(alpm_handle_t *handle, 
alpm_depend_t *dep,
for(j = _alpm_db_get_pkgcache(db); j; j = j->next) {
alpm_pkg_t *pkg = j->data;
if((pkg->name_hash != dep->name_hash || 
strcmp(pkg->name, dep->name) != 0)
-   && _alpm_depcmp(pkg, dep) && 
!alpm_pkg_find(excluding, pkg->name)) {
+   && _alpm_depcmp_provides(dep, 
alpm_pkg_get_provides(pkg))
+   && !alpm_pkg_find(excluding, 
pkg->name)) {
if(alpm_pkg_should_ignore(handle, pkg)) {
alpm_question_install_ignorepkg_t 
question = {
.type = 
ALPM_QUESTION_INSTALL_IGNOREPKG,
-- 
2.23.0