]> git.ipfire.org Git - thirdparty/libsolv.git/commitdiff
Support tri-state product-endoflife (tag absent, present but nodate(0), present ... 147/head
authorMichael Andres <ma@suse.de>
Wed, 20 Jul 2016 11:43:56 +0000 (13:43 +0200)
committerMichael Andres <ma@suse.de>
Wed, 20 Jul 2016 11:43:56 +0000 (13:43 +0200)
ext/repo_autopattern.c
ext/repo_products.c

index 4c767e164c67c70959229de0fca314c6f8fb50c7..f6e1004577f865a8b820bff71da3cc07358c1b7e 100644 (file)
@@ -396,11 +396,10 @@ repo_add_autopattern(Repo *repo, int flags)
              repodata_set_str(data, h, PRODUCT_UPDATES_REPOID, newname);
              repodata_add_flexarray(data, s2 - pool->solvables, PRODUCT_UPDATES, h);
            }
-         else if (!strcmp(pn, "product-endoflife()") && evr)
+         else if (!strcmp(pn, "product-endoflife()"))
            {
-             time_t t = datestr2timestamp(newname);
-             if (t)
-               repodata_set_num(data, s2 - pool->solvables, PRODUCT_ENDOFLIFE, t);
+             /* FATE#320699: Support tri-state product-endoflife (tag absent, present but nodate(0), present + date) */
+             repodata_set_num(data, s2 - pool->solvables, PRODUCT_ENDOFLIFE,(evr ? datestr2timestamp(newname) : 0) );
            }
          else if (!strncmp(pn, "product-url(", 12) && evr && pn[12] && pn[13] && strlen(pn + 12) < 32)
            {
index cb69c493cf81e6d3b40dbe12ba3381bc790756ed..326f8fd56326af8d55504a4efb40dc3a70ca3ade 100644 (file)
@@ -376,12 +376,8 @@ endElement(void *userData, const char *name)
         repodata_set_str(pd->data, pd->handle, SOLVABLE_CPEID, pd->content);
       break;
     case STATE_ENDOFLIFE:
-      if (*pd->content)
-       {
-         time_t t = datestr2timestamp(pd->content);
-         if (t)
-           repodata_set_num(pd->data, pd->handle, PRODUCT_ENDOFLIFE, (unsigned long long)t);
-       }
+      /* FATE#320699: Support tri-state product-endoflife (tag absent, present but nodate(0), present + date) */
+      repodata_set_num(pd->data, pd->handle, PRODUCT_ENDOFLIFE, (*pd->content ? datestr2timestamp(pd->content) : 0));
       break;
     default:
       break;