From 87f5e4610f4eea69ebbe1f37e139e57f4053e25c0122065077bb56ef07e5a7b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Schr=C3=B6der?= Date: Wed, 11 Oct 2023 15:13:46 +0000 Subject: [PATCH] - update to rpm-4.19.0 OBS-URL: https://build.opensuse.org/package/show/Base:System/rpm?expand=0&rev=641 --- brp-compress-no-img.patch | 4 +- brp.diff | 22 ++-- brpcompress.diff | 8 +- build.diff | 10 +- cpuid_lzcnt.patch | 48 ------- enable-postin-scripts-error.diff | 18 +-- fileattrs.diff | 17 +-- findlang.diff | 39 +++--- findsupplements.diff | 34 ++--- langnoc.diff | 32 ++--- libmagic-exceptions.patch | 29 ----- macrosin.diff | 26 ++-- platformin.diff | 50 ++++---- posttrans.diff | 70 ++++++----- python-rpm.changes | 5 + python-rpm.spec | 6 +- python_setup.diff | 64 ++++++++++ refreshtestarch.diff | 24 ++-- remove-awk-dependency.patch | 27 ---- rpm-4.18.0.tar.bz2 | 3 - rpm-4.19.0.tar.bz2 | 3 + rpm-findlang-inject-metainfo.patch | 16 +-- rpm.changes | 38 ++++++ rpm.spec | 88 +++++++------ rpmqpack.diff | 55 ++++---- rpmrc.diff | 30 +++-- rpmsort_reverse.diff | 48 +++++++ weakdepscompat.diff | 10 +- whatrequires-doc.diff | 14 --- x86_64-microarchitectures.patch | 196 ----------------------------- zstdpool.diff | 22 ++-- 31 files changed, 453 insertions(+), 603 deletions(-) delete mode 100644 cpuid_lzcnt.patch delete mode 100644 libmagic-exceptions.patch create mode 100644 python_setup.diff delete mode 100644 remove-awk-dependency.patch delete mode 100644 rpm-4.18.0.tar.bz2 create mode 100644 rpm-4.19.0.tar.bz2 create mode 100644 rpmsort_reverse.diff delete mode 100644 whatrequires-doc.diff delete mode 100644 x86_64-microarchitectures.patch diff --git a/brp-compress-no-img.patch b/brp-compress-no-img.patch index 6db13e5..7d96e3a 100644 --- a/brp-compress-no-img.patch +++ b/brp-compress-no-img.patch @@ -7,5 +7,5 @@ + 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$//'`;; + *.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 f947963..5774181 100644 --- a/brp.diff +++ b/brp.diff @@ -1,5 +1,5 @@ ---- 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 +--- scripts/brp-strip-comment-note.orig 2023-09-19 10:10:10.000000000 +0000 ++++ scripts/brp-strip-comment-note 2023-10-09 12:22:27.504732553 +0000 @@ -15,7 +15,7 @@ esac # Strip .comment and .note sections (the latter only if it is not allocated) @@ -9,11 +9,13 @@ note="-R .note" if $OBJDUMP -h $f | grep '^[ ]*[0-9]*[ ]*.note[ ]' -A 1 | \ 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 - find "$RPM_BUILD_ROOT" -type f \! -regex "${RPM_BUILD_ROOT}/*usr/lib/debug.*" \! -name "*.go" -print0 | \ -- xargs -0 -r -P$NCPUS -n32 sh -c "file \"\$@\" | sed -n -e 's/^\(.*\):[ ]*ELF.*, not stripped.*/\1/p' | grep -v 'no machine' | xargs -I\{\} $STRIP -g \{\}" ARG0 -+ xargs -0 -r -P$NCPUS -n32 sh -c "file \"\$@\" | grep -v ' shared object,' | grep -v '/lib/modules/ | sed -n -e 's/^\(.*\):[ ]*ELF.*, not stripped.*/\1/p' | grep -v 'no machine' | xargs -I\{\} $STRIP -g \{\}" ARG0 +--- scripts/brp-strip.orig 2023-09-19 10:10:10.000000000 +0000 ++++ scripts/brp-strip 2023-10-09 12:24:36.920521652 +0000 +@@ -35,6 +35,7 @@ strip_elf_binaries() + ! -regex "${RPM_BUILD_ROOT}/*usr/lib/debug.*" \ + ! -name "*.go" -links "${nlinks}" -print0 | \ + xargs -0 -r -P${nprocs} -n${MAX_ARGS} sh -c "file \"\$@\" | \ ++ grep -v ' shared object,' | grep -v '/lib/modules/ | \ + sed -n -e 's/^\(.*\):[ ]*ELF.*, not stripped.*/\1/p' | \ + grep -v 'no machine' | \ + xargs -I\{\} $STRIP -g \{\}" ARG0 diff --git a/brpcompress.diff b/brpcompress.diff index dbcf8f1..d3d2184 100644 --- a/brpcompress.diff +++ b/brpcompress.diff @@ -49,10 +49,10 @@ - *.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\)$//'`;; ++ *.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 diff --git a/build.diff b/build.diff index 51b6152..ee28a2c 100644 --- a/build.diff +++ b/build.diff @@ -1,6 +1,6 @@ ---- installplatform -+++ installplatform -@@ -118,6 +118,11 @@ +--- installplatform.orig 2023-09-19 10:10:10.000000000 +0000 ++++ installplatform 2023-10-09 12:56:44.709209329 +0000 +@@ -210,6 +210,11 @@ for ARCH in noarch `grep ^arch_canon $RP PPD="${DESTDIR}/${platformdir}/${ARCH}-${OS}" [ -d $PPD ] || mkdir -p $PPD @@ -10,5 +10,5 @@ + fi + cat $PLATFORM \ - | sed -e "s,@RPMRC_OPTFLAGS@,$RPMRC_OPTFLAGS," \ - -e "s,@RPMCANONARCH@,$CANONARCH,g" \ + | sed -e "s,=RPMRC_OPTFLAGS=,$RPMRC_OPTFLAGS," \ + -e "s,=RPMCANONARCH=,$CANONARCH,g" \ diff --git a/cpuid_lzcnt.patch b/cpuid_lzcnt.patch deleted file mode 100644 index 3353e74..0000000 --- a/cpuid_lzcnt.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 6b7c58474df3b416b1acb8b58e73b7edf73b8c43 Mon Sep 17 00:00:00 2001 -From: Fabian Vogt -Date: Mon, 6 Mar 2023 17:50:42 +0100 -Subject: [PATCH] The bit for LZCNT is in CPUID 0x80000001, not 1 - -The GCC headers put bit_LZCNT into the list for CPUID 1 %ecx values, but that -corresponds to VMX. LZCNT is actually advertised in CPUID 0x80000001 %ecx, -which is also referred to as "ABM" by AMD and some other places. ---- - lib/rpmrc.c | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - -diff --git lib/rpmrc.c lib/rpmrc.c -index fc2ed5fe2..66ce947ae 100644 ---- lib/rpmrc.c -+++ lib/rpmrc.c -@@ -747,7 +747,6 @@ static inline void cpuid(uint32_t op, uint32_t op2, uint32_t *eax, uint32_t *ebx - /* Features (%eax == 1) */ - /* %ecx */ - #define bit_SSE3 (1 << 0) --#define bit_LZCNT (1 << 5) - #define bit_SSSE3 (1 << 9) - #define bit_FMA (1 << 12) - #define bit_CMPXCHG16B (1 << 13) -@@ -762,6 +761,7 @@ static inline void cpuid(uint32_t op, uint32_t op2, uint32_t *eax, uint32_t *ebx - /* Extended Features (%eax == 0x80000001) */ - /* %ecx */ - #define bit_LAHF_LM (1 << 0) -+#define bit_LZCNT (1 << 5) - - /* Extended Features (%eax == 7) */ - /* %ebx */ -@@ -787,9 +787,10 @@ static int get_x86_64_level(void) - if ((op_1_ecx & op_1_ecx_lv2) == op_1_ecx_lv2 && (op_80000001_ecx & bit_LAHF_LM)) - level = 2; - -- const unsigned int op_1_ecx_lv3 = bit_LZCNT | bit_FMA | bit_MOVBE | bit_OSXSAVE | bit_AVX | bit_F16C; -+ const unsigned int op_1_ecx_lv3 = bit_FMA | bit_MOVBE | bit_OSXSAVE | bit_AVX | bit_F16C; - const unsigned int op_7_ebx_lv3 = bit_BMI | bit_AVX2 | bit_BMI2; -- if (level == 2 && (op_1_ecx & op_1_ecx_lv3) == op_1_ecx_lv3 && (op_7_ebx & op_7_ebx_lv3) == op_7_ebx_lv3) -+ if (level == 2 && (op_1_ecx & op_1_ecx_lv3) == op_1_ecx_lv3 && (op_7_ebx & op_7_ebx_lv3) == op_7_ebx_lv3 -+ && (op_80000001_ecx & bit_LZCNT)) - level = 3; - - const unsigned int op_7_ebx_lv4 = bit_AVX512F | bit_AVX512DQ | bit_AVX512CD | bit_AVX512BW | bit_AVX512VL; --- -2.39.2 - diff --git a/enable-postin-scripts-error.diff b/enable-postin-scripts-error.diff index d7d4beb..81cefd7 100644 --- a/enable-postin-scripts-error.diff +++ b/enable-postin-scripts-error.diff @@ -1,6 +1,6 @@ ---- lib/rpmscript.c -+++ lib/rpmscript.c -@@ -390,7 +390,7 @@ rpmRC rpmScriptRun(rpmScript script, int +--- lib/rpmscript.c.orig 2023-09-19 10:10:10.000000000 +0000 ++++ lib/rpmscript.c 2023-10-09 13:10:38.011654503 +0000 +@@ -463,7 +463,7 @@ rpmRC rpmScriptRun(rpmScript script, int if (script == NULL) return RPMRC_OK; ARGV_t args = NULL; @@ -9,7 +9,7 @@ RPMLOG_ERR : RPMLOG_WARNING; rpmRC rc; int script_type = RPMSCRIPTLET_FORK | RPMSCRIPTLET_EXEC; -@@ -637,5 +637,8 @@ rpmscriptTypes rpmScriptType(rpmScript s +@@ -723,5 +723,8 @@ rpmscriptTypes rpmScriptType(rpmScript s rpmscriptFlags rpmScriptFlags(rpmScript script) { @@ -19,11 +19,11 @@ + flags |= RPMSCRIPT_FLAG_CRITICAL; + return flags; } ---- macros.in -+++ macros.in -@@ -1293,5 +1293,10 @@ end - %{expand:%__scm_setup_%{__scm} %{!-v:-q}}\ - %{!-N:%autopatch %{-v} %{-p:-p%{-p*}}} +--- macros.in.orig 2023-10-09 13:10:35.043659922 +0000 ++++ macros.in 2023-10-09 13:10:38.015654495 +0000 +@@ -1377,5 +1377,10 @@ end + end + } +# Should errors in %post scriptlet be propagated as errors? +# diff --git a/fileattrs.diff b/fileattrs.diff index b093af3..e7e9ae1 100644 --- a/fileattrs.diff +++ b/fileattrs.diff @@ -1,20 +1,21 @@ ---- fileattrs/elf.attr.orig 2021-09-23 19:29:51.474079693 +0000 -+++ fileattrs/elf.attr 2021-09-23 19:35:43.413332593 +0000 -@@ -1,3 +1,4 @@ +--- fileattrs/elf.attr.orig 2023-09-19 10:10:10.000000000 +0000 ++++ fileattrs/elf.attr 2023-10-09 13:07:09.252042587 +0000 +@@ -1,4 +1,4 @@ %__elf_provides %{_rpmconfigdir}/elfdeps --provides %__elf_requires %{_rpmconfigdir}/elfdeps --requires %__elf_magic ^(setuid,? )?(setgid,? )?(sticky )?ELF (32|64)-bit.*$ -+%__elf_exclude_path ^/usr/lib/debug/ ---- fileattrs/perl.attr.orig 2021-06-21 12:00:44.587611741 +0000 -+++ fileattrs/perl.attr 2021-09-23 19:29:51.474079693 +0000 +-%__elf_exclude_path ^/lib/modules/.*\.ko?(\.[[:alnum:]]*)$ ++%__elf_exclude_path (^/usr/lib/debug/)|(^/lib/modules/.*\.ko?(\.[[:alnum:]]*)$) +--- fileattrs/perl.attr.orig 2023-09-19 10:10:10.000000000 +0000 ++++ fileattrs/perl.attr 2023-10-09 12:58:36.893003334 +0000 @@ -1,3 +1,4 @@ -%__perl_requires %{_rpmconfigdir}/perl.req +# disabled for now +#%__perl_requires %{_rpmconfigdir}/perl.req %__perl_magic ^.*[Pp]erl .*$ %__perl_flags exeonly ---- fileattrs/perllib.attr.orig 2021-06-21 12:00:44.587611741 +0000 -+++ fileattrs/perllib.attr 2021-09-23 19:29:51.478079685 +0000 +--- fileattrs/perllib.attr.orig 2023-09-19 10:10:10.000000000 +0000 ++++ fileattrs/perllib.attr 2023-10-09 12:58:36.893003334 +0000 @@ -1,5 +1,6 @@ %__perllib_provides %{_rpmconfigdir}/perl.prov -%__perllib_requires %{_rpmconfigdir}/perl.req diff --git a/findlang.diff b/findlang.diff index b7a8a0d..86eb598 100644 --- a/findlang.diff +++ b/findlang.diff @@ -1,5 +1,5 @@ ---- scripts/find-lang.sh.orig 2021-06-21 12:00:44.650612737 +0000 -+++ scripts/find-lang.sh 2021-09-23 19:12:01.428275661 +0000 +--- scripts/find-lang.sh.orig 2023-09-19 10:10:10.000000000 +0000 ++++ scripts/find-lang.sh 2023-10-09 12:32:44.303726903 +0000 @@ -37,11 +37,11 @@ the top of the tree containing the files PACKAGE_NAME is the %{name} of the package. This should also be the basename of the .mo files. the output is written to @@ -15,7 +15,7 @@ --with-qt find Qt translation files --with-html find HTML files --with-man find localized man pages -@@ -65,9 +65,9 @@ else NAMES[0]=$1 +@@ -66,9 +66,9 @@ else NAMES[0]=$1 fi shift @@ -27,7 +27,7 @@ QT=# MAN=# HTML=# -@@ -89,6 +89,14 @@ while test $# -gt 0 ; do +@@ -91,6 +91,14 @@ while test $# -gt 0 ; do KDE= shift ;; @@ -42,7 +42,7 @@ --with-qt ) QT= shift -@@ -118,11 +126,13 @@ while test $# -gt 0 ; do +@@ -124,11 +132,13 @@ while test $# -gt 0 ; do shift ;; esac @@ -59,7 +59,7 @@ for NAME in ${NAMES[@]}; do -@@ -132,7 +142,7 @@ s:'"$TOP_DIR"':: +@@ -138,7 +148,7 @@ s:'"$TOP_DIR"':: '"$NO_ALL_NAME$MO"'s:\(.*/locale/\)\([^/_]\+\)\(.*/'"$NAME"'\.mo$\):%lang(\2) \1\2\3: s:^\([^%].*\):: s:%lang(C) :: @@ -68,7 +68,7 @@ find "$TOP_DIR" -type d|sed ' s:'"$TOP_DIR"':: -@@ -140,27 +150,27 @@ s:'"$TOP_DIR"':: +@@ -146,27 +156,27 @@ s:'"$TOP_DIR"':: '"$ALL_NAME$GNOME"'s:\(.*/share/help/\)\([^/_]\+\)\([^/]*\)\(/[a-zA-Z0-9.\_\-]\+\)$:%lang(\2) %doc \1\2\3\4/: s:^\([^%].*\):: s:%lang(C) :: @@ -103,7 +103,7 @@ find "$TOP_DIR" -type f|sed ' s:'"$TOP_DIR"':: -@@ -168,7 +178,7 @@ s:'"$TOP_DIR"':: +@@ -174,7 +184,7 @@ s:'"$TOP_DIR"':: '"$ALL_NAME$GNOME"'s:\(.*/omf/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]\+-\([^/.]\+\)\.omf\):%lang(\2) \1: s:^[^%].*:: s:%lang(C) :: @@ -112,7 +112,7 @@ find $TOP_DIR -type d|sed ' s:'"$TOP_DIR"':: -@@ -181,14 +191,14 @@ s:'"$TOP_DIR"':: +@@ -187,14 +197,14 @@ s:'"$TOP_DIR"':: s:%lang(.*) .*/mate/help/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]\+/.*:: s:^\([^%].*\):: s:%lang(C) :: @@ -129,7 +129,7 @@ find "$TOP_DIR" -type f|sed ' s:'"$TOP_DIR"':: -@@ -196,7 +206,7 @@ s:'"$TOP_DIR"':: +@@ -202,7 +212,7 @@ s:'"$TOP_DIR"':: '"$ALL_NAME$MATE"'s:\(.*/omf/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]\+-\([^/.]\+\)\.omf\):%lang(\2) \1: s:^[^%].*:: s:%lang(C) :: @@ -138,7 +138,7 @@ KDE3_HTML=`kde-config --expandvars --install html 2>/dev/null` if [ x"$KDE3_HTML" != x ] && [ -d "$TOP_DIR$KDE3_HTML" ]; then -@@ -208,7 +218,7 @@ s:'"$TOP_DIR"':: +@@ -214,7 +224,7 @@ s:'"$TOP_DIR"':: '"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3: s:^\([^%].*\):: s:%lang(C) :: @@ -147,7 +147,7 @@ fi KDE4_HTML=`kde4-config --expandvars --install html 2>/dev/null` -@@ -221,7 +231,7 @@ s:'"$TOP_DIR"':: +@@ -227,7 +237,7 @@ s:'"$TOP_DIR"':: '"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3: s:^\([^%].*\):: s:%lang(C) :: @@ -156,7 +156,7 @@ fi KF5_HTML=`kf5-config --expandvars --install html 2>/dev/null` -@@ -234,7 +244,7 @@ s:'"$TOP_DIR"':: +@@ -240,7 +250,7 @@ s:'"$TOP_DIR"':: '"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3: s:^\([^%].*\):: s:%lang(C) :: @@ -165,7 +165,7 @@ fi find "$TOP_DIR" -type d|sed ' -@@ -245,7 +255,7 @@ s:'"$TOP_DIR"':: +@@ -251,7 +261,7 @@ s:'"$TOP_DIR"':: '"$ALL_NAME$HTML"'s:\(.*/doc/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3: s:^\([^%].*\):: s:%lang(C) :: @@ -174,7 +174,7 @@ find "$TOP_DIR" -type f -o -type l|sed ' s:'"$TOP_DIR"':: -@@ -258,7 +268,7 @@ s:'"$TOP_DIR"':: +@@ -264,7 +274,7 @@ s:'"$TOP_DIR"':: '"$ALL_NAME$QT"'s:^\([^%].*/[^/]\+_\([a-zA-Z]\+\)\.qm$\):%lang(\2) \1: s:^[^%].*:: s:%lang(C) :: @@ -183,7 +183,7 @@ find "$TOP_DIR" -type d|sed ' s:'"$TOP_DIR"':: -@@ -266,19 +276,24 @@ s:'"$TOP_DIR"':: +@@ -272,22 +282,25 @@ s:'"$TOP_DIR"':: '"$ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+$\):%lang(\2) \1*: s:^\([^%].*\):: s:%lang(C) :: @@ -207,8 +207,9 @@ + rm -f $MO_NAME_NEW exit 1 fi -+ + +sort -u $MO_NAME_NEW >> $MO_NAME +rm -f $MO_NAME_NEW -+ - exit 0 + + if [[ "$SUBPKGS" == "NO" ]]; then + exit 0 diff --git a/findsupplements.diff b/findsupplements.diff index 26cc528..9fac1de 100644 --- a/findsupplements.diff +++ b/findsupplements.diff @@ -1,25 +1,15 @@ ---- 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 -@@ -30,7 +30,7 @@ rpmconfig_SCRIPTS = \ - brp-remove-la-files \ - check-files check-prereqs \ - check-buildroot check-rpaths check-rpaths-worker \ -- find-lang.sh find-requires find-provides \ -+ find-lang.sh find-requires find-provides find-supplements \ - perl.prov perl.req \ - pkgconfigdeps.sh \ - ocamldeps.sh \ ---- scripts/find-supplements.orig 2022-12-02 13:21:08.886566747 +0000 -+++ scripts/find-supplements 2022-12-02 13:21:08.886566747 +0000 +--- scripts/CMakeLists.txt.orig 2023-10-09 13:14:50.011193421 +0000 ++++ scripts/CMakeLists.txt 2023-10-09 13:15:00.395174379 +0000 +@@ -5,6 +5,7 @@ install(PROGRAMS + check-files check-prereqs + check-buildroot check-rpaths check-rpaths-worker + find-lang.sh find-requires find-provides ++ find-supplements + perl.prov perl.req + pkgconfigdeps.sh + ocamldeps.sh +--- scripts/find-supplements.orig 2023-10-09 13:14:37.371216603 +0000 ++++ scripts/find-supplements 2023-10-09 13:14:37.371216603 +0000 @@ -0,0 +1,3 @@ +#!/bin/sh + diff --git a/langnoc.diff b/langnoc.diff index 7b0669e..8b8c2a5 100644 --- a/langnoc.diff +++ b/langnoc.diff @@ -1,6 +1,6 @@ ---- macros.in.orig 2021-09-23 19:54:19.515028659 +0000 -+++ macros.in 2021-09-23 19:54:25.495016311 +0000 -@@ -1150,6 +1150,7 @@ package or when debugging this package.\ +--- macros.in.orig 2023-10-09 13:07:58.463949074 +0000 ++++ macros.in 2023-10-09 13:08:04.079938403 +0000 +@@ -1192,6 +1192,7 @@ Supplements: (%{name} = %{version}-%{r # %files -f %{name}.lang # %find_lang %{_rpmconfigdir}/find-lang.sh %{buildroot} @@ -8,9 +8,9 @@ # Commands + opts to use for retrieving remote files # Proxy opts can be set through --httpproxy/--httpport popt aliases, ---- scripts/find-lang.sh.orig 2021-09-23 19:54:19.507028675 +0000 -+++ scripts/find-lang.sh 2021-09-23 19:54:25.495016311 +0000 -@@ -75,6 +75,8 @@ MO= +--- scripts/find-lang.sh.orig 2023-10-09 13:07:58.475949051 +0000 ++++ scripts/find-lang.sh 2023-10-09 13:08:04.079938403 +0000 +@@ -77,6 +77,8 @@ SUBPKGS=NO MO_NAME=${NAMES[0]}.lang ALL_NAME=# NO_ALL_NAME= @@ -19,8 +19,8 @@ while test $# -gt 0 ; do case "${1}" in --with-gnome ) -@@ -118,6 +120,14 @@ while test $# -gt 0 ; do - NO_ALL_NAME=# +@@ -124,6 +126,14 @@ while test $# -gt 0 ; do + SUBPKGS=YES shift ;; + --with-only-C ) @@ -34,7 +34,7 @@ * ) if [ $MO_NAME != ${NAMES[$#]}.lang ]; then NAMES[${#NAMES[@]}]=$MO_NAME -@@ -158,6 +168,8 @@ s:'"$TOP_DIR"':: +@@ -164,6 +174,8 @@ s:'"$TOP_DIR"':: '"$ALL_NAME$MO"'s:\(.*/locale/\)\([^/_]\+\)\(.*\.mo$\):%lang(\2) \1\2\3: '"$NO_ALL_NAME$MO"'s:\(.*/locale/\)\([^/_]\+\)\(.*/'"$NAME"'\.mo$\):%lang(\2) \1\2\3: s:^\([^%].*\):: @@ -43,7 +43,7 @@ s:%lang(C) :: /^$/d' >> $MO_NAME_NEW -@@ -166,19 +178,23 @@ s:'"$TOP_DIR"':: +@@ -172,19 +184,23 @@ s:'"$TOP_DIR"':: '"$NO_ALL_NAME$GNOME"'s:\(.*/share/help/\)\([^/_]\+\)\([^/]*\)\(/'"$NAME"'\)$:%lang(\2) %doc \1\2\3\4/: '"$ALL_NAME$GNOME"'s:\(.*/share/help/\)\([^/_]\+\)\([^/]*\)\(/[a-zA-Z0-9.\_\-]\+\)$:%lang(\2) %doc \1\2\3\4/: s:^\([^%].*\):: @@ -69,7 +69,7 @@ s:%lang(C) :: /^$/d' >> $MO_NAME_NEW -@@ -194,6 +210,8 @@ s:'"$TOP_DIR"':: +@@ -200,6 +216,8 @@ s:'"$TOP_DIR"':: '"$NO_ALL_NAME$GNOME"'s:\(.*/omf/'"$NAME"'/'"$NAME"'-\([^/.]\+\)\.omf\):%lang(\2) \1: '"$ALL_NAME$GNOME"'s:\(.*/omf/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]\+-\([^/.]\+\)\.omf\):%lang(\2) \1: s:^[^%].*:: @@ -78,7 +78,7 @@ s:%lang(C) :: /^$/d' >> $MO_NAME_NEW -@@ -234,6 +252,8 @@ s:'"$TOP_DIR"':: +@@ -240,6 +258,8 @@ s:'"$TOP_DIR"':: '"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+/\):: '"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3: s:^\([^%].*\):: @@ -87,7 +87,7 @@ s:%lang(C) :: /^$/d' >> $MO_NAME_NEW fi -@@ -247,6 +267,8 @@ s:'"$TOP_DIR"':: +@@ -253,6 +273,8 @@ s:'"$TOP_DIR"':: '"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+/\):: '"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3: s:^\([^%].*\):: @@ -96,7 +96,7 @@ s:%lang(C) :: /^$/d' >> $MO_NAME_NEW fi -@@ -284,6 +306,8 @@ s:'"$TOP_DIR"':: +@@ -290,6 +312,8 @@ s:'"$TOP_DIR"':: '"$ALL_NAME$QT"'s:^\([^%].*/[^/]\+_\([a-zA-Z]\+[_@].*\)\.qm$\):%lang(\2) \1: '"$ALL_NAME$QT"'s:^\([^%].*/[^/]\+_\([a-zA-Z]\+\)\.qm$\):%lang(\2) \1: s:^[^%].*:: @@ -105,7 +105,7 @@ s:%lang(C) :: /^$/d' >> $MO_NAME_NEW -@@ -292,6 +316,8 @@ s:'"$TOP_DIR"':: +@@ -298,6 +322,8 @@ s:'"$TOP_DIR"':: '"$ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+/\):: '"$ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+$\):%lang(\2) \1*: s:^\([^%].*\):: @@ -114,7 +114,7 @@ s:%lang(C) :: /^$/d' >> $MO_NAME_NEW -@@ -299,6 +325,8 @@ find "$TOP_DIR" -type f -o -type l|sed - +@@ -305,6 +331,8 @@ find "$TOP_DIR" -type f -o -type l|sed - s:'"$TOP_DIR"':: '"$NO_ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+/'"$NAME"'\.[a-z0-9].*\):%lang(\2) \1*: s:^\([^%].*\):: diff --git a/libmagic-exceptions.patch b/libmagic-exceptions.patch deleted file mode 100644 index 7b14b70..0000000 --- a/libmagic-exceptions.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 4e244280db8d780ac90313785598487f888b8924 Mon Sep 17 00:00:00 2001 -From: Martin Liska -Date: Wed, 15 Mar 2023 19:15:00 +0100 -Subject: [PATCH] add more libmagic exceptions for HTML, SVG and PNG - -I noticed there are ~150K .html files in all libreoffice rpm files -and the detection is significantly delaying package build. Thus, I -introduce more exceptions for commonly used file formats. ---- - build/rpmfc.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git build/rpmfc.c build/rpmfc.c -index 763a68603..cd9e64348 100644 ---- build/rpmfc.c -+++ build/rpmfc.c -@@ -1181,6 +1181,9 @@ static const struct skipped_extension_s skipped_extensions[] = { - { ".h", "C Header", "text/x-c" }, - { ".la", "libtool library file", "text/plain" }, - { ".pc", "pkgconfig file", "text/plain" }, -+ { ".html", "HTML document", "text/html" }, -+ { ".png", "PNG image data", "image/png" }, -+ { ".svg", "SVG Scalable Vector Graphics image", "image/svg+xml" }, - { NULL, NULL, NULL } - }; - --- -2.39.2 - diff --git a/macrosin.diff b/macrosin.diff index 0e5dcc1..361faaa 100644 --- a/macrosin.diff +++ b/macrosin.diff @@ -1,8 +1,6 @@ -Index: macros.in -=================================================================== ---- macros.in.orig -+++ macros.in -@@ -148,6 +148,7 @@ +--- macros.in.orig 2023-10-09 12:34:52.359518015 +0000 ++++ macros.in 2023-10-09 12:34:56.915510497 +0000 +@@ -161,6 +161,7 @@ %{?_unique_debug_names:--unique-debug-suffix "-%{VERSION}-%{RELEASE}.%{_arch}"} \\\ %{?_unique_debug_srcs:--unique-debug-src-base "%{name}-%{VERSION}-%{RELEASE}.%{_arch}"} \\\ %{?_find_debuginfo_dwz_opts} \\\ @@ -10,8 +8,8 @@ Index: macros.in %{?_find_debuginfo_opts} \\\ %{?_debugsource_packages:-S debugsourcefiles.list} \\\ "%{_builddir}/%{?buildsubdir}"\ -@@ -187,7 +188,8 @@ package or when debugging this package.\ - %endif\ +@@ -211,7 +212,8 @@ Supplements: (%{name} = %{version}-%{r + %files langpack-%{1}\ %{nil} -%_defaultdocdir %{_datadir}/doc @@ -20,7 +18,7 @@ Index: macros.in %_defaultlicensedir %{_datadir}/licenses # Following macros for filtering auto deps must not be used in spec files. -@@ -247,7 +249,8 @@ package or when debugging this package.\ +@@ -277,7 +279,8 @@ Supplements: (%{name} = %{version}-%{r %_tmppath %{_var}/tmp # Path to top of build area. @@ -30,7 +28,7 @@ Index: macros.in #============================================================================== # ---- Optional rpmrc macros. -@@ -349,7 +352,7 @@ package or when debugging this package.\ +@@ -379,7 +382,7 @@ Supplements: (%{name} = %{version}-%{r # "w.ufdio" uncompressed # #%_source_payload w9.gzdio @@ -39,7 +37,7 @@ Index: macros.in # Algorithm to use for generating file checksum digests on build. # If not specified or 0, MD5 is used. -@@ -459,6 +462,19 @@ package or when debugging this package.\ +@@ -489,6 +492,19 @@ Supplements: (%{name} = %{version}-%{r # #%_include_minidebuginfo 1 @@ -59,7 +57,7 @@ Index: macros.in # # Include a .gdb_index section in the .debug files. # Requires _enable_debug_packages and gdb-add-index installed. -@@ -491,39 +507,39 @@ package or when debugging this package.\ +@@ -521,39 +537,39 @@ Supplements: (%{name} = %{version}-%{r # Same as for "separate" but if the __debug_package global is set then # the -debuginfo package will have a compatibility link for the main # ELF /usr/lib/debug/.build-id/xx/yyy -> /usr/lib/.build-id/xx/yyy @@ -106,7 +104,7 @@ Index: macros.in # # Use internal dependency generator rather than external helpers? -@@ -542,6 +558,7 @@ package or when debugging this package.\ +@@ -572,6 +588,7 @@ Supplements: (%{name} = %{version}-%{r %__find_requires %{_rpmconfigdir}/find-requires #%__find_conflicts ??? #%__find_obsoletes ??? @@ -114,7 +112,7 @@ Index: macros.in # # Path to file attribute classifications for automatic dependency -@@ -926,7 +943,7 @@ package or when debugging this package.\ +@@ -984,7 +1001,7 @@ Supplements: (%{name} = %{version}-%{r %_build_vendor %{_host_vendor} %_build_os %{_host_os} %_host @host@ @@ -123,7 +121,7 @@ Index: macros.in %_host_cpu @host_cpu@ %_host_vendor @host_vendor@ %_host_os @host_os@ -@@ -1045,11 +1062,13 @@ package or when debugging this package.\ +@@ -1109,11 +1126,13 @@ Supplements: (%{name} = %{version}-%{r #------------------------------------------------------------------------------ # arch macro for all supported 32-bit ARM processors diff --git a/platformin.diff b/platformin.diff index a146e4f..df980b8 100644 --- a/platformin.diff +++ b/platformin.diff @@ -1,5 +1,5 @@ ---- platform.in.orig 2014-06-26 06:51:54.822818260 +0000 -+++ platform.in 2014-08-04 12:38:55.389245494 +0000 +--- platform.in.orig 2023-09-19 10:10:10.000000000 +0000 ++++ platform.in 2023-10-09 12:37:30.431256940 +0000 @@ -41,7 +41,7 @@ %_oldincludedir @oldincludedir@ %_infodir @infodir@ @@ -8,26 +8,26 @@ +%_initddir %{_sysconfdir}/init.d # Deprecated misspelling, present for backwards compatibility. %_initrddir %{_initddir} - %_rundir @RUNDIR@ -@@ -83,3 +83,21 @@ - @apple@# - @apple@%_use_internal_dependency_generator 0 - @apple@%__so dylib -+@suse@#--------------------------------------------------------------------- -+@suse@# Expanded at end of %prep -+@suse@# -+@suse@%__id_u %{__id} -u -+@suse@%__chown_Rhf %{__chown} -Rhf -+@suse@%__chgrp_Rhf %{__chgrp} -Rhf -+@suse@%_fixowner [ `%{__id_u}` = '0' ] && %{__chown_Rhf} root -+@suse@%_fixgroup [ `%{__id_u}` = '0' ] && %{__chgrp_Rhf} root -+@suse@%_fixperms %{__chmod} -Rf a+rX,u+w,g-w,o-w -+@suse@ -+@suse@#--------------------------------------------------------------------- -+@suse@# Expanded at start of %build -+@suse@# -+@suse@%__spec_build_pre %{___build_pre}\ -+@suse@%{?buildroot: %__rm -rf "$RPM_BUILD_ROOT"\ -+@suse@ %__mkdir_p `dirname "$RPM_BUILD_ROOT"`\ -+@suse@ %__mkdir "$RPM_BUILD_ROOT"\ -+@suse@} + %_rundir @rundir@ +@@ -96,3 +96,21 @@ + =apple=# + =apple=%_use_internal_dependency_generator 0 + =apple=%__so dylib ++=suse=#--------------------------------------------------------------------- ++=suse=# Expanded at end of %prep ++=suse=# ++=suse=%__id_u %{__id} -u ++=suse=%__chown_Rhf %{__chown} -Rhf ++=suse=%__chgrp_Rhf %{__chgrp} -Rhf ++=suse=%_fixowner [ `%{__id_u}` = '0' ] && %{__chown_Rhf} root ++=suse=%_fixgroup [ `%{__id_u}` = '0' ] && %{__chgrp_Rhf} root ++=suse=%_fixperms %{__chmod} -Rf a+rX,u+w,g-w,o-w ++=suse= ++=suse=#--------------------------------------------------------------------- ++=suse=# Expanded at start of %build ++=suse=# ++=suse=%__spec_build_pre %{___build_pre}\ ++=suse=%{?buildroot: %__rm -rf "$RPM_BUILD_ROOT"\ ++=suse= %__mkdir_p `dirname "$RPM_BUILD_ROOT"`\ ++=suse= %__mkdir "$RPM_BUILD_ROOT"\ ++=suse=} diff --git a/posttrans.diff b/posttrans.diff index 80d7575..7247328 100644 --- a/posttrans.diff +++ b/posttrans.diff @@ -1,5 +1,5 @@ ---- 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 +--- include/rpm/rpmcli.h.orig 2023-09-19 10:10:10.000000000 +0000 ++++ include/rpm/rpmcli.h 2023-10-10 11:58:14.336183145 +0000 @@ -306,6 +306,7 @@ enum rpmInstallFlags_e { INSTALL_ALLMATCHES = (1 << 9), /*!< from --allmatches */ INSTALL_REINSTALL = (1 << 10), /*!< from --reinstall */ @@ -24,9 +24,9 @@ */ extern struct rpmInstallArguments_s rpmIArgs; ---- 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); +--- include/rpm/rpmts.h.orig 2023-10-10 11:58:02.576202795 +0000 ++++ include/rpm/rpmts.h 2023-10-10 11:58:14.336183145 +0000 +@@ -253,6 +253,15 @@ int rpmtsOrder(rpmts ts); int rpmtsRun(rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet); /** \ingroup rpmts @@ -42,9 +42,9 @@ * 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[] +--- lib/poptI.c.orig 2023-09-19 10:10:10.000000000 +0000 ++++ lib/poptI.c 2023-10-10 11:58:14.336183145 +0000 +@@ -283,6 +283,10 @@ struct poptOption rpmInstallPoptTable[] &rpmIArgs.installInterfaceFlags, (INSTALL_RESTORE), N_("restore package(s)"), N_("+") }, @@ -55,9 +55,9 @@ 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 +--- lib/psm.c.orig 2023-10-10 11:58:02.560202822 +0000 ++++ lib/psm.c 2023-10-10 11:58:14.336183145 +0000 +@@ -1001,7 +1001,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 2022-09-02 05:48:29.712846716 +0000 -+++ lib/rpminstall.c 2022-12-02 13:27:08.877720656 +0000 +--- lib/rpminstall.c.orig 2023-09-19 10:10:10.000000000 +0000 ++++ lib/rpminstall.c 2023-10-10 11:58:14.336183145 +0000 @@ -6,6 +6,8 @@ #include @@ -77,7 +77,7 @@ #include #include #include /* rpmReadPackageFile, vercmp etc */ -@@ -812,3 +814,32 @@ int rpmInstallSource(rpmts ts, const cha +@@ -830,3 +832,32 @@ int rpmInstallSource(rpmts ts, const cha return rc; } @@ -110,8 +110,8 @@ + argvFree(manifest); + return rc; +} ---- lib/rpmtriggers.c.orig 2022-04-07 11:13:19.020518024 +0000 -+++ lib/rpmtriggers.c 2022-12-02 13:27:08.877720656 +0000 +--- lib/rpmtriggers.c.orig 2023-09-19 10:10:10.000000000 +0000 ++++ lib/rpmtriggers.c 2023-10-10 11:58:14.340183138 +0000 @@ -1,5 +1,6 @@ #include "system.h" @@ -160,8 +160,8 @@ if (tm == RPMSCRIPT_FILETRIGGER) { priorityTag = RPMTAG_FILETRIGGERPRIORITIES; } else { ---- lib/rpmtriggers.h.orig 2022-04-07 11:13:19.020518024 +0000 -+++ lib/rpmtriggers.h 2022-12-02 13:27:08.881720646 +0000 +--- lib/rpmtriggers.h.orig 2023-09-19 10:10:10.000000000 +0000 ++++ lib/rpmtriggers.h 2023-10-10 11:58:14.340183138 +0000 @@ -27,6 +27,10 @@ rpmtriggers rpmtriggersCreate(unsigned i RPM_GNUC_INTERNAL rpmtriggers rpmtriggersFree(rpmtriggers triggers); @@ -173,8 +173,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 2022-04-07 11:13:19.021518031 +0000 -+++ lib/rpmts_internal.h 2022-12-02 13:44:39.803225928 +0000 +--- lib/rpmts_internal.h.orig 2023-09-19 10:10:10.000000000 +0000 ++++ lib/rpmts_internal.h 2023-10-10 11:58:14.340183138 +0000 @@ -94,6 +94,8 @@ struct rpmts_s { int min_writes; /*!< macro minimize_writes used */ @@ -184,9 +184,9 @@ }; #ifdef __cplusplus ---- 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 +--- lib/transaction.c.orig 2023-09-19 10:10:10.000000000 +0000 ++++ lib/transaction.c 2023-10-10 12:00:19.587973127 +0000 +@@ -1475,6 +1475,8 @@ static int rpmtsSetup(rpmts ts, rpmprobF /* Get available space on mounted file systems. */ (void) rpmtsInitDSI(ts); @@ -195,7 +195,7 @@ return 0; } -@@ -1856,22 +1858,26 @@ int rpmtsRun(rpmts ts, rpmps okProbs, rp +@@ -1858,27 +1860,31 @@ int rpmtsRun(rpmts ts, rpmps okProbs, rp /* Actually install and remove packages */ nfailed = rpmtsProcess(ts); @@ -206,9 +206,15 @@ /* Run %posttrans scripts unless disabled */ - if (!(rpmtsFlags(ts) & (RPMTRANS_FLAG_NOPOSTTRANS))) { + if (!ts->dump_posttrans && !(rpmtsFlags(ts) & (RPMTRANS_FLAG_NOPOSTTRANS))) { - rpmlog(RPMLOG_DEBUG, "running post-transaction scripts\n"); + rpmlog(RPMLOG_DEBUG, "running %%posttrans scripts\n"); runTransScripts(ts, PKG_POSTTRANS); } + /* Run %postuntrans scripts unless disabled */ +- if (!(rpmtsFlags(ts) & RPMTRANS_FLAG_NOPOSTUNTRANS)) { ++ if (!ts->dump_posttrans && !(rpmtsFlags(ts) & RPMTRANS_FLAG_NOPOSTUNTRANS)) { + rpmlog(RPMLOG_DEBUG, "running %%postuntrans scripts\n"); + runTransScripts(ts, PKG_POSTUNTRANS); + } /* Run %transfiletriggerpostun scripts unless disabled */ - if (!(rpmtsFlags(ts) & (RPMTRANS_FLAG_NOPOSTTRANS|RPMTRANS_FLAG_NOTRIGGERIN))) { @@ -226,7 +232,7 @@ runTransScripts(ts, PKG_TRANSFILETRIGGERIN); } /* Final exit code */ -@@ -1894,3 +1900,110 @@ exit: +@@ -1901,3 +1907,114 @@ exit: sigaction(SIGPIPE, &oact, NULL); return rc; } @@ -278,7 +284,10 @@ + tsMembers tsmem = rpmtsMembers(ts); + rpmtxn txn = NULL; + /* Ignore SIGPIPE for the duration of transaction */ -+ rpmsqAction_t oact = rpmsqSetAction(SIGPIPE, RPMSQ_IGN); ++ struct sigaction act, oact; ++ memset(&act, 0, sizeof(act)); ++ act.sa_handler = SIG_IGN; ++ sigaction(SIGPIPE, &act, &oact); + /* Force default 022 umask during transaction for consistent results */ + mode_t oldmask = umask(022); + @@ -322,6 +331,7 @@ + /* run posttrans scripts */ + rpmlog(RPMLOG_DEBUG, "running post-transaction scripts\n"); + runTransScripts(ts, PKG_POSTTRANS); ++ runTransScripts(ts, PKG_POSTUNTRANS); + /* run %transfiletriggerin scripts */ + runFileTriggers(ts, NULL, RPMSENSE_TRIGGERIN, RPMSCRIPT_TRANSFILETRIGGER, 0); + /* run %transfiletriggerpostun scrips */ @@ -333,12 +343,12 @@ +exit: + (void) umask(oldmask); + rpmtxnEnd(txn); -+ rpmsqSetAction(SIGPIPE, oact); ++ sigaction(SIGPIPE, &oact, NULL); + rpmtsEmpty(ts); + return rc; +} ---- rpm.c.orig 2022-04-07 11:13:19.067518343 +0000 -+++ rpm.c 2022-12-02 13:55:52.969592594 +0000 +--- rpm.c.orig 2023-09-19 10:10:10.000000000 +0000 ++++ rpm.c 2023-10-10 11:58:14.340183138 +0000 @@ -21,6 +21,7 @@ enum modes { MODE_ERASE = (1 << 2), MODE_RESTORE = (1 << 4), diff --git a/python-rpm.changes b/python-rpm.changes index e7d8b5b..a1b74be 100644 --- a/python-rpm.changes +++ b/python-rpm.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Oct 11 17:07:14 CEST 2023 - mls@suse.de + +- update to rpm-4.19.0 + ------------------------------------------------------------------- Tue May 30 09:07:28 UTC 2023 - Jiri Srain diff --git a/python-rpm.spec b/python-rpm.spec index fff80a0..ac25765 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.18.0 +Version: 4.19.0 Release: 0 Summary: Python Bindings for Manipulating RPM Packages License: GPL-2.0-or-later @@ -29,10 +29,12 @@ Group: Development/Libraries/Python URL: https://rpm.org/ #Git-Clone: https://github.com/rpm-software-management/rpm BuildRequires: %{python_module devel} +BuildRequires: cmake BuildRequires: file-devel BuildRequires: libacl-devel BuildRequires: libbz2-devel BuildRequires: libcap-devel +BuildRequires: libdw-devel BuildRequires: libelf-devel BuildRequires: libgcrypt-devel BuildRequires: libselinux-devel @@ -66,6 +68,8 @@ that will manipulate RPM packages and databases. %{expand:%(sed -n -e '/^%%prep/,/^%%install/p' <%{_sourcedir}/rpm.spec | sed -e '1d' -e '$d')} # The build stage is already declared and pulled in from rpm.spec +cd .. +cp _build/python/setup.py python pushd python %python_build popd diff --git a/python_setup.diff b/python_setup.diff new file mode 100644 index 0000000..8f115fd --- /dev/null +++ b/python_setup.diff @@ -0,0 +1,64 @@ +--- python/CMakeLists.txt.orig 2023-10-11 14:55:22.453584792 +0000 ++++ python/CMakeLists.txt 2023-10-11 14:56:41.989429746 +0000 +@@ -28,5 +28,6 @@ install(DIRECTORY examples TYPE DOC) + + set(egginfo ${PROJECT_NAME}-${PROJECT_VERSION}-py${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}.egg-info) + configure_file(rpm.egg-info.in ${egginfo} @ONLY) ++configure_file(setup.py.in setup.py @ONLY) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${egginfo} + DESTINATION ${Python3_SITEARCH}) +--- python/setup.py.in.orig 2023-10-11 14:55:17.769593923 +0000 ++++ python/setup.py.in 2023-10-11 14:58:39.401200867 +0000 +@@ -0,0 +1,52 @@ ++#!/usr/bin/env python ++ ++from distutils.core import setup, Extension ++import subprocess ++import os ++ ++def pkgconfig(what): ++ out = [] ++ cmd = 'pkg-config %s %s' % (what, '@PROJECT_NAME@') ++ pcout = subprocess.check_output(cmd.split()).decode() ++ for token in pcout.split(): ++ out.append(token[2:]) ++ return out ++ ++cflags = ['-std=c99', '-Wno-strict-aliasing'] ++additional_link_args = [] ++ ++# See if we're building in-tree ++if True: ++ cflags.append('-I../include') ++ additional_link_args.extend(['-Wl,-L../_build/rpmio', ++ '-Wl,-L../_build/lib', ++ '-Wl,-L../_build/build', ++ '-Wl,-L../_build/sign']) ++ os.environ['PKG_CONFIG_PATH'] = '../_build' ++ ++rpmmod = Extension('rpm._rpm', ++ sources = ['header-py.c', 'rpmds-py.c', 'rpmfd-py.c', ++ 'rpmii-py.c', 'rpmkeyring-py.c', ++ 'rpmmacro-py.c', 'rpmmi-py.c', 'rpmps-py.c', ++ 'rpmstrpool-py.c', 'rpmfiles-py.c', ++ 'rpmarchive-py.c', 'rpmtd-py.c', ++ 'rpmte-py.c', 'rpmts-py.c', 'rpmver-py.c', ++ 'spec-py.c', ++ 'rpmmodule.c'], ++ include_dirs = pkgconfig('--cflags'), ++ library_dirs = pkgconfig('--libs-only-L'), ++ libraries = pkgconfig('--libs-only-l') + ['rpmbuild', 'rpmsign'], ++ extra_compile_args = cflags, ++ extra_link_args = additional_link_args ++ ) ++ ++setup(name='@PROJECT_NAME@', ++ version='@PROJECT_VERSION@', ++ description='Python bindings for rpm', ++ maintainer_email='rpm-maint@lists.rpm.org', ++ url='@PROJECT_HOMEPAGE_URL@', ++ license='GNU General Public License v2', ++ packages=['rpm'], ++ ext_modules=[rpmmod] ++ ) ++ diff --git a/refreshtestarch.diff b/refreshtestarch.diff index bc7ea42..183ed6d 100644 --- a/refreshtestarch.diff +++ b/refreshtestarch.diff @@ -1,16 +1,10 @@ -Also test architecture in "refresh" test when not colored. This allows -updates to different architectures. - ---- lib/psm.c.orig 2019-10-02 09:54:56.180565818 +0000 -+++ lib/psm.c 2019-10-02 09:55:02.700552941 +0000 -@@ -518,9 +518,9 @@ static void markReplacedInstance(rpmts t - rpmdbSetIteratorRE(mi, RPMTAG_EPOCH, RPMMIRE_STRCMP, rpmteE(te)); - rpmdbSetIteratorRE(mi, RPMTAG_VERSION, RPMMIRE_STRCMP, rpmteV(te)); - rpmdbSetIteratorRE(mi, RPMTAG_RELEASE, RPMMIRE_STRCMP, rpmteR(te)); +--- lib/psm.c.orig 2023-09-19 10:10:10.000000000 +0000 ++++ lib/psm.c 2023-10-09 12:21:38.576812293 +0000 +@@ -709,6 +709,7 @@ void rpmpsmNotify(rpmpsm psm, int what, + static void markReplacedInstance(rpmts ts, rpmte te) + { + rpmdbMatchIterator mi = rpmtsTeIterator(ts, te, 1); + rpmdbSetIteratorRE(mi, RPMTAG_ARCH, RPMMIRE_STRCMP, rpmteA(te)); - /* XXX shouldn't we also do this on colorless transactions? */ - if (rpmtsColor(ts)) { -- rpmdbSetIteratorRE(mi, RPMTAG_ARCH, RPMMIRE_STRCMP, rpmteA(te)); - rpmdbSetIteratorRE(mi, RPMTAG_OS, RPMMIRE_STRCMP, rpmteO(te)); - } - + while (rpmdbNextIterator(mi) != NULL) { + rpmteSetDBInstance(te, rpmdbGetIteratorOffset(mi)); + break; diff --git a/remove-awk-dependency.patch b/remove-awk-dependency.patch deleted file mode 100644 index 6685485..0000000 --- a/remove-awk-dependency.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 224095542246e762617d38e2096fdeba13d266e3 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Dirk=20M=C3=BCller?= -Date: Tue, 8 Aug 2023 13:53:38 +0200 -Subject: [PATCH] Rewrite --last to just use sed for formatting - -This is the only dependency on awk in the runtime commandline part of -rpm, which is bloating minimal container images a bit. We can rewrite -that into a single sed statement. We love you anyway, awk. ---- - rpmpopt.in | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/rpmpopt.in b/rpmpopt.in -index 8022b0f54a..1223e1a862 100644 ---- ./rpmpopt.in -+++ ./rpmpopt.in -@@ -133,8 +133,8 @@ rpm alias --filetriggerscripts --qf '\ - rpm alias --filetriggers --filetriggerscripts \ - --POPTdesc=$"list filetrigger scriptlets from package(s)" - --rpm alias --last --qf '%|INSTALLTIME?{%{INSTALLTIME}}:{000000000}| %{NVRA} %|INSTALLTIME?{%{INSTALLTIME:date}}:{(not installed)}|\n' \ -- --pipe "LC_NUMERIC=C sort -r -n | sed 's,^[0-9]\+ ,,' | awk '{printf(\"%-45s %-s\n\", $1, substr($0,length($1)+2))}' " \ -+rpm alias --last --qf '%|INSTALLTIME?{%{INSTALLTIME}}:{000000000}| %-45{NVRA} %|INSTALLTIME?{%{INSTALLTIME:date}}:{(not installed)}|\n' \ -+ --pipe "LC_NUMERIC=C sort -r -n | sed 's,^[0-9]\+ ,,' " \ - --POPTdesc=$"list package(s) by install time, most recent first" - - rpm alias --dupes --qf '%|SOURCERPM?{%{name}.%{arch}}:{%|ARCH?{%{name}}:{%{name}-%{version}}|}|\n' --pipe "sort | uniq -d" \ diff --git a/rpm-4.18.0.tar.bz2 b/rpm-4.18.0.tar.bz2 deleted file mode 100644 index 694b7f5..0000000 --- a/rpm-4.18.0.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2a17152d7187ab30edf2c2fb586463bdf6388de7b5837480955659e5e9054554 -size 6600013 diff --git a/rpm-4.19.0.tar.bz2 b/rpm-4.19.0.tar.bz2 new file mode 100644 index 0000000..7ae6ab6 --- /dev/null +++ b/rpm-4.19.0.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b30916dc148cbeab077797e9fc365702931e3a9a7eacf70add84153b549b3f77 +size 5919326 diff --git a/rpm-findlang-inject-metainfo.patch b/rpm-findlang-inject-metainfo.patch index 4feb998..5302e4e 100644 --- a/rpm-findlang-inject-metainfo.patch +++ b/rpm-findlang-inject-metainfo.patch @@ -1,14 +1,14 @@ ---- scripts/find-lang.sh.orig 2018-01-31 13:37:22.810352621 +0000 -+++ scripts/find-lang.sh 2018-01-31 13:39:38.117990971 +0000 -@@ -32,6 +32,7 @@ Additional options: +--- scripts/find-lang.sh.orig 2023-10-09 13:11:05.219604799 +0000 ++++ scripts/find-lang.sh 2023-10-09 13:12:38.787433946 +0000 +@@ -47,6 +47,7 @@ Additional options: --with-man find localized man pages --all-name match all package/domain names --without-mo do not find locale files -+ --metainfo create a metainfo.xml file for AppStream ++ --metainfo create a metainfo.xml file for AppStream + --generate-subpackages move language files in one sub package per language EOF exit 1 - } -@@ -62,6 +63,7 @@ ALL_NAME=# +@@ -79,6 +80,7 @@ ALL_NAME=# NO_ALL_NAME= ONLY_C=# NO_C=# @@ -16,7 +16,7 @@ while test $# -gt 0 ; do case "${1}" in --with-gnome ) -@@ -113,6 +115,11 @@ while test $# -gt 0 ; do +@@ -134,6 +136,11 @@ while test $# -gt 0 ; do NO_C= shift ;; @@ -28,7 +28,7 @@ * ) if [ $MO_NAME != ${NAMES[$#]}.lang ]; then NAMES[${#NAMES[@]}]=$MO_NAME -@@ -323,6 +330,24 @@ if ! grep -q / $MO_NAME_NEW; then +@@ -344,6 +351,24 @@ if ! grep -q / $MO_NAME_NEW; then exit 1 fi diff --git a/rpm.changes b/rpm.changes index f45b4e3..f4497c5 100644 --- a/rpm.changes +++ b/rpm.changes @@ -1,3 +1,41 @@ +------------------------------------------------------------------- +Wed Oct 11 17:07:14 CEST 2023 - mls@suse.de + +- update to rpm-4.19.0 + * new spec snippet support for dynamic spec generation + * new sysusers.d integration for automated user and group handling + * new CMake build system + * removal of various deprecated and/or unused APIs + * various internal code cleanups +- refreshed patches: + * brp-compress-no-img.patch + * brp.diff + * brpcompress.diff + * build.diff + * enable-postin-scripts-error.diff + * fileattrs.diff + * findlang.diff + * findsupplements.diff + * langnoc.diff + * macrosin.diff + * platformin.diff + * posttrans.diff + * refreshtestarch.diff + * rpm-findlang-inject-metainfo.patch + * rpmqpack.diff + * rpmrc.diff + * weakdepscompat.diff + * zstdpool.diff +- deleted patches: + * cpuid_lzcnt.patch + * libmagic-exceptions.patch + * remove-awk-dependency.patch + * whatrequires-doc.diff + * x86_64-microarchitectures.patch +- new patches: + * python_setup.diff + * rpmsort_reverse.diff + ------------------------------------------------------------------- Tue Aug 8 12:39:25 UTC 2023 - Dirk Müller diff --git a/rpm.spec b/rpm.spec index 0d6a74a..d2e0197 100644 --- a/rpm.spec +++ b/rpm.spec @@ -19,11 +19,12 @@ #Compat macro for new _fillupdir macro introduced in Nov 2017 %{?!_fillupdir:%define _fillupdir /var/adm/fillup-templates} -%global librpmsover 9 +%global librpmsover 10 Name: rpm BuildRequires: binutils BuildRequires: bzip2 +BuildRequires: cmake BuildRequires: file-devel BuildRequires: findutils BuildRequires: gcc @@ -56,11 +57,11 @@ Requires: rpm-config-SUSE Summary: The RPM Package Manager License: GPL-2.0-or-later Group: System/Packages -Version: 4.18.0 +Version: 4.19.0 Release: 0 URL: https://rpm.org/ #Git-Clone: https://github.com/rpm-software-management/rpm -Source: http://ftp.rpm.org/releases/rpm-4.17.x/rpm-%{version}.tar.bz2 +Source: https://ftp.rpm.org/releases/rpm-4.19.x/rpm-%{version}.tar.bz2 Source5: rpmsort Source8: rpmconfigcheck Source9: sysconfig.services-rpm @@ -108,12 +109,8 @@ Patch131: posttrans.diff Patch133: zstdpool.diff Patch134: zstdthreaded.diff Patch135: selinux_transactional_update.patch -Patch136: x86_64-microarchitectures.patch -Patch137: cpuid_lzcnt.patch -Patch138: libmagic-exceptions.patch -Patch139: remove-awk-dependency.patch -# touches a generated file -Patch180: whatrequires-doc.diff +Patch136: rpmsort_reverse.diff +Patch137: python_setup.diff Patch6464: auto-config-update-aarch64-ppc64le.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build # @@ -223,8 +220,7 @@ rm -rf sqlite %patch -P 100 -P 102 -P 103 %patch -P 117 %patch -P 122 -P 123 -%patch -P 131 -P 133 -P 134 -P 135 -P 136 -P 137 -P 138 -P 139 -%patch -P 180 +%patch -P 131 -P 133 -P 134 -P 135 -P 136 -P 137 %ifarch aarch64 ppc64le riscv64 %patch6464 @@ -247,44 +243,48 @@ BUILDTARGET="--build=x86_64-suse-linux" %else BUILDTARGET="--build=%{_target_cpu}-suse-linux" %endif -export __FIND_DEBUGINFO=/usr/lib/rpm/find-debuginfo -autoreconf -fi -./configure --disable-dependency-tracking --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \ ---libdir=%{_libdir} --sysconfdir=/etc --localstatedir=/var --sharedstatedir=/var/lib \ ---with-lua \ ---with-vendor=suse \ ---with-rundir=/run \ ---without-archive \ ---with-selinux \ ---with-crypto=libgcrypt \ ---with-acl \ ---with-cap \ ---enable-shared \ ---enable-ndb \ ---enable-bdb-ro \ ---enable-zstd \ ---enable-sqlite=no \ -%{?with_python: --enable-python} \ -$BUILDTARGET - -rm po/de.gmo +mkdir _build +cd _build +cmake .. \ + -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \ + -DCMAKE_INSTALL_MANDIR:PATH=share/man \ + -DCMAKE_INSTALL_INFODIR:PATH=share/info \ + -DCMAKE_INSTALL_DOCDIR:PATH=%{_defaultdocdir}/%{NAME} \ + -DCMAKE_INSTALL_LIBDIR:PATH=%{_libdir} \ + -DCMAKE_INSTALL_FULL_SYSCONFDIR:PATH=/etc \ + -DCMAKE_INSTALL_FULL_LOCALSTATEDIR:PATH=/var \ + -DCMAKE_INSTALL_SHAREDSTATEDIR:PATH=/var/lib \ + -DCMAKE_INSTALL_FULL_SHAREDSTATEDIR:PATH=/var/lib \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DRPM_VENDOR=suse \ + -DWITH_ARCHIVE=OFF \ + -DWITH_SELINUX=ON \ + -DWITH_INTERNAL_OPENPGP=ON \ + -DENABLE_NDB=ON \ + -DENABLE_BDB_RO=ON \ + -DENABLE_SQLITE=OFF \ + -DWITH_AUDIT=OFF \ + -DWITH_DBUS=OFF \ + -DENABLE_PYTHON=%{?with_python:ON}%{?!with_python:OFF} \ + -DENABLE_TESTSUITE=OFF \ + -D__FIND_DEBUGINFO=/usr/lib/rpm/find-debuginfo \ + -D__AR:FILEPATH=ar -D__AS:FILEPATH=as \ + -D__CC:FILEPATH=gcc -D__CPP:FILEPATH="gcc -E" -D__CXX:FILEPATH=g++ \ + -D__GPG:FILEPATH=/usr/bin/gpg2 -D__AWK:FILEPATH=/usr/bin/gawk make %{?_smp_mflags} %install mkdir -p %{buildroot}/usr/lib mkdir -p %{buildroot}/usr/share/locale ln -s ../share/locale %{buildroot}/usr/lib/locale +pushd _build %make_install +popd mkdir -p %{buildroot}/bin %if 0%{?suse_version} < 1550 ln -s /usr/bin/rpm %{buildroot}/bin/rpm %endif -# remove .la file and the static variant of libpopt -# have to remove the dependency from other .la files as well -for f in %{buildroot}/%{_libdir}/*.la; do - sed -i -e "s,/%_lib/libpopt.la,-lpopt,g" $f -done mkdir -p %{buildroot}/usr/sbin install -m 755 %{SOURCE8} %{buildroot}/usr/sbin mkdir -p %{buildroot}/usr/lib/systemd/system @@ -302,7 +302,6 @@ for d in %{buildroot}/usr/lib/rpm/platform/*-linux/macros ; do chmod 755 %{buildroot}/usr/src/packages/RPMS/$dd done mkdir -p %{buildroot}/usr/lib/sysimage/rpm -gzip -9 %{buildroot}/%{_mandir}/man[18]/*.[18] export RPM_BUILD_ROOT %ifarch s390x [ -f scripts/brp-%_arch-linux ] && sh scripts/brp-%_arch-linux @@ -338,8 +337,6 @@ install -m 755 build-aux/config.guess %{buildroot}/usr/lib/rpm install -m 755 build-aux/config.sub %{buildroot}/usr/lib/rpm %endif rm -rf %{buildroot}/%{_libdir}/python%{py_ver} -rm -f %{buildroot}%{_libdir}/*.la -rm -f %{buildroot}%{_libdir}/rpm-plugins/*.la bash %{buildroot}/usr/lib/rpm/find-lang.sh %{buildroot} rpm # On arm the kernel architecture is ignored. Not the best idea, but lets stay compatible with other distros %ifarch armv7hl armv6hl @@ -348,10 +345,6 @@ bash %{buildroot}/usr/lib/rpm/find-lang.sh %{buildroot} rpm echo -n "%{_target_cpu}-suse-linux-gnueabi" > %{buildroot}/etc/rpm/platform %endif -# make ndb the default database backend -echo "setting the default database backend to 'ndb'" -sed -i -e '/_db_backend/s/sqlite/ndb/' %{buildroot}/usr/lib/rpm/macros - %post %{fillup_only -an services} @@ -391,7 +384,8 @@ fi %files -f rpm.lang %defattr(-,root,root) %license COPYING -%doc docs/manual +%doc %{_datadir}/doc/packages/rpm +%exclude %{_datadir}/doc/packages/rpm/API /etc/rpm %if 0%{?suse_version} < 1550 /bin/rpm @@ -407,6 +401,7 @@ fi %{_bindir}/rpmquery %{_bindir}/rpmsign %{_bindir}/rpmverify + %{_bindir}/rpmsort /usr/sbin/rpmconfigcheck /usr/lib/systemd/system/rpmconfigcheck.service %dir /usr/lib/rpm @@ -421,6 +416,7 @@ fi /usr/lib/rpm/rpmuncompress /usr/lib/rpm/rpm_macros_provides.sh /usr/lib/rpm/suse + /usr/lib/rpm/sysusers.sh /usr/lib/rpm/tgpg %{_libdir}/rpm-plugins %{_libdir}/librpm.so.* @@ -479,5 +475,7 @@ fi %{_libdir}/librpmio.so %{_libdir}/librpmsign.so %{_libdir}/pkgconfig/rpm.pc +%{_libdir}/cmake/rpm +%doc %{_datadir}/doc/packages/rpm/API %changelog diff --git a/rpmqpack.diff b/rpmqpack.diff index 393aeb7..e841c72 100644 --- a/rpmqpack.diff +++ b/rpmqpack.diff @@ -1,29 +1,34 @@ ---- 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 +--- CMakeLists.txt.orig 2023-10-09 12:50:53.949849590 +0000 ++++ CMakeLists.txt 2023-10-09 12:54:15.741481853 +0000 +@@ -403,6 +403,7 @@ add_executable(rpm2cpio rpm2cpio.c cliut + add_executable(rpmsign rpmsign.c cliutils) + add_executable(rpmbuild rpmbuild.c cliutils) + add_executable(rpmspec rpmspec.c cliutils) ++add_executable(rpmqpack rpmqpack.c) - dist_bin_SCRIPTS = scripts/gendiff + add_executable(rpmdeps tools/rpmdeps.c) + add_executable(rpmgraph tools/rpmgraph.c) +@@ -443,7 +444,7 @@ foreach(cmd rpmverify rpmquery) + endforeach() + install(TARGETS + rpm rpmdb rpmkeys rpm2cpio rpmsign rpmbuild rpmspec +- rpmlua rpmgraph rpmsort ++ rpmlua rpmgraph rpmsort rpmqpack + ) + install(TARGETS elfdeps rpmdeps rpmuncompress DESTINATION ${RPM_CONFIGDIR}) -+bin_PROGRAMS += rpmqpack -+rpmqpack_SOURCES = rpmqpack.c -+rpmqpack_LDADD = lib/librpm.la -+ - rpmconfig_DATA = rpmrc - rpmrc: $(top_srcdir)/rpmrc.in - @$(SED) \ ---- 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 +--- docs/man/CMakeLists.txt.orig 2023-10-09 12:55:04.805392271 +0000 ++++ docs/man/CMakeLists.txt 2023-10-09 12:55:18.745366812 +0000 +@@ -3,6 +3,7 @@ set(manuals + gendiff.1 rpm2cpio.8 + rpm.8 rpmbuild.8 rpmdb.8 rpmkeys.8 rpmsign.8 rpmspec.8 + rpmdeps.8 rpmgraph.8 rpmlua.8 rpm-misc.8 rpmsort.8 ++ rpmqpack.8 + ) - 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 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 2022-12-02 13:15:01.635426563 +0000 -+++ docs/man/rpmqpack.8 2022-12-02 13:15:01.635426563 +0000 + if (WITH_ARCHIVE) +--- docs/man/rpmqpack.8.orig 2023-10-09 12:50:23.509904470 +0000 ++++ docs/man/rpmqpack.8 2023-10-09 12:50:23.509904470 +0000 @@ -0,0 +1,25 @@ +.TH RPMQPACK 8 "Mar 2002" +.SH NAME @@ -50,8 +55,8 @@ + +.SH AUTHOR +Michael Schroeder ---- rpmqpack.c.orig 2022-12-02 13:15:01.635426563 +0000 -+++ rpmqpack.c 2022-12-02 13:15:01.635426563 +0000 +--- rpmqpack.c.orig 2023-10-09 12:50:23.509904470 +0000 ++++ rpmqpack.c 2023-10-09 12:50:23.509904470 +0000 @@ -0,0 +1,60 @@ +#include +#include diff --git a/rpmrc.diff b/rpmrc.diff index 83888fc..e6cf773 100644 --- a/rpmrc.diff +++ b/rpmrc.diff @@ -1,6 +1,6 @@ ---- 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 @@ +--- rpmrc.in.orig 2023-09-19 10:10:10.000000000 +0000 ++++ rpmrc.in 2023-10-09 12:44:42.206519465 +0000 +@@ -12,19 +12,19 @@ # "fat" binary with both archs, for Darwin optflags: fat -O2 -g -arch i386 -arch ppc @@ -21,12 +21,18 @@ optflags: geode -Os -g -m32 -march=geode -optflags: ia64 -O2 -g -optflags: x86_64 -O2 -g +-optflags: x86_64_v2 -O2 -g -march=x86-64-v2 +-optflags: x86_64_v3 -O2 -g -march=x86-64-v3 +-optflags: x86_64_v4 -O2 -g -march=x86-64-v4 +optflags: ia64 -O2 -g -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables +optflags: x86_64 -O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables ++optflags: x86_64_v2 -O2 -g -march=x86-64-v2 -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables ++optflags: x86_64_v3 -O2 -g -march=x86-64-v3 -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables ++optflags: x86_64_v4 -O2 -g -march=x86-64-v4 -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables optflags: amd64 -O2 -g optflags: ia32e -O2 -g -@@ -41,17 +41,18 @@ optflags: sparc64v -O2 -g -m64 -mtune=ni +@@ -44,17 +44,18 @@ optflags: sparc64v -O2 -g -m64 -mtune=ni optflags: m68k -O2 -g -fomit-frame-pointer @@ -54,7 +60,7 @@ optflags: hppa1.0 -O2 -g -mpa-risc-1-0 optflags: hppa1.1 -O2 -g -mpa-risc-1-0 optflags: hppa1.2 -O2 -g -mpa-risc-1-0 -@@ -75,10 +76,10 @@ optflags: armv5tl -O2 -g -march=armv5t +@@ -78,10 +79,10 @@ optflags: armv5tl -O2 -g -march=armv5t optflags: armv5tel -O2 -g -march=armv5te optflags: armv5tejl -O2 -g -march=armv5te optflags: armv6l -O2 -g -march=armv6 @@ -67,7 +73,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 -@@ -93,8 +94,8 @@ optflags: atariclone -O2 -g -fomit-frame +@@ -96,8 +97,8 @@ optflags: atariclone -O2 -g -fomit-frame optflags: milan -O2 -g -fomit-frame-pointer optflags: hades -O2 -g -fomit-frame-pointer @@ -78,7 +84,7 @@ optflags: sh3 -O2 -g optflags: sh4 -O2 -g -mieee -@@ -300,17 +301,17 @@ os_canon: MacOSX: macosx 21 +@@ -309,17 +310,17 @@ os_canon: MacOSX: macosx 21 ############################################################# # For a given uname().machine, the default build arch @@ -104,7 +110,7 @@ buildarchtranslate: i486: i386 buildarchtranslate: i386: i386 -@@ -332,6 +333,7 @@ buildarchtranslate: sparc64v: sparc64 +@@ -341,6 +342,7 @@ buildarchtranslate: sparc64v: sparc64 buildarchtranslate: osfmach3_ppc: ppc buildarchtranslate: powerpc: ppc buildarchtranslate: powerppc: ppc @@ -112,7 +118,7 @@ buildarchtranslate: ppc8260: ppc buildarchtranslate: ppc8560: ppc buildarchtranslate: ppc32dy4: ppc -@@ -397,6 +399,15 @@ buildarchtranslate: riscv64: riscv64 +@@ -409,6 +411,15 @@ buildarchtranslate: riscv64: riscv64 buildarchtranslate: loongarch64: loongarch64 @@ -128,7 +134,7 @@ ############################################################# # Architecture compatibility -@@ -461,16 +472,20 @@ arch_compat: mips64r6el: mipsr6el +@@ -473,16 +484,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 +157,7 @@ arch_compat: armv4tl: armv4l arch_compat: armv4l: armv3l arch_compat: armv3l: noarch -@@ -493,7 +508,7 @@ arch_compat: i370: noarch +@@ -505,7 +520,7 @@ arch_compat: i370: noarch arch_compat: s390: noarch arch_compat: s390x: s390 noarch @@ -160,7 +166,7 @@ arch_compat: x86_64: amd64 em64t athlon noarch arch_compat: amd64: x86_64 em64t athlon noarch -@@ -619,7 +634,8 @@ buildarch_compat: armv6hl: noarch +@@ -634,7 +649,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/rpmsort_reverse.diff b/rpmsort_reverse.diff new file mode 100644 index 0000000..a1d9457 --- /dev/null +++ b/rpmsort_reverse.diff @@ -0,0 +1,48 @@ +--- tools/rpmsort.c.orig 2023-10-11 11:38:36.639686209 +0000 ++++ tools/rpmsort.c 2023-10-11 12:01:36.112837741 +0000 +@@ -119,6 +119,11 @@ exit: + return vercmpflag; + } + ++static int package_version_compare_reverse(const void *p, const void *q) ++{ ++ return -package_version_compare(p, q); ++} ++ + static void add_input(const char *filename, char ***package_names, + size_t *n_package_names) + { +@@ -169,7 +174,13 @@ static void add_input(const char *filena + *n_package_names = n_names; + } + +-static struct poptOption optionsTable[] = { POPT_AUTOHELP POPT_TABLEEND }; ++static int reverse = 0; ++ ++static struct poptOption optionsTable[] = { ++ { "reverse", 'r', POPT_ARG_VAL, &reverse, 1, ++ N_("reverse the result of comparisons"), NULL }, ++ POPT_AUTOHELP POPT_TABLEEND ++}; + + int main(int argc, const char *argv[]) + { +@@ -181,7 +192,7 @@ int main(int argc, const char *argv[]) + + optCon = poptGetContext(NULL, argc, argv, optionsTable, 0); + poptSetOtherOptionHelp(optCon, ""); +- if (poptGetNextOpt(optCon) == 0) { ++ if (poptGetNextOpt(optCon) != -1) { + poptPrintUsage(optCon, stderr, 0); + exit(EXIT_FAILURE); + } +@@ -201,7 +212,8 @@ int main(int argc, const char *argv[]) + } + + qsort(package_names, n_package_names, sizeof(char *), +- package_version_compare); ++ reverse ? package_version_compare_reverse ++ : package_version_compare); + + /* Send sorted list to stdout. */ + for (int i = 0; i < n_package_names; i++) { diff --git a/weakdepscompat.diff b/weakdepscompat.diff index 2b117fe..32534bb 100644 --- a/weakdepscompat.diff +++ b/weakdepscompat.diff @@ -1,9 +1,9 @@ ---- build/parsePreamble.c.orig 2014-08-04 13:10:07.530953406 +0000 -+++ build/parsePreamble.c 2014-08-04 13:10:12.852929355 +0000 -@@ -343,6 +343,7 @@ static struct tokenBits_s const installS - { "verify", RPMSENSE_SCRIPT_VERIFY }, - { "pretrans", RPMSENSE_PRETRANS }, +--- build/parsePreamble.c.orig 2023-10-09 13:08:54.579843386 +0000 ++++ build/parsePreamble.c 2023-10-09 13:09:57.843727870 +0000 +@@ -351,6 +351,7 @@ static struct tokenBits_s const installS { "posttrans", RPMSENSE_POSTTRANS }, + { "preuntrans", RPMSENSE_PREUNTRANS }, + { "postuntrans", RPMSENSE_POSTUNTRANS }, + { "hint", RPMSENSE_MISSINGOK }, { NULL, 0 } }; diff --git a/whatrequires-doc.diff b/whatrequires-doc.diff deleted file mode 100644 index d0006ce..0000000 --- a/whatrequires-doc.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- docs/man/rpm.8.orig 2021-09-23 19:20:46.991203867 +0000 -+++ docs/man/rpm.8 2021-09-23 19:22:45.918961340 +0000 -@@ -601,6 +601,11 @@ Query all packages that provide the \f[I - \f[B]--whatrequires \f[R]\f[I]CAPABILITY\f[R] - Query all packages that require \f[I]CAPABILITY\f[R] for proper - functioning. -+.br -+Note that this does not return what requires a given package. -+A package usually provides multiple capabilities and file-names on which -+other packages may depend. To see the complete dependencies -+for a package, use \f[B]-e --test \f[R]\f[I]PACKAGE_NAME\f[R] - .TP - \f[B]--whatconflicts \f[R]\f[I]CAPABILITY\f[R] - Query all packages that conflict with \f[I]CAPABILITY\f[R]. diff --git a/x86_64-microarchitectures.patch b/x86_64-microarchitectures.patch deleted file mode 100644 index 4e9b72a..0000000 --- a/x86_64-microarchitectures.patch +++ /dev/null @@ -1,196 +0,0 @@ -From 282f75e33f93e46854345598f576d052d5cfe390 Mon Sep 17 00:00:00 2001 -From: Fabian Vogt -Date: Thu, 8 Dec 2022 12:50:12 +0100 -Subject: [PATCH] Add x86-64 architecture levels (v2-v4) as architectures - -The x86_64 SysV psABI defines four levels of x86_64 with certain CPU features -required for each level. Those definitions are meant to be generically useful -and recognized as such by glibc and gcc as well. - -For backward-compatibility and to avoid surprises, default to building x86_64 -even on v2+ capable machines. ---- - installplatform | 2 +- - lib/rpmrc.c | 75 +++++++++++++++++++++++++++++++++++++++++++++++++ - macros.in | 4 +++ - rpmrc.in | 18 ++++++++++++ - 4 files changed, 98 insertions(+), 1 deletion(-) - ---- installplatform -+++ installplatform -@@ -78,7 +78,7 @@ for ARCH in noarch `grep ^arch_canon $RP - CANONARCH=i386 - CANONCOLOR=0 - ;; -- x86_64|amd64|ia32e) -+ x86_64*|amd64|ia32e) - ISANAME=x86 - ISABITS=64 - CANONARCH=x86_64 ---- lib/rpmrc.c -+++ lib/rpmrc.c -@@ -735,6 +735,71 @@ exit: - return rc; - } - -+# if defined(__linux__) && defined(__x86_64__) -+static inline void cpuid(uint32_t op, uint32_t op2, uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx) -+{ -+ asm volatile ( -+ "cpuid\n" -+ : "=a" (*eax), "=b" (*ebx), "=c" (*ecx), "=d" (*edx) -+ : "a" (op), "c" (op2)); -+} -+ -+/* From gcc's gcc/config/i386/cpuid.h */ -+/* Features (%eax == 1) */ -+/* %ecx */ -+#define bit_SSE3 (1 << 0) -+#define bit_LZCNT (1 << 5) -+#define bit_SSSE3 (1 << 9) -+#define bit_FMA (1 << 12) -+#define bit_CMPXCHG16B (1 << 13) -+#define bit_SSE4_1 (1 << 19) -+#define bit_SSE4_2 (1 << 20) -+#define bit_MOVBE (1 << 22) -+#define bit_POPCNT (1 << 23) -+#define bit_OSXSAVE (1 << 27) -+#define bit_AVX (1 << 28) -+#define bit_F16C (1 << 29) -+ -+/* Extended Features (%eax == 0x80000001) */ -+/* %ecx */ -+#define bit_LAHF_LM (1 << 0) -+ -+/* Extended Features (%eax == 7) */ -+/* %ebx */ -+#define bit_BMI (1 << 3) -+#define bit_AVX2 (1 << 5) -+#define bit_BMI2 (1 << 8) -+#define bit_AVX512F (1 << 16) -+#define bit_AVX512DQ (1 << 17) -+#define bit_AVX512CD (1 << 28) -+#define bit_AVX512BW (1 << 30) -+#define bit_AVX512VL (1u << 31) -+ -+static int get_x86_64_level(void) -+{ -+ int level = 1; -+ -+ unsigned int op_1_ecx = 0, op_80000001_ecx = 0, op_7_ebx = 0, unused; -+ cpuid(1, 0, &unused, &unused, &op_1_ecx, &unused); -+ cpuid(0x80000001, 0, &unused, &unused, &op_80000001_ecx, &unused); -+ cpuid(7, 0, &unused, &op_7_ebx, &unused, &unused); -+ -+ const unsigned int op_1_ecx_lv2 = bit_SSE3 | bit_SSSE3 | bit_CMPXCHG16B | bit_SSE4_1 | bit_SSE4_2 | bit_POPCNT; -+ if ((op_1_ecx & op_1_ecx_lv2) == op_1_ecx_lv2 && (op_80000001_ecx & bit_LAHF_LM)) -+ level = 2; -+ -+ const unsigned int op_1_ecx_lv3 = bit_LZCNT | bit_FMA | bit_MOVBE | bit_OSXSAVE | bit_AVX | bit_F16C; -+ const unsigned int op_7_ebx_lv3 = bit_BMI | bit_AVX2 | bit_BMI2; -+ if (level == 2 && (op_1_ecx & op_1_ecx_lv3) == op_1_ecx_lv3 && (op_7_ebx & op_7_ebx_lv3) == op_7_ebx_lv3) -+ level = 3; -+ -+ const unsigned int op_7_ebx_lv4 = bit_AVX512F | bit_AVX512DQ | bit_AVX512CD | bit_AVX512BW | bit_AVX512VL; -+ if (level == 3 && (op_7_ebx & op_7_ebx_lv4) == op_7_ebx_lv4) -+ level = 4; -+ -+ return level; -+} -+# endif - - # if defined(__linux__) && defined(__i386__) - #include -@@ -1287,6 +1352,16 @@ static void defaultMachine(rpmrcCtx ctx, - } - # endif - -+# if defined(__linux__) && defined(__x86_64__) -+ { -+ int x86_64_level = get_x86_64_level(); -+ if (x86_64_level > 1) { -+ strcpy(un.machine, "x86_64_vX"); -+ un.machine[8] = '0' + x86_64_level; -+ } -+ } -+#endif -+ - /* the uname() result goes through the arch_canon table */ - canon = lookupInCanonTable(un.machine, - ctx->tables[RPM_MACHTABLE_INSTARCH].canons, ---- macros.in -+++ macros.in -@@ -1064,6 +1064,10 @@ package or when debugging this package.\ - %ix86 i386 i486 i586 i686 pentium3 pentium4 athlon geode - - #------------------------------------------------------------------------------ -+# arch macro for all supported x86_64 processors -+%x86_64 x86_64 x86_64_v2 x86_64_v3 x86_64_v4 amd64 em64t -+ -+#------------------------------------------------------------------------------ - # arch macro for all supported 32-bit ARM processors - %arm32 armv3l armv4b armv4l armv4tl armv5b armv5l armv5teb armv5tel armv5tejl armv6l armv6hl armv7l armv7hl armv7hnl armv8l armv8hl armv8hnl armv8hcnl - ---- rpmrc.in -+++ rpmrc.in -@@ -22,6 +22,10 @@ optflags: athlon -O2 -g -m32 -march=athl - optflags: geode -Os -g -m32 -march=geode - optflags: ia64 -O2 -g -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables - optflags: x86_64 -O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -+optflags: x86_64_v2 -O2 -g -march=x86-64-v2 -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -+optflags: x86_64_v3 -O2 -g -march=x86-64-v3 -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -+optflags: x86_64_v4 -O2 -g -march=x86-64-v4 -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -+ - optflags: amd64 -O2 -g - optflags: ia32e -O2 -g - -@@ -148,6 +152,9 @@ archcolor: s390x 2 - archcolor: ia64 2 - - archcolor: x86_64 2 -+archcolor: x86_64_v2 2 -+archcolor: x86_64_v3 2 -+archcolor: x86_64_v4 2 - - archcolor: sh3 1 - archcolor: sh4 1 -@@ -168,6 +175,9 @@ arch_canon: i586: i586 1 - arch_canon: i486: i486 1 - arch_canon: i386: i386 1 - arch_canon: x86_64: x86_64 1 -+arch_canon: x86_64_v2: x86_64_v2 1 -+arch_canon: x86_64_v3: x86_64_v3 1 -+arch_canon: x86_64_v4: x86_64_v4 1 - arch_canon: amd64: amd64 1 - arch_canon: ia32e: ia32e 1 - arch_canon: em64t: em64t 1 -@@ -378,6 +388,9 @@ buildarchtranslate: s390x: s390x - buildarchtranslate: ia64: ia64 - - buildarchtranslate: x86_64: x86_64 -+buildarchtranslate: x86_64_v2: x86_64 -+buildarchtranslate: x86_64_v3: x86_64 -+buildarchtranslate: x86_64_v4: x86_64 - buildarchtranslate: amd64: x86_64 - buildarchtranslate: ia32e: x86_64 - -@@ -504,6 +517,9 @@ arch_compat: ia64: i686 noarch - arch_compat: x86_64: amd64 em64t athlon noarch - arch_compat: amd64: x86_64 em64t athlon noarch - arch_compat: ia32e: x86_64 em64t athlon noarch -+arch_compat: x86_64_v2: x86_64 amd64 em64t athlon noarch -+arch_compat: x86_64_v3: x86_64_v2 x86_64 amd64 em64t athlon noarch -+arch_compat: x86_64_v4: x86_64_v3 x86_64_v2 x86_64 amd64 em64t athlon noarch - - arch_compat: sh3: noarch - arch_compat: sh4: noarch -@@ -640,6 +656,9 @@ buildarch_compat: s390x: noarch - - buildarch_compat: ia64: noarch - -+buildarch_compat: x86_64_v4: x86_64_v3 -+buildarch_compat: x86_64_v3: x86_64_v2 -+buildarch_compat: x86_64_v2: x86_64 - buildarch_compat: x86_64: noarch - buildarch_compat: amd64: x86_64 - buildarch_compat: ia32e: x86_64 diff --git a/zstdpool.diff b/zstdpool.diff index dee383d..23b4e62 100644 --- a/zstdpool.diff +++ b/zstdpool.diff @@ -1,14 +1,14 @@ ---- rpmio/rpmio.c.orig 2021-06-21 12:00:44.648612706 +0000 -+++ rpmio/rpmio.c 2022-04-13 13:48:55.224954032 +0000 +--- rpmio/rpmio.c.orig 2023-09-19 10:10:10.000000000 +0000 ++++ rpmio/rpmio.c 2023-10-10 12:09:28.171040124 +0000 @@ -8,6 +8,7 @@ #include #include #include +#include - #if defined(__linux__) - #include - #endif -@@ -1034,6 +1035,7 @@ static const FDIO_t lzdio = &lzdio_s; + #include + + #include +@@ -997,6 +998,7 @@ static const FDIO_t lzdio = &lzdio_s; /* Support for ZSTD library. */ #ifdef HAVE_ZSTD @@ -16,7 +16,7 @@ #include typedef struct rpmzstd_s { -@@ -1048,6 +1050,29 @@ typedef struct rpmzstd_s { +@@ -1011,6 +1013,29 @@ typedef struct rpmzstd_s { ZSTD_outBuffer zob; /*!< ZSTD_outBuffer */ } * rpmzstd; @@ -29,8 +29,8 @@ +static void zstdCreateThreadPool(void) +{ + int numthreads = rpmExpandNumeric("%{?_zstd_pool_threads}%{?!_zstd_pool_threads:-1}"); -+ if (numthreads >= 0) -+ numthreads = get_compression_threads(numthreads > 0 ? numthreads : -1); ++ if (numthreads == 0) ++ numthreads = rpmExpandNumeric("%{getncpus:thread}"); + if (numthreads > 0) { + zstdThreadPoolThreads = numthreads; + zstdThreadPool = ZSTD_createThreadPool(numthreads); @@ -46,9 +46,9 @@ static rpmzstd rpmzstdNew(int fdno, const char *fmode) { int flags = 0; -@@ -1133,8 +1158,18 @@ static rpmzstd rpmzstdNew(int fdno, cons +@@ -1116,8 +1141,18 @@ static rpmzstd rpmzstdNew(int fdno, cons + } - threads = get_compression_threads(threads); if (threads > 0) { - if (ZSTD_isError (ZSTD_CCtx_setParameter(_stream, ZSTD_c_nbWorkers, threads))) + if (ZSTD_isError (ZSTD_CCtx_setParameter(_stream, ZSTD_c_nbWorkers, threads))) {