From dc61fbed0ede4cf6b74fcf110d87bc9f9772bc2e Mon Sep 17 00:00:00 2001 From: Juan RP Date: Tue, 28 Feb 2012 20:39:10 +0100 Subject: [PATCH] libxbps: match required pkgdep by virtual pkg in a transaction. --- include/xbps_api.h | 4 ++-- lib/repository_finddeps.c | 20 ++++++++++++++------ 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/include/xbps_api.h b/include/xbps_api.h index 680cd61f..92f6dddf 100644 --- a/include/xbps_api.h +++ b/include/xbps_api.h @@ -56,8 +56,8 @@ */ #define XBPS_PKGINDEX_VERSION "1.4" -#define XBPS_API_VERSION "20120220" -#define XBPS_VERSION "0.13" +#define XBPS_API_VERSION "20120228" +#define XBPS_VERSION "0.14" /** * @def XBPS_RELVER diff --git a/lib/repository_finddeps.c b/lib/repository_finddeps.c index 0f9018db..0193070d 100644 --- a/lib/repository_finddeps.c +++ b/lib/repository_finddeps.c @@ -326,19 +326,27 @@ find_repo_deps(prop_dictionary_t transd, /* transaction dictionary */ } } /* - * Pass 2: check if required dependency was already added in - * the array of unsorted dependencies, and check if the pattern - * was matched. + * Pass 2: + * check if required dependency was already added + * in the transaction. + * + * 1/3: match any virtual pkg in configuration file. */ curpkgd = xbps_find_virtualpkg_conf_in_dict_by_pattern( transd, "unsorted_deps", reqpkg); if (curpkgd == NULL) { /* - * Look for a real package matching pattern - * if no match. + * 2/3: match any virtual pkg in transaction. */ - curpkgd = xbps_find_pkg_in_dict_by_pattern( + curpkgd = xbps_find_virtualpkg_in_dict_by_pattern( transd, "unsorted_deps", reqpkg); + if (curpkgd == NULL) { + /* + * 3/3: match a real pkg in transaction. + */ + curpkgd = xbps_find_pkg_in_dict_by_pattern( + transd, "unsorted_deps", reqpkg); + } } if (curpkgd != NULL) { prop_dictionary_get_cstring_nocopy(curpkgd,