]> git.ipfire.org Git - thirdparty/libsolv.git/commitdiff
Support SOLVABLE_BUILDHOST in rpm and rpmmd parsers
authorMichael Schroeder <mls@suse.de>
Thu, 10 Sep 2020 13:17:12 +0000 (15:17 +0200)
committerMichael Schroeder <mls@suse.de>
Thu, 10 Sep 2020 13:17:57 +0000 (15:17 +0200)
Fixes issue #400

ext/repo_rpmdb.c
ext/repo_rpmmd.c

index ed9862815cc10c37a43b07bfa9ded98bd071cadc..67ce81daf1e4ef2e5b6f7bdf8e4a03d393b72991 100644 (file)
@@ -1189,6 +1189,9 @@ rpmhead2solv(Pool *pool, Repo *repo, Repodata *data, Solvable *s, RpmHead *rpmhe
       u32 = headint32(rpmhead, TAG_BUILDTIME);
       if (u32)
         repodata_set_num(data, handle, SOLVABLE_BUILDTIME, u32);
+      str = headstring(rpmhead, TAG_BUILDHOST);
+      if (str)
+       repodata_set_str(data, handle, SOLVABLE_BUILDHOST, str);
       u32 = headint32(rpmhead, TAG_INSTALLTIME);
       if (u32)
         repodata_set_num(data, handle, SOLVABLE_INSTALLTIME, u32);
index 9bb50a05a484e451050be023a01c1d2b5cb1d25e..1232e4337cfa04d6dad4e3323d164e1c5a6d7990 100644 (file)
@@ -96,6 +96,7 @@ enum state {
   STATE_FRESHENS,
   STATE_SOURCERPM,
   STATE_HEADERRANGE,
+  STATE_BUILDHOST,
 
   STATE_PROVIDESENTRY,
   STATE_REQUIRESENTRY,
@@ -196,6 +197,7 @@ static struct solv_xmlparser_element stateswitches[] = {
   { STATE_SOLVABLE,    "rpm:freshens",    STATE_FRESHENS,     0 },
   { STATE_SOLVABLE,    "rpm:sourcerpm",   STATE_SOURCERPM,    1 },
   { STATE_SOLVABLE,    "rpm:header-range", STATE_HEADERRANGE, 0 },
+  { STATE_SOLVABLE,    "rpm:buildhost",   STATE_BUILDHOST,    1 },
   { STATE_SOLVABLE,    "file",            STATE_FILE, 1 },
   { STATE_SOLVABLE,    "changelog",       STATE_CHANGELOG, 1 },
 
@@ -1036,6 +1038,10 @@ endElement(struct solv_xmlparser *xmlp, int state, char *content)
       if (*content)
        repodata_set_poolstr(pd->data, handle, SOLVABLE_PACKAGER, content);
       break;
+    case STATE_BUILDHOST:
+      if (*content)
+       repodata_set_str(pd->data, handle, SOLVABLE_BUILDHOST, content);
+      break;
     case STATE_SOURCERPM:
       if (*content)
        repodata_set_sourcepkg(pd->data, handle, content);