]> git.ipfire.org Git - thirdparty/libsolv.git/commitdiff
add product:regflavor attribute [bnc#896224]
authorMichael Andres <ma@suse.de>
Fri, 19 Dec 2014 08:03:17 +0000 (09:03 +0100)
committerMichael Andres <ma@suse.de>
Fri, 19 Dec 2014 08:03:17 +0000 (09:03 +0100)
ext/repo_autopattern.c
ext/repo_products.c
src/knownid.h

index 5132394f579a306448e9af1ccf760a439cb50748..7edfc6ceeb2d71fd9366a02976ae28c3d0006823 100644 (file)
@@ -377,6 +377,8 @@ repo_add_autopattern(Repo *repo, int flags)
            repodata_set_str(data, s2 - pool->solvables, PRODUCT_SHORTLABEL, newname);
          else if (!strcmp(pn, "product-register-target()") && evr)
            repodata_set_str(data, s2 - pool->solvables, PRODUCT_REGISTER_TARGET, newname);
+         else if (!strcmp(pn, "product-register-flavor()") && evr)
+           repodata_set_str(data, s2 - pool->solvables, PRODUCT_REGISTER_FLAVOR, newname);
          else if (!strcmp(pn, "product-type()") && evr)
            repodata_set_str(data, s2 - pool->solvables, PRODUCT_TYPE, newname);
          else if (!strcmp(pn, "product-cpeid()") && evr)
index f7a36e11912b968b1b1bc0bdf2b9b25b9edfddb9..cb69c493cf81e6d3b40dbe12ba3381bc790756ed 100644 (file)
@@ -60,6 +60,7 @@ enum state {
   STATE_REGISTER,
   STATE_TARGET,
   STATE_REGRELEASE,
+  STATE_REGFLAVOR,
   STATE_PRODUCTLINE,
   STATE_REGUPDATES,
   STATE_REGUPDREPO,
@@ -97,6 +98,7 @@ static struct stateswitch stateswitches[] = {
   { STATE_LINGUAS,   "lang",          STATE_LANG,          0 },
   { STATE_REGISTER,  "target",        STATE_TARGET,        1 },
   { STATE_REGISTER,  "release",       STATE_REGRELEASE,    1 },
+  { STATE_REGISTER,  "flavor",        STATE_REGFLAVOR,     1 },
   { STATE_REGISTER,  "updates",       STATE_REGUPDATES,    0 },
   { STATE_REGUPDATES, "repository",   STATE_REGUPDREPO,    0 },
   { NUMSTATES }
@@ -366,6 +368,9 @@ endElement(void *userData, const char *name)
     case STATE_REGRELEASE:
       repodata_set_str(pd->data, pd->handle, PRODUCT_REGISTER_RELEASE, pd->content);
       break;
+    case STATE_REGFLAVOR:
+      repodata_set_str(pd->data, pd->handle, PRODUCT_REGISTER_FLAVOR, pd->content);
+      break;
     case STATE_CPEID:
       if (*pd->content)
         repodata_set_str(pd->data, pd->handle, SOLVABLE_CPEID, pd->content);
index 45a290f4f09277cc616e9adaec0e43ef60a52434..a2291215049f2b30f8e51b07a7f33b9926b8b865 100644 (file)
@@ -256,6 +256,8 @@ KNOWNID(SIGNATURE_TIME,                     "signature:time"),
 KNOWNID(SIGNATURE_EXPIRES,             "signature:expires"),
 KNOWNID(SIGNATURE_DATA,                        "signature:data"),
 
+KNOWNID(PRODUCT_REGISTER_FLAVOR,       "product:regflavor"),           /* installed and available product */
+
 KNOWNID(ID_NUM_INTERNAL,               0)
 
 #ifdef KNOWNID_INITIALIZE