From a406c1d81a729ea58f01ca7e25a4a66ae50320b6a4433fbb44920f0291fe2726 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Schr=C3=B6der?= Date: Tue, 16 Sep 2014 12:03:10 +0000 Subject: [PATCH 1/6] - update to rpm-4.12.0 OBS-URL: https://build.opensuse.org/package/show/Base:System/rpm?expand=0&rev=338 --- assumeexec.diff | 20 +- autodeps.diff | 261 ----------------------- brp.diff | 18 +- buildidprov.diff | 24 --- debugsubpkg.diff | 94 +++----- exportoldtags.diff | 25 --- findksyms.diff | 44 ++-- findsupplements.diff | 109 ---------- firmware.diff | 24 --- fontprovides.diff | 54 ----- helperenv.diff | 10 +- initscriptsprov.diff | 12 -- macrosin.diff | 22 +- nameversioncompare.diff | 22 +- newweakdeps.diff | 462 ---------------------------------------- noposttrans.diff | 115 ---------- platformin.diff | 8 +- psm-errno.diff | 26 --- python3-rpm.spec | 2 +- pythondeps.diff | 48 ----- repackage-nomd5.diff | 48 ++--- rpm-4.11.3.tar.bz2 | 3 - rpm-4.12.0.tar.bz2 | 3 + rpm-deptracking.patch | 10 +- rpm-gst-provides.patch | 14 -- rpm-python.spec | 2 +- rpm.changes | 12 ++ rpm.spec | 24 +-- rpmrc.diff | 63 ++---- suspendlock.diff | 66 +++--- taggedfileindex.diff | 7 +- weakdepscompat.diff | 121 +---------- 32 files changed, 211 insertions(+), 1562 deletions(-) delete mode 100644 autodeps.diff delete mode 100644 exportoldtags.diff delete mode 100644 findsupplements.diff delete mode 100644 fontprovides.diff delete mode 100644 newweakdeps.diff delete mode 100644 noposttrans.diff delete mode 100644 psm-errno.diff delete mode 100644 pythondeps.diff delete mode 100644 rpm-4.11.3.tar.bz2 create mode 100644 rpm-4.12.0.tar.bz2 delete mode 100644 rpm-gst-provides.patch diff --git a/assumeexec.diff b/assumeexec.diff index e644ffd..e0274a8 100644 --- a/assumeexec.diff +++ b/assumeexec.diff @@ -1,26 +1,26 @@ ---- tools/elfdeps.c.orig 2013-01-30 15:33:12.000000000 +0000 -+++ tools/elfdeps.c 2013-07-12 12:21:47.000000000 +0000 -@@ -15,6 +15,7 @@ - int filter_private = 0; - int soname_only = 0; +--- ./tools/elfdeps.c.orig 2014-06-26 06:51:55.768815677 +0000 ++++ ./tools/elfdeps.c 2014-08-04 13:02:16.981081591 +0000 +@@ -17,6 +17,7 @@ int soname_only = 0; int fake_soname = 1; + int filter_soname = 1; + int require_interp = 0; +int assume_exec = 0; typedef struct elfInfo_s { Elf *elf; -@@ -235,7 +236,7 @@ static int processFile(const char *fn, i +@@ -299,7 +300,7 @@ static int processFile(const char *fn, i if (ehdr->e_type == ET_DYN || ehdr->e_type == ET_EXEC) { ei->marker = mkmarker(ehdr); ei->isDSO = (ehdr->e_type == ET_DYN); - ei->isExec = (st.st_mode & (S_IXUSR|S_IXGRP|S_IXOTH)); + ei->isExec = assume_exec || (st.st_mode & (S_IXUSR|S_IXGRP|S_IXOTH)); + processProgHeaders(ei, ehdr); processSections(ei); - } -@@ -292,6 +293,7 @@ int main(int argc, char *argv[]) - { "filter-private", 0, POPT_ARG_VAL, &filter_private, -1, NULL, NULL }, - { "soname-only", 0, POPT_ARG_VAL, &soname_only, -1, NULL, NULL }, +@@ -364,6 +365,7 @@ int main(int argc, char *argv[]) { "no-fake-soname", 0, POPT_ARG_VAL, &fake_soname, 0, NULL, NULL }, + { "no-filter-soname", 0, POPT_ARG_VAL, &filter_soname, 0, NULL, NULL }, + { "require-interp", 0, POPT_ARG_VAL, &require_interp, -1, NULL, NULL }, + { "assume-exec", 0, POPT_ARG_VAL, &assume_exec, -1, NULL, NULL }, POPT_AUTOHELP POPT_TABLEEND diff --git a/autodeps.diff b/autodeps.diff deleted file mode 100644 index ef0d3de..0000000 --- a/autodeps.diff +++ /dev/null @@ -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 diff --git a/brp.diff b/brp.diff index 3a9c517..9d0063b 100644 --- a/brp.diff +++ b/brp.diff @@ -1,6 +1,6 @@ ---- ./scripts/Makefile.am.orig 2014-09-05 11:48:54.000000000 +0000 -+++ ./scripts/Makefile.am 2014-09-08 16:42:03.387071432 +0000 -@@ -26,6 +26,7 @@ rpmconfig_SCRIPTS = \ +--- ./scripts/Makefile.am.orig 2014-06-26 06:51:55.444816562 +0000 ++++ ./scripts/Makefile.am 2014-08-04 12:33:14.213715432 +0000 +@@ -27,6 +27,7 @@ rpmconfig_SCRIPTS = \ appdata.prov \ brp-compress brp-python-bytecompile brp-java-gcjcompile \ brp-strip brp-strip-comment-note brp-python-hardlink \ @@ -8,8 +8,8 @@ brp-strip-shared brp-strip-static-archive \ check-files check-prereqs \ check-buildroot check-rpaths check-rpaths-worker \ ---- ./scripts/brp-strip-comment-note.orig 2012-11-07 12:55:24.000000000 +0000 -+++ ./scripts/brp-strip-comment-note 2014-09-08 16:42:03.387071432 +0000 +--- ./scripts/brp-strip-comment-note.orig 2014-06-26 06:51:55.455816533 +0000 ++++ ./scripts/brp-strip-comment-note 2014-08-04 12:33:14.214715437 +0000 @@ -16,6 +16,8 @@ esac # for already stripped elf files in the build root for f in `find "$RPM_BUILD_ROOT" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) -exec file {} \; | \ @@ -19,8 +19,8 @@ sed -n -e 's/^\(.*\):[ ]*ELF.*, stripped/\1/p'`; do note="-R .note" if $OBJDUMP -h $f | grep '^[ ]*[0-9]*[ ]*.note[ ]' -A 1 | \ ---- ./scripts/brp-strip.orig 2012-11-07 12:55:24.000000000 +0000 -+++ ./scripts/brp-strip 2014-09-08 16:42:03.388071423 +0000 +--- ./scripts/brp-strip.orig 2014-06-26 06:51:55.455816533 +0000 ++++ ./scripts/brp-strip 2014-08-04 12:33:14.214715437 +0000 @@ -15,6 +15,7 @@ esac for f in `find "$RPM_BUILD_ROOT" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) -exec file {} \; | \ grep -v "^${RPM_BUILD_ROOT}/\?usr/lib/debug" | \ @@ -29,8 +29,8 @@ sed -n -e 's/^\(.*\):[ ]*ELF.*, not stripped/\1/p'`; do $STRIP -g "$f" || : done ---- ./scripts/brp-suse.orig 2014-09-08 16:42:03.388071423 +0000 -+++ ./scripts/brp-suse 2014-09-08 16:42:03.388071423 +0000 +--- ./scripts/brp-suse.orig 2014-08-04 12:33:14.214715437 +0000 ++++ ./scripts/brp-suse 2014-08-04 12:33:14.214715437 +0000 @@ -0,0 +1,13 @@ +#! /bin/sh + diff --git a/buildidprov.diff b/buildidprov.diff index fd5b417..6906257 100644 --- a/buildidprov.diff +++ b/buildidprov.diff @@ -9,30 +9,6 @@ Users can therefore ask zypper to install the correct debuginfo package with: zypper install -C "debuginfo(build-id) = c63cb23876c5fa85f36beaff58f8557e1bf22517" ---- ./autodeps/linux.prov.orig 2011-05-11 15:58:28.000000000 +0000 -+++ ./autodeps/linux.prov 2011-05-11 15:59:31.000000000 +0000 -@@ -5,6 +5,9 @@ - IFS=$'\n' - filelist=($(cat)) - -+debuginfolist=($(printf "%s\n" "${filelist[@]}" | grep "/usr/lib/debug/")) -+filelist=($(printf "%s\n" "${filelist[@]}" | grep -v "/usr/lib/debug/")) -+ - solist=($(printf "%s\n" "${filelist[@]}" | grep "\\.so" | grep -v "^/lib/ld.so" | \ - tr '\n' '\0' | xargs -0 -r file -L | grep "ELF.*shared object" | \ - cut -d: -f1)) -@@ -71,6 +74,11 @@ done | sort -u - printf "%s\n" "${firmwarelist[@]}" | /usr/lib/rpm/firmware.prov | sort -u - - # -+# --- debuginfo files -+[ -x /usr/lib/rpm/debuginfo.prov -a -n "$debuginfolist" ] && -+ printf "%s\n" "${debuginfolist[@]}" | /usr/lib/rpm/debuginfo.prov | sort -u -+ -+# - # --- Mono exes/dlls - : ${MONO_PREFIX=/usr} - if [ -x $MONO_PREFIX/bin/mono -a -n "$monolist" ] ; then --- ./macros.in.orig 2011-05-11 15:59:08.000000000 +0000 +++ ./macros.in 2011-05-11 15:59:31.000000000 +0000 @@ -182,7 +182,8 @@ diff --git a/debugsubpkg.diff b/debugsubpkg.diff index fb2c76f..14aefe5 100644 --- a/debugsubpkg.diff +++ b/debugsubpkg.diff @@ -1,7 +1,7 @@ Create a debuginfo package for each subpackage. ---- ./build/files.c.orig 2014-08-18 12:37:19.151934240 +0000 -+++ ./build/files.c 2014-08-18 12:48:48.106395561 +0000 +--- ./build/files.c.orig 2014-06-30 08:47:13.928503700 +0000 ++++ ./build/files.c 2014-09-16 11:52:51.708609583 +0000 @@ -21,6 +21,10 @@ #include #include @@ -12,8 +12,8 @@ Create a debuginfo package for each subpackage. + #include "rpmio/rpmio_internal.h" /* XXX rpmioSlurp */ #include "misc/fts.h" - #include "lib/cpio.h" -@@ -2084,13 +2088,241 @@ exit: + #include "lib/rpmfi_internal.h" /* XXX fi->apath */ +@@ -2031,13 +2035,236 @@ exit: return rc; } @@ -145,10 +145,10 @@ Create a debuginfo package for each subpackage. + + elf_version(EV_CURRENT); + a = headerGetString(pkg->header, RPMTAG_ARCH); -+ if (strcmp(a, "noarch") != 0 && strcmp(a, "src") != 0 && strcmp(a, "nosrc") != 0) ++ if (strcmp(a, "noarch") != 0) + { + Package dbg; -+ rpmfi fi = pkg->cpioList; ++ rpmfi fi = rpmfilesIter(pkg->cpioList, RPMFI_ITER_FWD); + char tmp[1024]; + const char *name; + ARGV_t files = NULL; @@ -156,23 +156,20 @@ Create a debuginfo package for each subpackage. + + /* Check if the current package has files with debug info + and record them. */ -+ fi = rpmfiInit (fi, 0); -+ while (rpmfiNext (fi) >= 0) ++ fi = rpmfiInit(fi, 0); ++ while (rpmfiNext(fi) >= 0) + { -+ const char *base; + int i; -+ unsigned char *build_id; ++ unsigned char *build_id = NULL; + size_t build_id_size = 0; + struct stat sbuf; + -+ name = rpmfiFN (fi); -+ /* Skip leading buildroot. */ -+ base = name + strlen (buildroot); ++ name = rpmfiFN(fi); + /* Pre-pend %buildroot/usr/lib/debug and append .debug. */ -+ snprintf (tmp, 1024, "%s/usr/lib/debug%s.debug", -+ buildroot, base); ++ snprintf(tmp, 1024, "%s/usr/lib/debug%s.debug", ++ buildroot, name); + /* If that file exists we have debug information for it. */ -+ if (access (tmp, F_OK) != 0) ++ if (access(tmp, F_OK) != 0) + continue; + + /* Append the file list preamble. */ @@ -182,17 +179,17 @@ Create a debuginfo package for each subpackage. + argvAdd(&files, "%dir /usr/lib/debug"); + } + /* Add the files main debug-info file. */ -+ snprintf (tmp, 1024, "/usr/lib/debug/%s.debug", base); ++ snprintf(tmp, 1024, "/usr/lib/debug/%s.debug", name); + argvAdd(&files, tmp); + ++ snprintf(tmp, 1024, "%s%s", buildroot, name); + /* Do not bother to check build-ids for symbolic links. + We'll handle them for the link target. */ -+ if (lstat (name, &sbuf) == -1 -+ || S_ISLNK (sbuf.st_mode)) ++ if (lstat(tmp, &sbuf) == -1 || S_ISLNK(sbuf.st_mode)) + continue; + + /* Try to gather the build-id from the binary. */ -+ if (getELFBuildId (name, &build_id, &build_id_size) == -1) ++ if (getELFBuildId(tmp, &build_id, &build_id_size) == -1) + continue; + + /* If we see build-id links for the first time add the @@ -202,15 +199,15 @@ Create a debuginfo package for each subpackage. + + /* From the build-id construct the two links pointing back + to the debug information file and the binary. */ -+ snprintf (tmp, 1024, "/usr/lib/debug/.build-id/%02x/", ++ snprintf(tmp, 1024, "/usr/lib/debug/.build-id/%02x/", + build_id[0]); + for (i = 1; i < build_id_size; ++i) -+ sprintf (tmp + strlen (tmp), "%02x", build_id[i]); ++ sprintf(tmp + strlen(tmp), "%02x", build_id[i]); + argvAdd(&files, tmp); -+ sprintf (tmp + strlen (tmp), ".debug"); ++ sprintf(tmp + strlen(tmp), ".debug"); + argvAdd(&files, tmp); + -+ free (build_id); ++ free(build_id); + } + + /* If there are debuginfo files for this package add a @@ -218,21 +215,19 @@ Create a debuginfo package for each subpackage. + if (files) + { + dbg = newPackage(NULL, spec->pool, &spec->packages); -+ headerNVR (pkg->header, &name, NULL, NULL); ++ headerNVR(pkg->header, &name, NULL, NULL); + /* Set name, summary and group. */ -+ snprintf (tmp, 1024, "%s-debuginfo", name); ++ snprintf(tmp, 1024, "%s-debuginfo", name); + headerPutString(dbg->header, RPMTAG_NAME, tmp); -+ snprintf (tmp, 1024, "Debug information for package %s", name); ++ snprintf(tmp, 1024, "Debug information for package %s", name); + headerPutString(dbg->header, RPMTAG_SUMMARY, tmp); -+ snprintf (tmp, 1024, "This package provides debug information for package %s.\n" ++ snprintf(tmp, 1024, "This package provides debug information for package %s.\n" + "Debug information is useful when developing applications that use this\n" + "package or when debugging this package.", name); + headerPutString(dbg->header, RPMTAG_DESCRIPTION, tmp); + headerPutString(dbg->header, RPMTAG_GROUP, "Development/Debug"); + /* Inherit other tags from parent. */ -+ headerCopyTags (pkg->header, dbg->header, copyTagsForDebug); -+ -+ /* Add self-provides */ ++ headerCopyTags(pkg->header, dbg->header, copyTagsForDebug); + dbg->ds = rpmdsThis(dbg->header, RPMTAG_REQUIRENAME, RPMSENSE_EQUAL); + addPackageProvides(dbg); + @@ -255,7 +250,7 @@ Create a debuginfo package for each subpackage. genSourceRpmName(spec); for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) { -@@ -2108,8 +2340,12 @@ rpmRC processBinaryFiles(rpmSpec spec, r +@@ -2055,8 +2282,12 @@ rpmRC processBinaryFiles(rpmSpec spec, r rpmlog(RPMLOG_NOTICE, _("Processing files: %s\n"), nvr); free(nvr); @@ -270,35 +265,8 @@ Create a debuginfo package for each subpackage. goto exit; a = headerGetString(pkg->header, RPMTAG_ARCH); ---- ./build/parseSpec.c.orig 2014-08-18 12:44:49.564619395 +0000 -+++ ./build/parseSpec.c 2014-08-18 12:44:59.187569649 +0000 -@@ -503,7 +503,7 @@ static void initSourceHeader(rpmSpec spe - } - - /* Add extra provides to package. */ --static void addPackageProvides(Package pkg) -+void addPackageProvides(Package pkg) - { - const char *arch, *name; - char *evr, *isaprov; ---- ./build/rpmbuild_internal.h.orig 2014-08-18 12:43:17.461092324 +0000 -+++ ./build/rpmbuild_internal.h 2014-08-18 12:44:25.578739914 +0000 -@@ -425,6 +425,13 @@ int addReqProv(Package pkg, rpmTagVal ta - uint32_t index); - - /** \ingroup rpmbuild -+ * Add self-provides to package. -+ * @param pkg package -+ */ -+RPM_GNUC_INTERNAL -+void addPackageProvides(Package pkg); -+ -+/** \ingroup rpmbuild - * Add rpmlib feature dependency. - * @param pkg package - * @param feature rpm feature name (i.e. "rpmlib(Foo)" for feature Foo) ---- ./macros.in.orig 2014-08-18 12:37:19.206933957 +0000 -+++ ./macros.in 2014-08-18 12:37:30.648875217 +0000 +--- ./macros.in.orig 2014-09-16 11:44:58.450834101 +0000 ++++ ./macros.in 2014-09-16 11:45:01.185821119 +0000 @@ -186,24 +186,10 @@ # Template for debug information sub-package. %debug_package \ @@ -324,8 +292,8 @@ Create a debuginfo package for each subpackage. %description debugsource\ This package provides debug sources for package %{name}.\ Debug sources are useful when developing applications that use this\ ---- ./scripts/find-debuginfo.sh.orig 2014-08-18 12:37:19.201933983 +0000 -+++ ./scripts/find-debuginfo.sh 2014-08-18 12:37:30.648875217 +0000 +--- ./scripts/find-debuginfo.sh.orig 2014-09-16 11:44:58.444834129 +0000 ++++ ./scripts/find-debuginfo.sh 2014-09-16 11:45:01.186821129 +0000 @@ -149,6 +149,11 @@ debug_link() # Provide .2, .3, ... symlinks to all filename instances of this build-id. make_id_dup_link() diff --git a/exportoldtags.diff b/exportoldtags.diff deleted file mode 100644 index c8ba312..0000000 --- a/exportoldtags.diff +++ /dev/null @@ -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) */ diff --git a/findksyms.diff b/findksyms.diff index 3efc1a0..613302a 100644 --- a/findksyms.diff +++ b/findksyms.diff @@ -1,7 +1,25 @@ SUSE specific kernel provides/requires scripts ---- scripts/find-provides.ksyms.orig 2013-07-12 14:08:40.000000000 +0000 -+++ scripts/find-provides.ksyms 2013-07-12 14:08:54.000000000 +0000 +--- ./scripts/Makefile.am.orig 2014-08-04 12:34:11.656463310 +0000 ++++ ./scripts/Makefile.am 2014-08-04 12:34:15.063448350 +0000 +@@ -16,6 +16,7 @@ EXTRA_DIST = \ + tcl.req tgpg vpkg-provides.sh \ + find-requires find-provides \ + find-requires.php find-provides.php \ ++ find-requires.ksyms find-provides.ksyms \ + find-php-provides find-php-requires \ + mono-find-requires mono-find-provides \ + ocaml-find-requires.sh ocaml-find-provides.sh \ +@@ -33,6 +34,7 @@ rpmconfig_SCRIPTS = \ + check-buildroot check-rpaths check-rpaths-worker \ + find-lang.sh find-requires find-provides \ + perl.prov perl.req perldeps.pl pythondeps.sh osgideps.pl \ ++ find-requires.ksyms find-provides.ksyms \ + mono-find-requires mono-find-provides \ + pkgconfigdeps.sh libtooldeps.sh \ + ocaml-find-requires.sh ocaml-find-provides.sh \ +--- ./scripts/find-provides.ksyms.orig 2014-08-04 12:34:15.062448349 +0000 ++++ ./scripts/find-provides.ksyms 2014-08-04 12:34:15.062448349 +0000 @@ -0,0 +1,17 @@ +#! /bin/bash + @@ -20,8 +38,8 @@ SUSE specific kernel provides/requires scripts + esac +done \ +| sort -u ---- scripts/find-requires.ksyms.orig 2013-07-12 14:08:45.000000000 +0000 -+++ scripts/find-requires.ksyms 2013-07-12 14:08:33.000000000 +0000 +--- ./scripts/find-requires.ksyms.orig 2014-08-04 12:34:15.062448349 +0000 ++++ ./scripts/find-requires.ksyms 2014-08-04 12:34:15.062448349 +0000 @@ -0,0 +1,15 @@ +#! /bin/bash + @@ -38,21 +56,3 @@ SUSE specific kernel provides/requires scripts + esac +done \ +| sort -u ---- scripts/Makefile.am -+++ scripts/Makefile.am -@@ -15,6 +15,7 @@ - rpmdb_loadcvt rpm.daily rpm.log rpm.supp rpm2cpio.sh \ - tcl.req tgpg vpkg-provides.sh \ - find-requires.php find-provides.php \ -+ find-requires.ksyms find-provides.ksyms \ - find-php-provides find-php-requires \ - mono-find-requires mono-find-provides \ - ocaml-find-requires.sh ocaml-find-provides.sh \ -@@ -30,6 +31,7 @@ - check-buildroot check-rpaths check-rpaths-worker \ - find-lang.sh \ - perl.prov perl.req perldeps.pl pythondeps.sh osgideps.pl \ -+ find-requires.ksyms find-provides.ksyms \ - mono-find-requires mono-find-provides \ - pkgconfigdeps.sh libtooldeps.sh \ - ocaml-find-requires.sh ocaml-find-provides.sh \ diff --git a/findsupplements.diff b/findsupplements.diff deleted file mode 100644 index 9c72057..0000000 --- a/findsupplements.diff +++ /dev/null @@ -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 diff --git a/firmware.diff b/firmware.diff index 13f7bae..21c2ba3 100644 --- a/firmware.diff +++ b/firmware.diff @@ -1,27 +1,3 @@ -Index: autodeps/linux.prov -=================================================================== ---- autodeps/linux.prov.orig 2011-06-08 13:28:10.000000000 +0200 -+++ autodeps/linux.prov 2011-06-08 13:28:51.755445342 +0200 -@@ -11,6 +11,7 @@ solist=($(printf "%s\n" "${filelist[@]}" - pythonlist= - tcllist= - monolist=($(printf "%s\n" "${filelist[@]}" | egrep "\\.(exe|dll)\$")) -+firmwarelist=($(printf "%s\n" "${filelist[@]}" | grep "/lib/firmware/")) - - # - # --- Alpha does not mark 64bit dependencies -@@ -59,6 +60,11 @@ done | sort -u - printf "%s\n" "${tcllist[@]}" | /usr/lib/rpm/tcl.prov | sort -u - - # -+# --- firmware files -+[ -x /usr/lib/rpm/firmware.prov -a -n "$firmwarelist" ] && -+ printf "%s\n" "${firmwarelist[@]}" | /usr/lib/rpm/firmware.prov | sort -u -+ -+# - # --- Mono exes/dlls - : ${MONO_PREFIX=/usr} - if [ -x $MONO_PREFIX/bin/mono -a -n "$monolist" ] ; then Index: scripts/firmware.prov =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 diff --git a/fontprovides.diff b/fontprovides.diff deleted file mode 100644 index a22cb85..0000000 --- a/fontprovides.diff +++ /dev/null @@ -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 "$@" diff --git a/helperenv.diff b/helperenv.diff index 229b756..a87f26d 100644 --- a/helperenv.diff +++ b/helperenv.diff @@ -1,11 +1,11 @@ ---- macros.in.orig 2012-04-18 13:48:07.000000000 +0000 -+++ macros.in 2012-04-18 13:47:41.000000000 +0000 -@@ -515,7 +515,7 @@ posix.setenv("RPMBUILD_SOURCEDIR",rpm.ex +--- ./macros.in.orig 2014-08-04 13:04:51.646383733 +0000 ++++ ./macros.in 2014-08-04 13:04:54.687369977 +0000 +@@ -490,7 +490,7 @@ posix.setenv("RPMBUILD_SOURCEDIR",rpm.ex # %__myattr_exclude_magic exclude by magic regex # %__myattr_exclude_path exclude by path regex # -%_fileattrsdir %{_rpmconfigdir}/fileattrs +%_fileattrsdir %{__set_helper_env}%{_rpmconfigdir}/fileattrs - #============================================================================== - # ---- Database configuration macros. + # This macro defines how much space (in bytes) in package should be + # reserved for gpg signatures during building of a package. If this space is diff --git a/initscriptsprov.diff b/initscriptsprov.diff index fe013a2..40cb0b3 100644 --- a/initscriptsprov.diff +++ b/initscriptsprov.diff @@ -1,15 +1,3 @@ ---- ./autodeps/linux.prov.orig 2014-02-20 12:52:34.012814948 +0000 -+++ ./autodeps/linux.prov 2014-02-20 12:52:40.088814937 +0000 -@@ -101,4 +101,9 @@ fi - [ -x /usr/lib/rpm/gstreamer-provides ] && - printf "%s\n" "${filelist[@]}" | /usr/lib/rpm/gstreamer-provides | sort -u - -+# -+# --- Provides of sysvinit scripts -+[ -x /usr/lib/rpm/sysvinitdeps.sh ] && -+ printf "%s\n" "${filelist[@]}" | /usr/lib/rpm/sysvinitdeps.sh -P | sort -u -+ - exit 0 --- ./scripts/Makefile.am.orig 2014-02-20 12:52:33.971814948 +0000 +++ ./scripts/Makefile.am 2014-02-20 12:52:40.089814937 +0000 @@ -21,6 +21,7 @@ EXTRA_DIST = \ diff --git a/macrosin.diff b/macrosin.diff index f31fb6f..06534c0 100644 --- a/macrosin.diff +++ b/macrosin.diff @@ -1,5 +1,5 @@ ---- ./macros.in.orig 2013-06-10 15:55:10.000000000 +0000 -+++ ./macros.in 2013-07-12 11:53:07.000000000 +0000 +--- ./macros.in.orig 2014-06-27 07:25:43.624470700 +0000 ++++ ./macros.in 2014-08-04 12:38:02.067474055 +0000 @@ -185,22 +185,22 @@ # Template for debug information sub-package. @@ -70,7 +70,7 @@ # # Path to file attribute classifications for automatic dependency -@@ -512,10 +519,10 @@ package or when debugging this package.\ +@@ -519,10 +526,10 @@ package or when debugging this package.\ # Misc BDB tuning options %__dbi_other mp_mmapsize=128Mb mp_size=1Mb @@ -83,7 +83,7 @@ #============================================================================== # ---- GPG/PGP/PGP5 signature macros. -@@ -816,7 +823,7 @@ package or when debugging this package.\ +@@ -823,7 +830,7 @@ package or when debugging this package.\ %_build_vendor %{_host_vendor} %_build_os %{_host_os} %_host @host@ @@ -92,7 +92,7 @@ %_host_cpu @host_cpu@ %_host_vendor @host_vendor@ %_host_os @host_os@ -@@ -980,6 +987,183 @@ done \ +@@ -991,6 +998,183 @@ done \ %python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; import sys; sys.stdout.write(get_python_lib(1))") %python_version %(%{__python} -c "import sys; sys.stdout.write(sys.version[:3])") @@ -276,18 +276,18 @@ #------------------------------------------------------------------------------ # arch macro for all Intel i?86 compatibile processors # (Note: This macro (and it's analogues) will probably be obsoleted when -@@ -990,7 +1174,9 @@ done \ +@@ -1001,7 +1185,9 @@ done \ #------------------------------------------------------------------------------ # arch macro for all supported ARM processors --%arm armv3l armv4b armv4l armv4tl armv5tel armv5tejl armv6l armv7l -+%arm armv3l armv4b armv4l armv4tl armv5b armv5l armv5teb armv5tel armv5tejl armv6l armv6hl armv7l armv7hl -+%arml armv3l armv4l armv5l armv5tel armv6l armv7l armv7hl -+%armb armv4b armv5b armv5teb +-%arm armv3l armv4b armv4l armv4tl armv5tel armv5tejl armv6l armv6hl armv7l armv7hl armv7hnl ++%arm armv3l armv4b armv4l armv4tl armv5b armv5l armv5teb armv5tel armv5tejl armv6l armv6hl armv7l armv7hl armv7hnl ++%arml armv3l armv4l armv5l armv5tel armv6l armv7l armv7hl armv7hnl ++%armb armv4b armv5b armv5teb #------------------------------------------------------------------------------ # arch macro for all supported Sparc processors -@@ -1110,3 +1296,26 @@ end} +@@ -1127,3 +1313,26 @@ end} # \endverbatim #*/ diff --git a/nameversioncompare.diff b/nameversioncompare.diff index d63af57..b2e5f9f 100644 --- a/nameversioncompare.diff +++ b/nameversioncompare.diff @@ -1,9 +1,9 @@ -Also compare the name and not only the version when checking if +Also compare the name/arch and not only the version when checking if two packages are the same. rh#104066 ---- ./lib/depends.c.orig 2012-06-01 10:07:12.000000000 +0000 -+++ ./lib/depends.c 2012-06-01 10:16:13.000000000 +0000 -@@ -144,6 +144,24 @@ static int skipColor(rpm_color_t tscolor +--- ./lib/depends.c.orig 2014-06-26 06:51:54.163820067 +0000 ++++ ./lib/depends.c 2014-08-04 12:22:24.030575105 +0000 +@@ -158,6 +158,24 @@ static int skipColor(rpm_color_t tscolor return tscolor && color && ocolor && !(color & ocolor); } @@ -26,16 +26,14 @@ two packages are the same. rh#104066 +} + /* Add erase elements for older packages of same color (if any). */ - static int addUpgradeErasures(rpmts ts, rpm_color_t tscolor, + static int addSelfErasures(rpmts ts, rpm_color_t tscolor, int op, rpmte p, rpm_color_t hcolor, Header h) -@@ -157,8 +175,8 @@ static int addUpgradeErasures(rpmts ts, +@@ -172,7 +190,7 @@ static int addSelfErasures(rpmts ts, rpm if (skipColor(tscolor, hcolor, headerGetNumber(oh, RPMTAG_HEADERCOLOR))) continue; -- /* Skip packages that contain identical NEVR. */ -- if (rpmVersionCompare(h, oh) == 0) -+ /* Skip packages that contain identical NEVRA. */ -+ if (rpmNameVersionCompare(h, oh) == 0) - continue; +- cmp = rpmVersionCompare(h, oh); ++ cmp = rpmNameVersionCompare(h, oh); - if (removePackage(ts, oh, p)) { + /* On upgrade, skip packages that contain identical NEVR. */ + if ((op == RPMTE_UPGRADE) && (cmp == 0)) diff --git a/newweakdeps.diff b/newweakdeps.diff deleted file mode 100644 index 86016d3..0000000 --- a/newweakdeps.diff +++ /dev/null @@ -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 diff --git a/noposttrans.diff b/noposttrans.diff deleted file mode 100644 index 57cc69d..0000000 --- a/noposttrans.diff +++ /dev/null @@ -1,115 +0,0 @@ -Author: Panu Matilainen -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); diff --git a/platformin.diff b/platformin.diff index 870ee9f..de0da97 100644 --- a/platformin.diff +++ b/platformin.diff @@ -1,7 +1,5 @@ -SUSE specific platform changes. - ---- ./platform.in.orig 2014-09-05 11:49:01.000000000 +0000 -+++ ./platform.in 2014-09-08 16:43:35.250660580 +0000 +--- ./platform.in.orig 2014-06-26 06:51:54.822818260 +0000 ++++ ./platform.in 2014-08-04 12:38:55.389245494 +0000 @@ -29,7 +29,7 @@ %_exec_prefix @exec_prefix@ %_bindir @bindir@ @@ -20,7 +18,7 @@ SUSE specific platform changes. # Deprecated misspelling, present for backwards compatibility. %_initrddir %{_initddir} %_rundir @RUNDIR@ -@@ -79,3 +79,21 @@ +@@ -83,3 +83,21 @@ @apple@# @apple@%_use_internal_dependency_generator 0 @apple@%__so dylib diff --git a/psm-errno.diff b/psm-errno.diff deleted file mode 100644 index 5db6ef2..0000000 --- a/psm-errno.diff +++ /dev/null @@ -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 ") : ""), diff --git a/python3-rpm.spec b/python3-rpm.spec index 4d65c0d..0fb1a25 100644 --- a/python3-rpm.spec +++ b/python3-rpm.spec @@ -17,7 +17,7 @@ Name: python3-rpm -Version: 4.11.3 +Version: 4.12.0 Release: 0 Summary: Python Bindings for Manipulating RPM Packages License: GPL-2.0+ diff --git a/pythondeps.diff b/pythondeps.diff deleted file mode 100644 index af85219..0000000 --- a/pythondeps.diff +++ /dev/null @@ -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. diff --git a/repackage-nomd5.diff b/repackage-nomd5.diff index 52f22bf..34e4b3c 100644 --- a/repackage-nomd5.diff +++ b/repackage-nomd5.diff @@ -1,32 +1,18 @@ -Don't complain about a bad md5 sum for repackaged rpms. - ---- ./lib/psm.c.orig 2013-07-12 12:05:15.000000000 +0000 -+++ ./lib/psm.c 2013-07-12 12:07:59.000000000 +0000 -@@ -813,12 +813,17 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkg - rpmpsmNotify(psm, RPMCALLBACK_INST_PROGRESS, 0); - - if (rpmfiFC(fi) > 0 && !(rpmtsFlags(ts) & RPMTRANS_FLAG_JUSTDB)) { -+ rpmtransFlags oldtsflags; - FD_t payload = rpmtePayload(psm->te); - if (payload == NULL) { - rc = RPMRC_FAIL; - break; - } - -+ 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); - } +--- ./lib/psm.c.orig 2014-08-04 12:51:13.219051031 +0000 ++++ ./lib/psm.c 2014-08-04 12:57:38.294335406 +0000 +@@ -673,8 +673,15 @@ static rpmRC rpmpsmUnpack(rpmpsm psm) + 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; + } + } diff --git a/rpm-4.11.3.tar.bz2 b/rpm-4.11.3.tar.bz2 deleted file mode 100644 index e8ec99f..0000000 --- a/rpm-4.11.3.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7da2771a7312f149d326badce97d61ff7ecb0940692acbac29675357ae0e0b03 -size 3907544 diff --git a/rpm-4.12.0.tar.bz2 b/rpm-4.12.0.tar.bz2 new file mode 100644 index 0000000..623a0af --- /dev/null +++ b/rpm-4.12.0.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:770d5cd1aa9430affa6ddd336a81dae79704962478f6b336d5b694c3e02113a2 +size 4125567 diff --git a/rpm-deptracking.patch b/rpm-deptracking.patch index ed83884..367399f 100644 --- a/rpm-deptracking.patch +++ b/rpm-deptracking.patch @@ -1,8 +1,6 @@ -Index: macros.in -=================================================================== ---- macros.in.orig 2011-12-09 13:21:58.078688958 +0100 -+++ macros.in 2011-12-09 13:21:58.502668839 +0100 -@@ -920,7 +920,8 @@ posix.setenv("RPMBUILD_SOURCEDIR",rpm.ex +--- ./macros.in.orig 2014-08-04 13:03:05.948860909 +0000 ++++ ./macros.in 2014-08-04 13:03:24.830775270 +0000 +@@ -885,7 +885,8 @@ posix.setenv("RPMBUILD_SOURCEDIR",rpm.ex --localstatedir=%{_localstatedir} \\\ --sharedstatedir=%{_sharedstatedir} \\\ --mandir=%{_mandir} \\\ @@ -11,4 +9,4 @@ Index: macros.in + --disable-dependency-tracking #------------------------------------------------------------------------------ - # The make install analogue of %configure for modern autotools: + # The "make" analogue, hiding the _smp_mflags magic from specs diff --git a/rpm-gst-provides.patch b/rpm-gst-provides.patch deleted file mode 100644 index 7c4fe6c..0000000 --- a/rpm-gst-provides.patch +++ /dev/null @@ -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 diff --git a/rpm-python.spec b/rpm-python.spec index ab2080d..e4b4bdf 100644 --- a/rpm-python.spec +++ b/rpm-python.spec @@ -17,7 +17,7 @@ Name: rpm-python -Version: 4.11.3 +Version: 4.12.0 Release: 0 #!BuildIgnore: rpmlint-Factory Summary: Python Bindings for Manipulating RPM Packages diff --git a/rpm.changes b/rpm.changes index 96d747f..5f9e8ee 100644 --- a/rpm.changes +++ b/rpm.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Tue Sep 16 13:55:09 CEST 2014 - mls@suse.de + +- update to rpm-4.12.0 + * weakdeps support is now upstream + * new optional payload format to support files > 4GB + * lots of cleanups all over the codebase +- dropped patches: + autodeps.diff, psm-errno.diff, exportoldtags.diff, pythondeps.diff, + newweakdeps.diff, findsupplements.diff, rpm-gst-provides.patch, + noposttrans.diff, fontprovides.diff + ------------------------------------------------------------------- Mon Sep 8 18:51:28 CEST 2014 - mls@suse.de diff --git a/rpm.spec b/rpm.spec index 0e76df2..d016fbc 100644 --- a/rpm.spec +++ b/rpm.spec @@ -47,7 +47,7 @@ PreReq: %fillup_prereq Summary: The RPM Package Manager License: GPL-2.0+ Group: System/Packages -Version: 4.11.3 +Version: 4.12.0 Release: 0 Source: http://rpm.org/releases/rpm-4.11.x/rpm-%{version}.tar.bz2 Source1: RPM-HOWTO.tar.bz2 @@ -62,7 +62,6 @@ Source12: baselibs.conf Patch1: beecrypt-4.1.2.diff Patch2: db.diff # quilt patches start here -Patch10: newweakdeps.diff Patch11: debugedit.diff Patch13: ignore-auxv.diff Patch12: localetag.diff @@ -74,7 +73,6 @@ Patch18: refreshtestarch.diff Patch19: rpmrctests.diff Patch20: waitlock.diff Patch21: suspendlock.diff -Patch23: autodeps.diff Patch24: brp.diff Patch25: brpcompress.diff Patch26: checkfilesnoinfodir.diff @@ -112,9 +110,6 @@ Patch58: lazystatfs.diff Patch59: repackage-nomd5.diff Patch60: safeugid.diff Patch61: noprereqdeprec.diff -Patch62: pythondeps.diff -Patch63: fontprovides.diff -Patch64: rpm-gst-provides.patch Patch65: initscriptsprov.diff Patch66: remove-translations.diff Patch67: headeradddb.diff @@ -122,7 +117,6 @@ Patch68: dbprivate.diff Patch69: nobuildcolor.diff Patch70: fileattrs.diff Patch71: nomagiccheck.diff -Patch72: findsupplements.diff Patch73: assumeexec.diff Patch74: mono-find-requires.diff Patch75: rpm-deptracking.patch @@ -130,13 +124,10 @@ Patch76: python3-abi-kind.diff Patch77: langnoc.diff Patch78: headerchk2.diff Patch79: helperenv.diff -Patch80: psm-errno.diff -Patch82: noposttrans.diff Patch85: brp-compress-no-img.patch Patch92: find-lang-python.patch Patch93: weakdepscompat.diff Patch94: checksepwarn.diff -Patch95: exportoldtags.diff Patch6464: auto-config-update-aarch64-ppc64le.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build # @@ -216,15 +207,15 @@ ln -s beecrypt-4.1.2 beecrypt chmod -R u+w db/* rm -f rpmdb/db.h %patch -P 1 -P 2 -%patch -P 10 -P 11 -P 12 -P 13 -P 14 -P 15 -P 16 -P 17 -P 18 -P 19 -%patch -P 20 -P 21 -P 23 -P 24 -P 25 -P 26 -P 27 -P 28 -P 29 +%patch -P 11 -P 12 -P 13 -P 14 -P 15 -P 16 -P 17 -P 18 -P 19 +%patch -P 20 -P 21 -P 24 -P 25 -P 26 -P 27 -P 28 -P 29 %patch -P 30 -P 31 -P 32 -P 33 -P 34 -P 35 -P 36 -P 37 -P 38 -P 39 %patch -P 41 -P 42 -P 43 -P 44 -P 45 -P 46 -P 47 -P 48 -P 49 %patch -P 50 -P 51 -P 52 -P 53 -P 54 -P 55 -P 56 -P 57 -P 58 -P 59 -%patch -P 60 -P 61 -P 62 -P 63 -P 64 -P 65 -P 66 -P 67 -P 68 -P 69 -%patch -P 70 -P 71 -P 72 -P 73 -P 74 -P 75 -P 76 -P 77 -P 78 -P 79 -%patch -P 80 -P 82 -P 85 -%patch -P 92 -P 93 -P 94 -P 95 +%patch -P 60 -P 61 -P 65 -P 66 -P 67 -P 68 -P 69 +%patch -P 70 -P 71 -P 73 -P 74 -P 75 -P 76 -P 77 -P 78 -P 79 +%patch -P 85 +%patch -P 92 -P 93 -P 94 %ifarch aarch64 ppc64le %patch6464 @@ -271,6 +262,7 @@ sed -i -e 's,{PYTHON_VERSION}mu,{PYTHON_VERSION}mu python${PYTHON_VERSION}m,' co --libdir=%{_libdir} --sysconfdir=/etc --localstatedir=/var --with-lua \ --with-vendor=suse \ --with-rundir=/run \ +--without-archive \ --with-selinux --with-internal-beecrypt \ --with-acl --with-cap --enable-shared %{?with_python: --enable-python} $BUILDTARGET diff --git a/rpmrc.diff b/rpmrc.diff index 0ddae67..1475dc5 100644 --- a/rpmrc.diff +++ b/rpmrc.diff @@ -1,5 +1,5 @@ ---- ./rpmrc.in.orig 2014-09-05 11:47:15.000000000 +0000 -+++ ./rpmrc.in 2014-09-08 16:44:47.547337670 +0000 +--- ./rpmrc.in.orig 2014-06-27 07:25:43.624470700 +0000 ++++ ./rpmrc.in 2014-08-04 12:44:21.192842515 +0000 @@ -12,16 +12,16 @@ # "fat" binary with both archs, for Darwin optflags: fat -O2 -g -arch i386 -arch ppc @@ -30,15 +30,15 @@ optflags: m68k -O2 -g -fomit-frame-pointer --optflags: ppc -O2 -g -fsigned-char --optflags: ppc8260 -O2 -g -fsigned-char --optflags: ppc8560 -O2 -g -fsigned-char --optflags: ppc32dy4 -O2 -g -fsigned-char --optflags: ppciseries -O2 -g -fsigned-char --optflags: ppcpseries -O2 -g -fsigned-char --optflags: ppc64 -O2 -g -fsigned-char --optflags: ppc64le -O2 -g -fsigned-char --optflags: ppc64p7 -O3 -mtune=power7 -mcpu=power7 -g -fsigned-char +-optflags: ppc -O2 -g +-optflags: ppc8260 -O2 -g +-optflags: ppc8560 -O2 -g +-optflags: ppc32dy4 -O2 -g +-optflags: ppciseries -O2 -g +-optflags: ppcpseries -O2 -g +-optflags: ppc64 -O2 -g +-optflags: ppc64le -O2 -g +-optflags: ppc64p7 -O3 -mtune=power7 -mcpu=power7 -g +optflags: ppc -O2 -g -m32 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables +optflags: ppc8260 -O2 -g -m32 +optflags: ppc8560 -O2 -g -m32 @@ -54,17 +54,20 @@ optflags: hppa1.0 -O2 -g -mpa-risc-1-0 optflags: hppa1.1 -O2 -g -mpa-risc-1-0 optflags: hppa1.2 -O2 -g -mpa-risc-1-0 -@@ -67,7 +68,9 @@ optflags: armv4tl -O2 -g -march=armv4t +@@ -67,10 +68,10 @@ optflags: armv4tl -O2 -g -march=armv4t optflags: armv5tel -O2 -g -march=armv5te optflags: armv5tejl -O2 -g -march=armv5te optflags: armv6l -O2 -g -march=armv6 +-optflags: armv6hl -O2 -g -march=armv6 -mfloat-abi=hard -mfpu=vfp +optflags: armv6hl -O2 -g -march=armv6 -mfloat-abi=hard -mabi=aapcs-linux + optflags: armv7l -O2 -g -march=armv7 +-optflags: armv7hl -O2 -g -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 +optflags: armv7hl -O2 -g -march=armv7-a -mfloat-abi=hard -mthumb -mabi=aapcs-linux + optflags: armv7hnl -O2 -g -march=armv7-a -mfloat-abi=hard -mfpu=neon optflags: m68k -O2 -g -fomit-frame-pointer - -@@ -79,8 +82,8 @@ optflags: atariclone -O2 -g -fomit-frame +@@ -83,8 +84,8 @@ optflags: atariclone -O2 -g -fomit-frame optflags: milan -O2 -g -fomit-frame-pointer optflags: hades -O2 -g -fomit-frame-pointer @@ -75,17 +78,7 @@ optflags: sh3 -O2 -g optflags: sh4 -O2 -g -mieee -@@ -184,7 +187,9 @@ arch_canon: armv4l: armv4l 12 - arch_canon: armv5tel: armv5tel 12 - arch_canon: armv5tejl: armv5tejl 12 - arch_canon: armv6l: armv6l 12 -+arch_canon: armv6hl: armv6hl 12 - arch_canon: armv7l: armv7l 12 -+arch_canon: armv7hl: armv7hl 12 - - arch_canon: m68kmint: m68kmint 13 - arch_canon: atarist: m68kmint 13 -@@ -248,17 +253,17 @@ os_canon: MacOSX: macosx 21 +@@ -255,17 +256,17 @@ os_canon: MacOSX: macosx 21 ############################################################# # For a given uname().machine, the default build arch @@ -111,17 +104,7 @@ buildarchtranslate: i486: i386 buildarchtranslate: i386: i386 -@@ -297,7 +302,9 @@ buildarchtranslate: armv4tl: armv4tl - buildarchtranslate: armv5tel: armv5tel - buildarchtranslate: armv5tejl: armv5tejl - buildarchtranslate: armv6l: armv6l -+buildarchtranslate: armv6hl: armv6hl - buildarchtranslate: armv7l: armv7l -+buildarchtranslate: armv7hl: armv7hl - - buildarchtranslate: m68k: m68k - -@@ -324,6 +331,15 @@ buildarchtranslate: sh4a: sh4 +@@ -334,6 +335,15 @@ buildarchtranslate: sh4a: sh4 buildarchtranslate: aarch64: aarch64 @@ -137,7 +120,7 @@ ############################################################# # Architecture compatibility -@@ -381,14 +397,20 @@ arch_compat: mipsel: noarch +@@ -391,14 +401,20 @@ arch_compat: mipsel: noarch arch_compat: hppa2.0: hppa1.2 arch_compat: hppa1.2: hppa1.1 arch_compat: hppa1.1: hppa1.0 @@ -160,7 +143,7 @@ arch_compat: armv4tl: armv4l arch_compat: armv4l: armv3l arch_compat: armv3l: noarch -@@ -407,7 +429,7 @@ arch_compat: i370: noarch +@@ -420,7 +436,7 @@ arch_compat: i370: noarch arch_compat: s390: noarch arch_compat: s390x: s390 noarch @@ -169,7 +152,7 @@ arch_compat: x86_64: amd64 em64t athlon noarch arch_compat: amd64: x86_64 em64t athlon noarch -@@ -492,12 +514,15 @@ buildarch_compat: ppc64le: noarch fat +@@ -505,12 +521,15 @@ buildarch_compat: ppc64le: noarch fat buildarch_compat: ppc64pseries: ppc64 buildarch_compat: ppc64iseries: ppc64 buildarch_compat: ppc64p7: ppc64 @@ -185,7 +168,7 @@ buildarch_compat: armv6l: armv5tejl buildarch_compat: armv5tejl: armv5tel buildarch_compat: armv5tel: armv4tl -@@ -508,7 +533,8 @@ buildarch_compat: armv3l: noarch +@@ -525,7 +544,8 @@ buildarch_compat: armv6hl: noarch buildarch_compat: hppa2.0: hppa1.2 buildarch_compat: hppa1.2: hppa1.1 buildarch_compat: hppa1.1: hppa1.0 diff --git a/suspendlock.diff b/suspendlock.diff index 6727481..b89be9a 100644 --- a/suspendlock.diff +++ b/suspendlock.diff @@ -2,18 +2,18 @@ Suspend exclusive database lock when scriptlets get called, allowing read access in scriptlets. Only needed for DB_PRIVATE (aka global) locking. ---- ./lib/backend/db3.c.orig 2012-06-01 10:50:11.000000000 +0000 -+++ ./lib/backend/db3.c 2012-06-01 10:50:19.000000000 +0000 -@@ -628,3 +628,59 @@ int dbiOpen(rpmdb rdb, rpmDbiTagVal rpmt - +--- ./lib/backend/db3.c.orig 2014-08-04 12:25:29.288759808 +0000 ++++ ./lib/backend/db3.c 2014-08-04 12:30:30.829430726 +0000 +@@ -625,6 +625,63 @@ static int dbiFlock(dbiIndex dbi, int mo return rc; } -+ + +int dbiSuspendDBLock(dbiIndex dbi, unsigned int flags) +{ + struct flock l; + int rc = 0; + int fdno = -1; ++ DB * db = dbi->dbi_db; + + if (!dbi->dbi_lockdbfd) + return 0; @@ -21,7 +21,7 @@ locking. + return 0; + if (_lockdbfd == 0) + return 0; -+ if (!(dbi->dbi_db->fd(dbi->dbi_db, &fdno) == 0 && fdno >= 0)) ++ if (!(db->fd(db, &fdno) == 0 && fdno >= 0)) + return 1; + memset(&l, 0, sizeof(l)); + l.l_whence = 0; @@ -40,6 +40,7 @@ locking. + int rc = 0; + int tries; + int fdno = -1; ++ DB * db = dbi->dbi_db; + + if (!dbi->dbi_lockdbfd) + return 0; @@ -47,7 +48,7 @@ locking. + return 0; + if (_lockdbfd == 0) + return 0; -+ if (!(dbi->dbi_db->fd(dbi->dbi_db, &fdno) == 0 && fdno >= 0)) ++ if (!(db->fd(db, &fdno) == 0 && fdno >= 0)) + return 1; + for (tries = 0; tries < 2; tries++) { + memset(&l, 0, sizeof(l)); @@ -64,9 +65,12 @@ locking. + return rc; +} + ---- ./lib/backend/dbi.h.orig 2012-03-20 08:07:25.000000000 +0000 -+++ ./lib/backend/dbi.h 2012-06-01 10:53:43.000000000 +0000 -@@ -90,6 +90,24 @@ struct dbiIndex_s { + int dbiOpen(rpmdb rdb, rpmDbiTagVal rpmtag, dbiIndex * dbip, int flags) + { + const char *dbhome = rpmdbHome(rdb); +--- ./lib/backend/dbi.h.orig 2014-06-26 06:51:54.101820242 +0000 ++++ ./lib/backend/dbi.h 2014-08-04 12:25:29.288759808 +0000 +@@ -92,6 +92,24 @@ struct dbiIndex_s { extern "C" { #endif @@ -91,39 +95,39 @@ locking. RPM_GNUC_INTERNAL /* Globally enable/disable fsync in the backend */ ---- ./lib/psm.c.orig 2012-06-01 10:50:11.000000000 +0000 -+++ ./lib/psm.c 2012-06-01 10:51:34.000000000 +0000 -@@ -419,10 +419,12 @@ static rpmRC runScript(rpmpsm psm, ARGV_ +--- ./lib/psm.c.orig 2014-08-04 12:25:29.289759769 +0000 ++++ ./lib/psm.c 2014-08-04 12:27:04.230340235 +0000 +@@ -291,10 +291,12 @@ static rpmRC runScript(rpmts ts, rpmte t if (sfd == NULL) - sfd = rpmtsScriptFd(psm->ts); + sfd = rpmtsScriptFd(ts); -+ rpmtsSuspendResumeDBLock(psm->ts, 0); - rpmswEnter(rpmtsOp(psm->ts, RPMTS_OP_SCRIPTLETS), 0); ++ rpmtsSuspendResumeDBLock(ts, 0); + rpmswEnter(rpmtsOp(ts, RPMTS_OP_SCRIPTLETS), 0); rc = rpmScriptRun(script, arg1, arg2, sfd, - prefixes, warn_only, selinux); - rpmswExit(rpmtsOp(psm->ts, RPMTS_OP_SCRIPTLETS), 0); -+ rpmtsSuspendResumeDBLock(psm->ts, 1); + prefixes, warn_only, rpmtsPlugins(ts)); + rpmswExit(rpmtsOp(ts, RPMTS_OP_SCRIPTLETS), 0); ++ rpmtsSuspendResumeDBLock(ts, 1); /* Map warn-only errors to "notfound" for script stop callback */ stoprc = (rc != RPMRC_OK && warn_only) ? RPMRC_NOTFOUND : rc; ---- ./lib/rpmdb.c.orig 2012-06-01 10:50:11.000000000 +0000 -+++ ./lib/rpmdb.c 2012-06-01 10:50:19.000000000 +0000 -@@ -769,6 +769,12 @@ int rpmdbSync(rpmdb db) - return dbiForeach(db->_dbi, dbiSync, 0); +--- ./lib/rpmdb.c.orig 2014-08-04 12:25:15.106821818 +0000 ++++ ./lib/rpmdb.c 2014-08-04 12:25:29.289759769 +0000 +@@ -475,6 +475,12 @@ exit: + return rc; } +int rpmdbSuspendResumeDBLock(rpmdb db, int mode) +{ + if (db == NULL) return 0; -+ return dbiForeach(db->_dbi, mode ? dbiResumeDBLock : dbiSuspendDBLock, 0); ++ return dbiForeach(db->db_indexes, db->db_ndbi, mode ? dbiResumeDBLock : dbiSuspendDBLock, 0); +} + static rpmdb newRpmdb(const char * root, const char * home, int mode, int perms, int flags) { ---- ./lib/rpmts.c.orig 2012-03-20 08:07:25.000000000 +0000 -+++ ./lib/rpmts.c 2012-06-01 10:50:19.000000000 +0000 -@@ -95,6 +95,11 @@ int rpmtsOpenDB(rpmts ts, int dbmode) +--- ./lib/rpmts.c.orig 2014-06-26 06:51:54.653818721 +0000 ++++ ./lib/rpmts.c 2014-08-04 12:25:29.289759769 +0000 +@@ -101,6 +101,11 @@ int rpmtsOpenDB(rpmts ts, int dbmode) return rc; } @@ -134,10 +138,10 @@ locking. + int rpmtsInitDB(rpmts ts, int dbmode) { - rpmlock lock = rpmtsAcquireLock(ts); ---- ./lib/rpmts.h.orig 2012-03-20 08:07:25.000000000 +0000 -+++ ./lib/rpmts.h 2012-06-01 10:50:19.000000000 +0000 -@@ -423,6 +423,8 @@ rpmdb rpmtsGetRdb(rpmts ts); + rpmtxn txn = rpmtxnBegin(ts, RPMTXN_WRITE); +--- ./lib/rpmts.h.orig 2014-06-26 06:51:54.655818716 +0000 ++++ ./lib/rpmts.h 2014-08-04 12:25:29.290759730 +0000 +@@ -441,6 +441,8 @@ rpmdb rpmtsGetRdb(rpmts ts); void * rpmtsNotify(rpmts ts, rpmte te, rpmCallbackType what, rpm_loff_t amount, rpm_loff_t total); diff --git a/taggedfileindex.diff b/taggedfileindex.diff index 7fc306d..b434f5b 100644 --- a/taggedfileindex.diff +++ b/taggedfileindex.diff @@ -1,8 +1,9 @@ This used to be the taggedfileindex patch, but it's gone. The remaining part just strips off the tag. ---- ./lib/rpmdb.c.orig 2011-05-11 14:27:32.000000000 +0000 -+++ ./lib/rpmdb.c 2011-05-11 15:14:39.000000000 +0000 -@@ -257,6 +257,9 @@ static int dbt2set(dbiIndex dbi, DBT * d + +--- ./lib/backend/db3.c.orig 2014-08-04 12:45:25.907562115 +0000 ++++ ./lib/backend/db3.c 2014-08-04 12:46:22.225318788 +0000 +@@ -833,6 +833,9 @@ static int dbt2set(dbiIndex dbi, DBT * d _DBSWAP(hdrNum); _DBSWAP(tagNum); } diff --git a/weakdepscompat.diff b/weakdepscompat.diff index 18497b6..9e6b554 100644 --- a/weakdepscompat.diff +++ b/weakdepscompat.diff @@ -1,5 +1,5 @@ ---- ./build/parsePreamble.c.orig 2014-02-25 14:14:15.892041649 +0000 -+++ ./build/parsePreamble.c 2014-02-25 14:14:26.237041631 +0000 +--- ./build/parsePreamble.c.orig 2014-08-04 13:10:07.530953406 +0000 ++++ ./build/parsePreamble.c 2014-08-04 13:10:12.852929355 +0000 @@ -343,6 +343,7 @@ static struct tokenBits_s const installS { "verify", RPMSENSE_SCRIPT_VERIFY }, { "pretrans", RPMSENSE_PRETRANS }, @@ -8,120 +8,3 @@ { NULL, 0 } }; ---- ./build/rpmfc.c.orig 2014-02-25 14:14:15.904041649 +0000 -+++ ./build/rpmfc.c 2014-02-25 14:14:26.238041631 +0000 -@@ -1156,6 +1156,12 @@ static struct DepMsg_s depMsgs[] = { - { "Obsoletes", { "%{?__find_obsoletes}", NULL, NULL, NULL }, - RPMTAG_OBSOLETENAME, RPMTAG_OBSOLETEVERSION, RPMTAG_OBSOLETEFLAGS, - 0, -1 }, -+ { "Enhances", { "%{?__find_enhances}", NULL, NULL, NULL }, -+ RPMTAG_ENHANCENAME, RPMTAG_ENHANCEVERSION, RPMTAG_ENHANCEFLAGS, -+ 0, -1 }, -+ { "Supplements", { "%{?__find_supplements}", NULL, NULL, NULL }, -+ RPMTAG_SUPPLEMENTNAME, RPMTAG_SUPPLEMENTVERSION, RPMTAG_SUPPLEMENTFLAGS, -+ 0, -1 }, - { NULL, { NULL, NULL, NULL, NULL }, 0, 0, 0, 0, 0 } - }; - -@@ -1231,6 +1237,16 @@ static rpmRC rpmfcGenerateDependsHelper( - if (!pkg->autoReq) - continue; - tagflags = RPMSENSE_FIND_REQUIRES; -+ break; -+ case RPMTAG_ENHANCENAME: -+ if (!pkg->autoReq) -+ continue; -+ tagflags = RPMSENSE_FIND_REQUIRES; -+ break; -+ case RPMTAG_SUPPLEMENTNAME: -+ if (!pkg->autoReq) -+ continue; -+ tagflags = RPMSENSE_FIND_REQUIRES; - break; - default: - continue; ---- ./lib/rpmds.c.orig 2014-02-25 14:14:15.834041649 +0000 -+++ ./lib/rpmds.c 2014-02-25 14:14:47.963041593 +0000 -@@ -86,6 +86,14 @@ static int dsType(rpmTagVal tag, - t = "Trigger"; - evr = RPMTAG_TRIGGERVERSION; - f = RPMTAG_TRIGGERFLAGS; -+ } else if (tag == RPMTAG_OLDSUGGESTSNAME) { -+ t = "Oldsuggests"; -+ evr = RPMTAG_OLDSUGGESTSVERSION; -+ f = RPMTAG_OLDSUGGESTSFLAGS; -+ } else if (tag == RPMTAG_OLDENHANCESNAME) { -+ t = "Oldenhances"; -+ evr = RPMTAG_OLDENHANCESVERSION; -+ f = RPMTAG_OLDENHANCESFLAGS; - } else { - rc = 1; - } ---- ./lib/tagexts.c.orig 2014-02-25 14:14:15.839041649 +0000 -+++ ./lib/tagexts.c 2014-02-25 14:18:53.707041158 +0000 -@@ -906,6 +906,34 @@ static int depnevrsTag(Header h, rpmtd t - return (ndeps > 0); - } - -+#define RPMSENSE_STRONG (1 << 27) -+ -+static int depnevrsTagFiltered(Header h, rpmtd td, headerGetFlags hgflags, -+ rpmTagVal tag, int strong) -+{ -+ rpmds ds = rpmdsNew(h, tag, 0); -+ int ndeps = rpmdsCount(ds); -+ -+ if (ndeps > 0) { -+ char **deps = xmalloc(sizeof(*deps) * ndeps); -+ ndeps = 0; -+ while (rpmdsNext(ds) >= 0) { -+ if ((rpmdsFlags(ds) & RPMSENSE_STRONG) == (strong ? RPMSENSE_STRONG : 0)) -+ deps[ndeps++] = rpmdsNewDNEVR(NULL, ds); -+ } -+ if (ndeps) { -+ td->data = deps; -+ td->type = RPM_STRING_ARRAY_TYPE; -+ td->count = ndeps; -+ td->flags |= (RPMTD_ALLOCED | RPMTD_PTR_ALLOCED); -+ } else { -+ _free(deps); -+ } -+ } -+ rpmdsFree(ds); -+ return (ndeps > 0); -+} -+ - static int requirenevrsTag(Header h, rpmtd td, headerGetFlags hgflags) - { - return depnevrsTag(h, td, hgflags, RPMTAG_REQUIRENAME); -@@ -913,22 +941,26 @@ static int requirenevrsTag(Header h, rpm - - static int recommendnevrsTag(Header h, rpmtd td, headerGetFlags hgflags) - { -- return depnevrsTag(h, td, hgflags, RPMTAG_RECOMMENDNAME); -+ return depnevrsTag(h, td, hgflags, RPMTAG_RECOMMENDNAME) || -+ depnevrsTagFiltered(h, td, hgflags, RPMTAG_OLDSUGGESTSNAME, 1); - } - - static int suggestnevrsTag(Header h, rpmtd td, headerGetFlags hgflags) - { -- return depnevrsTag(h, td, hgflags, RPMTAG_SUGGESTNAME); -+ return depnevrsTag(h, td, hgflags, RPMTAG_SUGGESTNAME) || -+ depnevrsTagFiltered(h, td, hgflags, RPMTAG_OLDSUGGESTSNAME, 0); - } - - static int supplementnevrsTag(Header h, rpmtd td, headerGetFlags hgflags) - { -- return depnevrsTag(h, td, hgflags, RPMTAG_SUPPLEMENTNAME); -+ return depnevrsTag(h, td, hgflags, RPMTAG_SUPPLEMENTNAME) || -+ depnevrsTagFiltered(h, td, hgflags, RPMTAG_OLDENHANCESNAME, 1); - } - - static int enhancenevrsTag(Header h, rpmtd td, headerGetFlags hgflags) - { -- return depnevrsTag(h, td, hgflags, RPMTAG_ENHANCENAME); -+ return depnevrsTag(h, td, hgflags, RPMTAG_ENHANCENAME) || -+ depnevrsTagFiltered(h, td, hgflags, RPMTAG_OLDENHANCESNAME, 0); - } - - static int providenevrsTag(Header h, rpmtd td, headerGetFlags hgflags) From 2f047d40983bf5ef8829f51d715a43881ded15cf9b6a02afff903e7506952874 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Schr=C3=B6der?= Date: Wed, 17 Sep 2014 11:05:07 +0000 Subject: [PATCH 2/6] ... OBS-URL: https://build.opensuse.org/package/show/Base:System/rpm?expand=0&rev=339 --- debugsubpkg.diff | 43 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 7 deletions(-) diff --git a/debugsubpkg.diff b/debugsubpkg.diff index 14aefe5..65e040c 100644 --- a/debugsubpkg.diff +++ b/debugsubpkg.diff @@ -1,7 +1,7 @@ Create a debuginfo package for each subpackage. --- ./build/files.c.orig 2014-06-30 08:47:13.928503700 +0000 -+++ ./build/files.c 2014-09-16 11:52:51.708609583 +0000 ++++ ./build/files.c 2014-09-17 11:03:25.001860575 +0000 @@ -21,6 +21,10 @@ #include #include @@ -13,7 +13,7 @@ Create a debuginfo package for each subpackage. #include "rpmio/rpmio_internal.h" /* XXX rpmioSlurp */ #include "misc/fts.h" #include "lib/rpmfi_internal.h" /* XXX fi->apath */ -@@ -2031,13 +2035,236 @@ exit: +@@ -2031,13 +2035,238 @@ exit: return rc; } @@ -228,6 +228,8 @@ Create a debuginfo package for each subpackage. + headerPutString(dbg->header, RPMTAG_GROUP, "Development/Debug"); + /* Inherit other tags from parent. */ + headerCopyTags(pkg->header, dbg->header, copyTagsForDebug); ++ ++ /* Add self-provides */ + dbg->ds = rpmdsThis(dbg->header, RPMTAG_REQUIRENAME, RPMSENSE_EQUAL); + addPackageProvides(dbg); + @@ -250,7 +252,7 @@ Create a debuginfo package for each subpackage. genSourceRpmName(spec); for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) { -@@ -2055,8 +2282,12 @@ rpmRC processBinaryFiles(rpmSpec spec, r +@@ -2055,8 +2284,12 @@ rpmRC processBinaryFiles(rpmSpec spec, r rpmlog(RPMLOG_NOTICE, _("Processing files: %s\n"), nvr); free(nvr); @@ -265,8 +267,35 @@ Create a debuginfo package for each subpackage. goto exit; a = headerGetString(pkg->header, RPMTAG_ARCH); ---- ./macros.in.orig 2014-09-16 11:44:58.450834101 +0000 -+++ ./macros.in 2014-09-16 11:45:01.185821119 +0000 +--- ./build/parseSpec.c.orig 2014-09-17 11:00:45.295614365 +0000 ++++ ./build/parseSpec.c 2014-09-17 11:01:56.371278963 +0000 +@@ -507,7 +507,7 @@ static void initSourceHeader(rpmSpec spe + } + + /* Add extra provides to package. */ +-static void addPackageProvides(Package pkg) ++void addPackageProvides(Package pkg) + { + const char *arch, *name; + char *evr, *isaprov; +--- ./build/rpmbuild_internal.h.orig 2014-08-18 06:59:55.487105642 +0000 ++++ ./build/rpmbuild_internal.h 2014-09-17 11:01:45.138331580 +0000 +@@ -433,6 +433,13 @@ int addReqProv(Package pkg, rpmTagVal ta + + + /** \ingroup rpmbuild ++ * Add self-provides to package. ++ * @param pkg package ++ */ ++RPM_GNUC_INTERNAL ++void addPackageProvides(Package pkg); ++ ++/** \ingroup rpmbuild + * Add rpmlib feature dependency. + * @param pkg package + * @param feature rpm feature name (i.e. "rpmlib(Foo)" for feature Foo) +--- ./macros.in.orig 2014-09-17 11:00:45.299614345 +0000 ++++ ./macros.in 2014-09-17 11:00:50.013592123 +0000 @@ -186,24 +186,10 @@ # Template for debug information sub-package. %debug_package \ @@ -292,8 +321,8 @@ Create a debuginfo package for each subpackage. %description debugsource\ This package provides debug sources for package %{name}.\ Debug sources are useful when developing applications that use this\ ---- ./scripts/find-debuginfo.sh.orig 2014-09-16 11:44:58.444834129 +0000 -+++ ./scripts/find-debuginfo.sh 2014-09-16 11:45:01.186821129 +0000 +--- ./scripts/find-debuginfo.sh.orig 2014-09-17 11:00:45.293614374 +0000 ++++ ./scripts/find-debuginfo.sh 2014-09-17 11:00:50.014592113 +0000 @@ -149,6 +149,11 @@ debug_link() # Provide .2, .3, ... symlinks to all filename instances of this build-id. make_id_dup_link() From 1723a5cbc2060faa8be3767a9c822318a9bf7003d5fb9c4b22b9dde8f80ea483 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Schr=C3=B6der?= Date: Wed, 17 Sep 2014 12:05:17 +0000 Subject: [PATCH 3/6] ... OBS-URL: https://build.opensuse.org/package/show/Base:System/rpm?expand=0&rev=340 --- ignore-auxv.diff | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/ignore-auxv.diff b/ignore-auxv.diff index 6728aa0..b48a338 100644 --- a/ignore-auxv.diff +++ b/ignore-auxv.diff @@ -1,10 +1,10 @@ ---- ./lib/rpmrc.c.orig 2014-02-05 13:04:02.000000000 +0000 -+++ ./lib/rpmrc.c 2014-02-20 12:37:28.209816551 +0000 -@@ -83,10 +83,12 @@ struct rpmOption { +--- ./lib/rpmrc.c.orig 2014-07-03 15:11:48.572096075 +0000 ++++ ./lib/rpmrc.c 2014-09-17 12:04:27.330717791 +0000 +@@ -79,10 +79,12 @@ struct rpmOption { int localize; }; -+#if defined(__linux__) && defined(__powerpc__) ++#if defined(__linux__) && (defined(__powerpc__) || defined(__sparc__) || (defined(__arm__) && defined(__ARM_PCS_VFP))) static struct rpmat_s { const char *platform; uint64_t hwcap; @@ -13,21 +13,21 @@ typedef struct defaultEntry_s { char * name; -@@ -914,7 +916,7 @@ static int is_geode(void) +@@ -936,7 +938,7 @@ static int is_geode(void) #endif -#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 */ -@@ -971,7 +973,7 @@ static void defaultMachine(const char ** +@@ -993,7 +995,7 @@ static void defaultMachine(rpmrcCtx ctx, canonEntry canon; int rc; -#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 */ read_auxv(); #endif From 0e96c3e5b8eae2f38bffc04882fa09d562c2a05a99082f8e13d1e1bdae181d1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Schr=C3=B6der?= Date: Wed, 17 Sep 2014 15:45:38 +0000 Subject: [PATCH 4/6] ... OBS-URL: https://build.opensuse.org/package/show/Base:System/rpm?expand=0&rev=341 --- rpm.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rpm.spec b/rpm.spec index d016fbc..0933e83 100644 --- a/rpm.spec +++ b/rpm.spec @@ -49,7 +49,7 @@ License: GPL-2.0+ Group: System/Packages Version: 4.12.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 Source4: rpm-suse_macros Source5: rpmsort From 1468c16952e85c8621b8e36f44ced0651829cf720fe8b61f5caf4742e62b4659 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Schr=C3=B6der?= Date: Thu, 18 Sep 2014 11:41:36 +0000 Subject: [PATCH 5/6] cherry-pick archivesize fix from upstream OBS-URL: https://build.opensuse.org/package/show/Base:System/rpm?expand=0&rev=342 --- archivesize.diff | 50 ++++++++++++++++++++++++++++++++++++++++++++++++ rpm.changes | 6 ++++++ rpm.spec | 3 ++- 3 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 archivesize.diff diff --git a/archivesize.diff b/archivesize.diff new file mode 100644 index 0000000..90b8887 --- /dev/null +++ b/archivesize.diff @@ -0,0 +1,50 @@ +Fix archive size tag missing cpio trailer size (RhBug:1142949) + +- Fixes regression from commit 7f84a126ab43f2d0163911100b4432364d0952a6 + which causes archive size to be determined before closing the archive + when closing actually writes the cpio trailer into the archive. Thus + RPMTAG_ARCHIVESIZE (and RPMTAG_LONGARCHIVESIZE) are off by the + cpio trailer size in all packages built with rpm 4.12.0 and + pre-releases :( +- Move rpmcpioFree() to rpmfiFree() to allow Tell() on the archive + after closing it, swap to original order of things on build-side. + +index cfb24ef..28834dc 100644 +--- build/pack.c ++++ build/pack.c +@@ -55,13 +55,13 @@ static int rpmPackageFilesArchive(rpmfiles fi, int isSrc, + if (rc == RPMERR_ITER_END) + rc = 0; + +- if (archiveSize) +- *archiveSize = (rc == 0) ? rpmfiArchiveTell(archive) : 0; +- + /* Finish the payload stream */ + if (!rc) + rc = rpmfiArchiveClose(archive); + ++ if (archiveSize) ++ *archiveSize = (rc == 0) ? rpmfiArchiveTell(archive) : 0; ++ + rpmfiFree(archive); + + return rc; +index 49fc2c4..384a6c9 100644 +--- lib/rpmfi.c ++++ lib/rpmfi.c +@@ -1199,6 +1199,7 @@ rpmfi rpmfiFree(rpmfi fi) + fi->fn = _free(fi->fn); + fi->ofn = _free(fi->ofn); + fi->found = _free(fi->found); ++ fi->archive = rpmcpioFree(fi->archive); + + free(fi); + return NULL; +@@ -1734,7 +1735,6 @@ int rpmfiArchiveClose(rpmfi fi) + if (fi == NULL) + return -1; + int rc = rpmcpioClose(fi->archive); +- fi->archive = rpmcpioFree(fi->archive); + return rc; + } + diff --git a/rpm.changes b/rpm.changes index 5f9e8ee..49d0beb 100644 --- a/rpm.changes +++ b/rpm.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Sep 18 13:40:43 CEST 2014 - mls@suse.de + +- cherry-pick archivesize fix from upstream + new patch: archivesize.diff + ------------------------------------------------------------------- Tue Sep 16 13:55:09 CEST 2014 - mls@suse.de diff --git a/rpm.spec b/rpm.spec index 0933e83..96e576b 100644 --- a/rpm.spec +++ b/rpm.spec @@ -128,6 +128,7 @@ Patch85: brp-compress-no-img.patch Patch92: find-lang-python.patch Patch93: weakdepscompat.diff Patch94: checksepwarn.diff +Patch95: archivesize.diff Patch6464: auto-config-update-aarch64-ppc64le.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build # @@ -215,7 +216,7 @@ rm -f rpmdb/db.h %patch -P 60 -P 61 -P 65 -P 66 -P 67 -P 68 -P 69 %patch -P 70 -P 71 -P 73 -P 74 -P 75 -P 76 -P 77 -P 78 -P 79 %patch -P 85 -%patch -P 92 -P 93 -P 94 +%patch -P 92 -P 93 -P 94 -P 95 %ifarch aarch64 ppc64le %patch6464 From df9abe086bfc1095acfc13347baf22a8d615cd9ba05f9cd5835e96e8a5c09e6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Schr=C3=B6der?= Date: Thu, 18 Sep 2014 13:50:29 +0000 Subject: [PATCH 6/6] update to rpm-4.12.0.1 OBS-URL: https://build.opensuse.org/package/show/Base:System/rpm?expand=0&rev=343 --- archivesize.diff | 50 -------------------------------------------- python3-rpm.spec | 2 +- rpm-4.12.0.1.tar.bz2 | 3 +++ rpm-4.12.0.tar.bz2 | 3 --- rpm-python.spec | 2 +- rpm.changes | 4 ++-- rpm.spec | 5 ++--- 7 files changed, 9 insertions(+), 60 deletions(-) delete mode 100644 archivesize.diff create mode 100644 rpm-4.12.0.1.tar.bz2 delete mode 100644 rpm-4.12.0.tar.bz2 diff --git a/archivesize.diff b/archivesize.diff deleted file mode 100644 index 90b8887..0000000 --- a/archivesize.diff +++ /dev/null @@ -1,50 +0,0 @@ -Fix archive size tag missing cpio trailer size (RhBug:1142949) - -- Fixes regression from commit 7f84a126ab43f2d0163911100b4432364d0952a6 - which causes archive size to be determined before closing the archive - when closing actually writes the cpio trailer into the archive. Thus - RPMTAG_ARCHIVESIZE (and RPMTAG_LONGARCHIVESIZE) are off by the - cpio trailer size in all packages built with rpm 4.12.0 and - pre-releases :( -- Move rpmcpioFree() to rpmfiFree() to allow Tell() on the archive - after closing it, swap to original order of things on build-side. - -index cfb24ef..28834dc 100644 ---- build/pack.c -+++ build/pack.c -@@ -55,13 +55,13 @@ static int rpmPackageFilesArchive(rpmfiles fi, int isSrc, - if (rc == RPMERR_ITER_END) - rc = 0; - -- if (archiveSize) -- *archiveSize = (rc == 0) ? rpmfiArchiveTell(archive) : 0; -- - /* Finish the payload stream */ - if (!rc) - rc = rpmfiArchiveClose(archive); - -+ if (archiveSize) -+ *archiveSize = (rc == 0) ? rpmfiArchiveTell(archive) : 0; -+ - rpmfiFree(archive); - - return rc; -index 49fc2c4..384a6c9 100644 ---- lib/rpmfi.c -+++ lib/rpmfi.c -@@ -1199,6 +1199,7 @@ rpmfi rpmfiFree(rpmfi fi) - fi->fn = _free(fi->fn); - fi->ofn = _free(fi->ofn); - fi->found = _free(fi->found); -+ fi->archive = rpmcpioFree(fi->archive); - - free(fi); - return NULL; -@@ -1734,7 +1735,6 @@ int rpmfiArchiveClose(rpmfi fi) - if (fi == NULL) - return -1; - int rc = rpmcpioClose(fi->archive); -- fi->archive = rpmcpioFree(fi->archive); - return rc; - } - diff --git a/python3-rpm.spec b/python3-rpm.spec index 0fb1a25..a78e9c5 100644 --- a/python3-rpm.spec +++ b/python3-rpm.spec @@ -17,7 +17,7 @@ Name: python3-rpm -Version: 4.12.0 +Version: 4.12.0.1 Release: 0 Summary: Python Bindings for Manipulating RPM Packages License: GPL-2.0+ diff --git a/rpm-4.12.0.1.tar.bz2 b/rpm-4.12.0.1.tar.bz2 new file mode 100644 index 0000000..25cd4d7 --- /dev/null +++ b/rpm-4.12.0.1.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77ddd228fc332193c874aa0b424f41db1ff8b7edbb6a338703ef747851f50229 +size 4129093 diff --git a/rpm-4.12.0.tar.bz2 b/rpm-4.12.0.tar.bz2 deleted file mode 100644 index 623a0af..0000000 --- a/rpm-4.12.0.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:770d5cd1aa9430affa6ddd336a81dae79704962478f6b336d5b694c3e02113a2 -size 4125567 diff --git a/rpm-python.spec b/rpm-python.spec index e4b4bdf..6b8e58c 100644 --- a/rpm-python.spec +++ b/rpm-python.spec @@ -17,7 +17,7 @@ Name: rpm-python -Version: 4.12.0 +Version: 4.12.0.1 Release: 0 #!BuildIgnore: rpmlint-Factory Summary: Python Bindings for Manipulating RPM Packages diff --git a/rpm.changes b/rpm.changes index 49d0beb..743fc1b 100644 --- a/rpm.changes +++ b/rpm.changes @@ -1,8 +1,8 @@ ------------------------------------------------------------------- Thu Sep 18 13:40:43 CEST 2014 - mls@suse.de -- cherry-pick archivesize fix from upstream - new patch: archivesize.diff +- 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 diff --git a/rpm.spec b/rpm.spec index 96e576b..4cf098b 100644 --- a/rpm.spec +++ b/rpm.spec @@ -47,7 +47,7 @@ PreReq: %fillup_prereq Summary: The RPM Package Manager License: GPL-2.0+ Group: System/Packages -Version: 4.12.0 +Version: 4.12.0.1 Release: 0 Source: http://rpm.org/releases/rpm-4.12.x/rpm-%{version}.tar.bz2 Source1: RPM-HOWTO.tar.bz2 @@ -128,7 +128,6 @@ Patch85: brp-compress-no-img.patch Patch92: find-lang-python.patch Patch93: weakdepscompat.diff Patch94: checksepwarn.diff -Patch95: archivesize.diff Patch6464: auto-config-update-aarch64-ppc64le.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build # @@ -216,7 +215,7 @@ rm -f rpmdb/db.h %patch -P 60 -P 61 -P 65 -P 66 -P 67 -P 68 -P 69 %patch -P 70 -P 71 -P 73 -P 74 -P 75 -P 76 -P 77 -P 78 -P 79 %patch -P 85 -%patch -P 92 -P 93 -P 94 -P 95 +%patch -P 92 -P 93 -P 94 %ifarch aarch64 ppc64le %patch6464