diff --git a/.files b/.files
index 08dc83e..b37e01c 100644
Binary files a/.files and b/.files differ
diff --git a/.rev b/.rev
index 1f1ad5f..15c7edb 100644
--- a/.rev
+++ b/.rev
@@ -2398,4 +2398,12 @@ See bugzilla 1167537 for the gory details.
1035056
+
+ 28a7d0afff4e40766c1cf41edf5a601b
+ 4.18.0
+
+ dimstar_suse
+ update to rpm-4.18.0
+ 1040201
+
diff --git a/brp-compress-no-img.patch b/brp-compress-no-img.patch
index 861afc8..7a2b78c 100644
--- a/brp-compress-no-img.patch
+++ b/brp-compress-no-img.patch
@@ -1,10 +1,11 @@
---- scripts/brp-compress.orig 2020-09-30 13:09:28.846434576 +0000
-+++ scripts/brp-compress 2020-09-30 13:09:34.514422459 +0000
-@@ -51,6 +51,7 @@ do
- find $d -type f ! -name dir | while read f
- do
- [ -f "$f" ] || continue
-+ case $(file "$f") in *"image data"*) continue;; esac
+--- scripts/brp-compress.orig 2022-12-02 13:18:54.498881077 +0000
++++ scripts/brp-compress 2022-12-02 13:20:00.038727777 +0000
+@@ -52,6 +52,8 @@ do
+ while IFS= read -r -d '' f; do
+ [ -f "$f" ] || continue
- case "$f" in
- *.gz|*.Z) gunzip -f "$f" || check_for_hard_link $d "$f"; b=`echo $f | sed -e 's/\.\(gz\|Z\)$//'`;;
++ case $(file "$f") in *"image data"*) continue;; esac
++
+ case "$f" in
+ *.gz|*.Z) gunzip -f "$f"; check_for_hard_link $d "$f"; b=`echo "$f" | sed -e 's/\.\(gz\|Z\)$//'`;;
+ *.bz2) bunzip2 -f "$f"; check_for_hard_link $d "$f"; b=`echo "$f" | sed -e 's/\.bz2$//'`;;
diff --git a/brp.diff b/brp.diff
index dc79094..7a62141 100644
--- a/brp.diff
+++ b/brp.diff
@@ -1,16 +1,16 @@
---- scripts/brp-strip-comment-note.orig 2022-07-01 09:02:17.586292400 +0000
-+++ scripts/brp-strip-comment-note 2022-07-21 14:03:57.119809772 +0000
-@@ -16,6 +16,8 @@ esac
+--- scripts/brp-strip-comment-note.orig 2022-04-07 11:13:19.072518377 +0000
++++ scripts/brp-strip-comment-note 2022-12-02 13:07:03.700394762 +0000
+@@ -15,7 +15,7 @@ esac
+
+ # Strip .comment and .note sections (the latter only if it is not allocated)
# for already stripped elf files in the build root
- for f in `find "$RPM_BUILD_ROOT" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) -exec file {} \; | \
- grep -v "^${RPM_BUILD_ROOT}/\?usr/lib/debug" | \
-+ grep -v ' shared object,' | \
-+ grep -v '/lib/modules/' | \
- sed -n -e 's/^\(.*\):[ ]*ELF.*, stripped.*/\1/p'`; do
+-for f in `find "$RPM_BUILD_ROOT" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) -print0 | xargs -0 -r -P$NCPUS -n32 sh -c "file \"\\$@\" | grep -v \"^${RPM_BUILD_ROOT}/\?usr/lib/debug\" | sed -n -e 's/^\(.*\):[ ]*ELF.*, stripped.*/\1/p'" ARG0`; do
++for f in `find "$RPM_BUILD_ROOT" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) -print0 | xargs -0 -r -P$NCPUS -n32 sh -c "file \"\\$@\" | grep -v \"^${RPM_BUILD_ROOT}/\?usr/lib/debug\" | grep -v ' shared object,' | grep -v '/lib/modules/' | sed -n -e 's/^\(.*\):[ ]*ELF.*, stripped.*/\1/p'" ARG0`; do
note="-R .note"
if $OBJDUMP -h $f | grep '^[ ]*[0-9]*[ ]*.note[ ]' -A 1 | \
---- scripts/brp-strip.orig 2022-07-01 10:31:45.997506545 +0000
-+++ scripts/brp-strip 2022-07-21 14:06:12.155573458 +0000
+ grep ALLOC >/dev/null; then
+--- scripts/brp-strip.orig 2022-04-07 11:13:19.072518377 +0000
++++ scripts/brp-strip 2022-12-02 13:04:21.392758270 +0000
@@ -14,4 +14,4 @@ esac
# Strip ELF binaries
diff --git a/brpcompress.diff b/brpcompress.diff
index 0eadb4a..635134e 100644
--- a/brpcompress.diff
+++ b/brpcompress.diff
@@ -1,5 +1,5 @@
---- scripts/brp-compress.orig 2020-05-28 10:04:25.075136894 +0000
-+++ scripts/brp-compress 2020-10-27 15:23:57.970737863 +0000
+--- scripts/brp-compress.orig 2022-04-07 11:13:19.072518377 +0000
++++ scripts/brp-compress 2022-12-02 13:12:31.239774558 +0000
@@ -5,6 +5,9 @@ if [ -z "$RPM_BUILD_ROOT" ] || [ "$RPM_B
exit 0
fi
@@ -39,61 +39,42 @@
+}
+
for d in .${PREFIX}/man/man* .${PREFIX}/man/*/man* .${PREFIX}/info \
- .${PREFIX}/share/man/man* .${PREFIX}/share/man/*/man* \
- .${PREFIX}/share/info .${PREFIX}/kerberos/man \
-@@ -21,40 +48,40 @@ for d in .${PREFIX}/man/man* .${PREFIX}/
- .${PREFIX}/share/fish/man/man*
- do
- [ -d $d ] || continue
-- for f in `find $d -type f ! -name dir`
-+ find $d -type f ! -name dir | while read f
- do
- [ -f "$f" ] || continue
+ .${PREFIX}/share/man/man* .${PREFIX}/share/man/*/man* \
+ .${PREFIX}/share/info .${PREFIX}/kerberos/man \
+@@ -26,10 +53,10 @@ do
+ [ -f "$f" ] || continue
- case "$f" in
-- *.gz|*.Z) gunzip -f $f; b=`echo $f | sed -e 's/\.\(gz\|Z\)$//'`;;
-- *.bz2) bunzip2 -f $f; b=`echo $f | sed -e 's/\.bz2$//'`;;
-- *.xz|*.lzma) unxz -f $f; b=`echo $f | sed -e 's/\.\(xz\|lzma\)$//'`;;
-- *.zst|*.zstd) unzstd -f --rm $f; b=`echo $f | sed -e 's/\.\(zst\|zstd\)$//'`;;
-+ *.gz|*.Z) gunzip -f "$f" || check_for_hard_link $d "$f"; b=`echo $f | sed -e 's/\.\(gz\|Z\)$//'`;;
-+ *.bz2) bunzip2 -f "$f" || check_for_hard_link $d "$f"; b=`echo $f | sed -e 's/\.bz2$//'`;;
-+ *.xz|*.lzma) unxz -f "$f" || check_for_hard_link $d "$f"; b=`echo $f | sed -e 's/\.\(xz\|lzma\)$//'`;;
-+ *.zst|*.zstd) unzstd -f --rm "$f" || check_for_hard_link $d "$f"; b=`echo $f | sed -e 's/\.\(zst\|zstd\)$//'`;;
- *) b=$f;;
- esac
+ case "$f" in
+- *.gz|*.Z) gunzip -f "$f"; b=`echo "$f" | sed -e 's/\.\(gz\|Z\)$//'`;;
+- *.bz2) bunzip2 -f "$f"; b=`echo "$f" | sed -e 's/\.bz2$//'`;;
+- *.xz|*.lzma) unxz -f "$f"; b=`echo "$f" | sed -e 's/\.\(xz\|lzma\)$//'`;;
+- *.zst|*.zstd) unzstd -f --rm $f; b=`echo "$f" | sed -e 's/\.\(zst\|zstd\)$//'`;;
++ *.gz|*.Z) gunzip -f "$f"; check_for_hard_link $d "$f"; b=`echo "$f" | sed -e 's/\.\(gz\|Z\)$//'`;;
++ *.bz2) bunzip2 -f "$f"; check_for_hard_link $d "$f"; b=`echo "$f" | sed -e 's/\.bz2$//'`;;
++ *.xz|*.lzma) unxz -f "$f"; check_for_hard_link $d "$f"; b=`echo "$f" | sed -e 's/\.\(xz\|lzma\)$//'`;;
++ *.zst|*.zstd) unzstd -f --rm $f; check_for_hard_link $d "$f"; b=`echo "$f" | sed -e 's/\.\(zst\|zstd\)$//'`;;
+ *) b="$f";;
+ esac
-- $COMPRESS $b /dev/null || {
-+ $COMPRESS "$b" /dev/null || {
- inode=`ls -i $b | awk '{ print $1 }'`
- others=`find $d -type f -inum $inode`
- if [ -n "$others" ]; then
+@@ -38,7 +65,7 @@ do
+ others="`find $d -type f -inum $inode`"
+ if [ -n "$others" ]; then
for afile in $others ; do
- [ "$afile" != "$b" ] && rm -f $afile
+ [ "$afile" != "$b" ] && rm -f "$afile"
done
-- $COMPRESS -f $b
-+ $COMPRESS -f "$b"
+ $COMPRESS -f "$b"
for afile in $others ; do
-- [ "$afile" != "$b" ] && ln $b$COMPRESS_EXT $afile$COMPRESS_EXT
-+ [ "$afile" != "$b" ] && ln "$b$COMPRESS_EXT" "$afile$COMPRESS_EXT"
- done
- else
-- $COMPRESS -f $b
-+ $COMPRESS -f "$b"
- fi
- }
- done
+@@ -52,9 +79,9 @@ do
-- for f in `find $d -type l`
-+ find $d -type l | while read f
- do
-- l=`ls -l $f | sed -e 's/.* -> //' -e 's/\.\(gz\|Z\|bz2\|xz\|lzma\|zst\|zstd\)$//'`
-- rm -f $f
-- b=`echo $f | sed -e 's/\.\(gz\|Z\|bz2\|xz\|lzma\|zst\|zstd\)$//'`
-- ln -sf $l$COMPRESS_EXT $b$COMPRESS_EXT
-+ l=`ls -l "$f" | sed -e 's/.* -> //' -e 's/\.\(gz\|Z\|bz2\|xz\|lzma\|zst\|zstd\)$//'`
-+ rm -f "$f"
-+ b=`echo "$f" | sed -e 's/\.\(gz\|Z\|bz2\|xz\|lzma\|zst\|zstd\)$//'`
-+ ln -sf "$l$COMPRESS_EXT" "$b$COMPRESS_EXT"
+ find $d -type l -print0 |
+ while IFS= read -r -d '' f; do
+- l=`ls -l $f | sed -e 's/.* -> //' -e 's/\.\(gz\|Z\|bz2\|xz\|lzma\|zst\|zstd\)$//'`
+- rm -f $f
+- b=`echo $f | sed -e 's/\.\(gz\|Z\|bz2\|xz\|lzma\|zst\|zstd\)$//'`
++ l=`ls -l "$f" | sed -e 's/.* -> //' -e 's/\.\(gz\|Z\|bz2\|xz\|lzma\|zst\|zstd\)$//'`
++ rm -f "$f"
++ b=`echo "$f" | sed -e 's/\.\(gz\|Z\|bz2\|xz\|lzma\|zst\|zstd\)$//'`
+ ln -sf "$l$COMPRESS_EXT" "$b$COMPRESS_EXT"
done
done
diff --git a/db_conversion.diff b/db_conversion.diff
index d1afc41..93ca78c 100644
--- a/db_conversion.diff
+++ b/db_conversion.diff
@@ -1,6 +1,6 @@
---- lib/backend/bdb_ro.c.orig 2020-05-28 10:04:25.027136631 +0000
-+++ lib/backend/bdb_ro.c 2021-01-07 15:24:08.866776792 +0000
-@@ -790,6 +790,7 @@ static unsigned int bdbro_pkgdbKey(dbiIn
+--- lib/backend/bdb_ro.c.orig 2022-04-07 11:13:18.994517848 +0000
++++ lib/backend/bdb_ro.c 2022-12-02 13:22:16.726408071 +0000
+@@ -793,6 +793,7 @@ static unsigned int bdbro_pkgdbKey(dbiIn
struct rpmdbOps_s bdbro_dbops = {
.name = "bdb_ro",
.path = "Packages",
@@ -8,9 +8,9 @@
.open = bdbro_Open,
.close = bdbro_Close,
---- lib/backend/dbi.c.orig 2020-08-31 09:14:07.991087349 +0000
-+++ lib/backend/dbi.c 2021-01-07 15:24:08.866776792 +0000
-@@ -119,11 +119,20 @@ exit:
+--- lib/backend/dbi.c.orig 2022-04-07 11:13:18.994517848 +0000
++++ lib/backend/dbi.c 2022-12-02 13:22:16.726408071 +0000
+@@ -138,11 +138,20 @@ exit:
}
rdb->db_descr = rdb->db_ops->name;
@@ -31,9 +31,9 @@
const char * dbiName(dbiIndex dbi)
{
return dbi->dbi_file;
---- lib/backend/dbi.h.orig 2021-01-07 15:23:56.122812108 +0000
-+++ lib/backend/dbi.h 2021-01-07 15:24:08.866776792 +0000
-@@ -11,6 +11,7 @@ enum rpmdbFlags {
+--- lib/backend/dbi.h.orig 2022-04-07 11:13:18.994517848 +0000
++++ lib/backend/dbi.h 2022-12-02 13:22:16.726408071 +0000
+@@ -13,6 +13,7 @@ enum rpmdbFlags {
RPMDB_FLAG_REBUILD = (1 << 1),
RPMDB_FLAG_VERIFYONLY = (1 << 2),
RPMDB_FLAG_SALVAGE = (1 << 3),
@@ -41,7 +41,7 @@
};
typedef enum dbCtrlOp_e {
-@@ -63,6 +64,7 @@ struct rpmdb_s {
+@@ -53,6 +54,7 @@ struct rpmdb_s {
int db_buildindex; /*!< Index rebuild indicator */
const struct rpmdbOps_s * db_ops; /*!< backend ops */
@@ -49,7 +49,7 @@
/* dbenv and related parameters */
void * db_dbenv; /*!< Backend private handle */
-@@ -209,6 +211,14 @@ RPM_GNUC_INTERNAL
+@@ -197,6 +199,14 @@ RPM_GNUC_INTERNAL
const char * dbiName(dbiIndex dbi);
/** \ingroup dbi
@@ -64,7 +64,7 @@
* Open a database cursor.
* @param dbi index database handle
* @param flags DBC_WRITE if writing, or 0 (DBC_READ) for reading
-@@ -252,6 +262,7 @@ const void * idxdbKey(dbiIndex dbi, dbiC
+@@ -240,6 +250,7 @@ const void * idxdbKey(dbiIndex dbi, dbiC
struct rpmdbOps_s {
const char *name; /* backend name */
const char *path; /* main database name */
@@ -72,8 +72,8 @@
int (*open)(rpmdb rdb, rpmDbiTagVal rpmtag, dbiIndex * dbip, int flags);
int (*close)(dbiIndex dbi, unsigned int flags);
---- lib/backend/ndb/rpmpkg.c.orig 2021-01-07 15:24:37.266698082 +0000
-+++ lib/backend/ndb/rpmpkg.c 2021-01-07 15:27:46.678173133 +0000
+--- lib/backend/ndb/rpmpkg.c.orig 2022-04-07 11:13:18.997517869 +0000
++++ lib/backend/ndb/rpmpkg.c 2022-12-02 13:22:16.726408071 +0000
@@ -1116,11 +1116,12 @@ static int rpmpkgPutInternal(rpmpkgdb pk
if (rpmpkgWriteBlob(pkgdb, pkgidx, blkoff, blkcnt, blob, blobl, pkgdb->generation)) {
return RPMRC_FAIL;
@@ -90,24 +90,23 @@
if (rpmpkgWriteslot(pkgdb, slotno, pkgidx, blkoff, blkcnt)) {
free(pkgdb->slots);
pkgdb->slots = 0;
---- lib/rpmdb.c.orig 2021-01-07 15:23:56.122812108 +0000
-+++ lib/rpmdb.c 2021-01-07 15:24:08.866776792 +0000
-@@ -516,7 +516,13 @@ static int openDatabase(const char * pre
- rpmsqActivate(1);
- }
-
+--- lib/rpmdb.c.orig 2022-09-20 12:08:27.197920294 +0000
++++ lib/rpmdb.c 2022-12-02 13:24:02.830159868 +0000
+@@ -469,7 +469,12 @@ static int openDatabase(const char * pre
+ /* Open just bare minimum when rebuilding a potentially damaged db */
+ int justPkgs = (db->db_flags & RPMDB_FLAG_REBUILD) &&
+ ((db->db_mode & O_ACCMODE) == O_RDONLY);
- rc = doOpen(db, justPkgs);
+ if (!db->db_pkgs && !justCheck && (mode & O_ACCMODE) == O_RDWR && dbiNeedConversion(db)) {
+ rc = rpmdbRebuild(prefix, NULL, NULL, RPMDB_REBUILD_FLAG_CONVERT);
+ db->db_ops = NULL; /* force re-detection of backend */
+ }
-+
+ if (!rc)
+ rc = doOpen(db, justPkgs);
if (!db->db_descr)
db->db_descr = "unknown db";
-@@ -2311,6 +2317,15 @@ int rpmdbAdd(rpmdb db, Header h)
+@@ -2228,6 +2233,15 @@ int rpmdbAdd(rpmdb db, Header h)
if (db == NULL)
return 0;
@@ -123,7 +122,7 @@
hdrBlob = headerExport(h, &hdrLen);
if (hdrBlob == NULL || hdrLen == 0) {
ret = -1;
-@@ -2506,7 +2521,22 @@ int rpmdbRebuild(const char * prefix, rp
+@@ -2423,7 +2437,22 @@ int rpmdbRebuild(const char * prefix, rp
}
rootdbpath = rpmGetPath(prefix, dbpath, NULL);
@@ -147,7 +146,7 @@
if (rstreq(newdbpath, "") || rstreq(newdbpath, dbpath)) {
newdbpath = _free(newdbpath);
rasprintf(&newdbpath, "%srebuilddb.%d", dbpath, (int) getpid());
-@@ -2532,7 +2562,9 @@ int rpmdbRebuild(const char * prefix, rp
+@@ -2449,7 +2478,9 @@ int rpmdbRebuild(const char * prefix, rp
goto exit;
}
if (openDatabase(prefix, newdbpath, &newdb,
@@ -158,8 +157,8 @@
rc = 1;
goto exit;
}
---- lib/rpmdb_internal.h.orig 2020-05-28 10:04:25.037136686 +0000
-+++ lib/rpmdb_internal.h 2021-01-07 15:24:08.866776792 +0000
+--- lib/rpmdb_internal.h.orig 2022-04-07 11:13:19.014517984 +0000
++++ lib/rpmdb_internal.h 2022-12-02 13:22:16.726408071 +0000
@@ -25,6 +25,7 @@ extern "C" {
enum rpmdbRebuildFlags_e {
diff --git a/dbrointerruptable.diff b/dbrointerruptable.diff
deleted file mode 100644
index 181527d..0000000
--- a/dbrointerruptable.diff
+++ /dev/null
@@ -1,32 +0,0 @@
---- lib/rpmdb.c.orig 2020-05-28 10:04:25.037136686 +0000
-+++ lib/rpmdb.c 2020-09-30 12:23:50.708547165 +0000
-@@ -387,9 +387,11 @@ int rpmdbClose(rpmdb db)
- {
- rpmdb * prev, next;
- int rc = 0;
-+ int dbmode;
-
- if (db == NULL)
- goto exit;
-+ dbmode = db->db_mode;
-
- prev = &rpmdbRock;
- while ((next = *prev) != NULL && next != db)
-@@ -423,7 +425,7 @@ int rpmdbClose(rpmdb db)
-
- db = _free(db);
-
-- if (rpmdbRock == NULL) {
-+ if (rpmdbRock == NULL && (dbmode & (O_RDWR|O_WRONLY)) != 0) {
- rpmsqActivate(0);
- }
- exit:
-@@ -510,7 +512,7 @@ static int openDatabase(const char * pre
- int justPkgs = (db->db_flags & RPMDB_FLAG_REBUILD) &&
- ((db->db_mode & O_ACCMODE) == O_RDONLY);
- /* Enable signal queue on the first db open */
-- if (db->db_next == NULL) {
-+ if (db->db_next == NULL && (db->db_mode & (O_RDWR|O_WRONLY)) != 0) {
- rpmsqActivate(1);
- }
-
diff --git a/findsupplements.diff b/findsupplements.diff
index 469c3b3..0fdc416 100644
--- a/findsupplements.diff
+++ b/findsupplements.diff
@@ -1,15 +1,15 @@
---- scripts/Makefile.am.orig 2021-09-23 20:01:42.554113780 +0000
-+++ scripts/Makefile.am 2021-09-23 20:02:13.466049945 +0000
-@@ -17,7 +17,7 @@ EXTRA_DIST = \
- rpmdb_dump rpmdb_load \
+--- scripts/Makefile.am.orig 2022-04-07 11:13:19.072518377 +0000
++++ scripts/Makefile.am 2022-12-02 13:21:08.886566747 +0000
+@@ -18,7 +18,7 @@ EXTRA_DIST = \
rpm.daily rpm.log rpm.supp rpm2cpio.sh \
+ rpm_macros_provides.sh \
tgpg vpkg-provides.sh \
- find-requires find-provides \
+ find-requires find-provides find-supplements \
ocamldeps.sh \
pkgconfigdeps.sh \
fontconfig.prov script.req
-@@ -29,7 +29,7 @@ rpmconfig_SCRIPTS = \
+@@ -30,7 +30,7 @@ rpmconfig_SCRIPTS = \
brp-remove-la-files \
check-files check-prereqs \
check-buildroot check-rpaths check-rpaths-worker \
@@ -18,8 +18,8 @@
perl.prov perl.req \
pkgconfigdeps.sh \
ocamldeps.sh \
---- scripts/find-supplements.orig 2021-09-23 20:01:42.554113780 +0000
-+++ scripts/find-supplements 2021-09-23 20:01:42.554113780 +0000
+--- scripts/find-supplements.orig 2022-12-02 13:21:08.886566747 +0000
++++ scripts/find-supplements 2022-12-02 13:21:08.886566747 +0000
@@ -0,0 +1,3 @@
+#!/bin/sh
+
diff --git a/headeradddb.diff b/headeradddb.diff
index 430d527..0160193 100644
--- a/headeradddb.diff
+++ b/headeradddb.diff
@@ -28,8 +28,8 @@ convertdb1 will build again.
/* keyp might no be defined. */
rpmdbMatchIterator rpmtsInitIterator(const rpmts ts, rpmDbiTagVal rpmtag,
const void * keyp, size_t keylen)
---- lib/rpmts.h.orig 2011-05-12 13:21:11.000000000 +0000
-+++ lib/rpmts.h 2011-05-12 13:28:32.000000000 +0000
+--- include/rpm/lib/rpmts.h.orig 2011-05-12 13:21:11.000000000 +0000
++++ include/rpm/rpmts.h 2011-05-12 13:28:32.000000000 +0000
@@ -264,6 +264,22 @@ int rpmtsRebuildDB(rpmts ts);
int rpmtsVerifyDB(rpmts ts);
diff --git a/leave-malloc-check-set.diff b/leave-malloc-check-set.diff
deleted file mode 100644
index 053ae41..0000000
--- a/leave-malloc-check-set.diff
+++ /dev/null
@@ -1,46 +0,0 @@
-From 8763969a4a5f19231c0d851e5d50eff614cf5940 Mon Sep 17 00:00:00 2001
-Date: Thu, 23 Jan 2020 13:43:36 +0100
-Subject: [PATCH] Do not unset $MALLOC_CHECK_
-
-How do we even _know_ user wants to debug malloc in rpmbuild,
-maybe user wants to debug it in _the child_?
-
-Signed-off-by: Denys Vlasenko
----
- build/rpmfc.c | 1 -
- lib/rpmscript.c | 3 ---
- sign/rpmgensig.c | 1 -
- 3 files changed, 5 deletions(-)
-
---- build/rpmfc.c
-+++ build/rpmfc.c
-@@ -319,7 +319,6 @@ static int getOutputFrom(ARGV_t argv,
- if (buildRoot)
- setenv("RPM_BUILD_ROOT", buildRoot, 1);
-
-- unsetenv("MALLOC_CHECK_");
- execvp(argv[0], (char *const *)argv);
- rpmlog(RPMLOG_ERR, _("Couldn't exec %s: %s\n"),
- argv[0], strerror(errno));
---- lib/rpmscript.c
-+++ lib/rpmscript.c
-@@ -245,9 +245,6 @@ static void doScriptExec(ARGV_const_t argv, ARGV_const_t prefixes,
- }
-
- if (chdir("/") == 0) {
-- /* XXX Don't mtrace into children. */
-- unsetenv("MALLOC_CHECK_");
--
- xx = execv(argv[0], argv);
- if (xx) {
- rpmlog(RPMLOG_ERR,
---- sign/rpmgensig.c
-+++ sign/rpmgensig.c
-@@ -216,7 +216,6 @@ static int runGPG(sigTarget sigt, const char *sigfile)
- dup2(pipefd[0], STDIN_FILENO);
- close(pipefd[1]);
-
-- unsetenv("MALLOC_CHECK_");
- cmd = rpmExpand("%{?__gpg_sign_cmd}", NULL);
- rc = poptParseArgvString(cmd, NULL, (const char ***)&av);
- if (!rc)
diff --git a/nextiteratorheaderblob.diff b/nextiteratorheaderblob.diff
index 36b5f85..4484557 100644
--- a/nextiteratorheaderblob.diff
+++ b/nextiteratorheaderblob.diff
@@ -49,8 +49,8 @@
char *rpmdbCookie(rpmdb db)
{
void *cookie = NULL;
---- lib/rpmdb.h.orig 2020-11-27 13:09:17.968992873 +0000
-+++ lib/rpmdb.h 2020-11-27 13:09:36.352942782 +0000
+--- include/rpm/rpmdb.h.orig 2020-11-27 13:09:17.968992873 +0000
++++ include/rpm/rpmdb.h 2020-11-27 13:09:36.352942782 +0000
@@ -253,6 +253,14 @@ int rpmdbStat(const char *prefix, struct
*/
int rpmdbFStat(rpmdb db, struct stat *statbuf);
diff --git a/posttrans.diff b/posttrans.diff
index 5d11343..de786f5 100644
--- a/posttrans.diff
+++ b/posttrans.diff
@@ -1,39 +1,15 @@
---- lib/poptI.c.orig 2021-04-09 11:28:12.359647290 +0000
-+++ lib/poptI.c 2021-04-09 11:28:15.523640983 +0000
-@@ -265,6 +265,10 @@ struct poptOption rpmInstallPoptTable[]
- &rpmIArgs.installInterfaceFlags, (INSTALL_REINSTALL|INSTALL_INSTALL),
- N_("reinstall package(s)"),
- N_("+") },
-+ { "runposttrans", '\0', POPT_BIT_SET,
-+ &rpmIArgs.installInterfaceFlags, INSTALL_RUNPOSTTRANS,
-+ N_("run posttrans scriptlet"),
-+ N_("") },
-
- POPT_TABLEEND
- };
---- lib/psm.c.orig 2021-04-09 11:28:12.359647290 +0000
-+++ lib/psm.c 2021-04-09 11:28:15.527640975 +0000
-@@ -810,7 +810,7 @@ static rpmRC rpmPackageErase(rpmts ts, r
- }
- if (rc) break;
-
-- if (!(rpmtsFlags(ts) & (RPMTRANS_FLAG_NOPOSTTRANS|RPMTRANS_FLAG_NOTRIGGERPOSTUN))) {
-+ if (ts->dump_posttrans || !(rpmtsFlags(ts) & (RPMTRANS_FLAG_NOPOSTTRANS|RPMTRANS_FLAG_NOTRIGGERPOSTUN))) {
- /* Prepare post transaction uninstall triggers */
- rpmtriggersPrepPostUnTransFileTrigs(psm->ts, psm->te);
- }
---- lib/rpmcli.h.orig 2021-04-09 11:28:12.359647290 +0000
-+++ lib/rpmcli.h 2021-04-09 11:28:15.527640975 +0000
-@@ -304,6 +304,7 @@ enum rpmInstallFlags_e {
- INSTALL_ERASE = (1 << 8), /*!< from --erase */
+--- include/rpm/rpmcli.h.orig 2022-04-07 11:13:18.983517774 +0000
++++ include/rpm/rpmcli.h 2022-12-02 13:43:44.899359176 +0000
+@@ -306,6 +306,7 @@ enum rpmInstallFlags_e {
INSTALL_ALLMATCHES = (1 << 9), /*!< from --allmatches */
INSTALL_REINSTALL = (1 << 10), /*!< from --reinstall */
-+ INSTALL_RUNPOSTTRANS = (1 << 11), /*!< from --runposttrans */
+ INSTALL_RESTORE = (1 << 11), /*!< from --restore */
++ INSTALL_RUNPOSTTRANS = (1 << 12), /*!< from --runposttrans */
};
typedef rpmFlags rpmInstallFlags;
-@@ -385,6 +386,15 @@ int rpmInstall(rpmts ts, struct rpmInsta
- int rpmErase(rpmts ts, struct rpmInstallArguments_s * ia, ARGV_const_t argv);
+@@ -396,6 +397,15 @@ int rpmErase(rpmts ts, struct rpmInstall
+ int rpmRestore(rpmts ts, struct rpmInstallArguments_s * ia, ARGV_const_t argv);
/** \ingroup rpmcli
+ * Run posttrans scriptlets
@@ -48,18 +24,60 @@
*/
extern struct rpmInstallArguments_s rpmIArgs;
---- lib/rpminstall.c.orig 2021-04-09 11:28:12.363647282 +0000
-+++ lib/rpminstall.c 2021-04-09 11:28:15.527640975 +0000
-@@ -4,6 +4,8 @@
+--- include/rpm/rpmts.h.orig 2022-12-02 13:27:05.109729552 +0000
++++ include/rpm/rpmts.h 2022-12-02 13:27:08.881720646 +0000
+@@ -249,6 +249,15 @@ int rpmtsOrder(rpmts ts);
+ int rpmtsRun(rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet);
- #include "system.h"
+ /** \ingroup rpmts
++ * Run all posttrans scriptlets described in the manifest data.
++ *
++ * @param ts transaction set
++ * @param manifest the manifest data
++ * @return 0 on success, -1 on error
++ */
++int rpmtsRunPostTrans(rpmts ts, ARGV_const_t manifest);
++
++/** \ingroup rpmts
+ * Reference a transaction set instance.
+ * @param ts transaction set
+ * @return new transaction set reference
+--- lib/poptI.c.orig 2022-04-07 11:13:19.010517957 +0000
++++ lib/poptI.c 2022-12-02 13:27:08.877720656 +0000
+@@ -273,6 +273,10 @@ struct poptOption rpmInstallPoptTable[]
+ &rpmIArgs.installInterfaceFlags, (INSTALL_RESTORE),
+ N_("restore package(s)"),
+ N_("+") },
++ { "runposttrans", '\0', POPT_BIT_SET,
++ &rpmIArgs.installInterfaceFlags, INSTALL_RUNPOSTTRANS,
++ N_("run posttrans scriptlet"),
++ N_("") },
+
+ POPT_TABLEEND
+ };
+--- lib/psm.c.orig 2022-12-02 13:27:05.093729590 +0000
++++ lib/psm.c 2022-12-02 13:27:08.877720656 +0000
+@@ -826,7 +826,7 @@ static rpmRC rpmPackageErase(rpmts ts, r
+ }
+ if (rc) break;
+
+- if (!(rpmtsFlags(ts) & (RPMTRANS_FLAG_NOPOSTTRANS|RPMTRANS_FLAG_NOTRIGGERPOSTUN))) {
++ if (ts->dump_posttrans || !(rpmtsFlags(ts) & (RPMTRANS_FLAG_NOPOSTTRANS|RPMTRANS_FLAG_NOTRIGGERPOSTUN))) {
+ /* Prepare post transaction uninstall triggers */
+ rpmtriggersPrepPostUnTransFileTrigs(psm->ts, psm->te);
+ }
+--- lib/rpminstall.c.orig 2022-09-02 05:48:29.712846716 +0000
++++ lib/rpminstall.c 2022-12-02 13:27:08.877720656 +0000
+@@ -6,6 +6,8 @@
+
+ #include
+#include
+
#include
#include
#include /* rpmReadPackageFile, vercmp etc */
-@@ -772,3 +774,32 @@ int rpmInstallSource(rpmts ts, const cha
+@@ -812,3 +814,32 @@ int rpmInstallSource(rpmts ts, const cha
return rc;
}
@@ -92,8 +110,8 @@
+ argvFree(manifest);
+ return rc;
+}
---- lib/rpmtriggers.c.orig 2021-04-09 11:28:12.363647282 +0000
-+++ lib/rpmtriggers.c 2021-04-09 11:31:46.999219563 +0000
+--- lib/rpmtriggers.c.orig 2022-04-07 11:13:19.020518024 +0000
++++ lib/rpmtriggers.c 2022-12-02 13:27:08.877720656 +0000
@@ -1,5 +1,6 @@
#include "system.h"
@@ -110,7 +128,7 @@
unsigned int tix, unsigned int priority)
{
if (trigs->count == trigs->alloced) {
-@@ -177,6 +178,14 @@ int runPostUnTransFileTrigs(rpmts ts)
+@@ -178,6 +179,14 @@ int runPostUnTransFileTrigs(rpmts ts)
if (trigH == NULL)
continue;
@@ -125,7 +143,7 @@
/* Prepare and run script */
script = rpmScriptFromTriggerTag(trigH,
triggertag(RPMSENSE_TRIGGERPOSTUN),
-@@ -583,6 +592,16 @@ rpmRC runImmedFileTriggers(rpmts ts, rpm
+@@ -587,6 +596,16 @@ rpmRC runImmedFileTriggers(rpmts ts, rpm
rpmTagVal priorityTag;
rpmtriggers triggers;
@@ -142,8 +160,8 @@
if (tm == RPMSCRIPT_FILETRIGGER) {
priorityTag = RPMTAG_FILETRIGGERPRIORITIES;
} else {
---- lib/rpmtriggers.h.orig 2021-04-09 11:28:12.363647282 +0000
-+++ lib/rpmtriggers.h 2021-04-09 11:28:15.527640975 +0000
+--- lib/rpmtriggers.h.orig 2022-04-07 11:13:19.020518024 +0000
++++ lib/rpmtriggers.h 2022-12-02 13:27:08.881720646 +0000
@@ -27,6 +27,10 @@ rpmtriggers rpmtriggersCreate(unsigned i
RPM_GNUC_INTERNAL
rpmtriggers rpmtriggersFree(rpmtriggers triggers);
@@ -155,37 +173,20 @@
/*
* Prepare post trans uninstall file triggers. After transcation uninstalled
* files are not saved anywhere. So we need during uninstalation of every
---- lib/rpmts.h.orig 2021-04-09 11:28:12.363647282 +0000
-+++ lib/rpmts.h 2021-04-09 11:28:15.527640975 +0000
-@@ -229,6 +229,15 @@ int rpmtsOrder(rpmts ts);
- int rpmtsRun(rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet);
+--- lib/rpmts_internal.h.orig 2022-04-07 11:13:19.021518031 +0000
++++ lib/rpmts_internal.h 2022-12-02 13:44:39.803225928 +0000
+@@ -94,6 +94,8 @@ struct rpmts_s {
+ int min_writes; /*!< macro minimize_writes used */
- /** \ingroup rpmts
-+ * Run all posttrans scriptlets described in the manifest data.
-+ *
-+ * @param ts transaction set
-+ * @param manifest the manifest data
-+ * @return 0 on success, -1 on error
-+ */
-+int rpmtsRunPostTrans(rpmts ts, ARGV_const_t manifest);
+ time_t overrideTime; /*!< Time value used when overriding system clock. */
+
-+/** \ingroup rpmts
- * Reference a transaction set instance.
- * @param ts transaction set
- * @return new transaction set reference
---- lib/rpmts_internal.h.orig 2021-04-09 11:28:12.363647282 +0000
-+++ lib/rpmts_internal.h 2021-04-09 11:28:15.527640975 +0000
-@@ -87,6 +87,7 @@ struct rpmts_s {
- rpmtriggers trigs2run; /*!< Transaction file triggers */
-
- int min_writes; /*!< macro minimize_writes used */
+ int dump_posttrans; /*!< macro dump_posttrans used */
};
#ifdef __cplusplus
---- lib/transaction.c.orig 2021-04-09 11:28:12.363647282 +0000
-+++ lib/transaction.c 2021-04-09 11:33:22.247029757 +0000
-@@ -1468,6 +1468,8 @@ static int rpmtsSetup(rpmts ts, rpmprobF
+--- lib/transaction.c.orig 2022-08-30 11:42:23.784853830 +0000
++++ lib/transaction.c 2022-12-02 13:27:08.881720646 +0000
+@@ -1478,6 +1478,8 @@ static int rpmtsSetup(rpmts ts, rpmprobF
/* Get available space on mounted file systems. */
(void) rpmtsInitDSI(ts);
@@ -194,7 +195,7 @@
return 0;
}
-@@ -1846,22 +1848,26 @@ int rpmtsRun(rpmts ts, rpmps okProbs, rp
+@@ -1856,22 +1858,26 @@ int rpmtsRun(rpmts ts, rpmps okProbs, rp
/* Actually install and remove packages */
nfailed = rpmtsProcess(ts);
@@ -225,8 +226,8 @@
runTransScripts(ts, PKG_TRANSFILETRIGGERIN);
}
/* Final exit code */
-@@ -1884,3 +1890,110 @@ exit:
- rpmsqSetAction(SIGPIPE, oact);
+@@ -1894,3 +1900,110 @@ exit:
+ sigaction(SIGPIPE, &oact, NULL);
return rc;
}
+
@@ -336,29 +337,29 @@
+ rpmtsEmpty(ts);
+ return rc;
+}
---- rpm.c.orig 2021-04-09 11:28:12.363647282 +0000
-+++ rpm.c 2021-04-09 11:28:15.527640975 +0000
-@@ -19,6 +19,7 @@ enum modes {
- MODE_INSTALL = (1 << 1),
+--- rpm.c.orig 2022-04-07 11:13:19.067518343 +0000
++++ rpm.c 2022-12-02 13:55:52.969592594 +0000
+@@ -21,6 +21,7 @@ enum modes {
MODE_ERASE = (1 << 2),
+ MODE_RESTORE = (1 << 4),
#define MODES_IE (MODE_INSTALL | MODE_ERASE)
-+ MODE_RUNPOSTTRANS = (1 << 4),
++ MODE_RUNPOSTTRANS = (1 << 5),
MODE_UNKNOWN = 0
};
-@@ -114,6 +115,11 @@ int main(int argc, char *argv[])
- INSTALL_INSTALL|INSTALL_REINSTALL));
+@@ -115,6 +116,11 @@ int main(int argc, char *argv[])
int eflags = (ia->installInterfaceFlags & INSTALL_ERASE);
+ int rflags = (ia->installInterfaceFlags & INSTALL_RESTORE);
+ if (ia->installInterfaceFlags & INSTALL_RUNPOSTTRANS) {
-+ if (iflags || eflags)
++ if (iflags || eflags || rflags)
+ argerror(_("only one major mode may be specified"));
+ bigMode = MODE_RUNPOSTTRANS;
+ }
- if (iflags & eflags)
+ if (iflags & eflags & rflags)
argerror(_("only one major mode may be specified"));
else if (iflags)
-@@ -286,6 +292,14 @@ int main(int argc, char *argv[])
+@@ -293,6 +299,14 @@ int main(int argc, char *argv[])
ec = rpmcliVerify(ts, qva, (ARGV_const_t) poptGetArgs(optCon));
} break;
diff --git a/python-rpm.changes b/python-rpm.changes
index 352d9ff..3f2ce22 100644
--- a/python-rpm.changes
+++ b/python-rpm.changes
@@ -1,3 +1,8 @@
+-------------------------------------------------------------------
+Fri Dec 2 15:09:55 CET 2022 - mls@suse.de
+
+- update to rpm-4.18.0
+
------------------------------------------------------------------
Thu Jul 21 16:11:22 CEST 2022 - mls@suse.de
diff --git a/python-rpm.spec b/python-rpm.spec
index 8f121d6..998b6e0 100644
--- a/python-rpm.spec
+++ b/python-rpm.spec
@@ -21,7 +21,7 @@
%global with_python 1
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-rpm
-Version: 4.17.1.1
+Version: 4.18.0
Release: 0
Summary: Python Bindings for Manipulating RPM Packages
License: GPL-2.0-or-later
diff --git a/rpm-4.17.1.1.tar.bz2 b/rpm-4.17.1.1.tar.bz2
deleted file mode 120000
index ebc4c73..0000000
--- a/rpm-4.17.1.1.tar.bz2
+++ /dev/null
@@ -1 +0,0 @@
-/ipfs/bafybeih2skxixxbpjvzcvob34ba3sxv5hjn2vdbtwwy6spbbgv6h2we4a4
\ No newline at end of file
diff --git a/rpm-4.18.0.tar.bz2 b/rpm-4.18.0.tar.bz2
new file mode 120000
index 0000000..f9304e3
--- /dev/null
+++ b/rpm-4.18.0.tar.bz2
@@ -0,0 +1 @@
+/ipfs/bafybeiewlxc3to6pphqtchwxewmzuulzyefbomidexj4u37apopekezone
\ No newline at end of file
diff --git a/rpm.changes b/rpm.changes
index 90bb5ef..713990b 100644
--- a/rpm.changes
+++ b/rpm.changes
@@ -1,4 +1,39 @@
-------------------------------------------------------------------
+Fri Dec 2 15:01:05 CET 2022 - mls@suse.de
+
+- update to rpm-4.18.0
+ * documentation updates
+ * fix query arguments containing ^ not working
+ * add downgrade (--oldpackage) support to --freshe
+ * add --path query for support for stateless file information
+ * add --shell option for interactive macro shell to rpmspec
+ * add --justdb counterpart --nodb option and matching API flag
+ * fix intermediate symlinks not verified (CVE-2021-35939)
+ * fix unowned directories created unsafely (bsc#1157880)
+ (CVE-2021-35938)
+ * fix %posttrans argument on upgrade
+ * fix package build tree not getting removed on successful build
+ * add new %conf spec section for build configuration
+ * add %bcond macro as a nicer way of defining build conditionals
+ * add new rpmuncompress cli tool
+ * deprecate implicit "%patch number zero" syntax
+- refreshed patches:
+ * brp-compress-no-img.patch
+ * brp.diff
+ * brpcompress.diff
+ * db_conversion.diff
+ * findsupplements.diff
+ * headeradddb.diff
+ * nextiteratorheaderblob.diff
+ * posttrans.diff
+ * rpmqpack.diff
+ * rpmrc.diff
+ * selinux_transactional_update.patch
+- removed patches:
+ * dbrointerruptable.diff
+ * leave-malloc-check-set.diff
+
+-------------------------------------------------------------------
Tue Oct 25 12:15:12 UTC 2022 - Johannes Segitz
- Add selinux_transactional_update.patch to ignore errors when setting
diff --git a/rpm.spec b/rpm.spec
index aa96eab..2e2073d 100644
--- a/rpm.spec
+++ b/rpm.spec
@@ -58,7 +58,7 @@ Requires: /usr/bin/awk
Summary: The RPM Package Manager
License: GPL-2.0-or-later
Group: System/Packages
-Version: 4.17.1.1
+Version: 4.18.0
Release: 0
URL: https://rpm.org/
#Git-Clone: https://github.com/rpm-software-management/rpm
@@ -72,7 +72,6 @@ Source13: rpmconfigcheck.service
Patch5: usr-lib-sysimage-rpm.patch
Patch13: ignore-auxv.diff
Patch12: localetag.diff
-Patch16: dbrointerruptable.diff
Patch18: refreshtestarch.diff
Patch24: brp.diff
Patch25: brpcompress.diff
@@ -97,7 +96,6 @@ Patch71: nomagiccheck.diff
Patch73: assumeexec.diff
Patch77: langnoc.diff
Patch78: headerchk2.diff
-Patch79: leave-malloc-check-set.diff
Patch85: brp-compress-no-img.patch
Patch93: weakdepscompat.diff
Patch94: checksepwarn.diff
@@ -211,20 +209,19 @@ Provides and requires generator for .pl files and modules.
%setup -q -n rpm-%{version}
rm -rf sqlite
-%patch -P 5 -P 12 -P 13 -P 16 -P 18
+%patch -P 5 -P 12 -P 13 -P 18
%patch -P 24 -P 25 -P 26 -P 29
%patch -P 30 -P 32 -P 33 -P 34 -P 36 -P 38
%patch -P 43 -P 46
%patch -P 51
%patch -P 60 -P 61 -P 66 -P 67 -P 69
-%patch -P 70 -P 71 -P 73 -P 77 -P 78 -P 79
+%patch -P 70 -P 71 -P 73 -P 77 -P 78
%patch -P 85
%patch -P 93 -P 94 -P 99
%patch -P 100 -P 102 -P 103
%patch -P 117
%patch -P 122 -P 123 -P 131 -P 133 -P 134
-%patch -p1 -P 135
-%patch -P 180
+%patch -P 135 -P 180
%ifarch aarch64 ppc64le riscv64
%patch6464
@@ -400,6 +397,7 @@ fi
%{_bindir}/rpmdb
%{_bindir}/rpmgraph
%{_bindir}/rpmkeys
+ %{_bindir}/rpmlua
%{_bindir}/rpmqpack
%{_bindir}/rpmquery
%{_bindir}/rpmsign
@@ -415,6 +413,8 @@ fi
/usr/lib/rpm/rpmpopt-*
/usr/lib/rpm/rpmrc
/usr/lib/rpm/rpmsort
+ /usr/lib/rpm/rpmuncompress
+ /usr/lib/rpm/rpm_macros_provides.sh
/usr/lib/rpm/suse
/usr/lib/rpm/tgpg
%{_libdir}/rpm-plugins
diff --git a/rpmqpack.diff b/rpmqpack.diff
index e09b0e1..a381533 100644
--- a/rpmqpack.diff
+++ b/rpmqpack.diff
@@ -1,6 +1,6 @@
---- Makefile.am.orig 2021-06-21 12:00:44.552611187 +0000
-+++ Makefile.am 2021-09-23 19:17:54.619555392 +0000
-@@ -175,6 +175,10 @@ rpmgraph_LDADD = lib/librpm.la rpmio/lib
+--- Makefile.am.orig 2022-08-30 11:42:23.754853580 +0000
++++ Makefile.am 2022-12-02 13:15:01.631426573 +0000
+@@ -186,6 +186,10 @@ rpmgraph_LDADD = lib/librpm.la rpmio/lib
dist_bin_SCRIPTS = scripts/gendiff
@@ -11,19 +11,19 @@
rpmconfig_DATA = rpmrc
rpmrc: $(top_srcdir)/rpmrc.in
@$(SED) \
---- docs/man/Makefile.am.orig 2021-08-20 08:44:56.263259000 +0000
-+++ docs/man/Makefile.am 2021-09-23 19:17:54.619555392 +0000
+--- docs/man/Makefile.am.orig 2022-04-07 11:13:18.958517604 +0000
++++ docs/man/Makefile.am 2022-12-02 13:16:00.071289072 +0000
@@ -9,7 +9,7 @@ EXTRA_DIST += gendiff.1.md
man_man8dir = $(mandir)/man8
man_man8_DATA = rpm.8 rpm-misc.8 rpmbuild.8 rpmdeps.8 rpmgraph.8 rpm2cpio.8
--man_man8_DATA += rpmdb.8 rpmkeys.8 rpmsign.8 rpmspec.8
-+man_man8_DATA += rpmdb.8 rpmkeys.8 rpmsign.8 rpmspec.8 rpmqpack.8
+-man_man8_DATA += rpmdb.8 rpmkeys.8 rpmsign.8 rpmspec.8 rpmlua.8
++man_man8_DATA += rpmdb.8 rpmkeys.8 rpmsign.8 rpmspec.8 rpmlua.8 rpmqpack.8
EXTRA_DIST += rpm.8.md rpm-misc.8.md rpmbuild.8.md rpmdeps.8.md rpmgraph.8.md
EXTRA_DIST += rpm2cpio.8.md rpmdb.8.md rpmkeys.8.md rpmsign.8.md rpmspec.8.md
---- docs/man/rpmqpack.8.orig 2021-09-23 19:17:54.619555392 +0000
-+++ docs/man/rpmqpack.8 2021-09-23 19:17:54.619555392 +0000
+--- docs/man/rpmqpack.8.orig 2022-12-02 13:15:01.635426563 +0000
++++ docs/man/rpmqpack.8 2022-12-02 13:15:01.635426563 +0000
@@ -0,0 +1,25 @@
+.TH RPMQPACK 8 "Mar 2002"
+.SH NAME
@@ -50,8 +50,8 @@
+
+.SH AUTHOR
+Michael Schroeder
---- rpmqpack.c.orig 2021-09-23 19:17:54.619555392 +0000
-+++ rpmqpack.c 2021-09-23 19:17:54.619555392 +0000
+--- rpmqpack.c.orig 2022-12-02 13:15:01.635426563 +0000
++++ rpmqpack.c 2022-12-02 13:15:01.635426563 +0000
@@ -0,0 +1,60 @@
+#include
+#include
diff --git a/rpmrc.diff b/rpmrc.diff
index 18fbc07..1804678 100644
--- a/rpmrc.diff
+++ b/rpmrc.diff
@@ -1,5 +1,5 @@
---- rpmrc.in.orig 2019-06-26 14:17:31.451985635 +0000
-+++ rpmrc.in 2019-10-02 11:24:49.601403844 +0000
+--- rpmrc.in.orig 2022-04-07 11:13:19.072518377 +0000
++++ rpmrc.in 2022-12-02 13:14:27.719506789 +0000
@@ -12,16 +12,16 @@
# "fat" binary with both archs, for Darwin
optflags: fat -O2 -g -arch i386 -arch ppc
@@ -67,7 +67,7 @@
optflags: armv7hnl -O2 -g -march=armv7-a -mfloat-abi=hard -mfpu=neon
optflags: armv8l -O2 -g -march=armv8-a
optflags: armv8hl -O2 -g -march=armv8-a -mfloat-abi=hard -mfpu=vfpv4
-@@ -95,8 +96,8 @@ optflags: atariclone -O2 -g -fomit-frame
+@@ -93,8 +94,8 @@ optflags: atariclone -O2 -g -fomit-frame
optflags: milan -O2 -g -fomit-frame-pointer
optflags: hades -O2 -g -fomit-frame-pointer
@@ -112,9 +112,9 @@
buildarchtranslate: ppc8260: ppc
buildarchtranslate: ppc8560: ppc
buildarchtranslate: ppc32dy4: ppc
-@@ -398,6 +400,15 @@ buildarchtranslate: arm64: aarch64
- buildarchtranslate: riscv: riscv64
- buildarchtranslate: riscv64: riscv64
+@@ -397,6 +399,15 @@ buildarchtranslate: riscv64: riscv64
+
+ buildarchtranslate: loongarch64: loongarch64
+buildarchtranslate: parisc: hppa
+buildarchtranslate: hppa2.0: hppa
@@ -128,7 +128,7 @@
#############################################################
# Architecture compatibility
-@@ -462,16 +473,20 @@ arch_compat: mips64r6el: mipsr6el
+@@ -461,16 +472,20 @@ arch_compat: mips64r6el: mipsr6el
arch_compat: hppa2.0: hppa1.2
arch_compat: hppa1.2: hppa1.1
arch_compat: hppa1.1: hppa1.0
@@ -151,7 +151,7 @@
arch_compat: armv4tl: armv4l
arch_compat: armv4l: armv3l
arch_compat: armv3l: noarch
-@@ -497,7 +512,7 @@ arch_compat: i370: noarch
+@@ -493,7 +508,7 @@ arch_compat: i370: noarch
arch_compat: s390: noarch
arch_compat: s390x: s390 noarch
@@ -160,7 +160,7 @@
arch_compat: x86_64: amd64 em64t athlon noarch
arch_compat: amd64: x86_64 em64t athlon noarch
-@@ -623,7 +638,8 @@ buildarch_compat: armv6hl: noarch
+@@ -619,7 +634,8 @@ buildarch_compat: armv6hl: noarch
buildarch_compat: hppa2.0: hppa1.2
buildarch_compat: hppa1.2: hppa1.1
buildarch_compat: hppa1.1: hppa1.0
diff --git a/selinux_transactional_update.patch b/selinux_transactional_update.patch
index f02d24d..46c1ee0 100644
--- a/selinux_transactional_update.patch
+++ b/selinux_transactional_update.patch
@@ -1,8 +1,6 @@
-Index: rpm-4.17.1.1/plugins/selinux.c
-===================================================================
---- rpm-4.17.1.1.orig/plugins/selinux.c
-+++ rpm-4.17.1.1/plugins/selinux.c
-@@ -7,6 +7,7 @@
+--- plugins/selinux.c.orig 2022-04-07 11:13:19.027518072 +0000
++++ plugins/selinux.c 2022-12-02 13:59:42.185032111 +0000
+@@ -8,6 +8,7 @@
#include
#include
#include "lib/rpmplugin.h"
@@ -10,20 +8,17 @@ Index: rpm-4.17.1.1/plugins/selinux.c
#include "debug.h"
-@@ -165,9 +166,15 @@ static rpmRC selinux_fsm_file_prepare(rp
- char *scon = NULL;
- if (selabel_lookup_raw(sehandle, &scon, dest, file_mode) == 0) {
- int conrc = lsetfilecon(path, scon);
--
+@@ -173,6 +174,13 @@ static rpmRC selinux_fsm_file_prepare(rp
+
if (conrc == 0 || (conrc < 0 && errno == EOPNOTSUPP))
rc = RPMRC_OK;
+ else {
+ char *tup = getenv("TRANSACTIONAL_UPDATE");
-+ if ( tup != NULL && ! strncmp( tup, "true", 4 ) ) {
++ if (tup != NULL && !strncmp(tup, "true", 4)) {
+ rpmlog(RPMLOG_DEBUG, "lsetfilecon failed, will be healed upon reboot (transactional update): (%s, %s)\n", path, scon);
+ rc = RPMRC_OK;
+ }
+ }
- rpmlog(loglvl(rc != RPMRC_OK), "lsetfilecon: (%s, %s) %s\n",
- path, scon, (conrc < 0 ? strerror(errno) : ""));
+ rpmlog(loglvl(rc != RPMRC_OK), "lsetfilecon: (%d %s, %s) %s\n",
+ fd, path, scon, (conrc < 0 ? strerror(errno) : ""));