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).
This commit is contained in:
Michal Domonkos 2023-08-02 18:29:26 +02:00
parent dfc1484732
commit 4eff63bcb6
9 changed files with 27 additions and 193 deletions

1
.gitignore vendored
View File

@ -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

View File

@ -1,49 +0,0 @@
From 911a4f253c7213a8570028a7dc2a20b045de8e9e Mon Sep 17 00:00:00 2001
Message-ID: <911a4f253c7213a8570028a7dc2a20b045de8e9e.1687934951.git.pmatilai@redhat.com>
From: Fabian Vogt <fvogt@suse.de>
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

View File

@ -1,52 +0,0 @@
From ea3187cfcf9cac87e5bc5e7db79b0338da9e355e Mon Sep 17 00:00:00 2001
Message-ID: <ea3187cfcf9cac87e5bc5e7db79b0338da9e355e.1687844980.git.pmatilai@redhat.com>
From: Panu Matilainen <pmatilai@redhat.com>
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

View File

@ -1,33 +0,0 @@
From 7072b2d2b92e4d2731451bdcca8d83ab6b945016 Mon Sep 17 00:00:00 2001
Message-ID: <7072b2d2b92e4d2731451bdcca8d83ab6b945016.1687934969.git.pmatilai@redhat.com>
From: Panu Matilainen <pmatilai@redhat.com>
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

View File

@ -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

View File

@ -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

View File

@ -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}\"\

View File

@ -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 <mdomonko@redhat.com> - 4.18.92-1
- Update to 4.19 beta
* Tue Jul 25 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 4.18.91-9
- Drop fsverity plugin from RHEL builds

View File

@ -1 +1 @@
SHA512 (rpm-4.18.91.tar.bz2) = e3b3e9f195e16afc0596d31ad7614b8369e2b9c6835cc2739f166772d21ae71714ce99b29fded63843ab7216bb34f1c33bb69c0718383ed4bb3b9058639aa246
SHA512 (rpm-4.18.92.tar.bz2) = 0ff7fed8e2097bb72e8b4f418f2aaec1f063dca9a216b00f4bbbf7957300b0e120678e0a9a0680bb57d385227a3be19e4464cfc55702b2e9ed4e7c81d89cc77a