Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package rpm for openSUSE:Factory checked in at 2025-04-27 22:54:05 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rpm (Old) and /work/SRC/openSUSE:Factory/.rpm.new.30101 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rpm" Sun Apr 27 22:54:05 2025 rev:322 rq:1272673 version:4.20.1 Changes: -------- --- /work/SRC/openSUSE:Factory/rpm/rpm.changes 2025-03-31 11:39:20.826630926 +0200 +++ /work/SRC/openSUSE:Factory/.rpm.new.30101/rpm.changes 2025-04-27 22:54:07.707717966 +0200 @@ -1,0 +2,15 @@ +Fri Apr 25 11:29:35 CEST 2025 - m...@suse.de + +- print scriptlet messages in --runposttrans + * needed to fix leaking tmp files [bsc#1218459] + * updated patch: posttrans.diff +- backport architecture check fix from upstream + * new patch: archcheck.diff +- backport empty password fix from upstream + * new patch: emptypw.diff +- backport buildsys specific prep fix from upstream + * new patch: buildsysprep.diff +- fix memory leak in str2locale [bsc#1241052] + * updated patch: localetag.diff + +------------------------------------------------------------------- New: ---- archcheck.diff buildsysprep.diff emptypw.diff BETA DEBUG BEGIN: New:/work/SRC/openSUSE:Factory/.rpm.new.30101/rpm.changes-- backport architecture check fix from upstream /work/SRC/openSUSE:Factory/.rpm.new.30101/rpm.changes: * new patch: archcheck.diff /work/SRC/openSUSE:Factory/.rpm.new.30101/rpm.changes-- backport empty password fix from upstream New:/work/SRC/openSUSE:Factory/.rpm.new.30101/rpm.changes-- backport buildsys specific prep fix from upstream /work/SRC/openSUSE:Factory/.rpm.new.30101/rpm.changes: * new patch: buildsysprep.diff /work/SRC/openSUSE:Factory/.rpm.new.30101/rpm.changes-- fix memory leak in str2locale [bsc#1241052] New:/work/SRC/openSUSE:Factory/.rpm.new.30101/rpm.changes-- backport empty password fix from upstream /work/SRC/openSUSE:Factory/.rpm.new.30101/rpm.changes: * new patch: emptypw.diff /work/SRC/openSUSE:Factory/.rpm.new.30101/rpm.changes-- backport buildsys specific prep fix from upstream BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rpm.spec ++++++ --- /var/tmp/diff_new_pack.cAb7lS/_old 2025-04-27 22:54:13.463958605 +0200 +++ /var/tmp/diff_new_pack.cAb7lS/_new 2025-04-27 22:54:13.475959106 +0200 @@ -124,6 +124,9 @@ Patch155: rpm2archive.diff Patch156: mtime_policy_set.diff Patch157: cmake_fhardened.diff +Patch158: archcheck.diff +Patch159: emptypw.diff +Patch160: buildsysprep.diff Patch6464: auto-config-update-aarch64-ppc64le.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build # @@ -242,7 +245,8 @@ %patch -P 131 -P 133 -P 134 -P 135 -P 136 -P 138 %patch -P 139 %patch -P 141 -P 142 -%patch -P 150 -P 151 -P 154 -P 155 -P 156 -P 157 +%patch -P 150 -P 151 -P 154 -P 155 -P 156 -P 157 -P 158 -P 159 +%patch -P 160 %ifarch aarch64 ppc64le riscv64 loongarch64 %patch -P 6464 ++++++ archcheck.diff ++++++ --- build/parsePreamble.c.orig 2025-04-25 09:33:36.850778834 +0000 +++ build/parsePreamble.c 2025-04-25 09:33:51.002755713 +0000 @@ -1332,6 +1332,11 @@ int parsePreamble(rpmSpec spec, int init "%{dirname:%{buildroot}}", RMIL_GLOBAL, 0); } + /* XXX Skip valid arch check if not building binary package */ + if (!(spec->flags & RPMSPEC_ANYARCH) && checkForValidArchitectures(spec)) { + goto exit; + } + /* if we get down here nextPart has been set to non-error */ res = nextPart; --- build/parseSpec.c.orig 2025-04-25 09:34:05.770731591 +0000 +++ build/parseSpec.c 2025-04-25 09:34:20.242707943 +0000 @@ -1355,11 +1355,6 @@ static rpmRC finalizeSpec(rpmSpec spec) char *os = rpmExpand("%{_target_os}", NULL); char *optflags = rpmExpand("%{optflags}", NULL); - /* XXX Skip valid arch check if not building binary package */ - if (!(spec->flags & RPMSPEC_ANYARCH) && checkForValidArchitectures(spec)) { - goto exit; - } - fillOutMainPackage(spec->packages->header); /* Define group tag to something when group is undefined in main package*/ if (!headerIsEntry(spec->packages->header, RPMTAG_GROUP)) { ++++++ buildsysprep.diff ++++++ --- build/parseSpec.c.orig 2025-04-25 09:58:26.712300888 +0000 +++ build/parseSpec.c 2025-04-25 09:58:54.224255916 +0000 @@ -987,7 +987,7 @@ int checkBuildsystem(rpmSpec spec, const } static rpmRC parseBuildsysSect(rpmSpec spec, const char *prefix, - struct sectname_s *sc, FD_t fd) + struct sectname_s *sc, FD_t fd, int *foundp) { rpmRC rc = RPMRC_OK; @@ -1015,6 +1015,7 @@ static rpmRC parseBuildsysSect(rpmSpec s } free(buf); free(args); + *foundp = 1; } free(mn); } @@ -1038,9 +1039,10 @@ static rpmRC parseBuildsystem(rpmSpec sp } for (struct sectname_s *sc = sectList; !rc && sc->name; sc++) { - rc = parseBuildsysSect(spec, buildsystem, sc, fd); - if (!rc && spec->sections[sc->section] == NULL) - rc = parseBuildsysSect(spec, "default", sc, fd); + int found = 0; + rc = parseBuildsysSect(spec, buildsystem, sc, fd, &found); + if (!rc && !found) + rc = parseBuildsysSect(spec, "default", sc, fd, &found); } if (!rc) ++++++ emptypw.diff ++++++ --- lib/rpmug.c.orig 2025-04-25 09:48:27.153273090 +0000 +++ lib/rpmug.c 2025-04-25 09:50:00.113122450 +0000 @@ -1,6 +1,7 @@ #include "system.h" #include <errno.h> +#include <rpm/argv.h> #include <rpm/rpmlog.h> #include <rpm/rpmstring.h> #include <rpm/rpmmacro.h> @@ -62,12 +63,11 @@ static int lookup_field(const char *path while ((str = fgets(buf, sizeof(buf), f)) != NULL) { int nf = vcol > rcol ? vcol : rcol; const char *fields[nf + 1]; - char *tok, *save = NULL; int col = -1; - while ((tok = strtok_r(str, ":", &save)) != NULL) { - fields[++col] = tok; - str = NULL; + ARGV_t tokens = argvSplitString(str, ":", ARGV_NONE); + for (ARGV_const_t tok = tokens; tok && *tok; tok++) { + fields[++col] = *tok; if (col >= nf) break; } @@ -78,6 +78,7 @@ static int lookup_field(const char *path rc = 0; } } + argvFree(tokens); } fclose(f); ++++++ localetag.diff ++++++ --- /var/tmp/diff_new_pack.cAb7lS/_old 2025-04-27 22:54:14.800014458 +0200 +++ /var/tmp/diff_new_pack.cAb7lS/_new 2025-04-27 22:54:14.840016130 +0200 @@ -1,8 +1,8 @@ Convert output to the current locale. Assumes utf8 input if the decoding works, otherwise iso-8859-1. ---- lib/tagexts.c.orig 2021-06-21 12:00:44.615612184 +0000 -+++ lib/tagexts.c 2021-09-23 18:58:58.461872258 +0000 +--- lib/tagexts.c.orig 2025-02-19 15:29:33.000000000 +0000 ++++ lib/tagexts.c 2025-04-25 11:59:49.808794382 +0000 @@ -2,6 +2,7 @@ * \file lib/formats.c */ @@ -11,7 +11,7 @@ #include "system.h" #include <rpm/rpmtypes.h> -@@ -197,6 +198,114 @@ typedef enum tMode_e { +@@ -192,6 +193,115 @@ typedef enum tMode_e { TRANSFILETRIGGER = 2, } tMode; @@ -94,6 +94,7 @@ + if (wcrtomb(cc, 0x20ac, &ps) != 3 || memcmp(cc, "\342\202\254", 3)) + locisutf8 = 0; + if (locisutf8 == strisutf8) { ++ _free(cc); + wstr = _free(wstr); + return str; + } @@ -126,7 +127,7 @@ /** * Retrieve trigger info. * @param mode type of trigger (see tMode_e) -@@ -607,10 +716,41 @@ static int i18nTag(Header h, rpmTag tag, +@@ -606,10 +716,41 @@ static int i18nTag(Header h, rpmTag tag, #endif rc = headerGet(h, tag, td, HEADERGET_ALLOC); @@ -168,7 +169,7 @@ * Retrieve summary text. * @param h header * @param[out] td tag data container -@@ -634,6 +774,16 @@ static int descriptionTag(Header h, rpmt +@@ -633,6 +774,16 @@ static int descriptionTag(Header h, rpmt return i18nTag(h, RPMTAG_DESCRIPTION, td, hgflags); } @@ -185,7 +186,7 @@ /** * Retrieve group text. * @param h header -@@ -971,6 +1121,8 @@ static const struct headerTagFunc_s rpmH +@@ -1022,6 +1173,8 @@ static const struct headerTagFunc_s rpmH { RPMTAG_LONGARCHIVESIZE, longarchivesizeTag }, { RPMTAG_LONGSIZE, longsizeTag }, { RPMTAG_LONGSIGSIZE, longsigsizeTag }, ++++++ posttrans.diff ++++++ --- /var/tmp/diff_new_pack.cAb7lS/_old 2025-04-27 22:54:15.200031181 +0200 +++ /var/tmp/diff_new_pack.cAb7lS/_new 2025-04-27 22:54:15.256033522 +0200 @@ -1,5 +1,5 @@ ---- include/rpm/rpmcli.h.orig 2024-10-07 09:35:46.000000000 +0000 -+++ include/rpm/rpmcli.h 2024-12-16 09:31:12.446494695 +0000 +--- include/rpm/rpmcli.h.orig 2025-02-19 15:29:33.000000000 +0000 ++++ include/rpm/rpmcli.h 2025-04-14 13:20:00.048365266 +0000 @@ -306,6 +306,7 @@ enum rpmInstallFlags_e { INSTALL_ALLMATCHES = (1 << 9), /*!< from --allmatches */ INSTALL_REINSTALL = (1 << 10), /*!< from --reinstall */ @@ -24,8 +24,8 @@ */ extern struct rpmInstallArguments_s rpmIArgs; ---- include/rpm/rpmts.h.orig 2024-12-16 09:30:58.714522978 +0000 -+++ include/rpm/rpmts.h 2024-12-16 09:31:12.446494695 +0000 +--- include/rpm/rpmts.h.orig 2025-04-14 13:19:55.520372147 +0000 ++++ include/rpm/rpmts.h 2025-04-14 13:20:00.052365260 +0000 @@ -253,6 +253,15 @@ int rpmtsOrder(rpmts ts); int rpmtsRun(rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet); @@ -42,8 +42,8 @@ * Reference a transaction set instance. * @param ts transaction set * @return new transaction set reference ---- lib/poptI.c.orig 2024-10-07 09:35:46.000000000 +0000 -+++ lib/poptI.c 2024-12-16 09:31:12.446494695 +0000 +--- lib/poptI.c.orig 2025-02-19 15:29:33.000000000 +0000 ++++ lib/poptI.c 2025-04-14 13:20:00.052365260 +0000 @@ -283,6 +283,10 @@ struct poptOption rpmInstallPoptTable[] &rpmIArgs.installInterfaceFlags, (INSTALL_RESTORE), N_("restore package(s)"), @@ -55,9 +55,9 @@ POPT_TABLEEND }; ---- lib/psm.c.orig 2024-12-16 09:30:58.694523019 +0000 -+++ lib/psm.c 2024-12-16 09:31:12.446494695 +0000 -@@ -1000,7 +1000,7 @@ static rpmRC rpmPackageErase(rpmts ts, r +--- lib/psm.c.orig 2025-04-14 13:19:55.504372171 +0000 ++++ lib/psm.c 2025-04-14 13:20:00.052365260 +0000 +@@ -1009,7 +1009,7 @@ static rpmRC rpmPackageErase(rpmts ts, r } if (rc) break; @@ -66,8 +66,8 @@ /* Prepare post transaction uninstall triggers */ rpmtriggersPrepPostUnTransFileTrigs(psm->ts, psm->te); } ---- lib/rpminstall.c.orig 2024-10-07 09:35:46.000000000 +0000 -+++ lib/rpminstall.c 2024-12-16 09:31:12.446494695 +0000 +--- lib/rpminstall.c.orig 2025-02-19 15:29:33.000000000 +0000 ++++ lib/rpminstall.c 2025-04-25 09:21:50.799906982 +0000 @@ -6,6 +6,8 @@ #include <string.h> @@ -77,7 +77,53 @@ #include <rpm/rpmcli.h> #include <rpm/rpmtag.h> #include <rpm/rpmlib.h> /* rpmReadPackageFile, vercmp etc */ -@@ -830,3 +832,32 @@ int rpmInstallSource(rpmts ts, const cha +@@ -90,6 +92,24 @@ static rpmVSFlags setvsFlags(struct rpmI + return vsflags; + } + ++static const char * ++posttranstag2str(rpmTagVal stag) ++{ ++ switch (stag) { ++ case RPMTAG_POSTTRANS: ++ return "posttrans"; ++ case RPMTAG_POSTUNTRANS: ++ return "postuntrans"; ++ case RPMTAG_TRIGGERIN: ++ return "transfiletriggerin"; ++ case RPMTAG_TRIGGERUN: ++ return "transfiletriggerun"; ++ case RPMTAG_TRIGGERPOSTUN: ++ return "transfiletriggerpostun"; ++ } ++ return rpmTagGetName(stag); ++} ++ + void * rpmShowProgress(const void * arg, + const rpmCallbackType what, + const rpm_loff_t amount, +@@ -213,8 +233,20 @@ void * rpmShowProgress(const void * arg, + case RPMCALLBACK_CPIO_ERROR: + break; + case RPMCALLBACK_SCRIPT_ERROR: ++ if (flags & INSTALL_RUNPOSTTRANS) { ++ rpmTagVal stag = (rpmTagVal)amount; ++ char *s = headerGetAsString(h, RPMTAG_NEVRA); ++ fprintf(stdout, "Error from %%%s(%s)\n", posttranstag2str(stag), s); ++ free(s); ++ } + break; + case RPMCALLBACK_SCRIPT_START: ++ if (flags & INSTALL_RUNPOSTTRANS) { ++ rpmTagVal stag = (rpmTagVal)amount; ++ char *s = headerGetAsString(h, RPMTAG_NEVRA); ++ fprintf(stdout, "Running %%%s(%s)\n", posttranstag2str(stag), s); ++ free(s); ++ } + break; + case RPMCALLBACK_SCRIPT_STOP: + break; +@@ -831,3 +863,33 @@ int rpmInstallSource(rpmts ts, const cha return rc; } @@ -105,13 +151,14 @@ + fclose(f); + rpmlog(RPMLOG_DEBUG, "running posttrans scriptlets\n"); + rpmtsClean(ts); ++ setNotifyFlag(ia, ts); + rc = rpmtsRunPostTrans(ts, manifest); +exit: + argvFree(manifest); + return rc; +} ---- lib/rpmtriggers.c.orig 2024-10-07 09:35:46.000000000 +0000 -+++ lib/rpmtriggers.c 2024-12-16 09:31:12.446494695 +0000 +--- lib/rpmtriggers.c.orig 2025-02-19 15:29:33.000000000 +0000 ++++ lib/rpmtriggers.c 2025-04-14 13:20:00.052365260 +0000 @@ -1,5 +1,6 @@ #include "system.h" @@ -143,7 +190,7 @@ /* Prepare and run script */ script = rpmScriptFromTriggerTag(trigH, triggertag(RPMSENSE_TRIGGERPOSTUN), -@@ -610,6 +619,16 @@ rpmRC runImmedFileTriggers(rpmts ts, rpm +@@ -613,6 +622,16 @@ rpmRC runImmedFileTriggers(rpmts ts, rpm rpmTagVal priorityTag; rpmtriggers triggers; @@ -160,8 +207,8 @@ if (tm == RPMSCRIPT_FILETRIGGER) { priorityTag = RPMTAG_FILETRIGGERPRIORITIES; } else { ---- lib/rpmtriggers.h.orig 2024-10-07 09:35:46.000000000 +0000 -+++ lib/rpmtriggers.h 2024-12-16 09:31:12.446494695 +0000 +--- lib/rpmtriggers.h.orig 2025-02-19 15:29:33.000000000 +0000 ++++ lib/rpmtriggers.h 2025-04-14 13:20:00.052365260 +0000 @@ -24,6 +24,10 @@ rpmtriggers rpmtriggersCreate(unsigned i RPM_GNUC_INTERNAL rpmtriggers rpmtriggersFree(rpmtriggers triggers); @@ -173,8 +220,8 @@ /* * Prepare post trans uninstall file triggers. After transcation uninstalled * files are not saved anywhere. So we need during uninstalation of every ---- lib/rpmts_internal.h.orig 2024-10-07 09:35:46.000000000 +0000 -+++ lib/rpmts_internal.h 2024-12-16 09:31:12.446494695 +0000 +--- lib/rpmts_internal.h.orig 2025-02-19 15:29:33.000000000 +0000 ++++ lib/rpmts_internal.h 2025-04-14 13:20:00.052365260 +0000 @@ -83,6 +83,8 @@ struct rpmts_s { int min_writes; /*!< macro minimize_writes used */ @@ -184,8 +231,8 @@ }; /** \ingroup rpmts ---- lib/transaction.c.orig 2024-10-07 09:35:46.000000000 +0000 -+++ lib/transaction.c 2024-12-16 09:37:17.425742632 +0000 +--- lib/transaction.c.orig 2025-02-19 15:29:33.000000000 +0000 ++++ lib/transaction.c 2025-04-14 13:20:00.056365254 +0000 @@ -1475,6 +1475,8 @@ static int rpmtsSetup(rpmts ts, rpmprobF /* Get available space on mounted file systems. */ (void) rpmtsInitDSI(ts); @@ -329,8 +376,8 @@ + rpmtsEmpty(ts); + return rc; +} ---- tools/rpm.c.orig 2024-10-07 09:35:46.000000000 +0000 -+++ tools/rpm.c 2024-12-16 09:31:12.446494695 +0000 +--- tools/rpm.c.orig 2025-02-19 15:29:33.000000000 +0000 ++++ tools/rpm.c 2025-04-14 13:20:00.056365254 +0000 @@ -21,6 +21,7 @@ enum modes { MODE_ERASE = (1 << 2), MODE_RESTORE = (1 << 4),