From 5f33b818854738ff500e018d272d4e39ecaa4aab Mon Sep 17 00:00:00 2001 From: Michael Andres Date: Wed, 20 Jul 2016 13:43:56 +0200 Subject: [PATCH] Support tri-state product-endoflife (tag absent, present but nodate(0), present + date) --- ext/repo_autopattern.c | 7 +++---- ext/repo_products.c | 8 ++------ 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/ext/repo_autopattern.c b/ext/repo_autopattern.c index 4c767e16..f6e10045 100644 --- a/ext/repo_autopattern.c +++ b/ext/repo_autopattern.c @@ -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) { diff --git a/ext/repo_products.c b/ext/repo_products.c index cb69c493..326f8fd5 100644 --- a/ext/repo_products.c +++ b/ext/repo_products.c @@ -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; -- 2.47.2