+static char *
+find_releaseevr(Pool *pool)
+{
+#ifdef SUSE
+ extern char *suse_find_baseproduct_evr(Pool *);
+#endif
+ void *rpmstate;
+ char *releaseevr = 0;
+ Queue q;
+
+#ifdef SUSE
+ if ((releaseevr = suse_find_baseproduct_evr(pool)) != 0)
+ return releaseevr;
+#endif
+ queue_init(&q);
+ rpmstate = rpm_state_create(pool, pool_get_rootdir(pool));
+ rpm_installedrpmdbids(rpmstate, "Providename", "system-release", &q);
+ if (q.count)
+ {
+ void *handle;
+ char *p;
+ handle = rpm_byrpmdbid(rpmstate, q.elements[0]);
+ releaseevr = handle ? rpm_query(handle, SOLVABLE_EVR) : 0;
+ if (releaseevr && (p = strchr(releaseevr, '-')) != 0)
+ *p = 0;
+ }
+ rpm_state_free(rpmstate);
+ queue_free(&q);
+ return releaseevr;
+}
+