diff options
author | morganamilo <morganamilo@gmail.com> | 2018-10-09 02:05:15 +0100 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2019-01-10 14:04:59 +1000 |
commit | f9eb2aacb4655cce5faa8a2e7295a96cab91c68c (patch) | |
tree | 7741c8a66a4f2e0c1e94ce4d19707b17808e5c5d /lib | |
parent | 238fa4af4507c573ae4d478d1d7e176429d2c5c5 (diff) | |
download | pacman-f9eb2aacb4655cce5faa8a2e7295a96cab91c68c.tar.xz |
libalpm: parse {check, make}depends when reading database
Commit 0994893b0e6b627d45a63884ac01af7d0967eff2 added the
alpm_pkg_get_{make,check}depends functions but forgot to include
logic for parsing these fields from the database. As a result these
functions will always return an empty list.
This commit adds the parsing logic.
Signed-off-by: morganamilo <morganamilo@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libalpm/be_local.c | 18 | ||||
-rw-r--r-- | lib/libalpm/be_sync.c | 12 |
2 files changed, 20 insertions, 10 deletions
diff --git a/lib/libalpm/be_local.c b/lib/libalpm/be_local.c index 7c2f96b8..194e818b 100644 --- a/lib/libalpm/be_local.c +++ b/lib/libalpm/be_local.c @@ -153,6 +153,18 @@ static alpm_list_t *_cache_get_optdepends(alpm_pkg_t *pkg) return pkg->optdepends; } +static alpm_list_t *_cache_get_makedepends(alpm_pkg_t *pkg) +{ + LAZY_LOAD(INFRQ_DESC); + return pkg->makedepends; +} + +static alpm_list_t *_cache_get_checkdepends(alpm_pkg_t *pkg) +{ + LAZY_LOAD(INFRQ_DESC); + return pkg->checkdepends; +} + static alpm_list_t *_cache_get_conflicts(alpm_pkg_t *pkg) { LAZY_LOAD(INFRQ_DESC); @@ -318,6 +330,8 @@ static struct pkg_operations local_pkg_ops = { .get_groups = _cache_get_groups, .get_depends = _cache_get_depends, .get_optdepends = _cache_get_optdepends, + .get_makedepends = _cache_get_makedepends, + .get_checkdepends = _cache_get_checkdepends, .get_conflicts = _cache_get_conflicts, .get_provides = _cache_get_provides, .get_replaces = _cache_get_replaces, @@ -773,6 +787,10 @@ static int local_db_read(alpm_pkg_t *info, int inforeq) READ_AND_SPLITDEP(info->depends); } else if(strcmp(line, "%OPTDEPENDS%") == 0) { READ_AND_SPLITDEP(info->optdepends); + } else if(strcmp(line, "%MAKEDEPENDS%") == 0) { + READ_AND_SPLITDEP(info->makedepends); + } else if(strcmp(line, "%CHECKDEPENDS%") == 0) { + READ_AND_SPLITDEP(info->checkdepends); } else if(strcmp(line, "%CONFLICTS%") == 0) { READ_AND_SPLITDEP(info->conflicts); } else if(strcmp(line, "%PROVIDES%") == 0) { diff --git a/lib/libalpm/be_sync.c b/lib/libalpm/be_sync.c index 4a4be548..deaec27c 100644 --- a/lib/libalpm/be_sync.c +++ b/lib/libalpm/be_sync.c @@ -700,17 +700,9 @@ static int sync_db_read(alpm_db_t *db, struct archive *archive, } else if(strcmp(line, "%OPTDEPENDS%") == 0) { READ_AND_SPLITDEP(pkg->optdepends); } else if(strcmp(line, "%MAKEDEPENDS%") == 0) { - /* currently unused */ - while(1) { - READ_NEXT(); - if(strlen(line) == 0) break; - } + READ_AND_SPLITDEP(pkg->makedepends); } else if(strcmp(line, "%CHECKDEPENDS%") == 0) { - /* currently unused */ - while(1) { - READ_NEXT(); - if(strlen(line) == 0) break; - } + READ_AND_SPLITDEP(pkg->checkdepends); } else if(strcmp(line, "%CONFLICTS%") == 0) { READ_AND_SPLITDEP(pkg->conflicts); } else if(strcmp(line, "%PROVIDES%") == 0) { |