--- ./CMakeLists.txt_orig 2025-09-16 01:06:06.816388886 -0500 +++ ./CMakeLists.txt 2025-09-16 01:09:24.542118604 -0500 @@ -248,7 +248,7 @@ ENDIF (NOT ENABLE_RPMDB_BDB) # check if rpm contains a bundled berkeley db - CHECK_INCLUDE_FILE(rpm/db.h HAVE_RPM_DB_H) + CHECK_INCLUDE_FILE(rpm/rpmdb.h HAVE_RPM_DB_H) IF (NOT ENABLE_RPMDB_LIBRPM) IF (NOT HAVE_RPM_DB_H) FIND_LIBRARY (DB_LIBRARY NAMES db) @@ -266,6 +266,8 @@ CHECK_LIBRARY_EXISTS(rpm rpmdbNextIteratorHeaderBlob "" HAVE_RPMDBNEXTITERATORHEADERBLOB) CHECK_LIBRARY_EXISTS(rpm rpmdbFStat "" HAVE_RPMDBFSTAT) ENDIF (ENABLE_RPMDB OR ENABLE_RPMPKG_LIBRPM) + +SET(RPMDB_LIBRARY /usr/opt/rpm/lib/librpmio.a /usr/opt/rpm/lib/librpm.a) IF (ENABLE_PUBKEY) SET (ENABLE_PGPVRFY ON) --- ./ext/repo_autopattern.c_orig 2025-09-16 01:09:55.786649392 -0500 +++ ./ext/repo_autopattern.c 2025-09-16 01:10:27.273692703 -0500 @@ -79,7 +79,7 @@ if (!p || *p) return 0; } - return timegm(&tm); + return mktime(&tm); } /* we just look at the repodata keys and do not iterate --- ./ext/repo_updateinfoxml.c_orig 2025-09-16 02:06:44.162147869 -0500 +++ ./ext/repo_updateinfoxml.c 2025-09-16 02:07:23.821116430 -0500 @@ -135,7 +135,7 @@ memset(&tm, 0, sizeof(tm)); if (!strptime(date, "%F%T", &tm)) return 0; - return timegm(&tm); + return mktime(&tm); } /* --- ./src/poolvendor.c_orig 2025-09-16 01:11:28.338498020 -0500 +++ ./src/poolvendor.c 2025-09-16 01:12:08.636963708 -0500 @@ -65,7 +65,7 @@ break; /* sorry, out of bits */ m <<= 1; /* next vendor equivalence class */ } - if (fnmatch(*vs == '!' ? vs + 1 : vs, vstr, FNM_CASEFOLD) == 0) + if (fnmatch(*vs == '!' ? vs + 1 : vs, vstr, 0) == 0) { if (*vs != '!') mask |= m; --- ./src/repodata.c_orig 2025-09-16 01:12:41.398965529 -0500 +++ ./src/repodata.c 2025-09-16 01:15:06.192643015 -0500 @@ -42,6 +42,20 @@ static unsigned char *data_skip_key(Repodata *data, unsigned char *dp, Repokey *key); +#ifndef HAVE_STRCASESTR +const char *strcasestr(const char *a, const char *b) +{ + size_t l; + char f[3]; + + snprintf(f, sizeof(f), "%c%c", tolower(*b), toupper(*b)); + for (l = strcspn(a, f); l != strlen(a); l += strcspn(a + l + 1, f) + 1) + if (strncasecmp(a + l, b, strlen(b)) == 0) + return(a + l); + return(NULL); + } +#endif + void repodata_initdata(Repodata *data, Repo *repo, int localpool) { @@ -1468,7 +1482,7 @@ else return !strcmp(ma->match, str + l); case SEARCH_GLOB: - return !fnmatch(ma->match, str, (ma->flags & SEARCH_NOCASE) ? FNM_CASEFOLD : 0); + return !fnmatch(ma->match, str, (ma->flags & SEARCH_NOCASE) ? 0 : 0); case SEARCH_REGEX: return !regexec((const regex_t *)ma->matchdata, str, 0, NULL, 0); default: --- ./src/selection.c_orig 2025-09-16 01:15:55.352146117 -0500 +++ ./src/selection.c 2025-09-16 01:17:11.572127166 -0500 @@ -503,7 +503,7 @@ nocase = flags & SELECTION_NOCASE; doglob = (flags & SELECTION_GLOB) != 0 && strpbrk(name, "[*?") != 0; - globflags = doglob && nocase ? FNM_CASEFOLD : 0; + globflags = doglob && nocase ? 0 : 0; FOR_POOL_SOLVABLES(p) { @@ -626,7 +626,7 @@ /* looks like a glob or nocase match. really hard work. */ match = 0; - globflags = doglob && nocase ? FNM_CASEFOLD : 0; + globflags = doglob && nocase ? 0 : 0; for (id = 1; id < pool->ss.nstrings; id++) { /* do we habe packages providing this id? */ @@ -783,7 +783,7 @@ /* do a name match over all packages. hard work. */ match = 0; - globflags = doglob && nocase ? FNM_CASEFOLD : 0; + globflags = doglob && nocase ? 0 : 0; FOR_POOL_SOLVABLES(p) { Solvable *s = pool->solvables + p; @@ -1404,7 +1404,7 @@ return 0; if (flags & SELECTION_GLOB) { - int globflags = (flags & SELECTION_NOCASE) != 0 ? FNM_CASEFOLD : 0; + int globflags = (flags & SELECTION_NOCASE) != 0 ? 0 : 0; return fnmatch(pattern, string, globflags) == 0 ? 1 : 0; } if (flags & SELECTION_NOCASE) --- ./ext/solv_xfopen.c_orig 2025-09-16 01:18:07.612530367 -0500 +++ ./ext/solv_xfopen.c 2025-09-16 01:19:06.974798580 -0500 @@ -49,7 +49,7 @@ cio.close = cclose; return fopencookie(cookie, *mode == 'w' ? "w" : "r", cio); #else -# error Need to implement custom I/O +/* # error Need to implement custom I/O */ #endif } --- ./ext/repo_products.c_orig 2025-09-16 01:19:37.621325460 -0500 +++ ./ext/repo_products.c 2025-09-16 01:20:04.172131931 -0500 @@ -141,7 +141,7 @@ if (!p || *p) return 0; } - return timegm(&tm); + return mktime(&tm); } static void