- update to rpm-4.12.0
OBS-URL: https://build.opensuse.org/package/show/Base:System/rpm?expand=0&rev=338
This commit is contained in:
parent
9f23915be5
commit
a406c1d81a
@ -1,26 +1,26 @@
|
||||
--- tools/elfdeps.c.orig 2013-01-30 15:33:12.000000000 +0000
|
||||
+++ tools/elfdeps.c 2013-07-12 12:21:47.000000000 +0000
|
||||
@@ -15,6 +15,7 @@
|
||||
int filter_private = 0;
|
||||
int soname_only = 0;
|
||||
--- ./tools/elfdeps.c.orig 2014-06-26 06:51:55.768815677 +0000
|
||||
+++ ./tools/elfdeps.c 2014-08-04 13:02:16.981081591 +0000
|
||||
@@ -17,6 +17,7 @@ int soname_only = 0;
|
||||
int fake_soname = 1;
|
||||
int filter_soname = 1;
|
||||
int require_interp = 0;
|
||||
+int assume_exec = 0;
|
||||
|
||||
typedef struct elfInfo_s {
|
||||
Elf *elf;
|
||||
@@ -235,7 +236,7 @@ static int processFile(const char *fn, i
|
||||
@@ -299,7 +300,7 @@ static int processFile(const char *fn, i
|
||||
if (ehdr->e_type == ET_DYN || ehdr->e_type == ET_EXEC) {
|
||||
ei->marker = mkmarker(ehdr);
|
||||
ei->isDSO = (ehdr->e_type == ET_DYN);
|
||||
- ei->isExec = (st.st_mode & (S_IXUSR|S_IXGRP|S_IXOTH));
|
||||
+ ei->isExec = assume_exec || (st.st_mode & (S_IXUSR|S_IXGRP|S_IXOTH));
|
||||
|
||||
processProgHeaders(ei, ehdr);
|
||||
processSections(ei);
|
||||
}
|
||||
@@ -292,6 +293,7 @@ int main(int argc, char *argv[])
|
||||
{ "filter-private", 0, POPT_ARG_VAL, &filter_private, -1, NULL, NULL },
|
||||
{ "soname-only", 0, POPT_ARG_VAL, &soname_only, -1, NULL, NULL },
|
||||
@@ -364,6 +365,7 @@ int main(int argc, char *argv[])
|
||||
{ "no-fake-soname", 0, POPT_ARG_VAL, &fake_soname, 0, NULL, NULL },
|
||||
{ "no-filter-soname", 0, POPT_ARG_VAL, &filter_soname, 0, NULL, NULL },
|
||||
{ "require-interp", 0, POPT_ARG_VAL, &require_interp, -1, NULL, NULL },
|
||||
+ { "assume-exec", 0, POPT_ARG_VAL, &assume_exec, -1, NULL, NULL },
|
||||
POPT_AUTOHELP
|
||||
POPT_TABLEEND
|
||||
|
261
autodeps.diff
261
autodeps.diff
@ -1,261 +0,0 @@
|
||||
--- ./autodeps/linux.prov.orig 2011-07-12 11:28:13.000000000 +0000
|
||||
+++ ./autodeps/linux.prov 2011-07-18 16:47:39.000000000 +0000
|
||||
@@ -2,60 +2,72 @@
|
||||
|
||||
# This script reads filenames from STDIN and outputs any relevant provides
|
||||
# information that needs to be included in the package.
|
||||
+IFS=$'\n'
|
||||
+filelist=($(cat))
|
||||
|
||||
-filelist=`sed "s/['\"]/\\\&/g"`
|
||||
-
|
||||
-solist=$(echo $filelist | grep "\\.so" | grep -v "^/lib/ld.so" | \
|
||||
- xargs file -L 2>/dev/null | grep "ELF.*shared object" | cut -d: -f1)
|
||||
+solist=($(printf "%s\n" "${filelist[@]}" | grep "\\.so" | grep -v "^/lib/ld.so" | \
|
||||
+ tr '\n' '\0' | xargs -0 -r file -L | grep "ELF.*shared object" | \
|
||||
+ cut -d: -f1))
|
||||
pythonlist=
|
||||
tcllist=
|
||||
+monolist=($(printf "%s\n" "${filelist[@]}" | egrep "\\.(exe|dll)\$"))
|
||||
|
||||
#
|
||||
# --- Alpha does not mark 64bit dependencies
|
||||
case `uname -m` in
|
||||
- alpha*) mark64="" ;;
|
||||
- *) mark64="()(64bit)" ;;
|
||||
+ alpha*) mark64=false ;;
|
||||
+ *) mark64=true ;;
|
||||
esac
|
||||
|
||||
#
|
||||
# --- Library sonames and weak symbol versions (from glibc).
|
||||
-for f in $solist; do
|
||||
- soname=$(objdump -p $f | awk '/SONAME/ {print $2}')
|
||||
+for f in "${solist[@]}"; do
|
||||
+ soname=$(objdump -p "$f" | awk '/SONAME/ {print $2}')
|
||||
+ [ -n "$soname" -a -L "$f" ] && continue
|
||||
+ [ -z "$soname" ] && soname="${f##*/}"
|
||||
|
||||
- lib64=`if file -L $f 2>/dev/null | \
|
||||
- grep "ELF 64-bit" >/dev/null; then echo "$mark64"; fi`
|
||||
- if [ "$soname" != "" ]; then
|
||||
- if [ ! -L $f ]; then
|
||||
- echo $soname$lib64
|
||||
- objdump -p $f | awk '
|
||||
- BEGIN { START=0 ; }
|
||||
- /Version definitions:/ { START=1; }
|
||||
- /^[0-9]/ && (START==1) { print $4; }
|
||||
- /^$/ { START=0; }
|
||||
- ' | \
|
||||
- grep -v $soname | \
|
||||
- while read symbol ; do
|
||||
- echo "$soname($symbol)`echo $lib64 | sed 's/()//'`"
|
||||
- done
|
||||
- fi
|
||||
+ if $mark64 && file -L "$f" 2>/dev/null | grep "ELF 64-bit" >/dev/null; then
|
||||
+ lib64="()(64bit)" slib64="(64bit)"
|
||||
else
|
||||
- echo ${f##*/}$lib64
|
||||
+ lib64= slib64=
|
||||
fi
|
||||
+ echo "$soname$lib64"
|
||||
+ objdump -p "$f" | awk '
|
||||
+ BEGIN { START=0 ; }
|
||||
+ /Version definitions:/ { START=1; }
|
||||
+ /^[0-9]/ && (START==1) { print $4; }
|
||||
+ /^$/ { START=0; }
|
||||
+ ' | \
|
||||
+ while read symbol ; do
|
||||
+ echo "$soname($symbol)$slib64"
|
||||
+ done
|
||||
done | sort -u
|
||||
|
||||
#
|
||||
# --- Perl modules.
|
||||
[ -x /usr/lib/rpm/perl.prov ] &&
|
||||
- echo $filelist | tr '[:blank:]' \\n | grep '\.pm$' | /usr/lib/rpm/perl.prov | sort -u
|
||||
+ printf "%s\n" "${filelist[@]}" | grep '\.pm$' | /usr/lib/rpm/perl.prov | sort -u
|
||||
|
||||
#
|
||||
# --- Python modules.
|
||||
[ -x /usr/lib/rpm/python.prov -a -n "$pythonlist" ] &&
|
||||
- echo $pythonlist | tr '[:blank:]' \\n | /usr/lib/rpm/python.prov | sort -u
|
||||
+ printf "%s\n" "${pythonlist[@]}" | /usr/lib/rpm/python.prov | sort -u
|
||||
|
||||
#
|
||||
# --- Tcl modules.
|
||||
[ -x /usr/lib/rpm/tcl.prov -a -n "$tcllist" ] &&
|
||||
- echo $tcllist | tr '[:blank:]' \\n | /usr/lib/rpm/tcl.prov | sort -u
|
||||
+ printf "%s\n" "${tcllist[@]}" | /usr/lib/rpm/tcl.prov | sort -u
|
||||
+
|
||||
+#
|
||||
+# --- Mono exes/dlls
|
||||
+: ${MONO_PREFIX=/usr}
|
||||
+if [ -x $MONO_PREFIX/bin/mono -a -n "$monolist" ] ; then
|
||||
+ printf "%s\n" "${monolist[@]}" | MONO_PATH=$MONO_PREFIX/lib${MONO_PATH:+:$MONO_PATH} prefix=$MONO_PREFIX $MONO_PREFIX/bin/mono-find-provides || echo "WARNING: MONO RPM PROVIDES WERE NOT GENERATED FOR THIS BUILD!!" 1>&2
|
||||
+fi
|
||||
+
|
||||
+#
|
||||
+# --- Kernel module exported symbols
|
||||
+[ -x /usr/lib/rpm/find-provides.ksyms ] &&
|
||||
+ printf "%s\n" "${filelist[@]}" | /usr/lib/rpm/find-provides.ksyms "$@"
|
||||
|
||||
exit 0
|
||||
--- ./autodeps/linux.req.orig 2011-07-15 09:32:41.000000000 +0000
|
||||
+++ ./autodeps/linux.req 2011-07-18 16:51:24.000000000 +0000
|
||||
@@ -18,20 +18,21 @@ fi
|
||||
|
||||
#
|
||||
# --- Grab the file manifest and classify files.
|
||||
-#filelist=`sed "s/['\"]/\\\&/g"`
|
||||
-filelist=`sed "s/[]['\"*?{}]/\\\\\&/g"`
|
||||
-exelist=`echo $filelist | xargs -r file | \
|
||||
+#filelist=`sed "s/[]['\"*?{}]/\\\\\&/g"`
|
||||
+filelist=($(grep -Ev '/usr/doc/|/usr/share/doc/'))
|
||||
+exelist=($(printf "%s\0" "${filelist[@]}" | xargs -0 -r file | \
|
||||
grep -Ev ":.* (commands|script)[, ]" | \
|
||||
- grep ":.*executable" | cut -d: -f1`
|
||||
-scriptlist=`echo $filelist | xargs -r file | \
|
||||
- grep -E ":.* (commands|script)[, ]" | cut -d: -f1`
|
||||
-liblist=`echo $filelist | xargs -r file | \
|
||||
- grep ":.*shared object" | cut -d : -f1`
|
||||
+ grep ":.*executable" | cut -d: -f1))
|
||||
+scriptlist=($(printf "%s\0" "${filelist[@]}" | xargs -0 -r file | \
|
||||
+ grep -E ":.* (commands|script)[, ]" | cut -d: -f1))
|
||||
+liblist=($(printf "%s\0" "${filelist[@]}" | xargs -0 -r file | \
|
||||
+ grep ":.*shared object" | cut -d : -f1))
|
||||
|
||||
-interplist=
|
||||
-perllist=
|
||||
-pythonlist=
|
||||
-tcllist=
|
||||
+interplist=()
|
||||
+perllist=()
|
||||
+pythonlist=()
|
||||
+tcllist=()
|
||||
+monolist=($(printf "%s\n" "${filelist[@]}" | egrep "\\.(exe|dll)(\\.config)?\$"))
|
||||
|
||||
#
|
||||
# --- Alpha does not mark 64bit dependencies
|
||||
@@ -43,12 +44,12 @@ esac
|
||||
if [ "$needed" -eq 0 ]; then
|
||||
#
|
||||
# --- Executable dependency sonames.
|
||||
- for f in $exelist; do
|
||||
- [ -r $f -a -x $f ] || continue
|
||||
- lib64=`if file -L $f 2>/dev/null | \
|
||||
+ for f in "${exelist[@]}"; do
|
||||
+ [ -r "$f" -a -x "$f" ] || continue
|
||||
+ lib64=`if file -L "$f" 2>/dev/null | \
|
||||
grep "ELF 64-bit" >/dev/null; then echo "$mark64"; fi`
|
||||
- ldd $f | awk '/=>/ {
|
||||
- if ($1 !~ /libNoVersion.so/ && $1 !~ /4[um]lib.so/ && $1 !~ /libredhat-kernel.so/) {
|
||||
+ ldd "$f" | awk '/=>/ {
|
||||
+ if ($1 !~ /libNoVersion.so/ && $1 !~ /4[um]lib.so/ && $1 !~ /linux-gate.so/) {
|
||||
gsub(/'\''"/,"\\&",$1);
|
||||
printf "%s'$lib64'\n", $1
|
||||
}
|
||||
@@ -57,12 +58,12 @@ if [ "$needed" -eq 0 ]; then
|
||||
|
||||
#
|
||||
# --- Library dependency sonames.
|
||||
- for f in $liblist; do
|
||||
- [ -r $f ] || continue
|
||||
- lib64=`if file -L $f 2>/dev/null | \
|
||||
+ for f in "${liblist[@]}"; do
|
||||
+ [ -r "$f" ] || continue
|
||||
+ lib64=`if file -L "$f" 2>/dev/null | \
|
||||
grep "ELF 64-bit" >/dev/null; then echo "$mark64"; fi`
|
||||
- ldd $f | awk '/=>/ {
|
||||
- if ($1 !~ /libNoVersion.so/ && $1 !~ /4[um]lib.so/ && $1 !~ /libredhat-kernel.so/) {
|
||||
+ ldd "$f" | awk '/=>/ {
|
||||
+ if ($1 !~ /libNoVersion.so/ && $1 !~ /4[um]lib.so/ && $1 !~ /linux-gate.so/) {
|
||||
gsub(/'\''"/,"\\&",$1);
|
||||
printf "%s'$lib64'\n", $1
|
||||
}
|
||||
@@ -72,30 +73,30 @@ fi
|
||||
|
||||
#
|
||||
# --- Script interpreters.
|
||||
-for f in $scriptlist; do
|
||||
- [ -r $f -a -x $f ] || continue
|
||||
- interp=`head -n 1 $f | sed -e 's/^\#\![ ]*//' | cut -d" " -f1`
|
||||
- interplist="$interplist $interp"
|
||||
+for f in "${scriptlist[@]}"; do
|
||||
+ [ -r "$f" -a -x "$f" ] || continue
|
||||
+ interp=`head -n 1 "$f" | sed -ne 's/^\#\![ ]*//p' | cut -d" " -f1`
|
||||
+ interplist=("${interplist[@]}" "$interp")
|
||||
case $interp in
|
||||
- */perl) perllist="$perllist $f" ;;
|
||||
+ */perl) perllist=("${perllist[@]}" "$f") ;;
|
||||
esac
|
||||
done
|
||||
-[ -n "$interplist" ] && { echo "$interplist" | tr '[:blank:]' \\n | sort -u ; }
|
||||
+[ -n "$interplist" ] && { printf "%s\n" "${interplist[@]}" | sort -u ; }
|
||||
|
||||
#
|
||||
# --- Add perl module files to perllist.
|
||||
-for f in $filelist; do
|
||||
- [ -r $f -a "${f%.pm}" != "${f}" ] && perllist="$perllist $f"
|
||||
+for f in "${filelist[@]}"; do
|
||||
+ [ -r "$f" -a "${f%.pm}" != "${f}" ] && perllist=("${perllist[@]}" "$f")
|
||||
done
|
||||
|
||||
#
|
||||
# --- Weak symbol versions (from glibc).
|
||||
[ -n "$mark64" ] && mark64="(64bit)"
|
||||
-for f in $liblist $exelist ; do
|
||||
- [ -r $f ] || continue
|
||||
- lib64=`if file -L $f 2>/dev/null | \
|
||||
+for f in "${liblist[@]}" "${exelist[@]}" ; do
|
||||
+ [ -r "$f" ] || continue
|
||||
+ lib64=`if file -L "$f" 2>/dev/null | \
|
||||
grep "ELF 64-bit" >/dev/null; then echo "$mark64"; fi`
|
||||
- objdump -p $f | awk 'BEGIN { START=0; LIBNAME=""; needed='$needed'; }
|
||||
+ objdump -p "$f" | awk 'BEGIN { START=0; LIBNAME=""; needed='$needed'; }
|
||||
/^$/ { START=0; }
|
||||
/^Dynamic Section:$/ { START=1; }
|
||||
(START==1) && /NEEDED/ {
|
||||
@@ -112,7 +113,7 @@ for f in $liblist $exelist ; do
|
||||
sub(/:/, "", $3);
|
||||
LIBNAME=$3;
|
||||
}
|
||||
- (START==2) && (LIBNAME!="") && ($4!="") && (($4~/^GLIBC_*/) || ($4~/^GCC_*/)) {
|
||||
+ (START==2) && (LIBNAME!="") && ($4!="") {
|
||||
print LIBNAME "(" $4 ")'$lib64'";
|
||||
}
|
||||
'
|
||||
@@ -120,17 +121,29 @@ done | sort -u
|
||||
|
||||
#
|
||||
# --- Perl modules.
|
||||
-[ -x /usr/lib/rpm/perl.req -a -n "$perllist" ] && \
|
||||
- echo $perllist | tr '[:blank:]' \\n | /usr/lib/rpm/perl.req | sort -u
|
||||
+#[ -x /usr/lib/rpm/perl.req -a -n "$perllist" ] && \
|
||||
+# printf "%s\n" "${perllist[@]}" | /usr/lib/rpm/perl.req | sort -u
|
||||
|
||||
#
|
||||
# --- Python modules.
|
||||
[ -x /usr/lib/rpm/python.req -a -n "$pythonlist" ] && \
|
||||
- echo $pythonlist | tr '[:blank:]' \\n | /usr/lib/rpm/python.req | sort -u
|
||||
+ printf "%s\n" "${pythonlist[@]}" | /usr/lib/rpm/python.req | sort -u
|
||||
|
||||
#
|
||||
# --- Tcl modules.
|
||||
[ -x /usr/lib/rpm/tcl.req -a -n "$tcllist" ] && \
|
||||
- echo $tcllist | tr '[:blank:]' \\n | /usr/lib/rpm/tcl.req | sort -u
|
||||
+ printf "%s\n" "${tcllist[@]}" | /usr/lib/rpm/tcl.req | sort -u
|
||||
+
|
||||
+#
|
||||
+# --- Mono exes/dlls
|
||||
+: ${MONO_PREFIX=/usr}
|
||||
+if [ -x $MONO_PREFIX/bin/mono -a -n "$monolist" ] ; then
|
||||
+ printf "%s\n" "${monolist[@]}" | MONO_PATH=$MONO_PREFIX/lib${MONO_PATH:+:$MONO_PATH} prefix=$MONO_PREFIX $MONO_PREFIX/bin/mono-find-requires || echo "WARNING: MONO RPM REQUIRES WERE NOT GENERATED FOR THIS BUILD!!" 1>&2
|
||||
+fi
|
||||
+
|
||||
+#
|
||||
+# --- Kernel module imported symbols
|
||||
+[ -x ${0%/*}/find-requires.ksyms ] &&
|
||||
+ printf "%s\n" "${filelist[@]}" | ${0%/*}/find-requires.ksyms "$@"
|
||||
|
||||
exit 0
|
18
brp.diff
18
brp.diff
@ -1,6 +1,6 @@
|
||||
--- ./scripts/Makefile.am.orig 2014-09-05 11:48:54.000000000 +0000
|
||||
+++ ./scripts/Makefile.am 2014-09-08 16:42:03.387071432 +0000
|
||||
@@ -26,6 +26,7 @@ rpmconfig_SCRIPTS = \
|
||||
--- ./scripts/Makefile.am.orig 2014-06-26 06:51:55.444816562 +0000
|
||||
+++ ./scripts/Makefile.am 2014-08-04 12:33:14.213715432 +0000
|
||||
@@ -27,6 +27,7 @@ rpmconfig_SCRIPTS = \
|
||||
appdata.prov \
|
||||
brp-compress brp-python-bytecompile brp-java-gcjcompile \
|
||||
brp-strip brp-strip-comment-note brp-python-hardlink \
|
||||
@ -8,8 +8,8 @@
|
||||
brp-strip-shared brp-strip-static-archive \
|
||||
check-files check-prereqs \
|
||||
check-buildroot check-rpaths check-rpaths-worker \
|
||||
--- ./scripts/brp-strip-comment-note.orig 2012-11-07 12:55:24.000000000 +0000
|
||||
+++ ./scripts/brp-strip-comment-note 2014-09-08 16:42:03.387071432 +0000
|
||||
--- ./scripts/brp-strip-comment-note.orig 2014-06-26 06:51:55.455816533 +0000
|
||||
+++ ./scripts/brp-strip-comment-note 2014-08-04 12:33:14.214715437 +0000
|
||||
@@ -16,6 +16,8 @@ esac
|
||||
# for already stripped elf files in the build root
|
||||
for f in `find "$RPM_BUILD_ROOT" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) -exec file {} \; | \
|
||||
@ -19,8 +19,8 @@
|
||||
sed -n -e 's/^\(.*\):[ ]*ELF.*, stripped/\1/p'`; do
|
||||
note="-R .note"
|
||||
if $OBJDUMP -h $f | grep '^[ ]*[0-9]*[ ]*.note[ ]' -A 1 | \
|
||||
--- ./scripts/brp-strip.orig 2012-11-07 12:55:24.000000000 +0000
|
||||
+++ ./scripts/brp-strip 2014-09-08 16:42:03.388071423 +0000
|
||||
--- ./scripts/brp-strip.orig 2014-06-26 06:51:55.455816533 +0000
|
||||
+++ ./scripts/brp-strip 2014-08-04 12:33:14.214715437 +0000
|
||||
@@ -15,6 +15,7 @@ esac
|
||||
for f in `find "$RPM_BUILD_ROOT" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) -exec file {} \; | \
|
||||
grep -v "^${RPM_BUILD_ROOT}/\?usr/lib/debug" | \
|
||||
@ -29,8 +29,8 @@
|
||||
sed -n -e 's/^\(.*\):[ ]*ELF.*, not stripped/\1/p'`; do
|
||||
$STRIP -g "$f" || :
|
||||
done
|
||||
--- ./scripts/brp-suse.orig 2014-09-08 16:42:03.388071423 +0000
|
||||
+++ ./scripts/brp-suse 2014-09-08 16:42:03.388071423 +0000
|
||||
--- ./scripts/brp-suse.orig 2014-08-04 12:33:14.214715437 +0000
|
||||
+++ ./scripts/brp-suse 2014-08-04 12:33:14.214715437 +0000
|
||||
@@ -0,0 +1,13 @@
|
||||
+#! /bin/sh
|
||||
+
|
||||
|
@ -9,30 +9,6 @@ Users can therefore ask zypper to install the correct debuginfo package with:
|
||||
|
||||
zypper install -C "debuginfo(build-id) = c63cb23876c5fa85f36beaff58f8557e1bf22517"
|
||||
|
||||
--- ./autodeps/linux.prov.orig 2011-05-11 15:58:28.000000000 +0000
|
||||
+++ ./autodeps/linux.prov 2011-05-11 15:59:31.000000000 +0000
|
||||
@@ -5,6 +5,9 @@
|
||||
IFS=$'\n'
|
||||
filelist=($(cat))
|
||||
|
||||
+debuginfolist=($(printf "%s\n" "${filelist[@]}" | grep "/usr/lib/debug/"))
|
||||
+filelist=($(printf "%s\n" "${filelist[@]}" | grep -v "/usr/lib/debug/"))
|
||||
+
|
||||
solist=($(printf "%s\n" "${filelist[@]}" | grep "\\.so" | grep -v "^/lib/ld.so" | \
|
||||
tr '\n' '\0' | xargs -0 -r file -L | grep "ELF.*shared object" | \
|
||||
cut -d: -f1))
|
||||
@@ -71,6 +74,11 @@ done | sort -u
|
||||
printf "%s\n" "${firmwarelist[@]}" | /usr/lib/rpm/firmware.prov | sort -u
|
||||
|
||||
#
|
||||
+# --- debuginfo files
|
||||
+[ -x /usr/lib/rpm/debuginfo.prov -a -n "$debuginfolist" ] &&
|
||||
+ printf "%s\n" "${debuginfolist[@]}" | /usr/lib/rpm/debuginfo.prov | sort -u
|
||||
+
|
||||
+#
|
||||
# --- Mono exes/dlls
|
||||
: ${MONO_PREFIX=/usr}
|
||||
if [ -x $MONO_PREFIX/bin/mono -a -n "$monolist" ] ; then
|
||||
--- ./macros.in.orig 2011-05-11 15:59:08.000000000 +0000
|
||||
+++ ./macros.in 2011-05-11 15:59:31.000000000 +0000
|
||||
@@ -182,7 +182,8 @@
|
||||
|
@ -1,7 +1,7 @@
|
||||
Create a debuginfo package for each subpackage.
|
||||
|
||||
--- ./build/files.c.orig 2014-08-18 12:37:19.151934240 +0000
|
||||
+++ ./build/files.c 2014-08-18 12:48:48.106395561 +0000
|
||||
--- ./build/files.c.orig 2014-06-30 08:47:13.928503700 +0000
|
||||
+++ ./build/files.c 2014-09-16 11:52:51.708609583 +0000
|
||||
@@ -21,6 +21,10 @@
|
||||
#include <rpm/rpmlog.h>
|
||||
#include <rpm/rpmbase64.h>
|
||||
@ -12,8 +12,8 @@ Create a debuginfo package for each subpackage.
|
||||
+
|
||||
#include "rpmio/rpmio_internal.h" /* XXX rpmioSlurp */
|
||||
#include "misc/fts.h"
|
||||
#include "lib/cpio.h"
|
||||
@@ -2084,13 +2088,241 @@ exit:
|
||||
#include "lib/rpmfi_internal.h" /* XXX fi->apath */
|
||||
@@ -2031,13 +2035,236 @@ exit:
|
||||
return rc;
|
||||
}
|
||||
|
||||
@ -145,10 +145,10 @@ Create a debuginfo package for each subpackage.
|
||||
+
|
||||
+ elf_version(EV_CURRENT);
|
||||
+ a = headerGetString(pkg->header, RPMTAG_ARCH);
|
||||
+ if (strcmp(a, "noarch") != 0 && strcmp(a, "src") != 0 && strcmp(a, "nosrc") != 0)
|
||||
+ if (strcmp(a, "noarch") != 0)
|
||||
+ {
|
||||
+ Package dbg;
|
||||
+ rpmfi fi = pkg->cpioList;
|
||||
+ rpmfi fi = rpmfilesIter(pkg->cpioList, RPMFI_ITER_FWD);
|
||||
+ char tmp[1024];
|
||||
+ const char *name;
|
||||
+ ARGV_t files = NULL;
|
||||
@ -156,23 +156,20 @@ Create a debuginfo package for each subpackage.
|
||||
+
|
||||
+ /* Check if the current package has files with debug info
|
||||
+ and record them. */
|
||||
+ fi = rpmfiInit (fi, 0);
|
||||
+ while (rpmfiNext (fi) >= 0)
|
||||
+ fi = rpmfiInit(fi, 0);
|
||||
+ while (rpmfiNext(fi) >= 0)
|
||||
+ {
|
||||
+ const char *base;
|
||||
+ int i;
|
||||
+ unsigned char *build_id;
|
||||
+ unsigned char *build_id = NULL;
|
||||
+ size_t build_id_size = 0;
|
||||
+ struct stat sbuf;
|
||||
+
|
||||
+ name = rpmfiFN (fi);
|
||||
+ /* Skip leading buildroot. */
|
||||
+ base = name + strlen (buildroot);
|
||||
+ name = rpmfiFN(fi);
|
||||
+ /* Pre-pend %buildroot/usr/lib/debug and append .debug. */
|
||||
+ snprintf (tmp, 1024, "%s/usr/lib/debug%s.debug",
|
||||
+ buildroot, base);
|
||||
+ snprintf(tmp, 1024, "%s/usr/lib/debug%s.debug",
|
||||
+ buildroot, name);
|
||||
+ /* If that file exists we have debug information for it. */
|
||||
+ if (access (tmp, F_OK) != 0)
|
||||
+ if (access(tmp, F_OK) != 0)
|
||||
+ continue;
|
||||
+
|
||||
+ /* Append the file list preamble. */
|
||||
@ -182,17 +179,17 @@ Create a debuginfo package for each subpackage.
|
||||
+ argvAdd(&files, "%dir /usr/lib/debug");
|
||||
+ }
|
||||
+ /* Add the files main debug-info file. */
|
||||
+ snprintf (tmp, 1024, "/usr/lib/debug/%s.debug", base);
|
||||
+ snprintf(tmp, 1024, "/usr/lib/debug/%s.debug", name);
|
||||
+ argvAdd(&files, tmp);
|
||||
+
|
||||
+ snprintf(tmp, 1024, "%s%s", buildroot, name);
|
||||
+ /* Do not bother to check build-ids for symbolic links.
|
||||
+ We'll handle them for the link target. */
|
||||
+ if (lstat (name, &sbuf) == -1
|
||||
+ || S_ISLNK (sbuf.st_mode))
|
||||
+ if (lstat(tmp, &sbuf) == -1 || S_ISLNK(sbuf.st_mode))
|
||||
+ continue;
|
||||
+
|
||||
+ /* Try to gather the build-id from the binary. */
|
||||
+ if (getELFBuildId (name, &build_id, &build_id_size) == -1)
|
||||
+ if (getELFBuildId(tmp, &build_id, &build_id_size) == -1)
|
||||
+ continue;
|
||||
+
|
||||
+ /* If we see build-id links for the first time add the
|
||||
@ -202,15 +199,15 @@ Create a debuginfo package for each subpackage.
|
||||
+
|
||||
+ /* From the build-id construct the two links pointing back
|
||||
+ to the debug information file and the binary. */
|
||||
+ snprintf (tmp, 1024, "/usr/lib/debug/.build-id/%02x/",
|
||||
+ snprintf(tmp, 1024, "/usr/lib/debug/.build-id/%02x/",
|
||||
+ build_id[0]);
|
||||
+ for (i = 1; i < build_id_size; ++i)
|
||||
+ sprintf (tmp + strlen (tmp), "%02x", build_id[i]);
|
||||
+ sprintf(tmp + strlen(tmp), "%02x", build_id[i]);
|
||||
+ argvAdd(&files, tmp);
|
||||
+ sprintf (tmp + strlen (tmp), ".debug");
|
||||
+ sprintf(tmp + strlen(tmp), ".debug");
|
||||
+ argvAdd(&files, tmp);
|
||||
+
|
||||
+ free (build_id);
|
||||
+ free(build_id);
|
||||
+ }
|
||||
+
|
||||
+ /* If there are debuginfo files for this package add a
|
||||
@ -218,21 +215,19 @@ Create a debuginfo package for each subpackage.
|
||||
+ if (files)
|
||||
+ {
|
||||
+ dbg = newPackage(NULL, spec->pool, &spec->packages);
|
||||
+ headerNVR (pkg->header, &name, NULL, NULL);
|
||||
+ headerNVR(pkg->header, &name, NULL, NULL);
|
||||
+ /* Set name, summary and group. */
|
||||
+ snprintf (tmp, 1024, "%s-debuginfo", name);
|
||||
+ snprintf(tmp, 1024, "%s-debuginfo", name);
|
||||
+ headerPutString(dbg->header, RPMTAG_NAME, tmp);
|
||||
+ snprintf (tmp, 1024, "Debug information for package %s", name);
|
||||
+ snprintf(tmp, 1024, "Debug information for package %s", name);
|
||||
+ headerPutString(dbg->header, RPMTAG_SUMMARY, tmp);
|
||||
+ snprintf (tmp, 1024, "This package provides debug information for package %s.\n"
|
||||
+ snprintf(tmp, 1024, "This package provides debug information for package %s.\n"
|
||||
+ "Debug information is useful when developing applications that use this\n"
|
||||
+ "package or when debugging this package.", name);
|
||||
+ headerPutString(dbg->header, RPMTAG_DESCRIPTION, tmp);
|
||||
+ headerPutString(dbg->header, RPMTAG_GROUP, "Development/Debug");
|
||||
+ /* Inherit other tags from parent. */
|
||||
+ headerCopyTags (pkg->header, dbg->header, copyTagsForDebug);
|
||||
+
|
||||
+ /* Add self-provides */
|
||||
+ headerCopyTags(pkg->header, dbg->header, copyTagsForDebug);
|
||||
+ dbg->ds = rpmdsThis(dbg->header, RPMTAG_REQUIRENAME, RPMSENSE_EQUAL);
|
||||
+ addPackageProvides(dbg);
|
||||
+
|
||||
@ -255,7 +250,7 @@ Create a debuginfo package for each subpackage.
|
||||
genSourceRpmName(spec);
|
||||
|
||||
for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
|
||||
@@ -2108,8 +2340,12 @@ rpmRC processBinaryFiles(rpmSpec spec, r
|
||||
@@ -2055,8 +2282,12 @@ rpmRC processBinaryFiles(rpmSpec spec, r
|
||||
rpmlog(RPMLOG_NOTICE, _("Processing files: %s\n"), nvr);
|
||||
free(nvr);
|
||||
|
||||
@ -270,35 +265,8 @@ Create a debuginfo package for each subpackage.
|
||||
goto exit;
|
||||
|
||||
a = headerGetString(pkg->header, RPMTAG_ARCH);
|
||||
--- ./build/parseSpec.c.orig 2014-08-18 12:44:49.564619395 +0000
|
||||
+++ ./build/parseSpec.c 2014-08-18 12:44:59.187569649 +0000
|
||||
@@ -503,7 +503,7 @@ static void initSourceHeader(rpmSpec spe
|
||||
}
|
||||
|
||||
/* Add extra provides to package. */
|
||||
-static void addPackageProvides(Package pkg)
|
||||
+void addPackageProvides(Package pkg)
|
||||
{
|
||||
const char *arch, *name;
|
||||
char *evr, *isaprov;
|
||||
--- ./build/rpmbuild_internal.h.orig 2014-08-18 12:43:17.461092324 +0000
|
||||
+++ ./build/rpmbuild_internal.h 2014-08-18 12:44:25.578739914 +0000
|
||||
@@ -425,6 +425,13 @@ int addReqProv(Package pkg, rpmTagVal ta
|
||||
uint32_t index);
|
||||
|
||||
/** \ingroup rpmbuild
|
||||
+ * Add self-provides to package.
|
||||
+ * @param pkg package
|
||||
+ */
|
||||
+RPM_GNUC_INTERNAL
|
||||
+void addPackageProvides(Package pkg);
|
||||
+
|
||||
+/** \ingroup rpmbuild
|
||||
* Add rpmlib feature dependency.
|
||||
* @param pkg package
|
||||
* @param feature rpm feature name (i.e. "rpmlib(Foo)" for feature Foo)
|
||||
--- ./macros.in.orig 2014-08-18 12:37:19.206933957 +0000
|
||||
+++ ./macros.in 2014-08-18 12:37:30.648875217 +0000
|
||||
--- ./macros.in.orig 2014-09-16 11:44:58.450834101 +0000
|
||||
+++ ./macros.in 2014-09-16 11:45:01.185821119 +0000
|
||||
@@ -186,24 +186,10 @@
|
||||
# Template for debug information sub-package.
|
||||
%debug_package \
|
||||
@ -324,8 +292,8 @@ Create a debuginfo package for each subpackage.
|
||||
%description debugsource\
|
||||
This package provides debug sources for package %{name}.\
|
||||
Debug sources are useful when developing applications that use this\
|
||||
--- ./scripts/find-debuginfo.sh.orig 2014-08-18 12:37:19.201933983 +0000
|
||||
+++ ./scripts/find-debuginfo.sh 2014-08-18 12:37:30.648875217 +0000
|
||||
--- ./scripts/find-debuginfo.sh.orig 2014-09-16 11:44:58.444834129 +0000
|
||||
+++ ./scripts/find-debuginfo.sh 2014-09-16 11:45:01.186821129 +0000
|
||||
@@ -149,6 +149,11 @@ debug_link()
|
||||
# Provide .2, .3, ... symlinks to all filename instances of this build-id.
|
||||
make_id_dup_link()
|
||||
|
@ -1,25 +0,0 @@
|
||||
--- ./lib/rpmtag.h.orig 2014-03-10 13:26:56.411058656 +0000
|
||||
+++ ./lib/rpmtag.h 2014-03-10 13:27:49.545058562 +0000
|
||||
@@ -217,14 +217,14 @@ typedef enum rpmTag_e {
|
||||
RPMTAG_PRETRANSPROG = 1153, /* s[] */
|
||||
RPMTAG_POSTTRANSPROG = 1154, /* s[] */
|
||||
RPMTAG_DISTTAG = 1155, /* s */
|
||||
- RPMTAG_OLDSUGGESTSNAME = 1156, /* s[] (unimplemented) */
|
||||
-#define RPMTAG_OLDSUGGESTS RPMTAG_OLDSUGGESTSNAME /* s[] (unimplemented) */
|
||||
- RPMTAG_OLDSUGGESTSVERSION = 1157, /* s[] (unimplemented) */
|
||||
- RPMTAG_OLDSUGGESTSFLAGS = 1158, /* i[] (unimplemented) */
|
||||
- RPMTAG_OLDENHANCESNAME = 1159, /* s[] (unimplemented) */
|
||||
-#define RPMTAG_OLDENHANCES RPMTAG_OLDENHANCESNAME /* s[] (unimplemented) */
|
||||
- RPMTAG_OLDENHANCESVERSION = 1160, /* s[] (unimplemented) */
|
||||
- RPMTAG_OLDENHANCESFLAGS = 1161, /* i[] (unimplemented) */
|
||||
+ RPMTAG_OLDSUGGESTSNAME = 1156, /* s[] */
|
||||
+#define RPMTAG_OLDSUGGESTS RPMTAG_OLDSUGGESTSNAME /* s[] */
|
||||
+ RPMTAG_OLDSUGGESTSVERSION = 1157, /* s[] */
|
||||
+ RPMTAG_OLDSUGGESTSFLAGS = 1158, /* i[] */
|
||||
+ RPMTAG_OLDENHANCESNAME = 1159, /* s[] */
|
||||
+#define RPMTAG_OLDENHANCES RPMTAG_OLDENHANCESNAME /* s[] */
|
||||
+ RPMTAG_OLDENHANCESVERSION = 1160, /* s[] */
|
||||
+ RPMTAG_OLDENHANCESFLAGS = 1161, /* i[] */
|
||||
RPMTAG_PRIORITY = 1162, /* i[] extension placeholder (unimplemented) */
|
||||
RPMTAG_CVSID = 1163, /* s (unimplemented) */
|
||||
#define RPMTAG_SVNID RPMTAG_CVSID /* s (unimplemented) */
|
@ -1,7 +1,25 @@
|
||||
SUSE specific kernel provides/requires scripts
|
||||
|
||||
--- scripts/find-provides.ksyms.orig 2013-07-12 14:08:40.000000000 +0000
|
||||
+++ scripts/find-provides.ksyms 2013-07-12 14:08:54.000000000 +0000
|
||||
--- ./scripts/Makefile.am.orig 2014-08-04 12:34:11.656463310 +0000
|
||||
+++ ./scripts/Makefile.am 2014-08-04 12:34:15.063448350 +0000
|
||||
@@ -16,6 +16,7 @@ EXTRA_DIST = \
|
||||
tcl.req tgpg vpkg-provides.sh \
|
||||
find-requires find-provides \
|
||||
find-requires.php find-provides.php \
|
||||
+ find-requires.ksyms find-provides.ksyms \
|
||||
find-php-provides find-php-requires \
|
||||
mono-find-requires mono-find-provides \
|
||||
ocaml-find-requires.sh ocaml-find-provides.sh \
|
||||
@@ -33,6 +34,7 @@ rpmconfig_SCRIPTS = \
|
||||
check-buildroot check-rpaths check-rpaths-worker \
|
||||
find-lang.sh find-requires find-provides \
|
||||
perl.prov perl.req perldeps.pl pythondeps.sh osgideps.pl \
|
||||
+ find-requires.ksyms find-provides.ksyms \
|
||||
mono-find-requires mono-find-provides \
|
||||
pkgconfigdeps.sh libtooldeps.sh \
|
||||
ocaml-find-requires.sh ocaml-find-provides.sh \
|
||||
--- ./scripts/find-provides.ksyms.orig 2014-08-04 12:34:15.062448349 +0000
|
||||
+++ ./scripts/find-provides.ksyms 2014-08-04 12:34:15.062448349 +0000
|
||||
@@ -0,0 +1,17 @@
|
||||
+#! /bin/bash
|
||||
+
|
||||
@ -20,8 +38,8 @@ SUSE specific kernel provides/requires scripts
|
||||
+ esac
|
||||
+done \
|
||||
+| sort -u
|
||||
--- scripts/find-requires.ksyms.orig 2013-07-12 14:08:45.000000000 +0000
|
||||
+++ scripts/find-requires.ksyms 2013-07-12 14:08:33.000000000 +0000
|
||||
--- ./scripts/find-requires.ksyms.orig 2014-08-04 12:34:15.062448349 +0000
|
||||
+++ ./scripts/find-requires.ksyms 2014-08-04 12:34:15.062448349 +0000
|
||||
@@ -0,0 +1,15 @@
|
||||
+#! /bin/bash
|
||||
+
|
||||
@ -38,21 +56,3 @@ SUSE specific kernel provides/requires scripts
|
||||
+ esac
|
||||
+done \
|
||||
+| sort -u
|
||||
--- scripts/Makefile.am
|
||||
+++ scripts/Makefile.am
|
||||
@@ -15,6 +15,7 @@
|
||||
rpmdb_loadcvt rpm.daily rpm.log rpm.supp rpm2cpio.sh \
|
||||
tcl.req tgpg vpkg-provides.sh \
|
||||
find-requires.php find-provides.php \
|
||||
+ find-requires.ksyms find-provides.ksyms \
|
||||
find-php-provides find-php-requires \
|
||||
mono-find-requires mono-find-provides \
|
||||
ocaml-find-requires.sh ocaml-find-provides.sh \
|
||||
@@ -30,6 +31,7 @@
|
||||
check-buildroot check-rpaths check-rpaths-worker \
|
||||
find-lang.sh \
|
||||
perl.prov perl.req perldeps.pl pythondeps.sh osgideps.pl \
|
||||
+ find-requires.ksyms find-provides.ksyms \
|
||||
mono-find-requires mono-find-provides \
|
||||
pkgconfigdeps.sh libtooldeps.sh \
|
||||
ocaml-find-requires.sh ocaml-find-provides.sh \
|
||||
|
@ -1,109 +0,0 @@
|
||||
--- ./build/rpmfc.c.orig 2014-02-20 12:56:59.836814478 +0000
|
||||
+++ ./build/rpmfc.c 2014-02-20 12:58:18.886814338 +0000
|
||||
@@ -59,6 +59,7 @@ struct rpmfc_s {
|
||||
rpmstrPool pool; /*!< general purpose string storage */
|
||||
rpmds provides; /*!< (no. provides) package provides */
|
||||
rpmds requires; /*!< (no. requires) package requires */
|
||||
+ rpmds supplements; /*!< (no. supplements) package supplements */
|
||||
};
|
||||
|
||||
struct rpmfcTokens_s {
|
||||
@@ -583,6 +584,22 @@ static int rpmfcHelperRequires(rpmfc fc,
|
||||
RPMSENSE_FIND_REQUIRES, RPMTAG_REQUIRENAME);
|
||||
}
|
||||
|
||||
+/**
|
||||
+ * Run per-interpreter Supplements: dependency helper.
|
||||
+ * @param fc file classifier
|
||||
+ * @param nsdep class name for interpreter (e.g. "perl")
|
||||
+ * @return 0
|
||||
+ */
|
||||
+static int rpmfcHelperSupplements(rpmfc fc, const char * nsdep)
|
||||
+{
|
||||
+ if (fc->skipReq)
|
||||
+ return 0;
|
||||
+
|
||||
+ rpmfcHelper(fc, nsdep, "supplements", &fc->supplements, RPMSENSE_FIND_REQUIRES, RPMTAG_SUPPLEMENTNAME);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
/* Only used for elf coloring and controlling RPMTAG_FILECLASS inclusion now */
|
||||
static const struct rpmfcTokens_s rpmfcTokens[] = {
|
||||
{ "directory", RPMFC_INCLUDE },
|
||||
@@ -800,6 +817,8 @@ rpmfc rpmfcFree(rpmfc fc)
|
||||
|
||||
rpmdsFree(fc->provides);
|
||||
rpmdsFree(fc->requires);
|
||||
+ rpmdsFree(fc->supplements);
|
||||
+
|
||||
rpmstrPoolFree(fc->pool);
|
||||
memset(fc, 0, sizeof(*fc)); /* trash and burn */
|
||||
free(fc);
|
||||
@@ -833,6 +852,11 @@ rpmds rpmfcRequires(rpmfc fc)
|
||||
return (fc != NULL ? fc->requires : NULL);
|
||||
}
|
||||
|
||||
+rpmds rpmfcSupplements(rpmfc fc)
|
||||
+{
|
||||
+ return (fc != NULL ? fc->supplements : NULL);
|
||||
+}
|
||||
+
|
||||
rpmRC rpmfcApply(rpmfc fc)
|
||||
{
|
||||
const char * s;
|
||||
@@ -853,6 +877,7 @@ rpmRC rpmfcApply(rpmfc fc)
|
||||
for (ARGV_t fattr = fc->fattrs[fc->ix]; fattr && *fattr; fattr++) {
|
||||
rpmfcHelperProvides(fc, *fattr);
|
||||
rpmfcHelperRequires(fc, *fattr);
|
||||
+ rpmfcHelperSupplements(fc, *fattr);
|
||||
}
|
||||
}
|
||||
/* No more additions after this, freeze pool to minimize memory use */
|
||||
@@ -897,6 +922,11 @@ rpmRC rpmfcApply(rpmfc fc)
|
||||
dix = rpmdsFind(fc->requires, ds);
|
||||
rpmdsFree(ds);
|
||||
break;
|
||||
+ case 'S':
|
||||
+ ds = rpmdsSingle(RPMTAG_SUPPLEMENTNAME, N, EVR, Flags);
|
||||
+ dix = rpmdsFind(fc->supplements, ds);
|
||||
+ ds = rpmdsFree(ds);
|
||||
+ break;
|
||||
}
|
||||
|
||||
if (dix < 0)
|
||||
@@ -1380,6 +1410,18 @@ rpmRC rpmfcGenerateDepends(const rpmSpec
|
||||
}
|
||||
}
|
||||
|
||||
+ /* Add Supplements: */
|
||||
+ if (!fc->skipReq) {
|
||||
+ rpmds pi = rpmdsInit(fc->supplements);
|
||||
+ while (rpmdsNext(pi) >= 0) {
|
||||
+ rpmsenseFlags flags = rpmdsFlags(pi);
|
||||
+
|
||||
+ headerPutString(pkg->header, RPMTAG_SUPPLEMENTNAME, rpmdsN(pi));
|
||||
+ headerPutString(pkg->header, RPMTAG_SUPPLEMENTVERSION, rpmdsEVR(pi));
|
||||
+ headerPutUint32(pkg->header, RPMTAG_SUPPLEMENTFLAGS, &flags, 1);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
/* Add dependency dictionary(#dependencies) */
|
||||
if (rpmtdFromArgi(&td, RPMTAG_DEPENDSDICT, fc->ddictx)) {
|
||||
headerPut(pkg->header, &td, HEADERPUT_DEFAULT);
|
||||
--- ./build/rpmfc.h.orig 2012-11-07 12:55:24.000000000 +0000
|
||||
+++ ./build/rpmfc.h 2014-02-20 12:57:04.466814469 +0000
|
||||
@@ -106,6 +106,13 @@ rpmds rpmfcProvides(rpmfc fc);
|
||||
*/
|
||||
rpmds rpmfcRequires(rpmfc fc);
|
||||
|
||||
+/** \ingroup rpmfc
|
||||
+ * Retrieve file classification supplements
|
||||
+ * @param fc file classifier
|
||||
+ * @return rpmds dependency set of fc requires
|
||||
+ */
|
||||
+rpmds rpmfcSupplements(rpmfc fc);
|
||||
+
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,27 +1,3 @@
|
||||
Index: autodeps/linux.prov
|
||||
===================================================================
|
||||
--- autodeps/linux.prov.orig 2011-06-08 13:28:10.000000000 +0200
|
||||
+++ autodeps/linux.prov 2011-06-08 13:28:51.755445342 +0200
|
||||
@@ -11,6 +11,7 @@ solist=($(printf "%s\n" "${filelist[@]}"
|
||||
pythonlist=
|
||||
tcllist=
|
||||
monolist=($(printf "%s\n" "${filelist[@]}" | egrep "\\.(exe|dll)\$"))
|
||||
+firmwarelist=($(printf "%s\n" "${filelist[@]}" | grep "/lib/firmware/"))
|
||||
|
||||
#
|
||||
# --- Alpha does not mark 64bit dependencies
|
||||
@@ -59,6 +60,11 @@ done | sort -u
|
||||
printf "%s\n" "${tcllist[@]}" | /usr/lib/rpm/tcl.prov | sort -u
|
||||
|
||||
#
|
||||
+# --- firmware files
|
||||
+[ -x /usr/lib/rpm/firmware.prov -a -n "$firmwarelist" ] &&
|
||||
+ printf "%s\n" "${firmwarelist[@]}" | /usr/lib/rpm/firmware.prov | sort -u
|
||||
+
|
||||
+#
|
||||
# --- Mono exes/dlls
|
||||
: ${MONO_PREFIX=/usr}
|
||||
if [ -x $MONO_PREFIX/bin/mono -a -n "$monolist" ] ; then
|
||||
Index: scripts/firmware.prov
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
|
@ -1,54 +0,0 @@
|
||||
Index: autodeps/linux.prov
|
||||
===================================================================
|
||||
--- autodeps/linux.prov.orig 2011-06-08 13:37:46.951974468 +0200
|
||||
+++ autodeps/linux.prov 2011-06-08 13:37:46.967972960 +0200
|
||||
@@ -15,6 +15,8 @@ pythonlist=($(printf "%s\n" "${filelist[
|
||||
tcllist=
|
||||
monolist=($(printf "%s\n" "${filelist[@]}" | egrep "\\.(exe|dll)\$"))
|
||||
firmwarelist=($(printf "%s\n" "${filelist[@]}" | grep "/lib/firmware/"))
|
||||
+pkgconfiglist=($(printf "%s\n" "${filelist[@]}" | egrep '\.pc$'))
|
||||
+fontlist=($(printf "%s\n" "${filelist[@]}" | egrep -i "/usr/share/fonts/.*\.(ttf|otf|pfa)$"))
|
||||
|
||||
#
|
||||
# --- Alpha does not mark 64bit dependencies
|
||||
@@ -80,6 +82,16 @@ if [ -x $MONO_PREFIX/bin/mono -a -n "$mo
|
||||
fi
|
||||
|
||||
#
|
||||
+# --- pkgconfig provides
|
||||
+[ -x /usr/lib/rpm/pkgconfigdeps.sh -a -n "$pkgconfiglist" ] &&
|
||||
+ printf "%s\n" "${pkgconfiglist[@]}" | /usr/lib/rpm/pkgconfigdeps.sh -P | sort -u
|
||||
+
|
||||
+#
|
||||
+# --- font provides
|
||||
+[ -x /usr/lib/rpm/fontconfig.prov -a -n "$fontlist" ] &&
|
||||
+ printf "%s\n" "${fontlist[@]}" | /usr/lib/rpm/fontconfig.prov | sort -u
|
||||
+
|
||||
+#
|
||||
# --- Kernel module exported symbols
|
||||
[ -x /usr/lib/rpm/find-provides.ksyms ] &&
|
||||
printf "%s\n" "${filelist[@]}" | /usr/lib/rpm/find-provides.ksyms "$@"
|
||||
Index: autodeps/linux.req
|
||||
===================================================================
|
||||
--- autodeps/linux.req.orig 2011-06-08 13:37:46.951974468 +0200
|
||||
+++ autodeps/linux.req 2011-06-08 13:37:46.968972865 +0200
|
||||
@@ -34,6 +34,7 @@ perllist=()
|
||||
pythonlist=($(printf "%s\n" "${filelist[@]}" | egrep '/usr/lib[^/]*/python.\..'))
|
||||
tcllist=()
|
||||
monolist=($(printf "%s\n" "${filelist[@]}" | egrep "\\.(exe|dll)(\\.config)?\$"))
|
||||
+pkgconfiglist=($(printf "%s\n" "${filelist[@]}" | egrep '\.pc$'))
|
||||
|
||||
#
|
||||
# --- Alpha does not mark 64bit dependencies
|
||||
@@ -143,6 +144,11 @@ if [ -x $MONO_PREFIX/bin/mono -a -n "$mo
|
||||
fi
|
||||
|
||||
#
|
||||
+# --- pkgconfig requires
|
||||
+[ -x /usr/lib/rpm/pkgconfigdeps.sh -a -n "$pkgconfiglist" ] &&
|
||||
+ printf "%s\n" "${pkgconfiglist[@]}" | /usr/lib/rpm/pkgconfigdeps.sh -R | sort -u
|
||||
+
|
||||
+#
|
||||
# --- Kernel module imported symbols
|
||||
[ -x ${0%/*}/find-requires.ksyms ] &&
|
||||
printf "%s\n" "${filelist[@]}" | ${0%/*}/find-requires.ksyms "$@"
|
@ -1,11 +1,11 @@
|
||||
--- macros.in.orig 2012-04-18 13:48:07.000000000 +0000
|
||||
+++ macros.in 2012-04-18 13:47:41.000000000 +0000
|
||||
@@ -515,7 +515,7 @@ posix.setenv("RPMBUILD_SOURCEDIR",rpm.ex
|
||||
--- ./macros.in.orig 2014-08-04 13:04:51.646383733 +0000
|
||||
+++ ./macros.in 2014-08-04 13:04:54.687369977 +0000
|
||||
@@ -490,7 +490,7 @@ posix.setenv("RPMBUILD_SOURCEDIR",rpm.ex
|
||||
# %__myattr_exclude_magic exclude by magic regex
|
||||
# %__myattr_exclude_path exclude by path regex
|
||||
#
|
||||
-%_fileattrsdir %{_rpmconfigdir}/fileattrs
|
||||
+%_fileattrsdir %{__set_helper_env}%{_rpmconfigdir}/fileattrs
|
||||
|
||||
#==============================================================================
|
||||
# ---- Database configuration macros.
|
||||
# This macro defines how much space (in bytes) in package should be
|
||||
# reserved for gpg signatures during building of a package. If this space is
|
||||
|
@ -1,15 +1,3 @@
|
||||
--- ./autodeps/linux.prov.orig 2014-02-20 12:52:34.012814948 +0000
|
||||
+++ ./autodeps/linux.prov 2014-02-20 12:52:40.088814937 +0000
|
||||
@@ -101,4 +101,9 @@ fi
|
||||
[ -x /usr/lib/rpm/gstreamer-provides ] &&
|
||||
printf "%s\n" "${filelist[@]}" | /usr/lib/rpm/gstreamer-provides | sort -u
|
||||
|
||||
+#
|
||||
+# --- Provides of sysvinit scripts
|
||||
+[ -x /usr/lib/rpm/sysvinitdeps.sh ] &&
|
||||
+ printf "%s\n" "${filelist[@]}" | /usr/lib/rpm/sysvinitdeps.sh -P | sort -u
|
||||
+
|
||||
exit 0
|
||||
--- ./scripts/Makefile.am.orig 2014-02-20 12:52:33.971814948 +0000
|
||||
+++ ./scripts/Makefile.am 2014-02-20 12:52:40.089814937 +0000
|
||||
@@ -21,6 +21,7 @@ EXTRA_DIST = \
|
||||
|
@ -1,5 +1,5 @@
|
||||
--- ./macros.in.orig 2013-06-10 15:55:10.000000000 +0000
|
||||
+++ ./macros.in 2013-07-12 11:53:07.000000000 +0000
|
||||
--- ./macros.in.orig 2014-06-27 07:25:43.624470700 +0000
|
||||
+++ ./macros.in 2014-08-04 12:38:02.067474055 +0000
|
||||
@@ -185,22 +185,22 @@
|
||||
|
||||
# Template for debug information sub-package.
|
||||
@ -70,7 +70,7 @@
|
||||
|
||||
#
|
||||
# Path to file attribute classifications for automatic dependency
|
||||
@@ -512,10 +519,10 @@ package or when debugging this package.\
|
||||
@@ -519,10 +526,10 @@ package or when debugging this package.\
|
||||
# Misc BDB tuning options
|
||||
%__dbi_other mp_mmapsize=128Mb mp_size=1Mb
|
||||
|
||||
@ -83,7 +83,7 @@
|
||||
|
||||
#==============================================================================
|
||||
# ---- GPG/PGP/PGP5 signature macros.
|
||||
@@ -816,7 +823,7 @@ package or when debugging this package.\
|
||||
@@ -823,7 +830,7 @@ package or when debugging this package.\
|
||||
%_build_vendor %{_host_vendor}
|
||||
%_build_os %{_host_os}
|
||||
%_host @host@
|
||||
@ -92,7 +92,7 @@
|
||||
%_host_cpu @host_cpu@
|
||||
%_host_vendor @host_vendor@
|
||||
%_host_os @host_os@
|
||||
@@ -980,6 +987,183 @@ done \
|
||||
@@ -991,6 +998,183 @@ done \
|
||||
%python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; import sys; sys.stdout.write(get_python_lib(1))")
|
||||
%python_version %(%{__python} -c "import sys; sys.stdout.write(sys.version[:3])")
|
||||
|
||||
@ -276,18 +276,18 @@
|
||||
#------------------------------------------------------------------------------
|
||||
# arch macro for all Intel i?86 compatibile processors
|
||||
# (Note: This macro (and it's analogues) will probably be obsoleted when
|
||||
@@ -990,7 +1174,9 @@ done \
|
||||
@@ -1001,7 +1185,9 @@ done \
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# arch macro for all supported ARM processors
|
||||
-%arm armv3l armv4b armv4l armv4tl armv5tel armv5tejl armv6l armv7l
|
||||
+%arm armv3l armv4b armv4l armv4tl armv5b armv5l armv5teb armv5tel armv5tejl armv6l armv6hl armv7l armv7hl
|
||||
+%arml armv3l armv4l armv5l armv5tel armv6l armv7l armv7hl
|
||||
-%arm armv3l armv4b armv4l armv4tl armv5tel armv5tejl armv6l armv6hl armv7l armv7hl armv7hnl
|
||||
+%arm armv3l armv4b armv4l armv4tl armv5b armv5l armv5teb armv5tel armv5tejl armv6l armv6hl armv7l armv7hl armv7hnl
|
||||
+%arml armv3l armv4l armv5l armv5tel armv6l armv7l armv7hl armv7hnl
|
||||
+%armb armv4b armv5b armv5teb
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# arch macro for all supported Sparc processors
|
||||
@@ -1110,3 +1296,26 @@ end}
|
||||
@@ -1127,3 +1313,26 @@ end}
|
||||
|
||||
# \endverbatim
|
||||
#*/
|
||||
|
@ -1,9 +1,9 @@
|
||||
Also compare the name and not only the version when checking if
|
||||
Also compare the name/arch and not only the version when checking if
|
||||
two packages are the same. rh#104066
|
||||
|
||||
--- ./lib/depends.c.orig 2012-06-01 10:07:12.000000000 +0000
|
||||
+++ ./lib/depends.c 2012-06-01 10:16:13.000000000 +0000
|
||||
@@ -144,6 +144,24 @@ static int skipColor(rpm_color_t tscolor
|
||||
--- ./lib/depends.c.orig 2014-06-26 06:51:54.163820067 +0000
|
||||
+++ ./lib/depends.c 2014-08-04 12:22:24.030575105 +0000
|
||||
@@ -158,6 +158,24 @@ static int skipColor(rpm_color_t tscolor
|
||||
return tscolor && color && ocolor && !(color & ocolor);
|
||||
}
|
||||
|
||||
@ -26,16 +26,14 @@ two packages are the same. rh#104066
|
||||
+}
|
||||
+
|
||||
/* Add erase elements for older packages of same color (if any). */
|
||||
static int addUpgradeErasures(rpmts ts, rpm_color_t tscolor,
|
||||
static int addSelfErasures(rpmts ts, rpm_color_t tscolor, int op,
|
||||
rpmte p, rpm_color_t hcolor, Header h)
|
||||
@@ -157,8 +175,8 @@ static int addUpgradeErasures(rpmts ts,
|
||||
@@ -172,7 +190,7 @@ static int addSelfErasures(rpmts ts, rpm
|
||||
if (skipColor(tscolor, hcolor, headerGetNumber(oh, RPMTAG_HEADERCOLOR)))
|
||||
continue;
|
||||
|
||||
- /* Skip packages that contain identical NEVR. */
|
||||
- if (rpmVersionCompare(h, oh) == 0)
|
||||
+ /* Skip packages that contain identical NEVRA. */
|
||||
+ if (rpmNameVersionCompare(h, oh) == 0)
|
||||
continue;
|
||||
- cmp = rpmVersionCompare(h, oh);
|
||||
+ cmp = rpmNameVersionCompare(h, oh);
|
||||
|
||||
if (removePackage(ts, oh, p)) {
|
||||
/* On upgrade, skip packages that contain identical NEVR. */
|
||||
if ((op == RPMTE_UPGRADE) && (cmp == 0))
|
||||
|
462
newweakdeps.diff
462
newweakdeps.diff
@ -1,462 +0,0 @@
|
||||
--- ./build/files.c.orig 2014-02-05 13:04:01.000000000 +0000
|
||||
+++ ./build/files.c 2014-02-20 14:47:48.107802710 +0000
|
||||
@@ -1642,6 +1642,7 @@ static rpmRC readFilesManifest(rpmSpec s
|
||||
char *fn, buf[BUFSIZ];
|
||||
FILE *fd = NULL;
|
||||
rpmRC rc = RPMRC_FAIL;
|
||||
+ unsigned int nlines = 0;
|
||||
|
||||
if (*path == '/') {
|
||||
fn = rpmGetPath(path, NULL);
|
||||
@@ -1657,14 +1658,19 @@ static rpmRC readFilesManifest(rpmSpec s
|
||||
}
|
||||
|
||||
while (fgets(buf, sizeof(buf), fd)) {
|
||||
- handleComments(buf);
|
||||
+ if (handleComments(buf))
|
||||
+ continue;
|
||||
if (expandMacros(spec, spec->macros, buf, sizeof(buf))) {
|
||||
rpmlog(RPMLOG_ERR, _("line: %s\n"), buf);
|
||||
goto exit;
|
||||
}
|
||||
argvAdd(&(pkg->fileList), buf);
|
||||
+ nlines++;
|
||||
}
|
||||
|
||||
+ if (nlines == 0)
|
||||
+ rpmlog(RPMLOG_WARNING, _("Empty %%files file %s\n"), fn);
|
||||
+
|
||||
if (ferror(fd))
|
||||
rpmlog(RPMLOG_ERR, _("Error reading %%files file %s: %m\n"), fn);
|
||||
else
|
||||
--- ./build/pack.c.orig 2014-02-05 13:04:01.000000000 +0000
|
||||
+++ ./build/pack.c 2014-02-20 14:47:48.107802710 +0000
|
||||
@@ -228,8 +228,10 @@ static rpmTagVal depevrtags[] = {
|
||||
RPMTAG_CONFLICTVERSION,
|
||||
RPMTAG_ORDERVERSION,
|
||||
RPMTAG_TRIGGERVERSION,
|
||||
- RPMTAG_SUGGESTSVERSION,
|
||||
- RPMTAG_ENHANCESVERSION,
|
||||
+ RPMTAG_SUGGESTVERSION,
|
||||
+ RPMTAG_ENHANCEVERSION,
|
||||
+ RPMTAG_RECOMMENDVERSION,
|
||||
+ RPMTAG_SUPPLEMENTVERSION,
|
||||
0
|
||||
};
|
||||
|
||||
--- ./build/parsePreamble.c.orig 2014-02-05 13:04:01.000000000 +0000
|
||||
+++ ./build/parsePreamble.c 2014-02-20 14:47:48.108802710 +0000
|
||||
@@ -785,6 +785,10 @@ static rpmRC handlePreambleTag(rpmSpec s
|
||||
}
|
||||
/* fallthrough */
|
||||
case RPMTAG_PREREQ:
|
||||
+ case RPMTAG_RECOMMENDFLAGS:
|
||||
+ case RPMTAG_SUGGESTFLAGS:
|
||||
+ case RPMTAG_SUPPLEMENTFLAGS:
|
||||
+ case RPMTAG_ENHANCEFLAGS:
|
||||
case RPMTAG_CONFLICTFLAGS:
|
||||
case RPMTAG_OBSOLETEFLAGS:
|
||||
case RPMTAG_PROVIDEFLAGS:
|
||||
@@ -886,6 +890,10 @@ static struct PreambleRec_s const preamb
|
||||
{RPMTAG_ICON, 0, 0, LEN_AND_STR("icon")},
|
||||
{RPMTAG_PROVIDEFLAGS, 0, 0, LEN_AND_STR("provides")},
|
||||
{RPMTAG_REQUIREFLAGS, 2, 0, LEN_AND_STR("requires")},
|
||||
+ {RPMTAG_RECOMMENDFLAGS, 0, 0, LEN_AND_STR("recommends")},
|
||||
+ {RPMTAG_SUGGESTFLAGS, 0, 0, LEN_AND_STR("suggests")},
|
||||
+ {RPMTAG_SUPPLEMENTFLAGS, 0, 0, LEN_AND_STR("supplements")},
|
||||
+ {RPMTAG_ENHANCEFLAGS, 0, 0, LEN_AND_STR("enhances")},
|
||||
{RPMTAG_PREREQ, 2, 1, LEN_AND_STR("prereq")},
|
||||
{RPMTAG_CONFLICTFLAGS, 0, 0, LEN_AND_STR("conflicts")},
|
||||
{RPMTAG_OBSOLETEFLAGS, 0, 0, LEN_AND_STR("obsoletes")},
|
||||
--- ./build/parseReqs.c.orig 2014-02-05 13:06:21.000000000 +0000
|
||||
+++ ./build/parseReqs.c 2014-02-20 14:47:48.108802710 +0000
|
||||
@@ -61,6 +61,18 @@ rpmRC parseRCPOT(rpmSpec spec, Package p
|
||||
nametag = RPMTAG_REQUIRENAME;
|
||||
tagflags |= RPMSENSE_ANY;
|
||||
break;
|
||||
+ case RPMTAG_RECOMMENDFLAGS:
|
||||
+ nametag = RPMTAG_RECOMMENDNAME;
|
||||
+ break;
|
||||
+ case RPMTAG_SUGGESTFLAGS:
|
||||
+ nametag = RPMTAG_SUGGESTNAME;
|
||||
+ break;
|
||||
+ case RPMTAG_SUPPLEMENTFLAGS:
|
||||
+ nametag = RPMTAG_SUPPLEMENTNAME;
|
||||
+ break;
|
||||
+ case RPMTAG_ENHANCEFLAGS:
|
||||
+ nametag = RPMTAG_ENHANCENAME;
|
||||
+ break;
|
||||
case RPMTAG_PROVIDEFLAGS:
|
||||
nametag = RPMTAG_PROVIDENAME;
|
||||
break;
|
||||
--- ./build/parseSpec.c.orig 2014-02-05 13:04:01.000000000 +0000
|
||||
+++ ./build/parseSpec.c 2014-02-20 14:47:48.108802710 +0000
|
||||
@@ -102,11 +102,14 @@ static int matchTok(const char *token, c
|
||||
return rc;
|
||||
}
|
||||
|
||||
-void handleComments(char *s)
|
||||
+int handleComments(char *s)
|
||||
{
|
||||
SKIPSPACE(s);
|
||||
- if (*s == '#')
|
||||
+ if (*s == '#') {
|
||||
*s = '\0';
|
||||
+ return 1;
|
||||
+ }
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
/* Push a file to spec's file stack, return the newly pushed entry */
|
||||
--- ./build/reqprov.c.orig 2014-02-05 13:04:01.000000000 +0000
|
||||
+++ ./build/reqprov.c 2014-02-20 14:47:48.108802710 +0000
|
||||
@@ -81,6 +81,30 @@ int addReqProv(Package pkg, rpmTagVal ta
|
||||
extra = Flags & RPMSENSE_TRIGGER;
|
||||
dsp = &pkg->triggers;
|
||||
break;
|
||||
+ case RPMTAG_RECOMMENDNAME:
|
||||
+ versiontag = RPMTAG_RECOMMENDVERSION;
|
||||
+ flagtag = RPMTAG_RECOMMENDFLAGS;
|
||||
+ extra = Flags & _ALL_REQUIRES_MASK;
|
||||
+ dsp = &pkg->recommends;
|
||||
+ break;
|
||||
+ case RPMTAG_SUGGESTNAME:
|
||||
+ versiontag = RPMTAG_SUGGESTVERSION;
|
||||
+ flagtag = RPMTAG_SUGGESTFLAGS;
|
||||
+ extra = Flags & _ALL_REQUIRES_MASK;
|
||||
+ dsp = &pkg->suggests;
|
||||
+ break;
|
||||
+ case RPMTAG_SUPPLEMENTNAME:
|
||||
+ versiontag = RPMTAG_SUPPLEMENTVERSION;
|
||||
+ flagtag = RPMTAG_SUPPLEMENTFLAGS;
|
||||
+ extra = Flags & _ALL_REQUIRES_MASK;
|
||||
+ dsp = &pkg->supplements;
|
||||
+ break;
|
||||
+ case RPMTAG_ENHANCENAME:
|
||||
+ versiontag = RPMTAG_ENHANCEVERSION;
|
||||
+ flagtag = RPMTAG_ENHANCEFLAGS;
|
||||
+ extra = Flags & _ALL_REQUIRES_MASK;
|
||||
+ dsp = &pkg->enhances;
|
||||
+ break;
|
||||
case RPMTAG_REQUIRENAME:
|
||||
default:
|
||||
tagN = RPMTAG_REQUIRENAME;
|
||||
--- ./build/rpmbuild_internal.h.orig 2014-02-05 13:04:01.000000000 +0000
|
||||
+++ ./build/rpmbuild_internal.h 2014-02-20 14:47:48.109802710 +0000
|
||||
@@ -93,6 +93,10 @@ struct Package_s {
|
||||
rpmds ds; /*!< Requires: N = EVR */
|
||||
rpmds requires;
|
||||
rpmds provides;
|
||||
+ rpmds recommends;
|
||||
+ rpmds suggests;
|
||||
+ rpmds supplements;
|
||||
+ rpmds enhances;
|
||||
rpmds conflicts;
|
||||
rpmds obsoletes;
|
||||
rpmds triggers;
|
||||
--- ./build/rpmbuild_misc.h.orig 2014-02-05 13:04:01.000000000 +0000
|
||||
+++ ./build/rpmbuild_misc.h 2014-02-20 14:47:48.109802710 +0000
|
||||
@@ -12,9 +12,10 @@ extern "C" {
|
||||
/** \ingroup rpmbuild
|
||||
* Truncate comment lines.
|
||||
* @param s skip white space, truncate line at '#'
|
||||
+ * @return 1 on comment lines, 0 otherwise
|
||||
*/
|
||||
RPM_GNUC_INTERNAL
|
||||
-void handleComments(char * s);
|
||||
+int handleComments(char * s);
|
||||
|
||||
/** \ingroup rpmstring
|
||||
*/
|
||||
--- ./build/spec.c.orig 2014-02-05 13:04:01.000000000 +0000
|
||||
+++ ./build/spec.c 2014-02-20 14:47:48.109802710 +0000
|
||||
@@ -137,6 +137,11 @@ static Package freePackage(Package pkg)
|
||||
pkg->ds = rpmdsFree(pkg->ds);
|
||||
pkg->requires = rpmdsFree(pkg->requires);
|
||||
pkg->provides = rpmdsFree(pkg->provides);
|
||||
+ pkg->recommends = rpmdsFree(pkg->recommends);
|
||||
+ pkg->suggests = rpmdsFree(pkg->suggests);
|
||||
+ pkg->supplements = rpmdsFree(pkg->supplements);
|
||||
+ pkg->enhances = rpmdsFree(pkg->enhances);
|
||||
+
|
||||
pkg->conflicts = rpmdsFree(pkg->conflicts);
|
||||
pkg->obsoletes = rpmdsFree(pkg->obsoletes);
|
||||
pkg->triggers = rpmdsFree(pkg->triggers);
|
||||
--- ./lib/rpmds.c.orig 2014-02-05 13:04:02.000000000 +0000
|
||||
+++ ./lib/rpmds.c 2014-02-20 14:47:48.110802710 +0000
|
||||
@@ -54,6 +54,22 @@ static int dsType(rpmTagVal tag,
|
||||
t = "Requires";
|
||||
evr = RPMTAG_REQUIREVERSION;
|
||||
f = RPMTAG_REQUIREFLAGS;
|
||||
+ } else if (tag == RPMTAG_SUPPLEMENTNAME) {
|
||||
+ t = "Supplements";
|
||||
+ evr = RPMTAG_SUPPLEMENTVERSION;
|
||||
+ f = RPMTAG_SUPPLEMENTFLAGS;
|
||||
+ } else if (tag == RPMTAG_ENHANCENAME) {
|
||||
+ t = "Enhances";
|
||||
+ evr = RPMTAG_ENHANCEVERSION;
|
||||
+ f = RPMTAG_ENHANCEFLAGS;
|
||||
+ } else if (tag == RPMTAG_RECOMMENDNAME) {
|
||||
+ t = "Recommends";
|
||||
+ evr = RPMTAG_RECOMMENDVERSION;
|
||||
+ f = RPMTAG_RECOMMENDFLAGS;
|
||||
+ } else if (tag == RPMTAG_SUGGESTNAME) {
|
||||
+ t = "Suggests";
|
||||
+ evr = RPMTAG_SUGGESTVERSION;
|
||||
+ f = RPMTAG_SUGGESTFLAGS;
|
||||
} else if (tag == RPMTAG_CONFLICTNAME) {
|
||||
t = "Conflicts";
|
||||
evr = RPMTAG_CONFLICTVERSION;
|
||||
--- ./lib/rpmtag.h.orig 2014-02-05 13:04:02.000000000 +0000
|
||||
+++ ./lib/rpmtag.h 2014-02-20 14:47:48.110802710 +0000
|
||||
@@ -217,14 +217,14 @@ typedef enum rpmTag_e {
|
||||
RPMTAG_PRETRANSPROG = 1153, /* s[] */
|
||||
RPMTAG_POSTTRANSPROG = 1154, /* s[] */
|
||||
RPMTAG_DISTTAG = 1155, /* s */
|
||||
- RPMTAG_SUGGESTSNAME = 1156, /* s[] extension (unimplemented) */
|
||||
-#define RPMTAG_SUGGESTS RPMTAG_SUGGESTSNAME /* s[] (unimplemented) */
|
||||
- RPMTAG_SUGGESTSVERSION = 1157, /* s[] extension (unimplemented) */
|
||||
- RPMTAG_SUGGESTSFLAGS = 1158, /* i[] extension (unimplemented) */
|
||||
- RPMTAG_ENHANCESNAME = 1159, /* s[] extension placeholder (unimplemented) */
|
||||
-#define RPMTAG_ENHANCES RPMTAG_ENHANCESNAME /* s[] (unimplemented) */
|
||||
- RPMTAG_ENHANCESVERSION = 1160, /* s[] extension placeholder (unimplemented) */
|
||||
- RPMTAG_ENHANCESFLAGS = 1161, /* i[] extension placeholder (unimplemented) */
|
||||
+ RPMTAG_OLDSUGGESTSNAME = 1156, /* s[] (unimplemented) */
|
||||
+#define RPMTAG_OLDSUGGESTS RPMTAG_OLDSUGGESTSNAME /* s[] (unimplemented) */
|
||||
+ RPMTAG_OLDSUGGESTSVERSION = 1157, /* s[] (unimplemented) */
|
||||
+ RPMTAG_OLDSUGGESTSFLAGS = 1158, /* i[] (unimplemented) */
|
||||
+ RPMTAG_OLDENHANCESNAME = 1159, /* s[] (unimplemented) */
|
||||
+#define RPMTAG_OLDENHANCES RPMTAG_OLDENHANCESNAME /* s[] (unimplemented) */
|
||||
+ RPMTAG_OLDENHANCESVERSION = 1160, /* s[] (unimplemented) */
|
||||
+ RPMTAG_OLDENHANCESFLAGS = 1161, /* i[] (unimplemented) */
|
||||
RPMTAG_PRIORITY = 1162, /* i[] extension placeholder (unimplemented) */
|
||||
RPMTAG_CVSID = 1163, /* s (unimplemented) */
|
||||
#define RPMTAG_SVNID RPMTAG_CVSID /* s (unimplemented) */
|
||||
@@ -261,6 +261,7 @@ typedef enum rpmTag_e {
|
||||
RPMTAG_BUILDOBSOLETES = 1194, /* internal (unimplemented) */
|
||||
RPMTAG_DBINSTANCE = 1195, /* i extension */
|
||||
RPMTAG_NVRA = 1196, /* s extension */
|
||||
+
|
||||
/* tags 1997-4999 reserved */
|
||||
RPMTAG_FILENAMES = 5000, /* s[] extension */
|
||||
RPMTAG_FILEPROVIDE = 5001, /* s[] extension */
|
||||
@@ -307,6 +308,26 @@ typedef enum rpmTag_e {
|
||||
RPMTAG_OBSOLETENEVRS = 5043, /* s[] extension */
|
||||
RPMTAG_CONFLICTNEVRS = 5044, /* s[] extension */
|
||||
RPMTAG_FILENLINKS = 5045, /* i[] extension */
|
||||
+ RPMTAG_RECOMMENDNAME = 5046, /* s[] */
|
||||
+#define RPMTAG_RECOMMENDS RPMTAG_RECOMMENDNAME /* s[] */
|
||||
+ RPMTAG_RECOMMENDVERSION = 5047, /* s[] */
|
||||
+ RPMTAG_RECOMMENDFLAGS = 5048, /* i[] */
|
||||
+ RPMTAG_SUGGESTNAME = 5049, /* s[] */
|
||||
+#define RPMTAG_SUGGESTS RPMTAG_SUGGESTNAME /* s[] */
|
||||
+ RPMTAG_SUGGESTVERSION = 5050, /* s[] extension */
|
||||
+ RPMTAG_SUGGESTFLAGS = 5051, /* i[] extension */
|
||||
+ RPMTAG_SUPPLEMENTNAME = 5052, /* s[] */
|
||||
+#define RPMTAG_SUPPLEMENTS RPMTAG_SUPPLEMENTNAME /* s[] */
|
||||
+ RPMTAG_SUPPLEMENTVERSION = 5053, /* s[] */
|
||||
+ RPMTAG_SUPPLEMENTFLAGS = 5054, /* i[] */
|
||||
+ RPMTAG_ENHANCENAME = 5055, /* s[] */
|
||||
+#define RPMTAG_ENHANCES RPMTAG_ENHANCENAME /* s[] */
|
||||
+ RPMTAG_ENHANCEVERSION = 5056, /* s[] */
|
||||
+ RPMTAG_ENHANCEFLAGS = 5057, /* i[] */
|
||||
+ RPMTAG_RECOMMENDNEVRS = 5058, /* s[] extension */
|
||||
+ RPMTAG_SUGGESTNEVRS = 5059, /* s[] extension */
|
||||
+ RPMTAG_SUPPLEMENTNEVRS = 5060, /* s[] extension */
|
||||
+ RPMTAG_ENHANCENEVRS = 5061, /* s[] extension */
|
||||
|
||||
RPMTAG_FIRSTFREE_TAG /*!< internal */
|
||||
} rpmTag;
|
||||
--- ./lib/tagexts.c.orig 2012-11-07 12:55:24.000000000 +0000
|
||||
+++ ./lib/tagexts.c 2014-02-20 14:47:48.110802710 +0000
|
||||
@@ -761,6 +761,26 @@ static int requirenevrsTag(Header h, rpm
|
||||
return depnevrsTag(h, td, hgflags, RPMTAG_REQUIRENAME);
|
||||
}
|
||||
|
||||
+static int recommendnevrsTag(Header h, rpmtd td, headerGetFlags hgflags)
|
||||
+{
|
||||
+ return depnevrsTag(h, td, hgflags, RPMTAG_RECOMMENDNAME);
|
||||
+}
|
||||
+
|
||||
+static int suggestnevrsTag(Header h, rpmtd td, headerGetFlags hgflags)
|
||||
+{
|
||||
+ return depnevrsTag(h, td, hgflags, RPMTAG_SUGGESTNAME);
|
||||
+}
|
||||
+
|
||||
+static int supplementnevrsTag(Header h, rpmtd td, headerGetFlags hgflags)
|
||||
+{
|
||||
+ return depnevrsTag(h, td, hgflags, RPMTAG_SUPPLEMENTNAME);
|
||||
+}
|
||||
+
|
||||
+static int enhancenevrsTag(Header h, rpmtd td, headerGetFlags hgflags)
|
||||
+{
|
||||
+ return depnevrsTag(h, td, hgflags, RPMTAG_ENHANCENAME);
|
||||
+}
|
||||
+
|
||||
static int providenevrsTag(Header h, rpmtd td, headerGetFlags hgflags)
|
||||
{
|
||||
return depnevrsTag(h, td, hgflags, RPMTAG_PROVIDENAME);
|
||||
@@ -823,6 +843,10 @@ static const struct headerTagFunc_s rpmH
|
||||
{ RPMTAG_EPOCHNUM, epochnumTag },
|
||||
{ RPMTAG_INSTFILENAMES, instfilenamesTag },
|
||||
{ RPMTAG_REQUIRENEVRS, requirenevrsTag },
|
||||
+ { RPMTAG_RECOMMENDNEVRS, recommendnevrsTag},
|
||||
+ { RPMTAG_SUGGESTNEVRS, suggestnevrsTag},
|
||||
+ { RPMTAG_SUPPLEMENTNEVRS, supplementnevrsTag},
|
||||
+ { RPMTAG_ENHANCENEVRS, enhancenevrsTag},
|
||||
{ RPMTAG_PROVIDENEVRS, providenevrsTag },
|
||||
{ RPMTAG_OBSOLETENEVRS, obsoletenevrsTag },
|
||||
{ RPMTAG_CONFLICTNEVRS, conflictnevrsTag },
|
||||
--- ./rpmpopt.in.orig 2014-02-05 13:04:02.000000000 +0000
|
||||
+++ ./rpmpopt.in 2014-02-20 14:47:48.110802710 +0000
|
||||
@@ -67,6 +67,19 @@ rpm alias --requires --qf \
|
||||
--POPTdesc=$"list capabilities required by package(s)"
|
||||
rpm alias -R --requires
|
||||
|
||||
+rpm alias --recommends --qf \
|
||||
+ "[%|VERBOSE?{%{RECOMMENDFLAGS:deptype}: }:{}|%{RECOMMENDNEVRS}\n]" \
|
||||
+ --POPTdesc=$"list capabilities recommended by package(s)"
|
||||
+rpm alias --suggests --qf \
|
||||
+ "[%|VERBOSE?{%{SUGGESTFLAGS:deptype}: }:{}|%{SUGGESTNEVRS}\n]" \
|
||||
+ --POPTdesc=$"list capabilities suggested by package(s)"
|
||||
+rpm alias --supplements --qf \
|
||||
+ "[%|VERBOSE?{%{SUPPLEMENTFLAGS:deptype}: }:{}|%{SUPPLEMENTNEVRS}\n]" \
|
||||
+ --POPTdesc=$"list capabilities supplemented by package(s)"
|
||||
+rpm alias --enhances --qf \
|
||||
+ "[%|VERBOSE?{%{ENHANCEFLAGS:deptype}: }:{}|%{ENHANCENEVRS}\n]" \
|
||||
+ --POPTdesc=$"list capabilities enhanced by package(s)"
|
||||
+
|
||||
rpm alias --info --qf '\
|
||||
Name : %{NAME}\n\
|
||||
%|EPOCH?{Epoch : %{EPOCH}\n}|\
|
||||
--- ./tests/data/SPECS/deptest.spec.orig 2014-02-05 13:04:02.000000000 +0000
|
||||
+++ ./tests/data/SPECS/deptest.spec 2014-02-20 14:47:48.110802710 +0000
|
||||
@@ -10,6 +10,10 @@ BuildArch: noarch
|
||||
%{?provs:Provides: %{provs}}
|
||||
%{?cfls:Conflicts: %{cfls}}
|
||||
%{?obs:Obsoletes: %{obs}}
|
||||
+%{?recs:Recommends: %{recs}}
|
||||
+%{?sugs:Suggests: %{sugs}}
|
||||
+%{?sups:Supplements: %{sups}}
|
||||
+%{?ens:Enhances: %{ens}}
|
||||
|
||||
%description
|
||||
%{summary}
|
||||
--- ./tests/rpmbuild.at.orig 2014-02-05 13:04:02.000000000 +0000
|
||||
+++ ./tests/rpmbuild.at 2014-02-20 14:47:48.110802710 +0000
|
||||
@@ -185,3 +185,31 @@ lrwxrwxrwx /opt/globtest/linkgood
|
||||
],
|
||||
[])
|
||||
AT_CLEANUP
|
||||
+
|
||||
+# ------------------------------
|
||||
+# Check if weak and reverse requires can be built
|
||||
+AT_SETUP([Weak and reverse requires])
|
||||
+AT_KEYWORDS([build])
|
||||
+AT_CHECK([
|
||||
+
|
||||
+runroot rpmbuild -bb --quiet \
|
||||
+ --define "pkg weakdeps" \
|
||||
+ --define "recs foo > 1.2.3" \
|
||||
+ --define "sugs bar >= 0.1.2" \
|
||||
+ --define "sups baz" \
|
||||
+ --define "ens zap = 3" \
|
||||
+ /data/SPECS/deptest.spec
|
||||
+
|
||||
+runroot rpm -qp --recommends /build/RPMS/noarch/deptest-weakdeps-1.0-1.noarch.rpm
|
||||
+runroot rpm -qp --suggests /build/RPMS/noarch/deptest-weakdeps-1.0-1.noarch.rpm
|
||||
+runroot rpm -qp --supplements /build/RPMS/noarch/deptest-weakdeps-1.0-1.noarch.rpm
|
||||
+runroot rpm -qp --enhances /build/RPMS/noarch/deptest-weakdeps-1.0-1.noarch.rpm
|
||||
+],
|
||||
+[0],
|
||||
+[foo > 1.2.3
|
||||
+bar >= 0.1.2
|
||||
+baz
|
||||
+zap = 3
|
||||
+],
|
||||
+[ignore])
|
||||
+AT_CLEANUP
|
||||
--- ./tests/rpmdb.at.orig 2014-02-05 13:04:02.000000000 +0000
|
||||
+++ ./tests/rpmdb.at 2014-02-20 14:47:48.111802710 +0000
|
||||
@@ -103,7 +103,7 @@ AT_CLEANUP
|
||||
|
||||
# ------------------------------
|
||||
# reinstall a noarch package (with no files)
|
||||
-AT_SETUP([rpm -U --replacepkgs])
|
||||
+AT_SETUP([rpm -U --replacepkgs 1])
|
||||
AT_KEYWORDS([rpmdb install])
|
||||
|
||||
AT_CHECK([
|
||||
@@ -124,6 +124,28 @@ runroot rpm -i "${tpkg}" &&
|
||||
AT_CLEANUP
|
||||
|
||||
# ------------------------------
|
||||
+# reinstall a package with different file policies
|
||||
+AT_SETUP([rpm -U --replacepkgs 2])
|
||||
+AT_KEYWORDS([rpmdb install])
|
||||
+
|
||||
+AT_CHECK([
|
||||
+AT_XFAIL_IF([test $RPM_XFAIL -ne 0])
|
||||
+RPMDB_CLEAR
|
||||
+RPMDB_INIT
|
||||
+
|
||||
+tpkg="/data/RPMS/hello-2.0-1.i686.rpm"
|
||||
+
|
||||
+runroot rpm -U --nodeps --ignorearch "${tpkg}" &&
|
||||
+ runroot rpm -U --nodeps --ignorearch --nodocs --replacepkgs "${tpkg}" &&
|
||||
+ runroot rpm -e hello
|
||||
+test -d "${RPMTEST}"/usr/share/doc/hello-2.0
|
||||
+],
|
||||
+[1],
|
||||
+[],
|
||||
+[])
|
||||
+
|
||||
+AT_CLEANUP
|
||||
+# ------------------------------
|
||||
# install a package into a local rpmdb
|
||||
# * Shall only work with relocation
|
||||
# * Use --ignorearch because we don't know the arch
|
||||
--- ./tests/rpmgeneral.at.orig 2012-11-07 12:55:24.000000000 +0000
|
||||
+++ ./tests/rpmgeneral.at 2014-02-20 14:47:48.111802710 +0000
|
||||
@@ -79,6 +79,11 @@ DISTTAG
|
||||
DISTURL
|
||||
DSAHEADER
|
||||
E
|
||||
+ENHANCEFLAGS
|
||||
+ENHANCENAME
|
||||
+ENHANCENEVRS
|
||||
+ENHANCES
|
||||
+ENHANCEVERSION
|
||||
EPOCH
|
||||
EPOCHNUM
|
||||
EVR
|
||||
@@ -199,6 +204,11 @@ PROVIDES
|
||||
PROVIDEVERSION
|
||||
PUBKEYS
|
||||
R
|
||||
+RECOMMENDFLAGS
|
||||
+RECOMMENDNAME
|
||||
+RECOMMENDNEVRS
|
||||
+RECOMMENDS
|
||||
+RECOMMENDVERSION
|
||||
RECONTEXTS
|
||||
RELEASE
|
||||
REMOVETID
|
||||
@@ -219,7 +229,17 @@ SOURCE
|
||||
SOURCEPACKAGE
|
||||
SOURCEPKGID
|
||||
SOURCERPM
|
||||
+SUGGESTFLAGS
|
||||
+SUGGESTNAME
|
||||
+SUGGESTNEVRS
|
||||
+SUGGESTS
|
||||
+SUGGESTVERSION
|
||||
SUMMARY
|
||||
+SUPPLEMENTFLAGS
|
||||
+SUPPLEMENTNAME
|
||||
+SUPPLEMENTNEVRS
|
||||
+SUPPLEMENTS
|
||||
+SUPPLEMENTVERSION
|
||||
TRIGGERCONDS
|
||||
TRIGGERFLAGS
|
||||
TRIGGERINDEX
|
115
noposttrans.diff
115
noposttrans.diff
@ -1,115 +0,0 @@
|
||||
Author: Panu Matilainen <pmatilai@redhat.com>
|
||||
Date: Wed Apr 10 11:31:41 2013 +0300
|
||||
|
||||
Add scriptlet-specific disablers for %pretrans and %posttrans
|
||||
|
||||
- Previously %pretrans and %posttrans were tied to --nopre and --nopost
|
||||
disablers (since commit 0b2d7775c5e828652e45829f551352b93890bbc8)
|
||||
because back then, there was no room new disablers in rpmtransFlags
|
||||
bitfield. This is no longer the case as of rpm >= 4.9.x where
|
||||
a bunch of obsolete flags were axed, so we can now add specific
|
||||
--nopretrans and --noposttrans switches + corresponding flags.
|
||||
- This is obviously a behavior change as --nopre and --nopost no
|
||||
longer affect %pretrans and %posttrans, but --noscripts behavior
|
||||
remains the same.
|
||||
|
||||
--- doc/rpm.8
|
||||
+++ doc/rpm.8
|
||||
@@ -278,6 +278,10 @@ packages would normally be reordered to satisfy dependencies.
|
||||
\fB--nopreun\fR
|
||||
.TP
|
||||
\fB--nopostun\fR
|
||||
+.TP
|
||||
+\fB--nopretrans\fR
|
||||
+.TP
|
||||
+\fB--noposttrans\fR
|
||||
Don't execute the scriptlet of the same name.
|
||||
The \fB--noscripts\fR option is equivalent to
|
||||
|
||||
@@ -285,12 +289,16 @@ The \fB--noscripts\fR option is equivalent to
|
||||
\fB--nopost\fR
|
||||
\fB--nopreun\fR
|
||||
\fB--nopostun\fR
|
||||
+\fB--nopretrans\fR
|
||||
+\fB--noposttrans\fR
|
||||
|
||||
and turns off the execution of the corresponding
|
||||
\fB%pre\fR,
|
||||
\fB%post\fR,
|
||||
-\fB%preun\fR, and
|
||||
+\fB%preun\fR,
|
||||
\fB%postun\fR
|
||||
+\fB%pretrans\fR, and
|
||||
+\fB%posttrans\fR
|
||||
scriptlet(s).
|
||||
.TP
|
||||
\fB--notriggers\fR
|
||||
--- lib/poptI.c
|
||||
+++ lib/poptI.c
|
||||
@@ -202,6 +202,12 @@ struct poptOption rpmInstallPoptTable[] = {
|
||||
{ "nopostun", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN, &rpmIArgs.transFlags,
|
||||
RPMTRANS_FLAG_NOPOSTUN,
|
||||
N_("do not execute %%postun scriptlet (if any)"), NULL },
|
||||
+ { "nopretrans", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN, &rpmIArgs.transFlags,
|
||||
+ RPMTRANS_FLAG_NOPRETRANS,
|
||||
+ N_("do not execute %%pretrans scriptlet (if any)"), NULL },
|
||||
+ { "noposttrans", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN, &rpmIArgs.transFlags,
|
||||
+ RPMTRANS_FLAG_NOPOSTTRANS,
|
||||
+ N_("do not execute %%posttrans scriptlet (if any)"), NULL },
|
||||
|
||||
{ "notriggers", '\0', POPT_BIT_SET, &rpmIArgs.transFlags, _noTransTriggers,
|
||||
N_("do not execute any scriptlet(s) triggered by this package"), NULL},
|
||||
--- lib/rpmts.h
|
||||
+++ lib/rpmts.h
|
||||
@@ -45,7 +45,8 @@ enum rpmtransFlags_e {
|
||||
RPMTRANS_FLAG_NOPREUN = (1 << 21), /*!< from --nopreun */
|
||||
RPMTRANS_FLAG_NOPOSTUN = (1 << 22), /*!< from --nopostun */
|
||||
RPMTRANS_FLAG_NOTRIGGERPOSTUN = (1 << 23), /*!< from --notriggerpostun */
|
||||
- /* bits 24-25 unused */
|
||||
+ RPMTRANS_FLAG_NOPRETRANS = (1 << 24), /*!< from --nopretrans */
|
||||
+ RPMTRANS_FLAG_NOPOSTTRANS = (1 << 25), /*!< from --noposttrans */
|
||||
RPMTRANS_FLAG_NOCOLLECTIONS = (1 << 26), /*!< from --nocollections */
|
||||
RPMTRANS_FLAG_NOMD5 = (1 << 27), /*!< from --nomd5 */
|
||||
RPMTRANS_FLAG_NOFILEDIGEST = (1 << 27), /*!< from --nofiledigest (alias to --nomd5) */
|
||||
@@ -60,7 +61,9 @@ typedef rpmFlags rpmtransFlags;
|
||||
( RPMTRANS_FLAG_NOPRE | \
|
||||
RPMTRANS_FLAG_NOPOST | \
|
||||
RPMTRANS_FLAG_NOPREUN | \
|
||||
- RPMTRANS_FLAG_NOPOSTUN \
|
||||
+ RPMTRANS_FLAG_NOPOSTUN | \
|
||||
+ RPMTRANS_FLAG_NOPRETRANS | \
|
||||
+ RPMTRANS_FLAG_NOPOSTTRANS \
|
||||
)
|
||||
|
||||
#define _noTransTriggers \
|
||||
--- lib/transaction.c
|
||||
+++ lib/transaction.c
|
||||
@@ -1496,7 +1496,7 @@ int rpmtsRun(rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet)
|
||||
|
||||
/* Run pre-transaction scripts, but only if there are no known
|
||||
* problems up to this point and not disabled otherwise. */
|
||||
- if (!((rpmtsFlags(ts) & (RPMTRANS_FLAG_BUILD_PROBS|RPMTRANS_FLAG_NOPRE))
|
||||
+ if (!((rpmtsFlags(ts) & (RPMTRANS_FLAG_BUILD_PROBS|RPMTRANS_FLAG_NOPRETRANS))
|
||||
|| (rpmpsNumProblems(tsprobs)))) {
|
||||
rpmlog(RPMLOG_DEBUG, "running pre-transaction scripts\n");
|
||||
runTransScripts(ts, PKG_PRETRANS);
|
||||
@@ -1532,7 +1532,7 @@ int rpmtsRun(rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet)
|
||||
rc = rpmtsProcess(ts) ? -1 : 0;
|
||||
|
||||
/* Run post-transaction scripts unless disabled */
|
||||
- if (!(rpmtsFlags(ts) & (RPMTRANS_FLAG_NOPOST))) {
|
||||
+ if (!(rpmtsFlags(ts) & (RPMTRANS_FLAG_NOPOSTTRANS))) {
|
||||
rpmlog(RPMLOG_DEBUG, "running post-transaction scripts\n");
|
||||
runTransScripts(ts, PKG_POSTTRANS);
|
||||
}
|
||||
--- python/rpmmodule.c
|
||||
+++ python/rpmmodule.c
|
||||
@@ -414,6 +414,8 @@ static int initModule(PyObject *m)
|
||||
REGISTER_ENUM(RPMTRANS_FLAG_NOPREUN);
|
||||
REGISTER_ENUM(RPMTRANS_FLAG_NOPOSTUN);
|
||||
REGISTER_ENUM(RPMTRANS_FLAG_NOTRIGGERPOSTUN);
|
||||
+ REGISTER_ENUM(RPMTRANS_FLAG_NOPRETRANS);
|
||||
+ REGISTER_ENUM(RPMTRANS_FLAG_NOPOSTTRANS);
|
||||
REGISTER_ENUM(RPMTRANS_FLAG_NOMD5);
|
||||
REGISTER_ENUM(RPMTRANS_FLAG_NOFILEDIGEST);
|
||||
REGISTER_ENUM(RPMTRANS_FLAG_NOSUGGEST);
|
@ -1,7 +1,5 @@
|
||||
SUSE specific platform changes.
|
||||
|
||||
--- ./platform.in.orig 2014-09-05 11:49:01.000000000 +0000
|
||||
+++ ./platform.in 2014-09-08 16:43:35.250660580 +0000
|
||||
--- ./platform.in.orig 2014-06-26 06:51:54.822818260 +0000
|
||||
+++ ./platform.in 2014-08-04 12:38:55.389245494 +0000
|
||||
@@ -29,7 +29,7 @@
|
||||
%_exec_prefix @exec_prefix@
|
||||
%_bindir @bindir@
|
||||
@ -20,7 +18,7 @@ SUSE specific platform changes.
|
||||
# Deprecated misspelling, present for backwards compatibility.
|
||||
%_initrddir %{_initddir}
|
||||
%_rundir @RUNDIR@
|
||||
@@ -79,3 +79,21 @@
|
||||
@@ -83,3 +83,21 @@
|
||||
@apple@#
|
||||
@apple@%_use_internal_dependency_generator 0
|
||||
@apple@%__so dylib
|
||||
|
@ -1,26 +0,0 @@
|
||||
--- lib/psm.c.orig 2013-07-12 12:25:38.000000000 +0000
|
||||
+++ lib/psm.c 2013-07-12 12:27:01.000000000 +0000
|
||||
@@ -807,6 +807,7 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkg
|
||||
case PSM_PROCESS:
|
||||
if (psm->goal == PKG_INSTALL) {
|
||||
int fsmrc = 0;
|
||||
+ int saved_errno = 0;
|
||||
|
||||
rpmpsmNotify(psm, RPMCALLBACK_INST_START, 0);
|
||||
/* make sure first progress call gets made */
|
||||
@@ -826,6 +827,7 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkg
|
||||
|
||||
fsmrc = rpmPackageFilesInstall(psm->ts, psm->te, psm->fi,
|
||||
payload, psm, &psm->failedFile);
|
||||
+ saved_errno = errno;
|
||||
|
||||
rpmswAdd(rpmtsOp(psm->ts, RPMTS_OP_UNCOMPRESS),
|
||||
fdOp(payload, FDSTAT_READ));
|
||||
@@ -843,6 +845,7 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkg
|
||||
rpmpsmNotify(psm, RPMCALLBACK_INST_STOP, psm->total);
|
||||
|
||||
if (fsmrc) {
|
||||
+ errno = saved_errno;
|
||||
rpmlog(RPMLOG_ERR,
|
||||
_("unpacking of archive failed%s%s: %s\n"),
|
||||
(psm->failedFile != NULL ? _(" on file ") : ""),
|
@ -17,7 +17,7 @@
|
||||
|
||||
|
||||
Name: python3-rpm
|
||||
Version: 4.11.3
|
||||
Version: 4.12.0
|
||||
Release: 0
|
||||
Summary: Python Bindings for Manipulating RPM Packages
|
||||
License: GPL-2.0+
|
||||
|
@ -1,48 +0,0 @@
|
||||
Index: autodeps/linux.prov
|
||||
===================================================================
|
||||
--- autodeps/linux.prov.orig 2011-06-08 13:31:39.000000000 +0200
|
||||
+++ autodeps/linux.prov 2011-06-08 13:31:39.191646314 +0200
|
||||
@@ -11,7 +11,7 @@ filelist=($(printf "%s\n" "${filelist[@]
|
||||
solist=($(printf "%s\n" "${filelist[@]}" | grep "\\.so" | grep -v "^/lib/ld.so" | \
|
||||
tr '\n' '\0' | xargs -0 -r file -L | grep "ELF.*shared object" | \
|
||||
cut -d: -f1))
|
||||
-pythonlist=
|
||||
+pythonlist=($(printf "%s\n" "${filelist[@]}" | egrep '/usr/bin/python.\..$'))
|
||||
tcllist=
|
||||
monolist=($(printf "%s\n" "${filelist[@]}" | egrep "\\.(exe|dll)\$"))
|
||||
firmwarelist=($(printf "%s\n" "${filelist[@]}" | grep "/lib/firmware/"))
|
||||
@@ -54,8 +54,8 @@ done | sort -u
|
||||
|
||||
#
|
||||
# --- Python modules.
|
||||
-[ -x /usr/lib/rpm/python.prov -a -n "$pythonlist" ] &&
|
||||
- printf "%s\n" "${pythonlist[@]}" | /usr/lib/rpm/python.prov | sort -u
|
||||
+[ -x /usr/lib/rpm/pythondeps.sh -a -n "$pythonlist" ] &&
|
||||
+ printf "%s\n" "${pythonlist[@]}" | /usr/lib/rpm/pythondeps.sh -P | sort -u
|
||||
|
||||
#
|
||||
# --- Tcl modules.
|
||||
Index: autodeps/linux.req
|
||||
===================================================================
|
||||
--- autodeps/linux.req.orig 2011-06-08 13:31:38.000000000 +0200
|
||||
+++ autodeps/linux.req 2011-06-08 13:31:39.191646314 +0200
|
||||
@@ -31,7 +31,7 @@ liblist=($(printf "%s\0" "${filelist[@]}
|
||||
|
||||
interplist=()
|
||||
perllist=()
|
||||
-pythonlist=()
|
||||
+pythonlist=($(printf "%s\n" "${filelist[@]}" | egrep '/usr/lib[^/]*/python.\..'))
|
||||
tcllist=()
|
||||
monolist=($(printf "%s\n" "${filelist[@]}" | egrep "\\.(exe|dll)(\\.config)?\$"))
|
||||
|
||||
@@ -127,8 +127,8 @@ done | sort -u
|
||||
|
||||
#
|
||||
# --- Python modules.
|
||||
-[ -x /usr/lib/rpm/python.req -a -n "$pythonlist" ] && \
|
||||
- printf "%s\n" "${pythonlist[@]}" | /usr/lib/rpm/python.req | sort -u
|
||||
+[ -x /usr/lib/rpm/pythondeps.sh -a -n "$pythonlist" ] && \
|
||||
+ printf "%s\n" "${pythonlist[@]}" | /usr/lib/rpm/pythondeps.sh -R | sort -u
|
||||
|
||||
#
|
||||
# --- Tcl modules.
|
@ -1,32 +1,18 @@
|
||||
Don't complain about a bad md5 sum for repackaged rpms.
|
||||
--- ./lib/psm.c.orig 2014-08-04 12:51:13.219051031 +0000
|
||||
+++ ./lib/psm.c 2014-08-04 12:57:38.294335406 +0000
|
||||
@@ -673,8 +673,15 @@ static rpmRC rpmpsmUnpack(rpmpsm psm)
|
||||
|
||||
--- ./lib/psm.c.orig 2013-07-12 12:05:15.000000000 +0000
|
||||
+++ ./lib/psm.c 2013-07-12 12:07:59.000000000 +0000
|
||||
@@ -813,12 +813,17 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkg
|
||||
rpmpsmNotify(psm, RPMCALLBACK_INST_PROGRESS, 0);
|
||||
|
||||
if (rpmfiFC(fi) > 0 && !(rpmtsFlags(ts) & RPMTRANS_FLAG_JUSTDB)) {
|
||||
+ rpmtransFlags oldtsflags;
|
||||
FD_t payload = rpmtePayload(psm->te);
|
||||
if (payload == NULL) {
|
||||
rc = RPMRC_FAIL;
|
||||
break;
|
||||
if (!(rpmtsFlags(psm->ts) & RPMTRANS_FLAG_JUSTDB)) {
|
||||
if (rpmfilesFC(psm->files) > 0) {
|
||||
+ rpmtransFlags oldtsflags = rpmtsFlags(psm->ts);
|
||||
+ Header h = rpmteHeader(psm->te);
|
||||
+ if (h && headerIsEntry(h, RPMTAG_REMOVETID))
|
||||
+ (void) rpmtsSetFlags(psm->ts, oldtsflags | RPMTRANS_FLAG_NOMD5);
|
||||
fsmrc = rpmPackageFilesInstall(psm->ts, psm->te, psm->files,
|
||||
psm, &failedFile);
|
||||
+ if (h && headerIsEntry(h, RPMTAG_REMOVETID))
|
||||
+ (void) rpmtsSetFlags(psm->ts, oldtsflags);
|
||||
+ headerFree(h);
|
||||
saved_errno = errno;
|
||||
}
|
||||
|
||||
+ oldtsflags = rpmtsFlags(ts);
|
||||
+ if (headerIsEntry(fi->h, RPMTAG_REMOVETID))
|
||||
+ (void) rpmtsSetFlags(ts, oldtsflags | RPMTRANS_FLAG_NOMD5);
|
||||
+
|
||||
fsmrc = rpmPackageFilesInstall(psm->ts, psm->te, psm->fi,
|
||||
payload, psm, &psm->failedFile);
|
||||
|
||||
@@ -827,6 +832,9 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkg
|
||||
rpmswAdd(rpmtsOp(psm->ts, RPMTS_OP_DIGEST),
|
||||
fdOp(payload, FDSTAT_DIGEST));
|
||||
|
||||
+ if (headerIsEntry(fi->h, RPMTAG_REMOVETID))
|
||||
+ (void) rpmtsSetFlags(ts, oldtsflags);
|
||||
+
|
||||
Fclose(payload);
|
||||
}
|
||||
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7da2771a7312f149d326badce97d61ff7ecb0940692acbac29675357ae0e0b03
|
||||
size 3907544
|
3
rpm-4.12.0.tar.bz2
Normal file
3
rpm-4.12.0.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:770d5cd1aa9430affa6ddd336a81dae79704962478f6b336d5b694c3e02113a2
|
||||
size 4125567
|
@ -1,8 +1,6 @@
|
||||
Index: macros.in
|
||||
===================================================================
|
||||
--- macros.in.orig 2011-12-09 13:21:58.078688958 +0100
|
||||
+++ macros.in 2011-12-09 13:21:58.502668839 +0100
|
||||
@@ -920,7 +920,8 @@ posix.setenv("RPMBUILD_SOURCEDIR",rpm.ex
|
||||
--- ./macros.in.orig 2014-08-04 13:03:05.948860909 +0000
|
||||
+++ ./macros.in 2014-08-04 13:03:24.830775270 +0000
|
||||
@@ -885,7 +885,8 @@ posix.setenv("RPMBUILD_SOURCEDIR",rpm.ex
|
||||
--localstatedir=%{_localstatedir} \\\
|
||||
--sharedstatedir=%{_sharedstatedir} \\\
|
||||
--mandir=%{_mandir} \\\
|
||||
@ -11,4 +9,4 @@ Index: macros.in
|
||||
+ --disable-dependency-tracking
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# The make install analogue of %configure for modern autotools:
|
||||
# The "make" analogue, hiding the _smp_mflags magic from specs
|
||||
|
@ -1,14 +0,0 @@
|
||||
Index: ./autodeps/linux.prov
|
||||
===================================================================
|
||||
--- ./autodeps/linux.prov
|
||||
+++ ./autodeps/linux.prov
|
||||
@@ -102,4 +102,9 @@ fi
|
||||
[ -x /usr/lib/rpm/find-provides.ksyms ] &&
|
||||
printf "%s\n" "${filelist[@]}" | /usr/lib/rpm/find-provides.ksyms "$@"
|
||||
|
||||
+#
|
||||
+# --- GStreamer provides, codecs
|
||||
+[ -x /usr/lib/rpm/gstreamer-provides ] &&
|
||||
+ printf "%s\n" "${filelist[@]}" | /usr/lib/rpm/gstreamer-provides | sort -u
|
||||
+
|
||||
exit 0
|
@ -17,7 +17,7 @@
|
||||
|
||||
|
||||
Name: rpm-python
|
||||
Version: 4.11.3
|
||||
Version: 4.12.0
|
||||
Release: 0
|
||||
#!BuildIgnore: rpmlint-Factory
|
||||
Summary: Python Bindings for Manipulating RPM Packages
|
||||
|
12
rpm.changes
12
rpm.changes
@ -1,3 +1,15 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 16 13:55:09 CEST 2014 - mls@suse.de
|
||||
|
||||
- update to rpm-4.12.0
|
||||
* weakdeps support is now upstream
|
||||
* new optional payload format to support files > 4GB
|
||||
* lots of cleanups all over the codebase
|
||||
- dropped patches:
|
||||
autodeps.diff, psm-errno.diff, exportoldtags.diff, pythondeps.diff,
|
||||
newweakdeps.diff, findsupplements.diff, rpm-gst-provides.patch,
|
||||
noposttrans.diff, fontprovides.diff
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 8 18:51:28 CEST 2014 - mls@suse.de
|
||||
|
||||
|
24
rpm.spec
24
rpm.spec
@ -47,7 +47,7 @@ PreReq: %fillup_prereq
|
||||
Summary: The RPM Package Manager
|
||||
License: GPL-2.0+
|
||||
Group: System/Packages
|
||||
Version: 4.11.3
|
||||
Version: 4.12.0
|
||||
Release: 0
|
||||
Source: http://rpm.org/releases/rpm-4.11.x/rpm-%{version}.tar.bz2
|
||||
Source1: RPM-HOWTO.tar.bz2
|
||||
@ -62,7 +62,6 @@ Source12: baselibs.conf
|
||||
Patch1: beecrypt-4.1.2.diff
|
||||
Patch2: db.diff
|
||||
# quilt patches start here
|
||||
Patch10: newweakdeps.diff
|
||||
Patch11: debugedit.diff
|
||||
Patch13: ignore-auxv.diff
|
||||
Patch12: localetag.diff
|
||||
@ -74,7 +73,6 @@ Patch18: refreshtestarch.diff
|
||||
Patch19: rpmrctests.diff
|
||||
Patch20: waitlock.diff
|
||||
Patch21: suspendlock.diff
|
||||
Patch23: autodeps.diff
|
||||
Patch24: brp.diff
|
||||
Patch25: brpcompress.diff
|
||||
Patch26: checkfilesnoinfodir.diff
|
||||
@ -112,9 +110,6 @@ Patch58: lazystatfs.diff
|
||||
Patch59: repackage-nomd5.diff
|
||||
Patch60: safeugid.diff
|
||||
Patch61: noprereqdeprec.diff
|
||||
Patch62: pythondeps.diff
|
||||
Patch63: fontprovides.diff
|
||||
Patch64: rpm-gst-provides.patch
|
||||
Patch65: initscriptsprov.diff
|
||||
Patch66: remove-translations.diff
|
||||
Patch67: headeradddb.diff
|
||||
@ -122,7 +117,6 @@ Patch68: dbprivate.diff
|
||||
Patch69: nobuildcolor.diff
|
||||
Patch70: fileattrs.diff
|
||||
Patch71: nomagiccheck.diff
|
||||
Patch72: findsupplements.diff
|
||||
Patch73: assumeexec.diff
|
||||
Patch74: mono-find-requires.diff
|
||||
Patch75: rpm-deptracking.patch
|
||||
@ -130,13 +124,10 @@ Patch76: python3-abi-kind.diff
|
||||
Patch77: langnoc.diff
|
||||
Patch78: headerchk2.diff
|
||||
Patch79: helperenv.diff
|
||||
Patch80: psm-errno.diff
|
||||
Patch82: noposttrans.diff
|
||||
Patch85: brp-compress-no-img.patch
|
||||
Patch92: find-lang-python.patch
|
||||
Patch93: weakdepscompat.diff
|
||||
Patch94: checksepwarn.diff
|
||||
Patch95: exportoldtags.diff
|
||||
Patch6464: auto-config-update-aarch64-ppc64le.diff
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
#
|
||||
@ -216,15 +207,15 @@ ln -s beecrypt-4.1.2 beecrypt
|
||||
chmod -R u+w db/*
|
||||
rm -f rpmdb/db.h
|
||||
%patch -P 1 -P 2
|
||||
%patch -P 10 -P 11 -P 12 -P 13 -P 14 -P 15 -P 16 -P 17 -P 18 -P 19
|
||||
%patch -P 20 -P 21 -P 23 -P 24 -P 25 -P 26 -P 27 -P 28 -P 29
|
||||
%patch -P 11 -P 12 -P 13 -P 14 -P 15 -P 16 -P 17 -P 18 -P 19
|
||||
%patch -P 20 -P 21 -P 24 -P 25 -P 26 -P 27 -P 28 -P 29
|
||||
%patch -P 30 -P 31 -P 32 -P 33 -P 34 -P 35 -P 36 -P 37 -P 38 -P 39
|
||||
%patch -P 41 -P 42 -P 43 -P 44 -P 45 -P 46 -P 47 -P 48 -P 49
|
||||
%patch -P 50 -P 51 -P 52 -P 53 -P 54 -P 55 -P 56 -P 57 -P 58 -P 59
|
||||
%patch -P 60 -P 61 -P 62 -P 63 -P 64 -P 65 -P 66 -P 67 -P 68 -P 69
|
||||
%patch -P 70 -P 71 -P 72 -P 73 -P 74 -P 75 -P 76 -P 77 -P 78 -P 79
|
||||
%patch -P 80 -P 82 -P 85
|
||||
%patch -P 92 -P 93 -P 94 -P 95
|
||||
%patch -P 60 -P 61 -P 65 -P 66 -P 67 -P 68 -P 69
|
||||
%patch -P 70 -P 71 -P 73 -P 74 -P 75 -P 76 -P 77 -P 78 -P 79
|
||||
%patch -P 85
|
||||
%patch -P 92 -P 93 -P 94
|
||||
|
||||
%ifarch aarch64 ppc64le
|
||||
%patch6464
|
||||
@ -271,6 +262,7 @@ sed -i -e 's,{PYTHON_VERSION}mu,{PYTHON_VERSION}mu python${PYTHON_VERSION}m,' co
|
||||
--libdir=%{_libdir} --sysconfdir=/etc --localstatedir=/var --with-lua \
|
||||
--with-vendor=suse \
|
||||
--with-rundir=/run \
|
||||
--without-archive \
|
||||
--with-selinux --with-internal-beecrypt \
|
||||
--with-acl --with-cap --enable-shared %{?with_python: --enable-python} $BUILDTARGET
|
||||
|
||||
|
63
rpmrc.diff
63
rpmrc.diff
@ -1,5 +1,5 @@
|
||||
--- ./rpmrc.in.orig 2014-09-05 11:47:15.000000000 +0000
|
||||
+++ ./rpmrc.in 2014-09-08 16:44:47.547337670 +0000
|
||||
--- ./rpmrc.in.orig 2014-06-27 07:25:43.624470700 +0000
|
||||
+++ ./rpmrc.in 2014-08-04 12:44:21.192842515 +0000
|
||||
@@ -12,16 +12,16 @@
|
||||
# "fat" binary with both archs, for Darwin
|
||||
optflags: fat -O2 -g -arch i386 -arch ppc
|
||||
@ -30,15 +30,15 @@
|
||||
|
||||
optflags: m68k -O2 -g -fomit-frame-pointer
|
||||
|
||||
-optflags: ppc -O2 -g -fsigned-char
|
||||
-optflags: ppc8260 -O2 -g -fsigned-char
|
||||
-optflags: ppc8560 -O2 -g -fsigned-char
|
||||
-optflags: ppc32dy4 -O2 -g -fsigned-char
|
||||
-optflags: ppciseries -O2 -g -fsigned-char
|
||||
-optflags: ppcpseries -O2 -g -fsigned-char
|
||||
-optflags: ppc64 -O2 -g -fsigned-char
|
||||
-optflags: ppc64le -O2 -g -fsigned-char
|
||||
-optflags: ppc64p7 -O3 -mtune=power7 -mcpu=power7 -g -fsigned-char
|
||||
-optflags: ppc -O2 -g
|
||||
-optflags: ppc8260 -O2 -g
|
||||
-optflags: ppc8560 -O2 -g
|
||||
-optflags: ppc32dy4 -O2 -g
|
||||
-optflags: ppciseries -O2 -g
|
||||
-optflags: ppcpseries -O2 -g
|
||||
-optflags: ppc64 -O2 -g
|
||||
-optflags: ppc64le -O2 -g
|
||||
-optflags: ppc64p7 -O3 -mtune=power7 -mcpu=power7 -g
|
||||
+optflags: ppc -O2 -g -m32 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables
|
||||
+optflags: ppc8260 -O2 -g -m32
|
||||
+optflags: ppc8560 -O2 -g -m32
|
||||
@ -54,17 +54,20 @@
|
||||
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
|
||||
@@ -67,7 +68,9 @@ optflags: armv4tl -O2 -g -march=armv4t
|
||||
@@ -67,10 +68,10 @@ optflags: armv4tl -O2 -g -march=armv4t
|
||||
optflags: armv5tel -O2 -g -march=armv5te
|
||||
optflags: armv5tejl -O2 -g -march=armv5te
|
||||
optflags: armv6l -O2 -g -march=armv6
|
||||
-optflags: armv6hl -O2 -g -march=armv6 -mfloat-abi=hard -mfpu=vfp
|
||||
+optflags: armv6hl -O2 -g -march=armv6 -mfloat-abi=hard -mabi=aapcs-linux
|
||||
|
||||
optflags: armv7l -O2 -g -march=armv7
|
||||
-optflags: armv7hl -O2 -g -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16
|
||||
+optflags: armv7hl -O2 -g -march=armv7-a -mfloat-abi=hard -mthumb -mabi=aapcs-linux
|
||||
optflags: armv7hnl -O2 -g -march=armv7-a -mfloat-abi=hard -mfpu=neon
|
||||
|
||||
optflags: m68k -O2 -g -fomit-frame-pointer
|
||||
|
||||
@@ -79,8 +82,8 @@ optflags: atariclone -O2 -g -fomit-frame
|
||||
@@ -83,8 +84,8 @@ optflags: atariclone -O2 -g -fomit-frame
|
||||
optflags: milan -O2 -g -fomit-frame-pointer
|
||||
optflags: hades -O2 -g -fomit-frame-pointer
|
||||
|
||||
@ -75,17 +78,7 @@
|
||||
|
||||
optflags: sh3 -O2 -g
|
||||
optflags: sh4 -O2 -g -mieee
|
||||
@@ -184,7 +187,9 @@ arch_canon: armv4l: armv4l 12
|
||||
arch_canon: armv5tel: armv5tel 12
|
||||
arch_canon: armv5tejl: armv5tejl 12
|
||||
arch_canon: armv6l: armv6l 12
|
||||
+arch_canon: armv6hl: armv6hl 12
|
||||
arch_canon: armv7l: armv7l 12
|
||||
+arch_canon: armv7hl: armv7hl 12
|
||||
|
||||
arch_canon: m68kmint: m68kmint 13
|
||||
arch_canon: atarist: m68kmint 13
|
||||
@@ -248,17 +253,17 @@ os_canon: MacOSX: macosx 21
|
||||
@@ -255,17 +256,17 @@ os_canon: MacOSX: macosx 21
|
||||
#############################################################
|
||||
# For a given uname().machine, the default build arch
|
||||
|
||||
@ -111,17 +104,7 @@
|
||||
buildarchtranslate: i486: i386
|
||||
buildarchtranslate: i386: i386
|
||||
|
||||
@@ -297,7 +302,9 @@ buildarchtranslate: armv4tl: armv4tl
|
||||
buildarchtranslate: armv5tel: armv5tel
|
||||
buildarchtranslate: armv5tejl: armv5tejl
|
||||
buildarchtranslate: armv6l: armv6l
|
||||
+buildarchtranslate: armv6hl: armv6hl
|
||||
buildarchtranslate: armv7l: armv7l
|
||||
+buildarchtranslate: armv7hl: armv7hl
|
||||
|
||||
buildarchtranslate: m68k: m68k
|
||||
|
||||
@@ -324,6 +331,15 @@ buildarchtranslate: sh4a: sh4
|
||||
@@ -334,6 +335,15 @@ buildarchtranslate: sh4a: sh4
|
||||
|
||||
buildarchtranslate: aarch64: aarch64
|
||||
|
||||
@ -137,7 +120,7 @@
|
||||
#############################################################
|
||||
# Architecture compatibility
|
||||
|
||||
@@ -381,14 +397,20 @@ arch_compat: mipsel: noarch
|
||||
@@ -391,14 +401,20 @@ arch_compat: mipsel: noarch
|
||||
arch_compat: hppa2.0: hppa1.2
|
||||
arch_compat: hppa1.2: hppa1.1
|
||||
arch_compat: hppa1.1: hppa1.0
|
||||
@ -160,7 +143,7 @@
|
||||
arch_compat: armv4tl: armv4l
|
||||
arch_compat: armv4l: armv3l
|
||||
arch_compat: armv3l: noarch
|
||||
@@ -407,7 +429,7 @@ arch_compat: i370: noarch
|
||||
@@ -420,7 +436,7 @@ arch_compat: i370: noarch
|
||||
arch_compat: s390: noarch
|
||||
arch_compat: s390x: s390 noarch
|
||||
|
||||
@ -169,7 +152,7 @@
|
||||
|
||||
arch_compat: x86_64: amd64 em64t athlon noarch
|
||||
arch_compat: amd64: x86_64 em64t athlon noarch
|
||||
@@ -492,12 +514,15 @@ buildarch_compat: ppc64le: noarch fat
|
||||
@@ -505,12 +521,15 @@ buildarch_compat: ppc64le: noarch fat
|
||||
buildarch_compat: ppc64pseries: ppc64
|
||||
buildarch_compat: ppc64iseries: ppc64
|
||||
buildarch_compat: ppc64p7: ppc64
|
||||
@ -185,7 +168,7 @@
|
||||
buildarch_compat: armv6l: armv5tejl
|
||||
buildarch_compat: armv5tejl: armv5tel
|
||||
buildarch_compat: armv5tel: armv4tl
|
||||
@@ -508,7 +533,8 @@ buildarch_compat: armv3l: noarch
|
||||
@@ -525,7 +544,8 @@ buildarch_compat: armv6hl: noarch
|
||||
buildarch_compat: hppa2.0: hppa1.2
|
||||
buildarch_compat: hppa1.2: hppa1.1
|
||||
buildarch_compat: hppa1.1: hppa1.0
|
||||
|
@ -2,18 +2,18 @@ Suspend exclusive database lock when scriptlets get called, allowing
|
||||
read access in scriptlets. Only needed for DB_PRIVATE (aka global)
|
||||
locking.
|
||||
|
||||
--- ./lib/backend/db3.c.orig 2012-06-01 10:50:11.000000000 +0000
|
||||
+++ ./lib/backend/db3.c 2012-06-01 10:50:19.000000000 +0000
|
||||
@@ -628,3 +628,59 @@ int dbiOpen(rpmdb rdb, rpmDbiTagVal rpmt
|
||||
|
||||
--- ./lib/backend/db3.c.orig 2014-08-04 12:25:29.288759808 +0000
|
||||
+++ ./lib/backend/db3.c 2014-08-04 12:30:30.829430726 +0000
|
||||
@@ -625,6 +625,63 @@ static int dbiFlock(dbiIndex dbi, int mo
|
||||
return rc;
|
||||
}
|
||||
+
|
||||
|
||||
+int dbiSuspendDBLock(dbiIndex dbi, unsigned int flags)
|
||||
+{
|
||||
+ struct flock l;
|
||||
+ int rc = 0;
|
||||
+ int fdno = -1;
|
||||
+ DB * db = dbi->dbi_db;
|
||||
+
|
||||
+ if (!dbi->dbi_lockdbfd)
|
||||
+ return 0;
|
||||
@ -21,7 +21,7 @@ locking.
|
||||
+ return 0;
|
||||
+ if (_lockdbfd == 0)
|
||||
+ return 0;
|
||||
+ if (!(dbi->dbi_db->fd(dbi->dbi_db, &fdno) == 0 && fdno >= 0))
|
||||
+ if (!(db->fd(db, &fdno) == 0 && fdno >= 0))
|
||||
+ return 1;
|
||||
+ memset(&l, 0, sizeof(l));
|
||||
+ l.l_whence = 0;
|
||||
@ -40,6 +40,7 @@ locking.
|
||||
+ int rc = 0;
|
||||
+ int tries;
|
||||
+ int fdno = -1;
|
||||
+ DB * db = dbi->dbi_db;
|
||||
+
|
||||
+ if (!dbi->dbi_lockdbfd)
|
||||
+ return 0;
|
||||
@ -47,7 +48,7 @@ locking.
|
||||
+ return 0;
|
||||
+ if (_lockdbfd == 0)
|
||||
+ return 0;
|
||||
+ if (!(dbi->dbi_db->fd(dbi->dbi_db, &fdno) == 0 && fdno >= 0))
|
||||
+ if (!(db->fd(db, &fdno) == 0 && fdno >= 0))
|
||||
+ return 1;
|
||||
+ for (tries = 0; tries < 2; tries++) {
|
||||
+ memset(&l, 0, sizeof(l));
|
||||
@ -64,9 +65,12 @@ locking.
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
--- ./lib/backend/dbi.h.orig 2012-03-20 08:07:25.000000000 +0000
|
||||
+++ ./lib/backend/dbi.h 2012-06-01 10:53:43.000000000 +0000
|
||||
@@ -90,6 +90,24 @@ struct dbiIndex_s {
|
||||
int dbiOpen(rpmdb rdb, rpmDbiTagVal rpmtag, dbiIndex * dbip, int flags)
|
||||
{
|
||||
const char *dbhome = rpmdbHome(rdb);
|
||||
--- ./lib/backend/dbi.h.orig 2014-06-26 06:51:54.101820242 +0000
|
||||
+++ ./lib/backend/dbi.h 2014-08-04 12:25:29.288759808 +0000
|
||||
@@ -92,6 +92,24 @@ struct dbiIndex_s {
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
@ -91,39 +95,39 @@ locking.
|
||||
|
||||
RPM_GNUC_INTERNAL
|
||||
/* Globally enable/disable fsync in the backend */
|
||||
--- ./lib/psm.c.orig 2012-06-01 10:50:11.000000000 +0000
|
||||
+++ ./lib/psm.c 2012-06-01 10:51:34.000000000 +0000
|
||||
@@ -419,10 +419,12 @@ static rpmRC runScript(rpmpsm psm, ARGV_
|
||||
--- ./lib/psm.c.orig 2014-08-04 12:25:29.289759769 +0000
|
||||
+++ ./lib/psm.c 2014-08-04 12:27:04.230340235 +0000
|
||||
@@ -291,10 +291,12 @@ static rpmRC runScript(rpmts ts, rpmte t
|
||||
if (sfd == NULL)
|
||||
sfd = rpmtsScriptFd(psm->ts);
|
||||
sfd = rpmtsScriptFd(ts);
|
||||
|
||||
+ rpmtsSuspendResumeDBLock(psm->ts, 0);
|
||||
rpmswEnter(rpmtsOp(psm->ts, RPMTS_OP_SCRIPTLETS), 0);
|
||||
+ rpmtsSuspendResumeDBLock(ts, 0);
|
||||
rpmswEnter(rpmtsOp(ts, RPMTS_OP_SCRIPTLETS), 0);
|
||||
rc = rpmScriptRun(script, arg1, arg2, sfd,
|
||||
prefixes, warn_only, selinux);
|
||||
rpmswExit(rpmtsOp(psm->ts, RPMTS_OP_SCRIPTLETS), 0);
|
||||
+ rpmtsSuspendResumeDBLock(psm->ts, 1);
|
||||
prefixes, warn_only, rpmtsPlugins(ts));
|
||||
rpmswExit(rpmtsOp(ts, RPMTS_OP_SCRIPTLETS), 0);
|
||||
+ rpmtsSuspendResumeDBLock(ts, 1);
|
||||
|
||||
/* Map warn-only errors to "notfound" for script stop callback */
|
||||
stoprc = (rc != RPMRC_OK && warn_only) ? RPMRC_NOTFOUND : rc;
|
||||
--- ./lib/rpmdb.c.orig 2012-06-01 10:50:11.000000000 +0000
|
||||
+++ ./lib/rpmdb.c 2012-06-01 10:50:19.000000000 +0000
|
||||
@@ -769,6 +769,12 @@ int rpmdbSync(rpmdb db)
|
||||
return dbiForeach(db->_dbi, dbiSync, 0);
|
||||
--- ./lib/rpmdb.c.orig 2014-08-04 12:25:15.106821818 +0000
|
||||
+++ ./lib/rpmdb.c 2014-08-04 12:25:29.289759769 +0000
|
||||
@@ -475,6 +475,12 @@ exit:
|
||||
return rc;
|
||||
}
|
||||
|
||||
+int rpmdbSuspendResumeDBLock(rpmdb db, int mode)
|
||||
+{
|
||||
+ if (db == NULL) return 0;
|
||||
+ return dbiForeach(db->_dbi, mode ? dbiResumeDBLock : dbiSuspendDBLock, 0);
|
||||
+ return dbiForeach(db->db_indexes, db->db_ndbi, mode ? dbiResumeDBLock : dbiSuspendDBLock, 0);
|
||||
+}
|
||||
+
|
||||
static rpmdb newRpmdb(const char * root, const char * home,
|
||||
int mode, int perms, int flags)
|
||||
{
|
||||
--- ./lib/rpmts.c.orig 2012-03-20 08:07:25.000000000 +0000
|
||||
+++ ./lib/rpmts.c 2012-06-01 10:50:19.000000000 +0000
|
||||
@@ -95,6 +95,11 @@ int rpmtsOpenDB(rpmts ts, int dbmode)
|
||||
--- ./lib/rpmts.c.orig 2014-06-26 06:51:54.653818721 +0000
|
||||
+++ ./lib/rpmts.c 2014-08-04 12:25:29.289759769 +0000
|
||||
@@ -101,6 +101,11 @@ int rpmtsOpenDB(rpmts ts, int dbmode)
|
||||
return rc;
|
||||
}
|
||||
|
||||
@ -134,10 +138,10 @@ locking.
|
||||
+
|
||||
int rpmtsInitDB(rpmts ts, int dbmode)
|
||||
{
|
||||
rpmlock lock = rpmtsAcquireLock(ts);
|
||||
--- ./lib/rpmts.h.orig 2012-03-20 08:07:25.000000000 +0000
|
||||
+++ ./lib/rpmts.h 2012-06-01 10:50:19.000000000 +0000
|
||||
@@ -423,6 +423,8 @@ rpmdb rpmtsGetRdb(rpmts ts);
|
||||
rpmtxn txn = rpmtxnBegin(ts, RPMTXN_WRITE);
|
||||
--- ./lib/rpmts.h.orig 2014-06-26 06:51:54.655818716 +0000
|
||||
+++ ./lib/rpmts.h 2014-08-04 12:25:29.290759730 +0000
|
||||
@@ -441,6 +441,8 @@ rpmdb rpmtsGetRdb(rpmts ts);
|
||||
void * rpmtsNotify(rpmts ts, rpmte te,
|
||||
rpmCallbackType what, rpm_loff_t amount, rpm_loff_t total);
|
||||
|
||||
|
@ -1,8 +1,9 @@
|
||||
This used to be the taggedfileindex patch, but it's gone.
|
||||
The remaining part just strips off the tag.
|
||||
--- ./lib/rpmdb.c.orig 2011-05-11 14:27:32.000000000 +0000
|
||||
+++ ./lib/rpmdb.c 2011-05-11 15:14:39.000000000 +0000
|
||||
@@ -257,6 +257,9 @@ static int dbt2set(dbiIndex dbi, DBT * d
|
||||
|
||||
--- ./lib/backend/db3.c.orig 2014-08-04 12:45:25.907562115 +0000
|
||||
+++ ./lib/backend/db3.c 2014-08-04 12:46:22.225318788 +0000
|
||||
@@ -833,6 +833,9 @@ static int dbt2set(dbiIndex dbi, DBT * d
|
||||
_DBSWAP(hdrNum);
|
||||
_DBSWAP(tagNum);
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
--- ./build/parsePreamble.c.orig 2014-02-25 14:14:15.892041649 +0000
|
||||
+++ ./build/parsePreamble.c 2014-02-25 14:14:26.237041631 +0000
|
||||
--- ./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 },
|
||||
@ -8,120 +8,3 @@
|
||||
{ NULL, 0 }
|
||||
};
|
||||
|
||||
--- ./build/rpmfc.c.orig 2014-02-25 14:14:15.904041649 +0000
|
||||
+++ ./build/rpmfc.c 2014-02-25 14:14:26.238041631 +0000
|
||||
@@ -1156,6 +1156,12 @@ static struct DepMsg_s depMsgs[] = {
|
||||
{ "Obsoletes", { "%{?__find_obsoletes}", NULL, NULL, NULL },
|
||||
RPMTAG_OBSOLETENAME, RPMTAG_OBSOLETEVERSION, RPMTAG_OBSOLETEFLAGS,
|
||||
0, -1 },
|
||||
+ { "Enhances", { "%{?__find_enhances}", NULL, NULL, NULL },
|
||||
+ RPMTAG_ENHANCENAME, RPMTAG_ENHANCEVERSION, RPMTAG_ENHANCEFLAGS,
|
||||
+ 0, -1 },
|
||||
+ { "Supplements", { "%{?__find_supplements}", NULL, NULL, NULL },
|
||||
+ RPMTAG_SUPPLEMENTNAME, RPMTAG_SUPPLEMENTVERSION, RPMTAG_SUPPLEMENTFLAGS,
|
||||
+ 0, -1 },
|
||||
{ NULL, { NULL, NULL, NULL, NULL }, 0, 0, 0, 0, 0 }
|
||||
};
|
||||
|
||||
@@ -1231,6 +1237,16 @@ static rpmRC rpmfcGenerateDependsHelper(
|
||||
if (!pkg->autoReq)
|
||||
continue;
|
||||
tagflags = RPMSENSE_FIND_REQUIRES;
|
||||
+ break;
|
||||
+ case RPMTAG_ENHANCENAME:
|
||||
+ if (!pkg->autoReq)
|
||||
+ continue;
|
||||
+ tagflags = RPMSENSE_FIND_REQUIRES;
|
||||
+ break;
|
||||
+ case RPMTAG_SUPPLEMENTNAME:
|
||||
+ if (!pkg->autoReq)
|
||||
+ continue;
|
||||
+ tagflags = RPMSENSE_FIND_REQUIRES;
|
||||
break;
|
||||
default:
|
||||
continue;
|
||||
--- ./lib/rpmds.c.orig 2014-02-25 14:14:15.834041649 +0000
|
||||
+++ ./lib/rpmds.c 2014-02-25 14:14:47.963041593 +0000
|
||||
@@ -86,6 +86,14 @@ static int dsType(rpmTagVal tag,
|
||||
t = "Trigger";
|
||||
evr = RPMTAG_TRIGGERVERSION;
|
||||
f = RPMTAG_TRIGGERFLAGS;
|
||||
+ } else if (tag == RPMTAG_OLDSUGGESTSNAME) {
|
||||
+ t = "Oldsuggests";
|
||||
+ evr = RPMTAG_OLDSUGGESTSVERSION;
|
||||
+ f = RPMTAG_OLDSUGGESTSFLAGS;
|
||||
+ } else if (tag == RPMTAG_OLDENHANCESNAME) {
|
||||
+ t = "Oldenhances";
|
||||
+ evr = RPMTAG_OLDENHANCESVERSION;
|
||||
+ f = RPMTAG_OLDENHANCESFLAGS;
|
||||
} else {
|
||||
rc = 1;
|
||||
}
|
||||
--- ./lib/tagexts.c.orig 2014-02-25 14:14:15.839041649 +0000
|
||||
+++ ./lib/tagexts.c 2014-02-25 14:18:53.707041158 +0000
|
||||
@@ -906,6 +906,34 @@ static int depnevrsTag(Header h, rpmtd t
|
||||
return (ndeps > 0);
|
||||
}
|
||||
|
||||
+#define RPMSENSE_STRONG (1 << 27)
|
||||
+
|
||||
+static int depnevrsTagFiltered(Header h, rpmtd td, headerGetFlags hgflags,
|
||||
+ rpmTagVal tag, int strong)
|
||||
+{
|
||||
+ rpmds ds = rpmdsNew(h, tag, 0);
|
||||
+ int ndeps = rpmdsCount(ds);
|
||||
+
|
||||
+ if (ndeps > 0) {
|
||||
+ char **deps = xmalloc(sizeof(*deps) * ndeps);
|
||||
+ ndeps = 0;
|
||||
+ while (rpmdsNext(ds) >= 0) {
|
||||
+ if ((rpmdsFlags(ds) & RPMSENSE_STRONG) == (strong ? RPMSENSE_STRONG : 0))
|
||||
+ deps[ndeps++] = rpmdsNewDNEVR(NULL, ds);
|
||||
+ }
|
||||
+ if (ndeps) {
|
||||
+ td->data = deps;
|
||||
+ td->type = RPM_STRING_ARRAY_TYPE;
|
||||
+ td->count = ndeps;
|
||||
+ td->flags |= (RPMTD_ALLOCED | RPMTD_PTR_ALLOCED);
|
||||
+ } else {
|
||||
+ _free(deps);
|
||||
+ }
|
||||
+ }
|
||||
+ rpmdsFree(ds);
|
||||
+ return (ndeps > 0);
|
||||
+}
|
||||
+
|
||||
static int requirenevrsTag(Header h, rpmtd td, headerGetFlags hgflags)
|
||||
{
|
||||
return depnevrsTag(h, td, hgflags, RPMTAG_REQUIRENAME);
|
||||
@@ -913,22 +941,26 @@ static int requirenevrsTag(Header h, rpm
|
||||
|
||||
static int recommendnevrsTag(Header h, rpmtd td, headerGetFlags hgflags)
|
||||
{
|
||||
- return depnevrsTag(h, td, hgflags, RPMTAG_RECOMMENDNAME);
|
||||
+ return depnevrsTag(h, td, hgflags, RPMTAG_RECOMMENDNAME) ||
|
||||
+ depnevrsTagFiltered(h, td, hgflags, RPMTAG_OLDSUGGESTSNAME, 1);
|
||||
}
|
||||
|
||||
static int suggestnevrsTag(Header h, rpmtd td, headerGetFlags hgflags)
|
||||
{
|
||||
- return depnevrsTag(h, td, hgflags, RPMTAG_SUGGESTNAME);
|
||||
+ return depnevrsTag(h, td, hgflags, RPMTAG_SUGGESTNAME) ||
|
||||
+ depnevrsTagFiltered(h, td, hgflags, RPMTAG_OLDSUGGESTSNAME, 0);
|
||||
}
|
||||
|
||||
static int supplementnevrsTag(Header h, rpmtd td, headerGetFlags hgflags)
|
||||
{
|
||||
- return depnevrsTag(h, td, hgflags, RPMTAG_SUPPLEMENTNAME);
|
||||
+ return depnevrsTag(h, td, hgflags, RPMTAG_SUPPLEMENTNAME) ||
|
||||
+ depnevrsTagFiltered(h, td, hgflags, RPMTAG_OLDENHANCESNAME, 1);
|
||||
}
|
||||
|
||||
static int enhancenevrsTag(Header h, rpmtd td, headerGetFlags hgflags)
|
||||
{
|
||||
- return depnevrsTag(h, td, hgflags, RPMTAG_ENHANCENAME);
|
||||
+ return depnevrsTag(h, td, hgflags, RPMTAG_ENHANCENAME) ||
|
||||
+ depnevrsTagFiltered(h, td, hgflags, RPMTAG_OLDENHANCESNAME, 0);
|
||||
}
|
||||
|
||||
static int providenevrsTag(Header h, rpmtd td, headerGetFlags hgflags)
|
||||
|
Loading…
Reference in New Issue
Block a user