- update to rpm-4.19.0

OBS-URL: https://build.opensuse.org/package/show/Base:System/rpm?expand=0&rev=641
This commit is contained in:
Michael Schröder 2023-10-11 15:13:46 +00:00 committed by Git OBS Bridge
parent 78a4656943
commit 87f5e4610f
31 changed files with 453 additions and 603 deletions

View File

@ -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$//'`;;

View File

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

View File

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

View File

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

View File

@ -1,48 +0,0 @@
From 6b7c58474df3b416b1acb8b58e73b7edf73b8c43 Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fvogt@suse.de>
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

View File

@ -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?
+#

View File

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

View File

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

View File

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

View File

@ -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:^\([^%].*\)::

View File

@ -1,29 +0,0 @@
From 4e244280db8d780ac90313785598487f888b8924 Mon Sep 17 00:00:00 2001
From: Martin Liska <mliska@suse.cz>
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

View File

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

View File

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

View File

@ -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_("<packagefile>+") },
@ -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 <string.h>
@ -77,7 +77,7 @@
#include <rpm/rpmcli.h>
#include <rpm/rpmtag.h>
#include <rpm/rpmlib.h> /* 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),

View File

@ -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 <jsrain@suse.com>

View File

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

64
python_setup.diff Normal file
View File

@ -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]
+ )
+

View File

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

View File

@ -1,27 +0,0 @@
From 224095542246e762617d38e2096fdeba13d266e3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dirk=20M=C3=BCller?= <dirk@dmllr.de>
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" \

BIN
rpm-4.18.0.tar.bz2 (Stored with Git LFS)

Binary file not shown.

3
rpm-4.19.0.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b30916dc148cbeab077797e9fc365702931e3a9a7eacf70add84153b549b3f77
size 5919326

View File

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

View File

@ -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 <dmueller@suse.com>

View File

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

View File

@ -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 <mls@suse.de>
--- 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 <sys/types.h>
+#include <limits.h>

View File

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

48
rpmsort_reverse.diff Normal file
View File

@ -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, "<FILES>");
- 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++) {

View File

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

View File

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

View File

@ -1,196 +0,0 @@
From 282f75e33f93e46854345598f576d052d5cfe390 Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fvogt@suse.de>
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 <setjmp.h>
@@ -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

View File

@ -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 <ctype.h>
#include <dirent.h>
#include <fcntl.h>
+#include <pthread.h>
#if defined(__linux__)
#include <sys/personality.h>
#endif
@@ -1034,6 +1035,7 @@ static const FDIO_t lzdio = &lzdio_s;
#include <sys/resource.h>
#include <rpm/rpmlog.h>
@@ -997,6 +998,7 @@ static const FDIO_t lzdio = &lzdio_s;
/* Support for ZSTD library. */
#ifdef HAVE_ZSTD
@ -16,7 +16,7 @@
#include <zstd.h>
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))) {