Accepting request 250106 from Base:System

update to rpm-4.12.0.1

OBS-URL: https://build.opensuse.org/request/show/250106
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/rpm?expand=0&rev=229
This commit is contained in:
Stephan Kulow 2014-09-28 17:53:32 +00:00 committed by Git OBS Bridge
commit 23de9021bc
33 changed files with 234 additions and 1550 deletions

View File

@ -1,26 +1,26 @@
--- tools/elfdeps.c.orig 2013-01-30 15:33:12.000000000 +0000 --- ./tools/elfdeps.c.orig 2014-06-26 06:51:55.768815677 +0000
+++ tools/elfdeps.c 2013-07-12 12:21:47.000000000 +0000 +++ ./tools/elfdeps.c 2014-08-04 13:02:16.981081591 +0000
@@ -15,6 +15,7 @@ @@ -17,6 +17,7 @@ int soname_only = 0;
int filter_private = 0;
int soname_only = 0;
int fake_soname = 1; int fake_soname = 1;
int filter_soname = 1;
int require_interp = 0;
+int assume_exec = 0; +int assume_exec = 0;
typedef struct elfInfo_s { typedef struct elfInfo_s {
Elf *elf; 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) { if (ehdr->e_type == ET_DYN || ehdr->e_type == ET_EXEC) {
ei->marker = mkmarker(ehdr); ei->marker = mkmarker(ehdr);
ei->isDSO = (ehdr->e_type == ET_DYN); ei->isDSO = (ehdr->e_type == ET_DYN);
- ei->isExec = (st.st_mode & (S_IXUSR|S_IXGRP|S_IXOTH)); - ei->isExec = (st.st_mode & (S_IXUSR|S_IXGRP|S_IXOTH));
+ ei->isExec = assume_exec || (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); processSections(ei);
} @@ -364,6 +365,7 @@ int main(int argc, char *argv[])
@@ -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 },
{ "no-fake-soname", 0, POPT_ARG_VAL, &fake_soname, 0, NULL, NULL }, { "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 }, + { "assume-exec", 0, POPT_ARG_VAL, &assume_exec, -1, NULL, NULL },
POPT_AUTOHELP POPT_AUTOHELP
POPT_TABLEEND POPT_TABLEEND

View File

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

View File

@ -1,6 +1,6 @@
--- ./scripts/Makefile.am.orig 2014-09-05 11:48:54.000000000 +0000 --- ./scripts/Makefile.am.orig 2014-06-26 06:51:55.444816562 +0000
+++ ./scripts/Makefile.am 2014-09-08 16:42:03.387071432 +0000 +++ ./scripts/Makefile.am 2014-08-04 12:33:14.213715432 +0000
@@ -26,6 +26,7 @@ rpmconfig_SCRIPTS = \ @@ -27,6 +27,7 @@ rpmconfig_SCRIPTS = \
appdata.prov \ appdata.prov \
brp-compress brp-python-bytecompile brp-java-gcjcompile \ brp-compress brp-python-bytecompile brp-java-gcjcompile \
brp-strip brp-strip-comment-note brp-python-hardlink \ brp-strip brp-strip-comment-note brp-python-hardlink \
@ -8,8 +8,8 @@
brp-strip-shared brp-strip-static-archive \ brp-strip-shared brp-strip-static-archive \
check-files check-prereqs \ check-files check-prereqs \
check-buildroot check-rpaths check-rpaths-worker \ 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.orig 2014-06-26 06:51:55.455816533 +0000
+++ ./scripts/brp-strip-comment-note 2014-09-08 16:42:03.387071432 +0000 +++ ./scripts/brp-strip-comment-note 2014-08-04 12:33:14.214715437 +0000
@@ -16,6 +16,8 @@ esac @@ -16,6 +16,8 @@ esac
# for already stripped elf files in the build root # 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 {} \; | \ 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 sed -n -e 's/^\(.*\):[ ]*ELF.*, stripped/\1/p'`; do
note="-R .note" note="-R .note"
if $OBJDUMP -h $f | grep '^[ ]*[0-9]*[ ]*.note[ ]' -A 1 | \ 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.orig 2014-06-26 06:51:55.455816533 +0000
+++ ./scripts/brp-strip 2014-09-08 16:42:03.388071423 +0000 +++ ./scripts/brp-strip 2014-08-04 12:33:14.214715437 +0000
@@ -15,6 +15,7 @@ esac @@ -15,6 +15,7 @@ esac
for f in `find "$RPM_BUILD_ROOT" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) -exec file {} \; | \ for f in `find "$RPM_BUILD_ROOT" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) -exec file {} \; | \
grep -v "^${RPM_BUILD_ROOT}/\?usr/lib/debug" | \ grep -v "^${RPM_BUILD_ROOT}/\?usr/lib/debug" | \
@ -29,8 +29,8 @@
sed -n -e 's/^\(.*\):[ ]*ELF.*, not stripped/\1/p'`; do sed -n -e 's/^\(.*\):[ ]*ELF.*, not stripped/\1/p'`; do
$STRIP -g "$f" || : $STRIP -g "$f" || :
done done
--- ./scripts/brp-suse.orig 2014-09-08 16:42:03.388071423 +0000 --- ./scripts/brp-suse.orig 2014-08-04 12:33:14.214715437 +0000
+++ ./scripts/brp-suse 2014-09-08 16:42:03.388071423 +0000 +++ ./scripts/brp-suse 2014-08-04 12:33:14.214715437 +0000
@@ -0,0 +1,13 @@ @@ -0,0 +1,13 @@
+#! /bin/sh +#! /bin/sh
+ +

View File

@ -9,30 +9,6 @@ Users can therefore ask zypper to install the correct debuginfo package with:
zypper install -C "debuginfo(build-id) = c63cb23876c5fa85f36beaff58f8557e1bf22517" 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.orig 2011-05-11 15:59:08.000000000 +0000
+++ ./macros.in 2011-05-11 15:59:31.000000000 +0000 +++ ./macros.in 2011-05-11 15:59:31.000000000 +0000
@@ -182,7 +182,8 @@ @@ -182,7 +182,8 @@

View File

@ -1,7 +1,7 @@
Create a debuginfo package for each subpackage. Create a debuginfo package for each subpackage.
--- ./build/files.c.orig 2014-08-18 12:37:19.151934240 +0000 --- ./build/files.c.orig 2014-06-30 08:47:13.928503700 +0000
+++ ./build/files.c 2014-08-18 12:48:48.106395561 +0000 +++ ./build/files.c 2014-09-17 11:03:25.001860575 +0000
@@ -21,6 +21,10 @@ @@ -21,6 +21,10 @@
#include <rpm/rpmlog.h> #include <rpm/rpmlog.h>
#include <rpm/rpmbase64.h> #include <rpm/rpmbase64.h>
@ -12,8 +12,8 @@ Create a debuginfo package for each subpackage.
+ +
#include "rpmio/rpmio_internal.h" /* XXX rpmioSlurp */ #include "rpmio/rpmio_internal.h" /* XXX rpmioSlurp */
#include "misc/fts.h" #include "misc/fts.h"
#include "lib/cpio.h" #include "lib/rpmfi_internal.h" /* XXX fi->apath */
@@ -2084,13 +2088,241 @@ exit: @@ -2031,13 +2035,238 @@ exit:
return rc; return rc;
} }
@ -145,10 +145,10 @@ Create a debuginfo package for each subpackage.
+ +
+ elf_version(EV_CURRENT); + elf_version(EV_CURRENT);
+ a = headerGetString(pkg->header, RPMTAG_ARCH); + 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; + Package dbg;
+ rpmfi fi = pkg->cpioList; + rpmfi fi = rpmfilesIter(pkg->cpioList, RPMFI_ITER_FWD);
+ char tmp[1024]; + char tmp[1024];
+ const char *name; + const char *name;
+ ARGV_t files = NULL; + 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 + /* Check if the current package has files with debug info
+ and record them. */ + and record them. */
+ fi = rpmfiInit (fi, 0); + fi = rpmfiInit(fi, 0);
+ while (rpmfiNext (fi) >= 0) + while (rpmfiNext(fi) >= 0)
+ { + {
+ const char *base;
+ int i; + int i;
+ unsigned char *build_id; + unsigned char *build_id = NULL;
+ size_t build_id_size = 0; + size_t build_id_size = 0;
+ struct stat sbuf; + struct stat sbuf;
+ +
+ name = rpmfiFN (fi); + name = rpmfiFN(fi);
+ /* Skip leading buildroot. */
+ base = name + strlen (buildroot);
+ /* Pre-pend %buildroot/usr/lib/debug and append .debug. */ + /* Pre-pend %buildroot/usr/lib/debug and append .debug. */
+ snprintf (tmp, 1024, "%s/usr/lib/debug%s.debug", + snprintf(tmp, 1024, "%s/usr/lib/debug%s.debug",
+ buildroot, base); + buildroot, name);
+ /* If that file exists we have debug information for it. */ + /* If that file exists we have debug information for it. */
+ if (access (tmp, F_OK) != 0) + if (access(tmp, F_OK) != 0)
+ continue; + continue;
+ +
+ /* Append the file list preamble. */ + /* Append the file list preamble. */
@ -182,17 +179,17 @@ Create a debuginfo package for each subpackage.
+ argvAdd(&files, "%dir /usr/lib/debug"); + argvAdd(&files, "%dir /usr/lib/debug");
+ } + }
+ /* Add the files main debug-info file. */ + /* 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); + argvAdd(&files, tmp);
+ +
+ snprintf(tmp, 1024, "%s%s", buildroot, name);
+ /* Do not bother to check build-ids for symbolic links. + /* Do not bother to check build-ids for symbolic links.
+ We'll handle them for the link target. */ + We'll handle them for the link target. */
+ if (lstat (name, &sbuf) == -1 + if (lstat(tmp, &sbuf) == -1 || S_ISLNK(sbuf.st_mode))
+ || S_ISLNK (sbuf.st_mode))
+ continue; + continue;
+ +
+ /* Try to gather the build-id from the binary. */ + /* 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; + continue;
+ +
+ /* If we see build-id links for the first time add the + /* 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 + /* From the build-id construct the two links pointing back
+ to the debug information file and the binary. */ + 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]); + build_id[0]);
+ for (i = 1; i < build_id_size; ++i) + 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); + argvAdd(&files, tmp);
+ sprintf (tmp + strlen (tmp), ".debug"); + sprintf(tmp + strlen(tmp), ".debug");
+ argvAdd(&files, tmp); + argvAdd(&files, tmp);
+ +
+ free (build_id); + free(build_id);
+ } + }
+ +
+ /* If there are debuginfo files for this package add a + /* If there are debuginfo files for this package add a
@ -218,19 +215,19 @@ Create a debuginfo package for each subpackage.
+ if (files) + if (files)
+ { + {
+ dbg = newPackage(NULL, spec->pool, &spec->packages); + dbg = newPackage(NULL, spec->pool, &spec->packages);
+ headerNVR (pkg->header, &name, NULL, NULL); + headerNVR(pkg->header, &name, NULL, NULL);
+ /* Set name, summary and group. */ + /* Set name, summary and group. */
+ snprintf (tmp, 1024, "%s-debuginfo", name); + snprintf(tmp, 1024, "%s-debuginfo", name);
+ headerPutString(dbg->header, RPMTAG_NAME, tmp); + 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); + 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" + "Debug information is useful when developing applications that use this\n"
+ "package or when debugging this package.", name); + "package or when debugging this package.", name);
+ headerPutString(dbg->header, RPMTAG_DESCRIPTION, tmp); + headerPutString(dbg->header, RPMTAG_DESCRIPTION, tmp);
+ headerPutString(dbg->header, RPMTAG_GROUP, "Development/Debug"); + headerPutString(dbg->header, RPMTAG_GROUP, "Development/Debug");
+ /* Inherit other tags from parent. */ + /* Inherit other tags from parent. */
+ headerCopyTags (pkg->header, dbg->header, copyTagsForDebug); + headerCopyTags(pkg->header, dbg->header, copyTagsForDebug);
+ +
+ /* Add self-provides */ + /* Add self-provides */
+ dbg->ds = rpmdsThis(dbg->header, RPMTAG_REQUIRENAME, RPMSENSE_EQUAL); + dbg->ds = rpmdsThis(dbg->header, RPMTAG_REQUIRENAME, RPMSENSE_EQUAL);
@ -255,7 +252,7 @@ Create a debuginfo package for each subpackage.
genSourceRpmName(spec); genSourceRpmName(spec);
for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) { for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
@@ -2108,8 +2340,12 @@ rpmRC processBinaryFiles(rpmSpec spec, r @@ -2055,8 +2284,12 @@ rpmRC processBinaryFiles(rpmSpec spec, r
rpmlog(RPMLOG_NOTICE, _("Processing files: %s\n"), nvr); rpmlog(RPMLOG_NOTICE, _("Processing files: %s\n"), nvr);
free(nvr); free(nvr);
@ -270,9 +267,9 @@ Create a debuginfo package for each subpackage.
goto exit; goto exit;
a = headerGetString(pkg->header, RPMTAG_ARCH); a = headerGetString(pkg->header, RPMTAG_ARCH);
--- ./build/parseSpec.c.orig 2014-08-18 12:44:49.564619395 +0000 --- ./build/parseSpec.c.orig 2014-09-17 11:00:45.295614365 +0000
+++ ./build/parseSpec.c 2014-08-18 12:44:59.187569649 +0000 +++ ./build/parseSpec.c 2014-09-17 11:01:56.371278963 +0000
@@ -503,7 +503,7 @@ static void initSourceHeader(rpmSpec spe @@ -507,7 +507,7 @@ static void initSourceHeader(rpmSpec spe
} }
/* Add extra provides to package. */ /* Add extra provides to package. */
@ -281,14 +278,14 @@ Create a debuginfo package for each subpackage.
{ {
const char *arch, *name; const char *arch, *name;
char *evr, *isaprov; char *evr, *isaprov;
--- ./build/rpmbuild_internal.h.orig 2014-08-18 12:43:17.461092324 +0000 --- ./build/rpmbuild_internal.h.orig 2014-08-18 06:59:55.487105642 +0000
+++ ./build/rpmbuild_internal.h 2014-08-18 12:44:25.578739914 +0000 +++ ./build/rpmbuild_internal.h 2014-09-17 11:01:45.138331580 +0000
@@ -425,6 +425,13 @@ int addReqProv(Package pkg, rpmTagVal ta @@ -433,6 +433,13 @@ int addReqProv(Package pkg, rpmTagVal ta
uint32_t index);
/** \ingroup rpmbuild /** \ingroup rpmbuild
+ * Add self-provides to package. + * Add self-provides to package.
+ * @param pkg package + * @param pkg package
+ */ + */
+RPM_GNUC_INTERNAL +RPM_GNUC_INTERNAL
+void addPackageProvides(Package pkg); +void addPackageProvides(Package pkg);
@ -297,8 +294,8 @@ Create a debuginfo package for each subpackage.
* Add rpmlib feature dependency. * Add rpmlib feature dependency.
* @param pkg package * @param pkg package
* @param feature rpm feature name (i.e. "rpmlib(Foo)" for feature Foo) * @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.orig 2014-09-17 11:00:45.299614345 +0000
+++ ./macros.in 2014-08-18 12:37:30.648875217 +0000 +++ ./macros.in 2014-09-17 11:00:50.013592123 +0000
@@ -186,24 +186,10 @@ @@ -186,24 +186,10 @@
# Template for debug information sub-package. # Template for debug information sub-package.
%debug_package \ %debug_package \
@ -324,8 +321,8 @@ Create a debuginfo package for each subpackage.
%description debugsource\ %description debugsource\
This package provides debug sources for package %{name}.\ This package provides debug sources for package %{name}.\
Debug sources are useful when developing applications that use this\ 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.orig 2014-09-17 11:00:45.293614374 +0000
+++ ./scripts/find-debuginfo.sh 2014-08-18 12:37:30.648875217 +0000 +++ ./scripts/find-debuginfo.sh 2014-09-17 11:00:50.014592113 +0000
@@ -149,6 +149,11 @@ debug_link() @@ -149,6 +149,11 @@ debug_link()
# Provide .2, .3, ... symlinks to all filename instances of this build-id. # Provide .2, .3, ... symlinks to all filename instances of this build-id.
make_id_dup_link() make_id_dup_link()

View File

@ -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) */

View File

@ -1,7 +1,25 @@
SUSE specific kernel provides/requires scripts SUSE specific kernel provides/requires scripts
--- scripts/find-provides.ksyms.orig 2013-07-12 14:08:40.000000000 +0000 --- ./scripts/Makefile.am.orig 2014-08-04 12:34:11.656463310 +0000
+++ scripts/find-provides.ksyms 2013-07-12 14:08:54.000000000 +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 @@ @@ -0,0 +1,17 @@
+#! /bin/bash +#! /bin/bash
+ +
@ -20,8 +38,8 @@ SUSE specific kernel provides/requires scripts
+ esac + esac
+done \ +done \
+| sort -u +| sort -u
--- scripts/find-requires.ksyms.orig 2013-07-12 14:08:45.000000000 +0000 --- ./scripts/find-requires.ksyms.orig 2014-08-04 12:34:15.062448349 +0000
+++ scripts/find-requires.ksyms 2013-07-12 14:08:33.000000000 +0000 +++ ./scripts/find-requires.ksyms 2014-08-04 12:34:15.062448349 +0000
@@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
+#! /bin/bash +#! /bin/bash
+ +
@ -38,21 +56,3 @@ SUSE specific kernel provides/requires scripts
+ esac + esac
+done \ +done \
+| sort -u +| 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 \

View File

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

View File

@ -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 Index: scripts/firmware.prov
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000

View File

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

View File

@ -1,11 +1,11 @@
--- macros.in.orig 2012-04-18 13:48:07.000000000 +0000 --- ./macros.in.orig 2014-08-04 13:04:51.646383733 +0000
+++ macros.in 2012-04-18 13:47:41.000000000 +0000 +++ ./macros.in 2014-08-04 13:04:54.687369977 +0000
@@ -515,7 +515,7 @@ posix.setenv("RPMBUILD_SOURCEDIR",rpm.ex @@ -490,7 +490,7 @@ posix.setenv("RPMBUILD_SOURCEDIR",rpm.ex
# %__myattr_exclude_magic exclude by magic regex # %__myattr_exclude_magic exclude by magic regex
# %__myattr_exclude_path exclude by path regex # %__myattr_exclude_path exclude by path regex
# #
-%_fileattrsdir %{_rpmconfigdir}/fileattrs -%_fileattrsdir %{_rpmconfigdir}/fileattrs
+%_fileattrsdir %{__set_helper_env}%{_rpmconfigdir}/fileattrs +%_fileattrsdir %{__set_helper_env}%{_rpmconfigdir}/fileattrs
#============================================================================== # This macro defines how much space (in bytes) in package should be
# ---- Database configuration macros. # reserved for gpg signatures during building of a package. If this space is

View File

@ -1,10 +1,10 @@
--- ./lib/rpmrc.c.orig 2014-02-05 13:04:02.000000000 +0000 --- ./lib/rpmrc.c.orig 2014-07-03 15:11:48.572096075 +0000
+++ ./lib/rpmrc.c 2014-02-20 12:37:28.209816551 +0000 +++ ./lib/rpmrc.c 2014-09-17 12:04:27.330717791 +0000
@@ -83,10 +83,12 @@ struct rpmOption { @@ -79,10 +79,12 @@ struct rpmOption {
int localize; int localize;
}; };
+#if defined(__linux__) && defined(__powerpc__) +#if defined(__linux__) && (defined(__powerpc__) || defined(__sparc__) || (defined(__arm__) && defined(__ARM_PCS_VFP)))
static struct rpmat_s { static struct rpmat_s {
const char *platform; const char *platform;
uint64_t hwcap; uint64_t hwcap;
@ -13,21 +13,21 @@
typedef struct defaultEntry_s { typedef struct defaultEntry_s {
char * name; char * name;
@@ -914,7 +916,7 @@ static int is_geode(void) @@ -936,7 +938,7 @@ static int is_geode(void)
#endif #endif
-#if defined(__linux__) -#if defined(__linux__)
+#if defined(__linux__) && defined(__powerpc__) +#if defined(__linux__) && (defined(__powerpc__) || defined(__sparc__) || (defined(__arm__) && defined(__ARM_PCS_VFP)))
/** /**
* Populate rpmat structure with auxv values * Populate rpmat structure with auxv values
*/ */
@@ -971,7 +973,7 @@ static void defaultMachine(const char ** @@ -993,7 +995,7 @@ static void defaultMachine(rpmrcCtx ctx,
canonEntry canon; canonEntry canon;
int rc; int rc;
-#if defined(__linux__) -#if defined(__linux__)
+#if defined(__linux__) && defined(__powerpc__) +#if defined(__linux__) && (defined(__powerpc__) || defined(__sparc__) || (defined(__arm__) && defined(__ARM_PCS_VFP)))
/* Populate rpmat struct with hw info */ /* Populate rpmat struct with hw info */
read_auxv(); read_auxv();
#endif #endif

View File

@ -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.orig 2014-02-20 12:52:33.971814948 +0000
+++ ./scripts/Makefile.am 2014-02-20 12:52:40.089814937 +0000 +++ ./scripts/Makefile.am 2014-02-20 12:52:40.089814937 +0000
@@ -21,6 +21,7 @@ EXTRA_DIST = \ @@ -21,6 +21,7 @@ EXTRA_DIST = \

View File

@ -1,5 +1,5 @@
--- ./macros.in.orig 2013-06-10 15:55:10.000000000 +0000 --- ./macros.in.orig 2014-06-27 07:25:43.624470700 +0000
+++ ./macros.in 2013-07-12 11:53:07.000000000 +0000 +++ ./macros.in 2014-08-04 12:38:02.067474055 +0000
@@ -185,22 +185,22 @@ @@ -185,22 +185,22 @@
# Template for debug information sub-package. # Template for debug information sub-package.
@ -70,7 +70,7 @@
# #
# Path to file attribute classifications for automatic dependency # 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 # Misc BDB tuning options
%__dbi_other mp_mmapsize=128Mb mp_size=1Mb %__dbi_other mp_mmapsize=128Mb mp_size=1Mb
@ -83,7 +83,7 @@
#============================================================================== #==============================================================================
# ---- GPG/PGP/PGP5 signature macros. # ---- 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_vendor %{_host_vendor}
%_build_os %{_host_os} %_build_os %{_host_os}
%_host @host@ %_host @host@
@ -92,7 +92,7 @@
%_host_cpu @host_cpu@ %_host_cpu @host_cpu@
%_host_vendor @host_vendor@ %_host_vendor @host_vendor@
%_host_os @host_os@ %_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_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])") %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 # arch macro for all Intel i?86 compatibile processors
# (Note: This macro (and it's analogues) will probably be obsoleted when # (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 # arch macro for all supported ARM processors
-%arm armv3l armv4b armv4l armv4tl armv5tel armv5tejl armv6l armv7l -%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 +%arm armv3l armv4b armv4l armv4tl armv5b armv5l armv5teb armv5tel armv5tejl armv6l armv6hl armv7l armv7hl armv7hnl
+%arml armv3l armv4l armv5l armv5tel armv6l armv7l armv7hl +%arml armv3l armv4l armv5l armv5tel armv6l armv7l armv7hl armv7hnl
+%armb armv4b armv5b armv5teb +%armb armv4b armv5b armv5teb
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# arch macro for all supported Sparc processors # arch macro for all supported Sparc processors
@@ -1110,3 +1296,26 @@ end} @@ -1127,3 +1313,26 @@ end}
# \endverbatim # \endverbatim
#*/ #*/

View File

@ -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 two packages are the same. rh#104066
--- ./lib/depends.c.orig 2012-06-01 10:07:12.000000000 +0000 --- ./lib/depends.c.orig 2014-06-26 06:51:54.163820067 +0000
+++ ./lib/depends.c 2012-06-01 10:16:13.000000000 +0000 +++ ./lib/depends.c 2014-08-04 12:22:24.030575105 +0000
@@ -144,6 +144,24 @@ static int skipColor(rpm_color_t tscolor @@ -158,6 +158,24 @@ static int skipColor(rpm_color_t tscolor
return tscolor && color && ocolor && !(color & ocolor); 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). */ /* 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) 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))) if (skipColor(tscolor, hcolor, headerGetNumber(oh, RPMTAG_HEADERCOLOR)))
continue; continue;
- /* Skip packages that contain identical NEVR. */ - cmp = rpmVersionCompare(h, oh);
- if (rpmVersionCompare(h, oh) == 0) + cmp = rpmNameVersionCompare(h, oh);
+ /* Skip packages that contain identical NEVRA. */
+ if (rpmNameVersionCompare(h, oh) == 0)
continue;
if (removePackage(ts, oh, p)) { /* On upgrade, skip packages that contain identical NEVR. */
if ((op == RPMTE_UPGRADE) && (cmp == 0))

View File

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

View File

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

View File

@ -1,7 +1,5 @@
SUSE specific platform changes. --- ./platform.in.orig 2014-06-26 06:51:54.822818260 +0000
+++ ./platform.in 2014-08-04 12:38:55.389245494 +0000
--- ./platform.in.orig 2014-09-05 11:49:01.000000000 +0000
+++ ./platform.in 2014-09-08 16:43:35.250660580 +0000
@@ -29,7 +29,7 @@ @@ -29,7 +29,7 @@
%_exec_prefix @exec_prefix@ %_exec_prefix @exec_prefix@
%_bindir @bindir@ %_bindir @bindir@
@ -20,7 +18,7 @@ SUSE specific platform changes.
# Deprecated misspelling, present for backwards compatibility. # Deprecated misspelling, present for backwards compatibility.
%_initrddir %{_initddir} %_initrddir %{_initddir}
%_rundir @RUNDIR@ %_rundir @RUNDIR@
@@ -79,3 +79,21 @@ @@ -83,3 +83,21 @@
@apple@# @apple@#
@apple@%_use_internal_dependency_generator 0 @apple@%_use_internal_dependency_generator 0
@apple@%__so dylib @apple@%__so dylib

View File

@ -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 ") : ""),

View File

@ -17,7 +17,7 @@
Name: python3-rpm Name: python3-rpm
Version: 4.11.3 Version: 4.12.0.1
Release: 0 Release: 0
Summary: Python Bindings for Manipulating RPM Packages Summary: Python Bindings for Manipulating RPM Packages
License: GPL-2.0+ License: GPL-2.0+

View File

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

View File

@ -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
--- ./lib/psm.c.orig 2013-07-12 12:05:15.000000000 +0000 @@ -673,8 +673,15 @@ static rpmRC rpmpsmUnpack(rpmpsm psm)
+++ ./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;
}
+ 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);
}
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;
}
}

View File

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

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

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

View File

@ -1,8 +1,6 @@
Index: macros.in --- ./macros.in.orig 2014-08-04 13:03:05.948860909 +0000
=================================================================== +++ ./macros.in 2014-08-04 13:03:24.830775270 +0000
--- macros.in.orig 2011-12-09 13:21:58.078688958 +0100 @@ -885,7 +885,8 @@ posix.setenv("RPMBUILD_SOURCEDIR",rpm.ex
+++ macros.in 2011-12-09 13:21:58.502668839 +0100
@@ -920,7 +920,8 @@ posix.setenv("RPMBUILD_SOURCEDIR",rpm.ex
--localstatedir=%{_localstatedir} \\\ --localstatedir=%{_localstatedir} \\\
--sharedstatedir=%{_sharedstatedir} \\\ --sharedstatedir=%{_sharedstatedir} \\\
--mandir=%{_mandir} \\\ --mandir=%{_mandir} \\\
@ -11,4 +9,4 @@ Index: macros.in
+ --disable-dependency-tracking + --disable-dependency-tracking
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# The make install analogue of %configure for modern autotools: # The "make" analogue, hiding the _smp_mflags magic from specs

View File

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

View File

@ -17,7 +17,7 @@
Name: rpm-python Name: rpm-python
Version: 4.11.3 Version: 4.12.0.1
Release: 0 Release: 0
#!BuildIgnore: rpmlint-Factory #!BuildIgnore: rpmlint-Factory
Summary: Python Bindings for Manipulating RPM Packages Summary: Python Bindings for Manipulating RPM Packages

View File

@ -1,3 +1,21 @@
-------------------------------------------------------------------
Thu Sep 18 13:40:43 CEST 2014 - mls@suse.de
- update to rpm-4.12.0.1
* fixes archivesize being off a couple of bytes
-------------------------------------------------------------------
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 Mon Sep 8 18:51:28 CEST 2014 - mls@suse.de

View File

@ -47,9 +47,9 @@ PreReq: %fillup_prereq
Summary: The RPM Package Manager Summary: The RPM Package Manager
License: GPL-2.0+ License: GPL-2.0+
Group: System/Packages Group: System/Packages
Version: 4.11.3 Version: 4.12.0.1
Release: 0 Release: 0
Source: http://rpm.org/releases/rpm-4.11.x/rpm-%{version}.tar.bz2 Source: http://rpm.org/releases/rpm-4.12.x/rpm-%{version}.tar.bz2
Source1: RPM-HOWTO.tar.bz2 Source1: RPM-HOWTO.tar.bz2
Source4: rpm-suse_macros Source4: rpm-suse_macros
Source5: rpmsort Source5: rpmsort
@ -62,7 +62,6 @@ Source12: baselibs.conf
Patch1: beecrypt-4.1.2.diff Patch1: beecrypt-4.1.2.diff
Patch2: db.diff Patch2: db.diff
# quilt patches start here # quilt patches start here
Patch10: newweakdeps.diff
Patch11: debugedit.diff Patch11: debugedit.diff
Patch13: ignore-auxv.diff Patch13: ignore-auxv.diff
Patch12: localetag.diff Patch12: localetag.diff
@ -74,7 +73,6 @@ Patch18: refreshtestarch.diff
Patch19: rpmrctests.diff Patch19: rpmrctests.diff
Patch20: waitlock.diff Patch20: waitlock.diff
Patch21: suspendlock.diff Patch21: suspendlock.diff
Patch23: autodeps.diff
Patch24: brp.diff Patch24: brp.diff
Patch25: brpcompress.diff Patch25: brpcompress.diff
Patch26: checkfilesnoinfodir.diff Patch26: checkfilesnoinfodir.diff
@ -112,9 +110,6 @@ Patch58: lazystatfs.diff
Patch59: repackage-nomd5.diff Patch59: repackage-nomd5.diff
Patch60: safeugid.diff Patch60: safeugid.diff
Patch61: noprereqdeprec.diff Patch61: noprereqdeprec.diff
Patch62: pythondeps.diff
Patch63: fontprovides.diff
Patch64: rpm-gst-provides.patch
Patch65: initscriptsprov.diff Patch65: initscriptsprov.diff
Patch66: remove-translations.diff Patch66: remove-translations.diff
Patch67: headeradddb.diff Patch67: headeradddb.diff
@ -122,7 +117,6 @@ Patch68: dbprivate.diff
Patch69: nobuildcolor.diff Patch69: nobuildcolor.diff
Patch70: fileattrs.diff Patch70: fileattrs.diff
Patch71: nomagiccheck.diff Patch71: nomagiccheck.diff
Patch72: findsupplements.diff
Patch73: assumeexec.diff Patch73: assumeexec.diff
Patch74: mono-find-requires.diff Patch74: mono-find-requires.diff
Patch75: rpm-deptracking.patch Patch75: rpm-deptracking.patch
@ -130,13 +124,10 @@ Patch76: python3-abi-kind.diff
Patch77: langnoc.diff Patch77: langnoc.diff
Patch78: headerchk2.diff Patch78: headerchk2.diff
Patch79: helperenv.diff Patch79: helperenv.diff
Patch80: psm-errno.diff
Patch82: noposttrans.diff
Patch85: brp-compress-no-img.patch Patch85: brp-compress-no-img.patch
Patch92: find-lang-python.patch Patch92: find-lang-python.patch
Patch93: weakdepscompat.diff Patch93: weakdepscompat.diff
Patch94: checksepwarn.diff Patch94: checksepwarn.diff
Patch95: exportoldtags.diff
Patch6464: auto-config-update-aarch64-ppc64le.diff Patch6464: auto-config-update-aarch64-ppc64le.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
# #
@ -216,15 +207,15 @@ ln -s beecrypt-4.1.2 beecrypt
chmod -R u+w db/* chmod -R u+w db/*
rm -f rpmdb/db.h rm -f rpmdb/db.h
%patch -P 1 -P 2 %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 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 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 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 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 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 60 -P 61 -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 70 -P 71 -P 73 -P 74 -P 75 -P 76 -P 77 -P 78 -P 79
%patch -P 80 -P 82 -P 85 %patch -P 85
%patch -P 92 -P 93 -P 94 -P 95 %patch -P 92 -P 93 -P 94
%ifarch aarch64 ppc64le %ifarch aarch64 ppc64le
%patch6464 %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 \ --libdir=%{_libdir} --sysconfdir=/etc --localstatedir=/var --with-lua \
--with-vendor=suse \ --with-vendor=suse \
--with-rundir=/run \ --with-rundir=/run \
--without-archive \
--with-selinux --with-internal-beecrypt \ --with-selinux --with-internal-beecrypt \
--with-acl --with-cap --enable-shared %{?with_python: --enable-python} $BUILDTARGET --with-acl --with-cap --enable-shared %{?with_python: --enable-python} $BUILDTARGET

View File

@ -1,5 +1,5 @@
--- ./rpmrc.in.orig 2014-09-05 11:47:15.000000000 +0000 --- ./rpmrc.in.orig 2014-06-27 07:25:43.624470700 +0000
+++ ./rpmrc.in 2014-09-08 16:44:47.547337670 +0000 +++ ./rpmrc.in 2014-08-04 12:44:21.192842515 +0000
@@ -12,16 +12,16 @@ @@ -12,16 +12,16 @@
# "fat" binary with both archs, for Darwin # "fat" binary with both archs, for Darwin
optflags: fat -O2 -g -arch i386 -arch ppc optflags: fat -O2 -g -arch i386 -arch ppc
@ -30,15 +30,15 @@
optflags: m68k -O2 -g -fomit-frame-pointer optflags: m68k -O2 -g -fomit-frame-pointer
-optflags: ppc -O2 -g -fsigned-char -optflags: ppc -O2 -g
-optflags: ppc8260 -O2 -g -fsigned-char -optflags: ppc8260 -O2 -g
-optflags: ppc8560 -O2 -g -fsigned-char -optflags: ppc8560 -O2 -g
-optflags: ppc32dy4 -O2 -g -fsigned-char -optflags: ppc32dy4 -O2 -g
-optflags: ppciseries -O2 -g -fsigned-char -optflags: ppciseries -O2 -g
-optflags: ppcpseries -O2 -g -fsigned-char -optflags: ppcpseries -O2 -g
-optflags: ppc64 -O2 -g -fsigned-char -optflags: ppc64 -O2 -g
-optflags: ppc64le -O2 -g -fsigned-char -optflags: ppc64le -O2 -g
-optflags: ppc64p7 -O3 -mtune=power7 -mcpu=power7 -g -fsigned-char -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: ppc -O2 -g -m32 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables
+optflags: ppc8260 -O2 -g -m32 +optflags: ppc8260 -O2 -g -m32
+optflags: ppc8560 -O2 -g -m32 +optflags: ppc8560 -O2 -g -m32
@ -54,17 +54,20 @@
optflags: hppa1.0 -O2 -g -mpa-risc-1-0 optflags: hppa1.0 -O2 -g -mpa-risc-1-0
optflags: hppa1.1 -O2 -g -mpa-risc-1-0 optflags: hppa1.1 -O2 -g -mpa-risc-1-0
optflags: hppa1.2 -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: armv5tel -O2 -g -march=armv5te
optflags: armv5tejl -O2 -g -march=armv5te optflags: armv5tejl -O2 -g -march=armv5te
optflags: armv6l -O2 -g -march=armv6 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: armv6hl -O2 -g -march=armv6 -mfloat-abi=hard -mabi=aapcs-linux
optflags: armv7l -O2 -g -march=armv7 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: 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 optflags: m68k -O2 -g -fomit-frame-pointer
@@ -83,8 +84,8 @@ optflags: atariclone -O2 -g -fomit-frame
@@ -79,8 +82,8 @@ optflags: atariclone -O2 -g -fomit-frame
optflags: milan -O2 -g -fomit-frame-pointer optflags: milan -O2 -g -fomit-frame-pointer
optflags: hades -O2 -g -fomit-frame-pointer optflags: hades -O2 -g -fomit-frame-pointer
@ -75,17 +78,7 @@
optflags: sh3 -O2 -g optflags: sh3 -O2 -g
optflags: sh4 -O2 -g -mieee optflags: sh4 -O2 -g -mieee
@@ -184,7 +187,9 @@ arch_canon: armv4l: armv4l 12 @@ -255,17 +256,17 @@ os_canon: MacOSX: macosx 21
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
############################################################# #############################################################
# For a given uname().machine, the default build arch # For a given uname().machine, the default build arch
@ -111,17 +104,7 @@
buildarchtranslate: i486: i386 buildarchtranslate: i486: i386
buildarchtranslate: i386: i386 buildarchtranslate: i386: i386
@@ -297,7 +302,9 @@ buildarchtranslate: armv4tl: armv4tl @@ -334,6 +335,15 @@ buildarchtranslate: sh4a: sh4
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
buildarchtranslate: aarch64: aarch64 buildarchtranslate: aarch64: aarch64
@ -137,7 +120,7 @@
############################################################# #############################################################
# Architecture compatibility # 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: hppa2.0: hppa1.2
arch_compat: hppa1.2: hppa1.1 arch_compat: hppa1.2: hppa1.1
arch_compat: hppa1.1: hppa1.0 arch_compat: hppa1.1: hppa1.0
@ -160,7 +143,7 @@
arch_compat: armv4tl: armv4l arch_compat: armv4tl: armv4l
arch_compat: armv4l: armv3l arch_compat: armv4l: armv3l
arch_compat: armv3l: noarch 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: s390: noarch
arch_compat: s390x: s390 noarch arch_compat: s390x: s390 noarch
@ -169,7 +152,7 @@
arch_compat: x86_64: amd64 em64t athlon noarch arch_compat: x86_64: amd64 em64t athlon noarch
arch_compat: amd64: x86_64 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: ppc64pseries: ppc64
buildarch_compat: ppc64iseries: ppc64 buildarch_compat: ppc64iseries: ppc64
buildarch_compat: ppc64p7: ppc64 buildarch_compat: ppc64p7: ppc64
@ -185,7 +168,7 @@
buildarch_compat: armv6l: armv5tejl buildarch_compat: armv6l: armv5tejl
buildarch_compat: armv5tejl: armv5tel buildarch_compat: armv5tejl: armv5tel
buildarch_compat: armv5tel: armv4tl 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: hppa2.0: hppa1.2
buildarch_compat: hppa1.2: hppa1.1 buildarch_compat: hppa1.2: hppa1.1
buildarch_compat: hppa1.1: hppa1.0 buildarch_compat: hppa1.1: hppa1.0

View File

@ -2,18 +2,18 @@ Suspend exclusive database lock when scriptlets get called, allowing
read access in scriptlets. Only needed for DB_PRIVATE (aka global) read access in scriptlets. Only needed for DB_PRIVATE (aka global)
locking. locking.
--- ./lib/backend/db3.c.orig 2012-06-01 10:50:11.000000000 +0000 --- ./lib/backend/db3.c.orig 2014-08-04 12:25:29.288759808 +0000
+++ ./lib/backend/db3.c 2012-06-01 10:50:19.000000000 +0000 +++ ./lib/backend/db3.c 2014-08-04 12:30:30.829430726 +0000
@@ -628,3 +628,59 @@ int dbiOpen(rpmdb rdb, rpmDbiTagVal rpmt @@ -625,6 +625,63 @@ static int dbiFlock(dbiIndex dbi, int mo
return rc; return rc;
} }
+
+int dbiSuspendDBLock(dbiIndex dbi, unsigned int flags) +int dbiSuspendDBLock(dbiIndex dbi, unsigned int flags)
+{ +{
+ struct flock l; + struct flock l;
+ int rc = 0; + int rc = 0;
+ int fdno = -1; + int fdno = -1;
+ DB * db = dbi->dbi_db;
+ +
+ if (!dbi->dbi_lockdbfd) + if (!dbi->dbi_lockdbfd)
+ return 0; + return 0;
@ -21,7 +21,7 @@ locking.
+ return 0; + return 0;
+ if (_lockdbfd == 0) + if (_lockdbfd == 0)
+ return 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; + return 1;
+ memset(&l, 0, sizeof(l)); + memset(&l, 0, sizeof(l));
+ l.l_whence = 0; + l.l_whence = 0;
@ -40,6 +40,7 @@ locking.
+ int rc = 0; + int rc = 0;
+ int tries; + int tries;
+ int fdno = -1; + int fdno = -1;
+ DB * db = dbi->dbi_db;
+ +
+ if (!dbi->dbi_lockdbfd) + if (!dbi->dbi_lockdbfd)
+ return 0; + return 0;
@ -47,7 +48,7 @@ locking.
+ return 0; + return 0;
+ if (_lockdbfd == 0) + if (_lockdbfd == 0)
+ return 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; + return 1;
+ for (tries = 0; tries < 2; tries++) { + for (tries = 0; tries < 2; tries++) {
+ memset(&l, 0, sizeof(l)); + memset(&l, 0, sizeof(l));
@ -64,9 +65,12 @@ locking.
+ return rc; + return rc;
+} +}
+ +
--- ./lib/backend/dbi.h.orig 2012-03-20 08:07:25.000000000 +0000 int dbiOpen(rpmdb rdb, rpmDbiTagVal rpmtag, dbiIndex * dbip, int flags)
+++ ./lib/backend/dbi.h 2012-06-01 10:53:43.000000000 +0000 {
@@ -90,6 +90,24 @@ struct dbiIndex_s { 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" { extern "C" {
#endif #endif
@ -91,39 +95,39 @@ locking.
RPM_GNUC_INTERNAL RPM_GNUC_INTERNAL
/* Globally enable/disable fsync in the backend */ /* Globally enable/disable fsync in the backend */
--- ./lib/psm.c.orig 2012-06-01 10:50:11.000000000 +0000 --- ./lib/psm.c.orig 2014-08-04 12:25:29.289759769 +0000
+++ ./lib/psm.c 2012-06-01 10:51:34.000000000 +0000 +++ ./lib/psm.c 2014-08-04 12:27:04.230340235 +0000
@@ -419,10 +419,12 @@ static rpmRC runScript(rpmpsm psm, ARGV_ @@ -291,10 +291,12 @@ static rpmRC runScript(rpmts ts, rpmte t
if (sfd == NULL) if (sfd == NULL)
sfd = rpmtsScriptFd(psm->ts); sfd = rpmtsScriptFd(ts);
+ rpmtsSuspendResumeDBLock(psm->ts, 0); + rpmtsSuspendResumeDBLock(ts, 0);
rpmswEnter(rpmtsOp(psm->ts, RPMTS_OP_SCRIPTLETS), 0); rpmswEnter(rpmtsOp(ts, RPMTS_OP_SCRIPTLETS), 0);
rc = rpmScriptRun(script, arg1, arg2, sfd, rc = rpmScriptRun(script, arg1, arg2, sfd,
prefixes, warn_only, selinux); prefixes, warn_only, rpmtsPlugins(ts));
rpmswExit(rpmtsOp(psm->ts, RPMTS_OP_SCRIPTLETS), 0); rpmswExit(rpmtsOp(ts, RPMTS_OP_SCRIPTLETS), 0);
+ rpmtsSuspendResumeDBLock(psm->ts, 1); + rpmtsSuspendResumeDBLock(ts, 1);
/* Map warn-only errors to "notfound" for script stop callback */ /* Map warn-only errors to "notfound" for script stop callback */
stoprc = (rc != RPMRC_OK && warn_only) ? RPMRC_NOTFOUND : rc; stoprc = (rc != RPMRC_OK && warn_only) ? RPMRC_NOTFOUND : rc;
--- ./lib/rpmdb.c.orig 2012-06-01 10:50:11.000000000 +0000 --- ./lib/rpmdb.c.orig 2014-08-04 12:25:15.106821818 +0000
+++ ./lib/rpmdb.c 2012-06-01 10:50:19.000000000 +0000 +++ ./lib/rpmdb.c 2014-08-04 12:25:29.289759769 +0000
@@ -769,6 +769,12 @@ int rpmdbSync(rpmdb db) @@ -475,6 +475,12 @@ exit:
return dbiForeach(db->_dbi, dbiSync, 0); return rc;
} }
+int rpmdbSuspendResumeDBLock(rpmdb db, int mode) +int rpmdbSuspendResumeDBLock(rpmdb db, int mode)
+{ +{
+ if (db == NULL) return 0; + 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, static rpmdb newRpmdb(const char * root, const char * home,
int mode, int perms, int flags) int mode, int perms, int flags)
{ {
--- ./lib/rpmts.c.orig 2012-03-20 08:07:25.000000000 +0000 --- ./lib/rpmts.c.orig 2014-06-26 06:51:54.653818721 +0000
+++ ./lib/rpmts.c 2012-06-01 10:50:19.000000000 +0000 +++ ./lib/rpmts.c 2014-08-04 12:25:29.289759769 +0000
@@ -95,6 +95,11 @@ int rpmtsOpenDB(rpmts ts, int dbmode) @@ -101,6 +101,11 @@ int rpmtsOpenDB(rpmts ts, int dbmode)
return rc; return rc;
} }
@ -134,10 +138,10 @@ locking.
+ +
int rpmtsInitDB(rpmts ts, int dbmode) int rpmtsInitDB(rpmts ts, int dbmode)
{ {
rpmlock lock = rpmtsAcquireLock(ts); rpmtxn txn = rpmtxnBegin(ts, RPMTXN_WRITE);
--- ./lib/rpmts.h.orig 2012-03-20 08:07:25.000000000 +0000 --- ./lib/rpmts.h.orig 2014-06-26 06:51:54.655818716 +0000
+++ ./lib/rpmts.h 2012-06-01 10:50:19.000000000 +0000 +++ ./lib/rpmts.h 2014-08-04 12:25:29.290759730 +0000
@@ -423,6 +423,8 @@ rpmdb rpmtsGetRdb(rpmts ts); @@ -441,6 +441,8 @@ rpmdb rpmtsGetRdb(rpmts ts);
void * rpmtsNotify(rpmts ts, rpmte te, void * rpmtsNotify(rpmts ts, rpmte te,
rpmCallbackType what, rpm_loff_t amount, rpm_loff_t total); rpmCallbackType what, rpm_loff_t amount, rpm_loff_t total);

View File

@ -1,8 +1,9 @@
This used to be the taggedfileindex patch, but it's gone. This used to be the taggedfileindex patch, but it's gone.
The remaining part just strips off the tag. 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 --- ./lib/backend/db3.c.orig 2014-08-04 12:45:25.907562115 +0000
@@ -257,6 +257,9 @@ static int dbt2set(dbiIndex dbi, DBT * d +++ ./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(hdrNum);
_DBSWAP(tagNum); _DBSWAP(tagNum);
} }

View File

@ -1,5 +1,5 @@
--- ./build/parsePreamble.c.orig 2014-02-25 14:14:15.892041649 +0000 --- ./build/parsePreamble.c.orig 2014-08-04 13:10:07.530953406 +0000
+++ ./build/parsePreamble.c 2014-02-25 14:14:26.237041631 +0000 +++ ./build/parsePreamble.c 2014-08-04 13:10:12.852929355 +0000
@@ -343,6 +343,7 @@ static struct tokenBits_s const installS @@ -343,6 +343,7 @@ static struct tokenBits_s const installS
{ "verify", RPMSENSE_SCRIPT_VERIFY }, { "verify", RPMSENSE_SCRIPT_VERIFY },
{ "pretrans", RPMSENSE_PRETRANS }, { "pretrans", RPMSENSE_PRETRANS },
@ -8,120 +8,3 @@
{ NULL, 0 } { 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)