[pacman-dev] [PATCH] libalpm: parse {check, make}depends when reading database

morganamilo morganamilo at gmail.com
Mon Oct 8 16:34:23 UTC 2018


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 at gmail.com>

diff --git a/lib/libalpm/be_local.c b/lib/libalpm/be_local.c
index 7c2f96b8..f8c3947e 100644
--- a/lib/libalpm/be_local.c
+++ b/lib/libalpm/be_local.c
@@ -773,6 +773,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 5009a7da..af94b2d5 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) {
-- 
2.19.1


More information about the pacman-dev mailing list