diff --git a/assumeexec.diff b/assumeexec.diff index d74def4..e644ffd 100644 --- a/assumeexec.diff +++ b/assumeexec.diff @@ -1,26 +1,26 @@ ---- tools/elfdeps.c.orig 2011-06-03 13:12:32.000000000 +0000 -+++ tools/elfdeps.c 2011-06-03 13:17:45.000000000 +0000 -@@ -14,6 +14,7 @@ - +--- 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; + int fake_soname = 1; +int assume_exec = 0; typedef struct elfInfo_s { Elf *elf; -@@ -226,7 +227,7 @@ static int processFile(const char *fn, i - ei->isElf64 = 0; - #endif +@@ -235,7 +236,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)); processSections(ei); } -@@ -279,6 +280,7 @@ int main(int argc, char *argv[]) - { "requires", 'R', POPT_ARG_VAL, &requires, -1, NULL, NULL }, +@@ -292,6 +293,7 @@ int main(int argc, char *argv[]) { "filter-private", 0, POPT_ARG_VAL, &filter_private, -1, NULL, NULL }, { "soname-only", 0, POPT_ARG_VAL, &soname_only, -1, NULL, NULL }, + { "no-fake-soname", 0, POPT_ARG_VAL, &fake_soname, 0, NULL, NULL }, + { "assume-exec", 0, POPT_ARG_VAL, &assume_exec, -1, NULL, NULL }, POPT_AUTOHELP POPT_TABLEEND diff --git a/checkfilesnoinfodir.diff b/checkfilesnoinfodir.diff index 7a467db..67e227e 100644 --- a/checkfilesnoinfodir.diff +++ b/checkfilesnoinfodir.diff @@ -1,18 +1,12 @@ Exclude /usr/share/info/dir from check-files. Probably only interesting for SUSE. -Index: scripts/check-files -=================================================================== ---- scripts/check-files.orig -+++ scripts/check-files -@@ -22,7 +22,9 @@ LC_ALL=C sort > $FILES_RPM +--- scripts/check-files.orig 2013-06-10 15:55:10.000000000 +0000 ++++ scripts/check-files 2013-07-12 11:45:37.000000000 +0000 +@@ -28,5 +28,5 @@ trap "rm -f \"${FILES_DISK}\"" 0 2 3 5 1 + # Find non-directory files in the build root and compare to the manifest. + # TODO: regex chars in last sed(1) expression should be escaped + find "${RPM_BUILD_ROOT}" -type f -o -type l | LC_ALL=C sort > "${FILES_DISK}" +-LC_ALL=C sort | diff -d "${FILES_DISK}" - | sed -n 's|^< '"${RPM_BUILD_ROOT}"'\(.*\)$| \1|gp' ++LC_ALL=C sort | diff -d "${FILES_DISK}" - | sed -n -e 's|^< '"${RPM_BUILD_ROOT}"'/usr/share/info/dir$||' -e 's|^< '"${RPM_BUILD_ROOT}"'\(.*\)$| \1|gp' - diff -d "$FILES_DISK" "$FILES_RPM" | grep "^< " | cut -c3- | - while read f; do -- echo $f | sed -e "s#^$RPM_BUILD_ROOT# #g" -+ if test "$RPM_BUILD_ROOT/usr/share/info/dir" != "$f" ; then -+ echo $f | sed -e "s#^$RPM_BUILD_ROOT# #g" -+ fi - done - - rm -f $FILES_DISK diff --git a/config-guess-sub-update.diff b/config-guess-sub-update.diff deleted file mode 100644 index 457313b..0000000 --- a/config-guess-sub-update.diff +++ /dev/null @@ -1,1145 +0,0 @@ ---- config.guess -+++ config.guess -@@ -1,10 +1,10 @@ - #! /bin/sh - # Attempt to guess a canonical system name. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 --# Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -+# 2011, 2012 Free Software Foundation, Inc. - --timestamp='2009-11-20' -+timestamp='2012-09-25' - - # This file is free software; you can redistribute it and/or modify it - # under the terms of the GNU General Public License as published by -@@ -17,9 +17,7 @@ timestamp='2009-11-20' - # General Public License for more details. - # - # You should have received a copy of the GNU General Public License --# along with this program; if not, write to the Free Software --# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA --# 02110-1301, USA. -+# along with this program; if not, see . - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a -@@ -56,8 +54,9 @@ version="\ - GNU config.guess ($timestamp) - - Originally written by Per Bothner. --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, --2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 -+Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." -@@ -144,7 +143,7 @@ UNAME_VERSION=`(uname -v) 2>/dev/null` | - case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or -- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, -+ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward -@@ -180,7 +179,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - fi - ;; - *) -- os=netbsd -+ os=netbsd - ;; - esac - # The OS release -@@ -201,6 +200,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit ;; -+ *:Bitrig:*:*) -+ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` -+ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} -+ exit ;; - *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} -@@ -223,7 +226,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *5.*) -- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` -+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on -@@ -269,7 +272,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -- exit ;; -+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code. -+ exitcode=$? -+ trap '' 0 -+ exit $exitcode ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead -@@ -295,12 +301,12 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - echo s390-ibm-zvmoe - exit ;; - *:OS400:*:*) -- echo powerpc-ibm-os400 -+ echo powerpc-ibm-os400 - exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit ;; -- arm:riscos:*:*|arm:RISCOS:*:*) -+ arm*:riscos:*:*|arm*:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) -@@ -394,23 +400,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) -- echo m68k-atari-mint${UNAME_RELEASE} -+ echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} -- exit ;; -+ exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) -- echo m68k-atari-mint${UNAME_RELEASE} -+ echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) -- echo m68k-milan-mint${UNAME_RELEASE} -- exit ;; -+ echo m68k-milan-mint${UNAME_RELEASE} -+ exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) -- echo m68k-hades-mint${UNAME_RELEASE} -- exit ;; -+ echo m68k-hades-mint${UNAME_RELEASE} -+ exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) -- echo m68k-unknown-mint${UNAME_RELEASE} -- exit ;; -+ echo m68k-unknown-mint${UNAME_RELEASE} -+ exit ;; - m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} - exit ;; -@@ -480,8 +486,8 @@ EOF - echo m88k-motorola-sysv3 - exit ;; - AViiON:dgux:*:*) -- # DG/UX returns AViiON for all architectures -- UNAME_PROCESSOR=`/usr/bin/uname -p` -+ # DG/UX returns AViiON for all architectures -+ UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ -@@ -494,7 +500,7 @@ EOF - else - echo i586-dg-dgux${UNAME_RELEASE} - fi -- exit ;; -+ exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; -@@ -551,7 +557,7 @@ EOF - echo rs6000-ibm-aix3.2 - fi - exit ;; -- *:AIX:*:[456]) -+ *:AIX:*:[4567]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 -@@ -594,52 +600,52 @@ EOF - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` -- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` -- case "${sc_cpu_version}" in -- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 -- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 -- 532) # CPU_PA_RISC2_0 -- case "${sc_kernel_bits}" in -- 32) HP_ARCH="hppa2.0n" ;; -- 64) HP_ARCH="hppa2.0w" ;; -+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` -+ case "${sc_cpu_version}" in -+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 -+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 -+ 532) # CPU_PA_RISC2_0 -+ case "${sc_kernel_bits}" in -+ 32) HP_ARCH="hppa2.0n" ;; -+ 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 -- esac ;; -- esac -+ esac ;; -+ esac - fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -+ sed 's/^ //' << EOF >$dummy.c -+ -+ #define _HPUX_SOURCE -+ #include -+ #include - -- #define _HPUX_SOURCE -- #include -- #include -- -- int main () -- { -- #if defined(_SC_KERNEL_BITS) -- long bits = sysconf(_SC_KERNEL_BITS); -- #endif -- long cpu = sysconf (_SC_CPU_VERSION); -- -- switch (cpu) -- { -- case CPU_PA_RISC1_0: puts ("hppa1.0"); break; -- case CPU_PA_RISC1_1: puts ("hppa1.1"); break; -- case CPU_PA_RISC2_0: -- #if defined(_SC_KERNEL_BITS) -- switch (bits) -- { -- case 64: puts ("hppa2.0w"); break; -- case 32: puts ("hppa2.0n"); break; -- default: puts ("hppa2.0"); break; -- } break; -- #else /* !defined(_SC_KERNEL_BITS) */ -- puts ("hppa2.0"); break; -- #endif -- default: puts ("hppa1.0"); break; -- } -- exit (0); -- } -+ int main () -+ { -+ #if defined(_SC_KERNEL_BITS) -+ long bits = sysconf(_SC_KERNEL_BITS); -+ #endif -+ long cpu = sysconf (_SC_CPU_VERSION); -+ -+ switch (cpu) -+ { -+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break; -+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break; -+ case CPU_PA_RISC2_0: -+ #if defined(_SC_KERNEL_BITS) -+ switch (bits) -+ { -+ case 64: puts ("hppa2.0w"); break; -+ case 32: puts ("hppa2.0n"); break; -+ default: puts ("hppa2.0"); break; -+ } break; -+ #else /* !defined(_SC_KERNEL_BITS) */ -+ puts ("hppa2.0"); break; -+ #endif -+ default: puts ("hppa1.0"); break; -+ } -+ exit (0); -+ } - EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa -@@ -730,22 +736,22 @@ EOF - exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd -- exit ;; -+ exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi -- exit ;; -+ exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd -- exit ;; -+ exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd -- exit ;; -+ exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd -- exit ;; -+ exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; -@@ -769,14 +775,14 @@ EOF - exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` -- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` -- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -- exit ;; -+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` -+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -+ exit ;; - 5000:UNIX_System_V:4.*:*) -- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` -- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" -+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` -+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` -+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} -@@ -788,30 +794,35 @@ EOF - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:FreeBSD:*:*) -- case ${UNAME_MACHINE} in -- pc98) -- echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ UNAME_PROCESSOR=`/usr/bin/uname -p` -+ case ${UNAME_PROCESSOR} in - amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) -- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; -+ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - esac - exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit ;; -+ *:MINGW64*:*) -+ echo ${UNAME_MACHINE}-pc-mingw64 -+ exit ;; - *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; -+ i*:MSYS*:*) -+ echo ${UNAME_MACHINE}-pc-msys -+ exit ;; - i*:windows32*:*) -- # uname -m includes "-pc" on this system. -- echo ${UNAME_MACHINE}-mingw32 -+ # uname -m includes "-pc" on this system. -+ echo ${UNAME_MACHINE}-mingw32 - exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit ;; - *:Interix*:*) -- case ${UNAME_MACHINE} in -+ case ${UNAME_MACHINE} in - x86) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; -@@ -857,6 +868,13 @@ EOF - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit ;; -+ aarch64:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; -+ aarch64_be:Linux:*:*) -+ UNAME_MACHINE=aarch64_be -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; -@@ -866,7 +884,7 @@ EOF - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; -- esac -+ esac - objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} -@@ -878,20 +896,29 @@ EOF - then - echo ${UNAME_MACHINE}-unknown-linux-gnu - else -- echo ${UNAME_MACHINE}-unknown-linux-gnueabi -+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ -+ | grep -q __ARM_PCS_VFP -+ then -+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi -+ else -+ echo ${UNAME_MACHINE}-unknown-linux-gnueabihf -+ fi - fi - exit ;; - avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - cris:Linux:*:*) -- echo cris-axis-linux-gnu -+ echo ${UNAME_MACHINE}-axis-linux-gnu - exit ;; - crisv32:Linux:*:*) -- echo crisv32-axis-linux-gnu -+ echo ${UNAME_MACHINE}-axis-linux-gnu - exit ;; - frv:Linux:*:*) -- echo frv-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; -+ hexagon:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - i*86:Linux:*:*) - LIBC=gnu -@@ -933,7 +960,7 @@ EOF - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - or32:Linux:*:*) -- echo or32-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - padre:Linux:*:*) - echo sparc-unknown-linux-gnu -@@ -959,7 +986,7 @@ EOF - echo ${UNAME_MACHINE}-ibm-linux - exit ;; - sh64*:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu -@@ -967,14 +994,17 @@ EOF - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; -+ tile*:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-gnu -+ exit ;; - vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-gnu - exit ;; - x86_64:Linux:*:*) -- echo x86_64-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - xtensa*:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. -@@ -983,11 +1013,11 @@ EOF - echo i386-sequent-sysv4 - exit ;; - i*86:UNIX_SV:4.2MP:2.*) -- # Unixware is an offshoot of SVR4, but it has its own version -- # number series starting with 2... -- # I am not positive that other SVR4 systems won't match this, -+ # Unixware is an offshoot of SVR4, but it has its own version -+ # number series starting with 2... -+ # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. -- # Use sysv4.2uw... so that sysv4* matches it. -+ # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit ;; - i*86:OS/2:*:*) -@@ -1019,7 +1049,7 @@ EOF - fi - exit ;; - i*86:*:5:[678]*) -- # UnixWare 7.x, OpenUNIX and OpenServer 6. -+ # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; -@@ -1047,13 +1077,13 @@ EOF - exit ;; - pc:*:*:*) - # Left here for compatibility: -- # uname -m prints for DJGPP always 'pc', but it prints nothing about -- # the processor, so we play safe by assuming i586. -+ # uname -m prints for DJGPP always 'pc', but it prints nothing about -+ # the processor, so we play safe by assuming i586. - # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configury will decide that - # this is a cross-build. - echo i586-pc-msdosdjgpp -- exit ;; -+ exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; -@@ -1088,8 +1118,8 @@ EOF - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) -- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -- && { echo i486-ncr-sysv4; exit; } ;; -+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ -+ && { echo i486-ncr-sysv4; exit; } ;; - NCR*:*:4.2:* | MPRAS*:*:4.2:*) - OS_REL='.3' - test -r /etc/.relid \ -@@ -1132,10 +1162,10 @@ EOF - echo ns32k-sni-sysv - fi - exit ;; -- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort -- # says -- echo i586-unisys-sysv4 -- exit ;; -+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort -+ # says -+ echo i586-unisys-sysv4 -+ exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm -@@ -1161,11 +1191,11 @@ EOF - exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then -- echo mips-nec-sysv${UNAME_RELEASE} -+ echo mips-nec-sysv${UNAME_RELEASE} - else -- echo mips-unknown-sysv${UNAME_RELEASE} -+ echo mips-unknown-sysv${UNAME_RELEASE} - fi -- exit ;; -+ exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; -@@ -1178,6 +1208,9 @@ EOF - BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - echo i586-pc-haiku - exit ;; -+ x86_64:Haiku:*:*) -+ echo x86_64-unknown-haiku -+ exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit ;; -@@ -1230,7 +1263,10 @@ EOF - *:QNX:*:4*) - echo i386-pc-qnx - exit ;; -- NSE-?:NONSTOP_KERNEL:*:*) -+ NEO-?:NONSTOP_KERNEL:*:*) -+ echo neo-tandem-nsk${UNAME_RELEASE} -+ exit ;; -+ NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} - exit ;; - NSR-?:NONSTOP_KERNEL:*:*) -@@ -1275,13 +1311,13 @@ EOF - echo pdp10-unknown-its - exit ;; - SEI:*:*:SEIUX) -- echo mips-sei-seiux${UNAME_RELEASE} -+ echo mips-sei-seiux${UNAME_RELEASE} - exit ;; - *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit ;; - *:*VMS:*:*) -- UNAME_MACHINE=`(uname -p) 2>/dev/null` -+ UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; -@@ -1299,11 +1335,11 @@ EOF - i*86:AROS:*:*) - echo ${UNAME_MACHINE}-pc-aros - exit ;; -+ x86_64:VMkernel:*:*) -+ echo ${UNAME_MACHINE}-unknown-esx -+ exit ;; - esac - --#echo '(No uname command or uname output not recognized.)' 1>&2 --#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 -- - eval $set_cc_for_build - cat >$dummy.c < - printf ("m68k-sony-newsos%s\n", - #ifdef NEWSOS4 -- "4" -+ "4" - #else -- "" -+ "" - #endif -- ); exit (0); -+ ); exit (0); - #endif - #endif - ---- config.sub -+++ config.sub -@@ -1,10 +1,10 @@ - #! /bin/sh - # Configuration validation subroutine script. - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 --# Free Software Foundation, Inc. -+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -+# 2011, 2012 Free Software Foundation, Inc. - --timestamp='2009-11-20' -+timestamp='2012-10-10' - - # This file is (in principle) common to ALL GNU software. - # The presence of a machine in this file suggests that SOME GNU software -@@ -21,9 +21,7 @@ timestamp='2009-11-20' - # GNU General Public License for more details. - # - # You should have received a copy of the GNU General Public License --# along with this program; if not, write to the Free Software --# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA --# 02110-1301, USA. -+# along with this program; if not, see . - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a -@@ -75,8 +73,9 @@ Report bugs and patches to cfg; /* This is our setup, thou shall not have other setups before us */ - uint32_t eflags = (DB_CREATE|DB_INIT_MPOOL|DB_INIT_CDB); diff --git a/dbrointerruptable.diff b/dbrointerruptable.diff index 94fd2fe..7021f6f 100644 --- a/dbrointerruptable.diff +++ b/dbrointerruptable.diff @@ -1,6 +1,6 @@ ---- ./lib/rpmdb.c.orig 2011-09-19 10:02:08.000000000 +0000 -+++ ./lib/rpmdb.c 2011-10-19 15:06:25.000000000 +0000 -@@ -630,10 +630,12 @@ int rpmdbClose(rpmdb db) +--- ./lib/rpmdb.c.orig 2013-06-10 15:55:10.000000000 +0000 ++++ ./lib/rpmdb.c 2013-07-12 11:28:22.000000000 +0000 +@@ -730,10 +730,12 @@ int rpmdbClose(rpmdb db) { rpmdb * prev, next; int rc = 0; @@ -13,7 +13,7 @@ (void) rpmdbUnlink(db); if (db->nrefs > 0) -@@ -661,7 +663,7 @@ int rpmdbClose(rpmdb db) +@@ -761,7 +763,7 @@ int rpmdbClose(rpmdb db) db = _free(db); @@ -22,8 +22,8 @@ (void) rpmsqEnable(-SIGHUP, NULL); (void) rpmsqEnable(-SIGINT, NULL); (void) rpmsqEnable(-SIGTERM, NULL); -@@ -730,7 +732,7 @@ static int openDatabase(const char * pre - /* Try to ensure db home exists, error out if we cant even create */ +@@ -830,7 +832,7 @@ static int openDatabase(const char * pre + /* Try to ensure db home exists, error out if we can't even create */ rc = rpmioMkpath(rpmdbHome(db), 0755, getuid(), getgid()); if (rc == 0) { - if (rpmdbRock == NULL) { diff --git a/debugedit-aarch64.diff b/debugedit-aarch64.diff deleted file mode 100644 index 85ecf58..0000000 --- a/debugedit-aarch64.diff +++ /dev/null @@ -1,15 +0,0 @@ -Index: tools/debugedit.c -=================================================================== ---- tools/debugedit.c.orig -+++ tools/debugedit.c -@@ -1223,6 +1223,10 @@ edit_dwarf2 (DSO *dso) - if (rtype != R_ALPHA_REFLONG) - goto fail; - break; -+ case EM_AARCH64: -+ if (rtype != R_AARCH64_ABS32) -+ goto fail; -+ break; - default: - fail: - error (1, 0, "%s: Unhandled relocation %d in .debug_info section", diff --git a/debugsubpkg.diff b/debugsubpkg.diff index 4d6a50c..6256da9 100644 --- a/debugsubpkg.diff +++ b/debugsubpkg.diff @@ -219,7 +219,7 @@ Index: build/files.c + new debuginfo package. */ + if (files) + { -+ dbg = newPackage (spec); ++ dbg = newPackage(NULL, spec->pool, &spec->packages); + headerNVR (pkg->header, &name, NULL, NULL); + /* Set name, summary and group. */ + snprintf (tmp, 1024, "%s-debuginfo", name); diff --git a/findksyms.diff b/findksyms.diff index e5a9e2b..313d699 100644 --- a/findksyms.diff +++ b/findksyms.diff @@ -1,109 +1,43 @@ SUSE specific kernel provides/requires scripts ---- scripts/find-provides.ksyms -+++ scripts/find-provides.ksyms -@@ -0,0 +1,41 @@ -+#! /bin/sh -+ -+IFS=$'\n' -+ -+case "$1" in -+kernel-module-*) ;; # Fedora kernel module package names start with -+ # kernel-module. -+kernel*) kernel_flavor=${1#kernel-} ;; -+esac -+ -+trap 'rm -f "$tmp"' EXIT -+tmp=$(mktemp) -+while read f; do -+ test -e "$f" || continue -+ case "$f" in -+ *.debug) -+ continue -+ ;; -+ */lib/modules/*/*.ko | */lib/modules/*/*.ko.gz | */boot/vmlinu[xz]*) -+ ;; -+ *) -+ continue -+ esac -+ unzip=false -+ case "$f" in -+ *.gz | */boot/vmlinuz*) -+ unzip=true -+ esac -+ if $unzip && gzip -cd "$f" >"$tmp"; then -+ f=$tmp -+ fi -+ flavor=$(/sbin/modinfo -F vermagic "$f") -+ flavor=${flavor%% *} -+ flavor=${flavor##*-} -+ if test -z "$flavor"; then -+ flavor=$kernel_flavor -+ fi -+ nm "$f" \ -+ | sed -r -ne "s/^0*([0-9a-f]+) A __crc_(.+)/ksym($flavor:\\2) = \\1/p" -+done \ -+| sort -u ---- scripts/find-requires.ksyms -+++ scripts/find-requires.ksyms -@@ -0,0 +1,57 @@ +--- 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 +@@ -0,0 +1,17 @@ +#! /bin/bash + +IFS=$'\n' + -+case "$1" in -+kernel-module-*) ;; # Fedora kernel module package names start with -+ # kernel-module. -+kernel*) is_kernel_package=1 ;; -+esac ++while read f; do ++ test -e "$f" || continue ++ case "$f" in ++ *.debug) ++ ;; ++ */boot/vmlinu[xz]-*) ++ flavor=${f##*/vmlinu[xz]-} ++ flavor=${flavor%.gz} ++ echo "kernel-uname-r = $flavor" ++ ;; ++ 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 +@@ -0,0 +1,15 @@ ++#! /bin/bash + -+all_provides() { -+ for module in "$@"; do -+ nm "$module" -+ done \ -+ | sed -r -ne 's:^0*([0-9a-f]+) A __crc_(.+):\1\t\2:p' \ -+ | sort -t $'\t' -k2 -u -+} ++IFS=$'\n' + -+all_requires() { -+ for module in "$@"; do -+ set -- $(/sbin/modinfo -F vermagic "$module" | sed -e 's: .*::' -e q) -+ /sbin/modprobe --dump-modversions "$module" \ -+ | sed -r -e 's:^0x0*::' -e 's:$:\t'"$1"':' -+ done \ -+ | sort -t $'\t' -k2 -u -+} -+ -+if ! [ -z "$is_kernel_package" -a -e /sbin/modinfo -a -e /sbin/modprobe ]; then -+ cat > /dev/null -+ exit 0 -+fi -+ -+modules=($(grep -E '/lib/modules/.+\.ko$')) -+if [ ${#modules[@]} -gt 0 ]; then -+ symset_table=$(mktemp -t ${0##*/}.XXXXX) -+ /usr/lib/rpm/symset-table | sort -t $'\t' -k 1,1 > $symset_table -+ -+ join -t $'\t' -j 1 -a 2 $symset_table <( -+ # Filter out requirements that we fulfill ourself. -+ join -t $'\t' -j 2 -v 1 \ -+ <(all_requires "${modules[@]}") \ -+ <(all_provides "${modules[@]}") \ -+ | awk ' -+ BEGIN { FS = "\t" ; OFS = "\t" } -+ { print $3 "/" $2 "/" $1 } -+ ' \ -+ | sort -t $'\t' -k 1,1 -u) \ -+ | sort -u \ -+ | awk ' -+ { FS = "\t" ; OFS = "\t" } -+ { split($1, arr, "/") -+ flavor = gensub(/.*-/, "", "", arr[1]) } -+ NF == 3 { print "kernel(" flavor ":" $2 ") = " $3 -+ next } -+ { print "ksym(" flavor ":" arr[3] ") = " arr[2] } -+ ' -+fi ++while read f; do ++ test -e "$f" || continue ++ case "$f" in ++ */lib/modules/*/*.ko | */lib/modules/*/*.ko.gz) ++ flavor=${f#*/lib/modules/} ++ flavor=${f%%/*} ++ echo "kernel-uname-r = $flavor" ++ ;; ++ esac ++done \ ++| sort -u --- scripts/Makefile.am +++ scripts/Makefile.am @@ -15,6 +15,7 @@ diff --git a/findsupplements.diff b/findsupplements.diff index c1365bc..2f0f4db 100644 --- a/findsupplements.diff +++ b/findsupplements.diff @@ -1,8 +1,8 @@ Add support for supplements to the internal dependency generator. ---- ./build/rpmfc.c.orig 2012-06-01 13:44:21.000000000 +0000 -+++ ./build/rpmfc.c 2012-06-01 14:00:45.000000000 +0000 -@@ -57,6 +57,7 @@ struct rpmfc_s { +--- ./build/rpmfc.c.orig 2013-07-12 12:18:29.000000000 +0000 ++++ ./build/rpmfc.c 2013-07-12 12:18:48.000000000 +0000 +@@ -58,6 +58,7 @@ struct rpmfc_s { rpmds provides; /*!< (no. provides) package provides */ rpmds requires; /*!< (no. requires) package requires */ @@ -10,7 +10,7 @@ Add support for supplements to the internal dependency generator. }; struct rpmfcTokens_s { -@@ -545,6 +546,22 @@ static int rpmfcHelperRequires(rpmfc fc, +@@ -546,6 +547,22 @@ static int rpmfcHelperRequires(rpmfc fc, return 0; } @@ -33,7 +33,7 @@ Add support for supplements to the internal dependency generator. /* Only used for elf coloring and controlling RPMTAG_FILECLASS inclusion now */ static const struct rpmfcTokens_s rpmfcTokens[] = { { "directory", RPMFC_INCLUDE }, -@@ -762,6 +779,7 @@ rpmfc rpmfcFree(rpmfc fc) +@@ -763,6 +780,7 @@ rpmfc rpmfcFree(rpmfc fc) rpmdsFree(fc->provides); rpmdsFree(fc->requires); @@ -41,7 +41,7 @@ Add support for supplements to the internal dependency generator. memset(fc, 0, sizeof(*fc)); /* trash and burn */ free(fc); } -@@ -793,6 +811,11 @@ rpmds rpmfcRequires(rpmfc fc) +@@ -794,6 +812,11 @@ rpmds rpmfcRequires(rpmfc fc) return (fc != NULL ? fc->requires : NULL); } @@ -60,8 +60,8 @@ Add support for supplements to the internal dependency generator. + rpmfcHelperSupplements(fc, *fattr); } } - -@@ -856,6 +880,11 @@ rpmRC rpmfcApply(rpmfc fc) + /* No more additions after this, freeze pool to minimize memory use */ +@@ -858,6 +882,11 @@ rpmRC rpmfcApply(rpmfc fc) dix = rpmdsFind(fc->requires, ds); rpmdsFree(ds); break; @@ -73,7 +73,7 @@ Add support for supplements to the internal dependency generator. } if (dix < 0) -@@ -1347,6 +1376,18 @@ rpmRC rpmfcGenerateDepends(const rpmSpec +@@ -1341,6 +1370,18 @@ rpmRC rpmfcGenerateDepends(const rpmSpec } } @@ -92,8 +92,8 @@ Add support for supplements to the internal dependency generator. /* Add dependency dictionary(#dependencies) */ if (rpmtdFromArgi(&td, RPMTAG_DEPENDSDICT, fc->ddictx)) { headerPut(pkg->header, &td, HEADERPUT_DEFAULT); ---- ./build/rpmfc.h.orig 2012-06-01 13:53:12.000000000 +0000 -+++ ./build/rpmfc.h 2012-06-01 13:53:44.000000000 +0000 +--- ./build/rpmfc.h.orig 2012-11-18 08:21:06.000000000 +0000 ++++ ./build/rpmfc.h 2013-07-12 12:18:48.000000000 +0000 @@ -106,6 +106,13 @@ rpmds rpmfcProvides(rpmfc fc); */ rpmds rpmfcRequires(rpmfc fc); diff --git a/getauxval.diff b/getauxval.diff new file mode 100644 index 0000000..66f8cc4 --- /dev/null +++ b/getauxval.diff @@ -0,0 +1,76 @@ +commit 60835b20180c1be351ff95fa8c8d930afada0e4c +Author: Kirill A. Shutemov +Date: Mon Jul 1 03:25:32 2013 +0300 + +Use getauxval(3) to read auxv data + +glibc >= 2.16 provides getauxval(): a reliable way to retrieve a value +from the auxiliary vector. It doesn't rely on /proc filesystem. + +Let's switch to it and get rid of /proc dependency. + +Signed-off-by: Kirill A. Shutemov +Signed-off-by: Panu Matilainen + +--- configure.ac.orig 2013-07-12 12:25:38.000000000 +0000 ++++ configure.ac 2013-07-12 12:35:18.000000000 +0000 +@@ -518,6 +518,7 @@ dnl Checks for library functions. + AC_CHECK_FUNCS(putenv) + AC_CHECK_FUNCS(mempcpy) + AC_CHECK_FUNCS(fdatasync) ++AC_CHECK_FUNCS(getauxval) + + AC_REPLACE_FUNCS(stpcpy stpncpy) + +--- lib/rpmrc.c.orig 2013-07-12 12:25:38.000000000 +0000 ++++ lib/rpmrc.c 2013-07-12 12:34:34.000000000 +0000 +@@ -20,6 +20,10 @@ + #define __power_pc() 0 + #endif + ++#ifdef HAVE_GETAUXVAL ++#include ++#endif ++ + #include /* RPM_MACTABLE*, Rc-prototypes */ + #include + #include +@@ -922,13 +926,19 @@ static int is_geode(void) + + #if defined(__linux__) && defined(__powerpc__) + /** +- * Populate rpmat structure with parsed info from /proc/self/auxv ++ * Populate rpmat structure with auxv values + */ +-static void parse_auxv(void) ++static void read_auxv(void) + { + static int oneshot = 1; + + if (oneshot) { ++#ifdef HAVE_GETAUXVAL ++ rpmat.platform = (char *) getauxval(AT_PLATFORM); ++ if (!rpmat.platform) ++ rpmat.platform = ""; ++ rpmat.hwcap = getauxval(AT_HWCAP); ++#else + rpmat.platform = ""; + int fd = open("/proc/self/auxv", O_RDONLY); + +@@ -953,6 +963,7 @@ static void parse_auxv(void) + } + close(fd); + } ++#endif + oneshot = 0; /* only try once even if it fails */ + } + return; +@@ -972,7 +983,7 @@ static void defaultMachine(const char ** + + #if defined(__linux__) && defined(__powerpc__) + /* Populate rpmat struct with hw info */ +- parse_auxv(); ++ read_auxv(); + #endif + + while (!gotDefaults) { diff --git a/macrosin.diff b/macrosin.diff index a240162..f31fb6f 100644 --- a/macrosin.diff +++ b/macrosin.diff @@ -1,35 +1,32 @@ ---- ./macros.in.orig 2012-05-22 10:53:51.000000000 +0000 -+++ ./macros.in 2012-06-01 12:39:35.000000000 +0000 -@@ -181,22 +181,22 @@ +--- ./macros.in.orig 2013-06-10 15:55:10.000000000 +0000 ++++ ./macros.in 2013-07-12 11:53:07.000000000 +0000 +@@ -185,22 +185,22 @@ # Template for debug information sub-package. %debug_package \ -%ifnarch noarch\ %global __debug_package 1\ --%package debug\ -+%package debuginfo\ + %package debuginfo\ Summary: Debug information for package %{name}\ Group: Development/Debug\ AutoReqProv: 0\ --%description debug\ +#Requires: %{?!debug_package_requires:%{name} = %{version}-%{release}}%{?debug_package_requires}\ -+%description debuginfo\ + %description debuginfo\ This package provides debug information for package %{name}.\ Debug information is useful when developing applications that use this\ package or when debugging this package.\ --%files debug -f debugfiles.list\ -+%files debuginfo -f debugfiles.list\ + %files debuginfo -f debugfiles.list\ %defattr(-,root,root)\ -%endif\ %{nil} -%_defaultdocdir %{_datadir}/doc +%_defaultdocdir %{_datadir}/doc/packages -+%_docdir_fmt %%{NAME} ++%_docdir_fmt %%{NAME} + %_defaultlicensedir %{_datadir}/licenses # The path to the gzip executable (legacy, use %{__gzip} instead). - %_gzipbin %{__gzip} -@@ -233,7 +233,8 @@ package or when debugging this package.\ +@@ -238,7 +238,8 @@ package or when debugging this package.\ %_tmppath %{_var}/tmp # Path to top of build area. @@ -39,7 +36,7 @@ # The path to the unzip executable (legacy, use %{__unzip} instead). %_unzipbin %{__unzip} -@@ -336,7 +337,7 @@ package or when debugging this package.\ +@@ -341,7 +342,7 @@ package or when debugging this package.\ # "w7.lzdio" lzma-alone level 7, lzma's default # #%_source_payload w9.gzdio @@ -48,7 +45,7 @@ # Algorithm to use for generating file checksum digests on build. # If not specified or 0, MD5 is used. -@@ -435,16 +436,22 @@ package or when debugging this package.\ +@@ -440,16 +441,22 @@ package or when debugging this package.\ # Directories whose contents should be considered as documentation. %__docdir_path %{_datadir}/doc:%{_datadir}/man:%{_datadir}/info:%{_datadir}/gtk-doc/html:%{?_docdir}:%{?_mandir}:%{?_infodir}:%{?_javadocdir}:/usr/doc:/usr/man:/usr/info:/usr/X11R6/man @@ -73,7 +70,7 @@ # # Path to file attribute classifications for automatic dependency -@@ -507,10 +514,10 @@ package or when debugging this package.\ +@@ -512,10 +519,10 @@ package or when debugging this package.\ # Misc BDB tuning options %__dbi_other mp_mmapsize=128Mb mp_size=1Mb @@ -86,7 +83,7 @@ #============================================================================== # ---- GPG/PGP/PGP5 signature macros. -@@ -809,7 +816,7 @@ package or when debugging this package.\ +@@ -816,7 +823,7 @@ package or when debugging this package.\ %_build_vendor %{_host_vendor} %_build_os %{_host_os} %_host @host@ @@ -95,7 +92,7 @@ %_host_cpu @host_cpu@ %_host_vendor @host_vendor@ %_host_os @host_os@ -@@ -973,6 +980,183 @@ done \ +@@ -980,6 +987,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])") @@ -279,7 +276,7 @@ #------------------------------------------------------------------------------ # arch macro for all Intel i?86 compatibile processors # (Note: This macro (and it's analogues) will probably be obsoleted when -@@ -983,7 +1167,9 @@ done \ +@@ -990,7 +1174,9 @@ done \ #------------------------------------------------------------------------------ # arch macro for all supported ARM processors @@ -290,7 +287,7 @@ #------------------------------------------------------------------------------ # arch macro for all supported Sparc processors -@@ -1023,3 +1209,26 @@ done \ +@@ -1110,3 +1296,26 @@ end} # \endverbatim #*/ diff --git a/nobuildcolor.diff b/nobuildcolor.diff index ca307df..9371cb7 100644 --- a/nobuildcolor.diff +++ b/nobuildcolor.diff @@ -1,13 +1,14 @@ Disable file coloring for SUSE systems ---- build/rpmfc.c.orig 2012-06-01 13:37:51.000000000 +0000 -+++ build/rpmfc.c 2012-06-01 13:37:21.000000000 +0000 -@@ -1304,7 +1304,7 @@ rpmRC rpmfcGenerateDepends(const rpmSpec - goto exit; - - /* Add per-file colors(#files) */ -- if (rpmtdFromArgi(&td, RPMTAG_FILECOLORS, fc->fcolor)) { -+ if (rpmExpandNumeric("%{?_transaction_color}") != 0 && rpmtdFromArgi(&td, RPMTAG_FILECOLORS, fc->fcolor)) { - rpm_color_t *fcolor; - /* XXX Make sure only primary (i.e. Elf32/Elf64) colors are added. */ - while ((fcolor = rpmtdNextUint32(&td))) { +--- build/rpmfc.c.orig 2013-07-12 12:12:45.000000000 +0000 ++++ build/rpmfc.c 2013-07-12 12:15:51.000000000 +0000 +@@ -1305,7 +1305,8 @@ rpmRC rpmfcGenerateDepends(const rpmSpec + /* XXX Make sure only primary (i.e. Elf32/Elf64) colors are added. */ + for (int i = 0; i < fc->nfiles; i++) + fc->fcolor[i] &= 0x0f; +- headerPutUint32(pkg->header, RPMTAG_FILECOLORS, fc->fcolor, fc->nfiles); ++ if (rpmExpandNumeric("%{?_transaction_color}") != 0) ++ headerPutUint32(pkg->header, RPMTAG_FILECOLORS, fc->fcolor, fc->nfiles); + + /* Add classes(#classes) */ + for (rpmsid id = 1; id <= rpmstrPoolNumStr(fc->cdict); id++) { diff --git a/nomagiccheck.diff b/nomagiccheck.diff index ab4cece..ba5f9d4 100644 --- a/nomagiccheck.diff +++ b/nomagiccheck.diff @@ -1,11 +1,11 @@ Don't let rpm complain about a missing /etc/magic.mgc file ---- ./build/rpmfc.c.orig 2012-06-01 13:42:06.000000000 +0000 -+++ ./build/rpmfc.c 2012-06-01 13:42:30.000000000 +0000 -@@ -900,7 +900,7 @@ static int initAttrs(rpmfc fc) +--- build/rpmfc.c.orig 2013-07-12 12:16:40.000000000 +0000 ++++ build/rpmfc.c 2013-07-12 12:17:15.000000000 +0000 +@@ -901,7 +901,7 @@ static int initAttrs(rpmfc fc) + rpmRC rpmfcClassify(rpmfc fc, ARGV_t argv, rpm_mode_t * fmode) { - ARGV_t fcav = NULL; - int msflags = MAGIC_CHECK | MAGIC_COMPRESS | MAGIC_NO_CHECK_TOKENS; + int msflags = MAGIC_COMPRESS | MAGIC_NO_CHECK_TOKENS; magic_t ms = NULL; diff --git a/psm-errno.patch b/psm-errno.diff similarity index 76% rename from psm-errno.patch rename to psm-errno.diff index f17710e..5db6ef2 100644 --- a/psm-errno.patch +++ b/psm-errno.diff @@ -1,7 +1,5 @@ -Index: lib/psm.c -=================================================================== ---- lib/psm.c -+++ lib/psm.c +--- 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) { @@ -12,8 +10,8 @@ Index: lib/psm.c /* make sure first progress call gets made */ @@ -826,6 +827,7 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkg - fsmrc = rpmfsmRun(FSM_PKGINSTALL, psm->ts, psm->te, psm->fi, - payload, psm, NULL, &psm->failedFile); + fsmrc = rpmPackageFilesInstall(psm->ts, psm->te, psm->fi, + payload, psm, &psm->failedFile); + saved_errno = errno; rpmswAdd(rpmtsOp(psm->ts, RPMTS_OP_UNCOMPRESS), diff --git a/repackage-nomd5.diff b/repackage-nomd5.diff index f6451e8..52f22bf 100644 --- a/repackage-nomd5.diff +++ b/repackage-nomd5.diff @@ -1,7 +1,7 @@ Don't complain about a bad md5 sum for repackaged rpms. ---- ./lib/psm.c.orig 2012-06-01 13:18:24.000000000 +0000 -+++ ./lib/psm.c 2012-06-01 13:22:48.000000000 +0000 +--- ./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); @@ -17,8 +17,8 @@ Don't complain about a bad md5 sum for repackaged rpms. + if (headerIsEntry(fi->h, RPMTAG_REMOVETID)) + (void) rpmtsSetFlags(ts, oldtsflags | RPMTRANS_FLAG_NOMD5); + - fsmrc = rpmfsmRun(FSM_PKGINSTALL, psm->ts, psm->te, psm->fi, - payload, psm, NULL, &psm->failedFile); + 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), diff --git a/rpm-4.10.3.1.tar.bz2 b/rpm-4.10.3.1.tar.bz2 deleted file mode 100644 index 964a1b8..0000000 --- a/rpm-4.10.3.1.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6260e765982936913ca877b042ed0ad863d656e06ec5badc94fa810d36b7368c -size 3574627 diff --git a/rpm-4.11.1.tar.bz2 b/rpm-4.11.1.tar.bz2 new file mode 100644 index 0000000..3d180f6 --- /dev/null +++ b/rpm-4.11.1.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5bbb0899ffdc997d399c4e96311f9cda5364f1fed5164aaf9db685784499ef8c +size 3778922 diff --git a/rpm-beecrypt.diff b/rpm-beecrypt.diff deleted file mode 100644 index 901541f..0000000 --- a/rpm-beecrypt.diff +++ /dev/null @@ -1,660 +0,0 @@ ---- config.h.in -+++ config.h.in -@@ -13,6 +13,9 @@ - /* Define to 1 if you have the `basename' function. */ - #undef HAVE_BASENAME - -+/* Define to 1 if you have the header file. */ -+#undef HAVE_BEECRYPT_API_H -+ - /* Define to 1 if you have the header file. */ - #undef HAVE_BZLIB_H - -@@ -206,6 +209,10 @@ - */ - #undef LT_OBJDIR - -+/* Define to the sub-directory in which libtool stores uninstalled libraries. -+ */ -+#undef LT_OBJDIR -+ - /* Define to 1 if `major', `minor', and `makedev' are declared in . - */ - #undef MAJOR_IN_MKDEV -@@ -290,6 +297,9 @@ - /* Build with acl support? */ - #undef WITH_ACL - -+/* Build with beecrypt instead of nss3 support? */ -+#undef WITH_BEECRYPT -+ - /* Build with capability support? */ - #undef WITH_CAP - ---- configure.ac -+++ configure.ac -@@ -239,12 +239,43 @@ - AM_CONDITIONAL(LIBDWARF,[test "$WITH_LIBDWARF" = yes]) - - #================= -+# Check for beecrypt library if requested. -+AC_ARG_WITH(beecrypt, [ --with-beecrypt build with beecrypt support ],,[with_beecrypt=yes]) -+AC_ARG_WITH(internal_beecrypt, [ --with-internal-beecrypt build with internal beecrypt library ],,[with_internal_beecrypt=yes]) -+AM_CONDITIONAL([WITH_INTERNAL_BEECRYPT],[test "$with_internal_beecrypt" = yes]) -+if test "$with_internal_beecrypt" = yes ; then -+ with_beecrypt=yes -+fi -+AM_CONDITIONAL([WITH_BEECRYPT],[test "$with_beecrypt" = yes]) -+ -+WITH_BEECRYPT_INCLUDE= -+WITH_BEECRYPT_LIB= -+if test "$with_beecrypt" = yes ; then -+ AC_DEFINE(WITH_BEECRYPT, 1, [Build with beecrypt instead of nss3 support?]) -+ if test "$with_internal_beecrypt" = yes ; then -+ WITH_BEECRYPT_INCLUDE="-I\$(top_srcdir)/beecrypt" -+ AC_DEFINE(HAVE_BEECRYPT_API_H, 1, [Define to 1 if you have the header file.]) -+ else -+ AC_CHECK_LIB(beecrypt, mpfprintln, [ -+ WITH_BEECRYPT_LIB="-lbeecrypt" -+ ],[ -+ AC_MSG_ERROR([missing required library 'beecrypt']) -+ ]) -+ AC_CHECK_HEADER([beecrypt/api.h], [AC_DEFINE(HAVE_BEECRYPT_API_H, 1, [Define to 1 if you have the header file.]) -+ ]) -+ fi -+fi -+AC_SUBST(WITH_BEECRYPT_LIB) -+AC_SUBST(WITH_BEECRYPT_INCLUDE) -+ -+#================= - # Check for NSS library. - # We need nss.h from NSS which needs nspr.h. Unfortunately both glibc and NSS - # have a header named nss.h... so make extra check for NSS's sechash.h - # which we use too and hopefully is slightly more unique to NSS. - WITH_NSS_INCLUDE= - WITH_NSS_LIB= -+if test "$with_beecrypt" != yes ; then - AC_CHECK_HEADERS([nspr.h nss.h sechash.h], [], [ - AC_MSG_ERROR([missing required NSPR / NSS header]) - ]) -@@ -257,6 +288,7 @@ - ], [ - AC_MSG_ERROR([missing required NSS library 'nss3']) - ]) -+fi - AC_SUBST(WITH_NSS_INCLUDE) - AC_SUBST(WITH_NSS_LIB) - ---- rpmio/digest_beecrypt.c -+++ rpmio/digest_beecrypt.c -@@ -0,0 +1,526 @@ -+#include "system.h" -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#if HAVE_BEECRYPT_API_H -+#include -+#include -+#include -+#endif -+ -+#include -+#include "rpmio/digest.h" -+#include "rpmio/rpmio_internal.h" -+#include "debug.h" -+ -+/** -+ * MD5/SHA1 digest private data. -+ */ -+struct DIGEST_CTX_s { -+ rpmDigestFlags flags; /*!< Bit(s) to control digest operation. */ -+ int algo; /*!< Used hash algorithm */ -+ uint32_t datalen; /*!< No. bytes in block of plaintext data. */ -+ uint32_t paramlen; /*!< No. bytes of digest parameters. */ -+ uint32_t digestlen; /*!< No. bytes of digest. */ -+ void * param; /*!< Digest parameters. */ -+ int (*Reset) (void * param); /*!< Digest initialize. */ -+ int (*Update) (void * param, const byte * data, size_t size); /*!< Digest transform. */ -+ int (*Digest) (void * param, byte * digest); /*!< Digest finish. */ -+}; -+ -+ -+/**************************** init ************************************/ -+ -+int rpmInitCrypto(void) { -+ return 0; -+} -+ -+int rpmFreeCrypto(void) { -+ return 0; -+} -+ -+/**************************** digest ************************************/ -+ -+DIGEST_CTX rpmDigestDup(DIGEST_CTX octx) -+{ -+ DIGEST_CTX nctx = NULL; -+ if (octx) { -+ nctx = memcpy(xcalloc(1, sizeof(*nctx)), octx, sizeof(*nctx)); -+ nctx->param = memcpy(xcalloc(1, nctx->paramlen), octx->param, nctx->paramlen); -+ } -+ return nctx; -+} -+ -+size_t rpmDigestLength(int hashalgo) -+{ -+ switch (hashalgo) { -+ case PGPHASHALGO_MD5: -+ return 16; -+ case PGPHASHALGO_SHA1: -+ return 20; -+#if HAVE_BEECRYPT_API_H -+ case PGPHASHALGO_SHA256: -+ return 32; -+ case PGPHASHALGO_SHA384: -+ return 48; -+ case PGPHASHALGO_SHA512: -+ return 64; -+#endif -+ default: -+ return 0; -+ } -+} -+ -+DIGEST_CTX rpmDigestInit(int hashalgo, rpmDigestFlags flags) -+{ -+ DIGEST_CTX ctx = xcalloc(1, sizeof(*ctx)); -+ -+ ctx->flags = flags; -+ ctx->algo = hashalgo; -+ -+ switch (hashalgo) { -+ case PGPHASHALGO_MD5: -+ ctx->digestlen = 16; -+ ctx->datalen = 64; -+ ctx->paramlen = sizeof(md5Param); -+ ctx->param = xcalloc(1, ctx->paramlen); -+ ctx->Reset = (void *) md5Reset; -+ ctx->Update = (void *) md5Update; -+ ctx->Digest = (void *) md5Digest; -+ break; -+ case PGPHASHALGO_SHA1: -+ ctx->digestlen = 20; -+ ctx->datalen = 64; -+ ctx->paramlen = sizeof(sha1Param); -+ ctx->param = xcalloc(1, ctx->paramlen); -+ ctx->Reset = (void *) sha1Reset; -+ ctx->Update = (void *) sha1Update; -+ ctx->Digest = (void *) sha1Digest; -+ break; -+#if HAVE_BEECRYPT_API_H -+ case PGPHASHALGO_SHA256: -+ ctx->digestlen = 32; -+ ctx->datalen = 64; -+ ctx->paramlen = sizeof(sha256Param); -+ ctx->param = xcalloc(1, ctx->paramlen); -+ ctx->Reset = (void *) sha256Reset; -+ ctx->Update = (void *) sha256Update; -+ ctx->Digest = (void *) sha256Digest; -+ break; -+ case PGPHASHALGO_SHA384: -+ ctx->digestlen = 48; -+ ctx->datalen = 128; -+ ctx->paramlen = sizeof(sha384Param); -+ ctx->param = xcalloc(1, ctx->paramlen); -+ ctx->Reset = (void *) sha384Reset; -+ ctx->Update = (void *) sha384Update; -+ ctx->Digest = (void *) sha384Digest; -+ break; -+ case PGPHASHALGO_SHA512: -+ ctx->digestlen = 64; -+ ctx->datalen = 128; -+ ctx->paramlen = sizeof(sha512Param); -+ ctx->param = xcalloc(1, ctx->paramlen); -+ ctx->Reset = (void *) sha512Reset; -+ ctx->Update = (void *) sha512Update; -+ ctx->Digest = (void *) sha512Digest; -+ break; -+#endif -+ case PGPHASHALGO_RIPEMD160: -+ case PGPHASHALGO_MD2: -+ case PGPHASHALGO_TIGER192: -+ case PGPHASHALGO_HAVAL_5_160: -+ default: -+ free(ctx); -+ return NULL; -+ } -+ -+ (*ctx->Reset)(ctx->param); -+ return ctx; -+} -+ -+int rpmDigestUpdate(DIGEST_CTX ctx, const void * data, size_t len) -+{ -+ if (ctx == NULL) -+ return -1; -+ -+ return (*ctx->Update) (ctx->param, data, len); -+} -+ -+int rpmDigestFinal(DIGEST_CTX ctx, void ** datap, size_t *lenp, int asAscii) -+{ -+ byte * digest; -+ char * t; -+ int i; -+ -+ if (ctx == NULL) -+ return -1; -+ digest = xmalloc(ctx->digestlen); -+ -+ /* FIX: check rc */ -+ (void) (*ctx->Digest) (ctx->param, digest); -+ -+ /* Return final digest. */ -+ if (!asAscii) { -+ if (lenp) *lenp = ctx->digestlen; -+ if (datap) { -+ *datap = digest; -+ digest = NULL; -+ } -+ } else { -+ if (lenp) *lenp = (2*ctx->digestlen) + 1; -+ if (datap) { -+ const byte * s = (const byte *) digest; -+ static const char hex[] = "0123456789abcdef"; -+ -+ *datap = t = xmalloc((2*ctx->digestlen) + 1); -+ for (i = 0 ; i < ctx->digestlen; i++) { -+ *t++ = hex[ (unsigned)((*s >> 4) & 0x0f) ]; -+ *t++ = hex[ (unsigned)((*s++ ) & 0x0f) ]; -+ } -+ *t = '\0'; -+ } -+ } -+ if (digest) { -+ memset(digest, 0, ctx->digestlen); /* In case it's sensitive */ -+ free(digest); -+ } -+ memset(ctx->param, 0, ctx->paramlen); /* In case it's sensitive */ -+ free(ctx->param); -+ memset(ctx, 0, sizeof(*ctx)); /* In case it's sensitive */ -+ free(ctx); -+ return 0; -+} -+ -+/**************************** helpers ************************************/ -+ -+static inline char * pgpHexCvt(char *t, const byte *s, int nbytes) -+{ -+ static char hex[] = "0123456789abcdef"; -+ while (nbytes-- > 0) { -+ unsigned int i; -+ i = *s++; -+ *t++ = hex[ (i >> 4) & 0xf ]; -+ *t++ = hex[ (i ) & 0xf ]; -+ } -+ *t = '\0'; -+ return t; -+} -+ -+static const char * pgpMpiHex(const byte *p, const byte *pend) -+{ -+ static char prbuf[2048]; -+ char *t = prbuf; -+ int nbytes = pgpMpiLen(p) - 2; -+ if (nbytes > 1024 || nbytes > pend - (p + 2)) -+ return NULL; -+ t = pgpHexCvt(t, p+2, nbytes); -+ return prbuf; -+} -+ -+static int pgpHexSet(int lbits, mpnumber * mpn, const byte * p, const byte * pend) -+{ -+ unsigned int mbits = pgpMpiBits(p); -+ unsigned int nbits; -+ unsigned int nbytes; -+ char *t; -+ unsigned int ix; -+ -+ nbits = (lbits > mbits ? lbits : mbits); -+ nbytes = ((nbits + 7) >> 3); -+ t = xmalloc(2*nbytes+1); -+ ix = 2 * ((nbits - mbits) >> 3); -+ -+ if (ix > 0) memset(t, (int)'0', ix); -+ strcpy(t+ix, pgpMpiHex(p, pend)); -+ (void) mpnsethex(mpn, t); -+ t = _free(t); -+ return 0; -+} -+ -+static void pgpFreeSigRSADSA(pgpDigAlg sa) -+{ -+ if (sa->data) -+ free(sa->data); -+ sa->data = 0; -+} -+ -+static void pgpFreeKeyRSADSA(pgpDigAlg sa) -+{ -+ if (sa->data) -+ free(sa->data); -+ sa->data = 0; -+} -+ -+ -+/****************************** RSA **************************************/ -+ -+struct pgpDigSigRSA_s { -+ mpnumber c; -+}; -+ -+struct pgpDigKeyRSA_s { -+ rsapk rsa_pk; -+}; -+ -+static int pgpSetSigMpiRSA(pgpDigAlg pgpsig, int num, -+ const uint8_t *p, const uint8_t *pend) -+{ -+ struct pgpDigSigRSA_s *sig = pgpsig->data; -+ int rc = 1; -+ -+ switch (num) { -+ case 0: -+ sig = pgpsig->data = xcalloc(1, sizeof(*sig)); -+ (void) mpnsethex(&sig->c, pgpMpiHex(p, pend)); -+ rc = 0; -+ break; -+ } -+ return rc; -+} -+ -+static int pgpSetKeyMpiRSA(pgpDigAlg pgpkey, int num, -+ const uint8_t *p, const uint8_t *pend) -+{ -+ struct pgpDigKeyRSA_s *key = pgpkey->data; -+ int rc = 1; -+ -+ if (!key) -+ key = pgpkey->data = xcalloc(1, sizeof(*key)); -+ switch (num) { -+ case 0: -+ (void) mpbsethex(&key->rsa_pk.n, pgpMpiHex(p, pend)); -+ rc = 0; -+ break; -+ case 1: -+ (void) mpnsethex(&key->rsa_pk.e, pgpMpiHex(p, pend)); -+ rc = 0; -+ break; -+ } -+ return rc; -+} -+ -+static inline unsigned char nibble(char c) -+{ -+ if (c >= '0' && c <= '9') -+ return (c - '0'); -+ if (c >= 'A' && c <= 'F') -+ return (c - 'A') + 10; -+ if (c >= 'a' && c <= 'f') -+ return (c - 'a') + 10; -+ return 0; -+} -+ -+static int pgpVerifySigRSA(pgpDigAlg pgpkey, pgpDigAlg pgpsig, uint8_t *hash, size_t hashlen, int hash_algo) -+{ -+ struct pgpDigKeyRSA_s *key = pgpkey->data; -+ struct pgpDigSigRSA_s *sig = pgpsig->data; -+ const char * prefix = NULL; -+ mpnumber rsahm; -+ int rc = 1; -+ -+ if (!sig || !key) -+ return rc; -+ -+ switch (hash_algo) { -+ case PGPHASHALGO_MD5: -+ prefix = "3020300c06082a864886f70d020505000410"; -+ break; -+ case PGPHASHALGO_SHA1: -+ prefix = "3021300906052b0e03021a05000414"; -+ break; -+ case PGPHASHALGO_MD2: -+ prefix = "3020300c06082a864886f70d020205000410"; -+ break; -+ case PGPHASHALGO_SHA256: -+ prefix = "3031300d060960864801650304020105000420"; -+ break; -+ case PGPHASHALGO_SHA384: -+ prefix = "3041300d060960864801650304020205000430"; -+ break; -+ case PGPHASHALGO_SHA512: -+ prefix = "3051300d060960864801650304020305000440"; -+ break; -+ default: -+ return 1; -+ } -+ -+ /* Generate RSA modulus parameter. */ -+ { unsigned int nbits = MP_WORDS_TO_BITS(sig->c.size); -+ unsigned int nb = (nbits + 7) >> 3; -+ byte *buf, *bp; -+ -+ if (nb < 3) -+ return 1; -+ buf = xmalloc(nb); -+ memset(buf, 0xff, nb); -+ buf[0] = 0x00; -+ buf[1] = 0x01; -+ bp = buf + nb - strlen(prefix)/2 - hashlen - 1; -+ if (bp < buf) -+ return 1; -+ *bp++ = 0; -+ for (; *prefix; prefix += 2) -+ *bp++ = (nibble(prefix[0]) << 4) | nibble(prefix[1]); -+ memcpy(bp, hash, hashlen); -+ mpnzero(&rsahm); -+ (void) mpnsetbin(&rsahm, buf, nb); -+ buf = _free(buf); -+ } -+#if HAVE_BEECRYPT_API_H -+ rc = rsavrfy(&key->rsa_pk.n, &key->rsa_pk.e, &sig->c, &rsahm) == 1 ? 0 : 1; -+#else -+ rc = rsavrfy(&key->rsa_pk, &rsahm, &sig->c) == 1 ? 0 : 1; -+#endif -+ mpnfree(&rsahm); -+ return rc; -+} -+ -+ -+/****************************** DSA **************************************/ -+ -+struct pgpDigSigDSA_s { -+ mpnumber r; -+ mpnumber s; -+}; -+ -+struct pgpDigKeyDSA_s { -+ mpbarrett p; -+ mpbarrett q; -+ mpnumber g; -+ mpnumber y; -+}; -+ -+static int pgpSetSigMpiDSA(pgpDigAlg pgpsig, int num, -+ const uint8_t *p, const uint8_t *pend) -+{ -+ struct pgpDigSigDSA_s *sig = pgpsig->data; -+ int rc = 1; -+ -+ switch (num) { -+ case 0: -+ sig = pgpsig->data = xcalloc(1, sizeof(*sig)); -+ rc = pgpHexSet(160, &sig->r, p, pend); -+ break; -+ case 1: -+ rc = pgpHexSet(160, &sig->s, p, pend); -+ break; -+ } -+ return rc; -+} -+ -+static int pgpSetKeyMpiDSA(pgpDigAlg pgpkey, int num, -+ const uint8_t *p, const uint8_t *pend) -+{ -+ struct pgpDigKeyDSA_s *key = pgpkey->data; -+ int rc = 1; -+ -+ if (!key) -+ key = pgpkey->data = xcalloc(1, sizeof(*key)); -+ -+ switch (num) { -+ case 0: -+ mpbsethex(&key->p, pgpMpiHex(p, pend)); -+ rc = 0; -+ break; -+ case 1: -+ mpbsethex(&key->q, pgpMpiHex(p, pend)); -+ rc = 0; -+ break; -+ case 2: -+ mpnsethex(&key->g, pgpMpiHex(p, pend)); -+ rc = 0; -+ break; -+ case 3: -+ mpnsethex(&key->y, pgpMpiHex(p, pend)); -+ rc = 0; -+ break; -+ } -+ return rc; -+} -+ -+static int pgpVerifySigDSA(pgpDigAlg pgpkey, pgpDigAlg pgpsig, uint8_t *hash, size_t hashlen, int hash_algo) -+{ -+ struct pgpDigKeyDSA_s *key = pgpkey->data; -+ struct pgpDigSigDSA_s *sig = pgpsig->data; -+ mpnumber hm; -+ int rc = 1; -+ -+ if (sig && key) { -+ mpnzero(&hm); -+ mpnsetbin(&hm, hash, hashlen); -+ rc = dsavrfy(&key->p, &key->q, &key->g, &hm, &key->y, &sig->r, &sig->s) == 1 ? 0 : 1; -+ mpnfree(&hm); -+ } -+ return rc; -+} -+ -+static int pgpSetMpiNULL(pgpDigAlg pgpkey, int num, -+ const uint8_t *p, const uint8_t *pend) -+{ -+ return 1; -+} -+ -+static int pgpVerifyNULL(pgpDigAlg pgpkey, pgpDigAlg pgpsig, -+ uint8_t *hash, size_t hashlen, int hash_algo) -+{ -+ return 1; -+} -+ -+pgpDigAlg pgpPubkeyNew(int algo) -+{ -+ pgpDigAlg ka = xcalloc(1, sizeof(*ka));; -+ -+ switch (algo) { -+ case PGPPUBKEYALGO_RSA: -+ ka->setmpi = pgpSetKeyMpiRSA; -+ ka->free = pgpFreeKeyRSADSA; -+ ka->mpis = 2; -+ break; -+ case PGPPUBKEYALGO_DSA: -+ ka->setmpi = pgpSetKeyMpiDSA; -+ ka->free = pgpFreeKeyRSADSA; -+ ka->mpis = 4; -+ break; -+ default: -+ ka->setmpi = pgpSetMpiNULL; -+ ka->mpis = -1; -+ break; -+ } -+ -+ ka->verify = pgpVerifyNULL; /* keys can't be verified */ -+ -+ return ka; -+} -+ -+pgpDigAlg pgpSignatureNew(int algo) -+{ -+ pgpDigAlg sa = xcalloc(1, sizeof(*sa)); -+ -+ switch (algo) { -+ case PGPPUBKEYALGO_RSA: -+ sa->setmpi = pgpSetSigMpiRSA; -+ sa->free = pgpFreeSigRSADSA; -+ sa->verify = pgpVerifySigRSA; -+ sa->mpis = 1; -+ break; -+ case PGPPUBKEYALGO_DSA: -+ sa->setmpi = pgpSetSigMpiDSA; -+ sa->free = pgpFreeSigRSADSA; -+ sa->verify = pgpVerifySigDSA; -+ sa->mpis = 2; -+ break; -+ default: -+ sa->setmpi = pgpSetMpiNULL; -+ sa->verify = pgpVerifyNULL; -+ sa->mpis = -1; -+ break; -+ } -+ return sa; -+} ---- rpmio/Makefile.am -+++ rpmio/Makefile.am -@@ -2,6 +2,7 @@ - - AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/include/ - AM_CPPFLAGS += @WITH_NSS_INCLUDE@ -+AM_CPPFLAGS += @WITH_BEECRYPT_INCLUDE@ - AM_CPPFLAGS += @WITH_POPT_INCLUDE@ - AM_CPPFLAGS += -I$(top_srcdir)/misc - AM_CPPFLAGS += -DRPMCONFIGDIR="\"@RPMCONFIGDIR@\"" -@@ -17,12 +18,17 @@ - rpmstring.c rpmfileutil.c \ - rpmkeyring.c - -+if WITH_BEECRYPT -+librpmio_la_SOURCES += digest_beecrypt.c -+else - librpmio_la_SOURCES += digest_nss.c -+endif - - librpmio_la_LDFLAGS = -version-info 3:3:0 - librpmio_la_LIBADD = \ - ../misc/libmisc.la \ - @WITH_NSS_LIB@ \ -+ @WITH_BEECRYPT_LIB@ \ - @WITH_BZ2_LIB@ \ - @WITH_ZLIB_LIB@ \ - @WITH_LIBELF_LIB@ \ -@@ -30,6 +36,15 @@ - @WITH_LZMA_LIB@ \ - -lpthread - -+if WITH_INTERNAL_BEECRYPT -+librpmio_la_LIBADD += $(libbeecrypt_la) -+ -+libbeecrypt_la = $(top_builddir)/beecrypt/libbeecrypt_nolibdir.la -+ -+$(top_builddir)/beecrypt/libbeecrypt_nolibdir.la: $(top_builddir)/beecrypt/libbeecrypt.la -+ sed -e 's/libdir=.*/libdir=/' < $(top_builddir)/beecrypt/libbeecrypt.la > $(top_builddir)/beecrypt/libbeecrypt_nolibdir.la -+endif -+ - if WITH_LUA - AM_CPPFLAGS += -I$(top_srcdir)/luaext/ - AM_CPPFLAGS += @LUA_CFLAGS@ diff --git a/rpm-shorten-changelog.diff b/rpm-shorten-changelog.diff index 01d52fa..bc09fd3 100644 --- a/rpm-shorten-changelog.diff +++ b/rpm-shorten-changelog.diff @@ -1,6 +1,6 @@ ---- build/pack.c -+++ build/pack.c -@@ -573,6 +573,63 @@ +--- ./build/pack.c.orig 2013-06-10 15:55:10.000000000 +0000 ++++ ./build/pack.c 2013-07-12 11:59:37.000000000 +0000 +@@ -540,6 +540,63 @@ static rpmRC checkPackages(char *pkgchec return RPMRC_OK; } @@ -63,8 +63,8 @@ + rpmRC packageBinaries(rpmSpec spec, const char *cookie, int cheating) { - struct cpioSourceArchive_s csabuf; -@@ -582,6 +639,7 @@ + rpmRC rc; +@@ -547,6 +604,7 @@ rpmRC packageBinaries(rpmSpec spec, cons Package pkg; char *pkglist = NULL; @@ -72,9 +72,9 @@ for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) { char *fn; ---- build/parseChangelog.c -+++ build/parseChangelog.c -@@ -168,6 +168,11 @@ +--- ./build/parseChangelog.c.orig 2012-11-18 08:21:06.000000000 +0000 ++++ ./build/parseChangelog.c 2013-07-12 11:59:37.000000000 +0000 +@@ -183,6 +183,11 @@ static rpmRC addChangelog(Header h, ARGV goto exit; } diff --git a/rpm.changes b/rpm.changes index 4d3304a..a68347b 100644 --- a/rpm.changes +++ b/rpm.changes @@ -1,3 +1,17 @@ +------------------------------------------------------------------- +Fri Jul 12 15:36:43 CEST 2013 - mls@suse.de + +- update to rpm-4.11.1 + * fix bogus file conflict on symlink permissions + * fix replaced files not getting reported at all during verification + * fix explicit file conflicts in installed packages being ignored + * fix multiple corner cases in config file handling + * fix disk-space accounting bugs + * report replacing directories with non-directories as file conflict +- package rpmdb_* database tools +- get rid of kernel symbol requires/provides, instead add simple + package provides/requires like in Fedora + ------------------------------------------------------------------- Tue Jul 2 09:53:02 UTC 2013 - dmueller@suse.com diff --git a/rpm.spec b/rpm.spec index aea2f6d..734cd9d 100644 --- a/rpm.spec +++ b/rpm.spec @@ -47,9 +47,9 @@ PreReq: %fillup_prereq Summary: The RPM Package Manager License: GPL-2.0+ Group: System/Packages -Version: 4.10.3.1 +Version: 4.11.1 Release: 0 -Source: http://rpm.org/releases/rpm-4.10.x/rpm-%{version}.tar.bz2 +Source: http://rpm.org/releases/rpm-4.11.x/rpm-%{version}.tar.bz2 Source1: RPM-HOWTO.tar.bz2 Source2: RPM-Tips.html.tar.bz2 Source4: rpm-suse_macros @@ -63,7 +63,6 @@ Source12: baselibs.conf Patch1: beecrypt-4.1.2.diff Patch2: db.diff # quilt patches start here -Patch10: rpm-beecrypt.diff Patch11: debugedit.diff Patch13: ignore-auxv.diff Patch12: localetag.diff @@ -133,9 +132,8 @@ Patch76: python3-abi-kind.diff Patch77: langnoc.diff Patch78: headerchk2.diff Patch79: helperenv.diff -Patch80: config-guess-sub-update.diff -Patch81: debugedit-aarch64.diff -Patch82: psm-errno.patch +Patch80: psm-errno.diff +Patch81: getauxval.diff Patch6464: auto-config-update-aarch64.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build # @@ -213,19 +211,16 @@ tar xjf %{SOURCE11} ln -s db-4.8.30 db ln -s beecrypt-4.1.2 beecrypt chmod -R u+w db/* -#tar xjf %{SOURCE12} -#ln -s neon-0.24.7 neon -# will get linked from db3 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 11 -P 12 -P 13 -P 14 -P 15 -P 16 -P 17 -P 18 -P 19 %patch -P 20 -P 21 -P 22 -P 23 -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 40 -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 81 -P 82 +%patch -P 80 -P 81 %ifarch aarch64 %patch6464 %endif @@ -333,7 +328,7 @@ pushd %{buildroot}/usr/lib/rpm/ for f in rpm2cpio.sh rpm.daily rpmdiff* rpm.log rpm.xinetd freshen.sh u_pkg.sh \ magic magic.mgc magic.mime* rpmfile *.pl javadeps brp-redhat \ brp-strip-static-archive vpkg-provides*.sh http.req sql.req tcl.req \ - rpmdb_* brp-sparc64-linux brp-strip-comment-note brp-java-gcjcompile + brp-sparc64-linux brp-strip-comment-note brp-java-gcjcompile do rm -f $f done diff --git a/rpmrc.diff b/rpmrc.diff index 1d90ee8..e5a1b4c 100644 --- a/rpmrc.diff +++ b/rpmrc.diff @@ -1,5 +1,5 @@ ---- rpmrc.in -+++ rpmrc.in +--- ./rpmrc.in.orig 2013-06-10 15:55:10.000000000 +0000 ++++ ./rpmrc.in 2013-07-12 11:56:53.000000000 +0000 @@ -12,16 +12,16 @@ # "fat" binary with both archs, for Darwin optflags: fat -O2 -g -arch i386 -arch ppc @@ -26,7 +26,7 @@ optflags: amd64 -O2 -g optflags: ia32e -O2 -g -@@ -41,16 +41,17 @@ +@@ -41,16 +41,17 @@ optflags: sparc64v -O2 -g -m64 -mtune=ni optflags: m68k -O2 -g -fomit-frame-pointer @@ -52,7 +52,7 @@ optflags: hppa1.0 -O2 -g -mpa-risc-1-0 optflags: hppa1.1 -O2 -g -mpa-risc-1-0 optflags: hppa1.2 -O2 -g -mpa-risc-1-0 -@@ -66,7 +67,9 @@ +@@ -66,7 +67,9 @@ optflags: armv4tl -O2 -g -march=armv4t optflags: armv5tel -O2 -g -march=armv5te optflags: armv5tejl -O2 -g -march=armv5te optflags: armv6l -O2 -g -march=armv6 @@ -62,7 +62,7 @@ optflags: atarist -O2 -g -fomit-frame-pointer optflags: atariste -O2 -g -fomit-frame-pointer -@@ -76,12 +79,13 @@ +@@ -76,8 +79,8 @@ optflags: atariclone -O2 -g -fomit-frame optflags: milan -O2 -g -fomit-frame-pointer optflags: hades -O2 -g -fomit-frame-pointer @@ -73,12 +73,7 @@ optflags: sh3 -O2 -g optflags: sh4 -O2 -g -mieee - optflags: sh4a -O2 -g -mieee -+optflags: aarch64 -O2 -g - - ############################################################# - # Canonical arch names and numbers -@@ -141,7 +145,9 @@ +@@ -178,7 +181,9 @@ arch_canon: armv4l: armv4l 12 arch_canon: armv5tel: armv5tel 12 arch_canon: armv5tejl: armv5tejl 12 arch_canon: armv6l: armv6l 12 @@ -88,15 +83,7 @@ arch_canon: m68kmint: m68kmint 13 arch_canon: atarist: m68kmint 13 -@@ -166,6 +172,7 @@ - arch_canon: sh4: sh4 17 - arch_canon: sh4a: sh4a 17 - arch_canon: xtensa: xtensa 18 -+arch_canon: aarch64: aarch64 19 - - ############################################################# - # Canonical OS names and numbers -@@ -203,17 +210,17 @@ +@@ -241,17 +246,17 @@ os_canon: MacOSX: macosx 21 ############################################################# # For a given uname().machine, the default build arch @@ -122,7 +109,7 @@ buildarchtranslate: i486: i386 buildarchtranslate: i386: i386 -@@ -243,6 +250,7 @@ +@@ -281,6 +286,7 @@ buildarchtranslate: ppcpseries: ppc buildarchtranslate: ppc64iseries: ppc64 buildarchtranslate: ppc64pseries: ppc64 buildarchtranslate: ppc64p7: ppc64 @@ -130,20 +117,19 @@ buildarchtranslate: armv3l: armv3l buildarchtranslate: armv4b: armv4b -@@ -251,7 +259,10 @@ +@@ -289,7 +295,9 @@ buildarchtranslate: armv4tl: armv4tl buildarchtranslate: armv5tel: armv5tel buildarchtranslate: armv5tejl: armv5tejl buildarchtranslate: armv6l: armv6l +buildarchtranslate: armv6hl: armv6hl buildarchtranslate: armv7l: armv7l +buildarchtranslate: armv7hl: armv7hl -+buildarchtranslate: aarch64: aarch64 buildarchtranslate: atarist: m68kmint buildarchtranslate: atariste: m68kmint -@@ -274,6 +285,15 @@ - buildarchtranslate: sh4: sh4 - buildarchtranslate: sh4a: sh4 +@@ -314,6 +322,15 @@ buildarchtranslate: sh4a: sh4 + + buildarchtranslate: aarch64: aarch64 +buildarchtranslate: parisc: hppa +buildarchtranslate: hppa2.0: hppa @@ -157,7 +143,7 @@ ############################################################# # Architecture compatibility -@@ -330,14 +350,20 @@ +@@ -370,14 +387,20 @@ arch_compat: mipsel: noarch arch_compat: hppa2.0: hppa1.2 arch_compat: hppa1.2: hppa1.1 arch_compat: hppa1.1: hppa1.0 @@ -180,7 +166,7 @@ arch_compat: armv4tl: armv4l arch_compat: armv4l: armv3l arch_compat: armv3l: noarch -@@ -354,7 +380,7 @@ +@@ -394,7 +417,7 @@ arch_compat: i370: noarch arch_compat: s390: noarch arch_compat: s390x: s390 noarch @@ -189,16 +175,7 @@ arch_compat: x86_64: amd64 em64t athlon noarch arch_compat: amd64: x86_64 em64t athlon noarch -@@ -364,6 +390,8 @@ - arch_compat: sh4: noarch - arch_compat: sh4a: sh4 - -+arch_compat: aarch64: noarch -+ - os_compat: IRIX64: IRIX - os_compat: solaris2.7: solaris2.3 solaris2.4 solaris2.5 solaris2.6 - os_compat: solaris2.6: solaris2.3 solaris2.4 solaris2.5 -@@ -439,7 +467,9 @@ +@@ -483,7 +506,9 @@ buildarch_compat: mips: noarch buildarch_compat: mipsel: noarch buildarch_compat: armv4b: noarch @@ -208,7 +185,7 @@ buildarch_compat: armv6l: armv5tejl buildarch_compat: armv5tejl: armv5tel buildarch_compat: armv5tel: armv4tl -@@ -450,7 +480,8 @@ +@@ -494,7 +519,8 @@ buildarch_compat: armv3l: noarch buildarch_compat: hppa2.0: hppa1.2 buildarch_compat: hppa1.2: hppa1.1 buildarch_compat: hppa1.1: hppa1.0 @@ -218,11 +195,3 @@ buildarch_compat: parisc: noarch buildarch_compat: atarist: m68kmint noarch -@@ -473,6 +504,7 @@ - buildarch_compat: sh3: noarch - buildarch_compat: sh4: noarch - buildarch_compat: sh4a: sh4 -+buildarch_compat: aarch64: noarch - - # \endverbatim - #*/ diff --git a/specfilemacro.diff b/specfilemacro.diff index a9663dc..191c7f3 100644 --- a/specfilemacro.diff +++ b/specfilemacro.diff @@ -1,10 +1,10 @@ ---- ./build/parseSpec.c.orig 2010-12-03 12:11:57.000000000 +0000 -+++ ./build/parseSpec.c 2011-05-11 15:58:37.000000000 +0000 -@@ -519,6 +519,7 @@ static rpmSpec parseSpec(const char *spe +--- ./build/parseSpec.c.orig 2013-06-10 15:55:10.000000000 +0000 ++++ ./build/parseSpec.c 2013-07-12 12:04:11.000000000 +0000 +@@ -561,6 +561,7 @@ static rpmSpec parseSpec(const char *spe spec = newSpec(); spec->specFile = rpmGetPath(specFile, NULL); + addMacro(spec->macros, "_specfile", NULL, spec->specFile, RMIL_SPEC); - spec->fileStack = newOpenFileInfo(); - spec->fileStack->fileName = xstrdup(spec->specFile); + pushOFI(spec, spec->specFile); /* If buildRoot not specified, use default %{buildroot} */ + if (buildRoot) { diff --git a/weakdeps.diff b/weakdeps.diff index b1b8002..027eac3 100644 --- a/weakdeps.diff +++ b/weakdeps.diff @@ -14,9 +14,9 @@ B) use RPMSENSE_STRONG to support a "strong" version, "Recommends" Needs extcond.diff for query operations. ---- build/parsePreamble.c -+++ build/parsePreamble.c -@@ -342,6 +342,8 @@ +--- ./build/parsePreamble.c.orig 2013-06-27 09:28:49.000000000 +0000 ++++ ./build/parsePreamble.c 2013-07-12 11:32:45.000000000 +0000 +@@ -341,6 +341,8 @@ static struct tokenBits_s const installS { "verify", RPMSENSE_SCRIPT_VERIFY }, { "pretrans", RPMSENSE_PRETRANS }, { "posttrans", RPMSENSE_POSTTRANS }, @@ -25,8 +25,8 @@ Needs extcond.diff for query operations. { NULL, 0 } }; -@@ -816,6 +818,18 @@ - if (parseRCPOT(spec, pkg, field, tag, 0, tagflags)) +@@ -795,6 +797,18 @@ static rpmRC handlePreambleTag(rpmSpec s + if (parseRCPOT(spec, spec->sourcePackage, field, tag, 0, tagflags)) goto exit; break; + case RPMTAG_SUGGESTSFLAGS: @@ -44,7 +44,7 @@ Needs extcond.diff for query operations. case RPMTAG_EXCLUDEARCH: case RPMTAG_EXCLUSIVEARCH: case RPMTAG_EXCLUDEOS: -@@ -924,6 +938,14 @@ +@@ -903,6 +917,14 @@ static struct PreambleRec_s const preamb {RPMTAG_BUGURL, 0, 0, LEN_AND_STR("bugurl")}, {RPMTAG_COLLECTIONS, 0, 0, LEN_AND_STR("collections")}, {RPMTAG_ORDERFLAGS, 2, 0, LEN_AND_STR("orderwithrequires")}, @@ -59,11 +59,11 @@ Needs extcond.diff for query operations. {0, 0, 0, 0} }; ---- build/parseReqs.c -+++ build/parseReqs.c -@@ -95,6 +95,20 @@ +--- ./build/parseReqs.c.orig 2013-06-10 15:55:10.000000000 +0000 ++++ ./build/parseReqs.c 2013-07-12 11:32:45.000000000 +0000 +@@ -92,6 +92,18 @@ rpmRC parseRCPOT(rpmSpec spec, Package p + case RPMTAG_BUILDCONFLICTS: nametag = RPMTAG_CONFLICTNAME; - h = spec->buildRestrictions; break; + case RPMTAG_SUGGESTSFLAGS: + nametag = RPMTAG_SUGGESTSNAME; @@ -73,20 +73,18 @@ Needs extcond.diff for query operations. + break; + case RPMTAG_BUILDSUGGESTS: + nametag = RPMTAG_SUGGESTSNAME; -+ h = spec->buildRestrictions; + break; + case RPMTAG_BUILDENHANCES: + nametag = RPMTAG_ENHANCESNAME; -+ h = spec->buildRestrictions; + break; } for (r = field; *r != '\0'; r = re) { ---- build/reqprov.c -+++ build/reqprov.c -@@ -75,6 +75,16 @@ - indextag = RPMTAG_TRIGGERINDEX; +--- ./build/reqprov.c.orig 2013-06-10 15:55:10.000000000 +0000 ++++ ./build/reqprov.c 2013-07-12 11:32:45.000000000 +0000 +@@ -81,6 +81,16 @@ int addReqProv(Package pkg, rpmTagVal ta extra = Flags & RPMSENSE_TRIGGER; + dsp = &pkg->triggers; break; + case RPMTAG_SUGGESTSNAME: + versiontag = RPMTAG_SUGGESTSVERSION; @@ -101,9 +99,9 @@ Needs extcond.diff for query operations. case RPMTAG_REQUIRENAME: default: tagN = RPMTAG_REQUIRENAME; ---- build/rpmfc.c -+++ build/rpmfc.c -@@ -1084,6 +1084,12 @@ +--- ./build/rpmfc.c.orig 2013-06-10 15:55:10.000000000 +0000 ++++ ./build/rpmfc.c 2013-07-12 11:32:45.000000000 +0000 +@@ -1087,6 +1087,12 @@ static struct DepMsg_s depMsgs[] = { { "Obsoletes", { "%{?__find_obsoletes}", NULL, NULL, NULL }, RPMTAG_OBSOLETENAME, RPMTAG_OBSOLETEVERSION, RPMTAG_OBSOLETEFLAGS, 0, -1 }, @@ -116,7 +114,7 @@ Needs extcond.diff for query operations. { NULL, { NULL, NULL, NULL, NULL }, 0, 0, 0, 0, 0 } }; -@@ -1160,6 +1166,14 @@ +@@ -1163,6 +1169,14 @@ static rpmRC rpmfcGenerateDependsHelper( continue; tagflags = RPMSENSE_FIND_REQUIRES; break; @@ -131,9 +129,9 @@ Needs extcond.diff for query operations. default: continue; break; ---- lib/formats.c -+++ lib/formats.c -@@ -486,6 +486,19 @@ +--- ./lib/formats.c.orig 2012-11-18 08:21:06.000000000 +0000 ++++ ./lib/formats.c 2013-07-12 11:32:45.000000000 +0000 +@@ -486,6 +486,19 @@ static char * depflagsFormat(rpmtd td) return val; } @@ -153,7 +151,7 @@ Needs extcond.diff for query operations. /** * Return tag container array size. * @param td tag data container -@@ -591,6 +604,7 @@ +@@ -591,6 +604,7 @@ static const struct headerFormatFunc_s r { RPMTD_FORMAT_VFLAGS, "vflags", vflagsFormat }, { RPMTD_FORMAT_EXPAND, "expand", expandFormat }, { RPMTD_FORMAT_FSTATUS, "fstatus", fstatusFormat }, @@ -161,9 +159,9 @@ Needs extcond.diff for query operations. { -1, NULL, NULL } }; ---- lib/rpmds.c -+++ lib/rpmds.c -@@ -69,6 +69,10 @@ +--- ./lib/rpmds.c.orig 2013-06-10 15:55:10.000000000 +0000 ++++ ./lib/rpmds.c 2013-07-12 11:32:45.000000000 +0000 +@@ -70,6 +70,10 @@ static int dsType(rpmTagVal tag, t = "Trigger"; evr = RPMTAG_TRIGGERVERSION; f = RPMTAG_TRIGGERFLAGS; @@ -174,9 +172,9 @@ Needs extcond.diff for query operations. } else { rc = 1; } ---- lib/rpmds.h -+++ lib/rpmds.h -@@ -48,7 +48,7 @@ +--- ./lib/rpmds.h.orig 2013-06-10 15:55:10.000000000 +0000 ++++ ./lib/rpmds.h 2013-07-12 11:32:45.000000000 +0000 +@@ -48,7 +48,7 @@ enum rpmsenseFlags_e { RPMSENSE_RPMLIB = (1 << 24), /*!< rpmlib(feature) dependency. */ RPMSENSE_TRIGGERPREIN = (1 << 25), /*!< %triggerprein dependency. */ RPMSENSE_KEYRING = (1 << 26), @@ -185,7 +183,7 @@ Needs extcond.diff for query operations. RPMSENSE_CONFIG = (1 << 28) }; -@@ -70,6 +70,7 @@ +@@ -70,6 +70,7 @@ typedef rpmFlags rpmsenseFlags; RPMSENSE_FIND_REQUIRES | \ RPMSENSE_RPMLIB | \ RPMSENSE_KEYRING | \ @@ -193,9 +191,9 @@ Needs extcond.diff for query operations. RPMSENSE_PRETRANS | \ RPMSENSE_POSTTRANS | \ RPMSENSE_PREREQ | \ ---- lib/rpmtag.h -+++ lib/rpmtag.h -@@ -217,14 +217,14 @@ +--- ./lib/rpmtag.h.orig 2012-11-18 08:21:06.000000000 +0000 ++++ ./lib/rpmtag.h 2013-07-12 11:32:45.000000000 +0000 +@@ -217,14 +217,14 @@ typedef enum rpmTag_e { RPMTAG_PRETRANSPROG = 1153, /* s[] */ RPMTAG_POSTTRANSPROG = 1154, /* s[] */ RPMTAG_DISTTAG = 1155, /* s */ @@ -218,9 +216,9 @@ Needs extcond.diff for query operations. RPMTAG_PRIORITY = 1162, /* i[] extension placeholder (unimplemented) */ RPMTAG_CVSID = 1163, /* s (unimplemented) */ #define RPMTAG_SVNID RPMTAG_CVSID /* s (unimplemented) */ ---- lib/rpmtd.h -+++ lib/rpmtd.h -@@ -228,6 +228,7 @@ +--- ./lib/rpmtd.h.orig 2012-11-18 08:21:06.000000000 +0000 ++++ ./lib/rpmtd.h 2013-07-12 11:32:45.000000000 +0000 +@@ -228,6 +228,7 @@ typedef enum rpmtdFormats_e { RPMTD_FORMAT_VFLAGS = 17, /* file verify flags (int types) */ RPMTD_FORMAT_EXPAND = 18, /* macro expansion (string types) */ RPMTD_FORMAT_FSTATUS = 19, /* file verify status (int types) */ @@ -228,9 +226,9 @@ Needs extcond.diff for query operations. } rpmtdFormats; /** \ingroup rpmtd ---- python/rpmmodule.c -+++ python/rpmmodule.c -@@ -395,6 +395,7 @@ +--- ./python/rpmmodule.c.orig 2012-11-18 08:21:06.000000000 +0000 ++++ ./python/rpmmodule.c 2013-07-12 11:32:45.000000000 +0000 +@@ -393,6 +393,7 @@ static int initModule(PyObject *m) REGISTER_ENUM(RPMSENSE_RPMLIB); REGISTER_ENUM(RPMSENSE_TRIGGERPREIN); REGISTER_ENUM(RPMSENSE_KEYRING); @@ -238,9 +236,9 @@ Needs extcond.diff for query operations. REGISTER_ENUM(RPMSENSE_CONFIG); REGISTER_ENUM(RPMTRANS_FLAG_TEST); ---- rpmpopt.in -+++ rpmpopt.in -@@ -67,6 +67,22 @@ +--- ./rpmpopt.in.orig 2012-12-18 15:50:36.000000000 +0000 ++++ ./rpmpopt.in 2013-07-12 11:32:45.000000000 +0000 +@@ -67,6 +67,22 @@ rpm alias --requires --qf \ --POPTdesc=$"list capabilities required by package(s)" rpm alias -R --requires @@ -263,9 +261,9 @@ Needs extcond.diff for query operations. rpm alias --info --qf '\ Name : %{NAME}\n\ %|EPOCH?{Epoch : %{EPOCH}\n}|\ ---- tests/rpmgeneral.at -+++ tests/rpmgeneral.at -@@ -79,6 +79,10 @@ +--- ./tests/rpmgeneral.at.orig 2012-11-18 08:21:06.000000000 +0000 ++++ ./tests/rpmgeneral.at 2013-07-12 11:32:45.000000000 +0000 +@@ -79,6 +79,10 @@ DISTTAG DISTURL DSAHEADER E @@ -276,7 +274,7 @@ Needs extcond.diff for query operations. EPOCH EPOCHNUM EVR -@@ -219,6 +223,10 @@ +@@ -219,6 +223,10 @@ SOURCE SOURCEPACKAGE SOURCEPKGID SOURCERPM