diff mbox

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

Message ID 20181008163423.1578-1-morganamilo@gmail.com
State Superseded, archived
Delegated to: Andrew Gregory
Headers show

Commit Message

morganamilo Oct. 8, 2018, 4:34 p.m. UTC
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>
diff mbox

Patch

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) {