summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormorganamilo <morganamilo@gmail.com>2018-10-09 02:05:15 +0100
committerAllan McRae <allan@archlinux.org>2019-01-10 14:04:59 +1000
commitf9eb2aacb4655cce5faa8a2e7295a96cab91c68c (patch)
tree7741c8a66a4f2e0c1e94ce4d19707b17808e5c5d
parent238fa4af4507c573ae4d478d1d7e176429d2c5c5 (diff)
downloadpacman-f9eb2aacb4655cce5faa8a2e7295a96cab91c68c.tar.gz
pacman-f9eb2aacb4655cce5faa8a2e7295a96cab91c68c.zip
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>
-rw-r--r--lib/libalpm/be_local.c18
-rw-r--r--lib/libalpm/be_sync.c12
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) {