From 4eff63bcb67afc2cb8d95a9715949a746dbc8daa Mon Sep 17 00:00:00 2001 From: Michal Domonkos Date: Aug 02 2023 16:32:31 +0000 Subject: Update to 4.19 beta Also remove the already noop %check support altogether as the new test-suite backend currently doesn't support running inside a mock buildroot (this may change in the future, in which case we'll add it back). --- diff --git a/.gitignore b/.gitignore index a1653d0..f525cc7 100644 --- a/.gitignore +++ b/.gitignore @@ -58,3 +58,4 @@ /rpm-4.18.1.tar.bz2 /rpm-4.18.90.tar.bz2 /rpm-4.18.91.tar.bz2 +/rpm-4.18.92.tar.bz2 diff --git a/0001-Actually-return-an-error-in-parseScript-if-parsing-f.patch b/0001-Actually-return-an-error-in-parseScript-if-parsing-f.patch deleted file mode 100644 index 0f3ddf6..0000000 --- a/0001-Actually-return-an-error-in-parseScript-if-parsing-f.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 911a4f253c7213a8570028a7dc2a20b045de8e9e Mon Sep 17 00:00:00 2001 -Message-ID: <911a4f253c7213a8570028a7dc2a20b045de8e9e.1687934951.git.pmatilai@redhat.com> -From: Fabian Vogt -Date: Mon, 26 Jun 2023 16:28:07 +0200 -Subject: [PATCH] Actually return an error in parseScript if parsing fails - -The return value is stored in the "res" variable which is set to the return -value of parseLines early in the function. Past that point, any "goto exit;" -caused the function to return success. This was introduced by 52ce88851abb -("Port parseScript() to use parseLines(), no functional changes"). To fix it, -reintroduce the nextPart variable. ---- - build/parseScript.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/build/parseScript.c b/build/parseScript.c -index f8b693ac6..6f3dc2fe8 100644 ---- a/build/parseScript.c -+++ b/build/parseScript.c -@@ -95,7 +95,7 @@ int parseScript(rpmSpec spec, int parsePart) - int index; - char * reqargs = NULL; - -- int res = PART_ERROR; /* assume failure */ -+ int nextPart, res = PART_ERROR; /* assume failure */ - int rc, argc; - int arg; - const char **argv = NULL; -@@ -367,7 +367,7 @@ int parseScript(rpmSpec spec, int parsePart) - goto exit; - } - -- if ((res = parseLines(spec, STRIP_NOTHING, NULL, &sb)) == PART_ERROR) -+ if ((nextPart = parseLines(spec, STRIP_NOTHING, NULL, &sb)) == PART_ERROR) - goto exit; - - if (sb) { -@@ -479,6 +479,8 @@ int parseScript(rpmSpec spec, int parsePart) - } - } - -+ res = nextPart; -+ - exit: - free(reqargs); - freeStringBuf(sb); --- -2.41.0 - diff --git a/0001-Don-t-muck-with-per-process-global-sqlite-configurat.patch b/0001-Don-t-muck-with-per-process-global-sqlite-configurat.patch deleted file mode 100644 index b3f3b65..0000000 --- a/0001-Don-t-muck-with-per-process-global-sqlite-configurat.patch +++ /dev/null @@ -1,52 +0,0 @@ -From ea3187cfcf9cac87e5bc5e7db79b0338da9e355e Mon Sep 17 00:00:00 2001 -Message-ID: -From: Panu Matilainen -Date: Mon, 26 Jun 2023 12:45:09 +0300 -Subject: [PATCH] Don't muck with per-process global sqlite configuration from - the db backend - -sqlite3_config() affects all in-process uses of sqlite. librpm being a -low-level library, it has no business whatsoever making such decisions -for the applications running on top of it. Besides that, the callback can -easily end up pointing to an already closed database, causing an -innocent API user to crash in librpm on an entirely unrelated error on -some other database. "Oops." - -The sqlite API doesn't seem to provide any per-db or non-global context -for logging errors, thus we can only remove the call and let sqlite output -errors the way it pleases (print through stderr, presumably). - -Thanks to Jan Palus for spotting and reporting! ---- - lib/backend/sqlite.c | 8 -------- - 1 file changed, 8 deletions(-) - -diff --git a/lib/backend/sqlite.c b/lib/backend/sqlite.c -index 5a029d575..b61273226 100644 ---- a/lib/backend/sqlite.c -+++ b/lib/backend/sqlite.c -@@ -44,13 +44,6 @@ static void rpm_match3(sqlite3_context *sctx, int argc, sqlite3_value **argv) - sqlite3_result_int(sctx, match); - } - --static void errCb(void *data, int err, const char *msg) --{ -- rpmdb rdb = data; -- rpmlog(RPMLOG_WARNING, "%s: %s: %s\n", -- rdb->db_descr, sqlite3_errstr(err), msg); --} -- - static int dbiCursorReset(dbiCursor dbc) - { - if (dbc->stmt) { -@@ -170,7 +163,6 @@ static int sqlite_init(rpmdb rdb, const char * dbhome) - * the "database is locked" errors at every cost - */ - sqlite3_busy_timeout(sdb, 10000); -- sqlite3_config(SQLITE_CONFIG_LOG, errCb, rdb); - - sqlexec(sdb, "PRAGMA secure_delete = OFF"); - sqlexec(sdb, "PRAGMA case_sensitive_like = ON"); --- -2.41.0 - diff --git a/0001-Fix-per-file-plugin-hook-regression-introduced-in-4..patch b/0001-Fix-per-file-plugin-hook-regression-introduced-in-4..patch deleted file mode 100644 index d394904..0000000 --- a/0001-Fix-per-file-plugin-hook-regression-introduced-in-4..patch +++ /dev/null @@ -1,33 +0,0 @@ -From 7072b2d2b92e4d2731451bdcca8d83ab6b945016 Mon Sep 17 00:00:00 2001 -Message-ID: <7072b2d2b92e4d2731451bdcca8d83ab6b945016.1687934969.git.pmatilai@redhat.com> -From: Panu Matilainen -Date: Tue, 20 Jun 2023 10:11:20 +0300 -Subject: [PATCH] Fix per-file plugin hook regression introduced in 4.18 - -Commit 6dd62720fe84f7e2ad902c915b952fc0b29e3dcd neglected to update -rpmpluginsCallFsmFilePost() to pass the absolute path in the case -of unowned directories. Because in that case there's no rpmfi to -pass to the plugin in that case, there's simply no way for the plugin -to know what path is being manipulated. Oops. - -Fixes: #2543 ---- - lib/fsm.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lib/fsm.c b/lib/fsm.c -index 747ed2b09..c44f6313c 100644 ---- a/lib/fsm.c -+++ b/lib/fsm.c -@@ -360,7 +360,7 @@ static int fsmDoMkDir(rpmPlugins plugins, int dirfd, const char *dn, - } - - /* Run fsm file post hook for all plugins */ -- rpmpluginsCallFsmFilePost(plugins, NULL, dn, mode, op, rc); -+ rpmpluginsCallFsmFilePost(plugins, NULL, apath, mode, op, rc); - - if (!rc) { - rpmlog(RPMLOG_DEBUG, --- -2.41.0 - diff --git a/rpm-4.18.90-disable-sysusers.patch b/rpm-4.18.90-disable-sysusers.patch deleted file mode 100644 index edf8f4f..0000000 --- a/rpm-4.18.90-disable-sysusers.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-4.18.90/macros.in.orig 2023-04-17 14:44:14.186653076 +0200 -+++ rpm-4.18.90/macros.in 2023-04-17 14:46:25.190322631 +0200 -@@ -133,7 +133,7 @@ - %_keyringpath %{_dbpath}/pubkeys/ - - # sysusers helper binary or script, uncomment to disable --%__systemd_sysusers %{_bindir}/systemd-sysusers -+# %__systemd_sysusers %{_bindir}/systemd-sysusers - - # - # Path to script that creates debug symbols in a /usr/lib/debug diff --git a/rpm-4.18.92-disable-sysusers.patch b/rpm-4.18.92-disable-sysusers.patch new file mode 100644 index 0000000..80582a5 --- /dev/null +++ b/rpm-4.18.92-disable-sysusers.patch @@ -0,0 +1,12 @@ +diff -up rpm-4.18.92/macros.in.orig rpm-4.18.92/macros.in +--- rpm-4.18.92/macros.in.orig 2023-08-02 17:56:49.858065935 +0200 ++++ rpm-4.18.92/macros.in 2023-08-02 17:57:01.967988065 +0200 +@@ -138,7 +138,7 @@ + + # sysusers helper binary (or a replacement script), uncomment to disable + #%__systemd_sysusers @__SYSTEMD_SYSUSERS@ +-%__systemd_sysusers %{_rpmconfigdir}/sysusers.sh ++#%__systemd_sysusers %{_rpmconfigdir}/sysusers.sh + + # + # Path to script that creates debug symbols in a /usr/lib/debug diff --git a/rpm-4.18.x-ldflags.patch b/rpm-4.18.x-ldflags.patch deleted file mode 100644 index 594627c..0000000 --- a/rpm-4.18.x-ldflags.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff -up rpm-4.18.1/macros.in.orig rpm-4.18.1/macros.in ---- rpm-4.18.1/macros.in.orig 2023-03-15 13:57:06.385361527 +0100 -+++ rpm-4.18.1/macros.in 2023-03-15 13:58:09.613971713 +0100 -@@ -750,11 +750,12 @@ package or when debugging this package.\ - RPM_SOURCE_DIR=\"%{_sourcedir}\"\ - RPM_BUILD_DIR=\"%{_builddir}\"\ - RPM_OPT_FLAGS=\"%{optflags}\"\ -+ RPM_LD_FLAGS=\"%{?build_ldflags}\"\ - RPM_ARCH=\"%{_arch}\"\ - RPM_OS=\"%{_os}\"\ - RPM_BUILD_NCPUS=\"%{_smp_build_ncpus}\"\ - RPM_SPECPARTS_DIR=\"%{specpartsdir}\"\ -- export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_ARCH RPM_OS RPM_BUILD_NCPUS RPM_SPECPARTS_DIR\ -+ export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_ARCH RPM_OS RPM_BUILD_NCPUS RPM_SPECPARTS_DIR RPM_LD_FLAGS\ - RPM_DOC_DIR=\"%{_docdir}\"\ - export RPM_DOC_DIR\ - RPM_PACKAGE_NAME=\"%{NAME}\"\ diff --git a/rpm.spec b/rpm.spec index c8a9d75..c9c1ea7 100644 --- a/rpm.spec +++ b/rpm.spec @@ -1,12 +1,3 @@ - -# run internal testsuite? -# fakechroot is severely broken beyond fedora 33, disable... -%if 0%{?fedora} > 33 || 0%{?rhel} > 8 -%bcond_with check -%else -%bcond_without check -%endif - # build against xz? %bcond_without xz # build with plugins? @@ -34,9 +25,9 @@ %define rpmhome /usr/lib/rpm -%global rpmver 4.18.91 +%global rpmver 4.18.92 #global snapver rc1 -%global baserelease 9 +%global baserelease 1 %global sover 10 %global srcver %{rpmver}%{?snapver:-%{snapver}} @@ -64,11 +55,6 @@ Requires: curl Conflicts: systemd < 253.5-6 Obsoletes: python2-rpm < %{version}-%{release} -%if %{with check} -BuildRequires: fakechroot gnupg2 -BuildRequires: debugedit >= 0.3 -%endif - # XXX generally assumed to be installed but make it explicit as rpm # is a bit special... BuildRequires: redhat-rpm-config >= 94 @@ -149,19 +135,14 @@ rpm-4.18.x-siteconfig.patch rpm-4.9.90-no-man-dirs.patch # Disable new user/group handling -rpm-4.18.90-disable-sysusers.patch +rpm-4.18.92-disable-sysusers.patch rpm-4.18.90-weak-user-group.patch # Patches already upstream: -0001-Don-t-muck-with-per-process-global-sqlite-configurat.patch -0001-Actually-return-an-error-in-parseScript-if-parsing-f.patch -0001-Fix-per-file-plugin-hook-regression-introduced-in-4..patch # ... # These are not yet upstream rpm-4.7.1-geode-i686.patch -# Probably to be upstreamed in slightly different form -rpm-4.18.x-ldflags.patch %description The RPM Package Manager (RPM) is a powerful command line driven @@ -406,6 +387,9 @@ install -m 644 %{SOURCE20} $RPM_BUILD_ROOT/%{_unitdir} mkdir -p $RPM_BUILD_ROOT%{rpmhome} install -m 755 %{SOURCE21} $RPM_BUILD_ROOT/%{rpmhome} +# Built-in replacement for systemd-sysusers(8) +install -m 755 scripts/sysusers.sh $RPM_BUILD_ROOT/%{rpmhome} + # Save list of packages through cron mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/cron.daily install -m 755 scripts/rpm.daily ${RPM_BUILD_ROOT}%{_sysconfdir}/cron.daily/rpm @@ -437,14 +421,6 @@ rm -f $RPM_BUILD_ROOT/%{rpmhome}/{perldeps.pl,perl.*,pythond*} rm -f $RPM_BUILD_ROOT/%{_fileattrsdir}/{perl*,python*} rm -rf $RPM_BUILD_ROOT/var/tmp -%if %{with check} -%check -cd _build -make check TESTSUITEFLAGS=-j%{_smp_build_ncpus} || (cat tests/rpmtests.log; exit 1) -# rpm >= 4.16.0 testsuite leaves a read-only tree behind, clean it up -make clean -%endif - %pre # Symlink all rpmdb files to the new location if we're still using /var/lib/rpm if [ -d /var/lib/rpm ]; then @@ -520,6 +496,7 @@ fi %{rpmhome}/tgpg %{rpmhome}/platform +%{rpmhome}/sysusers.sh %dir %{rpmhome}/fileattrs @@ -616,6 +593,9 @@ fi %{python3_sitearch}/rpm/_rpm.so %artifact %{python3_sitearch}/rpm/__pycache__/ +# Python examples +%{_defaultdocdir}/rpm/examples/*.py + %files devel %{_mandir}/man8/rpmgraph.8* %{_bindir}/rpmgraph @@ -632,6 +612,9 @@ fi %doc %{_defaultdocdir}/rpm/API/ %changelog +* Wed Aug 02 2023 Michal Domonkos - 4.18.92-1 +- Update to 4.19 beta + * Tue Jul 25 2023 Yaakov Selkowitz - 4.18.91-9 - Drop fsverity plugin from RHEL builds diff --git a/sources b/sources index c2b30d5..8a69fef 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (rpm-4.18.91.tar.bz2) = e3b3e9f195e16afc0596d31ad7614b8369e2b9c6835cc2739f166772d21ae71714ce99b29fded63843ab7216bb34f1c33bb69c0718383ed4bb3b9058639aa246 +SHA512 (rpm-4.18.92.tar.bz2) = 0ff7fed8e2097bb72e8b4f418f2aaec1f063dca9a216b00f4bbbf7957300b0e120678e0a9a0680bb57d385227a3be19e4464cfc55702b2e9ed4e7c81d89cc77a