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