Hello community, here is the log from the commit of package rpm for openSUSE:Factory checked in at 2014-02-28 16:22:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rpm (Old) and /work/SRC/openSUSE:Factory/.rpm.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rpm" Changes: -------- rpm-python.changes: same change --- /work/SRC/openSUSE:Factory/rpm/rpm.changes 2014-02-07 10:29:47.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.rpm.new/rpm.changes 2014-02-28 16:22:19.000000000 +0100 @@ -1,0 +2,33 @@ +Tue Feb 25 15:19:48 CET 2014 - m...@suse.de + +- fix bug in weakdepscompa.diff patch + +------------------------------------------------------------------- +Fri Feb 21 13:33:48 CET 2014 - m...@suse.de + +- make the 'douple separator' error a warning + new patch: checksepwarn.diff + +------------------------------------------------------------------- +Thu Feb 20 16:24:24 CET 2014 - m...@suse.de + +- cherry-pick new weakdeps tags from upstream + new patch: newweakdeps.diff + dropped: weakdeps.diff +- add weakdepscompat.diff to support querying the old tags + +------------------------------------------------------------------- +Thu Feb 20 15:37:49 CET 2014 - m...@suse.de + +- drop outdated and non-free RPM-Tips tarball [bnc#849465] + +------------------------------------------------------------------- +Thu Feb 20 14:17:58 CET 2014 - m...@suse.de + +- update to rpm-4.11.2 + * dropped patches: appdata_provides.diff, application_provides.diff, + beedigest.diff, debug_gdb_scripts.diff, getauxval.diff, + ignore_poolstr_dummy_entries.diff, ppc64le.diff, + selfconflicts.diff, strpoolrehash.diff + +------------------------------------------------------------------- Old: ---- RPM-Tips.html.tar.bz2 appdata_provides.diff application_provides.diff beedigest.diff debug_gdb_scripts.diff getauxval.diff ignore_poolstr_dummy_entries.diff ppc64le.diff rpm-4.11.1.tar.bz2 selfconflicts.diff strpoolrehash.diff weakdeps.diff New: ---- checksepwarn.diff newweakdeps.diff rpm-4.11.2.tar.bz2 weakdepscompat.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python3-rpm.spec ++++++ --- /var/tmp/diff_new_pack.pc7JGa/_old 2014-02-28 16:22:20.000000000 +0100 +++ /var/tmp/diff_new_pack.pc7JGa/_new 2014-02-28 16:22:20.000000000 +0100 @@ -17,7 +17,7 @@ Name: python3-rpm -Version: 4.11.1 +Version: 4.11.2 Release: 0 Summary: Python Bindings for Manipulating RPM Packages License: GPL-2.0+ @@ -60,8 +60,6 @@ find %{buildroot} -not -type d -and -not -path %{buildroot}%{_libdir}/python3*/site-packages/rpm/\* -print0 | xargs -0 rm pushd %{buildroot}/%{_libdir}/python3*/site-packages/rpm rm -f _rpm*.la _rpm*.a -# python3 no longer looks at "XXXmodule.so" -for i in _rpm*module.so ; do mv $i ${i%module.so}.so; done python3 %{_libdir}/python3*/py_compile.py *.py python3 -O %{_libdir}/python3*/py_compile.py *.py popd ++++++ rpm-python.spec ++++++ --- /var/tmp/diff_new_pack.pc7JGa/_old 2014-02-28 16:22:20.000000000 +0100 +++ /var/tmp/diff_new_pack.pc7JGa/_new 2014-02-28 16:22:20.000000000 +0100 @@ -17,7 +17,7 @@ Name: rpm-python -Version: 4.11.1 +Version: 4.11.2 Release: 0 #!BuildIgnore: rpmlint-Factory Summary: Python Bindings for Manipulating RPM Packages @@ -61,7 +61,7 @@ %make_install find %{buildroot} -not -type d -and -not -path %{buildroot}%{_libdir}/python%{py_ver}/site-packages/rpm/\* -print0 | xargs -0 rm pushd %{buildroot}/%py_sitedir/rpm -rm -f _rpmmodule.a _rpmmodule.la +rm -f _rpm*.a _rpm*.la python %py_libdir/py_compile.py *.py python -O %py_libdir/py_compile.py *.py popd ++++++ rpm.spec ++++++ --- /var/tmp/diff_new_pack.pc7JGa/_old 2014-02-28 16:22:20.000000000 +0100 +++ /var/tmp/diff_new_pack.pc7JGa/_new 2014-02-28 16:22:20.000000000 +0100 @@ -47,11 +47,10 @@ Summary: The RPM Package Manager License: GPL-2.0+ Group: System/Packages -Version: 4.11.1 +Version: 4.11.2 Release: 0 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 Source5: rpmsort Source6: symset-table @@ -63,6 +62,7 @@ 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 +74,6 @@ Patch19: rpmrctests.diff Patch20: waitlock.diff Patch21: suspendlock.diff -Patch22: weakdeps.diff Patch23: autodeps.diff Patch24: brp.diff Patch25: brpcompress.diff @@ -132,20 +131,11 @@ Patch78: headerchk2.diff Patch79: helperenv.diff Patch80: psm-errno.diff -Patch81: getauxval.diff Patch82: noposttrans.diff -Patch83: debug_gdb_scripts.diff -Patch84: beedigest.diff Patch85: brp-compress-no-img.patch -Patch86: strpoolrehash.diff -Patch87: ignore_poolstr_dummy_entries.diff -Patch88: selfconflicts.diff -Patch89: application_provides.diff -Patch90: appdata_provides.diff -#upstream commit cf07feda05822377d62b973adc4010c0d7f9eaa0 -#upstream commit ef1497b1f81966fed56f008bc8ee8ba42102efd6 -Patch91: ppc64le.diff Patch92: find-lang-python.patch +Patch93: weakdepscompat.diff +Patch94: checksepwarn.diff Patch6464: auto-config-update-aarch64-ppc64le.diff Patch68000: m68k.patch Patch68001: debugedit-m68k.patch @@ -227,21 +217,22 @@ chmod -R u+w db/* rm -f rpmdb/db.h %patch -P 1 -P 2 -%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 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 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 81 -P 82 -P 83 -P 84 -P 85 -P 86 -P 87 -P 88 -P 89 -%patch -P 90 -P 91 -P 92 +%patch -P 80 -P 82 -P 85 +%patch -P 92 -P 93 -P 94 %ifarch aarch64 ppc64le %patch6464 %endif %patch68000 %patch68001 + cp config.guess config.sub db/dist/ cp config.guess config.sub beecrypt/ #chmod 755 scripts/find-supplements{,.ksyms} @@ -249,7 +240,6 @@ #chmod 755 scripts/firmware.prov #chmod 755 scripts/debuginfo.prov tar -xjvf %{SOURCE1} -tar -xjvf %{SOURCE2} sed -e 's/@suse_version@/%{?suse_version}%{!?suse_version:0}/' \ -e 's/@sles_version@/%{?sles_version}%{!?sles_version:0}/' \ -e 's/@ul_version@/%{?ul_version}%{!?ul_version:0}/' \ @@ -390,7 +380,7 @@ %defattr(-,root,root) %doc CHANGES.gz COPYING GROUPS %doc doc/manual -%doc RPM-HOWTO RPM-Tips +%doc RPM-HOWTO /etc/rpm /bin/rpm /usr/bin/* ++++++ checksepwarn.diff ++++++ --- ./build/parseReqs.c.orig 2014-02-21 12:25:51.259664860 +0000 +++ ./build/parseReqs.c 2014-02-21 12:28:07.545664619 +0000 @@ -178,8 +178,14 @@ rpmRC parseRCPOT(rpmSpec spec, Package p if (rpmCharCheck(spec, EVR, ve-v, ".-_+:%{}~")) goto exit; /* While ':' and '-' are valid, only one of each is valid. */ - if (checkSep(EVR, '-', &emsg) || checkSep(EVR, ':', &emsg)) - goto exit; + if (checkSep(EVR, '-', &emsg) || checkSep(EVR, ':', &emsg)) { + if (tagflags & (RPMSENSE_FIND_REQUIRES|RPMSENSE_FIND_PROVIDES)) { + rpmlog(RPMLOG_WARNING, "%s: %s\n", emsg, r); + } else { + rpmlog(RPMLOG_WARNING, _("line %d: %s: %s\n"), spec->lineNum, emsg, spec->line); + } + emsg = _free(emsg); + } re = ve; /* ==> next token after EVR string starts here */ } else ++++++ fileattrs.diff ++++++ --- /var/tmp/diff_new_pack.pc7JGa/_old 2014-02-28 16:22:20.000000000 +0100 +++ /var/tmp/diff_new_pack.pc7JGa/_new 2014-02-28 16:22:20.000000000 +0100 @@ -1,21 +1,20 @@ ---- ./fileattrs/Makefile.am.orig 2012-03-20 08:07:25.000000000 +0000 -+++ ./fileattrs/Makefile.am 2012-06-01 13:39:16.000000000 +0000 -@@ -6,6 +6,7 @@ fattrsdir = $(rpmconfigdir)/fileattrs - +--- ./fileattrs/Makefile.am.orig 2014-02-20 12:54:01.473814793 +0000 ++++ ./fileattrs/Makefile.am 2014-02-20 12:55:37.318814624 +0000 +@@ -7,6 +7,6 @@ fattrsdir = $(rpmconfigdir)/fileattrs fattrs_DATA = \ - desktop.attr elf.attr font.attr libtool.attr perl.attr perllib.attr \ -- pkgconfig.attr python.attr ocaml.attr script.attr mono.attr -+ pkgconfig.attr python.attr ocaml.attr script.attr mono.attr \ -+ debuginfo.attr elflib.attr firmware.attr ksyms.attr sysvinit.attr + appdata.attr desktop.attr elf.attr font.attr libtool.attr perl.attr \ + perllib.attr pkgconfig.attr python.attr ocaml.attr script.attr \ +- mono.attr ++ mono.attr debuginfo.attr elflib.attr firmware.attr ksyms.attr sysvinit.attr EXTRA_DIST = $(fattrs_DATA) ---- ./fileattrs/debuginfo.attr.orig 2012-06-01 13:39:16.000000000 +0000 -+++ ./fileattrs/debuginfo.attr 2012-06-01 13:39:16.000000000 +0000 +--- ./fileattrs/debuginfo.attr.orig 2014-02-20 12:54:01.473814793 +0000 ++++ ./fileattrs/debuginfo.attr 2014-02-20 12:54:01.473814793 +0000 @@ -0,0 +1,2 @@ +%__debuginfo_provides %{_rpmconfigdir}/debuginfo.prov +%__debuginfo_path ^/usr/lib/debug/ ---- ./fileattrs/elf.attr.orig 2012-03-20 08:07:25.000000000 +0000 -+++ ./fileattrs/elf.attr 2012-06-01 13:40:16.000000000 +0000 +--- ./fileattrs/elf.attr.orig 2012-11-07 12:55:24.000000000 +0000 ++++ ./fileattrs/elf.attr 2014-02-20 12:54:01.474814793 +0000 @@ -1,4 +1,5 @@ %__elf_provides %{_rpmconfigdir}/elfdeps --provides %{?__filter_GLIBC_PRIVATE:--filter-private} %__elf_requires %{_rpmconfigdir}/elfdeps --requires %{?__filter_GLIBC_PRIVATE:--filter-private} @@ -23,43 +22,45 @@ +%__elf_magic ^(setuid )?(setgid )?(sticky )?ELF (32|64)-bit.*executable %__elf_flags exeonly +%__elf_exclude_path ^/usr/lib/debug/ ---- ./fileattrs/elflib.attr.orig 2012-06-01 13:39:16.000000000 +0000 -+++ ./fileattrs/elflib.attr 2012-06-01 13:39:16.000000000 +0000 +--- ./fileattrs/elflib.attr.orig 2014-02-20 12:54:01.474814793 +0000 ++++ ./fileattrs/elflib.attr 2014-02-20 12:54:01.474814793 +0000 @@ -0,0 +1,4 @@ +%__elflib_provides %{_rpmconfigdir}/elfdeps --assume-exec --provides %{?__filter_GLIBC_PRIVATE:--filter-private} +%__elflib_requires %{_rpmconfigdir}/elfdeps --assume-exec --requires %{?__filter_GLIBC_PRIVATE:--filter-private} +%__elflib_magic ^(setuid )?(setgid )?(sticky )?ELF (32|64)-bit.*shared object +%__elflib_exclude_path ^/usr/lib/debug/ ---- ./fileattrs/firmware.attr.orig 2012-06-01 13:39:16.000000000 +0000 -+++ ./fileattrs/firmware.attr 2012-06-01 13:39:16.000000000 +0000 +--- ./fileattrs/firmware.attr.orig 2014-02-20 12:54:01.474814793 +0000 ++++ ./fileattrs/firmware.attr 2014-02-20 12:54:01.474814793 +0000 @@ -0,0 +1,2 @@ +%__firmware_provides %{_rpmconfigdir}/firmware.prov +%__firmware_path /lib/firmware/ ---- ./fileattrs/ksyms.attr.orig 2012-06-01 13:39:16.000000000 +0000 -+++ ./fileattrs/ksyms.attr 2012-06-01 13:39:16.000000000 +0000 +--- ./fileattrs/ksyms.attr.orig 2014-02-20 12:54:01.474814793 +0000 ++++ ./fileattrs/ksyms.attr 2014-02-20 12:54:01.474814793 +0000 @@ -0,0 +1,4 @@ +%__ksyms_provides %{_rpmconfigdir}/find-provides.ksyms %name +%__ksyms_requires %{_rpmconfigdir}/find-requires.ksyms %name +%__ksyms_supplements %{_rpmconfigdir}/find-supplements.ksyms %name +%__ksyms_path (/lib/modules/.*\.ko(\.gz)?)|(/boot/vmlinu[xz].*)$ ---- ./fileattrs/perl.attr.orig 2012-03-20 08:07:25.000000000 +0000 -+++ ./fileattrs/perl.attr 2012-06-01 13:39:16.000000000 +0000 +--- ./fileattrs/perl.attr.orig 2012-11-07 12:55:24.000000000 +0000 ++++ ./fileattrs/perl.attr 2014-02-20 12:54:01.474814793 +0000 @@ -1,3 +1,4 @@ -%__perl_requires %{_rpmconfigdir}/perl.req +# disabled for now +#%__perl_requires %{_rpmconfigdir}/perl.req %__perl_magic ^.*[Pp]erl .*$ %__perl_flags exeonly ---- ./fileattrs/perllib.attr.orig 2012-03-20 08:07:25.000000000 +0000 -+++ ./fileattrs/perllib.attr 2012-06-01 13:39:16.000000000 +0000 -@@ -1,3 +1,4 @@ +--- ./fileattrs/perllib.attr.orig 2014-02-05 13:04:01.000000000 +0000 ++++ ./fileattrs/perllib.attr 2014-02-20 12:54:01.475814793 +0000 +@@ -1,5 +1,6 @@ %__perllib_provides %{_rpmconfigdir}/perl.prov -%__perllib_requires %{_rpmconfigdir}/perl.req +#disabled for now +#%__perllib_requires %{_rpmconfigdir}/perl.req %__perllib_magic ^Perl[[:digit:]] module source.* ---- ./fileattrs/sysvinit.attr.orig 2012-06-01 13:39:16.000000000 +0000 -+++ ./fileattrs/sysvinit.attr 2012-06-01 13:39:16.000000000 +0000 + %__perllib_path \\.pm$ + %__perllib_flags magic_and_path +--- ./fileattrs/sysvinit.attr.orig 2014-02-20 12:54:01.475814793 +0000 ++++ ./fileattrs/sysvinit.attr 2014-02-20 12:54:01.475814793 +0000 @@ -0,0 +1,2 @@ +%__sysvinit_provides %{_rpmconfigdir}/sysvinitdeps.sh --provides +%__sysvinit_path ^/etc/init\.d/ ++++++ findsupplements.diff ++++++ --- /var/tmp/diff_new_pack.pc7JGa/_old 2014-02-28 16:22:21.000000000 +0100 +++ /var/tmp/diff_new_pack.pc7JGa/_new 2014-02-28 16:22:21.000000000 +0100 @@ -1,17 +1,15 @@ -Add support for supplements to the internal dependency generator. - ---- ./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 { - +--- ./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 { -@@ -546,6 +547,22 @@ static int rpmfcHelperRequires(rpmfc fc, - return 0; +@@ -583,6 +584,22 @@ static int rpmfcHelperRequires(rpmfc fc, + RPMSENSE_FIND_REQUIRES, RPMTAG_REQUIRENAME); } +/** @@ -25,7 +23,7 @@ + if (fc->skipReq) + return 0; + -+ rpmfcHelper(fc, nsdep, "supplements", &fc->supplements, RPMSENSE_FIND_REQUIRES|RPMSENSE_STRONG|RPMSENSE_MISSINGOK, RPMTAG_ENHANCESNAME); ++ rpmfcHelper(fc, nsdep, "supplements", &fc->supplements, RPMSENSE_FIND_REQUIRES, RPMTAG_SUPPLEMENTNAME); + + return 0; +} @@ -33,15 +31,16 @@ /* Only used for elf coloring and controlling RPMTAG_FILECLASS inclusion now */ static const struct rpmfcTokens_s rpmfcTokens[] = { { "directory", RPMFC_INCLUDE }, -@@ -763,6 +780,7 @@ rpmfc rpmfcFree(rpmfc fc) +@@ -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); - } -@@ -794,6 +812,11 @@ rpmds rpmfcRequires(rpmfc fc) +@@ -833,6 +852,11 @@ rpmds rpmfcRequires(rpmfc fc) return (fc != NULL ? fc->requires : NULL); } @@ -53,7 +52,7 @@ rpmRC rpmfcApply(rpmfc fc) { const char * s; -@@ -814,6 +837,7 @@ rpmRC rpmfcApply(rpmfc fc) +@@ -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); @@ -61,19 +60,19 @@ } } /* No more additions after this, freeze pool to minimize memory use */ -@@ -858,6 +882,11 @@ rpmRC rpmfcApply(rpmfc fc) +@@ -897,6 +922,11 @@ rpmRC rpmfcApply(rpmfc fc) dix = rpmdsFind(fc->requires, ds); rpmdsFree(ds); break; + case 'S': -+ ds = rpmdsSingle(RPMTAG_ENHANCESNAME, N, EVR, Flags); ++ ds = rpmdsSingle(RPMTAG_SUPPLEMENTNAME, N, EVR, Flags); + dix = rpmdsFind(fc->supplements, ds); + ds = rpmdsFree(ds); + break; } if (dix < 0) -@@ -1341,6 +1370,18 @@ rpmRC rpmfcGenerateDepends(const rpmSpec +@@ -1380,6 +1410,18 @@ rpmRC rpmfcGenerateDepends(const rpmSpec } } @@ -83,17 +82,17 @@ + while (rpmdsNext(pi) >= 0) { + rpmsenseFlags flags = rpmdsFlags(pi); + -+ headerPutString(pkg->header, RPMTAG_ENHANCESNAME, rpmdsN(pi)); -+ headerPutString(pkg->header, RPMTAG_ENHANCESVERSION, rpmdsEVR(pi)); -+ headerPutUint32(pkg->header, RPMTAG_ENHANCESFLAGS, &flags, 1); ++ 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-18 08:21:06.000000000 +0000 -+++ ./build/rpmfc.h 2013-07-12 12:18:48.000000000 +0000 +--- ./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); ++++++ ignore-auxv.diff ++++++ --- /var/tmp/diff_new_pack.pc7JGa/_old 2014-02-28 16:22:21.000000000 +0100 +++ /var/tmp/diff_new_pack.pc7JGa/_new 2014-02-28 16:22:21.000000000 +0100 @@ -1,6 +1,6 @@ ---- lib/rpmrc.c -+++ lib/rpmrc.c -@@ -79,10 +79,12 @@ +--- ./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 { int localize; }; @@ -13,21 +13,21 @@ typedef struct defaultEntry_s { char * name; -@@ -907,7 +909,7 @@ +@@ -914,7 +916,7 @@ static int is_geode(void) #endif -#if defined(__linux__) +#if defined(__linux__) && defined(__powerpc__) /** - * Populate rpmat structure with parsed info from /proc/self/auxv + * Populate rpmat structure with auxv values */ -@@ -957,7 +959,7 @@ +@@ -971,7 +973,7 @@ static void defaultMachine(const char ** canonEntry canon; int rc; -#if defined(__linux__) +#if defined(__linux__) && defined(__powerpc__) /* Populate rpmat struct with hw info */ - parse_auxv(); + read_auxv(); #endif ++++++ initscriptsprov.diff ++++++ --- /var/tmp/diff_new_pack.pc7JGa/_old 2014-02-28 16:22:21.000000000 +0100 +++ /var/tmp/diff_new_pack.pc7JGa/_new 2014-02-28 16:22:21.000000000 +0100 @@ -1,7 +1,5 @@ -Index: autodeps/linux.prov -=================================================================== ---- autodeps/linux.prov.orig 2011-12-09 15:13:23.686700264 +0100 -+++ autodeps/linux.prov 2011-12-09 15:13:23.733698039 +0100 +--- ./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 @@ -12,13 +10,11 @@ + printf "%s\n" "${filelist[@]}" | /usr/lib/rpm/sysvinitdeps.sh -P | sort -u + exit 0 -Index: scripts/Makefile.am -=================================================================== ---- scripts/Makefile.am.orig 2011-12-09 15:13:22.917736665 +0100 -+++ scripts/Makefile.am 2011-12-09 15:13:23.733698039 +0100 +--- ./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 = \ ocaml-find-requires.sh ocaml-find-provides.sh \ - pkgconfigdeps.sh libtooldeps.sh \ + pkgconfigdeps.sh libtooldeps.sh appdata.prov \ fontconfig.prov desktop-file.prov script.req \ + sysvinitdeps.sh \ macros.perl macros.php macros.python @@ -32,10 +28,8 @@ rpmdb_loadcvt rpm2cpio.sh tcl.req tgpg rpmconfig_DATA = \ -Index: scripts/sysvinitdeps.sh -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ scripts/sysvinitdeps.sh 2011-12-09 15:13:23.733698039 +0100 +--- ./scripts/sysvinitdeps.sh.orig 2014-02-20 12:52:40.089814937 +0000 ++++ ./scripts/sysvinitdeps.sh 2014-02-20 12:52:40.089814937 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh + ++++++ newweakdeps.diff ++++++ --- ./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 }, --- ./python/Makefile.am.orig 2014-02-05 13:04:02.000000000 +0000 +++ ./python/Makefile.am 2014-02-20 14:47:48.110802710 +0000 @@ -6,16 +6,16 @@ AM_CPPFLAGS = -I$(top_builddir)/include/ AM_CPPFLAGS += -I$(top_srcdir)/python AM_CPPFLAGS += -I@WITH_PYTHON_INCLUDE@ -pkgpyexec_LTLIBRARIES = _rpmmodule.la _rpmbmodule.la _rpmsmodule.la +pkgpyexec_LTLIBRARIES = _rpm.la _rpmb.la _rpms.la pkgpyexec_DATA = rpm/__init__.py rpm/transaction.py -_rpmmodule_la_LDFLAGS = -module -avoid-version -shared -_rpmmodule_la_LIBADD = \ +_rpm_la_LDFLAGS = -module -avoid-version -shared +_rpm_la_LIBADD = \ $(top_builddir)/lib/librpm.la \ $(top_builddir)/rpmio/librpmio.la \ @WITH_PYTHON_LIB@ -_rpmmodule_la_SOURCES = rpmmodule.c rpmsystem-py.h \ +_rpm_la_SOURCES = rpmmodule.c rpmsystem-py.h \ header-py.c header-py.h \ rpmds-py.c rpmds-py.h \ rpmfd-py.c rpmfd-py.h \ @@ -30,22 +30,22 @@ _rpmmodule_la_SOURCES = rpmmodule.c rpms rpmte-py.c rpmte-py.h \ rpmts-py.c rpmts-py.h -_rpmbmodule_la_LDFLAGS = -module -avoid-version -shared -_rpmbmodule_la_LIBADD = \ +_rpmb_la_LDFLAGS = -module -avoid-version -shared +_rpmb_la_LIBADD = \ $(top_builddir)/build/librpmbuild.la \ $(top_builddir)/lib/librpm.la \ $(top_builddir)/rpmio/librpmio.la \ @WITH_PYTHON_LIB@ -_rpmbmodule_la_SOURCES = rpmbmodule.c rpmsystem-py.h \ +_rpmb_la_SOURCES = rpmbmodule.c rpmsystem-py.h \ spec-py.c spec-py.h -_rpmsmodule_la_LDFLAGS = -module -avoid-version -shared -_rpmsmodule_la_LIBADD = \ +_rpms_la_LDFLAGS = -module -avoid-version -shared +_rpms_la_LIBADD = \ $(top_builddir)/sign/librpmsign.la \ $(top_builddir)/lib/librpm.la \ $(top_builddir)/rpmio/librpmio.la \ @WITH_PYTHON_LIB@ -_rpmsmodule_la_SOURCES = rpmsmodule.c rpmsystem-py.h +_rpms_la_SOURCES = rpmsmodule.c rpmsystem-py.h --- ./python/rpmbmodule.c.orig 2012-11-07 12:55:24.000000000 +0000 +++ ./python/rpmbmodule.c 2014-02-20 14:47:48.110802710 +0000 @@ -66,8 +66,8 @@ static struct PyModuleDef moduledef = { NULL /* m_free */ }; -PyObject * PyInit__rpm(void); /* XXX eliminate gcc warning */ -PyObject * PyInit__rpm(void) +PyObject * PyInit__rpmb(void); /* XXX eliminate gcc warning */ +PyObject * PyInit__rpmb(void) { PyObject *m; --- ./python/rpmii-py.c.orig 2012-11-07 12:55:24.000000000 +0000 +++ ./python/rpmii-py.c 2014-02-20 14:47:48.110802710 +0000 @@ -88,7 +88,9 @@ static PyNumberMethods rpmii_as_number = 0, /* nb_add */ 0, /* nb_subtract */ 0, /* nb_multiply */ +#if PY_MAJOR_VERSION < 3 0, /* nb_divide */ +#endif 0, /* nb_remainder */ 0, /* nb_divmod */ 0, /* nb_power */ --- ./python/rpmmi-py.c.orig 2012-11-07 12:55:24.000000000 +0000 +++ ./python/rpmmi-py.c 2014-02-20 14:47:48.110802710 +0000 @@ -149,7 +149,9 @@ static PyNumberMethods rpmmi_as_number = 0, /* nb_add */ 0, /* nb_subtract */ 0, /* nb_multiply */ +#if PY_MAJOR_VERSION < 3 0, /* nb_divide */ +#endif 0, /* nb_remainder */ 0, /* nb_divmod */ 0, /* nb_power */ --- ./python/rpmsmodule.c.orig 2012-11-07 12:55:24.000000000 +0000 +++ ./python/rpmsmodule.c 2014-02-20 14:47:48.110802710 +0000 @@ -59,15 +59,15 @@ static struct PyModuleDef moduledef = { "_rpms", /* m_name */ rpms__doc__, /* m_doc */ 0, /* m_size */ - NULL, /* m_methods */ + modMethods, /* m_methods */ NULL, /* m_reload */ NULL, /* m_traverse */ NULL, /* m_clear */ NULL /* m_free */ }; -PyObject * PyInit__rpm(void); /* XXX eliminate gcc warning */ -PyObject * PyInit__rpm(void) +PyObject * PyInit__rpms(void); /* XXX eliminate gcc warning */ +PyObject * PyInit__rpms(void) { PyObject *m; --- ./python/rpmsystem-py.h.orig 2012-11-07 12:55:24.000000000 +0000 +++ ./python/rpmsystem-py.h 2014-02-20 14:47:48.110802710 +0000 @@ -48,6 +48,7 @@ typedef Py_ssize_t (*lenfunc)(PyObject * #define PyInt_FromLong PyLong_FromLong #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask +#define PyInt_AsSsize_t PyLong_AsSsize_t #endif #endif /* H_SYSTEM_PYTHON */ --- ./rpmio/digest.c.orig 2012-11-07 12:55:24.000000000 +0000 +++ ./rpmio/digest.c 2014-02-20 14:47:48.110802710 +0000 @@ -8,7 +8,7 @@ #include "debug.h" -#define DIGESTS_MAX 11 +#define DIGESTS_MAX 12 struct rpmDigestBundle_s { int index_min; /*!< Smallest index of active digest */ int index_max; /*!< Largest index of active digest */ --- ./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 ++++++ noprereqdeprec.diff ++++++ --- /var/tmp/diff_new_pack.pc7JGa/_old 2014-02-28 16:22:21.000000000 +0100 +++ /var/tmp/diff_new_pack.pc7JGa/_new 2014-02-28 16:22:21.000000000 +0100 @@ -1,17 +1,15 @@ -Not deprecated for SUSE builds. - ---- ./build/parsePreamble.c.orig 2011-05-11 15:59:08.000000000 +0000 -+++ ./build/parsePreamble.c 2011-05-11 16:35:47.000000000 +0000 -@@ -891,7 +891,7 @@ 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")}, +--- ./build/parsePreamble.c.orig 2014-02-20 14:51:56.798802270 +0000 ++++ ./build/parsePreamble.c 2014-02-20 14:53:27.617802110 +0000 +@@ -895,7 +895,7 @@ static struct PreambleRec_s const preamb + {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_PREREQ, 2, 0, LEN_AND_STR("prereq")}, {RPMTAG_CONFLICTFLAGS, 0, 0, LEN_AND_STR("conflicts")}, {RPMTAG_OBSOLETEFLAGS, 0, 0, LEN_AND_STR("obsoletes")}, {RPMTAG_PREFIXES, 0, 0, LEN_AND_STR("prefixes")}, -@@ -900,7 +900,7 @@ static struct PreambleRec_s const preamb +@@ -904,7 +904,7 @@ static struct PreambleRec_s const preamb {RPMTAG_BUILDARCHS, 0, 0, LEN_AND_STR("buildarchitectures")}, {RPMTAG_BUILDARCHS, 0, 0, LEN_AND_STR("buildarch")}, {RPMTAG_BUILDCONFLICTS, 0, 0, LEN_AND_STR("buildconflicts")}, ++++++ rpm-4.11.1.tar.bz2 -> rpm-4.11.2.tar.bz2 ++++++ ++++ 82003 lines of diff (skipped) ++++++ rpmrc.diff ++++++ --- /var/tmp/diff_new_pack.pc7JGa/_old 2014-02-28 16:22:23.000000000 +0100 +++ /var/tmp/diff_new_pack.pc7JGa/_new 2014-02-28 16:22:23.000000000 +0100 @@ -1,5 +1,5 @@ ---- ./rpmrc.in.orig 2013-06-10 15:55:10.000000000 +0000 -+++ ./rpmrc.in 2013-07-12 11:56:53.000000000 +0000 +--- ./rpmrc.in.orig 2014-02-05 13:04:02.000000000 +0000 ++++ ./rpmrc.in 2014-02-20 12:48:24.342815390 +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 @@ optflags: sparc64v -O2 -g -m64 -mtune=ni +@@ -41,17 +41,18 @@ optflags: sparc64v -O2 -g -m64 -mtune=ni optflags: m68k -O2 -g -fomit-frame-pointer @@ -37,6 +37,7 @@ -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 -m32 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables +optflags: ppc8260 -O2 -g -m32 @@ -45,6 +46,7 @@ +optflags: ppciseries -O2 -g -m32 +optflags: ppcpseries -O2 -g -m32 +optflags: ppc64 -O2 -g -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables ++optflags: ppc64le -O2 -g -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables +optflags: ppc64p7 -O3 -mtune=power7 -mcpu=power7 -g -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables optflags: parisc -O2 -g -mpa-risc-1-0 @@ -52,7 +54,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 @@ optflags: armv4tl -O2 -g -march=armv4t +@@ -67,7 +68,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 +64,7 @@ optflags: atarist -O2 -g -fomit-frame-pointer optflags: atariste -O2 -g -fomit-frame-pointer -@@ -76,8 +79,8 @@ optflags: atariclone -O2 -g -fomit-frame +@@ -77,8 +80,8 @@ optflags: atariclone -O2 -g -fomit-frame optflags: milan -O2 -g -fomit-frame-pointer optflags: hades -O2 -g -fomit-frame-pointer @@ -73,7 +75,7 @@ optflags: sh3 -O2 -g optflags: sh4 -O2 -g -mieee -@@ -178,7 +181,9 @@ arch_canon: armv4l: armv4l 12 +@@ -180,7 +183,9 @@ arch_canon: armv4l: armv4l 12 arch_canon: armv5tel: armv5tel 12 arch_canon: armv5tejl: armv5tejl 12 arch_canon: armv6l: armv6l 12 @@ -83,7 +85,7 @@ arch_canon: m68kmint: m68kmint 13 arch_canon: atarist: m68kmint 13 -@@ -241,17 +246,17 @@ os_canon: MacOSX: macosx 21 +@@ -244,17 +249,17 @@ os_canon: MacOSX: macosx 21 ############################################################# # For a given uname().machine, the default build arch @@ -109,15 +111,7 @@ buildarchtranslate: i486: i386 buildarchtranslate: i386: i386 -@@ -281,6 +286,7 @@ buildarchtranslate: ppcpseries: ppc - buildarchtranslate: ppc64iseries: ppc64 - buildarchtranslate: ppc64pseries: ppc64 - buildarchtranslate: ppc64p7: ppc64 -+buildarchtranslate: powerpc64: ppc64 - - buildarchtranslate: armv3l: armv3l - buildarchtranslate: armv4b: armv4b -@@ -289,7 +295,9 @@ buildarchtranslate: armv4tl: armv4tl +@@ -293,7 +298,9 @@ buildarchtranslate: armv4tl: armv4tl buildarchtranslate: armv5tel: armv5tel buildarchtranslate: armv5tejl: armv5tejl buildarchtranslate: armv6l: armv6l @@ -127,7 +121,7 @@ buildarchtranslate: atarist: m68kmint buildarchtranslate: atariste: m68kmint -@@ -314,6 +322,15 @@ buildarchtranslate: sh4a: sh4 +@@ -318,6 +325,15 @@ buildarchtranslate: sh4a: sh4 buildarchtranslate: aarch64: aarch64 @@ -143,7 +137,7 @@ ############################################################# # Architecture compatibility -@@ -370,14 +387,20 @@ arch_compat: mipsel: noarch +@@ -375,14 +391,20 @@ arch_compat: mipsel: noarch arch_compat: hppa2.0: hppa1.2 arch_compat: hppa1.2: hppa1.1 arch_compat: hppa1.1: hppa1.0 @@ -166,7 +160,7 @@ arch_compat: armv4tl: armv4l arch_compat: armv4l: armv3l arch_compat: armv3l: noarch -@@ -394,7 +417,7 @@ arch_compat: i370: noarch +@@ -399,7 +421,7 @@ arch_compat: i370: noarch arch_compat: s390: noarch arch_compat: s390x: s390 noarch @@ -175,7 +169,13 @@ arch_compat: x86_64: amd64 em64t athlon noarch arch_compat: amd64: x86_64 em64t athlon noarch -@@ -483,7 +506,9 @@ buildarch_compat: mips: noarch +@@ -484,12 +506,15 @@ buildarch_compat: ppc64le: noarch fat + buildarch_compat: ppc64pseries: ppc64 + buildarch_compat: ppc64iseries: ppc64 + buildarch_compat: ppc64p7: ppc64 ++buildarchtranslate: powerpc64: ppc64 + + buildarch_compat: mips: noarch buildarch_compat: mipsel: noarch buildarch_compat: armv4b: noarch @@ -185,7 +185,7 @@ buildarch_compat: armv6l: armv5tejl buildarch_compat: armv5tejl: armv5tel buildarch_compat: armv5tel: armv4tl -@@ -494,7 +519,8 @@ buildarch_compat: armv3l: noarch +@@ -500,7 +525,8 @@ buildarch_compat: armv3l: noarch buildarch_compat: hppa2.0: hppa1.2 buildarch_compat: hppa1.2: hppa1.1 buildarch_compat: hppa1.1: hppa1.0 ++++++ safeugid.diff ++++++ --- /var/tmp/diff_new_pack.pc7JGa/_old 2014-02-28 16:22:23.000000000 +0100 +++ /var/tmp/diff_new_pack.pc7JGa/_new 2014-02-28 16:22:23.000000000 +0100 @@ -1,7 +1,5 @@ -Work around glibc/nscd caching problems when doing 'rpm --root'. - ---- ./lib/rpmchroot.c.orig 2011-05-12 08:26:10.000000000 +0000 -+++ ./lib/rpmchroot.c 2011-05-12 08:28:32.000000000 +0000 +--- ./lib/rpmchroot.c.orig 2012-11-07 12:55:24.000000000 +0000 ++++ ./lib/rpmchroot.c 2014-02-20 12:50:05.360815211 +0000 @@ -66,6 +66,7 @@ int rpmChrootIn(void) } else if (rootState.chrootDone == 0) { if (chdir("/") == 0 && chroot(rootState.rootDir) == 0) { @@ -18,11 +16,11 @@ } else { rpmlog(RPMLOG_ERR, _("Unable to restore root directory: %m\n")); rc = -1; ---- ./lib/rpmug.c.orig 2011-05-12 08:13:52.000000000 +0000 -+++ ./lib/rpmug.c 2011-05-12 08:33:28.000000000 +0000 -@@ -35,6 +35,47 @@ const char * rpmugStashStr(const char *s - return ret; - } +--- ./lib/rpmug.c.orig 2014-02-05 13:04:37.000000000 +0000 ++++ ./lib/rpmug.c 2014-02-20 12:50:05.361815211 +0000 +@@ -10,6 +10,47 @@ + #include "lib/rpmug.h" + #include "debug.h" +#if defined(__GLIBC__) + @@ -68,7 +66,7 @@ /* * These really ought to use hash tables. I just made the * guess that most files would be owned by root or the same person/group -@@ -68,17 +109,28 @@ int rpmugUid(const char * thisUname, uid +@@ -43,17 +84,28 @@ int rpmugUid(const char * thisUname, uid lastUnameAlloced = thisUnameLen + 10; lastUname = xrealloc(lastUname, lastUnameAlloced); /* XXX memory leak */ } @@ -104,7 +102,7 @@ } *uid = lastUid; -@@ -111,18 +163,29 @@ int rpmugGid(const char * thisGname, gid +@@ -86,18 +138,29 @@ int rpmugGid(const char * thisGname, gid lastGnameAlloced = thisGnameLen + 10; lastGname = xrealloc(lastGname, lastGnameAlloced); /* XXX memory leak */ } @@ -141,7 +139,7 @@ } *gid = lastGid; -@@ -134,7 +197,7 @@ const char * rpmugUname(uid_t uid) +@@ -109,7 +172,7 @@ const char * rpmugUname(uid_t uid) { static uid_t lastUid = (uid_t) -1; static char * lastUname = NULL; @@ -150,7 +148,7 @@ if (uid == (uid_t) -1) { lastUid = (uid_t) -1; -@@ -151,9 +214,9 @@ const char * rpmugUname(uid_t uid) +@@ -126,9 +189,9 @@ const char * rpmugUname(uid_t uid) lastUid = uid; len = strlen(pwent->pw_name); @@ -163,7 +161,7 @@ } strcpy(lastUname, pwent->pw_name); -@@ -165,7 +228,7 @@ const char * rpmugGname(gid_t gid) +@@ -140,7 +203,7 @@ const char * rpmugGname(gid_t gid) { static gid_t lastGid = (gid_t) -1; static char * lastGname = NULL; @@ -172,7 +170,7 @@ if (gid == (gid_t) -1) { lastGid = (gid_t) -1; -@@ -182,9 +245,9 @@ const char * rpmugGname(gid_t gid) +@@ -157,9 +220,9 @@ const char * rpmugGname(gid_t gid) lastGid = gid; len = strlen(grent->gr_name); @@ -185,9 +183,9 @@ } strcpy(lastGname, grent->gr_name); -@@ -200,3 +263,16 @@ void rpmugFree(void) +@@ -189,3 +252,16 @@ void rpmugFree(void) + rpmugUname(-1); rpmugGname(-1); - strStash = strCacheFree(strStash); } + +void rpmugChroot(int in) @@ -202,9 +200,9 @@ + inchroot = in; +#endif +} ---- ./lib/rpmug.h.orig 2011-05-12 08:13:52.000000000 +0000 -+++ ./lib/rpmug.h 2011-05-12 08:26:56.000000000 +0000 -@@ -15,4 +15,6 @@ const char * rpmugGname(gid_t gid); +--- ./lib/rpmug.h.orig 2014-02-05 13:04:02.000000000 +0000 ++++ ./lib/rpmug.h 2014-02-20 12:50:05.362815211 +0000 +@@ -15,4 +15,6 @@ int rpmugInit(void); void rpmugFree(void); ++++++ weakdepscompat.diff ++++++ --- ./build/parsePreamble.c.orig 2014-02-25 14:14:15.892041649 +0000 +++ ./build/parsePreamble.c 2014-02-25 14:14:26.237041631 +0000 @@ -343,6 +343,7 @@ static struct tokenBits_s const installS { "verify", RPMSENSE_SCRIPT_VERIFY }, { "pretrans", RPMSENSE_PRETRANS }, { "posttrans", RPMSENSE_POSTTRANS }, + { "hint", RPMSENSE_MISSINGOK }, { 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) -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org