From f340b294aac54934ac3cecb8b9376a87eadf9982 Mon Sep 17 00:00:00 2001 From: renxichen Date: Tue, 5 Sep 2023 19:20:09 +0800 Subject: [PATCH] Fix the coredump which may occur during upgrading of rpm --- rpm.spec | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/rpm.spec b/rpm.spec index 4dc2241..a9614f5 100644 --- a/rpm.spec +++ b/rpm.spec @@ -1,6 +1,6 @@ Name: rpm Version: 4.18.1 -Release: 5 +Release: 6 Summary: RPM Package Manager License: GPLv2+ URL: http://www.rpm.org/ @@ -158,6 +158,19 @@ done; mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/cron.daily install -m 755 scripts/rpm.daily ${RPM_BUILD_ROOT}%{_sysconfdir}/cron.daily/rpm +# During the upgrade of the major rpm version, the dynamic library may not be compatible. +# Therefore, ensure that no other rpm command is executed during the upgrade. A judgment +# is added to the RPM script of the scheduled task. If the dynamic library is not the +# dynamic library of the current version, exits directly. +pushd ${RPM_BUILD_ROOT}%{_libdir} +export SONAME=`ls librpm.so.*.*.*` +popd +sed -i "/bin\/sh/a \ +if [ ! -e %{_libdir}\/${SONAME} ]; then\n\ + exit 0\n\ +fi" ${RPM_BUILD_ROOT}%{_sysconfdir}/cron.daily/rpm +cp ${RPM_BUILD_ROOT}%{_sysconfdir}/cron.daily/rpm ${RPM_BUILD_ROOT}%{_rpmconfigdir}/rpm.daily + mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d install -m 644 scripts/rpm.log ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/rpm @@ -310,6 +323,9 @@ make clean %exclude %{_mandir}/man8/rpmspec.8.gz %changelog +* Tue Sep 05 2023 renhongxun - 4.18.1-6 +- Fix the coredump which may occur during upgrading of rpm + * Tue Sep 5 2023 hongjinghao - 4.18.1-5 - Fix a segfault on a non-stringable argument to macro call from Lua