diff --git a/.abf.yml b/.abf.yml index 8d50d0f..91efb58 100644 --- a/.abf.yml +++ b/.abf.yml @@ -1,4 +1,3 @@ sources: "cpu-os-macros.tar.gz": 99c5fa561dd0d897bfa8cd97f2aa60781bc578d4 - "rpm-5.4.10.tar.gz": 8b525f6762d0a4f3bd5af44971f1199c6805d7dd RPMBDB-0.1.tar.xz: d56f37fff7f7f8b036b4ce3b06c1ab205687596b diff --git a/legacy_compat.macros b/legacy_compat.macros deleted file mode 100644 index 073f24e..0000000 --- a/legacy_compat.macros +++ /dev/null @@ -1,65 +0,0 @@ -%_dependency_whiteout_mandriva \ - coreutils>pam \ - tcb>shadow-utils \ - mkinitrd>plymouth \ - plymouth-scripts>plymouth \ - perl-base>perl-base \ - libncurses.so.5>ncurses libncurses.so.5()(64bit)>ncurses \ - libncurses5>ncurses lib64ncurses5>ncurses \ - libopenssl1.0.0>libopenssl-engines1.0.0 lib64openssl1.0.0>lib64openssl-engines1.0.0 \ - libgamin-1_0>gamin lib64gamin-1_0>gamin \ - libglib-2.0.so.0>gamin libglib-2.0.so.0()(64bit)>gamin \ - util-linux-ng>udev \ - SysVinit>initscripts systemd>initscripts systemd>systemd-units \ - rpm-mandriva-setup>rpm rpm-mandriva-setup>rpm-manbo-setup rpm-manbo-setup>rpm \ - drakx-kbd-mouse-x11>drakxtools-backend drakx-kbd-mouse-x11>drakxtools-curses \ - drakxtools-backend>drakxtools-curses \ - hal-info>hal \ - perl-base>perl \ - drakxtools-backend>drakxtools-curses \ - libck-connector.so.0>consolekit libck-connector.so.0()(64bit)>consolekit \ - libconsolekit0>consolekit lib64consolekit0>consolekit \ - manbo-files-gcc>gcc manbo-files>libstdc++-devel \ - gcc-cpp>gcc gcc>libstdc++-devel \ - libgvfs0>gvfs lib64gvfs0>gvfs \ - nss>libnss3 nss>lib64nss3 \ - libpolkit1_0-0.99>polkit lib64polkit1_0-0.99>polkit \ - libpolkit2>policykit lib64polkit2>policykit \ - libv4l0>v4l-utils lib64v4l0>v4l-utils \ - libenchant1>enchant lib64enchant1>enchant \ - libsopranoclient1>soprano lib64sopranoclient1>soprano \ - soprano>soprano-plugin-virtuoso \ - libsopranoindex1>soprano lib64sopranoindex1>soprano \ - libsoprano4>libsopranoserver1 lib64soprano4>lib64sopranoserver1 \ - soprano>libsopraoserver1 soprano>lib64sopranoserver1 \ - libv4l1.so.0>libv4l-wrappers libv4l1.so.0()(64bit)>libv4l-wrappers \ - libgnome-vfs2_0>gnome-vfs2 lib64gnome-vfs2_0>gnome-vfs2 \ - libgphoto2.so.2>libgphoto-common libgphoto2.so.2()(64bit)>lib64gphoto-common \ - libgphoto2>libgphoto-common lib64gphoto2>lib64gphoto-common \ - libwnck-1_22>libwnck lib64wnck-1_22>libwnck \ - libcanberra-gtk0>canberra-gtk lib64canberra-gtk0>canberra-gtk \ - libgcr0>gnome-keyring lib64gcr0>gnome-keyring \ - libpango1.0_0>libpango1.0_0-modules lib64pango1.0_0>lib64pango1.0_0-modules \ - libgio2.0_0>glib2.0 lib64gio2.0_0>glib2.0 \ - libglib2.0_0>glib2.0-common lib64glib2.0_0>glib2.0-common \ - libGConf2_4-2.32.0>GConf2 lib64GConf2_4-2.32.0>GConf2 \ - libORBit2_0>ORBit2 lib64ORBit2_0>ORBit2 \ - libhal1>hal lib64hal1>hal \ - libgdk_pixbuf2.0_0>gdk-pixbuf2.0 lib64gdk_pixbuf2.0_0>gdk-pixbuf2.0 \ - libgstreamer-0.10.so.0>gstreamer0.10-tools libgstreamer-0.10.so.0()(64bit)>gstreamer0.10-tools \ - libuser1>libuser lib64user1>lib64user \ - libdbus-1_3>dbus lib64dbus-1_3>dbus\ - libfontconfig1>fontconfig lib64fontconfig1>fontconfig \ - libgtk+-x11-2.0_0>libgtk+2.0_0 lib64gtk+-x11-2.0_0>lib64gtk+2.0_0 \ - libgtk+2.0_0>gtk+2.0 lib64gtk+2.0_0>gtk+2.0 \ - libgtk+-x11-2.0_0>gtk+2.0 lib64gtk+-x11-2.0_0>gtk+2.0 \ - libavahi-client3>avahi lib64avahi-client3>avahi \ - rpm-helper>rpm - -# enabling this by default is to be dropped ASAP -%_legacy_compat_non_pre_scripts_dont_fail 1 - -%_legacy_compat_all \ -%global _legacy_compat_no_doc_conflicts 1 \ -%global _legacy_compat_non_pre_scripts_dont_fail 1 \ -%global _dependency_whiteout %_dependency_whiteout_mandriva diff --git a/rpm-5.3.12.vendor.ROSA.patch b/rpm-5.3.12.vendor.ROSA.patch deleted file mode 100644 index fb97e30..0000000 --- a/rpm-5.3.12.vendor.ROSA.patch +++ /dev/null @@ -1,40 +0,0 @@ -diff -Nur rpm-5.3.12/macros/macros rpm-5.3.12.new/macros/macros ---- rpm-5.3.12/macros/macros 2011-07-12 14:08:41.000000000 +0400 -+++ rpm-5.3.12.new/macros/macros 2012-04-10 14:42:44.000000000 +0400 -@@ -835,7 +835,7 @@ - # - %_arch x86_64 - %_build_arch x86_64 --%_vendor mandriva -+%_vendor rosa - %_os linux - %_gnu -gnu - -diff -Nur rpm-5.3.12/macros/mandriva rpm-5.3.12.new/macros/mandriva ---- rpm-5.3.12/macros/mandriva 2011-07-12 14:08:41.000000000 +0400 -+++ rpm-5.3.12.new/macros/mandriva 2012-04-10 14:44:02.000000000 +0400 -@@ -1,7 +1,7 @@ - %distribution Mandriva Linux - %vendor Mandriva --%bugurl http://qa.mandriva.com --%disturl http://mandriva.org -+%bugurl http://bugs.rosalinux.ru/ -+%disturl http://www.rosalab.ru/ - - # This macro will disable the transaction lock on /var/lib/rpm/__db.*. - # This lock is of no use to us and will also result in errors when trying to -diff -Nur rpm-5.3.12/macros/mandriva.in rpm-5.3.12.new/macros/mandriva.in ---- rpm-5.3.12/macros/mandriva.in 2011-05-04 16:20:06.000000000 +0400 -+++ rpm-5.3.12.new/macros/mandriva.in 2012-04-10 14:46:12.000000000 +0400 -@@ -1,7 +1,7 @@ --%distribution Mandriva Linux --%vendor Mandriva --%bugurl http://qa.mandriva.com --%disturl http://mandriva.org -+%distribution ROSA Linux -+%vendor ROSA -+%bugurl http://bugs.rosalinux.ru/ -+%disturl http://www.rosalab.ru/ - - # This macro will disable the transaction lock on /var/lib/rpm/__db.*. - # This lock is of no use to us and will also result in errors when trying to diff --git a/rpm-5.3.8-fire-file-triggers-only-once.patch b/rpm-5.3.8-fire-file-triggers-only-once.patch deleted file mode 100644 index 6f1138b..0000000 --- a/rpm-5.3.8-fire-file-triggers-only-once.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- rpm-5.3.8/lib/psm.c.trigger_once~ 2011-02-21 22:35:22.081663000 +0100 -+++ rpm-5.3.8/lib/psm.c 2011-02-21 22:35:25.023663001 +0100 -@@ -1482,11 +1482,23 @@ static rpmRC runTriggersLoop(rpmpsm psm, - /*@innercontinue@*/ continue; - rc |= handleOneTrigger(psm, fi->h, triggeredH, arg2); - prev = instance; -+ -+ /* FIXME: 'instances' is never really used for anything later, -+ * and seems to have some bug making it eat it all memory - xx = argiAdd(&instances, -1, instance); -- xx = argiSort(instances, NULL); -+ xx = argiSort(instances, NULL);*/ -+ /* As no filenames or anything is passed to the trigger script, -+ * there doesn't seem to be any reason to fire the same trigger -+ * over and over.. -+ */ -+ if(tagno == RPMTAG_BASENAMES || RPMTAG_DIRNAMES) -+ break; - } - - mi = rpmmiFree(mi); -+ /* again don't fire same trigger over and over.. */ -+ if(tagno == RPMTAG_BASENAMES || RPMTAG_DIRNAMES) -+ break; - } - - instances = argiFree(instances); diff --git a/rpm-5.4.10-Multithreaded-XZ.patch b/rpm-5.4.10-Multithreaded-XZ.patch deleted file mode 100644 index 7a6b77a..0000000 --- a/rpm-5.4.10-Multithreaded-XZ.patch +++ /dev/null @@ -1,108 +0,0 @@ -From 885436e995aa39249a7089bf1f850431ed318b7f Mon Sep 17 00:00:00 2001 -From: Mikhail Novosyolov -Date: Tue, 25 Dec 2018 01:04:37 +0300 -Subject: [PATCH] Multithreaded XZ - -Ported commits 7740d1098642cd42f725fb9a2a3819ceaf51a80b and bec7592a36a2243aa4656afecf3247598baac5ff -from RPM4 rpm-4.14.0-rc1 to RPM5 5.4.10 (ROSA) -https://github.com/rpm-software-management/rpm/commit/7740d1098642cd42f725fb9a2a3819ceaf51a80b -https://github.com/rpm-software-management/rpm/commit/bec7592a36a2243aa4656afecf3247598baac5ff ---- - rpmio/xzdio.c | 46 +++++++++++++++++++++++++++++++++++++++++++--- - 1 file changed, 43 insertions(+), 3 deletions(-) - -diff --git a/rpmio/xzdio.c b/rpmio/xzdio.c -index f7a078f..e33f3a4 100644 ---- a/rpmio/xzdio.c -+++ b/rpmio/xzdio.c -@@ -7,6 +7,7 @@ - #include "rpmio_internal.h" - #include - #include -+#include - - #if defined(WITH_XZ) - -@@ -33,6 +34,10 @@ - #endif - - #include "lzma.h" -+/* Multithreading support in stable API since xz 5.2.0 */ -+#if LZMA_VERSION >= 50020002 -+#define HAVE_LZMA_MT -+#endif - - #ifndef LZMA_PRESET_DEFAULT - #define LZMA_PRESET_DEFAULT UINT32_C(6) -@@ -68,7 +73,9 @@ static XZFILE *xzopen_internal(const char *path, const char *mode, int fdno, int - XZFILE *xzfile; - lzma_stream tmp; - lzma_ret ret; -- -+#ifdef HAVE_LZMA_MT -+ int threads = 0; -+#endif - for (; *mode != '\0'; mode++) { - if (*mode == 'w') - encoding = 1; -@@ -76,6 +83,21 @@ static XZFILE *xzopen_internal(const char *path, const char *mode, int fdno, int - encoding = 0; - else if (*mode >= '0' && *mode <= '9') - level = (int)(*mode - '0'); -+ else if (*mode == 'T') { -+ if (isdigit(*(mode+1))) { -+#ifdef HAVE_LZMA_MT -+ threads = atoi(++mode); -+#endif -+ /* skip past rest of digits in string that atoi() -+ * should've processed -+ * */ -+ while(isdigit(*++mode)); -+ } -+#ifdef HAVE_LZMA_MT -+ else -+ threads = -1; -+#endif -+ } - } - if (fdno != -1) - fp = fdopen(fdno, encoding ? "w" : "r"); -@@ -95,7 +117,26 @@ static XZFILE *xzopen_internal(const char *path, const char *mode, int fdno, int - xzfile->strm = tmp; - if (encoding) { - if (xz) { -- ret = lzma_easy_encoder(&xzfile->strm, level, LZMA_CHECK_CRC32); -+#ifdef HAVE_LZMA_MT -+ if (!threads) { -+#endif -+ ret = lzma_easy_encoder(&xzfile->strm, level, LZMA_CHECK_CRC32); -+#ifdef HAVE_LZMA_MT -+ } else { -+ if (threads == -1) -+ threads = sysconf(_SC_NPROCESSORS_ONLN); -+ lzma_mt mt_options = { -+ .flags = 0, -+ .threads = threads, -+ .block_size = 0, -+ .timeout = 0, -+ .preset = level, -+ .filters = NULL, -+ .check = LZMA_CHECK_SHA256 }; -+ -+ ret = lzma_stream_encoder_mt(&xzfile->strm, &mt_options); -+ } -+#endif - } else { - lzma_options_lzma options; - (void) lzma_lzma_preset(&options, level); -@@ -167,7 +208,6 @@ static int xzclose(/*@only@*/ XZFILE *xzfile) - lzma_ret ret; - size_t n; - int rc; -- - if (!xzfile) - return -1; - if (xzfile->encoding) { --- -2.17.1 - diff --git a/rpm-5.4.10-Parse-private-dependencies-from-pkgconfig-files.patch b/rpm-5.4.10-Parse-private-dependencies-from-pkgconfig-files.patch deleted file mode 100644 index 7fe4404..0000000 --- a/rpm-5.4.10-Parse-private-dependencies-from-pkgconfig-files.patch +++ /dev/null @@ -1,48 +0,0 @@ -From d4b68e164dc86589019a6fbb51e5ef27c670f4a2 Mon Sep 17 00:00:00 2001 -From: Mikhail Novosyolov -Date: Sun, 7 Apr 2019 17:34:16 +0300 -Subject: [PATCH] Parse private dependencies from pkgconfig files - -- The support for --print-requires|provides was only upstreamed in - pkg-config 0.24, prior to that it relied on distros patching their - pkg-config. Rpm relying on non-upstream stuff is not good... - Now that it's upstream we can make a clean break and simply not - even try to generate the dependencies with anything older. -- The upstreamed version behaves slightly differently from what distros - were patching with, for rpm's purposes we also want - --print-requires-private now. - -This is a port of https://github.com/rpm-software-management/rpm/commit/0cc5e818a -from RPM4 to RPM5. ---- - scripts/pkgconfigdeps.sh | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/scripts/pkgconfigdeps.sh b/scripts/pkgconfigdeps.sh -index 31db20d..cf59d3e 100755 ---- a/scripts/pkgconfigdeps.sh -+++ b/scripts/pkgconfigdeps.sh -@@ -11,6 +11,11 @@ test -x $pkgconfig || { - exit 0 - } - -+$pkgconfig --atleast-pkgconfig-version="0.24" || { -+ cat > /dev/null -+ exit 0 -+} -+ - case $1 in - -P|--provides) - while read filename ; do -@@ -47,7 +52,7 @@ case $1 in - DIR=`dirname ${filename}` - PKG_CONFIG_PATH="$DIR:$DIR/../../share/pkgconfig" - export PKG_CONFIG_PATH -- $pkgconfig --print-requires "$filename" 2> /dev/null | while read n r v ; do -+ $pkgconfig --print-requires --print-requires-private "$filename" 2> /dev/null | while read n r v ; do - [ -n "$n" ] || continue - if [ -n "$r" ] && [ -n "$v" ]; then - echo "pkgconfig($n) $r $v" --- -2.21.0 - diff --git a/rpm-5.4.10-Use-multithreaded-XZ-by-default-for-both-binary-and-.patch b/rpm-5.4.10-Use-multithreaded-XZ-by-default-for-both-binary-and-.patch deleted file mode 100644 index 6b19697..0000000 --- a/rpm-5.4.10-Use-multithreaded-XZ-by-default-for-both-binary-and-.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 327206c531d3b37719cd48b35bf3c58686484073 Mon Sep 17 00:00:00 2001 -From: Mikhail Novosyolov -Date: Tue, 25 Dec 2018 01:50:51 +0300 -Subject: [PATCH] Use multithreaded XZ by default for both binary and source - packages. - -Note: according to https://github.com/rpm-software-management/rpm/commit/b7b2ab2177af8359663fcfb83cb2af3da578012e#commitcomment-14634266 , -multithreaded XZ will break deltarpm, but ROSA does not have deltarpm. - -Example of this config was taken from https://github.com/rpm-software-management/rpm/commit/c004d7647e2c16d6672d8f902d2cab00d89b9778 ---- - macros/mandriva.in | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/macros/mandriva.in b/macros/mandriva.in -index 3f742ad..958a869 100644 ---- a/macros/mandriva.in -+++ b/macros/mandriva.in -@@ -127,8 +127,13 @@ - # TODO: fix check script and implement support for using - #%_multiarch_required_terminate_build 1 - --# use XZ to compress binary packages: --%_binary_payload w5.xzdio -+# use multithreaded XZ to compress binary and source packages -+# note: only liblzma >= 5.2 supports multithreaded xz -+# w6 is xz level 6 (default), T - threads -+# note: w6T0.xzdio will result into 1 thread, w6T.xzdio will result into multiple threads! -+%_binary_payload w6T.xzdio -+# xz -2 is the most optimal for .src.rpm where compressed tarballs are recompressed -+%_source_payload w2T.xzdio - - %_duplicate_files_terminate_build 1 - %_unpackaged_subdirs_terminate_build 0 --- -2.17.1 - diff --git a/rpm-5.4.10-add-enum-for-RPMCALLBACK_INST_STOP-callback-event.patch b/rpm-5.4.10-add-enum-for-RPMCALLBACK_INST_STOP-callback-event.patch deleted file mode 100644 index b1a288e..0000000 --- a/rpm-5.4.10-add-enum-for-RPMCALLBACK_INST_STOP-callback-event.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- rpm-5.4.10/rpmio/rpmiotypes.h.cb2~ 2013-03-18 04:37:50.985920598 +0100 -+++ rpm-5.4.10/rpmio/rpmiotypes.h 2013-03-18 04:37:05.729281072 +0100 -@@ -140,7 +140,8 @@ typedef enum rpmCallbackType_e { - RPMCALLBACK_CPIO_ERROR = (1 << 14), - RPMCALLBACK_SCRIPT_ERROR = (1 << 15), - RPMCALLBACK_SCRIPT_START = (1 << 16), -- RPMCALLBACK_SCRIPT_STOP = (1 << 17) -+ RPMCALLBACK_SCRIPT_STOP = (1 << 17), -+ RPMCALLBACK_INST_STOP = (1 << 18) - } rpmCallbackType; - - /** diff --git a/rpm-5.4.10-adjust-trigger-counts-for-delayed-commit.patch b/rpm-5.4.10-adjust-trigger-counts-for-delayed-commit.patch deleted file mode 100644 index 10bd9b3..0000000 --- a/rpm-5.4.10-adjust-trigger-counts-for-delayed-commit.patch +++ /dev/null @@ -1,14 +0,0 @@ -Index: rpm/lib/psm.c -RCS File: /v/rpm/cvs/rpm/lib/psm.c,v -rcsdiff -q -kk '-r2.399.2.5' '-r2.399.2.6' -u '/v/rpm/cvs/rpm/lib/psm.c,v' 2>/dev/null ---- rpm/lib/psm.c 2012/04/19 17:26:06 2.399.2.5 -+++ rpm/lib/psm.c 2012/12/03 19:48:55 2.399.2.6 -@@ -2755,7 +2755,7 @@ - psm->scriptTag = RPMTAG_POSTIN; - psm->progTag = RPMTAG_POSTINPROG; - psm->sense = RPMSENSE_TRIGGERIN; -- psm->countCorrection = 0; -+ psm->countCorrection = 1; - - if (!(rpmtsFlags(ts) & RPMTRANS_FLAG_NOPOST)) { - rc = (rpmRC) rpmpsmNext(psm, PSM_SCRIPT); diff --git a/rpm-5.4.10-appdatadir.patch b/rpm-5.4.10-appdatadir.patch deleted file mode 100644 index d1de4c0..0000000 --- a/rpm-5.4.10-appdatadir.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -urN rpm-5.4.10/macros/mandriva rpm-5.4.10-patched/macros/mandriva ---- rpm-5.4.10/macros/mandriva 2016-10-12 19:02:22.174240451 +1000 -+++ rpm-5.4.10-patched/macros/mandriva 2016-10-12 19:03:44.337238294 +1000 -@@ -92,6 +92,7 @@ - %_localstatedir %{_var} - %_logdir %{_var}/log - %_libexecdir %{_libdir} -+%_appdatadir %{_datadir}/metainfo - - # mdvbz#62741 - # standard systemd directories -diff -urN rpm-5.4.10/macros/mandriva.in rpm-5.4.10-patched/macros/mandriva.in ---- rpm-5.4.10/macros/mandriva.in 2016-10-12 19:02:22.186240451 +1000 -+++ rpm-5.4.10-patched/macros/mandriva.in 2016-10-12 19:04:50.634236554 +1000 -@@ -92,6 +92,7 @@ - %_localstatedir %{_var} - %_logdir %{_var}/log - %_libexecdir %{_libdir} -+%_appdatadir %{_datadir}/metainfo - - # mdvbz#62741 - # standard systemd directories diff --git a/rpm-5.4.10-coverity-1035956.patch b/rpm-5.4.10-coverity-1035956.patch deleted file mode 100644 index 420dac9..0000000 --- a/rpm-5.4.10-coverity-1035956.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -urN rpm-5.4.10/lib/depends.c rpm-5.4.10-patched/lib/depends.c ---- rpm-5.4.10/lib/depends.c 2012-04-16 08:20:56.000000000 +1100 -+++ rpm-5.4.10-patched/lib/depends.c 2017-01-24 21:18:13.290480568 +1000 -@@ -105,8 +105,9 @@ - - if (ts->numRemovedPackages == ts->allocedRemovedPackages) { - ts->allocedRemovedPackages += ts->delta; -+ /* XXX coverity #1035956 */ - ts->removedPackages = (uint32_t *) xrealloc(ts->removedPackages, -- sizeof(ts->removedPackages) * ts->allocedRemovedPackages); -+ sizeof(*ts->removedPackages) * ts->allocedRemovedPackages); - } - - assert(ts->removedPackages != NULL); /* XXX can't happen. */ diff --git a/rpm-5.4.10-cpu-os-macros-hardening.patch b/rpm-5.4.10-cpu-os-macros-hardening.patch deleted file mode 100644 index 5b53063..0000000 --- a/rpm-5.4.10-cpu-os-macros-hardening.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff -Naur cpu-os-macros.orig/i586-linux/macros cpu-os-macros/i586-linux/macros ---- cpu-os-macros.orig/i586-linux/macros 2014-05-22 13:49:34.309259552 +0400 -+++ cpu-os-macros/i586-linux/macros 2014-05-22 14:41:56.000000000 +0400 -@@ -6,7 +6,7 @@ - %_arch i386 - %_os linux - %_gnu -gnu --%optflags %{?__common_cflags_with_ssp:%{__common_cflags_with_ssp} -fomit-frame-pointer -mtune=generic}%{!?__common_cflags_with_ssp:-O2 -g -m32} -march=i586 -fasynchronous-unwind-tables -+%optflags %{?__common_cflags_with_ssp:%{__common_cflags_with_ssp} -fPIE -pie -fpie -Wformat-security -fomit-frame-pointer -mtune=generic}%{!?__common_cflags_with_ssp:-O2 -g -m32} -march=i586 -fasynchronous-unwind-tables - - #============================================================================== - # ---- configure macros. -diff -Naur cpu-os-macros.orig/i686-linux/macros cpu-os-macros/i686-linux/macros ---- cpu-os-macros.orig/i686-linux/macros 2014-05-22 13:49:34.309259552 +0400 -+++ cpu-os-macros/i686-linux/macros 2014-05-22 14:41:48.000000000 +0400 -@@ -6,7 +6,7 @@ - %_arch i386 - %_os linux - %_gnu -gnu --%optflags %{?__common_cflags_with_ssp:%{__common_cflags_with_ssp} -fomit-frame-pointer}%{!?__common_cflags_with_ssp:-O2 -g -m32 -mtune=generic} -march=i686 -fasynchronous-unwind-tables -+%optflags %{?__common_cflags_with_ssp:%{__common_cflags_with_ssp} -fomit-frame-pointer -fPIE -pie -fpie -Wformat-security}%{!?__common_cflags_with_ssp:-O2 -g -m32 -mtune=generic} -march=i686 -fasynchronous-unwind-tables - - #============================================================================== - # ---- configure macros. -diff -Naur cpu-os-macros.orig/x86_64-linux/macros cpu-os-macros/x86_64-linux/macros ---- cpu-os-macros.orig/x86_64-linux/macros 2014-05-22 13:49:34.310259552 +0400 -+++ cpu-os-macros/x86_64-linux/macros 2014-05-22 14:44:09.314521435 +0400 -@@ -6,7 +6,7 @@ - %_arch x86_64 - %_os linux - %_gnu -gnu --%optflags %{?__common_cflags_with_ssp:%{__common_cflags_with_ssp} -fPIC}%{!?__common_cflags_with_ssp:-O2 -g -m64 -mtune=generic} -+%optflags %{?__common_cflags_with_ssp:%{__common_cflags_with_ssp} -fPIE -pie -fpie -Wformat-security -fPIC}%{!?__common_cflags_with_ssp:-O2 -g -m64 -mtune=generic} - - #============================================================================== - # ---- configure macros. diff --git a/rpm-5.4.10-dbconvert-5.2.patch b/rpm-5.4.10-dbconvert-5.2.patch deleted file mode 100644 index 4f1f132..0000000 --- a/rpm-5.4.10-dbconvert-5.2.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur rpm-5.4.10.orig/scripts/dbconvert.sh rpm-5.4.10/scripts/dbconvert.sh ---- rpm-5.4.10.orig/scripts/dbconvert.sh 2013-04-25 15:06:25.934554231 +0400 -+++ rpm-5.4.10/scripts/dbconvert.sh 2013-04-25 15:06:31.721744337 +0400 -@@ -9,7 +9,7 @@ - DBVERBOSE=${DBVERBOSE:-1} - DBREBUILD=${DBREBUILD:-0} - --DBVERSION=5.1 -+DBVERSION=5.2 - DBERROR=0 - for db_tool in db_stat db_dump db_load db_recover; do - db_tool_versioned=$(echo $db_tool | sed -e 's/^db_/db'"${DBVERSION}"'/' -e 's/^db\([0-9]*\)\.\([0-9]*\)/db\1\2_/') diff --git a/rpm-5.4.10-debugedit-saner-error-msg.patch b/rpm-5.4.10-debugedit-saner-error-msg.patch deleted file mode 100644 index c577ba1..0000000 --- a/rpm-5.4.10-debugedit-saner-error-msg.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.10/tools/debugedit.c.debugedit_errmsg~ 2013-01-03 09:24:01.764153125 +0100 -+++ rpm-5.4.10/tools/debugedit.c 2013-01-03 09:31:33.485896571 +0100 -@@ -696,7 +696,7 @@ edit_dwarf2_line (DSO *dso, rpmuint32_t - { - if (--shrank == 0) - error (EXIT_FAILURE, 0, -- "canonicalization unexpectedly shrank by one character"); -+ "canonicalization unexpectedly shrank by one character ('%s' vs '%s')", base_dir, dest_dir); - else - { - memset (ptr, 'X', shrank); diff --git a/rpm-5.4.10-debuginfo-too-many-notes.patch b/rpm-5.4.10-debuginfo-too-many-notes.patch deleted file mode 100644 index 2de4251..0000000 --- a/rpm-5.4.10-debuginfo-too-many-notes.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur rpm-5.4.10.orig/scripts/find-debuginfo.sh rpm-5.4.10/scripts/find-debuginfo.sh ---- rpm-5.4.10.orig/scripts/find-debuginfo.sh 2018-09-18 17:57:42.282867897 +0300 -+++ rpm-5.4.10/scripts/find-debuginfo.sh 2018-09-18 17:59:49.826673106 +0300 -@@ -193,7 +193,7 @@ - find "$RPM_BUILD_ROOT" ! -path "${debugdir}/*.debug" -type f \ - \( -perm -0100 -or -perm -0010 -or -perm -0001 \) \ - -print | LANG=C sort | --file -N -f - | sed -n -e 's/^\(.*\):[ ]*.*ELF.*, not stripped/\1/p' | -+file -N -f - | sed -n -e 's/^\(.*\):[ ]*.*ELF.*, not stripped/\1/p' | sed 's/, too many notes (.*)//' | - xargs --no-run-if-empty stat -c '%h %D_%i %n' | - while read nlinks inum f; do - [ -n "$EXCLUDE_REGEXP" ] && grep -E -q "$EXCLUDE_REGEXP" <<< "$f" && \ diff --git a/rpm-5.4.10-disable-generation-of-buildid-provides.patch b/rpm-5.4.10-disable-generation-of-buildid-provides.patch deleted file mode 100644 index 74d39ec..0000000 --- a/rpm-5.4.10-disable-generation-of-buildid-provides.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.10/lib/rpmds.c.buildid_deps~ 2013-01-23 03:39:17.232845754 +0100 -+++ rpm-5.4.10/lib/rpmds.c 2013-01-23 03:38:37.428673897 +0100 -@@ -3297,7 +3297,7 @@ fprintf(stderr, "*** rpmdsELF(%s, %d, %p - continue; - /*@notreached@*/ /*@switchbreak@*/ break; - case SHT_NOTE: --#if defined(HAVE_GELF_GETNOTE) /* XXX OpenIndiana & older elfutils haven't. */ -+#if defined(HAVE_GELF_GETNOTE) && !defined(RPM_VENDOR_MANDRIVA) /* XXX OpenIndiana & older elfutils haven't. */ - if (!(shdr->sh_flags & SHF_ALLOC)) - continue; - data = NULL; diff --git a/rpm-5.4.10-distepoch-from-os-release.patch b/rpm-5.4.10-distepoch-from-os-release.patch deleted file mode 100644 index b08a81a..0000000 --- a/rpm-5.4.10-distepoch-from-os-release.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/macros/mandriva.in 2014-10-25 15:11:42.195955354 +0400 -+++ b/macros/mandriva.in 2014-10-25 15:09:09.000000000 +0400 -@@ -44,7 +44,7 @@ - %evr_tuple_select 1234 - %evr_tuple_order EVRD - %disttag %{!?distsuffix:mdv}%{?distsuffix} --%distepoch %(sed -e 's#.*release\\ \\(\\S*\\).*#\\1#' /etc/release) -+%distepoch %(sed -n -e 's/^VERSION_ID=//p' /etc/os-release) - - # Dynamic EVRD tags macro for use with versioned provides/requires in place of - # '%{version}-%{release}', ie. to automatically add distepoch or epoch if present diff --git a/rpm-5.4.10-dlopen-embedded-interpreters.patch b/rpm-5.4.10-dlopen-embedded-interpreters.patch deleted file mode 100644 index c21b5d6..0000000 --- a/rpm-5.4.10-dlopen-embedded-interpreters.patch +++ /dev/null @@ -1,924 +0,0 @@ ---- rpm-5.4.10/build/parseScript.c.dlopen~ 2012-04-15 17:04:14.000000000 +0200 -+++ rpm-5.4.10/build/parseScript.c 2012-07-10 20:20:02.578979876 +0200 -@@ -305,6 +305,12 @@ int parseScript(Spec spec, int parsePart - iob = rpmiobRTrim(iob); - p = rpmiobStr(iob); - -+#if __WORDSIZE == 64 /* XXX lame, whatever.. :p */ -+#define SO_EXT "()(64bit)" -+#else -+#define SO_EXT "" -+#endif -+ - #ifdef WITH_LUA - if (!strcmp(progArgv[0], "")) { - rpmlua lua = NULL; /* Global state. */ -@@ -338,18 +344,21 @@ int parseScript(Spec spec, int parsePart - if (!strcmp(progArgv[0], "")) { - (void) rpmlibNeedsFeature(pkg->header, - "BuiltinPerlScripts", "5.2-1"); -+ addReqProv(NULL, pkg->header, RPMTAG_REQUIRENAME, "rpmperl.so" SO_EXT, NULL, RPMSENSE_INTERP, 0); - } else - #endif - #ifdef WITH_PYTHONEMBED - if (!strcmp(progArgv[0], "")) { - (void) rpmlibNeedsFeature(pkg->header, - "BuiltinPythonScripts", "5.2-1"); -+ addReqProv(NULL, pkg->header, RPMTAG_REQUIRENAME, "rpmpython.so" SO_EXT, NULL, RPMSENSE_INTERP, 0); - } else - #endif - #ifdef WITH_RUBYEMBED - if (!strcmp(progArgv[0], "")) { - (void) rpmlibNeedsFeature(pkg->header, - "BuiltinRubyScripts", "5.2-1"); -+ addReqProv(NULL, pkg->header, RPMTAG_REQUIRENAME, "rpmruby.so" SO_EXT, NULL, RPMSENSE_INTERP, 0); - } else - #endif - #ifdef WITH_SEMANAGE -@@ -368,12 +377,14 @@ int parseScript(Spec spec, int parsePart - if (!strcmp(progArgv[0], "")) { - (void) rpmlibNeedsFeature(pkg->header, - "BuiltinSquirrelScripts", "5.2-1"); -+ addReqProv(NULL, pkg->header, RPMTAG_REQUIRENAME, "rpmsquirrel.so" SO_EXT, NULL, RPMSENSE_INTERP, 0); - } else - #endif - #ifdef WITH_TCL - if (!strcmp(progArgv[0], "")) { - (void) rpmlibNeedsFeature(pkg->header, - "BuiltinTclScripts", "5.2-1"); -+ addReqProv(NULL, pkg->header, RPMTAG_REQUIRENAME, "rpmtcl.so" SO_EXT, NULL, RPMSENSE_INTERP, 0); - } else - #endif - if (progArgv[0][0] == '<') { ---- rpm-5.4.10/configure.ac.dlopen~ 2012-07-10 20:20:02.224984301 +0200 -+++ rpm-5.4.10/configure.ac 2012-07-10 20:20:02.581979838 +0200 -@@ -1720,44 +1720,95 @@ RPM_CHECK_LIB( - AC_SUBST(WITH_CUDF_CUDFTOOL) - - dnl # Perl ExtUtils::Embed -+WITH_PERL_INCDIR="`perl -MExtUtils::Embed -e perl_inc| sed -e 's#^ -I##' -e 's# ##g'`" -+WITH_PERL_LIB="`perl -MConfig -e 'print \"$Config{archlibexp}/CORE/\"'`" -+WITH_PERL_CFLAGS="`perl -MExtUtils::Embed -e ccopts`" -+WITH_PERL_LDFLAGS="`perl -MExtUtils::Embed -e ldopts`" -+export LD_RUN_PATH=$WITH_PERL_LIB -+export LIBRARY_PATH=$LD_RUN_PATH -+export C_INCLUDE_PATH=$WITH_PERL_INCDIR - RPM_CHECK_LIB( - [Perl ExtUtils::Embed], [perlembed], - [perl], [perl_alloc], [EXTERN.h], - [no,external:none], [], -- [ -- ], []) -+ [ AM_CONDITIONAL( -+ [WITH_PERLEMBED], -+ [true]) -+ ], -+ [ AM_CONDITIONAL( -+ [WITH_PERLEMBED], -+ [false]) -+ ]) -+LIBS="`echo $LIBS|sed -e s/-lperl//g`" -+AC_SUBST(WITH_PERL_CFLAGS) -+AC_SUBST(WITH_PERL_LDFLAGS) -+unset LD_RUN_PATH -+unset LIBRARY_PATH -+unset C_INCLUDE_PATH - -+export C_INCLUDE_PATH=$WITH_PYTHON_INCDIR - dnl # Python embedding - RPM_CHECK_LIB( - [Python embedding], [pythonembed], -- [python2.7 python2.6 python2.5 python2.4], [Py_Initialize], [Python.h], -+ [python2.7], [Py_Initialize], [Python.h], - [no,external:none], [], -- [ -- ], []) -+ [ AM_CONDITIONAL( -+ [WITH_PYTHONEMBED], -+ [true]) -+ ], -+ [ AM_CONDITIONAL( -+ [WITH_PYTHONEMBED], -+ [false]) -+ ]) -+unset C_INCLUDE_PATH - - dnl # Ruby - WITH_RUBY_SUBDIR="" --WITH_RUBY_CPPFLAGS="" -+WITH_RUBY_CPPFLAGS="`pkg-config --cflags ruby-1.9`" -+WITH_RUBY_LDFLAGS="`pkg-config --libs ruby-1.9`" - WITH_RUBY_VENDORARCHDIR="" -+export C_INCLUDE_PATH="`pkg-config --cflags-only-I ruby-1.9|sed -e 's#-I##g' -e 's# /#:/#g' -e 's# ##g'`" - RPM_CHECK_LIB( - [Ruby], [ruby], - [ruby], [ruby_init], [ruby.h], - [no,external:none], [], - [ AC_DEFINE(WITH_RUBYEMBED, 1, [Define to 1 if you want embedded Ruby]) - WITH_RUBY_SUBDIR=ruby -- ], []) -+ AM_CONDITIONAL( -+ [WITH_RUBYEMBED], -+ [true]) -+ ], -+ [ AM_CONDITIONAL( -+ [WITH_RUBYEMBED], -+ [false]) -+ ]) -+LIBS="`echo $LIBS|sed -e s/-lruby//g`" - AC_SUBST(WITH_RUBY_CPPFLAGS) -+AC_SUBST(WITH_RUBY_LDFLAGS) - AC_SUBST(WITH_RUBY_SUBDIR) - AC_SUBST(WITH_RUBY_VENDORARCHDIR) -+unset C_INCLUDE_PATH - - - dnl # Squirrel -+export C_INCLUDE_PATH="/usr/include/squirrel" -+SQUIRREL_CPPFLAGS="-I$C_INCLUDE_PATH" -+SQUIRREL_LIBS="-lsquirrel" - RPM_CHECK_LIB( - [Squirrel], [squirrel], - [squirrel], [sq_open], [squirrel.h], - [no,external:none], [], -- [ -- ], []) -+ [ AM_CONDITIONAL( -+ [WITH_SQUIRREL], -+ [true]) -+ ], -+ [ AM_CONDITIONAL( -+ [WITH_SQUIRREL], -+ [false]) -+ ]) -+AC_SUBST(SQUIRREL_CPPFLAGS) -+AC_SUBST(SQUIRREL_LIBS) -+unset C_INCLUDE_PATH - - dnl # Tcl (should tcl8.4 be supported too?) - WITH_TCL_SUBDIR="" -@@ -1765,8 +1816,14 @@ RPM_CHECK_LIB( - [Tcl], [tcl], - [tcl8.6 tcl8.5 tcl], [Tcl_CreateInterp], [tcl.h], - [no,external:none], [], -- [ -- ], []) -+ [ AM_CONDITIONAL( -+ [WITH_TCL], -+ [true]) -+ ], -+ [ AM_CONDITIONAL( -+ [WITH_TCL], -+ [false]) -+ ]) - AC_SUBST(WITH_TCL_SUBDIR) - - dnl # FICL ---- rpm-5.4.10/rpmio/Makefile.am.dlopen~ 2012-04-16 22:53:32.000000000 +0200 -+++ rpm-5.4.10/rpmio/Makefile.am 2012-07-10 20:20:02.582979826 +0200 -@@ -92,8 +92,8 @@ RPM_LDADD_COMMON = \ - $(top_builddir)/rpmdb/librpmdb.la \ - $(RPMIO_LDADD_COMMON) - --#pkglibdir = @USRLIBRPM@ --#pkglib_LTLIBRARIES = libsqlio.la -+zpkglibdir = @USRLIBRPM@/lib -+zpkglib_LTLIBRARIES = #libsqlio.la - - pkgincdir = $(pkgincludedir)$(WITH_PATH_VERSIONED_SUFFIX) - pkginc_HEADERS = argv.h mire.h rpmzlog.h yarn.h \ -@@ -210,6 +210,52 @@ endif - #librpmio.la: $(librpmio_la_OBJECTS) $(librpmio_la_DEPENDENCIES) - # $(librpmio_la_LINK) -rpath $(usrlibdir) $(librpmio_la_OBJECTS) $(librpmio_la_LIBADD) - -+if WITH_PERLEMBED -+librpmio_la_LDFLAGS += -Wl,-rpath=$(zpkglibdir) -+zpkglib_LTLIBRARIES += rpmperl.la -+rpmperl_la_SOURCES = rpmperl.c -+rpmperl_la_CPPFLAGS = -DMODULE_EMBED -+rpmperl_la_CFLAGS = $(WITH_PERL_CFLAGS) -+rpmperl_la_LDFLAGS = -module -avoid-version $(WITH_PERL_LDFLAGS) -+rpmperl_la_LIBADD = $(RPMIO_LDADD_COMMON) -+endif -+ -+if WITH_PYTHONEMBED -+librpmio_la_LDFLAGS += -Wl,-rpath=$(zpkglibdir) -+zpkglib_LTLIBRARIES += rpmpython.la -+rpmpython_la_SOURCES = rpmpython.c -+rpmpython_la_CPPFLAGS = -I@WITH_PYTHON_INCDIR@ -DMODULE_EMBED -+rpmpython_la_LDFLAGS = -module -avoid-version -+rpmpython_la_LIBADD = $(RPMIO_LDADD_COMMON) -+endif -+ -+if WITH_RUBYEMBED -+librpmio_la_LDFLAGS += -Wl,-rpath=$(zpkglibdir) -+zpkglib_LTLIBRARIES += rpmruby.la -+rpmruby_la_SOURCES = rpmruby.c -+rpmruby_la_CPPFLAGS = $(WITH_RUBY_CPPFLAGS) -DMODULE_EMBED -+rpmruby_la_LDFLAGS = -module -avoid-version $(WITH_RUBY_LDFLAGS) -+rpmruby_la_LIBADD = $(RPMIO_LDADD_COMMON) -+endif -+ -+if WITH_SQUIRREL -+librpmio_la_LDFLAGS += -Wl,-rpath=$(zpkglibdir) -+zpkglib_LTLIBRARIES += rpmsquirrel.la -+rpmsquirrel_la_SOURCES = rpmsquirrel.c -+rpmsquirrel_la_CPPFLAGS = $(SQUIRREL_CPPFLAGS) -DMODULE_EMBED -+rpmsquirrel_la_LDFLAGS = -module -avoid-version -+rpmsquirrel_la_LIBADD = $(RPMIO_LDADD_COMMON) $(SQUIRREL_LIBS) -+endif -+ -+if WITH_TCL -+librpmio_la_LDFLAGS += -Wl,-rpath=$(zpkglibdir) -+zpkglib_LTLIBRARIES += rpmtcl.la -+rpmtcl_la_SOURCES = rpmtcl.c -+rpmtcl_la_CPPFLAGS = -DMODULE_EMBED -+rpmtcl_la_LDFLAGS = -module -avoid-version -+rpmtcl_la_LIBADD = $(RPMIO_LDADD_COMMON) -ltcl -+endif -+ - #libsqlio_la_SOURCES = libsqlio.c - #libsqlio_la_LIBADD = $(RPMIO_LDADD_COMMON) - ---- rpm-5.4.10/rpmio/rpmperl.c.dlopen~ 2012-04-15 23:20:53.000000000 +0200 -+++ rpm-5.4.10/rpmio/rpmperl.c 2012-07-10 20:20:02.582979826 +0200 -@@ -7,9 +7,15 @@ - #include "rpmperl.h" - #include - --#if defined(WITH_PERLEMBED) -+#if defined(MODULE_EMBED) - #include - #include -+#undef WITH_PERLEMBED -+#endif -+ -+#if defined(WITH_PERLEMBED) -+#include -+#include - #endif - - #undef UNLIKELY /* XXX everyone gotta be different */ -@@ -21,6 +27,12 @@ int _rpmperl_debug = 0; - /*@unchecked@*/ /*@relnull@*/ - rpmperl _rpmperlI = NULL; - -+#if defined(WITH_PERLEMBED) -+static int dlopened = 0; -+static rpmperl (*rpmperlNew_p) (char ** av, uint32_t flags); -+static rpmRC (*rpmperlRun_p) (rpmperl perl, const char * str, const char ** resultp); -+#endif -+ - #define my_perl ((PerlInterpreter *)perl->I) - - static void rpmperlFini(void * _perl) -@@ -29,7 +41,7 @@ static void rpmperlFini(void * _perl) - { - rpmperl perl = (rpmperl) _perl; - --#if defined(WITH_PERLEMBED) -+#if defined(MODULE_EMBED) - PERL_SET_CONTEXT(my_perl); - PL_perl_destruct_level = 1; - perl_destruct(my_perl); -@@ -57,7 +69,7 @@ static rpmperl rpmperlGetPool(/*@null@*/ - return (rpmperl) rpmioGetPool(pool, sizeof(*perl)); - } - --#if defined(WITH_PERLEMBED) -+#if defined(MODULE_EMBED) - EXTERN_C void xs_init (PerlInterpreter * _my_perl PERL_UNUSED_DECL); - - EXTERN_C void boot_DynaLoader (PerlInterpreter* _my_perl, CV* cv); -@@ -90,14 +102,40 @@ static rpmperl rpmperlI(void) - return _rpmperlI; - } - -+#if defined(WITH_PERLEMBED) -+static void loadModule(void) { -+ const char librpmperl[] = "rpmperl.so"; -+ void *h; -+ -+ h = dlopen (librpmperl, RTLD_NOW|RTLD_GLOBAL); -+ if (!h) -+ { -+ rpmlog(RPMLOG_WARNING, D_("Unable to open \"%s\" (%s), " -+ "embedded perl will not be available\n"), -+ librpmperl, dlerror()); -+ } -+ else if(!((rpmperlNew_p = dlsym(h, "rpmperlNew")) -+ && (rpmperlRun_p = dlsym(h, "rpmperlRun")))) { -+ rpmlog(RPMLOG_WARNING, D_("Opened library \"%s\" is incompatible (%s), " -+ "embedded perl will not be available\n"), -+ librpmperl, dlerror()); -+ if (dlclose (h)) -+ rpmlog(RPMLOG_WARNING, "Error closing library \"%s\": %s", librpmperl, -+ dlerror()); -+ } else -+ dlopened = 1; -+} -+#endif -+ - rpmperl rpmperlNew(char ** av, uint32_t flags) - { -- rpmperl perl = --#ifdef NOTYET -- (flags & 0x80000000) ? rpmperlI() : --#endif -- rpmperlGetPool(_rpmperlPool); - #if defined(WITH_PERLEMBED) -+ if (!dlopened) loadModule(); -+ if (dlopened) return rpmperlNew_p(av, flags); -+#endif -+ rpmperl perl = (flags & 0x80000000) -+ ? rpmperlI() : rpmperlGetPool(_rpmperlPool); -+#if defined(MODULE_EMBED) - static const char * _av[] = { "rpmperl", NULL }; - static int initialized = 0; - ARGV_t argv = NULL; -@@ -143,6 +181,9 @@ rpmperl rpmperlNew(char ** av, uint32_t - - rpmRC rpmperlRun(rpmperl perl, const char * str, const char ** resultp) - { -+#if defined(WITH_PERLEMBED) -+ if (dlopened) return rpmperlRun_p(perl, str, resultp); -+#endif - rpmRC rc = RPMRC_FAIL; - - if (_rpmperl_debug) -@@ -151,7 +192,7 @@ fprintf(stderr, "==> %s(%p,%s)\n", __FUN - if (perl == NULL) perl = rpmperlI(); - - if (str != NULL) { --#if defined(WITH_PERLEMBED) -+#if defined(MODULE_EMBED) - STRLEN n_a; - SV * retSV; - ---- rpm-5.4.10/rpmio/rpmpython.c.dlopen~ 2012-07-06 17:39:19.000000000 +0200 -+++ rpm-5.4.10/rpmio/rpmpython.c 2012-07-10 20:20:37.177547334 +0200 -@@ -8,9 +8,15 @@ - #define _RPMPYTHON_INTERNAL - #include "rpmpython.h" - --#if defined(WITH_PYTHONEMBED) -+#if defined(MODULE_EMBED) - #include - #include -+#undef WITH_PYTHONEMBED -+#endif -+ -+#if defined(WITH_PYTHONEMBED) -+#include -+#include - #endif - - #include "debug.h" -@@ -21,13 +27,20 @@ int _rpmpython_debug = 0; - /*@unchecked@*/ /*@relnull@*/ - rpmpython _rpmpythonI = NULL; - -+#if defined(WITH_PYTHONEMBED) -+static int dlopened = 0; -+static rpmpython (*rpmpythonNew_p) (char ** av, uint32_t flags); -+static rpmRC (*rpmpythonRunFile_p) (rpmpython python, const char * fn, const char ** resultp); -+static rpmRC (*rpmpythonRun_p) (rpmpython python, const char * str, const char ** resultp); -+#endif -+ - static void rpmpythonFini(void * _python) - /*@globals fileSystem @*/ - /*@modifies *_python, fileSystem @*/ - { - rpmpython python = (rpmpython) _python; - --#if defined(WITH_PYTHONEMBED) -+#if defined(MODULE_EMBED) - Py_Finalize(); - #endif - python->I = NULL; -@@ -51,7 +64,7 @@ static rpmpython rpmpythonGetPool(/*@nul - } - - /*@unchecked@*/ --#if defined(WITH_PYTHONEMBED) -+#if defined(MODULE_EMBED) - static const char * _rpmpythonI_init = "\ - import sys\n\ - from cStringIO import StringIO\n\ -@@ -68,10 +81,40 @@ static rpmpython rpmpythonI(void) - return _rpmpythonI; - } - -+#if defined(WITH_PYTHONEMBED) -+static void loadModule(void) { -+ const char librpmpython[] = "rpmpython.so"; -+ void *h; -+ -+ h = dlopen (librpmpython, RTLD_NOW|RTLD_GLOBAL); -+ if (!h) -+ { -+ rpmlog(RPMLOG_WARNING, D_("Unable to open \"%s\" (%s), " -+ "embedded python will not be available\n"), -+ librpmpython, dlerror()); -+ } -+ else if(!((rpmpythonNew_p = dlsym(h, "rpmpythonNew")) -+ && (rpmpythonRunFile_p = dlsym(h, "rpmpythonRunFile")) -+ && (rpmpythonRun_p = dlsym(h, "rpmpythonRun")))) { -+ rpmlog(RPMLOG_WARNING, D_("Opened library \"%s\" is incompatible (%s), " -+ "embedded python will not be available\n"), -+ librpmpython, dlerror()); -+ if (dlclose (h)) -+ rpmlog(RPMLOG_WARNING, "Error closing library \"%s\": %s", librpmpython, -+ dlerror()); -+ } else -+ dlopened = 1; -+} -+#endif -+ - rpmpython rpmpythonNew(char ** av, uint32_t flags) - { -- static char * _av[] = { (char *) "rpmpython", NULL }; - #if defined(WITH_PYTHONEMBED) -+ if (!dlopened) loadModule(); -+ if (dlopened) return rpmpythonNew_p(av, flags); -+#endif -+ static char * _av[] = { "rpmpython", NULL }; -+#if defined(MODULE_EMBED) - int initialize = (!(flags & 0x80000000) || _rpmpythonI == NULL); - #endif - rpmpython python = (flags & 0x80000000) -@@ -82,7 +125,7 @@ fprintf(stderr, "==> %s(%p, %d) python % - - if (av == NULL) av = _av; - --#if defined(WITH_PYTHONEMBED) -+#if defined(MODULE_EMBED) - if (!Py_IsInitialized()) { - Py_SetProgramName((char *)_av[0]); - Py_Initialize(); -@@ -107,6 +150,9 @@ fprintf(stderr, "==========\n%s\n======= - - rpmRC rpmpythonRunFile(rpmpython python, const char * fn, const char ** resultp) - { -+#if defined(WITH_PYTHONEMBED) -+ if (dlopened) return rpmpythonRunFile_p(python, fn, resultp); -+#endif - rpmRC rc = RPMRC_FAIL; - - if (_rpmpython_debug) -@@ -115,7 +161,7 @@ fprintf(stderr, "==> %s(%p,%s)\n", __FUN - if (python == NULL) python = rpmpythonI(); - - if (fn != NULL) { --#if defined(WITH_PYTHONEMBED) -+#if defined(MODULE_EMBED) - const char * pyfn = ((fn == NULL || !strcmp(fn, "-")) ? "" : fn); - FILE * pyfp = (!strcmp(pyfn, "") ? stdin : fopen(fn, "rb")); - int closeit = (pyfp != stdin); -@@ -156,6 +202,9 @@ static const char * rpmpythonSlurp(const - - rpmRC rpmpythonRun(rpmpython python, const char * str, const char ** resultp) - { -+#if defined(WITH_PYTHONEMBED) -+ if (dlopened) return rpmpythonRun_p(python, str, resultp); -+#endif - rpmRC rc = RPMRC_FAIL; - - if (_rpmpython_debug) -@@ -165,7 +214,7 @@ fprintf(stderr, "==> %s(%p,%s,%p)\n", __ - - if (str != NULL) { - const char * val = rpmpythonSlurp(str); --#if defined(WITH_PYTHONEMBED) -+#if defined(MODULE_EMBED) - PyCompilerFlags cf = { 0 }; - PyObject * m = PyImport_AddModule("__main__"); - PyObject * d = (m ? PyModule_GetDict(m) : NULL); ---- rpm-5.4.10/rpmio/rpmruby.c.dlopen~ 2012-04-15 23:20:53.000000000 +0200 -+++ rpm-5.4.10/rpmio/rpmruby.c 2012-07-10 20:20:02.585979790 +0200 -@@ -1,17 +1,26 @@ - #include "system.h" - #include - --#if defined(WITH_RUBYEMBED) -+#if defined(MODULE_EMBED) - - /* Make sure Ruby's fun stuff has its own xmalloc & Co functions available */ - #undef xmalloc - #undef xcalloc - #undef xrealloc - -+/* XXX avoid conflicting definitions in ruby.h */ -+#define HAVE_SETPROCTITLE 1 -+ - #include -+#undef WITH_RUBYEMBED - - #endif - -+#if defined(WITH_RUBYEMBED) -+#include -+#include -+#endif -+ - #define _RPMRUBY_INTERNAL 1 - #include "rpmruby.h" - -@@ -32,7 +41,7 @@ static void rpmrubyFini(void *_ruby) - { - rpmruby ruby = (rpmruby) _ruby; - --#if defined(WITH_RUBYEMBED) -+# if defined(MODULE_EMBED) - ruby_cleanup(0); - #endif - ruby->I = NULL; -@@ -88,20 +97,51 @@ static rpmruby rpmrubyI() - return _rpmrubyI; - } - -+#if defined(WITH_RUBYEMBED) -+static void loadModule(void) { -+ const char librpmruby[] = "rpmruby.so"; -+ void *h; -+ -+ h = dlopen (librpmruby, RTLD_NOW|RTLD_GLOBAL); -+ if (!h) -+ { -+ rpmlog(RPMLOG_WARNING, D_("Unable to open \"%s\" (%s), " -+ "embedded ruby will not be available\n"), -+ librpmruby, dlerror()); -+ } -+ else if(!((rpmrubyNew_p = dlsym(h, "rpmrubyNew")) -+ && (rpmrubyRun_p = dlsym(h, "rpmrubyRun")))) { -+ rpmlog(RPMLOG_WARNING, D_("Opened library \"%s\" is incompatible (%s), " -+ "embedded ruby will not be available\n"), -+ librpmruby, dlerror()); -+ if (dlclose (h)) -+ rpmlog(RPMLOG_WARNING, "Error closing library \"%s\": %s", librpmruby, -+ dlerror()); -+ } else -+ dlopened = 1; -+} -+#endif -+ - rpmruby rpmrubyNew(char **av, uint32_t flags) - { -+#if defined(WITH_RUBYEMBED) -+ if (!dlopened) loadModule(); -+ if (dlopened) return rpmrubyNew_p(av, flags); -+#endif -+ - static const char *_av[] = { "rpmruby", NULL }; - - /* XXX FIXME: recurse like every other embedded interpreter. */ - if (_rpmrubyI) - return _rpmrubyI; - -- rpmruby ruby = rpmrubyGetPool(_rpmrubyPool); -+ rpmruby ruby = (flags & 0x80000000) -+ ? rpmrubyI() : rpmrubyGetPool(_rpmrubyPool); - - if (av == NULL) - av = (char **) _av; - --#if defined(WITH_RUBYEMBED) -+# if defined(MODULE_EMBED) - RUBY_INIT_STACK; - ruby_init(); - ruby_init_loadpath(); -@@ -114,9 +154,18 @@ rpmruby rpmrubyNew(char **av, uint32_t f - return rpmrubyLink(ruby); - } - -+#if defined(WITH_RUBYEMBED) -+static int dlopened = 0; -+static rpmruby (*rpmrubyNew_p) (char ** av, uint32_t flags); -+static rpmRC (*rpmrubyRun_p) (rpmruby ruby, const char * str, const char ** resultp); -+#endif - - rpmRC rpmrubyRun(rpmruby ruby, const char *str, const char **resultp) - { -+#if defined(WITH_RUBYEMBED) -+ if (dlopened) return rpmrubyRun_p(ruby, str, resultp); -+#endif -+ - rpmRC rc = RPMRC_FAIL; - - if (_rpmruby_debug) -@@ -125,7 +174,7 @@ fprintf(stderr, "==> %s(%p,%s,%p)\n", __ - if (ruby == NULL) - ruby = rpmrubyI(); - --#if defined(WITH_RUBYEMBED) -+#if defined(MODULE_EMBED) - if (str) { - int state = -1; - ruby->state = rb_eval_string_protect(str, &state); ---- rpm-5.4.10/rpmio/rpmsquirrel.c.dlopen~ 2012-04-15 23:20:53.000000000 +0200 -+++ rpm-5.4.10/rpmio/rpmsquirrel.c 2012-07-10 20:20:02.586979777 +0200 -@@ -3,9 +3,16 @@ - - #include - --#ifdef WITH_SQUIRREL -+#if defined(MODULE_EMBED) - #include -+#undef WITH_SQUIRREL - #endif -+ -+#if defined(WITH_SQUIRREL) -+#include -+#include -+#endif -+ - #define _RPMSQUIRREL_INTERNAL - #include "rpmsquirrel.h" - -@@ -17,13 +24,20 @@ int _rpmsquirrel_debug = 0; - /*@unchecked@*/ /*@relnull@*/ - rpmsquirrel _rpmsquirrelI = NULL; - -+#if defined(WITH_SQUIRREL) -+static int dlopened = 0; -+static rpmsquirrel (*rpmsquirrelNew_p) (char ** av, uint32_t flags); -+static rpmRC (*rpmsquirrelRunFile_p) (rpmsquirrel squirrel, const char * fn, const char ** resultp); -+static rpmRC (*rpmsquirrelRun_p) (rpmsquirrel squirrel, const char * str, const char ** resultp); -+#endif -+ - static void rpmsquirrelFini(void * _squirrel) - /*@globals fileSystem @*/ - /*@modifies *_squirrel, fileSystem @*/ - { - rpmsquirrel squirrel = (rpmsquirrel) _squirrel; - --#if defined(WITH_SQUIRREL) -+#if defined(MODULE_EMBED) - sq_close((HSQUIRRELVM)squirrel->I); - #endif - squirrel->I = NULL; -@@ -48,7 +62,7 @@ static rpmsquirrel rpmsquirrelGetPool(/* - return (rpmsquirrel) rpmioGetPool(pool, sizeof(*squirrel)); - } - --#if defined(WITH_SQUIRREL) -+#if defined(MODULE_EMBED) - static void rpmsquirrelPrint(HSQUIRRELVM v, const SQChar *s, ...) - { - rpmsquirrel squirrel = sq_getforeignptr(v); -@@ -84,15 +98,42 @@ static rpmsquirrel rpmsquirrelI(void) - return _rpmsquirrelI; - } - -+#if defined(WITH_SQUIRREL) -+static void loadModule(void) { -+ const char librpmsquirrel[] = "rpmsquirrel.so"; -+ void *h; -+ -+ h = dlopen (librpmsquirrel, RTLD_NOW|RTLD_GLOBAL); -+ if (!h) -+ { -+ rpmlog(RPMLOG_WARNING, D_("Unable to open \"%s\" (%s), " -+ "embedded squirrel will not be available\n"), -+ librpmsquirrel, dlerror()); -+ } -+ else if(!((rpmsquirrelNew_p = dlsym(h, "rpmsquirrelNew")) -+ && (rpmsquirrelRunFile_p = dlsym(h, "rpmsquirrelRunFile")) -+ && (rpmsquirrelRun_p = dlsym(h, "rpmsquirrelRun")))) { -+ rpmlog(RPMLOG_WARNING, D_("Opened library \"%s\" is incompatible (%s), " -+ "embedded squirrel will not be available\n"), -+ librpmsquirrel, dlerror()); -+ if (dlclose (h)) -+ rpmlog(RPMLOG_WARNING, "Error closing library \"%s\": %s", librpmsquirrel, -+ dlerror()); -+ } else -+ dlopened = 1; -+} -+#endif -+ - rpmsquirrel rpmsquirrelNew(char ** av, uint32_t flags) - { -- rpmsquirrel squirrel = --#ifdef NOTYET -- (flags & 0x80000000) ? rpmsquirrelI() : -+#if defined(WITH_SQUIRREL) -+ if (!dlopened) loadModule(); -+ if (dlopened) return rpmsquirrelNew_p(av, flags); - #endif -- rpmsquirrelGetPool(_rpmsquirrelPool); -+ rpmsquirrel squirrel = (flags & 0x80000000) -+ ? rpmsquirrelI() : rpmsquirrelGetPool(_rpmsquirrelPool); - --#if defined(WITH_SQUIRREL) -+#if defined(MODULE_EMBED) - static const char * _av[] = { "rpmsquirrel", NULL }; - SQInteger stacksize = 1024; - HSQUIRRELVM v = sq_open(stacksize); -@@ -119,13 +160,18 @@ rpmsquirrel rpmsquirrelNew(char ** av, u - } - #endif - #endif -+#if !defined(WITH_SQUIRREL) - squirrel->iob = rpmiobNew(0); -+#endif - - return rpmsquirrelLink(squirrel); - } - - rpmRC rpmsquirrelRunFile(rpmsquirrel squirrel, const char * fn, const char ** resultp) - { -+#if defined(WITH_SQUIRREL) -+ if (dlopened) return rpmsquirrelRunFile_p(squirrel, fn, resultp); -+#endif - rpmRC rc = RPMRC_FAIL; - - if (_rpmsquirrel_debug) -@@ -145,6 +191,10 @@ fprintf(stderr, "==> %s(%p,%s)\n", __FUN - - rpmRC rpmsquirrelRun(rpmsquirrel squirrel, const char * str, const char ** resultp) - { -+#if defined(WITH_SQUIRREL) -+ if (dlopened) return rpmsquirrelRun_p(squirrel, str, resultp); -+#endif -+ - rpmRC rc = RPMRC_FAIL; - - if (_rpmsquirrel_debug) -@@ -152,7 +202,7 @@ fprintf(stderr, "==> %s(%p,%s)\n", __FUN - - if (squirrel == NULL) squirrel = rpmsquirrelI(); - --#if defined(WITH_SQUIRREL) -+#if defined(MODULE_EMBED) - if (str != NULL) { - size_t ns = strlen(str); - if (ns > 0) { ---- rpm-5.4.10/rpmio/rpmtcl.c.dlopen~ 2012-04-15 23:20:53.000000000 +0200 -+++ rpm-5.4.10/rpmio/rpmtcl.c 2012-07-10 20:20:02.588979751 +0200 -@@ -2,9 +2,16 @@ - - #include - --#ifdef WITH_TCL -+#if defined(MODULE_EMBED) - #include -+#undef WITH_TCL - #endif -+ -+#if defined(WITH_TCL) -+#include -+#include -+#endif -+ - #define _RPMTCL_INTERNAL - #include "rpmtcl.h" - -@@ -16,13 +23,20 @@ int _rpmtcl_debug = 0; - /*@unchecked@*/ /*@relnull@*/ - rpmtcl _rpmtclI = NULL; - -+#if defined(WITH_TCL) -+static int dlopened = 0; -+static rpmtcl (*rpmtclNew_p) (char ** av, uint32_t flags); -+static rpmRC (*rpmtclRunFile_p) (rpmtcl tcl, const char * fn, const char ** resultp); -+static rpmRC (*rpmtclRun_p) (rpmtcl tcl, const char * str, const char ** resultp); -+#endif -+ - static void rpmtclFini(void * _tcl) - /*@globals fileSystem @*/ - /*@modifies *_tcl, fileSystem @*/ - { - rpmtcl tcl = (rpmtcl) _tcl; - --#if defined(WITH_TCL) -+#if defined(MODULE_EMBED) - Tcl_DeleteInterp((Tcl_Interp *)tcl->I); - #endif - tcl->I = NULL; -@@ -47,7 +61,7 @@ static rpmtcl rpmtclGetPool(/*@null@*/ r - return (rpmtcl) rpmioGetPool(pool, sizeof(*tcl)); - } - --#if defined(WITH_TCL) -+#if defined(MODULE_EMBED) - static int rpmtclIOclose(ClientData CD, Tcl_Interp *I) - /*@*/ - { -@@ -122,15 +136,42 @@ static rpmtcl rpmtclI(void) - return _rpmtclI; - } - -+#if defined(WITH_TCL) -+static void loadModule(void) { -+ const char librpmtcl[] = "rpmtcl.so"; -+ void *h; -+ -+ h = dlopen (librpmtcl, RTLD_NOW|RTLD_GLOBAL); -+ if (!h) -+ { -+ rpmlog(RPMLOG_WARNING, D_("Unable to open \"%s\" (%s), " -+ "embedded tcl will not be available\n"), -+ librpmtcl, dlerror()); -+ } -+ else if(!((rpmtclNew_p = dlsym(h, "rpmtclNew")) -+ && (rpmtclRunFile_p = dlsym(h, "rpmtclRunFile")) -+ && (rpmtclRun_p = dlsym(h, "rpmtclRun")))) { -+ rpmlog(RPMLOG_WARNING, D_("Opened library \"%s\" is incompatible (%s), " -+ "embedded tcl will not be available\n"), -+ librpmtcl, dlerror()); -+ if (dlclose (h)) -+ rpmlog(RPMLOG_WARNING, "Error closing library \"%s\": %s", librpmtcl, -+ dlerror()); -+ } else -+ dlopened = 1; -+} -+#endif -+ - rpmtcl rpmtclNew(char ** av, uint32_t flags) - { -- rpmtcl tcl = --#ifdef NOTYET -- (flags & 0x80000000) ? rpmtclI() : -+#if defined(WITH_TCL) -+ if (!dlopened) loadModule(); -+ if (dlopened) return rpmtclNew_p(av, flags); - #endif -- rpmtclGetPool(_rpmtclPool); -+ rpmtcl tcl = (flags & 0x80000000) -+ ? rpmtclI() : rpmtclGetPool(_rpmtclPool); - --#if defined(WITH_TCL) -+#if defined(MODULE_EMBED) - static char * _av[] = { "rpmtcl", NULL }; - Tcl_Interp * tclI = Tcl_CreateInterp(); - char b[32]; -@@ -152,13 +193,18 @@ rpmtcl rpmtclNew(char ** av, uint32_t fl - tcl->tclout = (void *) tclout; - } - #endif -+#if !defined(WITH_TCL) - tcl->iob = rpmiobNew(0); -+#endif - - return rpmtclLink(tcl); - } - - rpmRC rpmtclRunFile(rpmtcl tcl, const char * fn, const char ** resultp) - { -+#if defined(WITH_TCL) -+ if (dlopened) return rpmtclRunFile_p(tcl, fn, resultp); -+#endif - rpmRC rc = RPMRC_FAIL; - - if (_rpmtcl_debug) -@@ -166,7 +212,7 @@ fprintf(stderr, "==> %s(%p,%s)\n", __FUN - - if (tcl == NULL) tcl = rpmtclI(); - --#if defined(WITH_TCL) -+#if defined(MODULE_EMBED) - if (fn != NULL && Tcl_EvalFile((Tcl_Interp *)tcl->I, fn) == TCL_OK) { - rc = RPMRC_OK; - if (resultp) -@@ -178,6 +224,9 @@ fprintf(stderr, "==> %s(%p,%s)\n", __FUN - - rpmRC rpmtclRun(rpmtcl tcl, const char * str, const char ** resultp) - { -+#if defined(WITH_TCL) -+ if (dlopened) return rpmtclRun_p(tcl, str, resultp); -+#endif - rpmRC rc = RPMRC_FAIL; - - if (_rpmtcl_debug) -@@ -185,7 +234,7 @@ fprintf(stderr, "==> %s(%p,%s)\n", __FUN - - if (tcl == NULL) tcl = rpmtclI(); - --#if defined(WITH_TCL) -+#if defined(MODULE_EMBED) - if (str != NULL && Tcl_Eval((Tcl_Interp *)tcl->I, str) == TCL_OK) { - rc = RPMRC_OK; - if (resultp) ---- rpm-5.4.10/ruby/Makefile.am.dlopen~ 2011-09-13 03:12:53.000000000 +0200 -+++ rpm-5.4.10/ruby/Makefile.am 2012-07-10 20:20:02.588979751 +0200 -@@ -50,8 +50,8 @@ pkgbindir = @USRLIBRPM@/bin - pkgbin_PROGRAMS = trb - pkglib_LTLIBRARIES = rpm.la - --rpm_la_CFLAGS = -fno-strict-aliasing --rpm_la_LDFLAGS = -module -avoid-version -+rpm_la_CFLAGS = -fno-strict-aliasing $(WITH_RUBY_CFLAGS) -+rpm_la_LDFLAGS = -module -avoid-version $(WITH_RUBY_LDFLAGS) - rpm_la_LIBADD = \ - $(top_builddir)/build/librpmbuild.la \ - $(top_builddir)/lib/librpm.la \ ---- rpm-5.4.10/ruby/system.h.dlopen~ 2010-12-01 17:09:50.000000000 +0100 -+++ rpm-5.4.10/ruby/system.h 2012-07-10 20:20:02.589979738 +0200 -@@ -2,6 +2,7 @@ - #define H_SYSTEM_RUBY - - #include "../system.h" -+#define HAVE_SETPROCTITLE 1 - - /* XXX ruby-1.8.6 grrr, ruby.h includes its own config.h too. */ - #undef PACKAGE_NAME diff --git a/rpm-5.4.10-do-assert-rather-than-just-exit-on-memalloc-filaure.patch b/rpm-5.4.10-do-assert-rather-than-just-exit-on-memalloc-filaure.patch deleted file mode 100644 index 3cc9ad6..0000000 --- a/rpm-5.4.10-do-assert-rather-than-just-exit-on-memalloc-filaure.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- rpm-5.4.10/rpmio/rpmmalloc.c~ 2013-03-04 10:30:01.765906904 +0100 -+++ rpm-5.4.10/rpmio/rpmmalloc.c 2013-03-04 10:30:03.707920379 +0100 -@@ -28,6 +28,7 @@ GENfree(rpmioItem) - /*@only@*/ void *vmefail(size_t size) - { - fprintf(stderr, _("memory alloc (%u bytes) returned NULL.\n"), (unsigned)size); -+ assert(0); - exit(EXIT_FAILURE); - /*@notreached@*/ - /*@-nullret@*/ diff --git a/rpm-5.4.10-dont-repackage-if-justdb-is-specified.patch b/rpm-5.4.10-dont-repackage-if-justdb-is-specified.patch deleted file mode 100644 index a6940d4..0000000 --- a/rpm-5.4.10-dont-repackage-if-justdb-is-specified.patch +++ /dev/null @@ -1,19 +0,0 @@ -Index: rpm/lib/transaction.c -RCS File: /v/rpm/cvs/rpm/lib/transaction.c,v -rcsdiff -q -kk '-r1.429.2.12' '-r1.429.2.13' -u '/v/rpm/cvs/rpm/lib/transaction.c,v' 2>/dev/null ---- rpm/lib/transaction.c 2012/06/04 15:10:11 1.429.2.12 -+++ rpm/lib/transaction.c 2012/12/04 18:48:32 1.429.2.13 -@@ -2244,9 +2244,11 @@ - } - - /* =============================================== -- * Save removed files before erasing. -+ * Save removed files before erasing (w/o --justdb). - */ -- if (TSF_ISSET(tsflags, DIRSTASH) || TSF_ISSET(tsflags, REPACKAGE)) { -+ if ((TSF_ISSET(tsflags, DIRSTASH) || TSF_ISSET(tsflags, REPACKAGE)) -+ && !TSF_ISSET(tsflags, JUSTDB)) -+ { - xx = rpmtsRepackage(ts, numRemoved); - } - diff --git a/rpm-5.4.10-dont-try-generate-rpmfc-dependencies-from-doc-files.patch b/rpm-5.4.10-dont-try-generate-rpmfc-dependencies-from-doc-files.patch deleted file mode 100644 index 72faa1f..0000000 --- a/rpm-5.4.10-dont-try-generate-rpmfc-dependencies-from-doc-files.patch +++ /dev/null @@ -1,51 +0,0 @@ ---- rpm-5.4.10/lib/rpmfc.c.skip_doc~ 2012-07-28 17:19:43.136069278 +0200 -+++ rpm-5.4.10/lib/rpmfc.c 2012-07-28 17:25:16.778898168 +0200 -@@ -818,7 +818,17 @@ static int rpmfcSCRIPT(rpmfc fc) - int i; - int is_executable; - int xx; -- const char * defaultdocdir = NULL; -+ -+ /* Don't generate dependencies from files shipped as documentation */ -+ if (!rpmExpandNumeric("%{_generate_dependencies_from_docdir}")) { -+ const char * defaultdocdir = rpmExpand("%{?_defaultdocdir}", NULL); -+ if (defaultdocdir == NULL || *defaultdocdir == '\0') -+ defaultdocdir = strdup("/usr/share/doc"); -+ xx = !strncmp(fn+fc->brlen, defaultdocdir, strlen(defaultdocdir)); -+ defaultdocdir = _free(defaultdocdir) ; -+ if (xx) -+ return 0; -+ } - - /* Extract dependencies only from files with executable bit set. */ - { struct stat sb, * st = &sb; -@@ -904,16 +914,10 @@ static int rpmfcSCRIPT(rpmfc fc) - (void) fclose(fp); - - if (fc->fcolor->vals[fc->ix] & RPMFC_PERL) { -- defaultdocdir = rpmExpand("%{?_defaultdocdir}", NULL); -- if (defaultdocdir == NULL || *defaultdocdir == '\0') -- defaultdocdir = strdup("/usr/share/doc"); -- -- if (strncmp(fn, defaultdocdir, strlen(defaultdocdir))) { -- if (fc->fcolor->vals[fc->ix] & RPMFC_MODULE) -- xx = rpmfcHelper(fc, 'P', "perl"); -- if (is_executable || (fc->fcolor->vals[fc->ix] & RPMFC_MODULE)) -- xx = rpmfcHelper(fc, 'R', "perl"); -- } -+ if (fc->fcolor->vals[fc->ix] & RPMFC_MODULE) -+ xx = rpmfcHelper(fc, 'P', "perl"); -+ if (is_executable || (fc->fcolor->vals[fc->ix] & RPMFC_MODULE)) -+ xx = rpmfcHelper(fc, 'R', "perl"); - } else - if (fc->fcolor->vals[fc->ix] & RPMFC_PYTHON) { - xx = rpmfcHelper(fc, 'P', "python"); -@@ -1009,8 +1013,6 @@ static int rpmfcSCRIPT(rpmfc fc) - #endif - } - --/*@-observertrans@*/ -- defaultdocdir = _free(defaultdocdir) ; - /*@=observertrans@*/ - return 0; - } diff --git a/rpm-5.4.10-drop-rpath-from-perl-module.patch b/rpm-5.4.10-drop-rpath-from-perl-module.patch deleted file mode 100644 index 4dbe75a..0000000 --- a/rpm-5.4.10-drop-rpath-from-perl-module.patch +++ /dev/null @@ -1,41 +0,0 @@ ---- rpm-5.4.10/perl/Makefile.PL.in.droprpath~ 2012-03-23 00:45:15.000000000 +0100 -+++ rpm-5.4.10/perl/Makefile.PL.in 2013-01-06 23:30:23.640064511 +0100 -@@ -6,8 +6,6 @@ use ExtUtils::MakeMaker; - - my @libdir = qw(. build lib popt rpmdb rpmio misc rpmconstant); - --# use $ORIGIN relative paths to avoid LD_LIBRARY_PATH nonsense in tree --my @ldaddr = map { '-Wl,-rpath,\$$\ORIGIN/../../../../../' . $_ . '/.libs' } @libdir; - my @ldaddp = map { '-L@top_builddir@/' . $_ . '/.libs' } @libdir; - my @ldadd = map { '-l' . $_ } qw(rpmmisc rpmio rpmbuild rpm popt rpmdb rpmconstant); - -@@ -62,17 +60,16 @@ sub xs_o { - } - - WriteMakefile( -- 'NAME' => 'RPM', -- 'OBJECT' => join(' ', @objects), -- 'VERSION' => '@VERSION@', -- 'MAKEFILE'=> 'Makefile.perl', -- 'CCFLAGS' => join(' ', '@CFLAGS@', '-Wno-unused-variable', '-Wno-missing-prototypes', '-Wno-implicit', '-Wno-strict-prototypes'), -- 'dynamic_lib' => { -- OTHERLDFLAGS => join(' ', @ldaddp, @ldadd, @ldlibs, @ldaddr) -- }, -- 'OPTIMIZE'=> '-g', -- 'INC' => join(' ', @cppflags, map { '-I@top_srcdir@/'. $_ } @libdir) . ' @CPPFLAGS@', -- 'INSTALLMAN1DIR' => '@mandir@/man1', -- 'INSTALLMAN3DIR' => '@mandir@/man3', -- @PERL_INSTALLDIRS@ -+ 'NAME' => 'RPM', -+ 'OBJECT' => join(' ', @objects), -+ 'VERSION' => '@VERSION@', -+ 'MAKEFILE'=> 'Makefile.perl', -+ 'CCFLAGS' => join(' ', '@CFLAGS@', '-Wno-unused-variable', '-Wno-missing-prototypes', '-Wno-implicit', '-Wno-strict-prototypes'), -+ 'dynamic_lib' => { OTHERLDFLAGS => join(' ', @ldaddp, @ldadd, @ldlibs) }, -+ 'OPTIMIZE'=> '-g', -+ 'INC' => join(' ', @cppflags, map { '-I@top_srcdir@/'. $_ } @libdir) . ' @CPPFLAGS@', -+ 'INSTALLMAN1DIR' => '@mandir@/man1', -+ 'INSTALLMAN3DIR' => '@mandir@/man3', -+ @PERL_INSTALLDIRS@ - ); -+ diff --git a/rpm-5.4.10-duplicate_files_terminate_build.patch b/rpm-5.4.10-duplicate_files_terminate_build.patch deleted file mode 100644 index 8f4574b..0000000 --- a/rpm-5.4.10-duplicate_files_terminate_build.patch +++ /dev/null @@ -1,67 +0,0 @@ ---- rpm-5.4.10/build/files.c.dups_terminate~ 2012-07-10 20:09:01.125249185 +0200 -+++ rpm-5.4.10/build/files.c 2012-07-10 20:09:01.135249061 +0200 -@@ -2917,7 +2917,8 @@ exit: - - /* auxiliary function for checkDuplicateFiles() */ - /* XXX need to pass Header because fi->h is NULL */ --static int fiIntersect(/*@null@*/ rpmfi fi1, /*@null@*/ rpmfi fi2, size_t buildrootL) -+static int fiIntersect(/*@null@*/ rpmfi fi1, /*@null@*/ rpmfi fi2, -+ size_t buildrootL, int _duplicate_files_terminate_build) - /*@globals internalState @*/ - /*@modifies fi1, fi2, internalState @*/ - { -@@ -2955,7 +2956,7 @@ static int fiIntersect(/*@null@*/ rpmfi - he->tag = RPMTAG_NVRA; - N2 = (headerGet(fi2->h, he, 0) ? he->p.str : NULL); - -- rpmlog(RPMLOG_WARNING, -+ rpmlog(_duplicate_files_terminate_build ? RPMLOG_ERR : RPMLOG_WARNING, - _("File(s) packaged into both %s and %s:\n%s"), - N1, N2, rpmiobStr(dups)); - -@@ -2972,7 +2973,8 @@ static int fiIntersect(/*@null@*/ rpmfi - * @param spec spec file control structure - * @return number of duplicate files - */ --static int checkDuplicateFiles(Spec spec, size_t buildrootL) -+static int checkDuplicateFiles(Spec spec, size_t buildrootL, -+ int _duplicate_files_terminate_build) - /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/ - /*@modifies *spec->packages, - rpmGlobalMacroContext, fileSystem, internalState @*/ -@@ -2997,7 +2999,7 @@ static int checkDuplicateFiles(Spec spec - #endif - if (fi2 == NULL) continue; - (void) rpmfiSetHeader(fi2, pkg2->header); -- n += fiIntersect(fi1, fi2, buildrootL); -+ n += fiIntersect(fi1, fi2, buildrootL, _duplicate_files_terminate_build); - (void) rpmfiSetHeader(fi2, NULL); - fi2 = rpmfiFree(fi2); - } -@@ -3181,9 +3183,13 @@ rpmRC processBinaryFiles(Spec spec, int - } - - if (res == RPMRC_OK) { -+ int _duplicate_files_terminate_build = -+ rpmExpandNumeric("%{?_duplicate_files_terminate_build}"); - if (checkUnpackagedFiles(spec) > 0) - res = RPMRC_FAIL; -- (void) checkDuplicateFiles(spec, buildrootL); -+ if (checkDuplicateFiles(spec, buildrootL, _duplicate_files_terminate_build) > 0 && -+ _duplicate_files_terminate_build) -+ res = RPMRC_FAIL; - (void) checkUnpackagedSubdirs(spec, buildrootL); - } - ---- rpm-5.4.10/macros/mandriva.in.dups_terminate~ 2012-05-19 22:35:44.000000000 +0200 -+++ rpm-5.4.10/macros/mandriva.in 2012-07-10 20:13:41.582742985 +0200 -@@ -126,6 +126,9 @@ end\ - # use XZ to compress binary packages: - %_binary_payload w5.xzdio - -+%_duplicate_files_terminate_build 1 -+ -+ - %_build_pkgcheck_set /usr/bin/rpmlint -T -f %{_sourcedir}/%{name}.rpmlintrc - %_build_pkgcheck_srpm /usr/bin/rpmlint -T -f %{_sourcedir}/%{name}.rpmlintrc - %_nonzero_exit_pkgcheck_terminate_build 1 diff --git a/rpm-5.4.10-enable-nofsync-for-rpm-rebuilddb.patch b/rpm-5.4.10-enable-nofsync-for-rpm-rebuilddb.patch deleted file mode 100644 index 3ee51e6..0000000 --- a/rpm-5.4.10-enable-nofsync-for-rpm-rebuilddb.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.10/macros/mandriva.in~ 2013-04-02 08:31:46.123220885 +0200 -+++ rpm-5.4.10/macros/mandriva.in 2013-04-02 08:33:23.468152733 +0200 -@@ -187,6 +187,8 @@ export CFLAGS="%{optflags} -fPIE"; expor - # 0x00f00 (_RPMVSF_NOHEADER) --nohdrchk if set, don't check rpmdb headers - %_vsflags_query 0xc0c00 - -+# enable nofsync when rebuilding rpmdb -+%__dbi_rebuild nofsync - - # Open all indices before doing chroot(2). - # diff --git a/rpm-5.4.10-enhance-rename-macro-to-accept-optional-second-version-arg.patch b/rpm-5.4.10-enhance-rename-macro-to-accept-optional-second-version-arg.patch deleted file mode 100644 index ad0f067..0000000 --- a/rpm-5.4.10-enhance-rename-macro-to-accept-optional-second-version-arg.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- rpm-5.4.10/macros/mandriva.in.rename~ 2013-02-24 23:17:05.947081929 +0100 -+++ rpm-5.4.10/macros/mandriva.in 2013-02-25 00:33:33.342514014 +0100 -@@ -47,8 +47,8 @@ - %EVRD %{?epoch:%{epoch}:}%{?version:%{version}}%{?release:-%{release}}%{?distepoch::%{distepoch}} - - %rename() \ --Obsoletes: %{1} < %{EVRD} \ --Provides: %{1} = %{EVRD} -+Obsoletes: %{1} < %{?2}%{!?2:%{EVRD}} \ -+Provides: %{1} = %{?2}%{!?2:%{EVRD}} - - - %_default_patch_flags -s -U diff --git a/rpm-5.4.10-fat-lto-objects.patch b/rpm-5.4.10-fat-lto-objects.patch deleted file mode 100644 index ed49d41..0000000 --- a/rpm-5.4.10-fat-lto-objects.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.10.orig/macros/mandriva.in 2014-05-26 14:37:35.534125641 +0400 -+++ rpm-5.4.10/macros/mandriva.in 2014-05-26 14:38:35.576130442 +0400 -@@ -160,7 +160,7 @@ - %Werror_cflags -Wformat -Werror=format-security - - %_ssp_cflags -fstack-protector --param=ssp-buffer-size=4%{?_serverbuild_flags: %_serverbuild_flags} --%__common_cflags -O2 %{debugcflags} -pipe %{Werror_cflags} %{?_fortify_cflags} -+%__common_cflags -O2 %{debugcflags} -pipe %{Werror_cflags} %{?_fortify_cflags} -ffat-lto-objects - %__common_cflags_with_ssp %{__common_cflags} %{?_ssp_cflags} - - # Servers opt flags. diff --git a/rpm-5.4.10-files-listed-twice-terminates-build.patch b/rpm-5.4.10-files-listed-twice-terminates-build.patch deleted file mode 100644 index 9fd555c..0000000 --- a/rpm-5.4.10-files-listed-twice-terminates-build.patch +++ /dev/null @@ -1,74 +0,0 @@ ---- rpm-5.4.10/build/files.c.twice_terminate~ 2012-07-10 20:18:14.613329633 +0200 -+++ rpm-5.4.10/build/files.c 2012-07-10 20:18:14.677328833 +0200 -@@ -1329,7 +1329,7 @@ static rpmuint32_t getDigestAlgo(Header - * @param h - * @param isSrc - */ --static void genCpioListAndHeader(/*@partial@*/ FileList fl, -+static rpmRC genCpioListAndHeader(/*@partial@*/ FileList fl, - rpmfi * fip, Header h, int isSrc) - /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/ - /*@modifies h, *fip, fl->processingFailed, fl->fileList, -@@ -1349,6 +1349,7 @@ static void genCpioListAndHeader(/*@part - rpmuint32_t dalgo = getDigestAlgo(h, isSrc); - char buf[BUFSIZ]; - int i, xx; -+ rpmRC rc = RPMRC_OK; - - memset(buf, 0, sizeof(buf)); /* XXX valgrind on rhel6 beta pickier */ - -@@ -1377,9 +1378,14 @@ memset(buf, 0, sizeof(buf)); /* XXX valg - /* file flags */ - flp[1].flags |= flp->flags; - -- if (!(flp[1].flags & RPMFILE_EXCLUDE)) -- rpmlog(RPMLOG_WARNING, _("File listed twice: %s\n"), -+ if (!(flp[1].flags & RPMFILE_EXCLUDE)) { -+ int terminate = rpmExpandNumeric("%{?_files_listed_twice_terminate_build}"); -+ -+ rpmlog(terminate ? RPMLOG_ERR : RPMLOG_WARNING, _("File listed twice: %s\n"), - flp->fileURL); -+ if (terminate) -+ rc = RPMRC_FAIL; -+ } - - /* file mode */ - if (S_ISDIR(flp->fl_mode)) { -@@ -1792,6 +1798,8 @@ if (_rpmbuildFlags & 4) { - fi = rpmfiFree(fi); - /*@=compdef@*/ - } -+ -+ return rc; - } - - /** -@@ -2514,7 +2522,8 @@ static rpmRC processPackageFiles(Spec sp - "PartialHardlinkSets", "4.0.4-1"); - - /* XXX should tags be added if filelist is empty? */ -- genCpioListAndHeader(&fl, &pkg->fi, pkg->header, 0); -+ if (genCpioListAndHeader(&fl, &pkg->fi, pkg->header, 0) != RPMRC_OK) -+ fl.processingFailed = 1; - - if (spec->timeCheck) - timeCheck(spec->timeCheck, pkg->header); -@@ -2828,7 +2837,7 @@ int processSourceFiles(Spec spec) - - /* XXX should tags be added if filelist is empty? */ - spec->fi = NULL; -- genCpioListAndHeader(&fl, &spec->fi, spec->sourceHeader, 1); -+ rc = genCpioListAndHeader(&fl, &spec->fi, spec->sourceHeader, 1); - - exit: - *sfp = rpmiobFree(*sfp); ---- rpm-5.4.10/macros/mandriva.in.twice_terminate~ 2012-07-10 20:18:14.000000000 +0200 -+++ rpm-5.4.10/macros/mandriva.in 2012-07-10 20:18:32.060111516 +0200 -@@ -128,6 +128,7 @@ end\ - - %_duplicate_files_terminate_build 1 - %_unpackaged_subdirs_terminate_build 0 -+%_files_listed_twice_terminate_build 1 - - %_build_pkgcheck_set /usr/bin/rpmlint -T -f %{_sourcedir}/%{name}.rpmlintrc - %_build_pkgcheck_srpm /usr/bin/rpmlint -T -f %{_sourcedir}/%{name}.rpmlintrc diff --git a/rpm-5.4.10-find-lang-kde5.patch b/rpm-5.4.10-find-lang-kde5.patch deleted file mode 100644 index c19c021..0000000 --- a/rpm-5.4.10-find-lang-kde5.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff -urN rpm-5.4.10/scripts/find-lang.sh rpm-5.4.10-patched/scripts/find-lang.sh ---- rpm-5.4.10/scripts/find-lang.sh 2012-06-02 00:29:07.000000000 +1100 -+++ rpm-5.4.10-patched/scripts/find-lang.sh 2015-03-12 14:56:08.000000000 +1000 -@@ -192,9 +192,9 @@ - s:%lang(C) :: - /^$/d' >> $MO_NAME - --KDE3_HTML=`kde-config --expandvars --install html 2>/dev/null` --if [ x"$KDE3_HTML" != x -a -d "$TOP_DIR$KDE3_HTML" ]; then --find "$TOP_DIR$KDE3_HTML" -type d|sed ' -+KDE4_HTML=`kde4-config --expandvars --install html 2>/dev/null` -+if [ x"$KDE4_HTML" != x -a -d "$TOP_DIR$KDE4_HTML" ]; then -+find "$TOP_DIR$KDE4_HTML" -type d|sed ' - s:'"$TOP_DIR"':: - '"$NO_ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/'"$NAME"'/\):: - '"$NO_ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/'"$NAME"'\)$:%lang(\2) \1\2\3: -@@ -205,9 +205,9 @@ - /^$/d' >> $MO_NAME - fi - --KDE4_HTML=`kde4-config --expandvars --install html 2>/dev/null` --if [ x"$KDE4_HTML" != x -a -d "$TOP_DIR$KDE4_HTML" ]; then --find "$TOP_DIR$KDE4_HTML" -type d|sed ' -+KDE5_HTML="/usr/share/doc5/HTML/" -+if [ -d "$TOP_DIR$KDE5_HTML" ]; then -+find "$TOP_DIR$KDE5_HTML" -type d|sed ' - s:'"$TOP_DIR"':: - '"$NO_ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/'"$NAME"'/\):: - '"$NO_ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/'"$NAME"'\)$:%lang(\2) \1\2\3: diff --git a/rpm-5.4.10-fix-64bit-tagSwab.patch b/rpm-5.4.10-fix-64bit-tagSwab.patch deleted file mode 100644 index e937a81..0000000 --- a/rpm-5.4.10-fix-64bit-tagSwab.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.10/rpmdb/header.c.ui64p~ 2013-03-18 12:43:09.043950947 +0100 -+++ rpm-5.4.10/rpmdb/header.c 2013-03-18 12:44:35.059800829 +0100 -@@ -398,7 +398,7 @@ static unsigned char * tagSwab(/*@out@*/ - switch (he->t) { - case RPM_UINT64_TYPE: - { rpmuint32_t * tt = (rpmuint32_t *)t; --assert(nb == (he->c * sizeof(*tt))); -+assert(nb == (he->c * sizeof(rpmuint64_t))); - for (i = 0; i < he->c; i++) { - rpmuint32_t j = 2 * i; - rpmuint32_t b = (rpmuint32_t) htonl(he->p.ui32p[j]); diff --git a/rpm-5.4.10-fix-a-couple-of-debugedit-memleaks.patch b/rpm-5.4.10-fix-a-couple-of-debugedit-memleaks.patch deleted file mode 100644 index db62c3d..0000000 --- a/rpm-5.4.10-fix-a-couple-of-debugedit-memleaks.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.10/tools/debugedit.c.debugedit_memleaks~ 2012-05-19 22:14:30.000000000 +0200 -+++ rpm-5.4.10/tools/debugedit.c 2013-01-03 09:24:01.764153125 +0100 -@@ -1689,6 +1689,8 @@ main (int argc, char *argv[]) - /* Restore old access rights */ - chmod (file, stat_buf.st_mode); - -+ _free(dso->filename); -+ _free(dso); - poptFreeContext (optCon); - - return 0; diff --git a/rpm-5.4.10-fix-addsign-check.patch b/rpm-5.4.10-fix-addsign-check.patch deleted file mode 100644 index bdc1a4a..0000000 --- a/rpm-5.4.10-fix-addsign-check.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff -ur rpm-5.4.10/build/pack.c rpm-5.4.10.new/build/pack.c ---- rpm-5.4.10/build/pack.c 2012-05-20 00:24:58.000000000 +0400 -+++ rpm-5.4.10.new/build/pack.c 2015-04-07 17:54:36.410943594 +0300 -@@ -649,7 +649,7 @@ - char buf[BUFSIZ]; - Header h; - Header sigh = NULL; -- int addsig = 0; -+ int addsig = (passPhrase && passPhrase[0]); - int isSource; - rpmRC rc = RPMRC_OK; - size_t nbr; -@@ -859,7 +859,6 @@ - (void) rpmAddSignature(sigh, sigtarget, RPMSIGTAG_MD5, passPhrase); - - sigtag = RPMSIGTAG_GPG; -- addsig = (passPhrase && passPhrase[0]); - - if (addsig) { - rpmlog(RPMLOG_NOTICE, _("Generating signature: %d\n"), sigtag); diff --git a/rpm-5.4.10-fix-egg-info-provides.patch b/rpm-5.4.10-fix-egg-info-provides.patch deleted file mode 100644 index 2361215..0000000 --- a/rpm-5.4.10-fix-egg-info-provides.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff -urN rpm-5.4.10-orig/lib/rpmfc.c rpm-5.4.10-patched/lib/rpmfc.c ---- rpm-5.4.10-orig/lib/rpmfc.c 2018-06-21 16:46:02.416087354 +1000 -+++ rpm-5.4.10-patched/lib/rpmfc.c 2018-06-21 16:54:06.839041871 +1000 -@@ -1468,6 +1468,16 @@ - else if (_suffix(s, "qmldir")) - ftype = "qml file"; - -+ /* XXX all files with extension ".egg" are ASCII text for now. */ -+ /* XXX python code examples from them give false Python script result. */ -+ else if (_suffix(s, ".egg")) -+ ftype = "ASCII text"; -+ -+ /* XXX all files with extension ".egg-info" are ASCII text for now. */ -+ /* XXX python code examples from them give false Python script result. */ -+ else if (_suffix(s, ".egg-info")) -+ ftype = "ASCII text"; -+ - /* XXX all files with extension ".php" are PHP for now. */ - else if (_suffix(s, ".php")) - ftype = "PHP script text"; diff --git a/rpm-5.4.10-fix-font-dep-misidentification.patch b/rpm-5.4.10-fix-font-dep-misidentification.patch deleted file mode 100644 index cbc2ff5..0000000 --- a/rpm-5.4.10-fix-font-dep-misidentification.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.10/lib/rpmfc.c.fontdep_sure~ 2013-04-16 02:17:42.052532219 +0200 -+++ rpm-5.4.10/lib/rpmfc.c 2013-04-16 02:18:44.003630165 +0200 -@@ -971,7 +971,7 @@ static int rpmfcSCRIPT(rpmfc fc) - if (is_executable || (fc->fcolor->vals[fc->ix] & RPMFC_MODULE)) - xx = rpmfcHelper(fc, 'R', "ruby"); - } else -- if (fc->fcolor->vals[fc->ix] & RPMFC_FONT) { -+ if ((fc->fcolor->vals[fc->ix] == (RPMFC_FONT|RPMFC_INCLUDE))) { - xx = rpmfcHelper(fc, 'P', "font"); - /* XXX: currently of no use, but for the sake of consistency... */ - xx = rpmfcHelper(fc, 'R', "font"); diff --git a/rpm-5.4.10-fix-fsanitize-integer.patch b/rpm-5.4.10-fix-fsanitize-integer.patch deleted file mode 100644 index 75a975b..0000000 --- a/rpm-5.4.10-fix-fsanitize-integer.patch +++ /dev/null @@ -1,58 +0,0 @@ -diff -urN rpm-5.4.10/lib/depends.c rpm-5.4.10-patched/lib/depends.c ---- rpm-5.4.10/lib/depends.c 2012-04-16 08:20:56.000000000 +1100 -+++ rpm-5.4.10-patched/lib/depends.c 2017-01-24 22:01:08.293412374 +1000 -@@ -58,7 +58,13 @@ - { - const uint32_t * aptr = (const uint32_t *) a; - const uint32_t * bptr = (const uint32_t *) b; -- int rc = (*aptr - *bptr); -+ int rc; -+ if (*aptr > *bptr) -+ rc = 1; -+ else if (*aptr < *bptr) -+ rc = -1; -+ else -+ rc = 0; - return rc; - } - -diff -urN rpm-5.4.10/lib/rpmts.c rpm-5.4.10-patched/lib/rpmts.c ---- rpm-5.4.10/lib/rpmts.c 2012-04-16 08:20:58.000000000 +1100 -+++ rpm-5.4.10-patched/lib/rpmts.c 2017-01-24 22:00:48.517412898 +1000 -@@ -1211,20 +1211,32 @@ - */ - case FA_CREATE: - dsi->bneeded += bneeded; -- dsi->bneeded -= BLOCK_ROUND(prevSize, dsi->f_bsize); -+ bneeded = BLOCK_ROUND(prevSize, dsi->f_bsize); -+ if (dsi->bneeded > bneeded) -+ dsi->bneeded -= bneeded; -+ else -+ dsi->bneeded = 0; - /*@switchbreak@*/ break; - - case FA_ERASE: - dsi->ineeded--; -- dsi->bneeded -= bneeded; -+ if (dsi->bneeded > bneeded) -+ dsi->bneeded -= bneeded; -+ else -+ dsi->bneeded = 0; - /*@switchbreak@*/ break; - - default: - /*@switchbreak@*/ break; - } - -- if (fixupSize) -- dsi->bneeded -= BLOCK_ROUND(fixupSize, dsi->f_bsize); -+ if (fixupSize) { -+ bneeded = BLOCK_ROUND(fixupSize, dsi->f_bsize); -+ if (dsi->bneeded > bneeded) -+ dsi->bneeded -= bneeded; -+ else -+ dsi->bneeded = 0; -+ } - } - - void rpmtsCheckDSIProblems(const rpmts ts, const rpmte te) diff --git a/rpm-5.4.10-fix-ldflags-passing.patch b/rpm-5.4.10-fix-ldflags-passing.patch deleted file mode 100644 index 8349bbe..0000000 --- a/rpm-5.4.10-fix-ldflags-passing.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- rpm-5.4.10/macros/mandriva.in.ldflags~ 2012-10-30 09:49:34.586248202 +0100 -+++ rpm-5.4.10/macros/mandriva.in 2012-10-31 13:12:19.439849728 +0100 -@@ -349,7 +349,8 @@ GCONF_CONFIG_SOURCE=`%{_gconftool_bin} - - CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ; \ - CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ; \ - FFLAGS="${FFLAGS:-%optflags}" ; export FFLAGS ; \ -- %(if [ -n '%ldflags' ]; then echo 'LDFLAGS="$LDFLAGS%ldflags"; export LDFLAGS ;'; fi) -+ %{?ldflags:LDFLAGS="${LDFLAGS:-%{ldflags}}"; export LDFLAGS ;} \ -+ %{nil} - - %before_configure \ - %setup_compile_flags \ diff --git a/rpm-5.4.10-fix-memalloc-realloc-to-0.patch b/rpm-5.4.10-fix-memalloc-realloc-to-0.patch deleted file mode 100644 index 1048409..0000000 --- a/rpm-5.4.10-fix-memalloc-realloc-to-0.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- rpm-5.4.10/rpmdb/rpmdb.c.xrealloc~ 2013-03-19 10:57:50.188039986 +0100 -+++ rpm-5.4.10/rpmdb/rpmdb.c 2013-03-26 15:16:47.114499354 +0100 -@@ -2660,7 +2660,8 @@ assert(keylen == sizeof(hdrNum)); - } - if(set && set->count != size) { - set->count = size; -- set->recs = xrealloc(set->recs, size * sizeof(*set->recs)); -+ if (size) -+ set->recs = xrealloc(set->recs, size * sizeof(*set->recs)); - } - - xx = dbiCclose(pdbi, pdbc, 0); diff --git a/rpm-5.4.10-fix-neon-saving-error-pages-as-target-file.patch b/rpm-5.4.10-fix-neon-saving-error-pages-as-target-file.patch deleted file mode 100644 index b2adfcd..0000000 --- a/rpm-5.4.10-fix-neon-saving-error-pages-as-target-file.patch +++ /dev/null @@ -1,56 +0,0 @@ ---- rpm-5.4.10/rpmio/rpmdav.c.dl_error~ 2012-07-06 17:39:19.000000000 +0200 -+++ rpm-5.4.10/rpmio/rpmdav.c 2012-07-11 19:49:00.504968365 +0200 -@@ -1722,6 +1722,7 @@ int davReq(FD_t ctrl, const char * httpC - { - urlinfo u; - int rc = 0; -+ const ne_status *status; - - assert(ctrl != NULL); - u = (urlinfo) ctrl->u; -@@ -1789,10 +1790,24 @@ assert(ctrl->req != NULL); - } - - /* XXX somewhere else instead? */ --if (_dav_debug) { -- const ne_status *status = ne_get_status((ne_request *)ctrl->req); --fprintf(stderr, "HTTP request sent, awaiting response... %d %s\n", status->code, status->reason_phrase); --} -+ status = ne_get_status((ne_request *)ctrl->req); -+ if (_dav_debug) -+ fprintf(stderr, "HTTP request sent, awaiting response... %d %s\n", status->code, status->reason_phrase); -+ -+ switch (status->code) { -+ case 200: -+ case 201: /* 201 Created. */ -+ break; -+ case 204: /* HACK: if overwriting, 204 No Content. */ -+ case 403: /* 403 Forbidden. */ -+ rc = FTPERR_UNKNOWN; -+ break; -+ default: -+ rc = FTPERR_FILE_NOT_FOUND; -+ break; -+ } -+ if (rc || _dav_debug) -+ fprintf(stderr, "HTTP request sent, awaiting response... %d %s\n", status->code, status->reason_phrase); - - if (rc) - goto errxit; ---- rpm-5.4.10/rpmio/rpmio.c.dl_error~ 2012-07-06 17:39:19.000000000 +0200 -+++ rpm-5.4.10/rpmio/rpmio.c 2012-07-11 19:47:59.396732322 +0200 -@@ -2306,9 +2306,12 @@ fprintf(stderr, "*** ufdOpen(%s,0x%x,0%o - u->openError = httpReq(fd, cmd, path); - #endif - if (u->openError < 0) { -+ /* XXX rpmdav doesn't behave consistently with the rest...*/ -+#ifndef WITH_NEON - /* XXX make sure that we can exit through ufdClose */ -- fd = fdLink(fd, "error ctrl (ufdOpen HTTP)"); -- fd = fdLink(fd, "error data (ufdOpen HTTP)"); -+ fd = u->ctrl = fdLink(fd, "error ctrl (ufdOpen HTTP)"); -+ fd = u->data fdLink(fd, "error data (ufdOpen HTTP)"); -+#endif - } else { - fd->bytesRemain = ((!strcmp(cmd, "GET")) - ? fd->contentLength : -1); diff --git a/rpm-5.4.10-fix-perl-abi-provides-version.patch b/rpm-5.4.10-fix-perl-abi-provides-version.patch deleted file mode 100644 index 1a52d6b..0000000 --- a/rpm-5.4.10-fix-perl-abi-provides-version.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- rpm-5.4.10/scripts/perl.prov.perl_abiver~ 2012-12-19 01:42:07.219674388 +0100 -+++ rpm-5.4.10/scripts/perl.prov 2012-12-19 01:42:13.285755596 +0100 -@@ -97,11 +97,15 @@ sub process_file { - my ($file) = @_; - - if ($file =~ m/$Config{archname}\/Config.pm$/) { -- my $vercmd = "perl -I". File::Basename::dirname($file) . " -MConfig -e 'print \"\$Config{version}\"'"; -- my $v = `$vercmd`; -- if ($v) { -- $require{"abi"} = $v; -+ my $vercmd = "perl -I". File::Basename::dirname($file) . " -MConfig -e 'print \"VERSION=\$Config{version}\"'"; -+ my $v = `$vercmd 2>&1`; -+ if ($v) { -+ if ($? && $v =~ m!^Perl lib version \((\d*.\d*.\d*)\) doesn't match executable!) { -+ $require{"abi"} = $1; -+ } elsif($v =~ m!^VERSION=(\d*.\d*.\d*)!) { -+ $require{"abi"} = $1; - } -+ } - } - - if (!open(FILE, $file)) { diff --git a/rpm-5.4.10-fix-uninitialized-variable.patch b/rpm-5.4.10-fix-uninitialized-variable.patch deleted file mode 100644 index 66d2451..0000000 --- a/rpm-5.4.10-fix-uninitialized-variable.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.10/lib/rpmds.c.initialize~ 2012-10-04 16:34:29.681882554 +0200 -+++ rpm-5.4.10/lib/rpmds.c 2012-10-04 16:34:31.081905144 +0200 -@@ -3583,7 +3583,7 @@ int rpmdsSymlink(const char * fn, int fl - int is_symlink; - const char * soname = NULL; - rpmds ds; -- int xx; -+ int xx = -1; - int isElf64; - int isuClibc; - int gotSONAME = 0; diff --git a/rpm-5.4.10-hardening.patch b/rpm-5.4.10-hardening.patch deleted file mode 100644 index e1bd9c6..0000000 --- a/rpm-5.4.10-hardening.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur rpm-5.4.10.orig/macros/mandriva.in rpm-5.4.10/macros/mandriva.in ---- rpm-5.4.10.orig/macros/mandriva.in 2014-05-22 14:47:17.000000000 +0400 -+++ rpm-5.4.10/macros/mandriva.in 2014-05-22 15:03:31.704614385 +0400 -@@ -352,7 +352,7 @@ - - %__libtoolize_configure %{?__libtoolize:(cd $CONFIGURE_TOP; [ ! -f configure.in -a ! -f configure.ac ] || %{__libtoolize} --copy --force)} - --%ldflags %{?!_disable_ld_as_needed: -Wl,--as-needed}%{?!_disable_ld_no_undefined: -Wl,--no-undefined}%{?!_disable_ld_relro: -Wl,-z,relro}%{?!_disable_ld_O1: -Wl,-O1}%{?!_disable_ld_build_id: -Wl,--build-id}%{?!_disable_ld_enable_new_dtags: -Wl,--enable-new-dtags}%{?!_disable_hash_style_gnu: -Wl,--hash-style=gnu}%{?_hardened_flags: %_hardened_flags} -+%ldflags %{?!_disable_ld_as_needed: -Wl,--as-needed}%{?!_disable_ld_no_undefined: -Wl,--no-undefined}%{?!_disable_ld_now: -Wl,-z,now}%{?!_disable_ld_relro: -Wl,-z,relro}%{?!_disable_ld_O1: -Wl,-O1}%{?!_disable_ld_build_id: -Wl,--build-id}%{?!_disable_ld_enable_new_dtags: -Wl,--enable-new-dtags}%{?!_disable_hash_style_gnu: -Wl,--hash-style=gnu}%{?_hardened_flags: %_hardened_flags} - - %setup_compile_flags \ - CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ; \ diff --git a/rpm-5.4.10-hardlink-segfault-fix.patch b/rpm-5.4.10-hardlink-segfault-fix.patch deleted file mode 100644 index 8c2a04a..0000000 --- a/rpm-5.4.10-hardlink-segfault-fix.patch +++ /dev/null @@ -1,43 +0,0 @@ -We need to sanity check that the nlink size and our linksLeft counter -do match. If an rpm is badly constructed with identical inode values -for multiple hardlinked files, such an rpm will otherwise access memory -out of array bounds and cause memory corruption and crashes. - -The fix is to add in the sanity check and exit if bad circumstances -are found. We need to fix the caller to check the return code too. - -RP 2014/6/10 - -Upstream-Status: Pending - -Index: rpm-5.4.9/lib/fsm.c -=================================================================== ---- rpm-5.4.9.orig/lib/fsm.c 2014-06-10 10:54:08.601049402 +0000 -+++ rpm-5.4.9/lib/fsm.c 2014-06-10 10:55:45.633046077 +0000 -@@ -495,6 +495,11 @@ - } - - if (fsm->goal == IOSM_PKGBUILD) --fsm->li->linksLeft; -+ if (fsm->li->linksLeft > st->st_nlink) { -+ rpmlog(RPMLOG_ERR, _("Corrupted hardlinks found (count %d does not match %d), exiting.\n"), fsm->li->linksLeft, st->st_nlink); -+ return -1; -+ } -+ - fsm->li->filex[fsm->li->linksLeft] = fsm->ix; - /*@-observertrans -dependenttrans@*/ - fsm->li->nsuffix[fsm->li->linksLeft] = fsm->nsuffix; -@@ -1876,8 +1881,13 @@ - fsm->postpone = iosmFileActionSkipped(fsm->action); - if (fsm->goal == IOSM_PKGINSTALL || fsm->goal == IOSM_PKGBUILD) { - /*@-evalorder@*/ /* FIX: saveHardLink can modify fsm */ -- if (S_ISREG(st->st_mode) && st->st_nlink > 1) -+ if (S_ISREG(st->st_mode) && st->st_nlink > 1) { - fsm->postpone = saveHardLink(fsm); -+ if (fsm->postpone < 0) { -+ rc = RPMRC_FAIL; -+ break; -+ } -+ } - /*@=evalorder@*/ - } - if (fsmGetFi(fsm)->mapflags & IOSM_PAYLOAD_LIST) fsm->postpone = 1; diff --git a/rpm-5.4.10-implement-start-and-stop-callbacks.patch b/rpm-5.4.10-implement-start-and-stop-callbacks.patch deleted file mode 100644 index ff125cf..0000000 --- a/rpm-5.4.10-implement-start-and-stop-callbacks.patch +++ /dev/null @@ -1,67 +0,0 @@ ---- rpm-5.4.10/lib/psm.c.cb~ 2013-03-18 03:54:33.548013203 +0100 -+++ rpm-5.4.10/lib/psm.c 2013-03-18 03:39:40.643465724 +0100 -@@ -842,6 +842,8 @@ assert(he->p.str != NULL); - psm->NVRA = NVRA = he->p.str; - } - -+ scriptFd = rpmtsNotify(psm->ts, psm->te, RPMCALLBACK_SCRIPT_START, psm->scriptTag, 0); -+ - if (op != NULL) - (void) rpmswEnter(op, 0); - -@@ -1003,7 +1006,8 @@ assert(he->p.str != NULL); - break; - } - -- scriptFd = rpmtsScriptFd(ts); -+ if (scriptFd == NULL) -+ scriptFd = rpmtsScriptFd(ts); - if (scriptFd != NULL) { - if (rpmIsVerbose()) { - out = fdDup(Fileno(scriptFd)); -@@ -1165,6 +1169,8 @@ exit: - if (ix >= 0 && ix < RPMSCRIPT_MAX) - psm->smetrics[ix] += op->usecs / scale; - } -+ rpmtsNotify(psm->ts, psm->te, RPMCALLBACK_SCRIPT_STOP, psm->scriptTag, -+ rc != RPMRC_OK ? RPMRC_NOTFOUND : rc); - - if (out) - xx = Fclose(out); /* XXX dup'd STDOUT_FILENO */ ---- rpm-5.4.10/lib/rpminstall.c.cb~ 2013-03-18 03:54:48.316206560 +0100 -+++ rpm-5.4.10/lib/rpminstall.c 2013-03-17 09:19:38.855870381 +0100 -@@ -293,6 +293,10 @@ void * rpmShowProgress(/*@null@*/ const - break; - case RPMCALLBACK_SCRIPT_ERROR: - break; -+ case RPMCALLBACK_SCRIPT_START: -+ break; -+ case RPMCALLBACK_SCRIPT_STOP: -+ break; - case RPMCALLBACK_UNKNOWN: - default: - break; ---- rpm-5.4.10/python/rpmmodule.c.cb~ 2013-03-18 03:55:29.704746913 +0100 -+++ rpm-5.4.10/python/rpmmodule.c 2013-03-17 09:19:38.855870381 +0100 -@@ -559,6 +559,8 @@ void init_rpm(void) - REGISTER_ENUM(RPMCALLBACK_UNPACK_ERROR); - REGISTER_ENUM(RPMCALLBACK_CPIO_ERROR); - REGISTER_ENUM(RPMCALLBACK_SCRIPT_ERROR); -+ REGISTER_ENUM(RPMCALLBACK_SCRIPT_START); -+ REGISTER_ENUM(RPMCALLBACK_SCRIPT_STOP); - - REGISTER_ENUM(RPMPROB_BADARCH); - REGISTER_ENUM(RPMPROB_BADOS); ---- rpm-5.4.10/rpmio/rpmiotypes.h.cb~ 2013-03-18 03:54:05.472641157 +0100 -+++ rpm-5.4.10/rpmio/rpmiotypes.h 2013-03-18 03:53:36.692228344 +0100 -@@ -138,7 +138,9 @@ typedef enum rpmCallbackType_e { - RPMCALLBACK_REPACKAGE_STOP = (1 << 12), - RPMCALLBACK_UNPACK_ERROR = (1 << 13), - RPMCALLBACK_CPIO_ERROR = (1 << 14), -- RPMCALLBACK_SCRIPT_ERROR = (1 << 15) -+ RPMCALLBACK_SCRIPT_ERROR = (1 << 15), -+ RPMCALLBACK_SCRIPT_START = (1 << 16), -+ RPMCALLBACK_SCRIPT_STOP = (1 << 17) - } rpmCallbackType; - - /** diff --git a/rpm-5.4.10-makeinstall_qt.patch b/rpm-5.4.10-makeinstall_qt.patch deleted file mode 100644 index db1d351..0000000 --- a/rpm-5.4.10-makeinstall_qt.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -urN rpm-5.4.10/macros/mandriva rpm-5.4.10-patched/macros/mandriva ---- rpm-5.4.10/macros/mandriva 2012-07-07 04:02:38.000000000 +1100 -+++ rpm-5.4.10-patched/macros/mandriva 2016-04-01 20:39:01.781545961 +1000 -@@ -70,6 +70,7 @@ - - %make %{__make} %{_smp_mflags} - %makeinstall_std make DESTDIR=%{?buildroot:%{buildroot}} install -+%makeinstall_qt make INSTALL_ROOT=%{?buildroot:%{buildroot}} install STRIP=true - - # mdvbz#62322 - %__grep /bin/grep -diff -urN rpm-5.4.10/macros/mandriva.in rpm-5.4.10-patched/macros/mandriva.in ---- rpm-5.4.10/macros/mandriva.in 2012-05-20 07:35:44.000000000 +1100 -+++ rpm-5.4.10-patched/macros/mandriva.in 2016-04-01 20:38:32.015548091 +1000 -@@ -70,6 +70,7 @@ - - %make %{__make} %{_smp_mflags} - %makeinstall_std make DESTDIR=%{?buildroot:%{buildroot}} install -+%makeinstall_qt make INSTALL_ROOT=%{?buildroot:%{buildroot}} install STRIP=true - - # mdvbz#62322 - %__grep /bin/grep diff --git a/rpm-5.4.10-merge-rpm.org-and-mandriva-perl-dep-gen-changes.patch b/rpm-5.4.10-merge-rpm.org-and-mandriva-perl-dep-gen-changes.patch deleted file mode 100644 index 872a2c2..0000000 --- a/rpm-5.4.10-merge-rpm.org-and-mandriva-perl-dep-gen-changes.patch +++ /dev/null @@ -1,503 +0,0 @@ ---- rpm-5.4.10/macros/mandriva.in.perl_deps~ 2012-07-10 20:24:43.536467425 +0200 -+++ rpm-5.4.10/macros/mandriva.in 2012-07-10 20:25:11.522117555 +0200 -@@ -272,9 +272,6 @@ Group: %{group}\ - - # Use internal dependency generator rather than external helpers? - %_use_internal_dependency_generator 1 --# TODO: merge relevant changes into rpm version rather than using our own --%__perl_provides @USRLIBRPM@/@RPMCANONVENDOR@/perl.prov --%__perl_requires @USRLIBRPM@/@RPMCANONVENDOR@/perl.req - - %__find_provides @USRLIBRPM@/@RPMCANONVENDOR@/filter.sh '%{?_provides_exceptions:%{_provides_exceptions}}%{!?_provides_exceptions: }' '%{?_exclude_files_from_autoprov:%{_exclude_files_from_autoprov}}%{!?_exclude_files_from_autoprov: }' '%{buildroot}' @USRLIBRPM@/@RPMCANONVENDOR@/find-provides - %__find_requires @USRLIBRPM@/@RPMCANONVENDOR@/filter.sh '%{?_requires_exceptions:%{_requires_exceptions}}%{!?_requires_exceptions: }' '%{?_exclude_files_from_autoreq:%{_exclude_files_from_autoreq}}%{!?_exclude_files_from_autoreq: }' '%{buildroot}' @USRLIBRPM@/@RPMCANONVENDOR@/find-requires %{?buildroot:%{buildroot}} %{?_target_cpu:%{_target_cpu}} ---- rpm-5.4.10/scripts/perl.prov.perl_deps~ 2012-07-06 17:39:20.000000000 +0200 -+++ rpm-5.4.10/scripts/perl.prov 2012-07-10 20:28:13.776839058 +0200 -@@ -45,8 +45,11 @@ - - # by Ken Estes Mail.com kestes@staff.mail.com - -+use File::Basename (); -+ - if ("@ARGV") { - foreach (@ARGV) { -+ next if !/\.pm$/; - process_file($_); - } - } else { -@@ -55,12 +58,22 @@ if ("@ARGV") { - # contents of the file. - - foreach (<>) { -+ chomp $_; -+ next if !/\.pm$/; - process_file($_); - } - } - - - foreach $module (sort keys %require) { -+ if ($module =~ m/^abi$/) { -+ print "perl($module) = $require{$module}\n"; -+ next; -+ } -+ # XXX: skip any modules not starting with upper case letters -+ if ($module =~ m/^[^A-Z]/) { -+ next; -+ } - if (length($require{$module}) == 0) { - print "perl($module)\n"; - } else { -@@ -69,7 +82,9 @@ foreach $module (sort keys %require) { - # operators. Also I will need to change the processing of the - # $RPM_* variable when I upgrade. - -- print "perl($module) = $require{$module}\n"; -+ my $v = qx{ rpm --eval '%perl_convert_version $require{$module}' }; -+ chomp($v); -+ print "perl($module) = $v\n"; - } - } - -@@ -80,21 +95,31 @@ exit 0; - sub process_file { - - my ($file) = @_; -- chomp $file; - -- open(FILE, "<$file") || return; -+ if ($file =~ m/$Config{archname}\/Config.pm$/) { -+ my $vercmd = "perl -I". File::Basename::dirname($file) . " -MConfig -e 'print \"\$Config{version}\"'"; -+ my $v = `$vercmd`; -+ if ($v) { -+ $require{"abi"} = $v; -+ } -+ } -+ -+ if (!open(FILE, $file)) { -+ warn("$0: Warning: Could not open file '$file' for reading: $!\n"); -+ return; -+ } - - my ($package, $version, $incomment, $inover) = (); - - while () { -- -+ - # skip the documentation - - # we should not need to have item in this if statement (it - # properly belongs in the over/back section) but people do not - # read the perldoc. - -- if (m/^=(head[1-4]|pod|item)/) { -+ if (m/^=(head[1-4]|pod|for|item)/) { - $incomment = 1; - } - -@@ -102,7 +127,7 @@ sub process_file { - $incomment = 0; - $inover = 0; - } -- -+ - if (m/^=(over)/) { - $inover = 1; - } -@@ -111,10 +136,10 @@ sub process_file { - $inover = 0; - } - -- if ($incomment || $inover) { -+ if ($incomment || $inover || m/^\s*#/) { - next; - } -- -+ - # skip the data section - if (m/^__(DATA|END)__$/) { - last; -@@ -125,17 +150,20 @@ sub process_file { - # false positives as if they were provided packages (really ugly). - - if (m/^\s*package\s+([_:a-zA-Z0-9]+)\s*;/) { -- $package=$1; -- undef $version; -- if ($package eq 'main') { -- undef $package; -- } else { -- # If $package already exists in the $require hash, it means -- # the package definition is broken up over multiple blocks. -- # In that case, don't stomp a previous $VERSION we might have -- # found. (See BZ#214496.) -- $require{$package}=undef unless (exists $require{$package}); -- } -+ # some internal packages, like DB, might be temporarily redefined inside a module. -+ if (!($package && $1 eq 'DB')) { -+ $package=$1; -+ undef $version; -+ if ($package eq 'main') { -+ undef $package; -+ } else { -+ # If $package already exists in the $require hash, it means -+ # the package definition is broken up over multiple blocks. -+ # In that case, don't stomp a previous $VERSION we might have -+ # found. (See BZ#214496.) -+ $require{$package}=undef unless (exists $require{$package}); -+ } -+ } - } - - # after we found the package name take the first assignment to -@@ -148,45 +176,36 @@ sub process_file { - #ExtUtils/Install.pm:$VERSION = substr q$Revision: 1.12.10.1 $, 10; - #CGI/Apache.pm:$VERSION = (qw$Revision: 1.12.10.1 $)[1]; - #DynaLoader.pm:$VERSION = $VERSION = "1.03"; # avoid typo warning -- #General.pm:$Config::General::VERSION = 2.33; -- # -- # or with the new "our" pragma you could (read will) see: -- # -- # our $VERSION = '1.00' -- if (($package) && (m/^\s*(our\s+)?\$(\Q$package\E::)?VERSION\s*=\s+/)) { -+ #$Locale::Maketext::Simple::VERSION = '0.21'; -+ -+ if ( -+ $package && -+ (m/^(.*;)?\s*((my|our)\s+)?\$(${package}::)?VERSION\s*=\s+/) -+ ) { - - # first see if the version string contains the string - # '$Revision' this often causes bizarre strings and is the most - # common method of non static numbering. - -- if (m/(\$Revision: (\d+[.0-9]+))/) { -- $version= $2; -+ if (m/\$Revision: (\d+[.0-9]+)/) { -+ $version = $1; - } elsif (m/[\'\"]?(\d+[.0-9]+)[\'\"]?/) { -- -- # look for a static number hard coded in the script -- -- $version= $1; -+ -+ # look for a static number hard coded in the script -+ -+ $version= $1; - } -- $require{$package}=$version; -+ $require{$package} = $version; - } -- -- # Allow someone to have a variable that defines virtual packages -- # The variable is called $RPM_Provides. It must be scoped with -- # "our", but not "local" or "my" (just would not make sense). -- # -- # For instance: -- # -- # $RPM_Provides = "blah bleah" -- # -- # Will generate provides for "blah" and "bleah". -- # -+ -+ - # Each keyword can appear multiple times. Don't - # bother with datastructures to store these strings, - # if we need to print it print it now. -- -- if ( m/^\s*(our\s+)?\$RPM_Provides\s*=\s*["'](.*)['"]/i) { -- foreach $_ (split(/\s+/, $2)) { -- print "$_\n"; -+ -+ if (m/^\s*\$RPM_Provides\s*=\s*["'](.*)['"]/i) { -+ foreach $_ (split(/\s+/, $1)) { -+ print "$_\n"; - } - } - -@@ -195,5 +214,5 @@ sub process_file { - close(FILE) || - die("$0: Could not close file: '$file' : $!\n"); - -- return ; -+ return; - } ---- rpm-5.4.10/scripts/perl.req.perl_deps~ 2012-07-06 17:39:20.000000000 +0200 -+++ rpm-5.4.10/scripts/perl.req 2012-07-10 20:25:11.525117519 +0200 -@@ -1,6 +1,6 @@ - #!/usr/bin/perl - --# RPM (and its source code) is covered under two separate licenses. -+# RPM (and its source code) is covered under two separate licenses. - - # The entire code base may be distributed under the terms of the GNU - # General Public License (GPL), which appears immediately below. -@@ -18,7 +18,7 @@ - # Erik Troan . - - # a simple makedepend like script for perl. -- -+ - # To save development time I do not parse the perl grammmar but - # instead just lex it looking for what I want. I take special care to - # ignore comments and pod's. -@@ -39,22 +39,36 @@ - - # by Ken Estes Mail.com kestes@staff.mail.com - -+use Config; -+ - if ("@ARGV") { - foreach (@ARGV) { - process_file($_); - } - } else { -- -+ - # notice we are passed a list of filenames NOT as common in unix the - # contents of the file. -- -+ - foreach (<>) { -+ chomp $_; - process_file($_); - } - } - - - foreach $module (sort keys %require) { -+ if ($module =~ m/^abi$/) { -+ print "perl($module) = $require{$module}\n"; -+ next; -+ } elsif ($module =~ m/^api$/) { -+ print "perl(abi) >= $require{$module}\n"; -+ next; -+ } -+ # XXX: skip any modules not starting with upper case letters -+ if ($module =~ m/^[^A-Z]/) { -+ next; -+ } - if (length($require{$module}) == 0) { - print "perl($module)\n"; - } else { -@@ -63,7 +77,9 @@ foreach $module (sort keys %require) { - # operators. Also I will need to change the processing of the - # $RPM_* variable when I upgrade. - -- print "perl($module) >= $require{$module}\n"; -+ my $v = qx{ rpm --eval '%perl_convert_version $require{$module}' }; #' workaround vim highlighting issue.. ;) -+ chomp($v); -+ print "perl($module) >= $v\n"; - } - } - -@@ -72,16 +88,24 @@ exit 0; - - - sub process_file { -- -+ - my ($file) = @_; -- chomp $file; -- -- open(FILE, "<$file") || return; -- -- while () { - -+ # XXX: dependendency on perl(abi) = for perl extensions -+ if ($file =~ m/$Config{archname}/) { -+ $require{"abi"} = $Config{version}; -+ } elsif ($file =~ m/($Config{installsitelib}|$Config{installvendorlib}|$Config{installprivlib})/ and $file =~ m/$Config{version}/) { -+ $require{"api"} = $Config{version}; -+ } -+ -+ if (!open(FILE, $file)) { -+ warn("$0: Warning: Could not open file '$file' for reading: $!\n"); -+ return; -+ } -+ -+ while () { - # skip the documentation -- if ( /^ = (?: head\d | pod | item | over | back | (?: begin|end|for ) \s+\S+ ) \b/x ) { -+ if ( /^ = (?: head\d | pod | for | item | over | back | (?: begin|end|for ) \s+\S+ ) \b/x ) { - $_ = until /^=cut/ or eof; - next; - } -@@ -100,12 +124,12 @@ sub process_file { - # skip q{} quoted sections - just hope we don't have curly brackets - # within the quote, nor an escaped hash mark that isn't a comment - # marker, such as occurs right here. Draw the line somewhere. -- if ( m/^.*\Wq[qxwr]?\s*([\{\(\[#|\/])[^})\]#|\/]*$/ && ! m/^\s*(require|use)\s/ ) { -+ if ( m/^.*\Wq[qxwr]?\s*([{([#|\/])[^})\]#|\/]*$/ && ! m/^\s*(require|use)\s/ ) { - $tag = $1; - $tag =~ tr/{([/})]/; - $_ = until m/\Q$tag\E/ or eof; - } -- -+ - # skip the data section - if (m/^__(DATA|END)__$/) { - last; -@@ -115,28 +139,28 @@ sub process_file { - # bother with datastructures to store these strings, - # if we need to print it print it now. - # -- # Again allow for "our". -+ # Again allow for "our". - if ( m/^\s*(our\s+)?\$RPM_Requires\s*=\s*["'](.*)['"]/i) { - foreach $_ (split(/\s+/, $2)) { -- print "$_\n"; -+ print "$_\n"; - } - } - - # handle "use base qw/ foo::bar baz::blah /;" and variations - if ( - m/^ \s* use \s+ base -- (?: \s+ q[wq]? \s* ( [!@#\$%^&*'"\/+=`~,.?-] ) \s* ( [\w:]+? (?: \s+[\w:]+? )*? ) \s* \1 -+ (?: \s+ q[wq]? \s* ( [!@#\$%^&*'"\/+=`~,.?-] ) \s* ( [\w:]+? (?: \s+[\w:]+? )*? ) \s* \1 - | -- \s* ( ["'] ) ( [\w:]+? ) \3 -+ \s* ( ["'] ) ( [\w:]+? ) \3 - | - # qw[], qw(), qw<>, qw{} are handled here; lax, but who gives -- \s+ q[wq]? \s* [\[({<] \s* ( [\w:]+? (?: \s+[\w:]+? )*? ) \s* [\])}>] -+ \s+ q[wq]? \s* [\[({<] \s* ( [\w:]+? (?: \s+[\w:]+? )*? ) \s* [\])}>] - ) - \s* ; - /x - ) - { -- my @deps = ( $1 ? split /\s+/, $2 : $3 ? $4 : split /\s+/, $5 ); -+ my @deps = ( $1 ? split /\s+/, $2 : $3 ? $4 : split /\s+/, $5 ); - for my $mod ( grep !exists $require{$_}, @deps ) { - $require{$mod} = ''; - $line{$mod} = $_; -@@ -153,17 +177,18 @@ sub process_file { - # eval { require Carp } if defined $^S; # If error/warning during compilation, - - -- (m/^(\s*) # we hope the inclusion starts the line -- (require|use)\s+(?!\{) # do not want 'do {' loops -- # quotes around name are always legal -- [\'\"]?([^\;\ \'\"\t]*)[\'\"]?[\t\;\ ] -- # the syntax for 'use' allows version requirements -- \s*([.0-9]*) -- /x) -+ (m/^(\s*) # we hope the inclusion starts the line -+ (require|use)\s+(?!\{) # do not want 'do {' loops -+ # quotes around name are always legal -+ ['"]?([^; '"\t#]+)['"]?[\t; ] -+ # the syntax for 'use' allows version requirements -+ \s*([.0-9]*) -+ /x) - ) { - my ($whitespace, $statement, $module, $version) = ($1, $2, $3,$4); -+ my $usebase; - -- # we only consider require statements that are flush against -+ # we only consider require statements that are flushed against - # the left edge. any other require statements give too many - # false positives, as they are usually inside of an if statement - # as a fallback module or a rarely used option -@@ -173,7 +198,7 @@ sub process_file { - # if there is some interpolation of variables just skip this - # dependency, we do not want - # do "$ENV{LOGDIR}/$rcfile"; -- -+ - ($module =~ m/\$/) && next; - - # skip if the phrase was "use of" -- shows up in gimp-perl, et al. -@@ -198,6 +223,18 @@ sub process_file { - next; - } - -+ # as seen in some perl scripts -+ # use base qw(App::CLI Class::Accessor::Chained::Fast App::CLI::Command); -+ if ($module eq 'base') { -+ $require{$module} = $version; -+ $line{$module} = $current_line; -+ ($module = $_) =~ s/use\s*base\s*//; -+ $module =~ s/qw\((.*)\)\s*;/$1/; -+ $module =~ s/qw(.)(.*)\1\s*;/$2/; -+ $module =~ s/\s*;$//; -+ $module =~ s/#.*//; -+ $usebase = 1; -+ } - # sometimes people do use POSIX qw(foo), or use POSIX(qw(foo)) etc. - # we can strip qw.*$, as well as (.*$: - $module =~ s/qw.*$//; -@@ -205,7 +242,7 @@ sub process_file { - - $module =~ s/\.pm$//; - -- # some perl programmers write 'require URI/URL;' when -+ # some perl programmers write 'require URI/URL;' when - # they mean 'require URI::URL;' - - $module =~ s/\//::/; -@@ -215,45 +252,41 @@ sub process_file { - - $module =~ s/\(\s*\)$//; - -- if ( $module =~ m/^v?([0-9._]+)$/ ) { - # if module is a number then both require and use interpret that -- # to mean that a particular version of perl is specified -- -- my $ver=$1; -- if ($ver =~ /5.00/) { -- print "perl >= 0:$ver\n"; -- next; -- } -- else { -- print "perl >= 1:$ver\n"; -- next; -- } -- -- }; -+ # to mean that a particular version of perl is specified. Don't -+ # add a dependency, though, since the rpm will already require -+ # perl-base at the build version (via find-requires) -+ next if $module =~ /^v?\d/; - - # ph files do not use the package name inside the file. - # perlmodlib documentation says: -- - # the .ph files made by h2ph will probably end up as - # extension modules made by h2xs. -- -- # so do not expend much effort on these. -- -+ # so do not spend much effort on these. - - # there is no easy way to find out if a file named systeminfo.ph - # will be included with the name sys/systeminfo.ph so only use the - # basename of *.ph files - -- ($module =~ m/\.ph$/) && next; -+ ($module =~ m/\.ph$/) && next; - -- $require{$module}=$version; -- $line{$module}=$_; -+ # if the module was loaded trough base, we need to split the list -+ if ($usebase) { -+ my $current_line = $_; -+ foreach (split(/\s+/, $module)) { -+ next unless $_; -+ $require{$_} = $version; -+ $line{$_} = $current_line; -+ } -+ } else { -+ $require{$module}=$version; -+ $line{$module}=$current_line; -+ } - } -- - } - - close(FILE) || - die("$0: Could not close file: '$file' : $!\n"); -- -- return ; -+ -+ return ; - } diff --git a/rpm-5.4.10-multithreaded-xz-memlimit.patch b/rpm-5.4.10-multithreaded-xz-memlimit.patch deleted file mode 100644 index f2bd5d2..0000000 --- a/rpm-5.4.10-multithreaded-xz-memlimit.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 0ae3d55d40be97727e64b20a6bec6758f9ef023e Mon Sep 17 00:00:00 2001 -From: Mikhail Novosyolov -Date: Tue, 25 Dec 2018 03:32:04 +0300 -Subject: [PATCH] prevent exceeding 32 bit memory limitations with - multithreaded xz compression - -Port of https://github.com/rpm-software-management/rpm/commit/a60f36a55cff3331e8bef3a1ab95c87d313911bb - -As 32 bit build suffers under the limitation of 32 bit address space, -regardless of it's environment would be ie. 64 bit and not have this -constration, rpm must make sure not to exceed this memory limitation. -When using multithreaded xz compression, the number of threads used will -increase the memory usage, making it necessary to check the memory -required with the number of threads to be used. - -Number of compression threads will therefore be kept reduced untill -amount of memory required won't exceed this limitation. - -For 32 bit binaries running under 64 bit host environment, where less -available memory will be reserved for kernel, easing memory constraints, -determination of this will be done by a combination of checking host -arch as well as whether 32 bit personality flag is set, thereby still -allow a sligthly greater memory usage for such cases to avoid -imposing unnecessatry limitations under such environments. ---- - rpmio/xzdio.c | 44 +++++++++++++++++++++++++++++++++++++++++++- - 1 file changed, 43 insertions(+), 1 deletion(-) - -diff --git a/rpmio/xzdio.c b/rpmio/xzdio.c -index 0e5e612..a1492f1 100644 ---- a/rpmio/xzdio.c -+++ b/rpmio/xzdio.c -@@ -8,6 +8,10 @@ - #include - #include - #include -+#if defined(__linux__) -+#include -+#endif -+#include - - #if defined(WITH_XZ) - -@@ -132,7 +136,45 @@ static XZFILE *xzopen_internal(const char *path, const char *mode, int fdno, int - .timeout = 0, - .preset = level, - .filters = NULL, -- .check = LZMA_CHECK_SHA256 }; -+ .check = LZMA_CHECK_CRC32 }; -+#if __WORDSIZE == 32 -+ /* In 32 bit environment, required memory easily exceeds memory address -+ * space limit if compressing using multiple threads. -+ * By setting a memory limit, liblzma will automatically adjust number -+ * of threads to avoid exceeding memory. -+ */ -+ if (threads > 1) { -+ struct utsname u; -+ uint32_t memlimit = (SIZE_MAX>>1) + (SIZE_MAX>>3); -+ uint64_t memory_usage; -+ /* While a 32 bit linux kernel will have an address limit of 3GiB -+ * for processes (which is why set the memory limit to 2.5GiB as a safety -+ * margin), 64 bit kernels will have a limit of 4GiB for 32 bit binaries. -+ * Therefore the memory limit should be higher if running on a 64 bit -+ * kernel, so we increase it to 3,5GiB. -+ */ -+ uname(&u); -+ if (strstr(u.machine, "64") || strstr(u.machine, "s390x") -+#if defined(__linux__) -+ || ((personality(0xffffffff) & PER_MASK) == PER_LINUX32) -+#endif -+ ) -+ memlimit += (SIZE_MAX>>2); -+ -+ /* keep reducing the number of threads untill memory usage gets below limit */ -+ while ((memory_usage = lzma_stream_encoder_mt_memusage(&mt_options)) > memlimit) { -+ /* number of threads shouldn't be able to hit zero with compression -+ * settings aailable to set through rpm... */ -+ assert(--mt_options.threads != 0); -+ } -+ lzma_memlimit_set(&xzfile->strm, memlimit); -+ -+ if (threads != (int)mt_options.threads) -+ rpmlog(RPMLOG_NOTICE, -+ "XZ: Adjusted the number of threads from %d to %d to not exceed the memory usage limit of %lu bytes", -+ threads, mt_options.threads, memlimit); -+ } -+#endif - - ret = lzma_stream_encoder_mt(&xzfile->strm, &mt_options); - } --- -2.17.1 - diff --git a/rpm-5.4.10-no-delete-null-pointer-checks.patch b/rpm-5.4.10-no-delete-null-pointer-checks.patch deleted file mode 100644 index b2ba25a..0000000 --- a/rpm-5.4.10-no-delete-null-pointer-checks.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur rpm-5.4.10.orig/macros/mandriva.in rpm-5.4.10/macros/mandriva.in ---- rpm-5.4.10.orig/macros/mandriva.in 2014-09-10 07:00:38.045847753 -0400 -+++ rpm-5.4.10/macros/mandriva.in 2014-09-10 07:01:54.058851415 -0400 -@@ -162,7 +162,7 @@ - %Werror_cflags -Wformat -Werror=format-security - - %_ssp_cflags -fstack-protector --param=ssp-buffer-size=4%{?_serverbuild_flags: %_serverbuild_flags} --%__common_cflags -O2 %{debugcflags} -pipe %{Werror_cflags} %{?_fortify_cflags} -ffat-lto-objects -+%__common_cflags -O2 %{debugcflags} -pipe %{Werror_cflags} %{?_fortify_cflags} -ffat-lto-objects -fno-delete-null-pointer-checks - %__common_cflags_with_ssp %{__common_cflags} %{?_ssp_cflags} - - # Servers opt flags. diff --git a/rpm-5.4.10-no-more-explicit-perl-abi-version-reqs.patch b/rpm-5.4.10-no-more-explicit-perl-abi-version-reqs.patch deleted file mode 100644 index 7a054b5..0000000 --- a/rpm-5.4.10-no-more-explicit-perl-abi-version-reqs.patch +++ /dev/null @@ -1,39 +0,0 @@ ---- rpm-5.4.10/scripts/perl.req.perl_abireq~ 2012-12-19 04:47:18.928428133 +0100 -+++ rpm-5.4.10/scripts/perl.req 2012-12-19 04:45:40.698118700 +0100 -@@ -59,15 +59,18 @@ if ("@ARGV") { - - foreach $module (sort keys %require) { - if ($module =~ m/^abi$/) { -- print "perl($module) = $require{$module}\n"; -- next; -+# in ROSA Linux the perl library now has a versioned soname, so no need -+# for explicit version dependency for modules anymore -+# print "perl($module) = $require{$module}\n"; -+ print "perl($module) >= $require{$module}\n"; -+ next; - } elsif ($module =~ m/^api$/) { -- print "perl(abi) >= $require{$module}\n"; -- next; -+ print "perl(abi) >= $require{$module}\n"; -+ next; - } - # XXX: skip any modules not starting with upper case letters - if ($module =~ m/^[^A-Z]/) { -- next; -+ next; - } - if (length($require{$module}) == 0) { - print "perl($module)\n"; -@@ -78,9 +81,9 @@ foreach $module (sort keys %require) { - # $RPM_* variable when I upgrade. - - my $v = qx{ rpm --eval '%perl_convert_version $require{$module}' }; #' workaround vim highlighting issue.. ;) -- chomp($v); -- print "perl($module) >= $v\n"; -- } -+ chomp($v); -+ print "perl($module) >= $v\n"; -+} - } - - exit 0; diff --git a/rpm-5.4.10-nodejs-dependency-generator.patch b/rpm-5.4.10-nodejs-dependency-generator.patch deleted file mode 100644 index 6b99217..0000000 --- a/rpm-5.4.10-nodejs-dependency-generator.patch +++ /dev/null @@ -1,66 +0,0 @@ -diff -Naur rpm-5.4.10.orig/lib/rpmfc.h rpm-5.4.10/lib/rpmfc.h ---- rpm-5.4.10.orig/lib/rpmfc.h 2014-04-30 17:14:01.158698669 +0400 -+++ rpm-5.4.10/lib/rpmfc.h 2014-04-30 17:15:21.236691127 +0400 -@@ -62,7 +62,9 @@ - - RPMFC_WHITE = (1 << 29), - RPMFC_INCLUDE = (1 << 30), -- RPMFC_ERROR = (1 << 31) -+ RPMFC_ERROR = (1 << 31), -+ -+ RPMFC_NODEJS = (1 << 11) - } FCOLOR_t; - - #if defined(_RPMFC_INTERNAL) - -diff -Naur rpm-5.4.10.orig/lib/rpmfc.c rpm-5.4.10/lib/rpmfc.c ---- rpm-5.4.10.orig/lib/rpmfc.c 2014-04-30 17:14:01.158698669 +0400 -+++ rpm-5.4.10/lib/rpmfc.c 2014-04-30 17:16:46.669683082 +0400 -@@ -635,6 +635,7 @@ - { "perl script text", RPMFC_PERL|RPMFC_INCLUDE }, - { "Perl5 module source text", RPMFC_PERL|RPMFC_MODULE|RPMFC_INCLUDE }, - -+ { "NodeJS script text", RPMFC_NODEJS|RPMFC_INCLUDE }, - { "PHP script text", RPMFC_PHP|RPMFC_INCLUDE }, - { "G-IR binary database", RPMFC_TYPELIB|RPMFC_INCLUDE }, - -@@ -912,6 +913,8 @@ - fc->fcolor->vals[fc->ix] |= RPMFC_PYTHON; - else if (!strncmp(bn, "php", sizeof("php")-1)) - fc->fcolor->vals[fc->ix] |= RPMFC_PHP; -+ else if (!strncmp(bn, "json", sizeof("json")-1)) -+ fc->fcolor->vals[fc->ix] |= RPMFC_NODEJS; - else if (!strncmp(bn, "ruby", sizeof("ruby")-1)) - fc->fcolor->vals[fc->ix] |= RPMFC_RUBY; - -@@ -932,6 +935,10 @@ - if (is_executable || (fc->fcolor->vals[fc->ix] & RPMFC_MODULE)) - xx = rpmfcHelper(fc, 'R', "python"); - } else -+ if (fc->fcolor->vals[fc->ix] & RPMFC_NODEJS) { -+ xx = rpmfcHelper(fc, 'P', "nodejs"); -+ xx = rpmfcHelper(fc, 'R', "nodejs"); -+ } else - if (fc->fcolor->vals[fc->ix] & RPMFC_LIBTOOL) { - xx = rpmfcHelper(fc, 'P', "libtool"); - #ifdef NOTYET -@@ -1140,7 +1147,7 @@ - /*@unchecked@*/ - static struct rpmfcApplyTbl_s rpmfcApplyTable[] = { - { rpmfcELF, RPMFC_ELF }, -- { rpmfcSCRIPT, (RPMFC_SCRIPT|RPMFC_FONT|RPMFC_HASKELL|RPMFC_RUBY|RPMFC_PERL|RPMFC_PYTHON|RPMFC_LIBTOOL|RPMFC_PKGCONFIG|RPMFC_BOURNE|RPMFC_JAVA|RPMFC_PHP|RPMFC_MONO|RPMFC_TYPELIB) }, -+ { rpmfcSCRIPT, (RPMFC_SCRIPT|RPMFC_FONT|RPMFC_HASKELL|RPMFC_RUBY|RPMFC_PERL|RPMFC_PYTHON|RPMFC_LIBTOOL|RPMFC_PKGCONFIG|RPMFC_BOURNE|RPMFC_JAVA|RPMFC_PHP|RPMFC_MONO|RPMFC_TYPELIB|RPMFC_NODEJS) }, - #if defined(RPM_VENDOR_MANDRIVA) - { rpmfcSYMLINK, RPMFC_SYMLINK }, - #endif -@@ -1452,6 +1459,10 @@ - else if (_suffix(s, ".php")) - ftype = "PHP script text"; - -+ /* XXX all files with extension ".json" are NodeJS for now. */ -+ else if (_suffix(s, ".json")) -+ ftype = "NodeJS script text"; -+ - /* XXX files with extension ".typelib" are GNOME typelib for now. */ - else if (_suffix(s, ".typelib")) - ftype = "G-IR binary database"; diff --git a/rpm-5.4.10-payload-no-hashed-inode.patch b/rpm-5.4.10-payload-no-hashed-inode.patch deleted file mode 100644 index fc6b218..0000000 --- a/rpm-5.4.10-payload-no-hashed-inode.patch +++ /dev/null @@ -1,144 +0,0 @@ -If we run builds on a filesystem with 64 bit inodes like XFS, we need to -map the inode numbers to something 32 bit since the cpio header only allows -for 32 bit inode values. If we don't do this: - -#define SET_NUM_FIELD(phys, val, space) \ - sprintf(space, "%8.8lx", (unsigned long) (val)); \ - memcpy(phys, space, 8) - -from cpio.c will print larger that 8 character values and then truncate the -LSBs. This generates cpio files where hardlinked files may have the same -inode number. The resulting rpms are then corrupted. - -There is a separate patch for the crash the identical inode numbers causes -when extracting the rpm. - -Patch taken from http://git.pld-linux.org/?p=packages/rpm.git;a=commitdiff;h=10526c23aac60b7b636e4c93862887dbef8e8f15 - -RP 2014/6/10 - -Upstream-Status: Pending - -diff -ur rpm-5.4.10/build/files.c rpm-5.4.10-collision/build/files.c ---- rpm-5.4.10/build/files.c 2013-03-17 13:17:38.233358389 +0100 -+++ rpm-5.4.10-collision/build/files.c 2013-03-17 13:07:37.468483625 +0100 -@@ -1323,6 +1323,26 @@ - return dalgo; - } - -+static int isHardLink(FileListRec flp, FileListRec tlp) -+{ -+ return ((S_ISREG(flp->fl_mode) && S_ISREG(tlp->fl_mode)) && -+ ((flp->fl_nlink > 1) && (flp->fl_nlink == tlp->fl_nlink)) && -+ (flp->fl_ino == tlp->fl_ino) && -+ (flp->fl_dev == tlp->fl_dev)); -+} -+ -+static int seenHardLink(FileList fl, FileListRec flp, ino_t *fileid) -+{ -+ FileListRec ilp; -+ for (ilp = fl->fileList; ilp < flp; ilp++) { -+ if (isHardLink(flp, ilp)) { -+ *fileid = ilp - fl->fileList; -+ return 1; -+ } -+ } -+ return 0; -+} -+ - /** - * Add file entries to header. - * @todo Should directories have %doc/%config attributes? (#14531) -@@ -1370,6 +1390,7 @@ - - for (i = 0, flp = fl->fileList; i < fl->fileListRecsUsed; i++, flp++) { - const char *s; -+ ino_t fileid = flp - fl->fileList; - - /* Merge duplicate entries. */ - while (i < (fl->fileListRecsUsed - 1) && -@@ -1437,6 +1458,13 @@ - /* Leave room for both dirname and basename NUL's */ - dpathlen += (strlen(flp->diskURL) + 2); - -+ /* Excludes and dupes have been filtered out by now. */ -+ if (S_ISREG(flp->fl_mode)) { -+ if (flp->fl_nlink == 1 || !seenHardLink(fl, flp, &fileid)) { -+ fl->totalFileSize += flp->fl_size; -+ } -+ } -+ - /* - * Make the header, the OLDFILENAMES will get converted to a - * compressed file list write before we write the actual package to -@@ -1519,7 +1547,11 @@ - - /* XXX Hash instead of 64b->32b truncate to prevent aliasing. */ - { ino_t _ino = flp->fl_ino; -- ui32 = hashFunctionString(0, &_ino, sizeof(_ino)); -+ /* don't use hash here, as hash collisions which happen on large packages -+ cause bus errors in rpmbuild -+ ui32 = hashFunctionString(0, &_ino, sizeof(_ino)); -+ */ -+ ui32 = fileid + 1; - } - he->tag = RPMTAG_FILEINODES; - he->t = RPM_UINT32_TYPE; -@@ -1752,39 +1780,6 @@ - IOSM_MAP_TYPE | IOSM_MAP_MODE | IOSM_MAP_UID | IOSM_MAP_GID; - if (isSrc) - fi->fmapflags[i] |= IOSM_FOLLOW_SYMLINKS; -- -- if (S_ISREG(flp->fl_mode)) { -- int bingo = 1; -- /* Hard links need be tallied only once. */ -- if (flp->fl_nlink > 1) { -- FileListRec jlp = flp + 1; -- int j = i + 1; -- for (; (unsigned)j < fi->fc; j++, jlp++) { -- /* follow outer loop logic */ -- while (((jlp - fl->fileList) < (fl->fileListRecsUsed - 1)) && -- !strcmp(jlp->fileURL, jlp[1].fileURL)) -- jlp++; -- if (jlp->flags & RPMFILE_EXCLUDE) { -- j--; -- /*@innercontinue@*/ continue; -- } -- if (jlp->flags & RPMFILE_GHOST) -- /*@innercontinue@*/ continue; -- if (!S_ISREG(jlp->fl_mode)) -- /*@innercontinue@*/ continue; -- if (flp->fl_nlink != jlp->fl_nlink) -- /*@innercontinue@*/ continue; -- if (flp->fl_ino != jlp->fl_ino) -- /*@innercontinue@*/ continue; -- if (flp->fl_dev != jlp->fl_dev) -- /*@innercontinue@*/ continue; -- bingo = 0; /* don't tally hardlink yet. */ -- /*@innerbreak@*/ break; -- } -- } -- if (bingo) -- fl->totalFileSize += flp->fl_size; -- } - } - - ui32 = fl->totalFileSize; ---- rpm-5.4.10/lib/fsm.c~ -+++ rpm-5.4.10/lib/fsm.c -@@ -898,6 +898,7 @@ int fsmMapAttrs(IOSM_t fsm) - - if (fi && i >= 0 && i < (int) fi->fc) { - mode_t perms = (S_ISDIR(st->st_mode) ? fi->dperms : fi->fperms); -+ ino_t finalInode = (fi->finodes ? (ino_t)fi->finodes[i] : 0); - mode_t finalMode = (fi->fmodes ? (mode_t)fi->fmodes[i] : perms); - dev_t finalRdev = (dev_t)(fi->frdevs ? fi->frdevs[i] : 0); - rpmuint32_t finalMtime = (fi->fmtimes ? fi->fmtimes[i] : 0); -@@ -937,6 +938,7 @@ int fsmMapAttrs(IOSM_t fsm) - if ((S_ISCHR(st->st_mode) || S_ISBLK(st->st_mode)) - && st->st_nlink == 0) - st->st_nlink = 1; -+ st->st_ino = finalInode; - st->st_rdev = finalRdev; - st->st_mtime = finalMtime; - } diff --git a/rpm-5.4.10-post-install-helper-order.patch b/rpm-5.4.10-post-install-helper-order.patch deleted file mode 100644 index e88fa57..0000000 --- a/rpm-5.4.10-post-install-helper-order.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- rpm-5.4.10/macros/macros.rpmbuild.in.helper_order~ 2012-10-04 16:36:15.673593212 +0200 -+++ rpm-5.4.10/macros/macros.rpmbuild.in 2012-10-30 08:59:38.687200958 +0100 -@@ -399,9 +399,9 @@ echo "Patch #%{__patch_number} (%{basena - %{?buildroot:%{__rm} -rf '%{buildroot}'; %{__mkdir_p} '%{buildroot}'} - %__spec_install_body %{___build_body} - %__spec_install_post\ --%{?__debug_package:%{__debug_install_post}}\ - %{__arch_install_post}\ - %{__os_install_post}\ -+%{?__debug_package:%{__debug_install_post}}\ - %{nil} - %__spec_install_template #!%{__spec_install_shell}\ - %{__spec_install_pre}\ diff --git a/rpm-5.4.10-postpone_subpackage_build_failures.patch b/rpm-5.4.10-postpone_subpackage_build_failures.patch deleted file mode 100644 index ad35b24..0000000 --- a/rpm-5.4.10-postpone_subpackage_build_failures.patch +++ /dev/null @@ -1,73 +0,0 @@ ---- ./build/files.c.subpackage_failures~ 2013-05-22 18:56:03.629212893 +0400 -+++ ./build/files.c 2013-05-22 19:07:50.697775045 +0400 -@@ -2513,8 +2513,8 @@ - - files = argvFree(files); - -- if (fl.processingFailed) -- goto exit; -+/* if (fl.processingFailed) -+ goto exit;*/ - - /* Verify that file attributes scope over hardlinks correctly. */ - if (checkHardLinks(&fl)) -@@ -3147,6 +3147,7 @@ - HE_t he = (HE_t) memset(alloca(sizeof(*he)), 0, sizeof(*he)); - Package pkg; - rpmRC res = RPMRC_OK; -+ short failed_once = 0; - - char *buildroot = rpmExpand("%{?buildroot}", NULL); - size_t buildrootL = strlen(buildroot); -@@ -3167,22 +3168,23 @@ - he->p.ptr = _free(he->p.ptr); - - if ((rc = processPackageFiles(spec, pkg, installSpecialDoc, test))) { -- res = RPMRC_FAIL; -- (void) headerMacrosUnload(pkg->header); -- break; -+ failed_once = 1; - } - - /* Finalize package scriptlets before extracting dependencies. */ - if ((rc = processScriptFiles(spec, pkg))) { - res = rc; - (void) headerMacrosUnload(pkg->header); -- break; -+ if (res == RPMRC_FAIL) { -+ failed_once = 1; -+ } -+ else { -+ break; -+ } - } - - if ((rc = rpmfcGenerateDepends(spec, pkg))) { -- res = RPMRC_FAIL; -- (void) headerMacrosUnload(pkg->header); -- break; -+ failed_once = 1; - } - - /* XXX this should be earlier for deps to be entirely sorted. */ -@@ -3191,7 +3193,10 @@ - (void) headerMacrosUnload(pkg->header); - } - -- if (res == RPMRC_OK) { -+ if (failed_once == 1) -+ res = RPMRC_FAIL; -+ -+/* if (res == RPMRC_OK) {*/ - int _duplicate_files_terminate_build = - rpmExpandNumeric("%{?_duplicate_files_terminate_build}"); - int _unpackaged_subdirs_terminate_build = -@@ -3204,7 +3209,7 @@ - if (checkUnpackagedSubdirs(spec, buildrootL, _unpackaged_subdirs_terminate_build) > 0 && - _unpackaged_subdirs_terminate_build) - res = RPMRC_FAIL; -- } -+/* }*/ - - return res; - } diff --git a/rpm-5.4.10-printspec.patch b/rpm-5.4.10-printspec.patch deleted file mode 100644 index 20d2743..0000000 --- a/rpm-5.4.10-printspec.patch +++ /dev/null @@ -1,114 +0,0 @@ ---- rpm-5.4.10/build/spec.c.printspec~ 2013-01-23 01:04:32.483889763 +0100 -+++ rpm-5.4.10/build/spec.c 2013-01-23 01:12:59.970655457 +0100 -@@ -27,6 +27,10 @@ int _spec_debug; - - /*@-redecl@*/ - extern int specedit; -+ -+/*@-redecl@*/ -+extern int printspec; -+ - /*@=redecl@*/ - - #define SKIPWHITE(_x) {while(*(_x) && (xisspace(*_x) || *(_x) == ',')) (_x)++;} -@@ -489,7 +493,7 @@ static inline /*@only@*/ /*@null@*/ spec - /*@*/ - { - speclines sl = NULL; -- if (specedit) { -+ if (specedit || printspec) { - sl = xmalloc(sizeof(*sl)); - sl->sl_lines = NULL; - sl->sl_nalloc = 0; -@@ -836,6 +840,34 @@ printNewSpecfile(Spec spec) - } - - /** -+ * Print parsed copy of spec file with expanded macros. -+ * @param spec spec file control structure -+ */ -+static void -+printParsedSpecfile(Spec spec) -+ /*@globals fileSystem, internalState @*/ -+ /*@modifies spec->sl->sl_lines[], spec->packages->header, -+ fileSystem, internalState @*/ -+{ -+ speclines sl = spec->sl; -+ int i; -+ -+ if (sl == NULL) -+ return; -+ -+ for (i = 0; i < sl->sl_nlines; i++) { -+ const char * s = sl->sl_lines[i]; -+ const char * expandedLine; -+ if (s == NULL) -+ continue; -+ expandedLine = rpmMCExpand(spec->macros, s, NULL); -+ printf("%s", expandedLine); -+ _free(expandedLine); -+ if (strchr(s, '\n') == NULL && s[strlen(s)-1] != '\n') -+ printf("\n"); -+ } -+} -+/** - * Add expanded build scriptlet to srpm header. - * @param h srpm header - * @param progTag interpreter tag (0 disables) -@@ -939,6 +971,11 @@ static int _specQuery(rpmts ts, QVA_t qv - goto exit; - } - -+ if (printspec) { -+ printParsedSpecfile(spec); -+ goto exit; -+ } -+ - switch (qva->qva_source) { - case RPMQV_SPECSRPM: - xx = initSourceHeader(spec, NULL); ---- rpm-5.4.10/lib/librpm.vers.printspec~ 2013-01-23 01:09:47.257299567 +0100 -+++ rpm-5.4.10/lib/librpm.vers 2013-01-23 01:10:48.125643410 +0100 -@@ -37,6 +37,7 @@ LIBRPM_0 - _nosigh; - nplatpat; - platpat; -+ printspec; - _print_pkts; - _psm_debug; - _psm_threads; ---- rpm-5.4.10/lib/poptQV.c.printspec~ 2013-01-23 01:04:46.489658974 +0100 -+++ rpm-5.4.10/lib/poptQV.c 2013-01-23 01:07:29.416493474 +0100 -@@ -21,6 +21,9 @@ struct rpmQVKArguments_s rpmQVKArgs; - /*@unchecked@*/ - int specedit = 0; - -+/*@unchecked@*/ -+int printspec = 0; -+ - #define POPT_QUERYFORMAT -1000 - #define POPT_WHATREQUIRES -1001 - #define POPT_WHATPROVIDES -1002 -@@ -363,6 +366,8 @@ struct poptOption rpmQueryPoptTable[] = - N_("skip %%readme files"), NULL }, - #endif - -+ { "printspec", '\0', POPT_ARG_VAL, &printspec, -1, -+ N_("print parsed spec file"), NULL }, - { "qf", '\0', POPT_ARG_STRING | POPT_ARGFLAG_DOC_HIDDEN, 0, - POPT_QUERYFORMAT, NULL, NULL }, - { "queryformat", '\0', POPT_ARG_STRING, 0, POPT_QUERYFORMAT, ---- rpm-5.4.10/lib/rpmcli.h.printspec~ 2013-01-23 01:04:53.165920321 +0100 -+++ rpm-5.4.10/lib/rpmcli.h 2013-01-23 01:05:20.375518501 +0100 -@@ -293,6 +293,11 @@ extern int specedit; - /** \ingroup rpmcli - */ - /*@unchecked@*/ -+extern int printspec; -+ -+/** \ingroup rpmcli -+ */ -+/*@unchecked@*/ - extern struct poptOption rpmQueryPoptTable[]; - - /** \ingroup rpmcli diff --git a/rpm-5.4.10-python3-egg-reqs.patch b/rpm-5.4.10-python3-egg-reqs.patch deleted file mode 100644 index 23ef842..0000000 --- a/rpm-5.4.10-python3-egg-reqs.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff -Naur rpm-5.4.10.orig/scripts/pythoneggs.py rpm-5.4.10/scripts/pythoneggs.py ---- rpm-5.4.10.orig/scripts/pythoneggs.py 2013-06-14 14:26:18.171626023 +0400 -+++ rpm-5.4.10/scripts/pythoneggs.py 2013-06-14 14:28:45.434611910 +0400 -@@ -125,7 +125,10 @@ - if not name in py_deps: - py_deps[name] = [] - py_deps[name].append(('==', dist.py_version)) -- name = 'pythonegg(%s)' % dist.key -+ if f.find('python3') > 0: -+ name = 'python3egg(%s)' % dist.key -+ else: -+ name = 'pythonegg(%s)' % dist.key - if not name in py_deps: - py_deps[name] = [] - if dist.version: -@@ -155,7 +158,10 @@ - deps = depsextras - # add requires/suggests based on egg metadata - for dep in deps: -- name = 'pythonegg(%s)' % dep.key -+ if f.find('python3') > 0: -+ name = 'python3egg(%s)' % dep.key -+ else: -+ name = 'pythonegg(%s)' % dep.key - for spec in dep.specs: - if spec[0] != '!=': - if not name in py_deps: diff --git a/rpm-5.4.10-qml-dependency-generator.patch b/rpm-5.4.10-qml-dependency-generator.patch deleted file mode 100644 index f96d9da..0000000 --- a/rpm-5.4.10-qml-dependency-generator.patch +++ /dev/null @@ -1,245 +0,0 @@ -diff -urN rpm-5.4.10-orig/configure.ac rpm-5.4.10-patched/configure.ac ---- rpm-5.4.10-orig/configure.ac 2016-10-13 19:51:48.630996187 +1000 -+++ rpm-5.4.10-patched/configure.ac 2016-10-13 21:31:19.476242608 +1000 -@@ -2572,7 +2572,7 @@ - macros/macros macros/macros.rpmbuild - macros/cmake macros/gstreamer macros/java macros/kernel macros/libtool - macros/mandriva macros/suse macros/fedora macros/mono macros/perl macros/pkgconfig macros/php -- macros/python macros/ruby macros/selinux macros/tcl -+ macros/python macros/ruby macros/selinux macros/tcl macros/qml - doc/Makefile - doc/manual/Makefile doc/fr/Makefile doc/ja/Makefile doc/ko/Makefile - doc/pl/Makefile doc/ru/Makefile doc/sk/Makefile -diff -urN rpm-5.4.10-orig/lib/rpmfc.c rpm-5.4.10-patched/lib/rpmfc.c ---- rpm-5.4.10-orig/lib/rpmfc.c 2016-10-13 19:51:48.806996194 +1000 -+++ rpm-5.4.10-patched/lib/rpmfc.c 2016-10-13 22:14:04.696348477 +1000 -@@ -647,6 +647,7 @@ - - { "libtool library ", RPMFC_LIBTOOL|RPMFC_INCLUDE }, - { "pkgconfig ", RPMFC_PKGCONFIG|RPMFC_INCLUDE }, -+ { "qml ", RPMFC_QML|RPMFC_INCLUDE }, - - { "Bourne ", RPMFC_BOURNE|RPMFC_INCLUDE }, - { "Bourne-Again ", RPMFC_BOURNE|RPMFC_INCLUDE }, -@@ -953,6 +954,10 @@ - #endif - xx = rpmfcHelper(fc, 'R', "pkgconfig"); - } else -+ if (fc->fcolor->vals[fc->ix] & RPMFC_QML) { -+ xx = rpmfcHelper(fc, 'P', "qml"); -+// xx = rpmfcHelper(fc, 'R', "qml"); -+ } else - if (fc->fcolor->vals[fc->ix] & RPMFC_BOURNE) { - #ifdef NOTYET - xx = rpmfcHelper(fc, 'P', "executable"); -@@ -1147,7 +1152,7 @@ - /*@unchecked@*/ - static struct rpmfcApplyTbl_s rpmfcApplyTable[] = { - { rpmfcELF, RPMFC_ELF }, -- { rpmfcSCRIPT, (RPMFC_SCRIPT|RPMFC_FONT|RPMFC_HASKELL|RPMFC_RUBY|RPMFC_PERL|RPMFC_PYTHON|RPMFC_LIBTOOL|RPMFC_PKGCONFIG|RPMFC_BOURNE|RPMFC_JAVA|RPMFC_PHP|RPMFC_MONO|RPMFC_TYPELIB|RPMFC_NODEJS) }, -+ { rpmfcSCRIPT, (RPMFC_SCRIPT|RPMFC_FONT|RPMFC_HASKELL|RPMFC_RUBY|RPMFC_PERL|RPMFC_PYTHON|RPMFC_LIBTOOL|RPMFC_PKGCONFIG|RPMFC_QML|RPMFC_BOURNE|RPMFC_JAVA|RPMFC_PHP|RPMFC_MONO|RPMFC_TYPELIB|RPMFC_NODEJS) }, - #if defined(RPM_VENDOR_MANDRIVA) - { rpmfcSYMLINK, RPMFC_SYMLINK }, - #endif -@@ -1455,6 +1460,14 @@ - else if (_suffix(s, ".pc")) - ftype = "pkgconfig file"; - -+ /* XXX all files with extension ".qml" are qml for now. */ -+ else if (_suffix(s, ".qml")) -+ ftype = "qml file"; -+ -+ /* XXX all files named "qmldir" are qml for now. */ -+ else if (_suffix(s, "qmldir")) -+ ftype = "qml file"; -+ - /* XXX all files with extension ".php" are PHP for now. */ - else if (_suffix(s, ".php")) - ftype = "PHP script text"; -diff -urN rpm-5.4.10-orig/lib/rpmfc.h rpm-5.4.10-patched/lib/rpmfc.h ---- rpm-5.4.10-orig/lib/rpmfc.h 2016-10-13 19:51:48.806996194 +1000 -+++ rpm-5.4.10-patched/lib/rpmfc.h 2016-10-13 21:31:19.498242609 +1000 -@@ -24,7 +24,7 @@ - #define RPMFC_ELF (RPMFC_ELF32|RPMFC_ELF64|RPMFC_ELFMIPSN32) - /* (1 << 3) leaks into package headers, reserved */ - -- /* bit 4 unused */ -+ RPMFC_QML = (1 << 4), - RPMFC_TYPELIB = (1 << 5), - RPMFC_HASKELL = (1 << 6), - RPMFC_RUBY = (1 << 7), -diff -urN rpm-5.4.10-orig/macros/macros rpm-5.4.10-patched/macros/macros ---- rpm-5.4.10-orig/macros/macros 2016-10-13 19:51:48.798996194 +1000 -+++ rpm-5.4.10-patched/macros/macros 2016-10-13 21:31:19.500242609 +1000 -@@ -1061,6 +1061,10 @@ - #%%{load:%{_usrlibrpm}/macros.d/pkgconfig} - - #------------------------------------------------------------------------ -+# qml(...) configuration. -+#%%{load:%{_usrlibrpm}/macros.d/qml} -+ -+#------------------------------------------------------------------------ - # mono(...) configuration. - #%%{load:%{_usrlibrpm}/macros.d/mono} - -diff -urN rpm-5.4.10-orig/macros/macros.in rpm-5.4.10-patched/macros/macros.in ---- rpm-5.4.10-orig/macros/macros.in 2016-10-13 19:51:48.647996188 +1000 -+++ rpm-5.4.10-patched/macros/macros.in 2016-10-13 21:31:19.509242609 +1000 -@@ -1065,6 +1065,10 @@ - %{load:%{_usrlibrpm}/macros.d/pkgconfig} - - #------------------------------------------------------------------------ -+# qml(...) configuration. -+%{load:%{_usrlibrpm}/macros.d/qml} -+ -+#------------------------------------------------------------------------ - # mono(...) configuration. - %{load:%{_usrlibrpm}/macros.d/mono} - -diff -urN rpm-5.4.10-orig/macros/qml rpm-5.4.10-patched/macros/qml ---- rpm-5.4.10-orig/macros/qml 1970-01-01 10:00:00.000000000 +1000 -+++ rpm-5.4.10-patched/macros/qml 2016-10-13 21:31:19.513242610 +1000 -@@ -0,0 +1,11 @@ -+# QML specific macro definitions. -+# To make use of these macros insert the following line into your spec file: -+# %{load:%{_usrlibrpm}/macros.d/qml} -+# -+ -+# Path to scripts to autogenerate QML package dependencies, -+# -+# Note: Used iff _use_internal_dependency_generator is non-zero. The -+# helpers are also used by %{_rpmhome}/rpmdeps {--provides|--requires}. -+%__qml_provides %{_rpmhome}/qmldeps.sh --provides -+%__qml_requires %{_rpmhome}/qmldeps.sh --requires -diff -urN rpm-5.4.10-orig/macros/qml.in rpm-5.4.10-patched/macros/qml.in ---- rpm-5.4.10-orig/macros/qml.in 1970-01-01 10:00:00.000000000 +1000 -+++ rpm-5.4.10-patched/macros/qml.in 2016-10-13 21:31:19.515242610 +1000 -@@ -0,0 +1,11 @@ -+# QML specific macro definitions. -+# To make use of these macros insert the following line into your spec file: -+# %{load:%{_usrlibrpm}/macros.d/qml} -+# -+ -+# Path to scripts to autogenerate QML package dependencies, -+# -+# Note: Used iff _use_internal_dependency_generator is non-zero. The -+# helpers are also used by %{_rpmhome}/rpmdeps {--provides|--requires}. -+%__qml_provides %{_rpmhome}/qmldeps.sh --provides -+%__qml_requires %{_rpmhome}/qmldeps.sh --requires -diff -urN rpm-5.4.10-orig/Makefile.am rpm-5.4.10-patched/Makefile.am ---- rpm-5.4.10-orig/Makefile.am 2012-03-17 11:24:19.000000000 +1100 -+++ rpm-5.4.10-patched/Makefile.am 2016-10-13 21:31:19.515242610 +1000 -@@ -118,7 +118,7 @@ - pkgcfg_DATA = \ - macros/cmake macros/gstreamer macros/java macros/kernel macros/libtool \ - macros/mandriva macros/mono macros/perl macros/pkgconfig macros/php \ -- macros/python macros/ruby macros/selinux macros/tcl -+ macros/python macros/ruby macros/selinux macros/tcl macros/qml - - noinst_HEADERS = build.h debug.h system.h - -diff -urN rpm-5.4.10-orig/scripts/Makefile.am rpm-5.4.10-patched/scripts/Makefile.am ---- rpm-5.4.10-orig/scripts/Makefile.am 2016-10-13 19:51:47.745996150 +1000 -+++ rpm-5.4.10-patched/scripts/Makefile.am 2016-10-13 21:31:19.519242610 +1000 -@@ -67,7 +67,8 @@ - rpm.daily rpm.log rpm.xinetd \ - rubygems.rb \ - tgpg u_pkg.sh \ -- vcheck vpkg-provides.sh vpkg-provides2.sh -+ vcheck vpkg-provides.sh vpkg-provides2.sh \ -+ qmldeps.sh - - - pkglibbindir = @USRLIBRPM@/bin -diff -urN rpm-5.4.10-orig/scripts/qmldeps.sh rpm-5.4.10-patched/scripts/qmldeps.sh ---- rpm-5.4.10-orig/scripts/qmldeps.sh 1970-01-01 10:00:00.000000000 +1000 -+++ rpm-5.4.10-patched/scripts/qmldeps.sh 2016-10-13 22:13:24.485346817 +1000 -@@ -0,0 +1,88 @@ -+#!/bin/bash -+# Copyright (C) 2012 Jolla Oy -+# Contact: Bernd Wachter -+# Modified by Andrey Bondrov -+# -+# Try to locate module information for automatic provide generation from -+# qmldir files as well as information about imported modules for automatic -+# require generation from qml files. -+# -+# TODO: -+# - figure out if type handling needs special attention in regard to versioning -+# - stuff like Sailfish.Silica.theme currently can't get autodetected -+# - implement requires generation -+# - check if the regex include all valid characters allowed in module definitions -+# - fine tune the regex -- they're currently not perfect, just "good enough" -+# -+# A note about versioning: -+# A module package should provide the module in the version of the highest file -+# included in the package. A package using a module should require the module -+# in a version >= the one used for the import. -+ -+[ $# -ge 1 ] || { -+ cat > /dev/null -+ exit 0 -+} -+ -+# grep blows up with C/POSIX locale, so make sure we're using a working locale -+if [ -z "$LANG" ] || [ "$LANG" = "C" ] || [ "$LANG" = "POSIX" ] ; then -+ export LANG=en_US.UTF-8 -+fi -+ -+case $1 in -+-P|--provides) -+ while read file; do -+ case "$file" in -+ */qmldir) -+ if head -1 "$file" | grep -iq '^module\s*' 2>/dev/null; then -+ provides="`head -1 ${file} | sed -r 's/^module\s+//'`" -+ version="`grep -i -E -o '^[a-z]*\s+[0-9.]*\s+[a-z0-9]*.qml' ${file} | awk '{print $2}' | sort -r | uniq | head -1`" -+ if [ -z "$version" ]; then -+# echo "qmldeps: WARNING: no version number found, package version will be used." >&2 -+ echo "qml($provides)" -+ else -+ echo "qml($provides) = $version" -+ fi -+ else -+ echo "qmldeps: no valid module definition found in $file" >&2 -+ fi -+ ;; -+ esac -+ done -+ ;; -+-R|--requires) -+ while read file; do -+ case "$file" in -+ *.qml) -+ # this first part is some hack to avoid depending on own provides -+ # for modules -+ qmldir=`echo ${file}|sed 's,/[^/]*$,,'` -+ qmldir_noprivate=`echo ${file}|sed 's,private/[^/]*$,,'` -+ if [ -f $qmldir/qmldir ]; then -+ module=`head -1 $qmldir/qmldir | sed -r 's/^.*\s+//'` -+ elif [ -f $qmldir_noprivate/qmldir ]; then -+ module=`head -1 $qmldir_noprivate/qmldir | sed -r 's/^.*\s+//'` -+ fi -+ IFS=$'\n' -+ imports=`grep -i -E -o '^\s*import\s+[a-z0-9.]*\s+[0-9.]*' ${file} | sed -r -e 's/^\s*import\s*//' | sort | uniq` -+ if [ -z "$imports" ]; then -+ echo "qmldeps: no imports found in $file. Probably should not happen." >&2 -+ fi -+ for i in $imports; do -+ import=`echo $i | awk '{ print $1 }'` -+ import_version=`echo $i | awk '{ print $2 }'` -+ if [ $import = "$module" ]; then -+ echo "qmldeps: skipping provide for own module '$module' in $file" >&2 -+ elif echo $import | grep -q '\.private$'; then -+ echo "qmldeps: skipping private import '$import' in $file" >&2 -+ else -+ # remove the >&2 to enable requires generation as well -+ echo "qml($import) >= $import_version" -+ fi -+ done -+ ;; -+ esac -+ done -+ ;; -+esac -+exit 0 diff --git a/rpm-5.4.10-resolve-absolute-path-to-RPM_BUILD_DIR-for-debugedit.patch b/rpm-5.4.10-resolve-absolute-path-to-RPM_BUILD_DIR-for-debugedit.patch deleted file mode 100644 index 77f0fa0..0000000 --- a/rpm-5.4.10-resolve-absolute-path-to-RPM_BUILD_DIR-for-debugedit.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- rpm-5.4.10/macros/macros.rpmbuild.in.realpath~ 2013-01-04 19:05:11.947714307 +0100 -+++ rpm-5.4.10/macros/macros.rpmbuild.in 2013-01-04 19:04:46.741328887 +0100 -@@ -326,7 +326,7 @@ echo "Patch #%{__patch_number} (%{basena - %___build_args -e - %___build_cmd %{?_sudo:%{_sudo} }%{?_remsh:%{_remsh} %{_remhost} }%{?_remsudo:%{_remsudo} }%{?_remchroot:%{_remchroot} %{_remroot} }%{___build_shell} %{___build_args} - %___build_pre \ -- RPM_BUILD_DIR=\"%{u2p:%{_builddir}}\"\ -+ RPM_BUILD_DIR=\"%{realpath:%{u2p:%{_builddir}}}\"\ - RPM_OPT_FLAGS=\"%{optflags}\"\ - export RPM_BUILD_DIR RPM_OPT_FLAGS\ - %{?buildroot:RPM_BUILD_ROOT=\"%{u2p:%{buildroot}}\"\ -@@ -345,7 +345,7 @@ echo "Patch #%{__patch_number} (%{basena - \ - %{verbose:set -x}%{!verbose:exec > /dev/null}\ - umask 022\ -- cd "%{u2p:%{_builddir}}"\ -+ cd "%{realpath:%{u2p:%{_builddir}}}"\ - - - #%___build_body %{nil} diff --git a/rpm-5.4.10-rpmdb-typecasts.patch b/rpm-5.4.10-rpmdb-typecasts.patch deleted file mode 100644 index ea81cac..0000000 --- a/rpm-5.4.10-rpmdb-typecasts.patch +++ /dev/null @@ -1,56 +0,0 @@ ---- rpm-5.4.10/rpmdb/rpmdb.h.typecast~ 2013-01-16 18:43:33.115896979 +0100 -+++ rpm-5.4.10/rpmdb/rpmdb.h 2013-01-16 18:43:37.789965686 +0100 -@@ -938,7 +938,7 @@ fprintf(stderr, "<-- %s(%p,%p,0x%x) logc - /*@unused@*/ static inline - int rpmlgcGet(rpmdb rpmdb, DB_LSN * _lsn, DBT * data, uint32_t flags) - { -- DB_LOGC * _logc = rpmdb->db_logc; -+ DB_LOGC * _logc = (DB_LOGC*)rpmdb->db_logc; - int rc = (_logc ? _logc->get(_logc, _lsn, data, flags) : ENOTSUP); - if (_rpmdb_debug) - fprintf(stderr, "<-- %s(%p,%p,%p,0x%x) rc %d\n", "logc->get", _logc, _lsn, data, flags, rc); -@@ -948,7 +948,7 @@ fprintf(stderr, "<-- %s(%p,%p,%p,0x%x) r - /*@unused@*/ static inline - int rpmlgcClose(rpmdb rpmdb) - { -- DB_LOGC * _logc = rpmdb->db_logc; -+ DB_LOGC * _logc = (DB_LOGC*)rpmdb->db_logc; - uint32_t _flags = 0; - int rc = (_logc ? _logc->close(_logc, _flags) : ENOTSUP); - rpmdb->db_logc = NULL; -@@ -1026,7 +1026,7 @@ fprintf(stderr, "<-- %s(%p,%d) nwrote %d - /*@unused@*/ static inline - int rpmmpfClose(rpmdb rpmdb) - { -- DB_MPOOLFILE * mpf = rpmdb->db_mpf; -+ DB_MPOOLFILE * mpf = (DB_MPOOLFILE*)rpmdb->db_mpf; - uint32_t _flags = 0; - int rc = (mpf ? mpf->close(mpf, _flags) : ENOTSUP); - rpmdb->db_mpf = NULL; -@@ -1038,7 +1038,7 @@ fprintf(stderr, "<-- %s(%p) rc %d\n", "m - /*@unused@*/ static inline - int rpmmpfGet(rpmdb rpmdb, uint32_t * _pgnop, uint32_t _flags, void ** _pagep) - { -- DB_MPOOLFILE * mpf = rpmdb->db_mpf; -+ DB_MPOOLFILE * mpf = (DB_MPOOLFILE*)rpmdb->db_mpf; - DB_TXN * _txnid = (DB_TXN*)rpmdb->db_txn; - int rc = mpf->get(mpf, _pgnop, _txnid, _flags, _pagep); - if (_rpmdb_debug) -@@ -1072,7 +1072,7 @@ exit: - /*@unused@*/ static inline - int rpmmpfPut(rpmdb rpmdb, void * _page, uint32_t flags) - { -- DB_MPOOLFILE * mpf = rpmdb->db_mpf; -+ DB_MPOOLFILE * mpf = (DB_MPOOLFILE*) rpmdb->db_mpf; - uint32_t _priority = DB_PRIORITY_DEFAULT; - int rc = mpf->put(mpf, _page, (DB_CACHE_PRIORITY)_priority, flags); - if (_rpmdb_debug) -@@ -1083,7 +1083,7 @@ fprintf(stderr, "<-- %s(%p,%p,0x%x,0x%x) - /*@unused@*/ static inline - int rpmmpfSync(rpmdb rpmdb) - { -- DB_MPOOLFILE * mpf = rpmdb->db_mpf; -+ DB_MPOOLFILE * mpf = (DB_MPOOLFILE*)rpmdb->db_mpf; - int rc = (mpf ? mpf->sync(mpf) : ENOTSUP); - if (_rpmdb_debug) - fprintf(stderr, "<-- %s(%p) rc %d\n", "mpf->close", mpf, rc); diff --git a/rpm-5.4.10-rpmdbchk.patch b/rpm-5.4.10-rpmdbchk.patch deleted file mode 100644 index 70e6a39..0000000 --- a/rpm-5.4.10-rpmdbchk.patch +++ /dev/null @@ -1,333 +0,0 @@ ---- rpm-5.4.10/tools/Makefile.am.rpmdbchk~ 2012-05-04 17:58:08.000000000 +0200 -+++ rpm-5.4.10/tools/Makefile.am 2013-04-02 09:11:56.264985289 +0200 -@@ -29,7 +29,7 @@ EXTRA_PROGRAMS = augtool cudftool dbconv - nix-env nix-hash nix-install-package nix-instantiate \ - nix-log2xml nix-prefetch-url nix-pull nix-push nix-store nix-worker \ - xiu-echo xiu-hash xiu-instantiate xiu-store \ -- roto rpmkey sandbox semodule spooktool -+ roto rpmdbchk rpmkey sandbox semodule spooktool - - RPMMISC_LDADD_COMMON = \ - $(top_builddir)/misc/librpmmisc.la \ -@@ -60,7 +60,7 @@ pkgbin_PROGRAMS = \ - rpmcache rpmdigest rpmrepo rpmspecdump \ - rpmcmp rpmdeps sqlite3 @WITH_KEYUTILS_RPMKEY@ @WITH_LIBELF_DEBUGEDIT@ - if WITH_DB --pkgbin_PROGRAMS += dbconvert -+pkgbin_PROGRAMS += dbconvert rpmdbchk - endif - dist_man_MANS = rpmgrep.1 - -@@ -230,6 +230,13 @@ rpm2cpio_LDFLAGS = @LDFLAGS_STATIC@ $(LD - rpm2cpio_LDADD = $(LDFLAGS) $(RPM_LDADD_COMMON) - - ## -+## rpmdbchk tool for finding and fixing broken headers -+## -+rpmdbchk_SOURCES = rpmdbchk.c -+rpmdbchk_LDFLAGS = @LDFLAGS_STATIC@ $(LDFLAGS) -+rpmdbchk_LDADD = $(LDFLAGS) $(RPM_LDADD_COMMON) -+ -+## - ## keyctl(1) clone - ## - rpmkey_SOURCES = rpmkey.c ---- rpm-5.4.10/tools/rpmdbchk.c.rpmdbchk~ 2013-04-02 09:11:56.264985289 +0200 -+++ rpm-5.4.10/tools/rpmdbchk.c 2013-04-06 01:03:20.082982283 +0200 -@@ -0,0 +1,296 @@ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include -+#include -+ -+#define _RPMTAG_INTERNAL -+#define _RPMDB_INTERNAL -+#define WITH_DB -+#include -+ -+#include -+#include -+#include -+#include -+ -+static char *rootPath = NULL; -+static char *rpmdbPath = NULL; -+static int checkOnly = 0; -+ -+struct node { -+ uint32_t state; -+ uint32_t keysize; -+ void *keydata; -+ struct node *next; -+}; -+ -+static int -+rpmdb_check(const char *prefix, const char *path, uint32_t **state, uint32_t *nkeys, struct node **broken) -+{ -+ rpmts ts = NULL; -+ -+ const char * dbpath = path ? path : rpmExpand("%{?_dbpath}", NULL); -+ -+ DBC *dbcp = NULL; -+ dbiIndex dbi = NULL; -+ DBT key; -+ DBT data; -+ DB_TXN *txnid = NULL; -+ DB *bdb; -+ -+ uint32_t hdrNum = 0; -+ uint32_t damaged = 0; -+ float pct = 0; -+ uint8_t tmp; -+ -+ int xx; -+ -+ ts = rpmtsCreate(); -+ -+ addMacro(NULL, "_dbpath", NULL, dbpath, -1); -+ rpmtsSetRootDir(ts, prefix && prefix[0] ? prefix : NULL); -+ if(rpmtsOpenDB(ts, O_RDONLY)) -+ goto exit; -+ -+ dbi = dbiOpen(rpmtsGetRdb(ts), RPMDBI_PACKAGES, 0); -+ -+ if ((xx = dbiCopen(dbi, NULL, NULL, 0))) -+ goto exit; -+ -+ txnid = dbiTxnid(dbi); -+ *nkeys = 0; -+ -+ memset(&key, 0, sizeof(key)); -+ memset(&data, 0, sizeof(data)); -+ bdb = dbi->dbi_db; -+ -+ /* Acquire a cursor for the database. */ -+ xx = bdb->cursor(bdb, NULL, &dbcp, 0); -+ if (xx) -+ bdb->err(bdb, xx, "DB->cursor"); -+ -+ xx = bdb->stat(bdb, txnid, &dbi->dbi_stats, 0); -+ if (xx) -+ goto exit; -+ -+ switch (bdb->type) { -+ case DB_BTREE: -+ case DB_RECNO:{ -+ DB_BTREE_STAT *db_stat = dbi->dbi_stats; -+ *nkeys = db_stat->bt_nkeys; -+ } break; -+ case DB_HASH:{ -+ DB_HASH_STAT *db_stat = dbi->dbi_stats; -+ *nkeys = db_stat->hash_nkeys; -+ } break; -+ case DB_QUEUE:{ -+ DB_QUEUE_STAT *db_stat = dbi->dbi_stats; -+ *nkeys = db_stat->qs_nkeys; -+ } break; -+ case DB_UNKNOWN: -+ default: -+ xx = -1; -+ goto exit; -+ break; -+ } -+ uint32_t *status = calloc(*nkeys, sizeof(uint32_t)); -+ struct node *curr; -+ -+ hdrNum = 0; -+ pct = 0; -+ -+ while ((xx = dbcp->c_get(dbcp, &key, &data, DB_NEXT)) == 0) { -+ tmp = pct; -+ pct = (100 * (float) ++hdrNum / *nkeys) + 0.5; -+ /* TODO: callbacks for status output? */ -+ if (tmp < (int) (pct + 0.5)) { -+ fprintf(stderr, "\rchecking %s%s/Packages: %u/%u %d%%", -+ prefix && prefix[0] ? prefix : "", -+ dbpath, hdrNum, *nkeys, (int) pct); -+ } -+ const char *msg = NULL; -+ int lvl = headerCheck(rpmtsDig(ts), data.data, data.size, &msg); -+ rpmtsCleanDig(ts); -+ if (lvl == RPMRC_FAIL) { -+ status[hdrNum-1] = htonl(*(uint32_t*)(dbcp->rkey->data)); -+ damaged++; -+ fprintf(stderr, "\n%d (%d): %s\n", hdrNum-1, status[hdrNum-1], msg); -+ } else if (key.size != sizeof(hdrNum)) { -+ curr = malloc(sizeof(struct node)); -+ curr->state = htonl(*(uint32_t*)(dbcp->rkey->data)); -+ curr->keysize = key.size; -+ curr->keydata = malloc(key.size); -+ memcpy(curr->keydata, key.data, key.size); -+ curr->next = *broken; -+ *broken = curr; -+ status[hdrNum-1] = -1; -+ damaged++; -+ fprintf(stderr, "\n%d: %s (key.size(%d) != %d)\n", hdrNum-1, msg, key.size, sizeof(hdrNum)); -+ } else -+ status[hdrNum-1] = -1; -+ fflush(stderr); -+ } -+ -+ fprintf(stderr, "\n"); -+ -+ -+ *state = status; -+ xx = dbiCclose(dbi, dbcp, 0); -+ -+exit: -+ xx = rpmtsCloseDB(ts); -+ ts = rpmtsFree(ts); -+ -+ return damaged; -+} -+ -+static int -+rpmdb_dump_delete(DB *dbp, const char *db, const char *lost, DBT *key, uint32_t n) { -+ int gotrec; -+ int ret = 0; -+ DBT data; -+ -+ memset(&data, 0, sizeof(data)); -+ -+ if ((ret = dbp->get(dbp, NULL, key, &data, 0)) == 0) { -+ char copy[1024]; -+ snprintf(copy, sizeof(copy), "%s/header.%d", lost, n); -+ FILE *fp = fopen(copy, "w"); -+ fwrite(data.data, data.size, 1, fp); -+ fclose(fp); -+ gotrec = 0; -+ memcpy(&gotrec, key->data, sizeof(gotrec)); -+ printf("db: get key: %p[%d] = 0x%x, data at %p[%d].\n", -+ (char *)key->data, key->size, gotrec, -+ (char *)data.data, data.size); -+ printf("Dumping broken header to disk: %s\n", copy); -+ } else { -+ dbp->err(dbp, ret, "DB->get"); -+ if (ret == DB_NOTFOUND) -+ return 0; -+ return ret; -+ } -+ -+ if ((ret = dbp->del(dbp, NULL, key, 0)) == 0) { -+ gotrec = 0; -+ memcpy(&gotrec, key->data, sizeof(gotrec)); -+ printf("db: del key: %p[%d] = 0x%x, data at %p[%d].\n", -+ (char *)key->data, key->size, gotrec, -+ (char *)data.data, data.size); -+ } else { -+ dbp->err(dbp, ret, "DB->del"); -+ return ret; -+ } -+ return 0; -+} -+ -+static int -+rpmdb_fix(const char *prefix, const char *path, uint32_t *state, uint32_t nkeys, struct node *broken) -+{ -+ DB * dbp; -+ DBT key; -+ struct stat sb; -+ const char * db = rpmGetPath(prefix && prefix[0] ? prefix : "", path, "/Packages", NULL); -+ const char * lost = rpmGetPath(prefix && prefix[0] ? prefix : "", path, "/broken", NULL); -+ int ret, t_ret; -+ uint32_t i; -+ -+ -+ if ((ret = db_create(&dbp, NULL, 0)) != 0) { -+ fprintf(stderr, "db_create: %s\n", db_strerror(ret)); -+ exit (1); -+ } -+ -+ if (Stat(lost, &sb)) -+ Mkdir(lost, 0700); -+ -+ if ((ret = dbp->open(dbp, NULL, db, NULL, DB_BTREE, DB_CREATE, 0664)) != 0) { -+ dbp->err(dbp, ret, "%s", db); -+ goto err; -+ } -+ -+ for (i = 0; i < nkeys; i++) { -+ if (state[i] == -1) continue; -+ int badrec, badrec2; -+ memset(&key, 0, sizeof(key)); -+ badrec2 = state[i]; -+ badrec = htonl(badrec2); -+ printf("fix record[%d] at #%d/#%d --\n", i, badrec2, badrec); -+ key.data = &badrec; -+ key.size = sizeof(badrec); -+ -+ ret = rpmdb_dump_delete(dbp, db, lost, &key, state[i]); -+ } -+ -+ while (broken) { -+ memset(&key, 0, sizeof(key)); -+ key.size = broken->keysize; -+ key.data = broken->keydata; -+ ret = rpmdb_dump_delete(dbp, db, lost, &key, broken->state); -+ free(broken->keydata); -+ free(broken); -+ broken = broken->next; -+ } -+ -+ -+err: -+ if ((t_ret = dbp->close(dbp, 0)) != 0 && ret == 0) -+ ret = t_ret; -+ _free(db); -+ _free(lost); -+ -+ return 0; -+} -+ -+static struct poptOption optionsTable[] = { -+ { "root", '\0', POPT_ARG_STRING, &rootPath, 0, -+ "rpm root path", "path"}, -+ { "dbpath", '\0', POPT_ARG_STRING, &rpmdbPath, 0, -+ "rpmdb path", "path"}, -+ { "checkonly", '\0', POPT_ARG_VAL, &checkOnly, 1, -+ "only check, don't fix anything", NULL}, -+ -+ POPT_AUTOALIAS -+ POPT_AUTOHELP -+ POPT_TABLEEND -+}; -+ -+int main(int argc, char *argv[]) -+{ -+ poptContext optCon = rpmcliInit(argc, argv, optionsTable); -+ ARGV_t av = poptGetArgs(optCon); -+ int ac = argvCount(av); -+ int rc = 2; /* assume failure */ -+ uint32_t nkeys = 0; -+ uint32_t *state = NULL; -+ struct node *broken = NULL; -+ -+ if (ac) { -+ poptPrintUsage(optCon, stderr, 0); -+ goto exit; -+ } -+ -+ rc = rpmReadConfigFiles(NULL, NULL); -+ -+ -+ rc = rpmdb_check(rootPath, rpmdbPath, &state, &nkeys, &broken); -+ printf("%d/%d (%f%%) headers damaged", rc, nkeys, (float)rc/nkeys); -+ printf("\n"); -+ if (!checkOnly && rc) { -+ printf("fixing...\n"); -+ rc = rpmdb_fix(rootPath, rpmdbPath, state, nkeys, broken); -+ } -+ -+exit: -+ _free(state); -+ optCon = rpmcliFini(optCon); -+ return rc; -+} diff --git a/rpm-5.4.10-run-spec-helper-at-end-of-doc-stage.patch b/rpm-5.4.10-run-spec-helper-at-end-of-doc-stage.patch deleted file mode 100644 index 16b18ee..0000000 --- a/rpm-5.4.10-run-spec-helper-at-end-of-doc-stage.patch +++ /dev/null @@ -1,53 +0,0 @@ ---- rpm-5.4.10/build/build.c.doc_post~ 2011-01-01 15:39:54.000000000 +0100 -+++ rpm-5.4.10/build/build.c 2013-02-25 01:22:28.407418823 +0100 -@@ -181,9 +181,9 @@ rpmRC doScript(Spec spec, int what, cons - break; - case RPMBUILD_STRINGBUF: - default: -- mTemplate = "%{___build_template}"; -- mPost = "%{___build_post}"; -- mCmd = "%{___build_cmd}"; -+ mTemplate = "%{__spec_stringbuf_template}"; -+ mPost = "%{__spec_stringbuf_post}"; -+ mCmd = "%{__spec_stringbuf_cmd}"; - break; - } - ---- rpm-5.4.10/macros/macros.rpmbuild.in.doc_post~ 2013-02-25 01:22:28.400418746 +0100 -+++ rpm-5.4.10/macros/macros.rpmbuild.in 2013-02-25 01:22:28.410418856 +0100 -@@ -411,6 +411,22 @@ echo "Patch #%{__patch_number} (%{basena - #%{__spec_install_post}\ - #%{nil} - -+%__spec_stringbuf_shell %{___build_shell} -+%__spec_stringbuf_args %{___build_args} -+%__spec_stringbuf_cmd %{___build_cmd} -+%__spec_stringbuf_pre %{___build_pre} -+%__spec_stringbuf_body %{___build_body} -+%__spec_stringbuf_post\ -+%{?__os_stringbuf_post}\ -+%{nil} -+%__spec_stringbuf_template #!%{__spec_stringbuf_shell}\ -+%{__spec_stringbuf_pre}\ -+%{nil} -+ -+#%{__spec_stringbuf_body}\ -+#%{__spec_stringbuf_post}\ -+#%{nil} -+ - %__spec_check_shell %{___build_shell} - %__spec_check_args %{___build_args} - %__spec_check_cmd %{___build_cmd} ---- rpm-5.4.10/macros/mandriva.in.doc_post~ 2013-02-25 01:22:28.395418692 +0100 -+++ rpm-5.4.10/macros/mandriva.in 2013-02-25 01:22:45.531606854 +0100 -@@ -332,6 +332,10 @@ GCONF_CONFIG_SOURCE=`%{_gconftool_bin} - - %{?__spec_helper_post}%{?!__spec_helper_post:/usr/share/spec-helper/spec-helper} \ - %{nil} - -+%__os_stringbuf_post \ -+ %{?__spec_helper_stringbuf_post} \ -+%{nil} -+ - #============================================================================== - # ---- specfile macros. - # Macro(s) here can be used reliably for reproducible builds. diff --git a/rpm-5.4.10-search-through-buildroot-library-dirs-for-uclibc-deps.patch b/rpm-5.4.10-search-through-buildroot-library-dirs-for-uclibc-deps.patch deleted file mode 100644 index 2160452..0000000 --- a/rpm-5.4.10-search-through-buildroot-library-dirs-for-uclibc-deps.patch +++ /dev/null @@ -1,57 +0,0 @@ ---- rpm-5.4.10/lib/rpmds.c.uclibc_buildroot~ 2012-10-04 16:25:30.850199688 +0200 -+++ rpm-5.4.10/lib/rpmds.c 2012-10-04 16:25:40.130349028 +0200 -@@ -3063,8 +3063,10 @@ foo: - } - if (dyn->d_tag == DT_NEEDED) { - char *tmp, *tmp2; -- char buf[MAXPATHLEN]; -- char path[MAXPATHLEN] = ""; -+ /* XXX: we multiply by 4 to make sure to have room for several paths */ -+ char buf[4*MAXPATHLEN] = ""; -+ char path[4*MAXPATHLEN]; -+ char *buildroot; - - libpath = elf_strptr (elf, shdr->sh_link, dyn->d_un.d_val); - if (prev && *prev && libpath && !strcmp(basename(prev), libpath)) -@@ -3084,10 +3086,9 @@ foo: - if (stat(libpath, &statbuf) == 0) - continue; - -- tmp2 = path; -+ tmp2 = buf; - if (rpath && *rpath) { -- tmp2 = stpcpy(tmp2, rpath); -- tmp2 = stpcpy(tmp2, ":"); -+ tmp2 = stpcpy(buf, rpath); - } - tmp = getenv("LD_LIBRARY_PATH"); - if (tmp) -@@ -3096,6 +3097,28 @@ foo: - tmp2 = stpcpy(tmp2, ":"); - /* XXX: do better check to ensure libraries are all of the same class */ - tmp2 = stpcpy(tmp2, (class == ELFCLASS64) ? "/lib64:/usr/lib64" : "/lib:/usr/lib"); -+ /* we need to search through library paths within buildroot as well */ -+ buildroot = rpmExpand("%{buildroot}", NULL); -+ if (stat(buildroot, &statbuf) == 0) { -+ char *tmp3; -+ for (tmp2 = buf, tmp = path; -+ tmp2 != NULL; -+ tmp2 = tmp3) { -+ tmp = stpcpy(tmp, buildroot); -+ tmp3 = strchr(tmp2, ':'); -+ if (tmp3) -+ *tmp3 = '\0'; -+ tmp = stpcpy(tmp, tmp2); -+ tmp = stpcpy(tmp, ":"); -+ if (tmp3) { -+ *tmp3 = ':'; -+ tmp3++; -+ } -+ } -+ } else -+ tmp = path; -+ _free(buildroot); -+ stpcpy(tmp, buf); - tmp = buf; - { - int i, count = 1; diff --git a/rpm-5.4.10-set-lc_ctype-to-utf8-when-building-gem.patch b/rpm-5.4.10-set-lc_ctype-to-utf8-when-building-gem.patch deleted file mode 100644 index c90eb46..0000000 --- a/rpm-5.4.10-set-lc_ctype-to-utf8-when-building-gem.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- rpm-5.4.10/macros/ruby.in.ruby_utf8~ 2012-12-27 22:56:04.080134683 +0100 -+++ rpm-5.4.10/macros/ruby.in 2012-12-27 22:55:11.132459560 +0100 -@@ -27,11 +27,13 @@ - %__gem_helper %{_usrlibrpm}/gem_helper.rb - - %gem_build(f:j:) \ -+ export LC_CTYPE=UTF-8 \ - %__gem_helper build \\\ - %{-f:-f%{-f*}} \\\ - %{!-j:%{_smp_mflags}}%{-j:-j%{-j*}} - - %gem_install(i:n:C) \ -+ export LC_CTYPE=UTF-8 \ - DESTDIR=${DESTDIR:-%{buildroot}} \\\ - %__gem_helper install \\\ - --env-shebang --rdoc --ri --force --ignore-dependencies \\\ diff --git a/rpm-5.4.10-speed_rpm.patch b/rpm-5.4.10-speed_rpm.patch deleted file mode 100644 index 9c73506..0000000 --- a/rpm-5.4.10-speed_rpm.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff -Naur rpm-5.4.10-orig/macros/mandriva rpm-5.4.10/macros/mandriva ---- rpm-5.4.10-orig/macros/mandriva 2012-07-06 21:02:38.000000000 +0400 -+++ rpm-5.4.10/macros/mandriva 2018-05-29 13:05:54.292402124 +0300 -@@ -505,3 +505,6 @@ - %{nil} - - %{load:/etc/rpm/macros.d/*.macros} -+ -+# https://forum.rosalinux.ru/viewtopic.php?f=56&t=8427&p=88972&hilit=rpm4+rpm5#p88972 -+%__nofsync nofsync -diff -Naur rpm-5.4.10-orig/macros/mandriva.in rpm-5.4.10/macros/mandriva.in ---- rpm-5.4.10-orig/macros/mandriva.in 2012-05-20 00:35:44.000000000 +0400 -+++ rpm-5.4.10/macros/mandriva.in 2018-05-29 13:05:21.900835899 +0300 -@@ -505,3 +505,6 @@ - %{nil} - - %{load:/etc/rpm/macros.d/*.macros} -+ -+# https://forum.rosalinux.ru/viewtopic.php?f=56&t=8427&p=88972&hilit=rpm4+rpm5#p88972 -+%__nofsync nofsync diff --git a/rpm-5.4.10-squirrel3.patch b/rpm-5.4.10-squirrel3.patch deleted file mode 100644 index 6850463..0000000 --- a/rpm-5.4.10-squirrel3.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff -urN rpm-5.4.10/rpmio/rpmsquirrel.c rpm-5.4.10-patched/rpmio/rpmsquirrel.c ---- rpm-5.4.10/rpmio/rpmsquirrel.c 2012-04-16 08:20:53.000000000 +1100 -+++ rpm-5.4.10-patched/rpmio/rpmsquirrel.c 2015-12-22 02:04:15.011765783 +1000 -@@ -72,6 +72,16 @@ - (void) rpmiobAppend(squirrel->iob, b, 0); - b = _free(b); - } -+ -+#if defined(SQUIRREL_VERSION_NUMBER) && SQUIRREL_VERSION_NUMBER >= 300 -+static void rpmsquirrelStderr(HSQUIRRELVM v, const SQChar *s,...) -+{ -+ va_list vl; -+ va_start(vl, s); -+ vfprintf(stderr, s, vl); -+ va_end(vl); -+} -+#endif - #endif - - /* XXX FIXME: honor 0x8000000 in flags to use global interpreter */ -@@ -103,7 +113,11 @@ - - squirrel->I = v; - sq_setforeignptr(v, squirrel); -+#if defined(SQUIRREL_VERSION_NUMBER) && SQUIRREL_VERSION_NUMBER >= 300 -+ sq_setprintfunc(v, rpmsquirrelPrint, rpmsquirrelStderr); -+#else - sq_setprintfunc(v, rpmsquirrelPrint); -+#endif - - #ifdef NOTYET - { int i; diff --git a/rpm-5.4.10-support-ignore-arch-and-os-again.patch b/rpm-5.4.10-support-ignore-arch-and-os-again.patch deleted file mode 100644 index 0708d04..0000000 --- a/rpm-5.4.10-support-ignore-arch-and-os-again.patch +++ /dev/null @@ -1,45 +0,0 @@ ---- rpm-5.4.10/lib/depends.c.ignore_arch~ 2012-07-27 21:11:47.463139875 +0200 -+++ rpm-5.4.10/lib/depends.c 2012-07-27 21:29:21.811958701 +0200 -@@ -587,11 +587,24 @@ int rpmtsAddInstallElement(rpmts ts, Hea - if (nplatpat > 1) { - const char * platform = NULL; - -- he->tag = RPMTAG_PLATFORM; -- xx = headerGet(h, he, 0); -- platform = he->p.str; -- if (!xx || platform == NULL) -- platform = rpmExpand(arch, "-unknown-", os, NULL); -+ /* -+ * If ignore arch, we just set the arch in package platform string to -+ * same as on system so that we're sure that it'll match, same goes for -+ * os as well. -+ */ -+ if (rpmExpandNumeric("%{__ignore_arch}") || rpmExpandNumeric("%{__ignore_os}")) { -+ platform = rpmExpand( -+ rpmExpandNumeric("%{__ignore_arch}") ? "%{_target_cpu}" : arch, -+ "-unknown-", -+ rpmExpandNumeric("%{__ignore_os}") ? "%{_target_os}" : os, -+ NULL); -+ } else { -+ he->tag = RPMTAG_PLATFORM; -+ xx = headerGet(h, he, 0); -+ platform = he->p.str; -+ if (!xx || platform == NULL) -+ platform = rpmExpand(arch, "-unknown-", os, NULL); -+ } - - rc = rpmPlatformScore(platform, platpat, nplatpat); - #if defined(RPM_VENDOR_MANDRIVA) ---- rpm-5.4.10/rpmpopt.in.ignore_arch~ 2012-07-27 21:29:07.687135285 +0200 -+++ rpm-5.4.10/rpmpopt.in 2012-07-27 21:29:35.399788829 +0200 -@@ -431,6 +431,10 @@ rpm alias --without --define "_without_ - - rpm alias --arch --qf '%-34{=NAME}\t%{ARCH}\n' \ - --POPTdesc=$"list package architecture" -+ -+rpm alias --ignorearch --define '__ignore_arch 1' -+rpm alias --ignoreos --define '__ignore_os 1' -+ - #============================================================================== - rpmbuild alias --dbpath --define '_dbpath !#:+' \ - --POPTdesc=$"use database in DIRECTORY" \ diff --git a/rpm-5.4.10-trigtrans.patch b/rpm-5.4.10-trigtrans.patch deleted file mode 100644 index be9bcb9..0000000 --- a/rpm-5.4.10-trigtrans.patch +++ /dev/null @@ -1,847 +0,0 @@ ---- rpm-5.4.15/build/parseReqs.c.trigtrans~ 2014-09-05 06:44:52.694095488 +0200 -+++ rpm-5.4.15/build/parseReqs.c 2014-09-05 06:44:52.724095787 +0200 -@@ -66,6 +66,22 @@ rpmRC parseRCPOT(Spec spec, Package pkg, - tagflags |= RPMSENSE_TRIGGERUN; - h = pkg->header; - break; -+ case RPMTAG_TRIGGERPRETRANSIN: -+ tagflags |= (RPMSENSE_TRIGGERTRANS | RPMSENSE_TRIGGERPREIN); -+ h = pkg->header; -+ break; -+ case RPMTAG_TRIGGERPRETRANSUN: -+ tagflags |= (RPMSENSE_TRIGGERTRANS | RPMSENSE_TRIGGERUN); -+ h = pkg->header; -+ break; -+ case RPMTAG_TRIGGERPOSTTRANSIN: -+ tagflags |= (RPMSENSE_TRIGGERTRANS | RPMSENSE_TRIGGERIN); -+ h = pkg->header; -+ break; -+ case RPMTAG_TRIGGERPOSTTRANSUN: -+ tagflags |= (RPMSENSE_TRIGGERTRANS | RPMSENSE_TRIGGERPOSTUN); -+ h = pkg->header; -+ break; - case RPMTAG_BUILDSUGGESTS: - case RPMTAG_BUILDENHANCES: - tagflags |= RPMSENSE_MISSINGOK; ---- rpm-5.4.15/build/parseScript.c.trigtrans~ 2014-09-05 06:44:52.697428855 +0200 -+++ rpm-5.4.15/build/parseScript.c 2014-09-05 06:44:52.724095787 +0200 -@@ -181,6 +181,34 @@ int parseScript(Spec spec, int parsePart - progtag = RPMTAG_TRIGGERSCRIPTPROG; - partname = "%triggerpostun"; - break; -+ case PART_TRIGGERPRETRANSIN: -+ tag = RPMTAG_TRIGGERSCRIPTS; -+ tagflags = 0; -+ reqtag = RPMTAG_TRIGGERPRETRANSIN; -+ progtag = RPMTAG_TRIGGERSCRIPTPROG; -+ partname = "%triggerpretransin"; -+ break; -+ case PART_TRIGGERPRETRANSUN: -+ tag = RPMTAG_TRIGGERSCRIPTS; -+ tagflags = 0; -+ reqtag = RPMTAG_TRIGGERPRETRANSUN; -+ progtag = RPMTAG_TRIGGERSCRIPTPROG; -+ partname = "%triggerpretransun"; -+ break; -+ case PART_TRIGGERPOSTTRANSIN: -+ tag = RPMTAG_TRIGGERSCRIPTS; -+ tagflags = 0; -+ reqtag = RPMTAG_TRIGGERPOSTTRANSIN; -+ progtag = RPMTAG_TRIGGERSCRIPTPROG; -+ partname = "%triggerposttransin"; -+ break; -+ case PART_TRIGGERPOSTTRANSUN: -+ tag = RPMTAG_TRIGGERSCRIPTS; -+ tagflags = 0; -+ reqtag = RPMTAG_TRIGGERPOSTTRANSUN; -+ progtag = RPMTAG_TRIGGERSCRIPTPROG; -+ partname = "%triggerposttransun"; -+ break; - /* support "%sanitycheck" script/section */ - case PART_SANITYCHECK: - tag = RPMTAG_SANITYCHECK; ---- rpm-5.4.15/build/parseSpec.c.trigtrans~ 2014-09-05 06:44:52.607427959 +0200 -+++ rpm-5.4.15/build/parseSpec.c 2014-09-05 06:44:52.724095787 +0200 -@@ -47,6 +47,10 @@ static struct PartRec { - { PART_TRIGGERUN, 0, "%triggerun"}, - { PART_TRIGGERIN, 0, "%triggerin"}, - { PART_TRIGGERIN, 0, "%trigger"}, -+ { PART_TRIGGERPRETRANSIN,0, "%triggerpretransin"}, -+ { PART_TRIGGERPRETRANSUN,0, "%triggerpretransun"}, -+ { PART_TRIGGERPOSTTRANSIN,0, "%triggerposttransin"}, -+ { PART_TRIGGERPOSTTRANSUN,0, "%triggerposttransun"}, - { PART_VERIFYSCRIPT, 0, "%verifyscript"}, - { PART_SANITYCHECK, 0, "%sanitycheck"}, /* support "%sanitycheck" scriptlet */ - {0, 0, NULL} -@@ -608,6 +612,10 @@ int parseSpec(rpmts ts, const char *spec - case PART_TRIGGERIN: - case PART_TRIGGERUN: - case PART_TRIGGERPOSTUN: -+ case PART_TRIGGERPRETRANSIN: -+ case PART_TRIGGERPRETRANSUN: -+ case PART_TRIGGERPOSTTRANSIN: -+ case PART_TRIGGERPOSTTRANSUN: - parsePart = parseScript(spec, parsePart); - /*@switchbreak@*/ break; - ---- rpm-5.4.15/build/rpmbuild.h.trigtrans~ 2010-02-10 19:36:17.000000000 +0100 -+++ rpm-5.4.15/build/rpmbuild.h 2014-09-05 06:44:52.724095787 +0200 -@@ -76,10 +76,14 @@ typedef enum rpmParseState_e { - PART_BUILDARCHITECTURES= 29+PART_BASE,/*!< */ - PART_TRIGGERPOSTUN = 30+PART_BASE, /*!< */ - PART_TRIGGERPREIN = 31+PART_BASE, /*!< */ -+ PART_TRIGGERPRETRANSIN= 32+PART_BASE, /*!< */ -+ PART_TRIGGERPRETRANSUN= 33+PART_BASE, /*!< */ -+ PART_TRIGGERPOSTTRANSIN= 34+PART_BASE, /*!< */ -+ PART_TRIGGERPOSTTRANSUN= 35+PART_BASE, /*!< */ - /* support "%sanitycheck" script */ -- PART_SANITYCHECK = 32+PART_BASE, /*!< */ -- PART_ARBITRARY = 33+PART_BASE, /*!< */ -- PART_LAST = 34+PART_BASE /*!< */ -+ PART_SANITYCHECK = 36+PART_BASE, /*!< */ -+ PART_ARBITRARY = 37+PART_BASE, /*!< */ -+ PART_LAST = 38+PART_BASE /*!< */ - } rpmParseState; - - /** \ingroup rpmbuild ---- rpm-5.4.15/lib/psm.c.trigtrans~ 2014-09-05 06:44:52.704095588 +0200 -+++ rpm-5.4.15/lib/psm.c 2014-09-05 06:45:30.931142793 +0200 -@@ -59,6 +59,7 @@ - (*((unsigned *)&(_psm)->flags) &= ~(RPMPSM_FLAGS_##_FLAG)) - - #define _RPMEVR_INTERNAL -+#define _RPMDS_INTERNAL - #include "rpmds.h" - - #define _RPMTE_INTERNAL -@@ -404,6 +405,10 @@ static /*@observer@*/ const char * tag2s - case RPMTAG_POSTUN: return "%postun"; - case RPMTAG_POSTTRANS: return "%posttrans"; - case RPMTAG_TRIGGERPOSTUN: return "%triggerpostun"; -+ case RPMTAG_TRIGGERPRETRANSIN: return "%triggerpretransin"; -+ case RPMTAG_TRIGGERPRETRANSUN: return "%triggerpretransun"; -+ case RPMTAG_TRIGGERPOSTTRANSIN: return "%triggerposttransin"; -+ case RPMTAG_TRIGGERPOSTTRANSUN: return "%triggerposttransun"; - case RPMTAG_VERIFYSCRIPT: return "%verify"; - case RPMTAG_SANITYCHECK: return "%sanitycheck"; - case RPMTAG_BUILDPREP: return "%prep"; -@@ -434,6 +439,10 @@ static rpmScriptID tag2slx(rpmTag tag) - case RPMTAG_POSTUN: return RPMSCRIPT_POSTUN; - case RPMTAG_POSTTRANS: return RPMSCRIPT_POSTTRANS; - case RPMTAG_TRIGGERPOSTUN: return RPMSCRIPT_TRIGGERPOSTUN; -+ case RPMTAG_TRIGGERPRETRANSIN: return RPMSCRIPT_TRIGGERPRETRANSIN; -+ case RPMTAG_TRIGGERPRETRANSUN: return RPMSCRIPT_TRIGGERPRETRANSUN; -+ case RPMTAG_TRIGGERPOSTTRANSIN: return RPMSCRIPT_TRIGGERPOSTTRANSIN; -+ case RPMTAG_TRIGGERPOSTTRANSUN: return RPMSCRIPT_TRIGGERPOSTTRANSUN; - case RPMTAG_VERIFYSCRIPT: return RPMSCRIPT_VERIFY; - case RPMTAG_SANITYCHECK: return RPMSCRIPT_SANITYCHECK; - case RPMTAG_BUILDPREP: return RPMSCRIPT_PREP; -@@ -1279,7 +1288,6 @@ static rpmRC handleOneTrigger(const rpmp - rpmds Fds = NULL; - rpmds Dds = NULL; - rpmds Pds = NULL; -- const char * sourceName; - const char * triggerName; - rpmRC rc = RPMRC_OK; - int arg1; -@@ -1287,10 +1295,6 @@ static rpmRC handleOneTrigger(const rpmp - int i; - - he->tag = RPMTAG_NAME; -- xx = headerGet(sourceH, he, 0); -- sourceName = he->p.str; -- -- he->tag = RPMTAG_NAME; - xx = headerGet(triggeredH, he, 0); - triggerName = he->p.str; - -@@ -1428,7 +1432,6 @@ exit: - She->p.ptr = _free(She->p.ptr); - Phe->p.ptr = _free(Phe->p.ptr); - triggerName = _free(triggerName); -- sourceName = _free(sourceName); - - return rc; - } -@@ -1749,6 +1752,348 @@ exit: - return rc; - } - -+/** -+ * Return transaction element's file info. -+ * @todo Take a rpmfi refcount here. -+ * @param tsi transaction element iterator -+ * @return transaction element file info -+ */ -+static /*@null@*/ -+rpmfi rpmtsiFi(const rpmtsi tsi) -+ /*@*/ -+{ -+ rpmfi fi = NULL; -+ -+ if (tsi != NULL && tsi->ocsave != -1) { -+ /*@-type -abstract@*/ /* FIX: rpmte not opaque */ -+ rpmte te = rpmtsElement(tsi->ts, tsi->ocsave); -+ /*@-assignexpose@*/ -+ if (te != NULL && (fi = te->fi) != NULL) -+ fi->te = te; -+ /*@=assignexpose@*/ -+ /*@=type =abstract@*/ -+ } -+ /*@-compdef -refcounttrans -usereleased @*/ -+ return fi; -+ /*@=compdef =refcounttrans =usereleased @*/ -+} -+/** -+ * Execute triggers. -+ * @param psm package state machine data -+ * @param sourceH -+ * @param triggeredH -+ * @param arg2 -+ * @return RPMRC_OK on success -+ */ -+static rpmRC handleOneScriptTrigger(const rpmpsm psm, -+ rpmds sourceDs, Header triggeredH, int arg2) -+ /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState@*/ -+ /*@modifies psm, sourceH, triggeredH, -+ rpmGlobalMacroContext, fileSystem, internalState @*/ -+{ -+ static int scareMem = 0; -+ HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he)); -+ HE_t Ihe = memset(alloca(sizeof(*Ihe)), 0, sizeof(*Ihe)); -+ HE_t She = memset(alloca(sizeof(*She)), 0, sizeof(*She)); -+ HE_t Phe = memset(alloca(sizeof(*Phe)), 0, sizeof(*Phe)); -+ miRE mire = NULL; -+ const rpmts ts = psm->ts; -+ rpmds Tds = NULL; -+ const char * triggerName; -+ rpmRC rc = RPMRC_OK; -+ int arg1; -+ int xx; -+ int i; -+ -+ he->tag = RPMTAG_NAME; -+ xx = headerGet(triggeredH, he, 0); -+ triggerName = he->p.str; -+ -+ arg1 = rpmdbCountPackages(rpmtsGetRdb(ts), triggerName); -+ if (arg1 < 0) { -+ /* XXX W2DO? fails as "execution of script failed" */ -+ rc = RPMRC_FAIL; -+ goto exit; -+ } -+ arg1 += psm->countCorrection; -+ -+ Tds = rpmdsNew(triggeredH, RPMTAG_TRIGGERNAME, scareMem); -+ if (Tds == NULL) -+ goto exit; -+ xx = rpmdsSetNoPromote(Tds, 1); -+ -+ Ihe->tag = RPMTAG_TRIGGERINDEX; -+ if (!headerGet(triggeredH, Ihe, 0)) -+ goto exit; -+ -+ She->tag = RPMTAG_TRIGGERSCRIPTS; -+ if (!headerGet(triggeredH, She, 0)) -+ goto exit; -+ -+ Phe->tag = RPMTAG_TRIGGERSCRIPTPROG; -+ if (!headerGet(triggeredH, Phe, 0)) -+ goto exit; -+ -+ if ((Tds = rpmdsInit(Tds)) != NULL) -+ while ((i = rpmdsNext(Tds)) >= 0) { -+ rpmuint32_t Flags = rpmdsFlags(Tds); -+ char * depName; -+ ARGV_t matches = NULL; -+ int bingo; -+ -+ /* Skip triggers that are not in this context. */ -+ if (!((Flags & psm->sense) & RPMSENSE_TRIGGERTRANS)) -+ continue; -+ -+ bingo = 0; /* no trigger to fire. */ -+ depName = (char *) rpmdsN(Tds); -+ if (rpmdsTagN(sourceDs) == RPMTAG_BASENAMES || rpmdsTagN(sourceDs) == RPMTAG_DIRNAMES) { -+ if (mire == NULL) -+ mire = mireNew(depName[0] == '^' ? RPMMIRE_PCRE : RPMMIRE_GLOB, 0); -+ -+ xx = mireRegcomp(mire, depName); -+ for(rpmdsSetIx(sourceDs, 0); -+ rpmdsIx(sourceDs) < rpmdsCount(sourceDs); -+ rpmdsSetIx(sourceDs, rpmdsIx(sourceDs)+1)) { -+ char * N = (char *) sourceDs->N[sourceDs->i]; -+ xx = mireRegexec(mire, N, 0); -+ if (xx < 0) -+ /*@innercontinue@*/ continue; -+ bingo = 1; -+ if (_psm_debug) -+ rpmlog(RPMLOG_DEBUG, "--> %s:%d bingo! N: %s\n", __FUNCTION__, __LINE__, N); -+ -+ argvAdd(&matches, N); -+ } -+ xx = mireClean(mire); -+ /* If trigger not fired yet, try provided dependency match. */ -+ } else { -+ bingo = rpmdsMatch(Tds, sourceDs); -+ bingo = rpmdsNegateRC(Tds, bingo); -+ } -+ -+ if (!bingo) -+ continue; -+ -+ /* Coerce strings into header argv return. */ -+ { int index = Ihe->p.ui32p[i]; -+ const char * s = Phe->p.argv[index]; -+ char * t; -+ -+ he->tag = Phe->tag; -+ he->t = RPM_STRING_ARRAY_TYPE; -+ he->c = 1; -+ he->p.argv = xmalloc(sizeof(Phe->p.argv[0]) + strlen(s) + 1); -+ he->p.argv[0] = t = (char *) &he->p.argv[1]; -+ t = stpcpy(t, s); -+ *t = '\0'; -+ -+ rc |= runScript(psm, triggeredH, "%trigger", he, -+ She->p.argv[index], arg1, arg2, matches); -+ if (_psm_debug) -+ rpmlog(RPMLOG_DEBUG, "--> %s:%d runScript: %s arg1: %d arg2: %d matches: %d rc: %d\n", __FUNCTION__, __LINE__, She->p.argv[index], arg1, arg2, matches, rc); -+ -+ he->p.ptr = _free(he->p.ptr); -+ } -+ argvFree(matches); -+ } -+ -+ mire = mireFree(mire); -+ (void)rpmdsFree(Tds); -+ Tds = NULL; -+ -+exit: -+ Ihe->p.ptr = _free(Ihe->p.ptr); -+ She->p.ptr = _free(She->p.ptr); -+ Phe->p.ptr = _free(Phe->p.ptr); -+ triggerName = _free(triggerName); -+ -+ return rc; -+} -+ -+/** -+ * Run a dependency set loop against rpmdb triggers. -+ * @param psm package state machine data -+ * @param tagno dependency set to run against rpmdb -+ * @param arg2 scriptlet arg2 -+ * @return RPMRC_OK on success -+ */ -+static rpmRC runScriptTriggersLoop(rpmpsm psm, rpmTag tagno, int arg2) -+ /*@globals rpmGlobalMacroContext, h_errno, -+ fileSystem, internalState @*/ -+ /*@modifies psm, rpmGlobalMacroContext, -+ fileSystem, internalState @*/ -+{ -+ static int scareMem = 0; -+ const rpmts ts = psm->ts; -+ rpmfi fi = NULL; -+ rpmds sourceDs = memset(alloca(sizeof(*sourceDs)), 0, sizeof(*sourceDs)); -+ char * depName = NULL; -+ char * evr; -+ char * ptr = NULL; -+ ARGI_t instances = NULL; -+ rpmmi mi; -+ Header triggeredH; -+ rpmRC rc = RPMRC_OK; -+ int xx; -+ rpmtsi pi; -+ rpmte p = NULL; -+ int n; -+ -+ if (tagno == RPMTAG_BASENAMES || tagno == RPMTAG_DIRNAMES) -+ n = (psm->goal == PSM_PKGINSTALL) ? ts->numAddedFiles : ts->numErasedFiles; -+ else -+ n = ts->orderCount; -+ -+ evr = memset(alloca(n * 64 * sizeof(*evr)), 0, n * 64 * sizeof(*evr)); -+ ptr = evr; -+ sourceDs->tagN = tagno; -+ sourceDs->Type = tagName(tagno); -+ sourceDs->Count = n; -+ sourceDs->i = -1; -+ sourceDs->N = memset(alloca(n * sizeof(*sourceDs->N)), 0, n * sizeof(*sourceDs->N)); -+ sourceDs->EVR = memset(alloca(n * sizeof(*sourceDs->EVR)), 0, n * sizeof(*sourceDs->EVR)); -+ sourceDs->Flags = (evrFlags *) memset(alloca(n * sizeof(*sourceDs->Flags)), 0, n * sizeof(*sourceDs->Flags)); -+ -+ pi = rpmtsiInit(ts); -+ while ((p = rpmtsiNext(pi, psm->goal == PSM_PKGINSTALL ? TR_ADDED : TR_REMOVED)) != NULL) { -+ if (p->isSource) continue; -+ if ((fi = rpmtsiFi(pi)) == NULL) -+ continue; -+ if (tagno == RPMTAG_BASENAMES || tagno == RPMTAG_DIRNAMES) { -+ fi = rpmfiInit(fi, 0); -+ if (fi != NULL) { -+ while (rpmfiNext(fi) >= 0) { -+ sourceDs->N[++sourceDs->i] = (tagno == RPMTAG_DIRNAMES ? rpmfiDN(fi) : rpmfiFN(fi)); -+ } -+ } -+ } else { -+ char *ptr = evr; -+ if (rpmteE(p)) ptr = stpcpy(stpcpy(ptr, rpmteE(p)), ":"); -+ ptr = stpcpy(stpcpy(stpcpy(ptr, rpmteV(p)), "-"), rpmteR(p)); -+ if (rpmteD(p)) ptr = stpcpy(stpcpy(ptr, ":"), rpmteD(p)); -+ sourceDs->N[++sourceDs->i] = rpmteN(p); -+ sourceDs->EVR[sourceDs->i] = evr++; -+ sourceDs->Flags[sourceDs->i] = RPMSENSE_EQUAL; -+ } -+ } -+ -+ xx = rpmteClose(p, ts, 0); -+ pi = rpmtsiFree(pi); -+ -+ if (sourceDs->i == -1) -+ return rc; -+ -+ /* Fire elements against rpmdb trigger strings. */ -+ for(sourceDs->i = 0; sourceDs->i < (int)sourceDs->Count; sourceDs->i++) { -+ const char * depName = sourceDs->N[sourceDs->i]; -+ unsigned prev, instance; -+ unsigned nvals; -+ ARGint_t vals; -+ -+ -+ if (!depName || !*depName) -+ return rc; -+ -+ if (_psm_debug) -+ rpmlog(RPMLOG_DEBUG, "--> %s:%d depName: %s tagno: %d ix: %d\n", __FUNCTION__, __LINE__, depName, tagno, sourceDs->i); -+ -+ if (depName[0] == '/' && psm->Tmires != NULL) { -+ miRE mire; -+ int j; -+ -+ /* XXX mireApply doesn't tell which pattern matched. */ -+ for (j = 0, mire = psm->Tmires; j < psm->nTmires; j++, mire++) { -+ const char * pattern = psm->Tpats[j]; -+ size_t npattern = strlen(pattern); -+ if (tagno == RPMTAG_DIRNAMES && !PATT_ISDIR(pattern, npattern)) -+ continue; -+ if (mireRegexec(mire, depName, 0) < 0) -+ /*@innercontinue@*/ continue; -+ -+ /* Reset the primary retrieval key to the pattern. */ -+ depName = pattern; -+ /*@innerbreak@*/ break; -+ } -+ } -+ -+ /* Retrieve triggered header(s) by key. */ -+ mi = rpmtsInitIterator(ts, RPMTAG_TRIGGERNAME, depName, 0); -+ nvals = argiCount(instances); -+ vals = argiData(instances); -+ if (nvals > 0) -+ xx = rpmmiPrune(mi, (uint32_t *)vals, nvals, 1); -+ -+ prev = 0; -+ while((triggeredH = rpmmiNext(mi)) != NULL) { -+ instance = rpmmiInstance(mi); -+ if (prev == instance) -+ /*@innercontinue@*/ continue; -+ rc |= handleOneScriptTrigger(psm, sourceDs, triggeredH, arg2); -+ prev = instance; -+ xx = argiAdd(&instances, -1, instance); -+ xx = argiSort(instances, NULL); -+ } -+ mi = rpmmiFree(mi); -+ } -+ -+ instances = argiFree(instances); -+ -+ return rc; -+} -+ -+/** -+ * Run trigger scripts in the database that are fired by this header. -+ * @param psm package state machine data -+ * @return 0 on success -+ */ -+static rpmRC runScriptTriggers(rpmpsm psm) -+ /*@globals rpmGlobalMacroContext, h_errno, -+ fileSystem, internalState @*/ -+ /*@modifies psm, rpmGlobalMacroContext, -+ fileSystem, internalState @*/ -+{ -+ int numPackage = 0; -+ int xx; -+ rpmTag tagno; -+ rpmRC rc = RPMRC_OK; -+ -+ /* Select RPMTAG_NAME or RPMTAG_PROVIDENAME index for triggering. */ -+ if (_trigger_tag == 0) { -+ const char * t = rpmExpand("%{?_trigger_tag}", NULL); -+/*@-mods@*/ -+ _trigger_tag = (!strcmp(t, "name") ? RPMTAG_NAME : RPMTAG_PROVIDENAME); -+/*@=mods@*/ -+ t = _free(t); -+ } -+ tagno = _trigger_tag; -+ -+ /* XXX Save/restore count correction. */ -+ { int countCorrection = psm->countCorrection; -+ -+ psm->countCorrection = 0; -+ -+ /* Try name/providename triggers first. */ -+ rc |= runScriptTriggersLoop(psm, tagno, numPackage); -+ /* If not limited to NEVRA triggers, also try file/dir path triggers. */ -+ if (tagno != RPMTAG_NAME) { -+ /* Retrieve trigger patterns from rpmdb. */ -+ xx = rpmdbTriggerGlobs(psm); -+ -+ rc |= runScriptTriggersLoop(psm, RPMTAG_BASENAMES, numPackage); -+ rc |= runScriptTriggersLoop(psm, RPMTAG_DIRNAMES, numPackage); -+ -+ psm->Tpats = argvFree(psm->Tpats); -+ psm->Tmires = mireFreeAll(psm->Tmires, psm->nTmires); -+ psm->nTmires = 0; -+ } -+ -+ psm->countCorrection = countCorrection; -+ } -+ -+ return rc; -+} -+ - /*@observer@*/ - static const char * pkgStageString(pkgStage a) - /*@*/ -@@ -1776,6 +2121,8 @@ static const char * pkgStageString(pkgSt - case PSM_CHROOT_IN: return "chrootin"; - case PSM_CHROOT_OUT: return "chrootout"; - case PSM_SCRIPT: return "script"; -+ case PSM_PRETRANS: return "pretrans"; -+ case PSM_POSTTRANS: return "posttrans"; - case PSM_TRIGGERS: return "triggers"; - case PSM_IMMED_TRIGGERS: return "immedtriggers"; - -@@ -1816,8 +2163,20 @@ assert(psm != NULL); - case RPMTAG_VERIFYSCRIPT: psm->stepName = "verify"; break; - case RPMTAG_PRETRANS: psm->stepName = "pretrans"; break; - case RPMTAG_POSTTRANS: psm->stepName = "posttrans"; break; -+ case RPMTAG_TRIGGERPRETRANSIN: psm->stepName = "triggerpretransin"; break; -+ case RPMTAG_TRIGGERPRETRANSUN: psm->stepName = "triggerpretransun"; break; -+ case RPMTAG_TRIGGERPOSTTRANSIN: psm->stepName = "triggerposttransin"; break; -+ case RPMTAG_TRIGGERPOSTTRANSUN: psm->stepName = "triggerposttransun"; break; -+ } -+ switch (scriptTag) { -+ default: psm->stage = PSM_SCRIPT; break; -+ case RPMTAG_TRIGGERPRETRANSIN: -+ case RPMTAG_TRIGGERPRETRANSUN: psm->stage = PSM_PRETRANS; break; -+ case RPMTAG_TRIGGERPOSTTRANSIN: -+ case RPMTAG_TRIGGERPOSTTRANSUN: psm->stage = PSM_POSTTRANS; break; - } -- return rpmpsmStage(psm, PSM_SCRIPT); -+ -+ return rpmpsmStage(psm, psm->stage); - } - - /*@-mustmod@*/ -@@ -2254,7 +2613,7 @@ rpmRC rpmpsmStage(rpmpsm psm, pkgStage s - - /* XXX hackery to assert(!scareMem) in rpmfiNew. */ - /*@-castexpose@*/ --if (fi->h == NULL && fi->te && ((rpmte)fi->te)->h != NULL) fi->h = headerLink(((rpmte)fi->te)->h); -+if (fi != NULL && fi->h == NULL && fi->te && ((rpmte)fi->te)->h != NULL) fi->h = headerLink(((rpmte)fi->te)->h); - /*@=castexpose@*/ - - switch (stage) { -@@ -3041,6 +3400,34 @@ assert(psm->te != NULL); - if (rc) - xx = rpmtxnAbort(rpmtsGetRdb(ts)->db_txn); - else -+ xx = rpmtxnCommit(rpmtsGetRdb(ts)->db_txn); -+ rpmtsGetRdb(ts)->db_txn = NULL; -+ } break; -+ case PSM_PRETRANS: -+ { rpmtxn _parent = (psm && psm->te ? psm->te->txn : NULL); -+ xx = rpmtxnBegin(rpmtsGetRdb(ts), _parent, NULL); -+ psm->scriptTag = RPMTAG_PRETRANS; -+ psm->progTag = RPMTAG_PRETRANSPROG; -+ psm->sense = psm->goal == PSM_PKGINSTALL ? (RPMSENSE_TRIGGERTRANS|RPMSENSE_TRIGGERPREIN) : (RPMSENSE_TRIGGERTRANS|RPMSENSE_TRIGGERUN); -+ psm->countCorrection = 0; -+ rc = runScriptTriggers(psm); -+ if (rc) -+ xx = rpmtxnAbort(rpmtsGetRdb(ts)->db_txn); -+ else -+ xx = rpmtxnCommit(rpmtsGetRdb(ts)->db_txn); -+ rpmtsGetRdb(ts)->db_txn = NULL; -+ } break; -+ case PSM_POSTTRANS: -+ { rpmtxn _parent = (psm && psm->te ? psm->te->txn : NULL); -+ xx = rpmtxnBegin(rpmtsGetRdb(ts), _parent, NULL); -+ psm->scriptTag = RPMTAG_POSTTRANS; -+ psm->progTag = RPMTAG_POSTTRANSPROG; -+ psm->sense = psm->goal == PSM_PKGINSTALL ? (RPMSENSE_TRIGGERTRANS|RPMSENSE_TRIGGERIN) : (RPMSENSE_TRIGGERTRANS|RPMSENSE_TRIGGERPOSTUN); -+ psm->countCorrection = 0; -+ rc = runScriptTriggers(psm); -+ if (rc) -+ xx = rpmtxnAbort(rpmtsGetRdb(ts)->db_txn); -+ else - xx = rpmtxnCommit(rpmtsGetRdb(ts)->db_txn); - rpmtsGetRdb(ts)->db_txn = NULL; - } break; ---- rpm-5.4.15/lib/psm.h.trigtrans~ 2014-07-20 00:56:20.000000000 +0200 -+++ rpm-5.4.15/lib/psm.h 2014-09-05 06:44:52.724095787 +0200 -@@ -52,9 +52,11 @@ typedef enum pkgStage_e { - PSM_CHROOT_IN = 51, - PSM_CHROOT_OUT = 52, - PSM_SCRIPT = 53, -- PSM_TRIGGERS = 54, -- PSM_IMMED_TRIGGERS = 55, -- PSM_RPMIO_FLAGS = 56, -+ PSM_PRETRANS = 54, -+ PSM_POSTTRANS = 55, -+ PSM_TRIGGERS = 56, -+ PSM_IMMED_TRIGGERS = 57, -+ PSM_RPMIO_FLAGS = 58, - - PSM_RPMDB_LOAD = 97, - PSM_RPMDB_ADD = 98, ---- rpm-5.4.15/lib/transaction.c.trigtrans~ 2014-09-05 06:44:52.620761425 +0200 -+++ rpm-5.4.15/lib/transaction.c 2014-09-05 06:44:52.727429154 +0200 -@@ -1349,6 +1349,41 @@ assert(0); - return 0; - } - -+/* -+ * Run pre/post transaction script. -+ * param ts transaction set -+ * param stag RPMTAG_TRIGGERPRETRANS or RPMTAG_TRIGGERPOSTTRANS -+ * return 0 on success -+ */ -+static int rpmtsRunScriptTriggers(rpmts ts, rpmTag stag) -+ /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/ -+ /*@modifies ts, rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/ -+{ -+ rpmtsi pi; -+ rpmte p; -+ rpmfi fi; -+ rpmpsm psm; -+ int xx; -+ rpmTag ptag; -+ -+FPSDEBUG(0, (stderr, "--> %s(%p,%s(%u))\n", __FUNCTION__, ts, tagName(stag), (unsigned)stag)); -+ switch (stag) { -+ default: -+assert(0); -+ /*@notreached@*/ break; -+ case RPMTAG_TRIGGERPRETRANSIN: -+ case RPMTAG_TRIGGERPRETRANSUN: ptag = RPMTAG_PRETRANSPROG; break; -+ case RPMTAG_TRIGGERPOSTTRANSIN: -+ case RPMTAG_TRIGGERPOSTTRANSUN: ptag = RPMTAG_POSTTRANSPROG; break; -+ } -+ -+ psm = rpmpsmNew(ts, NULL, NULL); -+ psm->goal = (stag == RPMTAG_TRIGGERPRETRANSIN || stag == RPMTAG_TRIGGERPOSTTRANSIN) ? PSM_PKGINSTALL : PSM_PKGERASE; -+ xx = rpmpsmScriptStage(psm, stag, ptag); -+ psm = rpmpsmFree(psm, __FUNCTION__); -+ -+ return 0; -+} - /* Add fingerprint for each file not skipped. */ - static void rpmtsAddFingerprints(rpmts ts, uint32_t fileCount, hashTable ht, - fingerPrintCache fpc) -@@ -2264,6 +2299,13 @@ fprintf(stderr, "--> %s(%p,%p,0x%x) tsfl - { - rpmlog(RPMLOG_DEBUG, D_("running pre-transaction scripts\n")); - xx = rpmtsRunScript(ts, RPMTAG_PRETRANS); -+ -+ /* Run *after* pre-transaction scripts so that they may perform -+ * any changes affecting pre-transaction triggers first if necessary. -+ */ -+ rpmlog(RPMLOG_DEBUG, D_("running pre-transaction triggers\n")); -+ xx = rpmtsRunScriptTriggers(ts, RPMTAG_TRIGGERPRETRANSIN); -+ xx = rpmtsRunScriptTriggers(ts, RPMTAG_TRIGGERPRETRANSUN); - } - - /* =============================================== -@@ -2321,6 +2363,10 @@ fprintf(stderr, "--> %s(%p,%p,0x%x) tsfl - - rpmlog(RPMLOG_DEBUG, D_("running post-transaction scripts\n")); - xx = rpmtsRunScript(ts, RPMTAG_POSTTRANS); -+ -+ rpmlog(RPMLOG_DEBUG, D_("running post-transaction triggers\n")); -+ xx = rpmtsRunScriptTriggers(ts, RPMTAG_TRIGGERPOSTTRANSIN); -+ xx = rpmtsRunScriptTriggers(ts, RPMTAG_TRIGGERPOSTTRANSUN); - } - - exit: ---- rpm-5.4.15/rpmconstant/rpmconstanttbl.c.trigtrans~ 2014-08-17 14:28:12.000000000 +0200 -+++ rpm-5.4.15/rpmconstant/rpmconstanttbl.c 2014-09-05 06:44:52.727429154 +0200 -@@ -670,6 +670,8 @@ static const struct rpmconstant_s rpmPar - { "PART_BUILDARCHITECTURES", PART_BUILDARCHITECTURES }, /*!< */ - { "PART_TRIGGERPOSTUN", PART_TRIGGERPOSTUN }, /*!< */ - { "PART_TRIGGERPREIN", PART_TRIGGERPREIN }, /*!< */ -+ { "PART_TRIGGERPOSTTRANSIN", PART_TRIGGERPOSTTRANSIN }, /*!< */ -+ { "PART_TRIGGERPOSTTRANSUN", PART_TRIGGERPOSTTRANSUN }, /*!< */ - { "PART_SANITYCHECK", PART_SANITYCHECK }, /*!< */ - { "PART_ARBITRARY", PART_ARBITRARY }, /*!< */ - { "PART_LAST", PART_LAST }, /*!< */ -@@ -686,7 +688,7 @@ const struct rpmconstant_s * rpmParseSta - static const struct rpmconstant_s rpmsenseflagsctbl[] = { - #ifdef H_RPMEVR - { "RPMSENSE_ANY", RPMSENSE_ANY }, -- { "RPMSENSE_SERIAL", RPMSENSE_SERIAL }, -+ { "RPMSENSE_TRIGGERTRANS", RPMSENSE_TRIGGERTRANS }, - { "RPMSENSE_LESS", RPMSENSE_LESS }, - { "RPMSENSE_GREATER", RPMSENSE_GREATER }, - { "RPMSENSE_EQUAL", RPMSENSE_EQUAL }, -@@ -1093,6 +1095,10 @@ static const struct rpmconstant_s rpmTag - { "RPMTAG_OBSOLETEYAMLENTRY", RPMTAG_OBSOLETEYAMLENTRY }, /* s[] */ - { "RPMTAG_PROVIDEYAMLENTRY", RPMTAG_PROVIDEYAMLENTRY }, /* s[] */ - { "RPMTAG_REQUIREYAMLENTRY", RPMTAG_REQUIREYAMLENTRY }, /* s[] */ -+ { "RPMTAG_TRIGGERPRETRANSIN", RPMTAG_TRIGGERPRETRANSIN }, /* internal */ -+ { "RPMTAG_TRIGGERPRETRANSUN", RPMTAG_TRIGGERPRETRANSUN }, /* internal */ -+ { "RPMTAG_TRIGGERPOSTTRANSIN", RPMTAG_TRIGGERPOSTTRANSIN }, /* internal */ -+ { "RPMTAG_TRIGGERPOSTTRANSUN", RPMTAG_TRIGGERPOSTTRANSUN }, /* internal */ - { "RPMTAG_FILEDIGESTALGO", RPMTAG_FILEDIGESTALGO }, /* i file checksum algorithm */ - { "RPMTAG_BUGURL", RPMTAG_BUGURL }, /* s */ - { "RPMTAG_FIRSTFREE_TAG", RPMTAG_FIRSTFREE_TAG }, /*!< internal */ -@@ -1173,6 +1179,10 @@ static const struct rpmconstant_s rpmScr - { "RPMSCRIPT_PREUN", RPMSCRIPT_PREUN }, /*!< %preun scriptlet */ - { "RPMSCRIPT_POSTUN", RPMSCRIPT_POSTUN }, /*!< %postun scriptlet */ - { "RPMSCRIPT_POSTTRANS", RPMSCRIPT_POSTTRANS }, /*!< %posttrans scriptlet */ -+ { "RPMSCRIPT_TRIGGERPRETRANSIN", RPMSCRIPT_TRIGGERPRETRANSIN }, /*!< %triggerpretransin scriptlet */ -+ { "RPMSCRIPT_TRIGGERPRETRANSUN", RPMSCRIPT_TRIGGERPRETRANSUN }, /*!< %triggerpretransun scriptlet */ -+ { "RPMSCRIPT_TRIGGERPOSTTRANSIN", RPMSCRIPT_TRIGGERPOSTTRANSIN }, /*!< %triggerposttransin scriptlet */ -+ { "RPMSCRIPT_TRIGGERPOSTTRANSUN", RPMSCRIPT_TRIGGERPOSTTRANSUN }, /*!< %triggerposttransun scriptlet */ - { "RPMSCRIPT_VERIFY", RPMSCRIPT_VERIFY }, /*!< %verify scriptlet */ - { "RPMSCRIPT_PREP", RPMSCRIPT_PREP }, /*!< %prep build scriptlet */ - { "RPMSCRIPT_BUILD", RPMSCRIPT_BUILD }, /*!< %build build scriptlet */ ---- rpm-5.4.15/rpmdb/hdrfmt.c.trigtrans~ 2014-09-05 06:44:52.690762122 +0200 -+++ rpm-5.4.15/rpmdb/hdrfmt.c 2014-09-05 06:44:52.727429154 +0200 -@@ -663,16 +663,29 @@ assert(ix == 0); - val = xstrdup(_("(invalid type)")); - else { - rpmuint64_t anint = he->p.ui64p[ix]; -- if (anint & RPMSENSE_TRIGGERPREIN) -- val = xstrdup("prein"); -- else if (anint & RPMSENSE_TRIGGERIN) -- val = xstrdup("in"); -- else if (anint & RPMSENSE_TRIGGERUN) -- val = xstrdup("un"); -- else if (anint & RPMSENSE_TRIGGERPOSTUN) -- val = xstrdup("postun"); -- else -- val = xstrdup(""); -+ if (anint & RPMSENSE_TRIGGERTRANS) { -+ if (anint & RPMSENSE_TRIGGERPREIN) -+ val = xstrdup("pretransin"); -+ else if (anint & RPMSENSE_TRIGGERIN) -+ val = xstrdup("posttransin"); -+ else if (anint & RPMSENSE_TRIGGERUN) -+ val = xstrdup("pretransun"); -+ else if (anint & RPMSENSE_TRIGGERPOSTUN) -+ val = xstrdup("posttransun"); -+ else /* shouldn't be reached... */ -+ val = xstrdup(""); -+ } else { -+ if (anint & RPMSENSE_TRIGGERPREIN) -+ val = xstrdup("prein"); -+ else if (anint & RPMSENSE_TRIGGERIN) -+ val = xstrdup("in"); -+ else if (anint & RPMSENSE_TRIGGERUN) -+ val = xstrdup("un"); -+ else if (anint & RPMSENSE_TRIGGERPOSTUN) -+ val = xstrdup("postun"); -+ else -+ val = xstrdup(""); -+ } - } - return val; - } -@@ -2114,16 +2127,29 @@ static int triggertypeTag(Header h, HE_t - } - - /* XXX FIXME: there's memory leaks here. */ -- if (flags.ui32p[j] & RPMSENSE_TRIGGERPREIN) -- he->p.argv[i] = xstrdup("prein"); -- else if (flags.ui32p[j] & RPMSENSE_TRIGGERIN) -- he->p.argv[i] = xstrdup("in"); -- else if (flags.ui32p[j] & RPMSENSE_TRIGGERUN) -- he->p.argv[i] = xstrdup("un"); -- else if (flags.ui32p[j] & RPMSENSE_TRIGGERPOSTUN) -- he->p.argv[i] = xstrdup("postun"); -- else -- he->p.argv[i] = xstrdup(""); -+ if (flags.ui32p[j] & RPMSENSE_TRIGGERTRANS) { -+ if (flags.ui32p[j] & RPMSENSE_TRIGGERPREIN) -+ he->p.argv[i] = xstrdup("pretransin"); -+ else if (flags.ui32p[j] & RPMSENSE_TRIGGERIN) -+ he->p.argv[i] = xstrdup("posttransin"); -+ else if (flags.ui32p[j] & RPMSENSE_TRIGGERUN) -+ he->p.argv[i] = xstrdup("pretransun"); -+ else if (flags.ui32p[j] & RPMSENSE_TRIGGERPOSTUN) -+ he->p.argv[i] = xstrdup("posttransun"); -+ else /* shouldn't be reached... */ -+ he->p.argv[i] = xstrdup(""); -+ } else { -+ if (flags.ui32p[j] & RPMSENSE_TRIGGERPREIN) -+ he->p.argv[i] = xstrdup("prein"); -+ else if (flags.ui32p[j] & RPMSENSE_TRIGGERIN) -+ he->p.argv[i] = xstrdup("in"); -+ else if (flags.ui32p[j] & RPMSENSE_TRIGGERUN) -+ he->p.argv[i] = xstrdup("un"); -+ else if (flags.ui32p[j] & RPMSENSE_TRIGGERPOSTUN) -+ he->p.argv[i] = xstrdup("postun"); -+ else -+ he->p.argv[i] = xstrdup(""); -+ } - /*@innerbreak@*/ break; - } - } ---- rpm-5.4.15/rpmdb/rpmevr.h.trigtrans~ 2014-07-20 01:15:45.000000000 +0200 -+++ rpm-5.4.15/rpmdb/rpmevr.h 2014-09-05 06:44:52.727429154 +0200 -@@ -27,7 +27,7 @@ typedef enum evrFlags_e { - #if defined(_RPMEVR_INTERNAL) - RPMSENSE_ANY = 0, - /*@-enummemuse@*/ -- RPMSENSE_SERIAL = (1 << 0), /*!< (obsolete). */ -+ RPMSENSE_TRIGGERTRANS = (1 << 0), /*!< modifies %triggerfoo to %triggerfootrans. */ - /*@=enummemuse@*/ - #endif - RPMSENSE_LESS = (1 << 1), -@@ -96,7 +96,7 @@ struct EVR_s { - }; - - #define RPMSENSE_TRIGGER \ -- (RPMSENSE_TRIGGERPREIN | RPMSENSE_TRIGGERIN | RPMSENSE_TRIGGERUN | RPMSENSE_TRIGGERPOSTUN) -+ (RPMSENSE_TRIGGERPREIN | RPMSENSE_TRIGGERIN | RPMSENSE_TRIGGERUN | RPMSENSE_TRIGGERPOSTUN | RPMSENSE_TRIGGERTRANS) - - #define _ALL_REQUIRES_MASK (\ - RPMSENSE_INTERP | \ ---- rpm-5.4.15/rpmdb/rpmtag.h.trigtrans~ 2014-07-20 00:01:02.000000000 +0200 -+++ rpm-5.4.15/rpmdb/rpmtag.h 2014-09-05 06:44:52.727429154 +0200 -@@ -416,6 +416,10 @@ enum rpmTag_e { - RPMTAG_OBSOLETEYAMLENTRY = 1220, /* s[] */ - RPMTAG_PROVIDEYAMLENTRY = 1221, /* s[] */ - RPMTAG_REQUIREYAMLENTRY = 1222, /* s[] */ -+ RPMTAG_TRIGGERPRETRANSIN = 1223, /* internal */ -+ RPMTAG_TRIGGERPRETRANSUN = 1224, /* internal */ -+ RPMTAG_TRIGGERPOSTTRANSIN = 1225, /* internal */ -+ RPMTAG_TRIGGERPOSTTRANSUN = 1226, /* internal */ - - RPMTAG_FILEDIGESTALGO = 5011, /* i file checksum algorithm */ - RPMTAG_BUGURL = 5012, /* s */ ---- rpm-5.4.15/rpmdb/rpmtypes.h.trigtrans~ 2011-05-03 17:58:19.000000000 +0200 -+++ rpm-5.4.15/rpmdb/rpmtypes.h 2014-09-05 06:44:52.727429154 +0200 -@@ -70,7 +70,11 @@ typedef enum rpmScriptID_e { - RPMSCRIPT_POSTUN = 7, /*!< %postun scriptlet */ - RPMSCRIPT_TRIGGERPOSTUN = 8, /*!< %triggerpostun scriptlet */ - RPMSCRIPT_POSTTRANS = 9, /*!< %posttrans scriptlet */ -- /* 10-15 unused */ -+ RPMSCRIPT_TRIGGERPRETRANSIN = 10, /*!< %triggerpretrans scriptlet */ -+ RPMSCRIPT_TRIGGERPRETRANSUN = 11, /*!< %triggerpretrans scriptlet */ -+ RPMSCRIPT_TRIGGERPOSTTRANSIN= 12, /*!< %triggerposttrans scriptlet */ -+ RPMSCRIPT_TRIGGERPOSTTRANSUN= 13, /*!< %triggerposttrans scriptlet */ -+ /* 14-15 unused */ - RPMSCRIPT_VERIFY = 16, /*!< %verify scriptlet */ - RPMSCRIPT_SANITYCHECK = 17, /*!< %sanitycheck scriptlet */ - /* 18-23 unused */ diff --git a/rpm-5.4.10-trigtrans_avoid_alloca_as_stack_overflows.patch b/rpm-5.4.10-trigtrans_avoid_alloca_as_stack_overflows.patch deleted file mode 100644 index 47ca5b4..0000000 --- a/rpm-5.4.10-trigtrans_avoid_alloca_as_stack_overflows.patch +++ /dev/null @@ -1,76 +0,0 @@ -diff -pNaur rpm-rosa.orig/lib/psm.c rpm-rosa/lib/psm.c ---- rpm-rosa.orig/lib/psm.c 2017-12-06 16:44:00.000000000 +1000 -+++ rpm-rosa/lib/psm.c 2017-12-06 19:17:32.499534079 +1000 -@@ -1904,7 +1904,8 @@ static rpmRC runScriptTriggersLoop(rpmps - rpmfi fi = NULL; - rpmds sourceDs = memset(alloca(sizeof(*sourceDs)), 0, sizeof(*sourceDs)); - char * depName = NULL; -- char * evr; -+ char * evr = NULL; -+ char * evr_allocated = NULL; - char * ptr = NULL; - ARGI_t instances = NULL; - rpmmi mi; -@@ -1920,15 +1921,26 @@ static rpmRC runScriptTriggersLoop(rpmps - else - n = ts->orderCount; - -- evr = memset(alloca(n * 64 * sizeof(*evr)), 0, n * 64 * sizeof(*evr)); -- ptr = evr; - sourceDs->tagN = tagno; - sourceDs->Type = tagName(tagno); - sourceDs->Count = n; - sourceDs->i = -1; -- sourceDs->N = memset(alloca(n * sizeof(*sourceDs->N)), 0, n * sizeof(*sourceDs->N)); -- sourceDs->EVR = memset(alloca(n * sizeof(*sourceDs->EVR)), 0, n * sizeof(*sourceDs->EVR)); -- sourceDs->Flags = (evrFlags *) memset(alloca(n * sizeof(*sourceDs->Flags)), 0, n * sizeof(*sourceDs->Flags)); -+ -+ /* Avoid stack allocation as it overflows */ -+ rc = RPMRC_FAIL; -+ ptr = evr = evr_allocated = calloc(n * 64, sizeof(*evr)); -+ if (!evr_allocated) -+ goto exit_free; -+ sourceDs->N = calloc(n, sizeof(*sourceDs->N)); -+ if (!sourceDs->N) -+ goto exit_free; -+ sourceDs->EVR = calloc(n, sizeof(*sourceDs->EVR)); -+ if (!sourceDs->EVR) -+ goto exit_free; -+ sourceDs->Flags = calloc(n, sizeof(*sourceDs->Flags)); -+ if (!sourceDs->Flags) -+ goto exit_free; -+ rc = RPMRC_OK; - - pi = rpmtsiInit(ts); - while ((p = rpmtsiNext(pi, psm->goal == PSM_PKGINSTALL ? TR_ADDED : TR_REMOVED)) != NULL) { -@@ -1957,7 +1969,7 @@ static rpmRC runScriptTriggersLoop(rpmps - pi = rpmtsiFree(pi); - - if (sourceDs->i == -1) -- return rc; -+ goto exit_free; - - /* Fire elements against rpmdb trigger strings. */ - for(sourceDs->i = 0; sourceDs->i < (int)sourceDs->Count; sourceDs->i++) { -@@ -1968,7 +1980,7 @@ static rpmRC runScriptTriggersLoop(rpmps - - - if (!depName || !*depName) -- return rc; -+ goto exit_free; - - if (_psm_debug) - rpmlog(RPMLOG_DEBUG, "--> %s:%d depName: %s tagno: %d ix: %d\n", __FUNCTION__, __LINE__, depName, tagno, sourceDs->i); -@@ -2014,6 +2026,12 @@ static rpmRC runScriptTriggersLoop(rpmps - - instances = argiFree(instances); - -+exit_free: -+ free(sourceDs->Flags); -+ free(sourceDs->EVR); -+ free(sourceDs->N); -+ free(evr_allocated); -+ - return rc; - } - diff --git a/rpm-5.4.10-turn-back-urlgetfile.patch b/rpm-5.4.10-turn-back-urlgetfile.patch deleted file mode 100644 index c69fdaf..0000000 --- a/rpm-5.4.10-turn-back-urlgetfile.patch +++ /dev/null @@ -1,70 +0,0 @@ -diff -Naur rpm-5.4.10.orig/macros/mandriva rpm-5.4.10/macros/mandriva ---- rpm-5.4.10.orig/macros/mandriva 2013-09-17 17:34:34.805808860 +0400 -+++ rpm-5.4.10/macros/mandriva 2013-10-03 17:06:36.947155301 +0400 -@@ -32,6 +32,8 @@ - # mdvbz#64914 - %_rpmgio .ufdio - -+%__urlgetfile(url, dest) (test -f `basename %1` && mkdir -p `dirname %2` && cp `basename %1` %2) || (wget %1 -O %2 || (rm -f %2 && exit 1)) -+ - # This will die as soon as remaining usage has been phased out... - %mkrel(c:) %{-c: 0.%{-c*}.}%{1}%{?subrel:.%subrel} - %manbo_mkrel() %mkrel -diff -Naur rpm-5.4.10.orig/macros/mandriva.in rpm-5.4.10/macros/mandriva.in ---- rpm-5.4.10.orig/macros/mandriva.in 2013-09-17 17:34:34.805808860 +0400 -+++ rpm-5.4.10/macros/mandriva.in 2013-10-03 17:33:15.669303875 +0400 -@@ -32,6 +32,8 @@ - # mdvbz#64914 - %_rpmgio .ufdio - -+%__urlgetfile(url, dest) (test -f `basename %1` && cp `basename %1` %2) || (wget %1 -O %2 || (rm -f %2 && exit 1)) -+ - # This will die as soon as remaining usage has been phased out... - %mkrel(c:) %{-c: 0.%{-c*}.}%{1}%{?subrel:.%subrel} - %manbo_mkrel() %mkrel -diff -Naur rpm-5.4.10.orig/rpmio/url.c rpm-5.4.10/rpmio/url.c ---- rpm-5.4.10.orig/rpmio/url.c 2013-09-17 17:34:34.827808860 +0400 -+++ rpm-5.4.10/rpmio/url.c 2013-10-03 17:49:34.590394849 +0400 -@@ -446,6 +447,7 @@ - /*@-observertrans@*/ - if (pathp) - *pathp = path; -+ - /*@=observertrans@*/ - return ut; - } -@@ -602,6 +604,7 @@ - const char * sfuPath = NULL; - int urlType = urlPath(url, &sfuPath); - char *result; -+ char *cmd; - - if (*sfuPath == '\0') - return FTPERR_UNKNOWN; -@@ -616,17 +619,17 @@ - return FTPERR_UNKNOWN; - - /*@-globs -mods@*/ /* Avoid including everywhere for now */ -- if (rpmExpandNumeric("%{?__urlgetfile:1}%{!?__urlgetfile:0}")) { -- result = rpmExpand("%{__urlgetfile ", url, " ", dest, "}", NULL); -- if (result != NULL && strcmp(result, "OK") == 0) -- rc = 0; -- else { -- rpmlog(RPMLOG_DEBUG, D_("failed to fetch URL %s via external command\n"), url); -- rc = FTPERR_UNKNOWN; -+ cmd = rpmExpand("%{?__urlgetfile:%{__urlgetfile ", url, " ", dest, "}}", NULL); -+ if (cmd != NULL && cmd[0] != '\0') { -+ rc = system(cmd); -+ if ((rc >> 8) != 0) { -+ rpmlog(RPMLOG_DEBUG, D_("failed to fetch URL %s via external command: %s: %s\n"), url, Fstrerror(sfd)); -+ rc = FTPERR_UNKNOWN; - } -- result = _free(result); -- goto exit; -+ cmd = _free(cmd); -+ goto exit; - } -+ - /*@=globs =mods@*/ - - sfd = Fopen(url, "r.ufdio"); diff --git a/rpm-5.4.10-unpackaged_subdirs_terminate_build.patch b/rpm-5.4.10-unpackaged_subdirs_terminate_build.patch deleted file mode 100644 index 2e7c5b8..0000000 --- a/rpm-5.4.10-unpackaged_subdirs_terminate_build.patch +++ /dev/null @@ -1,67 +0,0 @@ ---- rpm-5.4.10/build/files.c.subdir_terminate~ 2012-07-10 20:14:36.357058212 +0200 -+++ rpm-5.4.10/build/files.c 2012-07-10 20:14:36.367058087 +0200 -@@ -3025,7 +3025,7 @@ static inline int packagedDir(Package pk - * /A/B/C/D - * Now directories "/A/B" and "/A/B/C" should also be packaged. - */ --static int pkgUnpackagedSubdirs(Package pkg, size_t buildrootL) -+static int pkgUnpackagedSubdirs(Package pkg, size_t buildrootL, int _unpackaged_subdirs_terminate_build) - /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/ - /*@modifies pkg->header, - rpmGlobalMacroContext, fileSystem, internalState @*/ -@@ -3103,7 +3103,7 @@ static int pkgUnpackagedSubdirs(Package - } - unpackaged = _free(unpackaged); - -- rpmlog(RPMLOG_WARNING, -+ rpmlog(_unpackaged_subdirs_terminate_build ? RPMLOG_ERR : RPMLOG_WARNING, - _("Unpackaged subdir(s) in %s:\n%s"), - N, rpmiobStr(list)); - -@@ -3119,7 +3119,7 @@ static int pkgUnpackagedSubdirs(Package - * @param spec spec file control structure - * @return number of unpackaged subdirectories - */ --static int checkUnpackagedSubdirs(Spec spec, size_t buildrootL) -+static int checkUnpackagedSubdirs(Spec spec, size_t buildrootL, int _unpackaged_subdirs_terminate_build) - /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/ - /*@modifies *spec->packages, - rpmGlobalMacroContext, fileSystem, internalState @*/ -@@ -3128,7 +3128,7 @@ static int checkUnpackagedSubdirs(Spec s - Package pkg; - - for (pkg = spec->packages; pkg; pkg = pkg->next) -- n += pkgUnpackagedSubdirs(pkg, buildrootL); -+ n += pkgUnpackagedSubdirs(pkg, buildrootL, _unpackaged_subdirs_terminate_build); - return n; - } - -@@ -3185,12 +3185,16 @@ rpmRC processBinaryFiles(Spec spec, int - if (res == RPMRC_OK) { - int _duplicate_files_terminate_build = - rpmExpandNumeric("%{?_duplicate_files_terminate_build}"); -+ int _unpackaged_subdirs_terminate_build = -+ rpmExpandNumeric("%{?_unpackaged_subdirs_terminate_build}"); - if (checkUnpackagedFiles(spec) > 0) - res = RPMRC_FAIL; - if (checkDuplicateFiles(spec, buildrootL, _duplicate_files_terminate_build) > 0 && - _duplicate_files_terminate_build) - res = RPMRC_FAIL; -- (void) checkUnpackagedSubdirs(spec, buildrootL); -+ if (checkUnpackagedSubdirs(spec, buildrootL, _unpackaged_subdirs_terminate_build) > 0 && -+ _unpackaged_subdirs_terminate_build) -+ res = RPMRC_FAIL; - } - - return res; ---- rpm-5.4.10/macros/mandriva.in.subdir_terminate~ 2012-07-10 20:14:36.000000000 +0200 -+++ rpm-5.4.10/macros/mandriva.in 2012-07-10 20:14:57.333795967 +0200 -@@ -127,7 +127,7 @@ end\ - %_binary_payload w5.xzdio - - %_duplicate_files_terminate_build 1 -- -+%_unpackaged_subdirs_terminate_build 0 - - %_build_pkgcheck_set /usr/bin/rpmlint -T -f %{_sourcedir}/%{name}.rpmlintrc - %_build_pkgcheck_srpm /usr/bin/rpmlint -T -f %{_sourcedir}/%{name}.rpmlintrc diff --git a/rpm-5.4.10-update-and-use-brp-compress.patch b/rpm-5.4.10-update-and-use-brp-compress.patch deleted file mode 100644 index b8412e6..0000000 --- a/rpm-5.4.10-update-and-use-brp-compress.patch +++ /dev/null @@ -1,59 +0,0 @@ ---- rpm-5.4.10/macros/mandriva.in.brpcomp~ 2012-12-26 08:56:29.522684255 +0100 -+++ rpm-5.4.10/macros/mandriva.in 2012-12-26 09:37:59.322548015 +0100 -@@ -137,8 +137,9 @@ end\ - %_enable_debug_packages 1 - - --# Default extension to use (for info files) -+# Default extension to use (for man & info files) - %_extension .xz -+%_compress xz -0f --text - - - # Macro: %{mklibname [ []] [-s] [-d]} ---- rpm-5.4.10/scripts/brp-compress.brpcomp~ 2012-12-26 08:55:38.248052991 +0100 -+++ rpm-5.4.10/scripts/brp-compress 2012-12-26 09:38:15.914753103 +0100 -@@ -8,8 +8,8 @@ fi - cd "$RPM_BUILD_ROOT" - - # Compress man pages --COMPRESS="gzip -9 -n" --COMPRESS_EXT=.gz -+COMPRESS=${COMPRESS:-gzip -9 -n} -+COMPRESS_EXT=${COMPRESS_EXT:-.gz} - - for d in ./usr/man/man* ./usr/man/*/man* ./usr/info \ - ./usr/share/man/man* ./usr/share/man/*/man* ./usr/share/info \ -@@ -17,15 +17,14 @@ for d in ./usr/man/man* ./usr/man/*/man* - ./usr/share/doc/*/man/man* ./usr/lib/*/man/man* - do - [ -d $d ] || continue -- for f in `find $d -type f` -+ for f in `find $d -type f ! -name dir` - do - [ -f "$f" ] || continue -- [ "`basename $f`" = "dir" ] && continue - - case "$f" in -- *.Z) gunzip -f $f; b=`echo $f | sed -e 's/\.Z$//'`;; -- *.gz) gunzip -f $f; b=`echo $f | sed -e 's/\.gz$//'`;; -- *.bz2) bunzip2 -f $f; b=`echo $f | sed -e 's/\.bz2$//'`;; -+ *.gz|*.Z) gunzip -f $f; b=`echo $f | sed -e 's/\.\(gz\|Z\)$//'`;; -+ *.bz2) bunzip2 -f $f; b=`echo $f | sed -e 's/\.bz2$//'`;; -+ *.xz|*.lzma) unxz -f $f; b=`echo $f | sed -e 's/\.\(xz\|lzma\)$//'`;; - *) b=$f;; - esac - -@@ -48,9 +47,10 @@ do - - for f in `find $d -type l` - do -- l=`ls -l $f | sed -e 's/.* -> //' -e 's/\.gz$//' -e 's/\.bz2$//' -e 's/\.Z$//'` -+ l=`ls -l $f | sed -e 's/.* -> //' -e 's/\.\(gz\|Z\|bz2\|xz\|lzma\)$//'` -+ echo $l - rm -f $f -- b=`echo $f | sed -e 's/\.gz$//' -e 's/\.bz2$//' -e 's/\.Z$//'` -+ b=`echo $f | sed -e 's/\.\(gz\|Z\|bz2\|xz\|lzma\)$//'` - ln -sf $l$COMPRESS_EXT $b$COMPRESS_EXT - done - done diff --git a/rpm-5.4.14-fix-dependency-generation-when-ruby_version-is-empty.patch b/rpm-5.4.14-fix-dependency-generation-when-ruby_version-is-empty.patch deleted file mode 100644 index 8d20522..0000000 --- a/rpm-5.4.14-fix-dependency-generation-when-ruby_version-is-empty.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.14/scripts/rubygems.rb.no_ruby_version~ 2014-03-16 11:47:35.797098586 +0100 -+++ rpm-5.4.14/scripts/rubygems.rb 2014-03-16 11:42:57.758190869 +0100 -@@ -68,7 +68,7 @@ end - - if requires or abi_provide - abidep = "ruby(abi)" -- if ruby_versioned -+ if ruby_versioned and RbConfig::CONFIG["ruby_version"] != "" - abidep += " = %s" % RbConfig::CONFIG["ruby_version"] - end - print abidep + "\n" diff --git a/rpm-5.4.14-gem_helper-spec-arg.patch b/rpm-5.4.14-gem_helper-spec-arg.patch deleted file mode 100644 index 69cff85..0000000 --- a/rpm-5.4.14-gem_helper-spec-arg.patch +++ /dev/null @@ -1,33 +0,0 @@ ---- rpm-5.4.14/scripts/gem_helper.rb.gem_spec~ 2014-03-16 06:14:50.213542916 +0100 -+++ rpm-5.4.14/scripts/gem_helper.rb 2014-03-16 08:22:46.196241762 +0100 -@@ -6,8 +6,9 @@ - #++ - - require 'optparse' -+require 'rubygems' - --if ARGV[0] == "build" or ARGV[0] == "install" -+if ARGV[0] == "build" or ARGV[0] == "install" or ARGV[0] == "spec" - require 'yaml' - require 'zlib' - -@@ -65,9 +66,18 @@ if ARGV[0] == "build" or ARGV[0] == "ins - body[iv.to_s.gsub(/^@/,'')] = header.instance_variable_get(iv) - end - -- require 'rubygems' - spec = Gem::Specification.from_yaml(YAML.dump(header)) - -+ if ARGV[0] == "spec" -+ # Write the .gemspec specification (in Ruby) -+ file_name = spec.full_name.untaint + '.gemspec' -+ File.open(file_name, "w") do |file| -+ file.puts spec.to_ruby_for_cache -+ end -+ print "Wrote: %s\n" % file_name -+ exit(0) -+ end -+ - if ARGV[0] == "install" - system("gem %s %s.gem" % [ARGV.join(' '), spec.full_name]) - if !keepcache diff --git a/rpm-5.4.14-ruby-abi-versioned.patch b/rpm-5.4.14-ruby-abi-versioned.patch deleted file mode 100644 index eebf72e..0000000 --- a/rpm-5.4.14-ruby-abi-versioned.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- rpm-5.4.14/scripts/rubygems.rb.rubyabiver~ 2014-03-16 08:07:27.652980213 +0100 -+++ rpm-5.4.14/scripts/rubygems.rb 2014-03-16 08:19:23.104361204 +0100 -@@ -41,6 +41,7 @@ for path in $stdin.readlines - # therefore provide ruby(abi) = version - if provides and path.match(RbConfig::CONFIG["archdir"] + "/rbconfig.rb") - abi_provide = true -+ ruby_versioned = true - elsif path.match(specpatt) - ruby_versioned = true - gems.push(path.chomp) diff --git a/rpm-5.4.14-ruby-archdirs.patch b/rpm-5.4.14-ruby-archdirs.patch deleted file mode 100644 index d2465c8..0000000 --- a/rpm-5.4.14-ruby-archdirs.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- rpm-5.4.14/scripts/rubygems.rb.rubyarchdirs~ 2014-03-16 06:14:50.373536514 +0100 -+++ rpm-5.4.14/scripts/rubygems.rb 2014-03-16 08:07:27.652980213 +0100 -@@ -51,10 +51,16 @@ for path in $stdin.readlines - elsif not ruby_versioned - if path.match(RbConfig::CONFIG["rubylibdir"]) - ruby_versioned = true -+ elsif path.match(RbConfig::CONFIG["archdir"]) -+ ruby_versioned = true - elsif path.match(RbConfig::CONFIG["sitelibdir"]) - ruby_versioned = true -+ elsif path.match(RbConfig::CONFIG["sitearchdir"]) -+ ruby_versioned = true - elsif path.match(RbConfig::CONFIG["vendorlibdir"]) - ruby_versioned = true -+ elsif path.match(RbConfig::CONFIG["vendorarchdir"]) -+ ruby_versioned = true - end - end - end diff --git a/rpm-5.4.14-rubygems2-support.patch b/rpm-5.4.14-rubygems2-support.patch deleted file mode 100644 index 547130f..0000000 --- a/rpm-5.4.14-rubygems2-support.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- rpm-5.4.14/scripts/gem_helper.rb.rubygems2~ 2014-03-16 11:17:38.008717554 +0100 -+++ rpm-5.4.14/scripts/gem_helper.rb 2014-03-16 11:17:26.239185656 +0100 -@@ -7,6 +7,7 @@ - - require 'optparse' - require 'rubygems' -+require 'rubygems/package' - - if ARGV[0] == "build" or ARGV[0] == "install" or ARGV[0] == "spec" - require 'yaml' -@@ -177,7 +178,7 @@ if ARGV[0] == "build" or ARGV[0] == "ins - - spec = Gem::Specification.from_yaml(YAML.dump(header)) - unless dry_run -- Gem::Builder.new(spec).build -+ Gem::Package.build(spec) - else - files.concat(spec.files) - print "%s\n" % files.join("\n") diff --git a/rpm-5.4.14-rubygems2.2-support.patch b/rpm-5.4.14-rubygems2.2-support.patch deleted file mode 100644 index 0a2e4da..0000000 --- a/rpm-5.4.14-rubygems2.2-support.patch +++ /dev/null @@ -1,40 +0,0 @@ -diff -urN rpm-5.4.10/scripts/gem_helper.rb rpm-5.4.10-patched/scripts/gem_helper.rb ---- rpm-5.4.10/scripts/gem_helper.rb 2014-08-13 03:32:31.448925946 +1100 -+++ rpm-5.4.10-patched/scripts/gem_helper.rb 2014-08-13 03:35:00.000000000 +1100 -@@ -97,21 +97,20 @@ - require 'rubygems/ext' - module Gem::Ext - class Builder -- def self.make(dest_path, results) -+ def build_extensions - make_program = ENV['make'] - unless make_program then - make_program = (/mswin/ =~ RUBY_PLATFORM) ? 'nmake' : 'make' - end - cmd = make_program - if ENV['GEM_MODE'] == "build" -- cmd += " %s" % ENV['jobs'] -+ cmd += " %s" % ENV['jobs'] -+ system("ruby %s" % @spec.extensions) - elsif ENV['GEM_MODE'] == "install" - cmd += " DESTDIR='%s' install" % ENV['DESTDIR'] - end -- results << cmd -- results << `#{cmd} #{redirector}` -- -- raise Gem::ExtensionBuildError, "make failed:\n\n#{results}" unless -+ system(cmd) -+ raise Gem::ExtensionBuildError, "Make failed!\n" unless - $?.success? - end - end -@@ -123,6 +122,9 @@ - def initialize(spec, options={}) - @gem_dir = Dir.pwd - @spec = spec -+ @options = options -+ -+ process_options - end - end - class ConfigFile diff --git a/rpm-5.4.4-add-_specfile-macro.patch b/rpm-5.4.4-add-_specfile-macro.patch deleted file mode 100644 index 723a17a..0000000 --- a/rpm-5.4.4-add-_specfile-macro.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- rpm-5.4.4/build/parseSpec.c.specfile~ 2011-11-11 13:41:29.137827186 +0100 -+++ rpm-5.4.4/build/parseSpec.c 2011-11-11 13:42:12.938874762 +0100 -@@ -542,6 +542,7 @@ int parseSpec(rpmts ts, const char *spec - * /.././../usr/../bin//./sh (XXX FIXME: dots not handled yet) - */ - spec->specFile = rpmGetPath(specFile, NULL); -+ addMacro(spec->macros, "_specfile", NULL, spec->specFile, RMIL_SPEC); - spec->fileStack = newOpenFileInfo(); - spec->fileStack->fileName = xstrdup(spec->specFile); - diff --git a/rpm-5.4.4-allow-installation-of-repackaged-rpms.patch b/rpm-5.4.4-allow-installation-of-repackaged-rpms.patch deleted file mode 100644 index 545929a..0000000 --- a/rpm-5.4.4-allow-installation-of-repackaged-rpms.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.4/rpmdb/rpmdb.c.repackage~ 2011-11-24 16:28:22.436460713 +0100 -+++ rpm-5.4.4/rpmdb/rpmdb.c 2011-11-24 16:28:30.107464575 +0100 -@@ -2758,7 +2758,7 @@ int rpmdbAdd(rpmdb db, int iid, Header h - if (_rpmdb_debug) - fprintf(stderr, "--> %s(%p, %u, %p, %p) h# %u\n", __FUNCTION__, db, (unsigned)iid, h, ts, (unsigned)hdrNum); - --assert(headerIsEntry(h, RPMTAG_REMOVETID) == 0); /* XXX sanity */ -+//assert(headerIsEntry(h, RPMTAG_REMOVETID) == 0); /* XXX sanity */ - - /* Add the install transaction id. */ - if (iid != 0 && iid != -1) { diff --git a/rpm-5.4.4-dont-consider-ranged-dependencies-as-overlapping-for-removal.patch b/rpm-5.4.4-dont-consider-ranged-dependencies-as-overlapping-for-removal.patch deleted file mode 100644 index ba65788..0000000 --- a/rpm-5.4.4-dont-consider-ranged-dependencies-as-overlapping-for-removal.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- rpm-5.4.4/build/reqprov.c.range_nooverlap~ 2012-02-15 18:58:39.075973279 +0100 -+++ rpm-5.4.4/build/reqprov.c 2012-02-15 19:02:01.120218409 +0100 -@@ -122,7 +122,12 @@ int addReqProv(/*@unused@*/ Spec spec, H - rpmds old = rpmdsSingle(flagtag, names[len], versions[len] ? versions[len] : "", flags[len]); - rpmds new = rpmdsSingle(flagtag, N, EVR, Flags); - -- overlap = rpmdsCompare(new, old); -+ /* do not consider dependency ranges like R: foo > 1, R: foo < 3 -+ * as overlapping (mdvbz#65269) -+ */ -+ if (!((Flags & RPMSENSE_GREATER && flags[len] & RPMSENSE_LESS) || -+ (Flags & RPMSENSE_LESS && flags[len] & RPMSENSE_GREATER))) -+ overlap = rpmdsCompare(new, old); - - if (overlap) { - EVR_t lEVR = rpmEVRnew(RPMSENSE_ANY, 0), diff --git a/rpm-5.4.4-drop-base-dependencies.patch b/rpm-5.4.4-drop-base-dependencies.patch deleted file mode 100644 index 19e34bb..0000000 --- a/rpm-5.4.4-drop-base-dependencies.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- rpm-5.4.4/build/reqprov.c.drop_basedeps~ 2011-12-11 03:55:58.958164657 +0100 -+++ rpm-5.4.4/build/reqprov.c 2019-03-11 10:48:00.794169328 +0300 -@@ -48,6 +48,13 @@ int addReqProv(/*@unused@*/ Spec spec, H - indextag = RPMTAG_TRIGGERINDEX; - extra = Flags & RPMSENSE_TRIGGER; - } else { -+#if defined(RPM_VENDOR_MANDRIVA) -+ //if (!strcmp(N, "/bin/sh") || !strcmp(N, "/sbin/ldconfig")) { -+ if (!strcmp(N, "/sbin/ldconfig")) { -+ rpmlog(RPMLOG_DEBUG, "%s will be satisfied by glibc or it's dependencies, won't add dependency to package\n", N); -+ return 0; -+ } -+#endif - nametag = RPMTAG_REQUIRENAME; - versiontag = RPMTAG_REQUIREVERSION; - flagtag = RPMTAG_REQUIREFLAGS; diff --git a/rpm-5.4.4-drop-useless-auto-generated-pkgconfig-dependency.patch b/rpm-5.4.4-drop-useless-auto-generated-pkgconfig-dependency.patch deleted file mode 100644 index 1da18fe..0000000 --- a/rpm-5.4.4-drop-useless-auto-generated-pkgconfig-dependency.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- rpm-5.4.4/scripts/pkgconfigdeps.sh.oneshot~ 2011-12-11 01:40:12.599487103 +0100 -+++ rpm-5.4.4/scripts/pkgconfigdeps.sh 2011-12-11 01:40:14.418488230 +0100 -@@ -37,12 +37,10 @@ case $1 in - done - ;; - -R|--requires) -- oneshot="pkgconfig" - while read filename ; do - case "${filename}" in - *.pc) - if [[ "$(dirname ${filename})" =~ pkgconfig ]]; then -- [ -n "$oneshot" ] && echo "$oneshot"; oneshot="" - # Query the dependencies of the package. - DIR=`dirname ${filename}` - PKG_CONFIG_PATH="$DIR:$DIR/../../share/pkgconfig" -@@ -54,7 +52,6 @@ case $1 in - else - echo "pkgconfig($n)" - fi -- oneshot="" - done - fi - ;; diff --git a/rpm-5.4.4-find-debuginfo-avoid-excessive-output-from-eu-strip.patch b/rpm-5.4.4-find-debuginfo-avoid-excessive-output-from-eu-strip.patch deleted file mode 100644 index 5f1c221..0000000 --- a/rpm-5.4.4-find-debuginfo-avoid-excessive-output-from-eu-strip.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.4/scripts/find-debuginfo.sh.strip_silent~ 2011-12-06 08:32:19.205381136 +0100 -+++ rpm-5.4.4/scripts/find-debuginfo.sh 2011-12-06 08:33:02.954406789 +0100 -@@ -103,7 +103,7 @@ strip_to_debug() - esac - [ -n "$EXCLUDE_FULL_REGEXP" ] && grep -E -q "$EXCLUDE_FULL_REGEXP" <<< "$2" && g=-g - -- eu-strip --remove-comment $g $([ -n "$DISABLE_DEBUG" ] || echo $r -f "$1") "$2" || exit -+ eu-strip --remove-comment $g $([ -n "$DISABLE_DEBUG" ] || echo $r -f "$1") "$2" 1> /dev/null || exit - [ -n "$DISABLE_DEBUG" ] || chmod 444 "$1" || exit - } - diff --git a/rpm-5.4.4-fix-removal-of-overlapping-dependencies.patch b/rpm-5.4.4-fix-removal-of-overlapping-dependencies.patch deleted file mode 100644 index 8b9633c..0000000 --- a/rpm-5.4.4-fix-removal-of-overlapping-dependencies.patch +++ /dev/null @@ -1,95 +0,0 @@ ---- rpm-5.4.4/build/reqprov.c.overlap~ 2011-04-01 12:39:50.000000000 +0200 -+++ rpm-5.4.4/build/reqprov.c 2011-11-26 02:21:00.125251492 +0100 -@@ -9,6 +9,8 @@ - #include - #define _RPMEVR_INTERNAL - #include "rpmbuild.h" -+#include -+#include - #include "debug.h" - - int addReqProv(/*@unused@*/ Spec spec, Header h, -@@ -110,37 +112,61 @@ int addReqProv(/*@unused@*/ Spec spec, H - * TODO: auto-generated deps too - */ - if (flagtag && versions != NULL) { -- int overlap; -+ int overlap = 0, res = 0; -+ rpmds old = rpmdsSingle(flagtag, names[len], versions[len] ? versions[len] : "", flags[len]); -+ rpmds new = rpmdsSingle(flagtag, N, EVR, Flags); - -- if(*EVR && !*versions[len]) { -- overlap = 1; -- flags[len] = Flags; -- he->tag = flagtag; -- he->t = RPM_UINT32_TYPE; -- he->p.argv = (void *) &Flags; -- xx = headerMod(h, he, 0); -- } else { -+ overlap = rpmdsCompare(new, old); -+ -+ if (overlap) { - EVR_t lEVR = rpmEVRnew(RPMSENSE_ANY, 0), - rEVR = rpmEVRnew(RPMSENSE_ANY, 0); -+ rpmuint32_t newflags; -+ /* if we have both a requires and suggests, we turn it into a requires */ -+ if (!(Flags & RPMSENSE_MISSINGOK) || !(flags[len] & RPMSENSE_MISSINGOK)) { -+ flags[len] &= ~RPMSENSE_MISSINGOK; -+ Flags &= ~RPMSENSE_MISSINGOK; -+ } -+ -+ /* merge all flags about dependency type */ -+ newflags = ((flags[len]| Flags) & _ALL_REQUIRES_MASK); - - rpmEVRparse(EVR, lEVR); - rpmEVRparse(versions[len], rEVR); -- lEVR->Flags = Flags | RPMSENSE_EQUAL; -- rEVR->Flags = flags[len] | RPMSENSE_EQUAL; -- overlap = rpmEVRoverlap(lEVR, rEVR); -- if (!overlap) -- if (rpmEVRoverlap(rEVR, lEVR)) -- duplicate = 1; -+ lEVR->Flags = Flags; -+ rEVR->Flags = flags[len]; -+ -+ res = rpmEVRcompare(lEVR, rEVR); -+ /* we only update version if greater */ -+ if (res > 0) { -+ flags[len] = Flags; -+ -+ versions[len] = EVR; -+ he->tag = versiontag; -+ he->t = RPM_STRING_ARRAY_TYPE; -+ he->p.argv = versions; -+ xx = headerMod(h, he, 0); -+ rpmlog(RPMLOG_WARNING, "%s overlaps %s, removing %s\n", rpmdsDNEVR(old), rpmdsDNEVR(new), rpmdsDNEVR(old)); -+ } else if (res < 0) { -+ rpmlog(RPMLOG_WARNING, "%s overlaps %s, removing %s\n", rpmdsDNEVR(new), rpmdsDNEVR(old), rpmdsDNEVR(new)); -+ } else { -+ rpmlog(RPMLOG_DEBUG, "%s overlaps %s, removing %s and merging flags\n", rpmdsDNEVR(new), rpmdsDNEVR(old), rpmdsDNEVR(new)); -+ } -+ -+ flags[len] |= newflags; -+ he->tag = flagtag; -+ he->t = RPM_UINT32_TYPE; -+ he->p.ui32p = flags; -+ xx = headerMod(h, he, 0); -+ - lEVR = rpmEVRfree(lEVR); - rEVR = rpmEVRfree(rEVR); -+ duplicate = 1; - } -- if (overlap) { -- versions[len] = EVR; -- he->tag = versiontag; -- he->t = RPM_STRING_ARRAY_TYPE; -- he->p.argv = versions; -- xx = headerMod(h, he, 0); -- } else -+ old = rpmdsFree(old); -+ new = rpmdsFree(new); -+ -+ if (!overlap) - continue; - } - #else diff --git a/rpm-5.4.4-fix-rpmconstant-to-always-use-LC_CTYPE-C-for-case-conversion.patch b/rpm-5.4.4-fix-rpmconstant-to-always-use-LC_CTYPE-C-for-case-conversion.patch deleted file mode 100644 index ce1e804..0000000 --- a/rpm-5.4.4-fix-rpmconstant-to-always-use-LC_CTYPE-C-for-case-conversion.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- rpm-5.4.4/rpmconstant/rpmconstant.c.locale~ 2008-08-18 12:57:58.000000000 +0200 -+++ rpm-5.4.4/rpmconstant/rpmconstant.c 2011-12-16 16:41:27.721549143 +0100 -@@ -89,7 +89,7 @@ int rpmconstInitToContext(rpmconst c, co - int rc = 0; - if (!context) return 0; /* programmer error */ - for (ptr = lccontext; *ptr != 0; ptr++) -- *ptr = (char)tolower(*ptr); -+ *ptr = (char)xtolower(*ptr); - rpmconstInitL(c); - while (rpmconstNextL(c)) { - if (!strcmp(lccontext, rpmconstContext(c))) { -@@ -108,7 +108,7 @@ int rpmconstNameMatch(rpmconst c, const - char * ucname = strdup(name); - - for (uc = ucname; *uc != 0; uc++) -- *uc = (char)toupper(*uc); -+ *uc = (char)xtoupper(*uc); - - if (!prefixed) prefixed = ALLCASE_PREFIX; - if (prefixed & WITH_PREFIX) diff --git a/rpm-5.4.4-fix-same-package-with-epoch-possible-to-upgrade.patch b/rpm-5.4.4-fix-same-package-with-epoch-possible-to-upgrade.patch deleted file mode 100644 index 6d81cf4..0000000 --- a/rpm-5.4.4-fix-same-package-with-epoch-possible-to-upgrade.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- rpm-5.4.4/lib/transaction.c.epoch_cmp~ 2011-11-30 22:25:26.646155379 +0100 -+++ rpm-5.4.4/lib/transaction.c 2011-11-30 23:15:28.252768345 +0100 -@@ -1187,12 +1187,15 @@ rpmlog(RPMLOG_DEBUG, D_("sanity checking - const char *val = NULL; - he->tag = tags[t]; - xx = headerGet(h, he, 0); -- if (he->tag == RPMTAG_EPOCH) -+ if (he->tag == RPMTAG_EPOCH) { - val = rpmteE(p); -- else if (he->tag == RPMTAG_DISTEPOCH) -+ if (val ? atoi(val) : 0 != he->p.ui32p ? *(he->p.ui32p) : 0) -+ nkeys--; -+ } else if (he->tag == RPMTAG_DISTEPOCH) { - val = rpmteD(p); -- if (strcmp(he->p.str ? he->p.str : "", val ? val : "")) -- nkeys--; -+ if (strcmp(he->p.str ? he->p.str : "", val ? val : "")) -+ nkeys--; -+ } - he->p.ptr = _free(he->p.ptr); - } - mi = rpmmiFree(mi); diff --git a/rpm-5.4.4-glob-wildcards-for-loading-macro-files.patch b/rpm-5.4.4-glob-wildcards-for-loading-macro-files.patch deleted file mode 100644 index 67a1c2b..0000000 --- a/rpm-5.4.4-glob-wildcards-for-loading-macro-files.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- rpm-5.4.4/rpmio/macro.c.glob~ 2011-09-30 20:40:18.000000000 +0200 -+++ rpm-5.4.4/rpmio/macro.c 2011-11-17 16:49:16.870465121 +0100 -@@ -2798,6 +2798,9 @@ rpmLoadMacroFile(MacroContext mc, const - /* Parse %{load:...} immediately recursively. */ - if (s[1] == '{' && !strncmp(s+2, "load:", sizeof("load:")-1)) { - char * se = (char *) matchchar(s, '{', '}'); -+ const char ** argv = NULL; -+ int argc = 0; -+ int i; - if (se == NULL) { - rpmlog(RPMLOG_WARNING, - _("%s:%u Missing '}' in \"%s\", skipping.\n"), -@@ -2814,7 +2817,10 @@ rpmLoadMacroFile(MacroContext mc, const - continue; - } - se = rpmMCExpand(mc, s, NULL); -- rc = rpmLoadMacroFile(mc, se, nesting - 1); -+ rc = rpmGlob(se, &argc, &argv); -+ for(i = 0; i < argc; i++) -+ rc |= rpmLoadMacroFile(mc, argv[i], nesting - 1); -+ argv = _free(argv); - se = _free(se); - if (rc != 0) - goto exit; diff --git a/rpm-5.4.4-pass-_builddir-properly-to-find-debuginfo.patch b/rpm-5.4.4-pass-_builddir-properly-to-find-debuginfo.patch deleted file mode 100644 index 1848a96..0000000 --- a/rpm-5.4.4-pass-_builddir-properly-to-find-debuginfo.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- rpm-5.4.4/macros/macros.rpmbuild.in.builddir~ 2011-12-20 15:36:20.813852241 +0100 -+++ rpm-5.4.4/macros/macros.rpmbuild.in 2011-12-20 15:37:43.385806877 +0100 -@@ -326,8 +326,9 @@ echo "Patch #%{__patch_number} (%{basena - %___build_args -e - %___build_cmd %{?_sudo:%{_sudo} }%{?_remsh:%{_remsh} %{_remhost} }%{?_remsudo:%{_remsudo} }%{?_remchroot:%{_remchroot} %{_remroot} }%{___build_shell} %{___build_args} - %___build_pre \ -+ RPM_BUILD_DIR=\"%{u2p:%{_builddir}}\"\ - RPM_OPT_FLAGS=\"%{optflags}\"\ -- export RPM_OPT_FLAGS\ -+ export RPM_BUILD_DIR RPM_OPT_FLAGS\ - %{?buildroot:RPM_BUILD_ROOT=\"%{u2p:%{buildroot}}\"\ - export RPM_BUILD_ROOT}\ - %{?_javaclasspath:CLASSPATH=\"%{_javaclasspath}\"\ ---- rpm-5.4.4/scripts/find-debuginfo.sh.builddir~ 2011-12-20 15:36:31.962846125 +0100 -+++ rpm-5.4.4/scripts/find-debuginfo.sh 2011-12-20 15:36:49.492836503 +0100 -@@ -32,7 +32,6 @@ strip_r=false - # Barf on missing build IDs. - strict=false - --RPM_BUILD_DIR="`pwd`" - BUILDDIR=. - out=debugfiles.list - nout=0 diff --git a/rpm-5.4.4-pkgconfigdeps-check-path.patch b/rpm-5.4.4-pkgconfigdeps-check-path.patch deleted file mode 100644 index 39858fe..0000000 --- a/rpm-5.4.4-pkgconfigdeps-check-path.patch +++ /dev/null @@ -1,76 +0,0 @@ ---- rpm-5.4.4/scripts/pkgconfigdeps.sh.pc_path~ 2011-11-17 15:08:42.400054348 +0100 -+++ rpm-5.4.4/scripts/pkgconfigdeps.sh 2011-11-17 15:08:44.380056984 +0100 -@@ -16,20 +16,22 @@ case $1 in - while read filename ; do - case "${filename}" in - *.pc) -- # Query the dependencies of the package. -- DIR=`dirname ${filename}` -- PKG_CONFIG_PATH="$DIR:$DIR/../../share/pkgconfig" -- export PKG_CONFIG_PATH -- $pkgconfig --print-provides "$filename" 2> /dev/null | while read n r v ; do -- [ -n "$n" ] || continue -- # We have a dependency. Make a note that we need the pkgconfig -- # tool for this package. -- if [ -n "$r" ] && [ -n "$v" ]; then -- echo "pkgconfig($n) $r $v" -- else -- echo "pkgconfig($n)" -- fi -- done -+ if [[ "$(dirname ${filename})" =~ pkgconfig ]]; then -+ # Query the dependencies of the package. -+ DIR=`dirname ${filename}` -+ PKG_CONFIG_PATH="$DIR:$DIR/../../share/pkgconfig" -+ export PKG_CONFIG_PATH -+ $pkgconfig --print-provides "$filename" 2> /dev/null | while read n r v ; do -+ [ -n "$n" ] || continue -+ # We have a dependency. Make a note that we need the pkgconfig -+ # tool for this package. -+ if [ -n "$r" ] && [ -n "$v" ]; then -+ echo "pkgconfig($n) $r $v" -+ else -+ echo "pkgconfig($n)" -+ fi -+ done -+ fi - ;; - esac - done -@@ -39,20 +41,22 @@ case $1 in - while read filename ; do - case "${filename}" in - *.pc) -- [ -n "$oneshot" ] && echo "$oneshot"; oneshot="" -- # Query the dependencies of the package. -- DIR=`dirname ${filename}` -- PKG_CONFIG_PATH="$DIR:$DIR/../../share/pkgconfig" -- export PKG_CONFIG_PATH -- $pkgconfig --print-requires "$filename" 2> /dev/null | while read n r v ; do -- [ -n "$n" ] || continue -- if [ -n "$r" ] && [ -n "$v" ]; then -- echo "pkgconfig($n) $r $v" -- else -- echo "pkgconfig($n)" -- fi -- oneshot="" -- done -+ if [[ "$(dirname ${filename})" =~ pkgconfig ]]; then -+ [ -n "$oneshot" ] && echo "$oneshot"; oneshot="" -+ # Query the dependencies of the package. -+ DIR=`dirname ${filename}` -+ PKG_CONFIG_PATH="$DIR:$DIR/../../share/pkgconfig" -+ export PKG_CONFIG_PATH -+ $pkgconfig --print-requires "$filename" 2> /dev/null | while read n r v ; do -+ [ -n "$n" ] || continue -+ if [ -n "$r" ] && [ -n "$v" ]; then -+ echo "pkgconfig($n) $r $v" -+ else -+ echo "pkgconfig($n)" -+ fi -+ oneshot="" -+ done -+ fi - ;; - esac - done diff --git a/rpm-5.4.4-really-always-invoke-clean-at-end.patch b/rpm-5.4.4-really-always-invoke-clean-at-end.patch deleted file mode 100644 index ac81f10..0000000 --- a/rpm-5.4.4-really-always-invoke-clean-at-end.patch +++ /dev/null @@ -1,41 +0,0 @@ ---- rpm-5.4.4/build/parseChangelog.c.clean~ 2011-08-15 00:43:47.000000000 +0200 -+++ rpm-5.4.4/build/parseChangelog.c 2011-11-12 17:52:00.756971839 +0100 -@@ -269,11 +269,7 @@ int parseChangelog(Spec spec) - /* There are no options to %changelog */ - if ((rc = readLine(spec, STRIP_COMMENTS)) > 0) { - iob = rpmiobFree(iob); --#if defined(RPM_VENDOR_MANDRIVA) -- return (spec->clean == NULL) ? PART_CLEAN : PART_NONE; --#else - return PART_NONE; --#endif - } - if (rc != RPMRC_OK) - return rc; -@@ -285,11 +281,7 @@ int parseChangelog(Spec spec) - iob = rpmiobAppend(iob, spec->line, 0); - line = _free(line); - if ((rc = readLine(spec, STRIP_COMMENTS | STRIP_NOEXPAND)) > 0) { --#if defined(RPM_VENDOR_MANDRIVA) -- nextPart = (spec->clean == NULL) ? PART_CLEAN : PART_NONE; --#else - nextPart = PART_NONE; --#endif - break; - } - if (rc != RPMRC_OK) ---- rpm-5.4.4/build/parseFiles.c.clean~ 2011-03-25 18:45:46.000000000 +0100 -+++ rpm-5.4.4/build/parseFiles.c 2011-11-12 17:52:00.758971903 +0100 -@@ -114,12 +114,7 @@ int parseFiles(Spec spec) - } - } - --#if defined(RPM_VENDOR_MANDRIVA) -- /* if no %clean section, add implicit */ -- rc = (nextPart == PART_NONE && spec->clean == NULL) ? PART_CLEAN : nextPart; --#else - rc = nextPart; --#endif - - exit: - argv = _free(argv); diff --git a/rpm-5.4.4-rpmbuild-withoutclean.patch b/rpm-5.4.4-rpmbuild-withoutclean.patch deleted file mode 100644 index 7dae678..0000000 --- a/rpm-5.4.4-rpmbuild-withoutclean.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- rpm-5.4.4/rpmpopt.in.clean~ 2011-12-05 20:52:18.544053402 +0100 -+++ rpm-5.4.4/rpmpopt.in 2011-12-05 20:53:51.520325674 +0100 -@@ -454,5 +454,7 @@ rpmbuild alias --lsb --noautoreq --noaut - - rpmbuild alias --withoutcheck --define 'check exit 0' \ - --POPTdesc=$"disable %check stanza for build" -+rpmbuild alias --withoutclean --define '__spec_clean_body %{nil}' \ -+ --POPTdesc=$"disable %clean stanza for build" - # \endverbatim - #*/ diff --git a/rpm-5.4.4-use-dependency-type-for-ordering.patch b/rpm-5.4.4-use-dependency-type-for-ordering.patch deleted file mode 100644 index f128d24..0000000 --- a/rpm-5.4.4-use-dependency-type-for-ordering.patch +++ /dev/null @@ -1,84 +0,0 @@ ---- rpm-5.4.4/lib/order.c.ordering~ 2011-01-14 15:06:08.000000000 +0100 -+++ rpm-5.4.4/lib/order.c 2011-11-16 11:31:23.529577558 +0100 -@@ -332,7 +332,7 @@ static inline /*@observer@*/ const char - /*@-mustmod@*/ /* FIX: hack modifies, but -type disables */ - static /*@owned@*/ /*@null@*/ const char * - zapRelation(rpmte q, rpmte p, -- int zap, /*@in@*/ /*@out@*/ int * nzaps, int msglvl) -+ int zap, /*@in@*/ /*@out@*/ int * nzaps, int msglvl, rpmuint32_t skipFlags) - /*@globals rpmGlobalMacroContext, h_errno, internalState @*/ - /*@modifies q, p, *nzaps, rpmGlobalMacroContext, internalState @*/ - { -@@ -364,6 +364,18 @@ zapRelation(rpmte q, rpmte p, - - dp = rpmdsNewDNEVR( identifyDepend(Flags), requires); - -+ if(Flags & skipFlags) { -+ if(zap) { -+ rpmlog(msglvl, -+ _("not removing %s \"%s\" from tsort relations.\n"), -+ (rpmteNEVRA(p) ? rpmteNEVRA(p) : "???"), dp); -+ if (nzaps) -+ (*nzaps)++; -+ } -+ dp = _free(dp); -+ continue; -+ } -+ - /* - * Attempt to unravel a dependency loop by eliminating Requires's. - */ -@@ -1812,6 +1824,18 @@ int _rpmtsOrder(rpmts ts) - int depth; - int breadth; - int qlen; -+ static const evrFlags orderPriority[] = { -+ RPMSENSE_MISSINGOK, -+ RPMSENSE_SCRIPT_VERIFY, -+ RPMSENSE_PACKAGE, -+ RPMSENSE_FIND_REQUIRES, -+ _ERASE_ONLY_MASK, -+ _INSTALL_ONLY_MASK, -+ _ALL_REQUIRES_MASK -+ }; /* dependency to zap in order to try resolve dependency loops */ -+ rpmuint32_t skipFlags = _ALL_REQUIRES_MASK; -+ unsigned sfi = 0; -+ - #endif /* REFERENCE */ - - if (_rpmts_debug) -@@ -2007,6 +2031,9 @@ fprintf(stderr, "--> %s(%p) tsFlags 0x%x - rescan: - if (pi != NULL) pi = rpmtsiFree(pi); - #endif -+ if (sfi < sizeof(orderPriority)) -+ skipFlags &= ~orderPriority[sfi++]; -+ - q = r = NULL; - qlen = 0; - pi = rpmtsiInit(ts); -@@ -2168,10 +2195,14 @@ rescan: - const char * nevra; - #endif - const char * dp; -+ /* -+ * TODO: use RPMLOG_DEBUG for when loops can be resolved -+ * without zapping all dependencies in it -+ */ - rpmlogLvl msglvl = (anaconda || (rpmtsDFlags(ts) & RPMDEPS_FLAG_DEPLOOPS)) - ? RPMLOG_WARNING : RPMLOG_ERR; - #if defined(RPM_VENDOR_MANDRIVA) /* loop-detection-optional-loglevel */ -- // Report loops as debug-level message by default (7 = RPMLOG_DEBUG), overridable -+ /* Report loops as debug-level message by default (7 = RPMLOG_DEBUG), overridable */ - msglvl = rpmExpandNumeric("%{?_loop_detection_loglevel}%{?!_loop_detection_loglevel:7}"); - #endif - -@@ -2184,7 +2215,7 @@ rescan: - } - - /* Find (and destroy if co-requisite) "q <- p" relation. */ -- dp = zapRelation(q, p, 1, &nzaps, msglvl); -+ dp = zapRelation(q, p, 1, &nzaps, msglvl, skipFlags); - - #if 0 - /* Print next member of loop. */ diff --git a/rpm-5.4.5-break-out-of-elf-link-loop.patch b/rpm-5.4.5-break-out-of-elf-link-loop.patch deleted file mode 100644 index caa8070..0000000 --- a/rpm-5.4.5-break-out-of-elf-link-loop.patch +++ /dev/null @@ -1,45 +0,0 @@ ---- rpm-5.4.5/lib/rpmds.c.link_loop~ 2012-03-05 22:32:46.858675088 +0100 -+++ rpm-5.4.5/lib/rpmds.c 2012-03-06 18:52:18.775950015 +0100 -@@ -2938,7 +2938,7 @@ static char * sonameDep(/*@returned@*/ c - return t; - } - --static char *find_elf_interpreter(GElf_Ehdr *ehdr, Elf *elf, char *filename) -+static char *find_elf_interpreter(GElf_Ehdr *ehdr, Elf *elf, char *filename, char *prev) - { - FILE *fp = NULL; - struct stat statbuf; -@@ -3040,6 +3040,8 @@ foo: - char path[MAXPATHLEN] = ""; - - libpath = elf_strptr (elf, shdr->sh_link, dyn->d_un.d_val); -+ if (prev && *prev && libpath && !strcmp(basename(prev), libpath)) -+ libpath = NULL; - - if (!libpath || !strlen(libpath)) - continue; -@@ -3066,7 +3068,7 @@ foo: - if ((rpath && *rpath) || tmp) - tmp2 = stpcpy(tmp2, ":"); - /* XXX: do better check to ensure libraries are all of the same class */ -- tmp2 = stpcpy(tmp2, (class == ELFCLASS64) ? "/lib64" : "/lib"); -+ tmp2 = stpcpy(tmp2, (class == ELFCLASS64) ? "/lib64:/usr/lib64" : "/lib:/usr/lib"); - tmp = buf; - { - int i, count = 1; -@@ -3116,13 +3118,13 @@ end: - fclose(fp); - } - if (!interp_name && libpath) -- return find_elf_interpreter(NULL, NULL, libpath); -+ return find_elf_interpreter(NULL, NULL, libpath, filename); - return interp_name; - } - - static int checkuClibc(GElf_Ehdr *ehdr, Elf *elf) { - int ret = 0; -- char *interp = find_elf_interpreter(ehdr, elf, NULL); -+ char *interp = find_elf_interpreter(ehdr, elf, NULL, NULL); - - if (interp) { - char *tmp = basename(interp); diff --git a/rpm-5.4.5-desktop-provides.patch b/rpm-5.4.5-desktop-provides.patch deleted file mode 100644 index 8489f51..0000000 --- a/rpm-5.4.5-desktop-provides.patch +++ /dev/null @@ -1,70 +0,0 @@ ---- rpm-5.4.5/lib/rpmfc.c.desktop~ 2012-03-03 04:52:25.531739631 +0100 -+++ rpm-5.4.5/lib/rpmfc.c 2012-03-03 04:52:28.659741193 +0100 -@@ -993,6 +993,17 @@ static int rpmfcSCRIPT(rpmfc fc) - xx = rpmfcHelper(fc, 'R', "kernel"); - } - mire = mireFree(mire); -+ } -+ if ((fc->fcolor->vals[fc->ix] & RPMFC_SCRIPT)) { -+ miRE mire = mireNew(RPMMIRE_REGEX, RPMTAG_FILEPATHS); -+ if (!mireRegcomp(mire, "^.*/usr/share/applications/.*\\.desktop$")) -+ if (mireRegexec(mire, fc->fn[fc->ix], (size_t) 0) >= 0) { -+ fc->fcolor->vals[fc->ix] |= (RPMFC_MODULE|RPMFC_SCRIPT); -+ xx = rpmfcHelper(fc, 'P', "desktop"); -+ /* XXX: currently of no use, but for the sake of consistency... */ -+ xx = rpmfcHelper(fc, 'R', "desktop"); -+ } -+ mire = mireFree(mire); - #endif - } - -@@ -1208,6 +1219,12 @@ assert(fc->fn != NULL); - if (mireRegexec(mire, fc->fn[fc->ix], (size_t) 0) >= 0) - fc->fcolor->vals[fc->ix] |= (RPMFC_MODULE|RPMFC_SCRIPT); - mire = mireFree(mire); -+ mire = mireNew(RPMMIRE_REGEX, RPMTAG_FILEPATHS); -+ /* buttfuckin' retarded, but whatever.. it'll work at least! ;) */ -+ if (!mireRegcomp(mire, "^.*/usr/share/applications/.*\\.desktop$")) -+ if (mireRegexec(mire, fc->fn[fc->ix], (size_t) 0) >= 0) -+ fc->fcolor->vals[fc->ix] |= RPMFC_SCRIPT; -+ mire = mireFree(mire); - #endif - } - } ---- rpm-5.4.5/macros/macros.rpmbuild.in.desktop~ 2012-03-03 04:51:07.041700511 +0100 -+++ rpm-5.4.5/macros/macros.rpmbuild.in 2012-03-03 04:51:50.048721947 +0100 -@@ -685,5 +685,8 @@ done \ - %__font_provides %{_rpmhome}/fontconfig.prov - #%__font_requires %{_rpmhome}/fontconfig.req - -+%__desktop_provides %{_rpmhome}/mandriva/desktop-file.prov -+#%__desktop_requires %{_rpmhome}/mandriva/desktop-file.prov -+ - # \endverbatim - #*/ ---- rpm-5.4.5/scripts/desktop-file.prov.desktop~ 2012-03-03 04:54:39.103806210 +0100 -+++ rpm-5.4.5/scripts/desktop-file.prov 2012-03-03 04:54:27.703800528 +0100 -@@ -0,0 +1,23 @@ -+#!/bin/sh -+# -+# Transform desktop mimetype info into RPM mimehandler(type) provides -+# -+# Author: Richard Hughes -+# Based on other provides scripts from RPM -+ -+OLD_IFS="$IFS" -+while read instfile ; do -+ case "$instfile" in -+ *.desktop) -+ if ! grep -q '^Type=Application$' "$instfile"; then continue; fi -+ if ! grep -q '^Exec=' "$instfile"; then continue; fi -+ mime=`grep '^MimeType=' "$instfile" | cut -d'=' -f2` -+ IFS=';' -+ for type in $mime ; do -+ echo 'mimehandler('$type')' -+ done -+ ;; -+ esac -+done -+IFS=$OLD_IFS -+ diff --git a/rpm-5.4.5-do-not-merge-script-dependencies-with-non-script-dependencies.patch b/rpm-5.4.5-do-not-merge-script-dependencies-with-non-script-dependencies.patch deleted file mode 100644 index a0287c9..0000000 --- a/rpm-5.4.5-do-not-merge-script-dependencies-with-non-script-dependencies.patch +++ /dev/null @@ -1,36 +0,0 @@ ---- rpm-5.4.5/build/reqprov.c.script_overlap~ 2012-03-06 21:09:05.867560098 +0100 -+++ rpm-5.4.5/build/reqprov.c 2012-03-06 21:10:49.962670768 +0100 -@@ -125,9 +125,14 @@ int addReqProv(/*@unused@*/ Spec spec, H - /* do not consider dependency ranges like R: foo > 1, R: foo < 3 - * as overlapping (mdvbz#65269) - */ -+#define RPMSENSE_SCRIPTS (RPMSENSE_SCRIPT_PRE|RPMSENSE_SCRIPT_POST|RPMSENSE_SCRIPT_PREUN|RPMSENSE_SCRIPT_POSTUN|RPMSENSE_SCRIPT_VERIFY) - if (!((Flags & RPMSENSE_GREATER && flags[len] & RPMSENSE_LESS) || -- (Flags & RPMSENSE_LESS && flags[len] & RPMSENSE_GREATER))) -+ (Flags & RPMSENSE_LESS && flags[len] & RPMSENSE_GREATER)) && -+ /* do not merge script dependencies with non-script dependencies */ -+ !(((Flags & RPMSENSE_SCRIPTS) && !(flags[len] & RPMSENSE_SCRIPTS)) || -+ ((flags[len] & RPMSENSE_SCRIPTS) && !(Flags & RPMSENSE_SCRIPTS)))) - overlap = rpmdsCompare(new, old); -+#undef RPMSENSE_SCRIPTS - - if (overlap) { - EVR_t lEVR = rpmEVRnew(RPMSENSE_ANY, 0), ---- rpm-5.4.5/lib/rpmfc.c.script_overlap~ 2012-03-06 21:09:05.870560101 +0100 -+++ rpm-5.4.5/lib/rpmfc.c 2012-03-06 21:09:29.342585059 +0100 -@@ -524,9 +524,14 @@ assert(EVR != NULL); - /* do not consider dependency ranges like R: foo > 1, R: foo < 3 - * as overlapping (mdvbz#65269) - */ -+#define RPMSENSE_SCRIPTS (RPMSENSE_SCRIPT_PRE|RPMSENSE_SCRIPT_POST|RPMSENSE_SCRIPT_PREUN|RPMSENSE_SCRIPT_POSTUN|RPMSENSE_SCRIPT_VERIFY) - if (!((Flags & RPMSENSE_GREATER && (*depsp)->Flags[(*depsp)->i] & RPMSENSE_LESS) || -- (Flags & RPMSENSE_LESS &&(*depsp)->Flags[(*depsp)->i] & RPMSENSE_GREATER))) -+ (Flags & RPMSENSE_LESS && (*depsp)->Flags[(*depsp)->i] & RPMSENSE_GREATER)) && -+ /* do not merge script dependencies with non-script dependencies */ -+ !(((Flags & RPMSENSE_SCRIPTS) && !((*depsp)->Flags[(*depsp)->i] & RPMSENSE_SCRIPTS)) || -+ (((*depsp)->Flags[(*depsp)->i] & RPMSENSE_SCRIPTS) && !(Flags & RPMSENSE_SCRIPTS)))) - overlap = rpmdsCompare(*depsp, ds); -+#undef RPMSENSE_SCRIPTS - - if (overlap) { - EVR_t lEVR = rpmEVRnew(RPMSENSE_ANY, 0), diff --git a/rpm-5.4.5-dont-generate-php-dependencies-only-when-executable.patch b/rpm-5.4.5-dont-generate-php-dependencies-only-when-executable.patch deleted file mode 100644 index 15dcd3f..0000000 --- a/rpm-5.4.5-dont-generate-php-dependencies-only-when-executable.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- rpm-5.4.5/lib/rpmfc.c.php_dep_gen~ 2012-02-24 13:41:47.442140908 +0100 -+++ rpm-5.4.5/lib/rpmfc.c 2012-02-24 13:41:49.933142149 +0100 -@@ -919,7 +919,9 @@ static int rpmfcSCRIPT(rpmfc fc) - } else - if (fc->fcolor->vals[fc->ix] & RPMFC_PHP) { - xx = rpmfcHelper(fc, 'P', "php"); -+#ifdef NOTYET - if (is_executable) -+#endif - xx = rpmfcHelper(fc, 'R', "php"); - } else - if (fc->fcolor->vals[fc->ix] & RPMFC_MONO) { diff --git a/rpm-5.4.5-drop-some-interpreter-deps.patch b/rpm-5.4.5-drop-some-interpreter-deps.patch deleted file mode 100644 index c0ed916..0000000 --- a/rpm-5.4.5-drop-some-interpreter-deps.patch +++ /dev/null @@ -1,32 +0,0 @@ ---- rpm-5.4.5/lib/rpmfc.c.interpret_deps~ 2012-02-29 21:36:46.309581229 +0100 -+++ rpm-5.4.5/lib/rpmfc.c 2012-02-29 21:52:44.099058625 +0100 -@@ -843,10 +843,19 @@ static int rpmfcSCRIPT(rpmfc fc) - *se = '\0'; - se++; - -+/*@-moduncon@*/ -+ bn = basename(s); -+ - if (!_filter_values - || (!fc->skipReq - && !rpmfcMatchRegexps(fc->Rmires, fc->Rnmire, s, 'R'))) -- if (is_executable) { -+ if (is_executable && -+ strncmp(bn, "bash", sizeof("bash")-1) && -+ strcmp(bn, "env") && -+ strncmp(bn, "perl", sizeof("perl")-1) && -+ strncmp(bn, "python", sizeof("python")-1) && -+ strncmp(bn, "ruby", sizeof("ruby")-1) && -+ strcmp(bn, "sh")) { - /* Add to package requires. */ - ds = rpmdsSingle(RPMTAG_REQUIRENAME, s, "", RPMSENSE_FIND_REQUIRES); - xx = rpmdsMerge(&fc->requires, ds); -@@ -860,8 +869,6 @@ static int rpmfcSCRIPT(rpmfc fc) - - /* Set color based on interpreter name. */ - /* XXX magic token should have already done this?!? */ --/*@-moduncon@*/ -- bn = basename(s); - /*@=moduncon@*/ - if (!strcmp(bn, "perl")) - fc->fcolor->vals[fc->ix] |= RPMFC_PERL; diff --git a/rpm-5.4.5-fix-elf-interpreter-resolving-breaking-uclibc-deps.patch b/rpm-5.4.5-fix-elf-interpreter-resolving-breaking-uclibc-deps.patch deleted file mode 100644 index 0d58ae3..0000000 --- a/rpm-5.4.5-fix-elf-interpreter-resolving-breaking-uclibc-deps.patch +++ /dev/null @@ -1,58 +0,0 @@ ---- rpm-5.4.5/lib/rpmds.c.uclibc~ 2012-03-01 15:13:53.758195733 +0100 -+++ rpm-5.4.5/lib/rpmds.c 2012-03-01 15:15:13.648235553 +0100 -@@ -3016,31 +3016,28 @@ foo: - data = NULL; - while ((data = elf_getdata (scn, data)) != NULL) { - int dynsize = (int)(shdr->sh_size / shdr->sh_entsize)-1; -+ for (cnt = dynsize; cnt >= 0; --cnt) { -+ dyn = gelf_getdyn (data, cnt, &dyn_mem); -+ -+ if (dyn->d_tag == DT_RPATH || dyn->d_tag == DT_RUNPATH) { -+ rpath = elf_strptr (elf, shdr->sh_link, dyn->d_un.d_val); -+ break; -+ } -+ } - for (cnt = 0; cnt <= dynsize; ++cnt) { - dyn = gelf_getdyn (data, cnt, &dyn_mem); - - /* if this an elf interpeter, the only thing we want is to find SONAME - * and return it - */ -- if (phdr) { -- if (dyn->d_tag != DT_SONAME) -- continue; -+ if (phdr && dyn->d_tag == DT_SONAME) { - interp_name = strdup(elf_strptr(elf, shdr->sh_link, dyn->d_un.d_val)); - goto end; - } -- if (rpath == NULL) { -- if (dyn->d_tag == DT_RPATH) -- rpath = elf_strptr (elf, shdr->sh_link, dyn->d_un.d_val); -- else if (cnt == dynsize) -- rpath = ""; -- if (rpath != NULL) -- cnt = -1; -- continue; -- } -- else if (rpath && dyn->d_tag == DT_NEEDED) { -+ if (dyn->d_tag == DT_NEEDED) { - char *tmp, *tmp2; -- char buf[1024]; -- char path[1024] = ""; -+ char buf[MAXPATHLEN]; -+ char path[MAXPATHLEN] = ""; - - libpath = elf_strptr (elf, shdr->sh_link, dyn->d_un.d_val); - -@@ -3106,10 +3103,10 @@ foo: - *tmp = '\0'; - } - libpath = buf; -+ break; - } - } - } -- break; - } - } - diff --git a/rpm-5.4.5-fix-generation-of-uclibc-deps-on-non-lib64.patch b/rpm-5.4.5-fix-generation-of-uclibc-deps-on-non-lib64.patch deleted file mode 100644 index 68e3945..0000000 --- a/rpm-5.4.5-fix-generation-of-uclibc-deps-on-non-lib64.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.5/lib/rpmds.c.uclibc_nolib64~ 2012-03-07 16:45:18.844313010 +0100 -+++ rpm-5.4.5/lib/rpmds.c 2012-03-07 16:45:26.711321576 +0100 -@@ -3131,7 +3131,7 @@ static int checkuClibc(GElf_Ehdr *ehdr, - if (tmp[0] == 'l' && tmp[1] == 'd') { - tmp += ((tmp[2] == '3' && tmp[3] == '2') || - (tmp[2] == '6' && tmp[3] == '4')) ? -- 5 : 7; -+ 5 : 3; - if (!strncasecmp(tmp, "uClibc.so", sizeof("uClibc.so")-1)) - ret = 1; - } diff --git a/rpm-5.4.5-fix-removal-of-overlapping-dependencies-for-internal-dependency-generator.patch b/rpm-5.4.5-fix-removal-of-overlapping-dependencies-for-internal-dependency-generator.patch deleted file mode 100644 index 302fb33..0000000 --- a/rpm-5.4.5-fix-removal-of-overlapping-dependencies-for-internal-dependency-generator.patch +++ /dev/null @@ -1,84 +0,0 @@ ---- rpm-5.4.5/lib/rpmfc.c.int_gen_overlap~ 2012-02-23 22:12:39.924314353 +0100 -+++ rpm-5.4.5/lib/rpmfc.c 2012-02-23 22:12:49.006318880 +0100 -@@ -514,27 +514,57 @@ assert(EVR != NULL); - ds = rpmdsSingle(tagN, N, EVR, Flags); - - #if defined(RPM_VENDOR_MANDRIVA) /* filter-overlapping-dependencies */ -- int overlap = 0; -+ /* XXX: should really share same code path as with what's in -+ * build/reqprov.c:addReqProv() -+ */ -+ int overlap = 0, res = 0; - if (*depsp) { - int ix = rpmdsSearch(*depsp, ds); - if (ix >= 0) { -- EVR_t lEVR = rpmEVRnew(RPMSENSE_ANY, 0), -- rEVR = rpmEVRnew(RPMSENSE_ANY, 0); -+ /* do not consider dependency ranges like R: foo > 1, R: foo < 3 -+ * as overlapping (mdvbz#65269) -+ */ -+ if (!((Flags & RPMSENSE_GREATER && (*depsp)->Flags[(*depsp)->i] & RPMSENSE_LESS) || -+ (Flags & RPMSENSE_LESS &&(*depsp)->Flags[(*depsp)->i] & RPMSENSE_GREATER))) -+ overlap = rpmdsCompare(*depsp, ds); -+ -+ if (overlap) { -+ EVR_t lEVR = rpmEVRnew(RPMSENSE_ANY, 0), -+ rEVR = rpmEVRnew(RPMSENSE_ANY, 0); -+ rpmuint32_t newflags; -+ -+ /* if we have both a requires and suggests, we turn it into a requires */ -+ if (!(Flags & RPMSENSE_MISSINGOK) || !((*depsp)->Flags[(*depsp)->i] & RPMSENSE_MISSINGOK)) { -+ (*depsp)->Flags[(*depsp)->i] &= ~RPMSENSE_MISSINGOK; -+ Flags &= ~RPMSENSE_MISSINGOK; -+ } -+ -+ /* merge all flags about dependency type */ -+ newflags = (((*depsp)->Flags[(*depsp)->i]| Flags) & _ALL_REQUIRES_MASK); -+ -+ rpmdsSetIx(*depsp, ix); -+ -+ rpmEVRparse(EVR, lEVR); -+ rpmEVRparse(rpmdsEVR(*depsp), rEVR); -+ lEVR->Flags = Flags; -+ rEVR->Flags = (*depsp)->Flags[(*depsp)->i]; -+ -+ res = rpmEVRcompare(lEVR, rEVR); -+ if (res > 0) { -+ (*depsp)->Flags[(*depsp)->i] = Flags; -+ (*depsp)->EVR[(*depsp)->i] = EVR; -+ rpmlog(RPMLOG_WARNING, "%s overlaps %s, removing %s\n", rpmdsDNEVR(*depsp), rpmdsDNEVR(ds), rpmdsDNEVR(*depsp)); -+ } else if (res < 0) { -+ rpmlog(RPMLOG_WARNING, "%s overlaps %s, removing %s\n", rpmdsDNEVR(ds), rpmdsDNEVR(*depsp), rpmdsDNEVR(ds)); -+ } else { -+ rpmlog(RPMLOG_DEBUG, "%s overlaps %s, removing %s and merging flags\n", rpmdsDNEVR(ds), rpmdsDNEVR(*depsp), rpmdsDNEVR(ds)); -+ } - -- rpmdsSetIx(*depsp, ix); -+ (*depsp)->Flags[(*depsp)->i] |= newflags; - -- rpmEVRparse(rpmdsEVR(*depsp), lEVR); -- rpmEVRparse(EVR, rEVR); -- lEVR->Flags = rpmdsFlags(*depsp) | RPMSENSE_EQUAL; -- rEVR->Flags = Flags | RPMSENSE_EQUAL; -- -- if (rpmEVRcompare(lEVR, rEVR) < 0) { -- (*depsp)->EVR[(*depsp)->i] = EVR; -- (*depsp)->Flags[(*depsp)->i] = Flags; -- overlap = 1; -+ lEVR = rpmEVRfree(lEVR); -+ rEVR = rpmEVRfree(rEVR); - } -- lEVR = rpmEVRfree(lEVR); -- rEVR = rpmEVRfree(rEVR); - } - } - if (!overlap) -@@ -1183,7 +1213,7 @@ assert(se != NULL); - switch (deptype) { - default: - /*@switchbreak@*/ break; -- case 'P': -+ case 'P': - skipping = fc->skipProv; - ds = rpmdsSingle(RPMTAG_PROVIDENAME, N, EVR, Flags); - dix = rpmdsFind(fc->provides, ds); diff --git a/rpm-5.4.5-patchset_16004.patch b/rpm-5.4.5-patchset_16004.patch deleted file mode 100644 index 87711af..0000000 --- a/rpm-5.4.5-patchset_16004.patch +++ /dev/null @@ -1,405 +0,0 @@ ---- rpm-5.4.5/lib/rpmds.c.16004~ 2012-02-24 14:13:37.649093023 +0100 -+++ rpm-5.4.5/lib/rpmds.c 2012-02-24 14:13:40.677094532 +0100 -@@ -2901,7 +2901,234 @@ rpmds rpmdsFromPRCO(rpmPRCO PRCO, rpmTag - * @param isElf64 is this an ELF64 symbol? - */ - #if defined(HAVE_GELF_H) && defined(HAVE_LIBELF) && !defined(__FreeBSD__) --static char * sonameDep(/*@returned@*/ char * t, const char * s, int isElf64) -+#if defined(RPM_VENDOR_MANDRIVA) -+static char * sonameDep(/*@returned@*/ char * t, const char * s, int isElf64, int devel, int uClibc) -+ /*@modifies t @*/ -+{ -+ char *tmp = t; -+ *t = '\0'; -+ if (uClibc) -+ tmp = stpcpy(tmp, "uClibc("); -+ if (devel) { -+ tmp = stpcpy(tmp, "devel("); -+ } -+#if !defined(__alpha__) && !defined(__sun) -+ if (!isElf64) { -+ /* XXX: eehhk, would've been nice with consistency, mandriva legacy... :| */ -+ if (!devel && s[strlen(s)-1] != ')') -+ (void) stpcpy( stpcpy(tmp, s), "()(64bit)"); -+ else { -+ tmp = stpcpy(tmp, s); -+ if (devel) -+ tmp = strstr(t, ".so"); -+ tmp = stpcpy(tmp, "(64bit)"); -+ } -+ }else -+#endif -+ tmp = stpcpy(tmp, s); -+ if (devel) { -+ char *suffix = strstr(t, ".so"); -+ if (suffix) -+ tmp = suffix; -+ tmp = stpcpy(tmp, ")"); -+ } -+ if (uClibc) -+ tmp = stpcpy(tmp, ")"); -+ -+ return t; -+} -+ -+static char *find_elf_interpreter(GElf_Ehdr *ehdr, Elf *elf, char *filename) -+{ -+ FILE *fp = NULL; -+ struct stat statbuf; -+ GElf_Ehdr ehdr_mem; -+ GElf_Shdr shdr_mem, *shdr; -+ GElf_Phdr phdr_mem, *phdr; -+ GElf_Dyn dyn_mem, *dyn; -+ Elf_Data * data; -+ Elf_Scn *scn = NULL; -+ int fdno; -+ char *interp_name = NULL; -+ char *libpath = NULL; -+ int cnt; -+ int class; -+ size_t shstrndx; -+ -+ if (filename) { -+ if (!(fp = fopen(filename, "r"))) { -+ perror(filename); -+ return NULL; -+ } -+ if (fstat((fdno = fileno(fp)), &statbuf) < 0) { -+ perror(filename); -+ goto end; -+ } -+ if ((size_t) statbuf.st_size < sizeof(Elf64_Ehdr) || !S_ISREG(statbuf.st_mode)) -+ goto foo; -+ -+ (void) elf_version(EV_CURRENT); -+ elf = NULL; -+ if ((elf = elf_begin (fdno, ELF_C_READ, NULL)) == NULL -+ || elf_kind(elf) != ELF_K_ELF -+ || (ehdr = gelf_getehdr(elf, &ehdr_mem)) == NULL -+ || !(ehdr->e_type == ET_DYN || ehdr->e_type == ET_EXEC)) -+ goto end; -+ } -+foo: -+ -+ if (ehdr->e_type != ET_EXEC && ehdr->e_type != ET_DYN) { -+ fprintf(stderr, "%s: not a dynamic executable\n", filename); -+ goto end; -+ } -+ class = gelf_getclass(elf); -+ -+ for (cnt = 0; cnt < ehdr->e_phnum; cnt++) { -+ phdr = gelf_getphdr (elf, cnt, &phdr_mem); -+ if (phdr->p_type == PT_INTERP) -+ break; -+ phdr = NULL; -+ } -+ if (phdr) { -+ Elf_Data *data = NULL; -+ -+ scn = gelf_offscn (elf, phdr->p_offset); -+ shdr = gelf_getshdr(scn, &shdr_mem); -+ data = elf_getdata (scn, data); -+ interp_name = strdup(data->d_buf); -+ goto end; -+ } -+ -+ if (elf_getshdrstrndx (elf, &shstrndx) >= 0) -+ while ((scn = elf_nextscn(elf, scn)) != NULL) { -+ shdr = gelf_getshdr(scn, &shdr_mem); -+ if (shdr->sh_type == SHT_DYNAMIC) { -+ char *rpath = NULL; -+ for (cnt = 0; cnt < ehdr->e_phnum; cnt++) { -+ phdr = gelf_getphdr (elf, cnt, &phdr_mem); -+ if (phdr->p_type == PT_LOAD) -+ break; -+ } -+ -+ data = NULL; -+ while ((data = elf_getdata (scn, data)) != NULL) { -+ int dynsize = (int)(shdr->sh_size / shdr->sh_entsize)-1; -+ for (cnt = 0; cnt <= dynsize; ++cnt) { -+ dyn = gelf_getdyn (data, cnt, &dyn_mem); -+ -+ if (rpath == NULL) { -+ if (dyn->d_tag == DT_RPATH) -+ rpath = elf_strptr (elf, shdr->sh_link, dyn->d_un.d_val); -+ else if (cnt == dynsize) -+ rpath = ""; -+ if (rpath != NULL) -+ cnt = -1; -+ continue; -+ } -+ else if (rpath && DT_NEEDED == dyn->d_tag) { -+ char *tmp, *tmp2; -+ char buf[1024]; -+ char path[1024] = ""; -+ -+ libpath = elf_strptr (elf, shdr->sh_link, dyn->d_un.d_val); -+ -+ if (!libpath || !strlen(libpath)) -+ continue; -+ -+ tmp = libpath; -+ while (*tmp) { -+ if (*tmp == '/') -+ libpath = tmp + 1; -+ tmp++; -+ } -+ -+ /* If this is a fully resolved name, we don't need to modify the path */ -+ if (stat(libpath, &statbuf) == 0) -+ continue; -+ -+ tmp2 = path; -+ if (rpath && *rpath) { -+ tmp2 = stpcpy(tmp2, rpath); -+ tmp2 = stpcpy(tmp2, ":"); -+ } -+ tmp = getenv("LD_LIBRARY_PATH"); -+ if (tmp) -+ tmp2 = stpcpy(tmp2, tmp); -+ if ((rpath && *rpath) || tmp) -+ tmp2 = stpcpy(tmp2, ":"); -+ /* XXX: do better check to ensure libraries are all of the same class */ -+ tmp2 = stpcpy(tmp2, (class == ELFCLASS64) ? "/lib64" : "/lib"); -+ tmp = buf; -+ { -+ int i, count = 1; -+ char *path_n; -+ -+ /* Eliminate all double //s */ -+ path_n = path; -+ while ((path_n = strstr(path_n, "//"))) { -+ i = strlen(path_n); -+ memmove(path_n, path_n + 1, i - 1); -+ *(path_n + i - 1) = '\0'; -+ } -+ -+ /* Replace colons with zeros in path_list and count them */ -+ for (i = strlen(path); i > 0; i--) { -+ if (path[i] == ':') { -+ path[i] = 0; -+ count++; -+ } -+ } -+ path_n = path; -+ for (i = 0; i < count; i++) { -+ strcpy(tmp, path_n); -+ strcat(tmp, "/"); -+ strcat(tmp, libpath); -+ if (stat(tmp, &statbuf) == 0 && statbuf.st_mode & S_IRUSR) { -+ path[0] = '\0'; -+ break; -+ } -+ path_n += (strlen(path_n) + 1); -+ } -+ if(path[0]) -+ *tmp = '\0'; -+ } -+ libpath = buf; -+ } -+ } -+ } -+ break; -+ } -+ } -+ -+end: -+ if (fp) { -+ if (elf) (void) elf_end(elf); -+ fclose(fp); -+ } -+ if (!interp_name && libpath) -+ return find_elf_interpreter(NULL, NULL, libpath); -+ return interp_name; -+} -+ -+static int checkuClibc(GElf_Ehdr *ehdr, Elf *elf) { -+ int ret = 0; -+ char *interp = find_elf_interpreter(ehdr, elf, NULL); -+ -+ if (interp) { -+ char *tmp = basename(interp); -+ if (tmp[0] == 'l' && tmp[1] == 'd') { -+ tmp += ((tmp[2] == '3' && tmp[3] == '2') || -+ (tmp[2] == '6' && tmp[3] == '4')) ? -+ 5 : 7; -+ if (!strncasecmp(tmp, "uClibc.so", sizeof("uClibc.so")-1)) -+ ret = 1; -+ } -+ free(interp); -+ } -+ return ret; -+} -+#else -+static char * sonameDep(/*@returned@*/ char * t, const char * s, int isElf64, int devel, int uClibc) - /*@modifies t @*/ - { - *t = '\0'; -@@ -2917,6 +3144,7 @@ static char * sonameDep(/*@returned@*/ c - return t; - } - #endif -+#endif - - /*@-moduncon -noeffectuncon @*/ - int rpmdsELF(const char * fn, int flags, -@@ -2945,6 +3173,7 @@ int rpmdsELF(const char * fn, int flags, - int xx; - int isElf64; - int isDSO; -+ int isuClibc; - int gotSONAME = 0; - int gotDEBUG = 0; - int gotHASH = 0; -@@ -2987,6 +3216,11 @@ fprintf(stderr, "*** rpmdsELF(%s, %d, %p - - isElf64 = ehdr->e_ident[EI_CLASS] == ELFCLASS64; - isDSO = ehdr->e_type == ET_DYN; -+#if defined(RPM_VENDOR_MANDRIVA) -+ isuClibc = checkuClibc(ehdr, elf); -+#else -+ isuClibc = 0; -+#endif - - /*@-uniondef @*/ - scn = NULL; -@@ -3085,7 +3319,7 @@ fprintf(stderr, "*** rpmdsELF(%s, %d, %p - - /* Add next provide dependency. */ - ds = rpmdsSingle(RPMTAG_PROVIDES, -- sonameDep(t, buf, isElf64), -+ sonameDep(t, buf, isElf64, 0, isuClibc), - "", RPMSENSE_FIND_PROVIDES); - xx = add(context, ds); - (void)rpmdsFree(ds); -@@ -3138,7 +3372,7 @@ fprintf(stderr, "*** rpmdsELF(%s, %d, %p - - /* Add next require dependency. */ - ds = rpmdsSingle(RPMTAG_REQUIRENAME, -- sonameDep(t, buf, isElf64), -+ sonameDep(t, buf, isElf64, 0, isuClibc), - "", RPMSENSE_FIND_REQUIRES); - xx = add(context, ds); - (void)rpmdsFree(ds); -@@ -3180,7 +3414,7 @@ fprintf(stderr, "*** rpmdsELF(%s, %d, %p - assert(s != NULL); - buf[0] = '\0'; - ds = rpmdsSingle(RPMTAG_REQUIRENAME, -- sonameDep(buf, s, isElf64), -+ sonameDep(buf, s, isElf64, 0, isuClibc), - "", RPMSENSE_FIND_REQUIRES); - xx = add(context, ds); - (void)rpmdsFree(ds); -@@ -3195,7 +3429,7 @@ assert(s != NULL); - /* Add next provide dependency. */ - buf[0] = '\0'; - ds = rpmdsSingle(RPMTAG_PROVIDENAME, -- sonameDep(buf, s, isElf64), -+ sonameDep(buf, s, isElf64, 0, isuClibc), - "", RPMSENSE_FIND_PROVIDES); - xx = add(context, ds); - (void)rpmdsFree(ds); -@@ -3231,7 +3465,7 @@ assert(s != NULL); - /* Add next provide dependency. */ - buf[0] = '\0'; - ds = rpmdsSingle(RPMTAG_PROVIDENAME, -- sonameDep(buf, s, isElf64), "", RPMSENSE_FIND_PROVIDES); -+ sonameDep(buf, s, isElf64, 0, isuClibc), "", RPMSENSE_FIND_PROVIDES); - xx = add(context, ds); - (void)rpmdsFree(ds); - ds = NULL; -@@ -3251,46 +3485,6 @@ exit: - - - #if defined(RPM_VENDOR_MANDRIVA) --/** -- * Return a soname dependency constructed from an elf string, Mandriva-style. -- * @retval t soname dependency -- * @param s elf string (NULL uses "") -- * @param isElf64 is this an ELF64 symbol? -- */ --#if defined(HAVE_GELF_H) && defined(HAVE_LIBELF) && !defined(__FreeBSD__) --static char * mdvSonameDep(/*@returned@*/ char * t, const char * s, int isElf64, int devel) -- /*@modifies t @*/ --{ -- char *tmp = t; -- *t = '\0'; -- if (devel) { -- tmp = stpcpy(t, "devel("); -- } --#if !defined(__alpha__) && !defined(__sun) -- if (!isElf64) { -- /* XXX: eehhk, would've been nice with consistency, mandriva legacy... :| */ -- if (!devel && s[strlen(s)-1] != ')') -- (void) stpcpy( stpcpy(tmp, s), "()(64bit)"); -- else { -- tmp = stpcpy(tmp, s); -- if (devel) -- tmp = strstr(t, ".so"); -- tmp = stpcpy(tmp, "(64bit)"); -- } -- }else --#endif -- tmp = stpcpy(tmp, s); -- if (devel) { -- char *suffix = strstr(t, ".so"); -- if (suffix) -- tmp = suffix; -- tmp = stpcpy(tmp, ")"); -- } -- -- return t; --} --#endif -- - /** \ingroup rpmds - * Extract dependencies from a symlink. - * XXX Prototype added to keep GCC quiet and avoid adding a symbol. -@@ -3324,6 +3518,7 @@ int rpmdsSymlink(const char * fn, int fl - rpmds ds; - int xx; - int isElf64; -+ int isuClibc; - int gotSONAME = 0; - int skipP = (flags & RPMELF_FLAG_SKIPPROVIDES); - int skipR = (flags & RPMELF_FLAG_SKIPREQUIRES); -@@ -3378,6 +3573,11 @@ fprintf(stderr, "*** rpmdsELF(%s, %d, %p - /*@=evalorder@*/ - - isElf64 = ehdr->e_ident[EI_CLASS] == ELFCLASS64; -+#if defined(RPM_VENDOR_MANDRIVA) -+ isuClibc = checkuClibc(ehdr, elf); -+#else -+ isuClibc = 0; -+#endif - - /*@-uniondef @*/ - scn = NULL; -@@ -3413,7 +3613,7 @@ assert(s != NULL); - buf[0] = '\0'; - - for (i = 0; i < (int)(sizeof(filterRequires)/sizeof(filterRequires[0])); i++) -- if (!strncmp(s, filterRequires[i], strlen(filterRequires[i]))) -+ if (!strncmp(s, filterRequires[i], strlen(filterRequires[i])) && !isuClibc) - break; - - if (sizeof(filterRequires)/sizeof(filterRequires[0]) == i) -@@ -3428,7 +3628,7 @@ assert(s != NULL); - - if (!skipP) { - ds = rpmdsSingle(RPMTAG_PROVIDENAME, -- mdvSonameDep(buf, s, isElf64, 1), -+ sonameDep(buf, s, isElf64, 1, isuClibc), - "", RPMSENSE_FIND_PROVIDES); - xx = add(context, ds); - (void)rpmdsFree(ds); -@@ -3447,7 +3647,7 @@ exit: - if (gotSONAME && !skipR) - for (i = 0, cnt = argvCount(deps); i < cnt; i++) { - ds = rpmdsSingle(RPMTAG_REQUIRENAME, -- mdvSonameDep(buf, deps[i], isElf64, 1), -+ sonameDep(buf, deps[i], isElf64, 1, isuClibc), - "", RPMSENSE_FIND_REQUIRES); - xx = add(context, ds); - (void)rpmdsFree(ds); diff --git a/rpm-5.4.5-patchset_16005.patch b/rpm-5.4.5-patchset_16005.patch deleted file mode 100644 index 0c8f370..0000000 --- a/rpm-5.4.5-patchset_16005.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.5/lib/rpmds.c.16005~ 2012-02-24 14:13:40.677094532 +0100 -+++ rpm-5.4.5/lib/rpmds.c 2012-02-24 14:17:17.278202493 +0100 -@@ -2913,7 +2913,7 @@ static char * sonameDep(/*@returned@*/ c - tmp = stpcpy(tmp, "devel("); - } - #if !defined(__alpha__) && !defined(__sun) -- if (!isElf64) { -+ if (isElf64) { - /* XXX: eehhk, would've been nice with consistency, mandriva legacy... :| */ - if (!devel && s[strlen(s)-1] != ')') - (void) stpcpy( stpcpy(tmp, s), "()(64bit)"); diff --git a/rpm-5.4.5-patchset_16022.patch b/rpm-5.4.5-patchset_16022.patch deleted file mode 100644 index 46e1559..0000000 --- a/rpm-5.4.5-patchset_16022.patch +++ /dev/null @@ -1,222 +0,0 @@ ---- rpm-5.4.5/lib/rpmds.c.16022~ 2012-02-24 14:17:17.278202493 +0100 -+++ rpm-5.4.5/lib/rpmds.c 2012-02-24 14:19:52.416279821 +0100 -@@ -2916,7 +2916,7 @@ static char * sonameDep(/*@returned@*/ c - if (isElf64) { - /* XXX: eehhk, would've been nice with consistency, mandriva legacy... :| */ - if (!devel && s[strlen(s)-1] != ')') -- (void) stpcpy( stpcpy(tmp, s), "()(64bit)"); -+ tmp = stpcpy( stpcpy(tmp, s), "()(64bit)"); - else { - tmp = stpcpy(tmp, s); - if (devel) -@@ -2995,8 +2995,11 @@ foo: - scn = gelf_offscn (elf, phdr->p_offset); - shdr = gelf_getshdr(scn, &shdr_mem); - data = elf_getdata (scn, data); -- interp_name = strdup(data->d_buf); -- goto end; -+ if (data && data->d_buf) { -+ interp_name = strdup(data->d_buf); -+ goto end; -+ } -+ /* no 'data' most likely implies that this is an elf interpreter itself */ - } - - if (elf_getshdrstrndx (elf, &shstrndx) >= 0) -@@ -3016,6 +3019,15 @@ foo: - for (cnt = 0; cnt <= dynsize; ++cnt) { - dyn = gelf_getdyn (data, cnt, &dyn_mem); - -+ /* if this an elf interpeter, the only thing we want is to find SONAME -+ * and return it -+ */ -+ if (phdr) { -+ if (dyn->d_tag != DT_SONAME) -+ continue; -+ interp_name = strdup(elf_strptr(elf, shdr->sh_link, dyn->d_un.d_val)); -+ goto end; -+ } - if (rpath == NULL) { - if (dyn->d_tag == DT_RPATH) - rpath = elf_strptr (elf, shdr->sh_link, dyn->d_un.d_val); -@@ -3025,7 +3037,7 @@ foo: - cnt = -1; - continue; - } -- else if (rpath && DT_NEEDED == dyn->d_tag) { -+ else if (rpath && dyn->d_tag == DT_NEEDED) { - char *tmp, *tmp2; - char buf[1024]; - char path[1024] = ""; -@@ -3083,6 +3095,7 @@ foo: - strcpy(tmp, path_n); - strcat(tmp, "/"); - strcat(tmp, libpath); -+ - if (stat(tmp, &statbuf) == 0 && statbuf.st_mode & S_IRUSR) { - path[0] = '\0'; - break; -@@ -3514,6 +3527,7 @@ int rpmdsSymlink(const char * fn, int fl - char buf[BUFSIZ]; - const char * s; - int is_executable; -+ int is_symlink; - const char * soname = NULL; - rpmds ds; - int xx; -@@ -3539,12 +3553,6 @@ int rpmdsSymlink(const char * fn, int fl - if ((s = strrchr(fn, '.')) && strcmp(s, ".so")) - return 0; - -- if ((lnklen = readlink(fn, path, MAXPATHLEN - 1)) == -1) { -- warn("%s", fn); -- return -1; -- } -- path[lnklen] = '\0'; -- - /*@-castfcnptr@*/ - if (_rpmds_debug < 0) - fprintf(stderr, "*** rpmdsELF(%s, %d, %p, %p)\n", fn, flags, (void *)add, context); -@@ -3555,6 +3563,62 @@ fprintf(stderr, "*** rpmdsELF(%s, %d, %p - if (lstat(fn, st) != 0) - return -1; - is_executable = (int)(st->st_mode & (S_IXUSR|S_IXGRP|S_IXOTH)); -+ is_symlink = S_ISLNK(st->st_mode); -+ } -+ -+ if (is_symlink) { -+#ifdef NOT_YET -+ if ((lnklen = readlink(fn, path, MAXPATHLEN - 1)) == -1) { -+ warn("%s", fn); -+ return -1; -+ } -+ /* XXX: unused, path should expand to absolute path... */ -+ path[lnklen] = '\0'; -+#endif -+ } else { -+ FILE *fp = fopen(fn, "r"); -+ char buf[BUFSIZ]; -+ char *in; -+ stpcpy(path, fn); -+ fn = NULL; -+ if (fp == NULL || ferror(fp)) { -+ if (fp) (void) fclose(fp); -+ return -1; -+ } -+ /* try resolve ld scripts -+ * certainly *not* state of the art, but should in practice work -+ * everywhere where relevant... -+ */ -+ while ((in = fgets(buf, sizeof(buf) - 1, fp))) { -+ in[sizeof(buf)-1] = '\0'; -+ if ((in = strstr(in, "GROUP")) && -+ (in = strchr(in, '(')) && -+ (fn = strchr(in, '/')) && -+ (in = strchr(fn, ' '))) { -+ *in = '\0'; -+ break; -+ } -+ if (ferror(fp) || feof(fp)) -+ break; -+ } -+ fclose(fp); -+ if (!fn) -+ return -1; -+ else { -+ /* XXX: try determine relative root */ -+ struct stat sb, * st = &sb; -+ -+ while((in = strrchr(path, '/'))) { -+ stpcpy(in, fn); -+ if (stat(path, st) == 0) { -+ fn = path; -+ break; -+ } -+ *in = 0; -+ } -+ if (!fn) -+ return -1; -+ } - } - - fdno = open(fn, O_RDONLY); -@@ -3644,8 +3708,10 @@ assert(s != NULL); - /*@=uniondef @*/ - - exit: -- if (gotSONAME && !skipR) -+ if (gotSONAME && !skipR) { - for (i = 0, cnt = argvCount(deps); i < cnt; i++) { -+ if (deps[i][0] == 'l' && deps[i][1] == 'd') -+ continue; - ds = rpmdsSingle(RPMTAG_REQUIRENAME, - sonameDep(buf, deps[i], isElf64, 1, isuClibc), - "", RPMSENSE_FIND_REQUIRES); -@@ -3653,6 +3719,7 @@ exit: - (void)rpmdsFree(ds); - ds = NULL; - } -+ } - - deps = argvFree(deps); - if (elf) (void) elf_end(elf); ---- rpm-5.4.5/lib/rpmfc.c.16022~ 2012-02-24 13:46:30.693282090 +0100 -+++ rpm-5.4.5/lib/rpmfc.c 2012-02-24 14:20:56.062311544 +0100 -@@ -518,7 +518,7 @@ assert(EVR != NULL); - * build/reqprov.c:addReqProv() - */ - int overlap = 0, res = 0; -- if (*depsp) { -+ if (*depsp && rpmExpandNumeric("%{?_use_internal_dependency_generator}")) { - int ix = rpmdsSearch(*depsp, ds); - if (ix >= 0) { - /* do not consider dependency ranges like R: foo > 1, R: foo < 3 -@@ -1045,6 +1045,11 @@ static int rpmfcSYMLINK(rpmfc fc) - flags |= RPMELF_FLAG_SKIPPROVIDES; - if (fc->skipReq) - flags |= RPMELF_FLAG_SKIPREQUIRES; -+ /* XXX: Remove symlink classifier from linker scripts now that we've been -+ * able to feed it to the generator. -+ */ -+ if (fc->fcolor->vals[fc->ix] == (RPMFC_WHITE|RPMFC_INCLUDE|RPMFC_TEXT|RPMFC_SYMLINK)) -+ fc->fcolor->vals[fc->ix] &= ~RPMFC_SYMLINK; - - return rpmdsSymlink(fn, flags, rpmfcMergePR, fc); - } -@@ -1362,6 +1367,36 @@ if (_rpmfc_debug) /* XXX noisy */ - - /* Add (filtered) entry to sorted class dictionary. */ - fcolor = rpmfcColoring(se); -+ -+ /* Quick&dirty hack for linker scripts replacing regular -+ * symlinks. Better *really* needs to be done ASAP. -+ */ -+#if defined(RPM_VENDOR_MANDRIVA) -+ if (fcolor == (RPMFC_WHITE|RPMFC_INCLUDE|RPMFC_TEXT)) { -+ char * fn; -+ -+ if ((fn = strrchr(s, '.')) && !strcmp(fn, ".so")) { -+ FILE * fp = fopen(s, "r"); -+ char buf[BUFSIZ]; -+ char * in; -+ if (fp == NULL || ferror(fp)) { -+ if (fp) (void) fclose(fp); -+ } -+ while ((in = fgets(buf, sizeof(buf) - 1, fp))) { -+ in[sizeof(buf)-1] = '\0'; -+ if (ferror(fp) || feof(fp)) -+ break; -+ if ((fn = strstr(in, "GROUP")) && -+ (fn = strchr(fn, '(')) && (fn = strchr(in, '/'))) { -+ fcolor |= RPMFC_SYMLINK; -+ break; -+ } -+ } -+ if (fp) -+ fclose(fp); -+ } -+ } -+#endif - xx = argiAdd(&fc->fcolor, (int)fc->ix, fcolor); - - if (fcolor != RPMFC_WHITE && (fcolor & RPMFC_INCLUDE)) diff --git a/rpm-5.4.5-python-export-spec-macros.patch b/rpm-5.4.5-python-export-spec-macros.patch deleted file mode 100644 index 081deee..0000000 --- a/rpm-5.4.5-python-export-spec-macros.patch +++ /dev/null @@ -1,70 +0,0 @@ ---- rpm-5.4.5/python/spec-py.c.py_macros~ 2012-03-01 22:55:19.592995392 +0100 -+++ rpm-5.4.5/python/spec-py.c 2012-03-01 22:56:02.081016570 +0100 -@@ -6,6 +6,8 @@ - - #include - #include -+#define _MACRO_INTERNAL -+#include - #include "spec-py.h" - - /** \ingroup python -@@ -146,6 +148,50 @@ spec_get_sources(specObject *s) - - } - -+static PyObject * -+spec_get_macros(specObject *s) -+ /*@*/ -+{ -+ MacroContext mc; -+ PyObject *macroDict; -+ Spec spec; -+ -+ macroDict = PyDict_New(); -+ if (!macroDict) { -+ return NULL; -+ } -+ spec = specFromSpec(s); -+ if ( spec != NULL) { -+ mc = spec->macros; -+ if (mc->macroTable != NULL) { -+ int i; -+ for (i = 0; i < mc->firstFree; i++) { -+ MacroEntry me; -+ PyObject *macro; -+ if ((me = mc->macroTable[i]) == NULL) { -+ /* XXX this should never happen */ -+ continue; -+ } -+ macro = PyDict_New(); -+ -+ PyMapping_SetItemString(macro, "used", PyInt_FromLong(me->used)); -+ PyMapping_SetItemString(macro, "level", PyInt_FromLong(me->level)); -+ if (me->opts && *me->opts) -+ PyMapping_SetItemString(macro, "opts", PyString_FromString(me->opts)); -+ if (me->body && *me->body) -+ PyMapping_SetItemString(macro, "body", PyString_FromString(me->body)); -+ PyMapping_SetItemString(macroDict, strdup(me->name), macro); -+ } -+ } -+ -+ return macroDict; -+ } -+ else { -+ return NULL; -+ } -+ -+} -+ - /** - */ - /*@unchecked@*/ /*@observer@*/ -@@ -161,6 +207,7 @@ static PyMethodDef spec_Spec_methods[] = - {"check", (PyCFunction) spec_get_check, METH_VARARGS, NULL }, - {"clean", (PyCFunction) spec_get_clean, METH_VARARGS, NULL }, - {"buildRoot", (PyCFunction) spec_get_buildroot, METH_VARARGS, NULL }, -+ {"macros", (PyCFunction) spec_get_macros, METH_VARARGS, NULL }, - {NULL} /* Sentinel */ - }; - /*@=fullinitblock@*/ diff --git a/rpm-5.4.5-rpmfc-apply-python-coloring-from-magic.patch b/rpm-5.4.5-rpmfc-apply-python-coloring-from-magic.patch deleted file mode 100644 index 06d5470..0000000 --- a/rpm-5.4.5-rpmfc-apply-python-coloring-from-magic.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- rpm-5.4.5/lib/rpmfc.c.python_coloring~ 2012-03-05 23:13:57.442354701 +0100 -+++ rpm-5.4.5/lib/rpmfc.c 2012-03-05 23:13:59.610357114 +0100 -@@ -641,6 +641,7 @@ static struct rpmfcTokens_s rpmfcTokens[ - /* XXX "python 2.3 byte-compiled" */ - { " /usr/bin/python", RPMFC_PYTHON|RPMFC_INCLUDE }, - { "python ", RPMFC_PYTHON|RPMFC_INCLUDE }, -+ { "Python script", RPMFC_PYTHON|RPMFC_INCLUDE }, - - { "libtool library ", RPMFC_LIBTOOL|RPMFC_INCLUDE }, - { "pkgconfig ", RPMFC_PKGCONFIG|RPMFC_INCLUDE }, diff --git a/rpm-5.4.5-rpmfc-use-strlen-not-sizeof.patch b/rpm-5.4.5-rpmfc-use-strlen-not-sizeof.patch deleted file mode 100644 index a18a408..0000000 --- a/rpm-5.4.5-rpmfc-use-strlen-not-sizeof.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.5/lib/rpmfc.c.sizeof~ 2012-03-05 21:01:46.845529682 +0100 -+++ rpm-5.4.5/lib/rpmfc.c 2012-03-05 21:01:51.679533439 +0100 -@@ -909,7 +909,7 @@ static int rpmfcSCRIPT(rpmfc fc) - if (defaultdocdir == NULL || *defaultdocdir == '\0') - defaultdocdir = "/usr/share/doc"; - -- if (strncmp(fn, defaultdocdir, sizeof(defaultdocdir)-1)) { -+ if (strncmp(fn, defaultdocdir, strlen(defaultdocdir))) { - if (fc->fcolor->vals[fc->ix] & RPMFC_MODULE) - xx = rpmfcHelper(fc, 'P', "perl"); - if (is_executable || (fc->fcolor->vals[fc->ix] & RPMFC_MODULE)) diff --git a/rpm-5.4.5-rubygems-add-missing-newline.patch b/rpm-5.4.5-rubygems-add-missing-newline.patch deleted file mode 100644 index 706e38a..0000000 --- a/rpm-5.4.5-rubygems-add-missing-newline.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- rpm-5.4.5/scripts/rubygems.rb.rb_newline~ 2012-02-29 17:25:34.815069060 +0100 -+++ rpm-5.4.5/scripts/rubygems.rb 2012-02-29 18:45:41.587464927 +0100 -@@ -61,10 +61,11 @@ for path in $stdin.readlines - end - - if requires or abi_provide -- print "ruby(abi)" -+ abidep = "ruby(abi)" - if ruby_versioned -- print " = %s\n" % RbConfig::CONFIG["ruby_version"] -+ abidep += " = %s" % RbConfig::CONFIG["ruby_version"] - end -+ print abidep + "\n" - end - - if gems.length > 0 diff --git a/rpm-5.4.5-set-proper-file-color-for-scripts-using-env-in-shellbang.patch b/rpm-5.4.5-set-proper-file-color-for-scripts-using-env-in-shellbang.patch deleted file mode 100644 index 9c905ee..0000000 --- a/rpm-5.4.5-set-proper-file-color-for-scripts-using-env-in-shellbang.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- rpm-5.4.5/lib/rpmfc.c.env_color~ 2012-03-05 21:27:16.396663509 +0100 -+++ rpm-5.4.5/lib/rpmfc.c 2012-03-05 21:28:12.112703555 +0100 -@@ -868,7 +868,7 @@ static int rpmfcSCRIPT(rpmfc fc) - - if (!_filter_values - || (!fc->skipReq -- && !rpmfcMatchRegexps(fc->Rmires, fc->Rnmire, s, 'R'))) -+ && !rpmfcMatchRegexps(fc->Rmires, fc->Rnmire, s, 'R'))) { - if (is_executable && - strncmp(bn, "bash", sizeof("bash")-1) && - strcmp(bn, "env") && -@@ -885,6 +885,10 @@ static int rpmfcSCRIPT(rpmfc fc) - - (void)rpmdsFree(ds); - ds = NULL; -+ } else if (!strcmp(bn, "env") && strlen(se)) { -+ bn = se; -+ strsep(&se, " \t\n\r"); -+ } - } - - /* Set color based on interpreter name. */ diff --git a/rpm-5.4.5-skip-dependencies-for-character-devices.patch b/rpm-5.4.5-skip-dependencies-for-character-devices.patch deleted file mode 100644 index 790ff48..0000000 --- a/rpm-5.4.5-skip-dependencies-for-character-devices.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- rpm-5.4.5/lib/rpmfc.c.skip_chrdev~ 2012-03-03 05:22:33.527640802 +0100 -+++ rpm-5.4.5/lib/rpmfc.c 2012-03-03 05:31:05.973896224 +0100 -@@ -1265,7 +1265,9 @@ assert(fc->fn != NULL); - } - } - -- xx = (*fcat->func) (fc); -+ struct stat sb, * st = &sb; -+ if (stat(fc->fn[fc->ix], st) == 0 && !(st->st_mode & (S_IFBLK|S_IFCHR))) -+ xx = (*fcat->func) (fc); - } - } - diff --git a/rpm-5.4.5-update-mono-dependency-generator.patch b/rpm-5.4.5-update-mono-dependency-generator.patch deleted file mode 100644 index 992184a..0000000 --- a/rpm-5.4.5-update-mono-dependency-generator.patch +++ /dev/null @@ -1,268 +0,0 @@ ---- rpm-5.4.5/scripts/mono-find-provides.mono_deps_new~ 2007-07-13 04:57:02.000000000 +0200 -+++ rpm-5.4.5/scripts/mono-find-provides 2012-02-24 08:12:34.312909123 +0100 -@@ -7,34 +7,48 @@ - # - # (C) 2005 Novell (http://www.novell.com) - # --# Args: builddir buildroot libdir - - IFS=$'\n' - filelist=($(grep -Ev '/usr/doc/|/usr/share/doc/')) - monolist=($(printf "%s\n" "${filelist[@]}" | egrep "\\.(exe|dll)\$")) - --# If monodis is in the package being installed, use that one --# This is to support building mono --build_bindir="$2/usr/bin" --build_libdir="$2$3" -- --if [ -x $build_bindir/monodis ]; then -- monodis="$build_bindir/monodis" -- export LD_LIBRARY_PATH=$build_libdir${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} --elif [ -x /usr/bin/monodis ]; then -- monodis="/usr/bin/monodis" --else -- exit 0; -+# Only include files with /gac/ in path -+# (Allows packages to contain private assemblies that don't conflict with other packages) -+#monolist=($(printf "%s\n" "${monolist[@]}" | egrep "/gac/")) -+# Disabled... see ChangeLog -+ -+# Set the prefix, unless it is overriden (used when building mono rpms) -+: ${prefix=/usr} -+ -+libdir=$prefix/lib64 -+bindir=$prefix/bin -+ -+# Bail out if monodis or libmono is missing -+if [ ! -x $bindir/monodis ] || [ ! -f $libdir/libmono-2.0.so.1 ] ; then -+ echo "monodis missing or unusable, exiting..." 1>&2 -+ exit 1 - fi - --export MONO_SHARED_DIR=$1 -+ -+# set LD_LIBRARY_PATH to ensure that libmono is found -+export LD_LIBRARY_PATH=$libdir${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} -+# and set MONO_PATH to ensure that mscorlib.dll can be found -+export MONO_PATH=$prefix/lib/mono/2.0 - - for i in "${monolist[@]}"; do -- ($monodis --assembly $i | awk ' -+ ($bindir/monodis --assembly $i | awk ' - BEGIN { LIBNAME=""; VERSION=""; } - /^Version:/ { VERSION=$2 } - /^Name:/ { LIBNAME=$2 } - END { -+ if (LIBNAME ~ /^policy/) { -+ cnt = split(LIBNAME, toks, ".") -+ VERSION=toks[2] "." toks[3] ".0.0" -+ LIBNAME="" -+ for (i=4; i<= cnt; i++) -+ LIBNAME = (LIBNAME toks[i] ".") -+ LIBNAME=substr(LIBNAME, 1, length(LIBNAME)-1) -+ } - if (VERSION && LIBNAME) - print "mono(" LIBNAME ") = " VERSION - } ---- rpm-5.4.5/scripts/mono-find-requires.mono_deps_new~ 2011-01-11 18:34:25.000000000 +0100 -+++ rpm-5.4.5/scripts/mono-find-requires 2012-02-24 08:12:34.312909123 +0100 -@@ -4,55 +4,158 @@ - # - # Authors: - # Ben Maurer (bmaurer@ximian.com) -+# Wade Berrier (wberrier@novell.com) - # --# (C) 2005 Novell (http://www.novell.com) -+# (C) 2008 Novell (http://www.novell.com) - # --# Args: builddir buildroot libdir - - IFS=$'\n' - filelist=($(grep -Ev '/usr/doc/|/usr/share/doc/')) - monolist=($(printf "%s\n" "${filelist[@]}" | egrep "\\.(exe|dll)\$")) - --# If monodis is in the package being installed, use that one --# This is to support building mono --build_bindir="$2/usr/bin" --build_libdir="$2$3" -- --if [ -x $build_bindir/monodis ]; then -- monodis="$build_bindir/monodis" -- export LD_LIBRARY_PATH=$build_libdir${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} --elif [ -x /usr/bin/monodis ]; then -- monodis="/usr/bin/monodis" -+# parse .config files to find which native libraries to depend on -+# (target attribute must have double quotes for this to work, ie: target="file" ) -+# Add /etc/mono/config ? -+configlist=($(printf "%s\n" "${filelist[@]}" | egrep "\\.config\$")) -+ -+# Set the prefix, unless it is overriden (used when building mono rpms) -+: ${prefix=/usr} -+ -+# Can override .config scanning if specified -+: ${IGNORE_CONFIG_SCAN=0} -+ -+libdir=$prefix/lib64 -+bindir=$prefix/bin -+ -+# Bail out if monodis or libmono is missing -+if [ ! -x $bindir/monodis ] || [ ! -f $libdir/libmono-2.0.so.1 ] ; then -+ echo "monodis missing or unusable, exiting..." 1>&2 -+ exit 1 -+fi -+ -+# special case for 64bit archs -+if test "xlib64" = "xlib64" ; then -+ libext="()(64bit)" - else -- exit 0; -+ # (note, this works on ppc64 since we only have 32bit mono) -+ libext="" - fi - --export MONO_SHARED_DIR=$1 -+# Exceptions: -+case `uname -m` in -+ # ia64 doesn't use lib64 for 'libdir' (sles 9 rpm used to provide both... no longer) -+ ia64) libext="()(64bit)" ;; -+esac -+ -+# set LD_LIBRARY_PATH to ensure that libmono is found -+export LD_LIBRARY_PATH=$libdir${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} -+# and set MONO_PATH to ensure that mscorlib.dll can be found -+export MONO_PATH=$prefix/lib/mono/2.0 - - REQUIRES=$( - for i in "${monolist[@]}"; do -- ($monodis --assemblyref $i | awk ' -+ ($bindir/monodis --assemblyref $i | awk ' - BEGIN { START=0; LIBNAME=""; VERSION=""; } - (START==0) && /^[0-9]+: Version=/ { - START=1; - sub(/Version=/, "", $2); - VERSION=$2 - } -- -+ - (START==1) && /^\tName=/ { - sub(/Name=/, "", $1); - LIBNAME=$1 -- -- print "mono(" LIBNAME ") = " VERSION -+ # Allow rpm deps to be resolved for 1.0 profile version -+ if (VERSION=="1.0.3300.0") -+ OP=">=" -+ else -+ OP="=" -+ print "mono(" LIBNAME ") " OP " " VERSION - START=0 - } - ') 2> /dev/null - done - ) - -+if [ $IGNORE_CONFIG_SCAN -eq 0 ] ; then -+ -+rpm_config_REQUIRES=$( -+ # Parse the xml .config files to see what native binaries we call into -+ # TODO: also check monodis --moduleref -+ for i in "${configlist[@]}"; do -+ awk 'match($_, //dev/null -+ done -+) -+ -+# Resolve provides to packages, warning on missing to stderr -+config_REQUIRES=$( -+ first=1 # avoid an empty line if no .config reqs are found -+ for i in ${rpm_config_REQUIRES[@]} ; do -+ out=$(rpm -q --whatprovides --queryformat "%{NAME}\n" $i) -+ if [ $? -eq 0 ] ; then -+ if [ $first -eq 1 ] ; then -+ echo "" -+ first=0 -+ fi -+ echo $out -+ else -+ # echo to stderr -+ echo "mono-find-requires: Warning, could not find package that provides: $i" >&2 -+ fi -+ done -+) -+ -+fi -+ -+# Note about above: -+# Use to do: system("rpm -q --whatprovides --queryformat \"%{NAME}\n\" ""\""req"'$libext'""\"") -+# rpmlint prefers to have lib names instead of package names. There was a reason I was using package names but it slips me now... -+# Ah... now I remember... it's for noarch packs. The noarch packages can be built on either 32 or 64 bit... so we have to depend -+# on the package name instead. -+ - PROVIDES=$( - for i in "${monolist[@]}"; do -- ($monodis --assembly $i | awk ' -+ ($bindir/monodis --assembly $i | awk ' - BEGIN { LIBNAME=""; VERSION=""; } - /^Version:/ { VERSION=$2 } - /^Name:/ { LIBNAME=$2 } -@@ -68,9 +171,10 @@ PROVIDES=$( - # in PROVIDES. While RPM functions correctly when such deps exist, - # they make the metadata a bit bloated. - # -+# TODO: make this use the mono-find-provides script, to share code - - # Filter out dups from both lists --REQUIRES=$(echo "$REQUIRES" | sort | uniq) -+REQUIRES=$(echo "$REQUIRES $config_REQUIRES" | sort | uniq) - PROVIDES=$(echo "$PROVIDES" | sort | uniq) - - # -@@ -80,7 +184,7 @@ UNIQ=$(echo "$PROVIDES - $REQUIRES" | sort | uniq -u) - - # --# Of those, only chose the ones that are in REQUIRES -+# Of those, only choose the ones that are in REQUIRES - # - echo "$UNIQ --$REQUIRES" | sort | uniq -d | grep -v "^$" -+$REQUIRES" | sort | uniq -d | grep -v '^\s*$' diff --git a/rpm-5.4.5-update-rpmfc-when-removing-overlapping-dependencies.patch b/rpm-5.4.5-update-rpmfc-when-removing-overlapping-dependencies.patch deleted file mode 100644 index 7e3f7f8..0000000 --- a/rpm-5.4.5-update-rpmfc-when-removing-overlapping-dependencies.patch +++ /dev/null @@ -1,81 +0,0 @@ ---- rpm-5.4.5/build/reqprov.c.fc_overlap~ 2012-03-02 13:44:16.088580152 +0100 -+++ rpm-5.4.5/build/reqprov.c 2012-03-02 13:59:18.740030066 +0100 -@@ -158,11 +158,10 @@ int addReqProv(/*@unused@*/ Spec spec, H - he->p.argv = versions; - xx = headerMod(h, he, 0); - rpmlog(RPMLOG_WARNING, "%s overlaps %s, removing %s\n", rpmdsDNEVR(old), rpmdsDNEVR(new), rpmdsDNEVR(old)); -- } else if (res < 0) { -+ } else if (res < 0) - rpmlog(RPMLOG_WARNING, "%s overlaps %s, removing %s\n", rpmdsDNEVR(new), rpmdsDNEVR(old), rpmdsDNEVR(new)); -- } else { -- rpmlog(RPMLOG_DEBUG, "%s overlaps %s, removing %s and merging flags\n", rpmdsDNEVR(new), rpmdsDNEVR(old), rpmdsDNEVR(new)); -- } -+ else if (flags[len] != Flags) -+ rpmlog(RPMLOG_WARNING, "%s overlaps %s, removing %s and merging flags\n", rpmdsDNEVR(new), rpmdsDNEVR(old), rpmdsDNEVR(new)); - - flags[len] |= newflags; - he->tag = flagtag; ---- rpm-5.4.5/lib/rpmfc.c.fc_overlap~ 2012-03-01 18:00:49.989188179 +0100 -+++ rpm-5.4.5/lib/rpmfc.c 2012-03-01 19:53:37.145561224 +0100 -@@ -518,7 +518,7 @@ assert(EVR != NULL); - * build/reqprov.c:addReqProv() - */ - int overlap = 0, res = 0; -- if (*depsp && rpmExpandNumeric("%{?_use_internal_dependency_generator}")) { -+ if (*depsp) { - int ix = rpmdsSearch(*depsp, ds); - if (ix >= 0) { - /* do not consider dependency ranges like R: foo > 1, R: foo < 3 -@@ -550,18 +550,33 @@ assert(EVR != NULL); - rEVR->Flags = (*depsp)->Flags[(*depsp)->i]; - - res = rpmEVRcompare(lEVR, rEVR); -- if (res > 0) { -- (*depsp)->Flags[(*depsp)->i] = Flags; -- (*depsp)->EVR[(*depsp)->i] = EVR; -- rpmlog(RPMLOG_WARNING, "%s overlaps %s, removing %s\n", rpmdsDNEVR(*depsp), rpmdsDNEVR(ds), rpmdsDNEVR(*depsp)); -- } else if (res < 0) { -- rpmlog(RPMLOG_WARNING, "%s overlaps %s, removing %s\n", rpmdsDNEVR(ds), rpmdsDNEVR(*depsp), rpmdsDNEVR(ds)); -- } else { -- rpmlog(RPMLOG_DEBUG, "%s overlaps %s, removing %s and merging flags\n", rpmdsDNEVR(ds), rpmdsDNEVR(*depsp), rpmdsDNEVR(ds)); -+ if (res == 0 && rpmdsFlags(*depsp) == rpmdsFlags(ds)) -+ overlap = 0; -+ else { -+ char *oldVal = xstrdup(strchr(rpmfcFileDep(buf, fc->ix, *depsp), ' ')); -+ if (res > 0) { -+ (*depsp)->Flags[(*depsp)->i] = Flags; -+ (*depsp)->EVR[(*depsp)->i] = EVR; -+ rpmlog(RPMLOG_WARNING, "%s overlaps %s, removing %s\n", rpmdsDNEVR(*depsp), rpmdsDNEVR(ds), rpmdsDNEVR(*depsp)); -+ } else if (res < 0) -+ rpmlog(RPMLOG_WARNING, "%s overlaps %s, removing %s\n", rpmdsDNEVR(ds), rpmdsDNEVR(*depsp), rpmdsDNEVR(ds)); -+ else -+ rpmlog(RPMLOG_WARNING, "%s overlaps %s, removing %s and merging flags\n", rpmdsDNEVR(ds), rpmdsDNEVR(*depsp), rpmdsDNEVR(ds)); -+ -+ (*depsp)->Flags[(*depsp)->i] |= newflags; -+ -+ /* update references in dictionary */ -+ for (ix = 0; ix < argvCount(fc->ddict); ix++) { -+ if (!strcmp(strchr(fc->ddict[ix], ' '), oldVal)) { -+ size_t fcix = atol(fc->ddict[ix]); -+ _free(fc->ddict[ix]); -+ fc->ddict[ix] = xstrdup(rpmfcFileDep(buf, fcix, *depsp)); -+ } -+ } -+ argvSort(fc->ddict, NULL); -+ free(oldVal); - } - -- (*depsp)->Flags[(*depsp)->i] |= newflags; -- - lEVR = rpmEVRfree(lEVR); - rEVR = rpmEVRfree(rEVR); - } -@@ -573,7 +588,7 @@ assert(EVR != NULL); - xx = rpmdsMerge(depsp, ds); - - /* Add to file dependencies. */ -- xx = rpmfcSaveArg(&fc->ddict, rpmfcFileDep(buf, fc->ix, ds)); -+ xx = rpmfcSaveArg(&fc->ddict, rpmfcFileDep(buf, fc->ix, overlap ? *depsp : ds)); - - (void)rpmdsFree(ds); - ds = NULL; diff --git a/rpm-5.4.7-actually-perform-linking-against-internal-lua.patch b/rpm-5.4.7-actually-perform-linking-against-internal-lua.patch deleted file mode 100644 index ab88e65..0000000 --- a/rpm-5.4.7-actually-perform-linking-against-internal-lua.patch +++ /dev/null @@ -1,36 +0,0 @@ ---- rpm-5.4.7/configure.ac.lua~ 2012-03-23 20:27:46.088488158 +0100 -+++ rpm-5.4.7/configure.ac 2012-03-23 20:27:46.102488172 +0100 -@@ -1886,10 +1886,12 @@ RPM_CHECK_LIB( - esac - AC_DEFINE(WITH_LUA_INTERNAL, 1, [Define if building with internal Lua]) - AC_CONFIG_FILES([lua/Makefile]) -+ AM_CONDITIONAL(WITH_LUA_INTERNAL, [true]) - else - AC_CHECK_LIB(m, fabs) - AC_CHECK_LIB(dl, dlopen) - AC_CHECK_FUNC(dlopen) -+ AM_CONDITIONAL(WITH_LUA_INTERNAL, [false]) - fi - ], []) - AC_SUBST(WITH_LUA_SUBDIR_DEF) ---- rpm-5.4.7/rpmio/Makefile.am.lua~ 2012-03-23 20:27:46.088488158 +0100 -+++ rpm-5.4.7/rpmio/Makefile.am 2012-03-23 20:34:09.546888175 +0100 -@@ -114,13 +114,17 @@ librpmio_la_LDFLAGS += -Wl,@LD_VERSION_S - endif - librpmio_la_LIBADD = -lm - if ENABLE_BUILD_INTLIBDEP --librpmio_la_LIBADD += -+librpmio_la_LIBADD += \ - $(top_builddir)/misc/librpmmisc.la - endif - if ENABLE_BUILD_MAXEXTLIBDEP - librpmio_la_LDFLAGS += $(LDFLAGS) - #librpmio_la_LIBADD += $(LIBS) - endif -+if WITH_LUA_INTERNAL -+librpmio_la_LIBADD += \ -+ $(top_builddir)/lua/liblua.la -+endif - #librpmio.la: $(librpmio_la_OBJECTS) $(librpmio_la_DEPENDENCIES) - # $(librpmio_la_LINK) -rpath $(usrlibdir) $(librpmio_la_OBJECTS) $(librpmio_la_LIBADD) - diff --git a/rpm-5.4.7-always-choose-equal-only-deps-when-overlapping.patch b/rpm-5.4.7-always-choose-equal-only-deps-when-overlapping.patch deleted file mode 100644 index d4d7099..0000000 --- a/rpm-5.4.7-always-choose-equal-only-deps-when-overlapping.patch +++ /dev/null @@ -1,70 +0,0 @@ ---- rpm-5.4.7/build/reqprov.c.equal_overlap~ 2012-03-13 15:06:59.272736274 +0100 -+++ rpm-5.4.7/build/reqprov.c 2012-03-13 16:37:17.389488443 +0100 -@@ -128,12 +128,14 @@ int addReqProv(/*@unused@*/ Spec spec, H - #define RPMSENSE_SCRIPTS (RPMSENSE_SCRIPT_PRE|RPMSENSE_SCRIPT_POST|RPMSENSE_SCRIPT_PREUN|RPMSENSE_SCRIPT_POSTUN|RPMSENSE_SCRIPT_VERIFY) - if (!((Flags & RPMSENSE_GREATER && flags[len] & RPMSENSE_LESS) || - (Flags & RPMSENSE_LESS && flags[len] & RPMSENSE_GREATER)) && -+ /* R: foo >= 1 cannot overlap R: foo <= 1*/ -+ !(((Flags & RPMSENSE_GREATER) && (flags[len] & RPMSENSE_LESS)) || -+ ((flags[len] & RPMSENSE_GREATER) && (Flags & RPMSENSE_LESS))) && - /* do not merge script dependencies with non-script dependencies */ - !(((Flags & RPMSENSE_SCRIPTS) && !(flags[len] & RPMSENSE_SCRIPTS)) || - ((flags[len] & RPMSENSE_SCRIPTS) && !(Flags & RPMSENSE_SCRIPTS)))) - overlap = rpmdsCompare(new, old); - #undef RPMSENSE_SCRIPTS -- - if (overlap) { - EVR_t lEVR = rpmEVRnew(RPMSENSE_ANY, 0), - rEVR = rpmEVRnew(RPMSENSE_ANY, 0); -@@ -165,8 +167,11 @@ int addReqProv(/*@unused@*/ Spec spec, H - rpmlog(RPMLOG_WARNING, "%s overlaps %s, removing %s\n", rpmdsDNEVR(old), rpmdsDNEVR(new), rpmdsDNEVR(old)); - } else if (res < 0) - rpmlog(RPMLOG_WARNING, "%s overlaps %s, removing %s\n", rpmdsDNEVR(new), rpmdsDNEVR(old), rpmdsDNEVR(new)); -- else if (flags[len] != Flags) -+ else if (flags[len] != Flags) { -+ if (((Flags & RPMSENSE_SENSEMASK) == RPMSENSE_EQUAL && (flags[len] & (RPMSENSE_GREATER|RPMSENSE_LESS)))) -+ flags[len] &= ~(RPMSENSE_GREATER|RPMSENSE_LESS); - rpmlog(RPMLOG_WARNING, "%s overlaps %s, removing %s and merging flags\n", rpmdsDNEVR(new), rpmdsDNEVR(old), rpmdsDNEVR(new)); -+ } - - flags[len] |= newflags; - he->tag = flagtag; ---- rpm-5.4.7/lib/rpmfc.c.equal_overlap~ 2012-03-13 15:07:42.416787385 +0100 -+++ rpm-5.4.7/lib/rpmfc.c 2012-03-13 16:37:24.110497118 +0100 -@@ -502,11 +502,12 @@ assert(EVR != NULL); - - ds = rpmdsSingle(tagN, N, EVR, Flags); - -+ int overlap = 0; - #if defined(RPM_VENDOR_MANDRIVA) /* filter-overlapping-dependencies */ - /* XXX: should really share same code path as with what's in - * build/reqprov.c:addReqProv() - */ -- int overlap = 0, res = 0; -+ int res = 0; - if (*depsp) { - int ix = rpmdsSearch(*depsp, ds); - if (ix >= 0) { -@@ -516,6 +517,9 @@ assert(EVR != NULL); - #define RPMSENSE_SCRIPTS (RPMSENSE_SCRIPT_PRE|RPMSENSE_SCRIPT_POST|RPMSENSE_SCRIPT_PREUN|RPMSENSE_SCRIPT_POSTUN|RPMSENSE_SCRIPT_VERIFY) - if (!((Flags & RPMSENSE_GREATER && (*depsp)->Flags[(*depsp)->i] & RPMSENSE_LESS) || - (Flags & RPMSENSE_LESS && (*depsp)->Flags[(*depsp)->i] & RPMSENSE_GREATER)) && -+ /* R: foo >= 1 cannot overlap R: foo <= 1*/ -+ !(((Flags & RPMSENSE_GREATER) && ((*depsp)->Flags[(*depsp)->i] & RPMSENSE_LESS)) || -+ (((*depsp)->Flags[(*depsp)->i] & RPMSENSE_GREATER) && (Flags & RPMSENSE_LESS))) && - /* do not merge script dependencies with non-script dependencies */ - !(((Flags & RPMSENSE_SCRIPTS) && !((*depsp)->Flags[(*depsp)->i] & RPMSENSE_SCRIPTS)) || - (((*depsp)->Flags[(*depsp)->i] & RPMSENSE_SCRIPTS) && !(Flags & RPMSENSE_SCRIPTS)))) -@@ -554,8 +558,11 @@ assert(EVR != NULL); - rpmlog(RPMLOG_WARNING, "%s (%s) overlaps %s (%s), removing %s\n", rpmdsDNEVR(*depsp), ix < (int)fc->nfiles ? fc->fn[ix] + fc->brlen : "explicit", rpmdsDNEVR(ds), fc->fn[fc->ix] + fc->brlen, rpmdsDNEVR(*depsp)); - } else if (res < 0) - rpmlog(RPMLOG_WARNING, "%s (%s) overlaps %s (%s), removing %s\n", rpmdsDNEVR(ds), fc->fn[fc->ix] + fc->brlen, rpmdsDNEVR(*depsp), ix < (int)fc->nfiles ? fc->fn[ix] + fc->brlen : "explicit", rpmdsDNEVR(ds)); -- else -+ else if ((*depsp)->Flags[(*depsp)->i] != Flags) { -+ if (((Flags & RPMSENSE_SENSEMASK) == RPMSENSE_EQUAL) && ((*depsp)->Flags[(*depsp)->i] & (RPMSENSE_GREATER|RPMSENSE_LESS))) -+ (*depsp)->Flags[(*depsp)->i] &= ~(RPMSENSE_GREATER|RPMSENSE_LESS); - rpmlog(RPMLOG_WARNING, "%s (%s) overlaps %s (%s), removing %s and merging flags\n", rpmdsDNEVR(ds), fc->fn[fc->ix] + fc->brlen, rpmdsDNEVR(*depsp), ix < (int)fc->nfiles ? fc->fn[ix] + fc->brlen : "explicit", rpmdsDNEVR(ds)); -+ } - - (*depsp)->Flags[(*depsp)->i] |= newflags; - diff --git a/rpm-5.4.7-change-to-debuginfo-suffix.patch b/rpm-5.4.7-change-to-debuginfo-suffix.patch deleted file mode 100644 index 1bfd400..0000000 --- a/rpm-5.4.7-change-to-debuginfo-suffix.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- rpm-5.4.7/macros/macros.in.debuginfo~ 2012-03-16 18:15:56.639500578 +0100 -+++ rpm-5.4.7/macros/macros.in 2012-03-16 18:15:58.278502754 +0100 -@@ -154,15 +154,15 @@ - %debug_package \ - %ifnarch noarch\ - %global __debug_package 1\ --%package debug\ -+%package debuginfo\ - Summary: Debug information for package %{name}\ - Group: Development/Debug\ - AutoReqProv: 0\ --%description debug\ -+%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\ - %defattr(-,root,root)\ - %endif\ - %{nil} diff --git a/rpm-5.4.7-dont-consider-trigger-dependencies-as-overlapping.patch b/rpm-5.4.7-dont-consider-trigger-dependencies-as-overlapping.patch deleted file mode 100644 index bfb9159..0000000 --- a/rpm-5.4.7-dont-consider-trigger-dependencies-as-overlapping.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- rpm-5.4.7/build/reqprov.c.triggers_nooverlap~ 2012-03-20 16:44:54.803999496 +0100 -+++ rpm-5.4.7/build/reqprov.c 2012-03-20 16:44:57.294002536 +0100 -@@ -117,6 +117,9 @@ int addReqProv(/*@unused@*/ Spec spec, H - * bit further, leaving under #ifdef for now... - * TODO: auto-generated deps too - */ -+ if (Flags & RPMSENSE_TRIGGER) -+ continue; -+ - if (flagtag && versions != NULL) { - int overlap = 0, res = 0; - rpmds old = rpmdsSingle(flagtag, names[len], versions[len] ? versions[len] : "", flags[len]); diff --git a/rpm-5.4.7-fix-generation-of-ruby-abi-provides.patch b/rpm-5.4.7-fix-generation-of-ruby-abi-provides.patch deleted file mode 100644 index b75fd38..0000000 --- a/rpm-5.4.7-fix-generation-of-ruby-abi-provides.patch +++ /dev/null @@ -1,48 +0,0 @@ ---- rpm-5.4.7/lib/rpmfc.c.rubyabi_prov~ 2012-03-10 21:50:02.143073469 +0100 -+++ rpm-5.4.7/lib/rpmfc.c 2012-03-10 21:57:13.898394232 +0100 -@@ -1204,9 +1204,13 @@ assert(fc->fn != NULL); - } - else if (!strncmp(fn, "/ruby", sizeof("/ruby")-1)) { - fc->fcolor->vals[fc->ix] |= RPMFC_RUBY; -- if ((fn = strstr(fn, "/specifications/")) && -- (fn = strrchr(fn, '.')) && !strcmp(fn, ".gemspec")) -- fc->fcolor->vals[fc->ix] |= RPMFC_MODULE; -+ if ((strstr(fn, ".gemspec") || strstr(fn, "rbconfig.rb"))) { -+ miRE mire = mireNew(RPMMIRE_REGEX, RPMTAG_FILEPATHS); -+ if (!mireRegcomp(mire, ".*/(specifications/.*\\.gemspec|rbconfig\\.rb)$")) -+ if (mireRegexec(mire, fc->fn[fc->ix], (size_t) 0) >= 0) -+ fc->fcolor->vals[fc->ix] |= RPMFC_MODULE; -+ mire = mireFree(mire); -+ } - } - /* XXX: lacking better, more generic classifier... */ - else if (!strncmp(fn, "/gstreamer", sizeof("/gstreamer")-1) && ---- rpm-5.4.7/scripts/rubygems.rb.rubyabi_prov~ 2012-03-10 21:50:15.637085059 +0100 -+++ rpm-5.4.7/scripts/rubygems.rb 2012-03-10 21:50:23.928092180 +0100 -@@ -36,7 +36,12 @@ ruby_versioned = false - abi_provide = false - - for path in $stdin.readlines -- if path.match(specpatt) -+ # way fugly, but we make the assumption that if the package has -+ # this file, the package is the current ruby version, and should -+ # therefore provide ruby(abi) = version -+ if provides and path.match(RbConfig::CONFIG["archdir"] + "/rbconfig.rb") -+ abi_provide = true -+ elsif path.match(specpatt) - ruby_versioned = true - gems.push(path.chomp) - # this is quite ugly and lame, but the assumption made is that if any files -@@ -46,12 +51,6 @@ for path in $stdin.readlines - elsif not ruby_versioned - if path.match(RbConfig::CONFIG["rubylibdir"]) - ruby_versioned = true -- # even more fugly, but we make the assumption that if the package has -- # this file, the package is the current ruby version, and should -- # therefore provide ruby(abi) = version -- if provides and path.match(RbConfig::CONFIG["rubylibdir"] + "/Env.rb") -- abi_provide = true -- end - elsif path.match(RbConfig::CONFIG["sitelibdir"]) - ruby_versioned = true - elsif path.match(RbConfig::CONFIG["vendorlibdir"]) diff --git a/rpm-5.4.7-fix-minor-memleaks.patch b/rpm-5.4.7-fix-minor-memleaks.patch deleted file mode 100644 index 78a1899..0000000 --- a/rpm-5.4.7-fix-minor-memleaks.patch +++ /dev/null @@ -1,25 +0,0 @@ ---- rpm-5.4.7/build/parseReqs.c.memleak~ 2012-03-21 19:13:54.725053861 +0100 -+++ rpm-5.4.7/build/parseReqs.c 2012-03-21 19:13:57.755057614 +0100 -@@ -177,7 +177,7 @@ rpmRC parseRCPOT(Spec spec, Package pkg, - if (!(nr > 3 && EVR[0] == '%' && EVR[1] == '{' && EVR[nr-1] == '}')) - { - memset(evr, 0, sizeof(*evr)); -- ix = rpmEVRparse(xstrdup(EVR), evr); -+ ix = rpmEVRparse(EVR, evr); - evr->str = _free(evr->str); - } - if (ix != 0) { ---- rpm-5.4.7/rpmio/macro.c.memleak~ 2012-03-21 19:16:07.453218370 +0100 -+++ rpm-5.4.7/rpmio/macro.c 2012-03-21 19:19:33.758488216 +0100 -@@ -2818,8 +2818,10 @@ rpmLoadMacroFile(MacroContext mc, const - } - se = rpmMCExpand(mc, s, NULL); - rc = rpmGlob(se, &argc, &argv); -- for(i = 0; i < argc; i++) -+ for(i = 0; i < argc; i++) { - rc |= rpmLoadMacroFile(mc, argv[i], nesting - 1); -+ argv[i] = _free(argv[i]); -+ } - argv = _free(argv); - se = _free(se); - if (rc != 0) diff --git a/rpm-5.4.7-generate-devel-provides-outside-of-libdirs.patch b/rpm-5.4.7-generate-devel-provides-outside-of-libdirs.patch deleted file mode 100644 index 5f188d6..0000000 --- a/rpm-5.4.7-generate-devel-provides-outside-of-libdirs.patch +++ /dev/null @@ -1,36 +0,0 @@ ---- rpm-5.4.7/lib/rpmds.c.devel_prov~ 2012-03-23 04:36:02.441671158 +0100 -+++ rpm-5.4.7/lib/rpmds.c 2012-03-23 04:36:06.210678312 +0100 -@@ -3533,7 +3533,7 @@ int rpmdsSymlink(const char * fn, int fl - int cnt; - int i; - char buf[BUFSIZ]; -- const char * s; -+ const char * s, * bn; - int is_executable; - int is_symlink; - const char * soname = NULL; -@@ -3558,13 +3558,22 @@ int rpmdsSymlink(const char * fn, int fl - ARGV_t deps = NULL; - miRE mire; - -+ bn = basename((char*)fn); -+ mire = mireNew(RPMMIRE_REGEX, RPMTAG_FILEPATHS); -+ if (!mireRegcomp(mire, "^lib.*\\.so$")) -+ xx = mireRegexec(mire, bn, (size_t) 0); -+ mire = mireFree(mire); -+ if (xx < 0) -+ return 0; -+ - mire = mireNew(RPMMIRE_REGEX, RPMTAG_FILEPATHS); - /* Filename must end with ".so" to be devel(...) dependency. */ -- if (!mireRegcomp(mire, "^.*/(|usr/)lib(|64)/lib.*\\.so$")) -+ if (!mireRegcomp(mire, "^.*/(usr/)?lib(64)?/lib.*\\.so$")) - xx = mireRegexec(mire, fn, (size_t) 0); - mire = mireFree(mire); -+ /* if outside of standard library dirs, we refuse to generate requires */ - if (xx < 0) -- return 0; -+ skipR = 1; - - /*@-castfcnptr@*/ - if (_rpmds_debug < 0) diff --git a/rpm-5.4.7-hdrfmt-fix-unitialized-argv-element.patch b/rpm-5.4.7-hdrfmt-fix-unitialized-argv-element.patch deleted file mode 100644 index 157a6eb..0000000 --- a/rpm-5.4.7-hdrfmt-fix-unitialized-argv-element.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- rpm-5.4.7/rpmdb/hdrfmt.c.unitialized~ 2012-03-19 14:21:14.907225418 +0100 -+++ rpm-5.4.7/rpmdb/hdrfmt.c 2012-03-19 14:21:17.327228582 +0100 -@@ -2048,8 +2048,10 @@ static int triggertypeTag(Header h, HE_t - he->p.argv = xmalloc(sizeof(*he->p.argv) * he->c); - for (i = 0; i < (unsigned) he->c; i++) { - for (j = 0; j < (unsigned) numNames; j++) { -- if (indices.ui32p[j] != i) -+ if (indices.ui32p[j] != i) { -+ he->p.argv[i] = NULL; - /*@innercontinue@*/ continue; -+ } - - /* XXX FIXME: there's memory leaks here. */ - if (flags.ui32p[j] & RPMSENSE_TRIGGERPREIN) diff --git a/rpm-5.4.7-kmod-dependencies.patch b/rpm-5.4.7-kmod-dependencies.patch deleted file mode 100644 index 647e639..0000000 --- a/rpm-5.4.7-kmod-dependencies.patch +++ /dev/null @@ -1,66 +0,0 @@ ---- rpm-5.4.7/lib/rpmfc.c.kmod~ 2012-03-16 16:34:04.640654829 +0100 -+++ rpm-5.4.7/lib/rpmfc.c 2012-03-16 16:34:04.644654834 +0100 -@@ -981,6 +981,19 @@ static int rpmfcSCRIPT(rpmfc fc) - xx = rpmfcHelper(fc, 'P', "gstreamer"); - /* XXX: currently of no use, but for the sake of consistency... */ - xx = rpmfcHelper(fc, 'R', "gstreamer"); -+#if defined(RPM_VENDOR_MANDRIVA) -+ } else -+ if ((fc->fcolor->vals[fc->ix] & RPMFC_MODULE)) { -+ miRE mire = mireNew(RPMMIRE_REGEX, RPMTAG_FILEPATHS); -+ if (!mireRegcomp(mire, "^.*((/lib/modules/|/var/lib/dkms/).*\\.ko(\\.gz|\\.xz)?|(/var/lib/dkms-binary/[^/]+/[^/]+|/usr/src)/[^/]+/dkms.conf)$")) -+ if (mireRegexec(mire, fc->fn[fc->ix], (size_t) 0) >= 0) { -+ fc->fcolor->vals[fc->ix] |= (RPMFC_MODULE|RPMFC_SCRIPT); -+ xx = rpmfcHelper(fc, 'P', "kernel"); -+ /* XXX: currently of no use, but for the sake of consistency... */ -+ xx = rpmfcHelper(fc, 'R', "kernel"); -+ } -+ mire = mireFree(mire); -+#endif - } - - /*@-observertrans@*/ -@@ -1188,6 +1201,14 @@ assert(fc->fn != NULL); - else if (!strncmp(fn, "/gstreamer", sizeof("/gstreamer")-1) && - fc->fcolor->vals[fc->ix] & RPMFC_LIBRARY) - fc->fcolor->vals[fc->ix] |= (RPMFC_MODULE|RPMFC_SCRIPT); -+#if defined(RPM_VENDOR_MANDRIVA) -+ } else { -+ miRE mire = mireNew(RPMMIRE_REGEX, RPMTAG_FILEPATHS); -+ if (!mireRegcomp(mire, "^.*((/lib/modules/|/var/lib/dkms/).*\\.ko(\\.gz|\\.xz)?|(/var/lib/dkms-binary/[^/]+/[^/]+|/usr/src)/[^/]+/dkms.conf)$")) -+ if (mireRegexec(mire, fc->fn[fc->ix], (size_t) 0) >= 0) -+ fc->fcolor->vals[fc->ix] |= (RPMFC_MODULE|RPMFC_SCRIPT); -+ mire = mireFree(mire); -+#endif - } - } - ---- rpm-5.4.7/macros/kernel.in.kmod~ 2011-04-10 12:54:18.000000000 +0200 -+++ rpm-5.4.7/macros/kernel.in 2012-03-16 16:37:04.277948160 +0100 -@@ -2,11 +2,11 @@ - # To make use of these macros insert the following line into your spec file: - # %{load:%{_usrlibrpm}/macros.d/kernel} - --%__modinfo @__MODINFO -+%__modinfo @__MODINFO@ - - # Path to scripts to autogenerate gstreamer package dependencies, - # --# Note: Used if _use_internal_dependency_generator is non-zero. The -+# Note: Used iff _use_internal_dependency_generator is non-zero. The - # helpers are also used by %{_rpmhome}/rpmdeps {--provides|--requires}. - %__kernel_provides %{_rpmhome}/kmod-deps.sh --provides --modinfo %__modinfo - #%__kernel_requires %{_rpmhome}/kmod-deps.sh --requires --modinfo %__modinfo ---- rpm-5.4.7/macros/macros.in.kmod~ 2012-03-16 16:34:04.614654786 +0100 -+++ rpm-5.4.7/macros/macros.in 2012-03-16 16:34:04.645654836 +0100 -@@ -981,6 +981,10 @@ $_arbitrary_tags_tests Foo:Bar - # % {load:%{_usrlibrpm}/macros.d/haskell} # provided by haskell-macros for now - - #------------------------------------------------------------------------ -+# kmod(...) configuration. -+%{load:%{_usrlibrpm}/macros.d/kernel} -+ -+#------------------------------------------------------------------------ - # perl(...) configuration - %{load:%{_usrlibrpm}/macros.d/perl} - diff --git a/rpm-5.4.7-mono-find-requires-strip-newlines.patch b/rpm-5.4.7-mono-find-requires-strip-newlines.patch deleted file mode 100644 index a42e959..0000000 --- a/rpm-5.4.7-mono-find-requires-strip-newlines.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.7/scripts/mono-find-requires.newline~ 2012-04-25 11:18:24.291758077 +0200 -+++ rpm-5.4.7/scripts/mono-find-requires 2012-04-25 11:19:20.977097581 +0200 -@@ -174,7 +174,7 @@ PROVIDES=$( - # TODO: make this use the mono-find-provides script, to share code - - # Filter out dups from both lists --REQUIRES=$(echo "$REQUIRES $config_REQUIRES" | sort | uniq) -+REQUIRES=$(echo "$REQUIRES${config_REQUIRES: $config_REQUIRES}" | sort | uniq) - PROVIDES=$(echo "$PROVIDES" | sort | uniq) - - # diff --git a/rpm-5.4.7-no-seqid_init-on-rdonly-database.patch b/rpm-5.4.7-no-seqid_init-on-rdonly-database.patch deleted file mode 100644 index 85d52e0..0000000 --- a/rpm-5.4.7-no-seqid_init-on-rdonly-database.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.7/rpmdb/db3.c.db_rdonly~ 2012-03-24 04:16:30.305949579 +0100 -+++ rpm-5.4.7/rpmdb/db3.c 2012-03-24 04:16:39.649962411 +0100 -@@ -2700,7 +2700,7 @@ assert(Pdbi != NULL); - if (oflags & (DB_CREATE|DB_TRUNCATE)) _flags |= DB_CREATE; - xx = db3associate(Pdbi, dbi, _callback, _flags); - } -- if (dbi->dbi_seq_id) { -+ if (dbi->dbi_seq_id && !(oflags & DB_RDONLY)) { - char * end = NULL; - uint32_t u = (uint32_t) strtoll(dbi->dbi_seq_id, &end, 0); - diff --git a/rpm-5.4.7-only-generate-devel-deps-for-symlinks-start-with-lib.patch b/rpm-5.4.7-only-generate-devel-deps-for-symlinks-start-with-lib.patch deleted file mode 100644 index 850bdba..0000000 --- a/rpm-5.4.7-only-generate-devel-deps-for-symlinks-start-with-lib.patch +++ /dev/null @@ -1,44 +0,0 @@ ---- rpm-5.4.7/lib/rpmds.c.req_devel~ 2012-03-16 19:48:32.709515656 +0100 -+++ rpm-5.4.7/lib/rpmds.c 2012-03-16 19:53:14.181863892 +0100 -@@ -3547,10 +3547,15 @@ int rpmdsSymlink(const char * fn, int fl - "libnss_hesiod.so", "libnss_nis.so", "libnss_nisplus.so", "libpthread.so", - "libresolv.so", "librt.so", "libutil.so", "libthread_db.so"}; - ARGV_t deps = NULL; -- -+ miRE mire; -+ -+ mire = mireNew(RPMMIRE_REGEX, RPMTAG_FILEPATHS); - /* Filename must end with ".so" to be devel(...) dependency. */ -- if ((s = strrchr(fn, '.')) && strcmp(s, ".so")) -- return 0; -+ if (!mireRegcomp(mire, "^.*/(|usr/)lib(|64)/lib.*\\.so$")) -+ xx = mireRegexec(mire, fn, (size_t) 0); -+ mire = mireFree(mire); -+ if (xx < 0) -+ return 0; - - /*@-castfcnptr@*/ - if (_rpmds_debug < 0) -@@ -3566,14 +3571,20 @@ fprintf(stderr, "*** rpmdsELF(%s, %d, %p - } - - if (is_symlink) { --#ifdef NOT_YET -+ const char *bn; - if ((lnklen = readlink(fn, path, MAXPATHLEN - 1)) == -1) { - warn("%s", fn); - return -1; - } - /* XXX: unused, path should expand to absolute path... */ - path[lnklen] = '\0'; --#endif -+ -+ /* if filename of library linked to isn't consistent with symlink -+ * filename, then we skip it -+ */ -+ bn = basename((char*)fn); -+ if (strncmp(bn, basename(path), (size_t)(strstr(bn, ".so") - bn))) -+ return 0; - } else { - FILE *fp = fopen(fn, "r"); - char buf[BUFSIZ]; diff --git a/rpm-5.4.7-only-generate-ruby-and-python-deps-for-executables-and-modules.patch b/rpm-5.4.7-only-generate-ruby-and-python-deps-for-executables-and-modules.patch deleted file mode 100644 index 5f0de46..0000000 --- a/rpm-5.4.7-only-generate-ruby-and-python-deps-for-executables-and-modules.patch +++ /dev/null @@ -1,50 +0,0 @@ ---- rpm-5.4.7/lib/rpmfc.c.exec_modules~ 2012-03-10 20:05:50.749063779 +0100 -+++ rpm-5.4.7/lib/rpmfc.c 2012-03-10 21:05:28.877795213 +0100 -@@ -912,10 +912,9 @@ static int rpmfcSCRIPT(rpmfc fc) - xx = rpmfcHelper(fc, 'R', "perl"); - } else - if (fc->fcolor->vals[fc->ix] & RPMFC_PYTHON) { -- xx = rpmfcHelper(fc, 'P', "python"); --#ifdef NOTYET -- if (is_executable) --#endif -+ if (fc->fcolor->vals[fc->ix] & RPMFC_MODULE && !(fc->fcolor->vals[fc->ix] & RPMFC_SCRIPT)) -+ xx = rpmfcHelper(fc, 'P', "python"); -+ if (is_executable || (fc->fcolor->vals[fc->ix] & RPMFC_MODULE)) - xx = rpmfcHelper(fc, 'R', "python"); - } else - if (fc->fcolor->vals[fc->ix] & RPMFC_LIBTOOL) { -@@ -952,10 +951,9 @@ static int rpmfcSCRIPT(rpmfc fc) - xx = rpmfcHelper(fc, 'R', "mono"); - } else - if (fc->fcolor->vals[fc->ix] & RPMFC_RUBY) { -- xx = rpmfcHelper(fc, 'P', "ruby"); --#ifdef NOTYET -- if (is_executable) --#endif -+ if (fc->fcolor->vals[fc->ix] & RPMFC_MODULE) -+ xx = rpmfcHelper(fc, 'P', "ruby"); -+ if (is_executable || (fc->fcolor->vals[fc->ix] & RPMFC_MODULE)) - xx = rpmfcHelper(fc, 'R', "ruby"); - } else - if (fc->fcolor->vals[fc->ix] & RPMFC_FONT) { -@@ -1192,8 +1190,18 @@ assert(fc->fn != NULL); - if ((fn[0] == '3' && fn[1] == '2') || - (fn[0] == '6' && fn[1] == '4')) - fn += 2; -- if (!strncmp(fn, "/python", sizeof("/python")-1)) -+ if (!strncmp(fn, "/python", sizeof("/python")-1)) { - fc->fcolor->vals[fc->ix] |= RPMFC_PYTHON; -+ if (strstr(fn, "site-packages")) -+ fc->fcolor->vals[fc->ix] |= RPMFC_MODULE; -+ else if (strstr(fn, ".egg")) { -+ miRE mire = mireNew(RPMMIRE_REGEX, RPMTAG_FILEPATHS); -+ if (!mireRegcomp(mire, ".*/.*\\.egg(|-info|-link)(|/.*)$")) -+ if (mireRegexec(mire, fc->fn[fc->ix], (size_t) 0) >= 0) -+ fc->fcolor->vals[fc->ix] |= RPMFC_MODULE; -+ mire = mireFree(mire); -+ } -+ } - else if (!strncmp(fn, "/ruby", sizeof("/ruby")-1)) { - fc->fcolor->vals[fc->ix] |= RPMFC_RUBY; - if ((fn = strstr(fn, "/specifications/")) && diff --git a/rpm-5.4.7-print-name-of-files-removed-dependencies-are-generated-from.patch b/rpm-5.4.7-print-name-of-files-removed-dependencies-are-generated-from.patch deleted file mode 100644 index ce67e39..0000000 --- a/rpm-5.4.7-print-name-of-files-removed-dependencies-are-generated-from.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- rpm-5.4.7/lib/rpmfc.c.filedep_origins~ 2012-03-13 08:43:44.548981329 +0100 -+++ rpm-5.4.7/lib/rpmfc.c 2012-03-13 08:43:48.658984801 +0100 -@@ -551,11 +551,11 @@ assert(EVR != NULL); - if (res > 0) { - (*depsp)->Flags[(*depsp)->i] = Flags; - (*depsp)->EVR[(*depsp)->i] = EVR; -- rpmlog(RPMLOG_WARNING, "%s overlaps %s, removing %s\n", rpmdsDNEVR(*depsp), rpmdsDNEVR(ds), rpmdsDNEVR(*depsp)); -+ rpmlog(RPMLOG_WARNING, "%s (%s) overlaps %s (%s), removing %s\n", rpmdsDNEVR(*depsp), ix < (int)fc->nfiles ? fc->fn[ix] + fc->brlen : "explicit", rpmdsDNEVR(ds), fc->fn[fc->ix] + fc->brlen, rpmdsDNEVR(*depsp)); - } else if (res < 0) -- rpmlog(RPMLOG_WARNING, "%s overlaps %s, removing %s\n", rpmdsDNEVR(ds), rpmdsDNEVR(*depsp), rpmdsDNEVR(ds)); -+ rpmlog(RPMLOG_WARNING, "%s (%s) overlaps %s (%s), removing %s\n", rpmdsDNEVR(ds), fc->fn[fc->ix] + fc->brlen, rpmdsDNEVR(*depsp), ix < (int)fc->nfiles ? fc->fn[ix] + fc->brlen : "explicit", rpmdsDNEVR(ds)); - else -- rpmlog(RPMLOG_WARNING, "%s overlaps %s, removing %s and merging flags\n", rpmdsDNEVR(ds), rpmdsDNEVR(*depsp), rpmdsDNEVR(ds)); -+ rpmlog(RPMLOG_WARNING, "%s (%s) overlaps %s (%s), removing %s and merging flags\n", rpmdsDNEVR(ds), fc->fn[fc->ix] + fc->brlen, rpmdsDNEVR(*depsp), ix < (int)fc->nfiles ? fc->fn[ix] + fc->brlen : "explicit", rpmdsDNEVR(ds)); - - (*depsp)->Flags[(*depsp)->i] |= newflags; - diff --git a/rpm-5.4.7-rpmds-dont-try-fopen-empty-filenames.patch b/rpm-5.4.7-rpmds-dont-try-fopen-empty-filenames.patch deleted file mode 100644 index 3ce9f0b..0000000 --- a/rpm-5.4.7-rpmds-dont-try-fopen-empty-filenames.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.7/lib/rpmds.c.ds_stat~ 2012-03-13 19:42:38.344711524 +0100 -+++ rpm-5.4.7/lib/rpmds.c 2012-03-13 19:42:47.633723723 +0100 -@@ -2961,6 +2961,8 @@ static char *find_elf_interpreter(GElf_E - size_t shstrndx; - - if (filename) { -+ if (!*filename) -+ return NULL; - if (!(fp = fopen(filename, "r"))) { - perror(filename); - return NULL; diff --git a/rpm-5.4.7-rpmfc-fix-invalid-free-if-not-_defaultdocdir-set.patch b/rpm-5.4.7-rpmfc-fix-invalid-free-if-not-_defaultdocdir-set.patch deleted file mode 100644 index 9e77639..0000000 --- a/rpm-5.4.7-rpmfc-fix-invalid-free-if-not-_defaultdocdir-set.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.7/lib/rpmfc.c.free~ 2012-03-10 19:45:12.592164430 +0100 -+++ rpm-5.4.7/lib/rpmfc.c 2012-03-10 19:45:15.353166385 +0100 -@@ -901,7 +901,7 @@ static int rpmfcSCRIPT(rpmfc fc) - if (fc->fcolor->vals[fc->ix] & RPMFC_PERL) { - defaultdocdir = rpmExpand("%{?_defaultdocdir}", NULL); - if (defaultdocdir == NULL || *defaultdocdir == '\0') -- defaultdocdir = "/usr/share/doc"; -+ defaultdocdir = strdup("/usr/share/doc"); - - if (strncmp(fn, defaultdocdir, strlen(defaultdocdir))) { - if (fc->fcolor->vals[fc->ix] & RPMFC_MODULE) diff --git a/rpm-5.4.7-rpmfc-strdup-EVR-in-overlap-removal.patch b/rpm-5.4.7-rpmfc-strdup-EVR-in-overlap-removal.patch deleted file mode 100644 index 5c26d39..0000000 --- a/rpm-5.4.7-rpmfc-strdup-EVR-in-overlap-removal.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.7/lib/rpmfc.c.strdup~ 2012-03-13 18:49:34.187095285 +0100 -+++ rpm-5.4.7/lib/rpmfc.c 2012-03-13 18:49:49.438118160 +0100 -@@ -554,7 +554,7 @@ assert(EVR != NULL); - char *oldVal = xstrdup(strchr(rpmfcFileDep(buf, fc->ix, *depsp), ' ')); - if (res > 0) { - (*depsp)->Flags[(*depsp)->i] = Flags; -- (*depsp)->EVR[(*depsp)->i] = EVR; -+ (*depsp)->EVR[(*depsp)->i] = strdup(EVR); - rpmlog(RPMLOG_WARNING, "%s (%s) overlaps %s (%s), removing %s\n", rpmdsDNEVR(*depsp), ix < (int)fc->nfiles ? fc->fn[ix] + fc->brlen : "explicit", rpmdsDNEVR(ds), fc->fn[fc->ix] + fc->brlen, rpmdsDNEVR(*depsp)); - } else if (res < 0) - rpmlog(RPMLOG_WARNING, "%s (%s) overlaps %s (%s), removing %s\n", rpmdsDNEVR(ds), fc->fn[fc->ix] + fc->brlen, rpmdsDNEVR(*depsp), ix < (int)fc->nfiles ? fc->fn[ix] + fc->brlen : "explicit", rpmdsDNEVR(ds)); diff --git a/rpm-5.4.7-rpmv3-support.patch b/rpm-5.4.7-rpmv3-support.patch deleted file mode 100644 index b24a601..0000000 --- a/rpm-5.4.7-rpmv3-support.patch +++ /dev/null @@ -1,370 +0,0 @@ ---- rpm-5.4.7/rpmdb/package.c.rpmv3~ 2012-04-12 13:08:29.214493302 +0200 -+++ rpm-5.4.7/rpmdb/package.c 2012-04-12 16:33:05.021039135 +0200 -@@ -19,6 +19,8 @@ - - #include "rpmts.h" - -+#define _RPMEVR_INTERNAL -+#include - #include "debug.h" - - #define alloca_strdup(_s) strcpy(alloca(strlen(_s)+1), (_s)) -@@ -79,6 +81,349 @@ static int pgpStashKeyid(pgpDig dig) - } - #endif - -+/*@-boundsread@*/ -+static int dncmp(const void * a, const void * b) -+ /*@*/ -+{ -+ const char *const * first = a; -+ const char *const * second = b; -+ return strcmp(*first, *second); -+} -+/*@=boundsread@*/ -+ -+/*@-bounds@*/ -+/** -+ * Convert absolute path tag to (dirname,basename,dirindex) tags. -+ * @param h header -+ */ -+static void compressFilelist(Header h) -+ /*@modifies h @*/ -+{ -+ HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he)); -+ -+ char ** fileNames; -+ const char ** dirNames; -+ const char ** baseNames; -+ int32_t * dirIndexes; -+ rpmTagType fnt; -+ int count; -+ int i, xx; -+ int dirIndex = -1; -+ -+ /* -+ * This assumes the file list is already sorted, and begins with a -+ * single '/'. That assumption isn't critical, but it makes things go -+ * a bit faster. -+ */ -+ -+ if (headerIsEntry(h, RPMTAG_DIRNAMES)) { -+ he->tag = RPMTAG_OLDFILENAMES; -+ headerDel(h, he, 0); -+ return; /* Already converted. */ -+ } -+ -+ he->tag = RPMTAG_OLDFILENAMES; -+ if (!headerGet(h, he, 0)) -+ return; -+ -+ fileNames = he->p.ptr; -+ if (he->c <= 0) -+ return; -+ count = he->c; -+ -+ dirNames = alloca(sizeof(*dirNames) * count); /* worst case */ -+ baseNames = alloca(sizeof(*dirNames) * count); -+ dirIndexes = alloca(sizeof(*dirIndexes) * count); -+ -+ if (fileNames[0][0] != '/') { -+ /* HACK. Source RPM, so just do things differently */ -+ dirIndex = 0; -+ dirNames[dirIndex] = ""; -+ for (i = 0; i < count; i++) { -+ dirIndexes[i] = dirIndex; -+ baseNames[i] = fileNames[i]; -+ } -+ goto exit; -+ } -+ -+ /*@-branchstate@*/ -+ for (i = 0; i < count; i++) { -+ const char ** needle; -+ char savechar; -+ char * baseName; -+ int len; -+ -+ if (fileNames[i] == NULL) /* XXX can't happen */ -+ continue; -+ baseName = strrchr(fileNames[i], '/') + 1; -+ len = baseName - fileNames[i]; -+ needle = dirNames; -+ savechar = *baseName; -+ *baseName = '\0'; -+/*@-compdef@*/ -+ if (dirIndex < 0 || -+ (needle = bsearch(&fileNames[i], dirNames, dirIndex + 1, sizeof(dirNames[0]), dncmp)) == NULL) { -+ char *s = alloca(len + 1); -+ memcpy(s, fileNames[i], len + 1); -+ s[len] = '\0'; -+ dirIndexes[i] = ++dirIndex; -+ dirNames[dirIndex] = s; -+ } else -+ dirIndexes[i] = needle - dirNames; -+/*@=compdef@*/ -+ -+ *baseName = savechar; -+ baseNames[i] = baseName; -+ } -+ /*@=branchstate@*/ -+ -+exit: -+ if (count > 0) { -+ -+ he->tag = RPMTAG_DIRINDEXES; -+ if (headerGet(h, he, 0)) -+ dirIndexes = he->p.ptr; -+ he->tag = RPMTAG_BASENAMES; -+ if (headerGet(h, he, 0)) -+ baseNames = he->p.ptr; -+ he->tag = RPMTAG_DIRNAMES; -+ if (headerGet(h, he, 0)) -+ dirNames = he->p.ptr; -+ -+ he->tag = RPMTAG_DIRINDEXES; -+ he->t = RPM_UINT32_TYPE; -+ he->p.ptr = dirIndexes; -+ he->c = count; -+ headerPut(h, he, 0); -+ -+ he->tag = RPMTAG_BASENAMES; -+ he->t = RPM_STRING_ARRAY_TYPE; -+ he->p.ptr = baseNames; -+ he->c = count; -+ headerPut(h, he, 0); -+ -+ he->tag = RPMTAG_DIRNAMES; -+ he->t = RPM_STRING_ARRAY_TYPE; -+ he->p.ptr = dirNames; -+ he->c = dirIndex +1; -+ headerPut(h,he,0); -+ } -+ -+ fileNames = _free(fileNames); -+ -+ he->tag = RPMTAG_OLDFILENAMES; -+ headerDel(h, he, 0); -+ -+} -+/*@=bounds@*/ -+ -+/* copied verbatim from build/pack.c */ -+static void providePackageNVR(Header h) -+{ -+ HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he)); -+ const char *N, *V, *R; -+#ifdef RPM_VENDOR_MANDRIVA -+ const char *D; -+ int gotD; -+#endif -+ rpmuint32_t E; -+ int gotE; -+ const char *pEVR; -+ char *p; -+ rpmuint32_t pFlags = RPMSENSE_EQUAL; -+ const char ** provides = NULL; -+ const char ** providesEVR = NULL; -+ rpmuint32_t * provideFlags = NULL; -+ int providesCount; -+ int bingo = 1; -+ size_t nb; -+ int xx; -+ int i; -+ -+ /* Generate provides for this package N-V-R. */ -+ xx = headerNEVRA(h, &N, NULL, &V, &R, NULL); -+ if (!(N && V && R)) -+ return; -+ -+ nb = 21 + strlen(V) + 1 + strlen(R) + 1; -+#ifdef RPM_VENDOR_MANDRIVA -+ he->tag = RPMTAG_DISTEPOCH; -+ gotD = headerGet(h, he, 0); -+ D = (he->p.str ? he->p.str : NULL); -+ nb += (gotD ? strlen(D) + 1 : 0); -+#endif -+ pEVR = p = alloca(nb); -+ *p = '\0'; -+ he->tag = RPMTAG_EPOCH; -+ gotE = headerGet(h, he, 0); -+ E = (he->p.ui32p ? he->p.ui32p[0] : 0); -+ he->p.ptr = _free(he->p.ptr); -+ if (gotE) { -+ sprintf(p, "%d:", E); -+ p += strlen(p); -+ } -+ p = stpcpy( stpcpy( stpcpy(p, V) , "-") , R); -+#ifdef RPM_VENDOR_MANDRIVA -+ if (gotD) { -+ p = stpcpy( stpcpy( p, ":"), D); -+ D = _free(D); -+ //(void) rpmlibNeedsFeature(h, "DistEpoch", "5.4.7-1"); -+ } -+#endif -+ V = _free(V); -+ R = _free(R); -+ -+ /* -+ * Rpm prior to 3.0.3 does not have versioned provides. -+ * If no provides at all are available, we can just add. -+ */ -+ he->tag = RPMTAG_PROVIDENAME; -+/*@-nullstate@*/ -+ xx = headerGet(h, he, 0); -+/*@=nullstate@*/ -+ provides = he->p.argv; -+ providesCount = he->c; -+ if (!xx) -+ goto exit; -+ -+ /* -+ * Otherwise, fill in entries on legacy packages. -+ */ -+ he->tag = RPMTAG_PROVIDEVERSION; -+/*@-nullstate@*/ -+ xx = headerGet(h, he, 0); -+/*@=nullstate@*/ -+ providesEVR = he->p.argv; -+ if (!xx) { -+ for (i = 0; i < providesCount; i++) { -+ /*@observer@*/ -+ static const char * vdummy = ""; -+ static rpmsenseFlags fdummy = RPMSENSE_ANY; -+ -+ he->tag = RPMTAG_PROVIDEVERSION; -+ he->t = RPM_STRING_ARRAY_TYPE; -+ he->p.argv = &vdummy; -+ he->c = 1; -+ he->append = 1; -+/*@-nullstate@*/ -+ xx = headerPut(h, he, 0); -+/*@=nullstate@*/ -+ he->append = 0; -+ -+ he->tag = RPMTAG_PROVIDEFLAGS; -+ he->t = RPM_UINT32_TYPE; -+ he->p.ui32p = (void *) &fdummy; -+ he->c = 1; -+ he->append = 1; -+/*@-nullstate@*/ -+ xx = headerPut(h, he, 0); -+/*@=nullstate@*/ -+ he->append = 0; -+ } -+ goto exit; -+ } -+ -+ he->tag = RPMTAG_PROVIDEFLAGS; -+/*@-nullstate@*/ -+ xx = headerGet(h, he, 0); -+/*@=nullstate@*/ -+ provideFlags = he->p.ui32p; -+ -+ /*@-nullderef@*/ /* LCL: providesEVR is not NULL */ -+ if (provides && providesEVR && provideFlags) -+ for (i = 0; i < providesCount; i++) { -+ if (!(provides[i] && providesEVR[i])) -+ continue; -+ if (!(provideFlags[i] == RPMSENSE_EQUAL && -+ !strcmp(N, provides[i]) && !strcmp(pEVR, providesEVR[i]))) -+ continue; -+ bingo = 0; -+ break; -+ } -+ /*@=nullderef@*/ -+ -+exit: -+/*@-usereleased@*/ -+ provides = _free(provides); -+ providesEVR = _free(providesEVR); -+ provideFlags = _free(provideFlags); -+/*@=usereleased@*/ -+ -+ if (bingo) { -+ he->tag = RPMTAG_PROVIDENAME; -+ he->t = RPM_STRING_ARRAY_TYPE; -+ he->p.argv = &N; -+ he->c = 1; -+ he->append = 1; -+/*@-nullstate@*/ -+ xx = headerPut(h, he, 0); -+/*@=nullstate@*/ -+ he->append = 0; -+ -+ /* XXX succeeds only at allocating the necessary appended space, -+ * not copying to it..? */ -+ xx = headerGet(h, he, 0); -+ he->p.argv[providesCount] = N; -+ xx = headerPut(h, he, 0); -+ _free(he->p.ptr); -+ -+ he->tag = RPMTAG_PROVIDEVERSION; -+ he->t = RPM_STRING_ARRAY_TYPE; -+ he->p.argv = &pEVR; -+ he->c = 1; -+ he->append = 1; -+/*@-nullstate@*/ -+ xx = headerPut(h, he, 0); -+/*@=nullstate@*/ -+ he->append = 0; -+ -+ he->tag = RPMTAG_PROVIDEFLAGS; -+ he->t = RPM_UINT32_TYPE; -+ he->p.ui32p = &pFlags; -+ he->c = 1; -+ he->append = 1; -+/*@-nullstate@*/ -+ xx = headerPut(h, he, 0); -+/*@=nullstate@*/ -+ he->append = 0; -+ } -+ N = _free(N); -+} -+ -+static void add_RPMTAG_SOURCERPM(Header h) -+{ -+ if (!headerIsEntry(h, RPMTAG_SOURCERPM) && !headerIsEntry(h, RPMTAG_SOURCEPACKAGE)) { -+ /* we have no way to know if this is a srpm or an rpm with no SOURCERPM */ -+ /* but since this is an old v3 rpm, we suppose it's not a srpm */ -+ HE_t he = (HE_t)memset(alloca(sizeof(*he)), 0, sizeof(*he)); -+ -+ he->tag = RPMTAG_SOURCERPM; -+ he->t = RPM_STRING_TYPE; -+ he->p.str = "\0"; -+ he->c = 1; -+ headerPut(h, he, 0); -+ } -+} -+ -+/* rpm v3 compatibility */ -+static void rpm3to4(Header h) { -+ const char * rpmversion = NULL; -+ HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he)); -+ -+ he->tag = RPMTAG_RPMVERSION; -+ if (headerGet(h, he, 0)) { -+ rpmversion = he->p.str; -+ } -+ -+ if ((!rpmversion) || rpmversion[0] < '4') { -+ add_RPMTAG_SOURCERPM(h); -+ providePackageNVR(h); -+ compressFilelist(h); -+ } -+ rpmversion = _free(rpmversion); -+ return; -+} -+ - /*@-mods@*/ - rpmRC rpmReadPackageFile(rpmts ts, FD_t fd, const char * fn, Header * hdrp) - { -@@ -383,6 +728,8 @@ exit: - /* Append (and remap) signature tags to the metadata. */ - headerMergeLegacySigs(h, sigh); - -+ rpm3to4(h); -+ - /* Bump reference count for return. */ - *hdrp = headerLink(h); - } diff --git a/rpm-5.4.7-use-bdb-5.2.patch b/rpm-5.4.7-use-bdb-5.2.patch deleted file mode 100644 index 371a996..0000000 --- a/rpm-5.4.7-use-bdb-5.2.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- rpm-5.4.7/configure.ac.db52~ 2012-03-09 06:13:04.186897418 +0100 -+++ rpm-5.4.7/configure.ac 2012-03-09 06:13:12.825902025 +0100 -@@ -541,7 +541,7 @@ else - MYPATH=$PATH - fi - --DBXY=db53 -+DBXY=db52 - - AC_PATH_PROG(__BASH, bash, %{_bindir}/bash, $MYPATH) - AC_PATH_PROG(__BZIP2, bzip2, %{_bindir}/bzip2, $MYPATH) -@@ -1560,7 +1560,7 @@ DBLIBSRCS="" - CPPFLAGS="${CPPFLAGS} -I${prefix}/include/${DBXY}" - RPM_CHECK_LIB( - [Berkeley-DB], [db], -- [db-5.3], [db_create], [db.h], -+ [db-5.2], [db_create], [db.h], - [yes,external], [db3], - [ DBLIBSRCS="$DBLIBSRCS db3.c" - AM_CONDITIONAL(WITH_DB, [ true ]) -@@ -1587,7 +1587,7 @@ dnl # Sqlite 3.7.0.1 from db-5.1.19 - dnl XXX error: `db3' is already registered with AC_CONFIG_SUBDIRS. - RPM_CHECK_LIB( - [Berkeley-DB (+SQLite3)], [dbsql], -- [db_sql-5.3], [sqlite3_open], [dbsql.h], -+ [db_sql-5.2], [sqlite3_open], [dbsql.h], - [yes,external], [db3/sql], - [ - AM_CONDITIONAL(WITH_DBSQL, [ true ]) diff --git a/rpm-5.4.7-use-gnu-hash-style-by-default-and-drop-rtld-dep.patch b/rpm-5.4.7-use-gnu-hash-style-by-default-and-drop-rtld-dep.patch deleted file mode 100644 index a167009..0000000 --- a/rpm-5.4.7-use-gnu-hash-style-by-default-and-drop-rtld-dep.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- rpm-5.4.7/lib/rpmds.c.gnu_hash~ 2012-03-10 17:35:53.830770413 +0100 -+++ rpm-5.4.7/lib/rpmds.c 2012-03-10 17:35:53.837770420 +0100 -@@ -3455,6 +3455,7 @@ assert(s != NULL); - } - /*@=uniondef @*/ - -+#if !defined(RPM_VENDOR_MANDRIVA) - /* For DSOs which use the .gnu_hash section and don't have a .hash - * section, we need to ensure that we have a new enough glibc. */ - if (gotGNUHASH && !gotHASH) { -@@ -3464,6 +3465,7 @@ assert(s != NULL); - (void)rpmdsFree(ds); - ds = NULL; - } -+#endif - - /* For DSO's, provide the basename of the file if DT_SONAME not found. */ - if (!skipP && isDSO && !gotDEBUG && !gotSONAME) { ---- rpm-5.4.7/macros/mandriva.in.gnu_hash~ 2012-03-10 17:35:53.000000000 +0100 -+++ rpm-5.4.7/macros/mandriva.in 2012-03-10 17:39:05.871934996 +0100 -@@ -358,7 +358,7 @@ GCONF_CONFIG_SOURCE=`%{_gconftool_bin} - - - %__libtoolize_configure %{?__libtoolize:(cd $CONFIGURE_TOP; [ ! -f configure.in -a ! -f configure.ac ] || %{__libtoolize} --copy --force)} - --%ldflags %{?!_disable_ld_as_needed: -Wl,--as-needed}%{?!_disable_ld_no_undefined: -Wl,--no-undefined}%{?!_disable_ld_relro: -Wl,-z,relro}%{?!_disable_ld_O1: -Wl,-O1}%{?!_disable_ld_build_id: -Wl,--build-id}%{?!_disable_ld_enable_new_dtags: -Wl,--enable-new-dtags}%{?_hardened_flags: %_hardened_flags} -+%ldflags %{?!_disable_ld_as_needed: -Wl,--as-needed}%{?!_disable_ld_no_undefined: -Wl,--no-undefined}%{?!_disable_ld_relro: -Wl,-z,relro}%{?!_disable_ld_O1: -Wl,-O1}%{?!_disable_ld_build_id: -Wl,--build-id}%{?!_disable_ld_enable_new_dtags: -Wl,--enable-new-dtags}%{?!_disable_hash_style_gnu: -Wl,--hash-style=gnu}%{?_hardened_flags: %_hardened_flags} - - %setup_compile_flags \ - CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ; \ diff --git a/rpm-5.4.8-URPM-build-fix.patch b/rpm-5.4.8-URPM-build-fix.patch deleted file mode 100644 index b0e029d..0000000 --- a/rpm-5.4.8-URPM-build-fix.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- rpm-5.4.8/configure.ac.urpm~ 2012-04-25 19:27:07.929167065 +0200 -+++ rpm-5.4.8/configure.ac 2012-04-25 19:29:04.996867674 +0200 -@@ -1198,8 +1198,8 @@ AC_ARG_WITH(perl-urpm, AS_HELP_STRING([- - AC_SUBST(PERL_URPM_INSTALLDIRS) - WITH_PERL_URPM_SUBDIR=perl-URPM - WITH_PERL_URPM_SUBPACKAGE=1 -- AC_CONFIG_FILES([perl-URPM/Makefile.PL]) -- AC_CONFIG_FILES([perl-URPM/Makefile]) -+ AC_CONFIG_FILES([scripts/URPM-Makefile.PL]) -+ AC_CONFIG_FILES([scripts/URPM-Makefile]) - fi - ]) - AC_SUBST(WITH_PERL_URPM_SUBDIR) diff --git a/rpm-5.4.8-add-armv7l-specific-macros.patch b/rpm-5.4.8-add-armv7l-specific-macros.patch deleted file mode 100644 index 4bc053c..0000000 --- a/rpm-5.4.8-add-armv7l-specific-macros.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 727484174300654bc4b3881f3db2889a05f3895c Mon Sep 17 00:00:00 2001 -From: Franck Bui -Date: Thu, 26 Apr 2012 13:21:45 +0000 -Subject: [PATCH 1/1] Add armv7l target - -Signed-off-by: Franck Bui ---- - cpu-os-macros/armv7l-linux/macros | 82 +++++++++++++++++++++++++++++++++++++ - 2 files changed, 83 insertions(+), 1 deletions(-) - create mode 100644 cpu-os-macros/armv7l-linux/macros - -diff --git a/cpu-os-macros/armv7l-linux/macros b/cpu-os-macros/armv7l-linux/macros -new file mode 100644 -index 0000000..f12a8a2 ---- /dev/null -+++ b/cpu-os-macros/armv7l-linux/macros -@@ -0,0 +1,19 @@ -+# Per-platform rpm configuration file. -+ -+#============================================================================== -+# ---- per-platform macros. -+# -+%_arch arm -+%_os linux -+%_gnu -gnueabi -+%optflags -O2 -g -fpic -fPIC -fno-strict-volatile-bitfields -+ -+#============================================================================== -+# ---- configure macros. -+# -+%_lib lib -+ -+#--------------------------------------------------------------------- -+# Multilibs -+%_multilibno 1 -+%_multilibpatt (/%{_lib}|/usr/%{_lib}(|/gconv)|/usr/local/%{_lib}|/usr/X11R6/%{_lib}|/opt/%{_lib})/[^/]*\\.([oa]|la|so[0-9.]*)$ diff --git a/rpm-5.4.8-dont-show-suggests-with-requires.patch b/rpm-5.4.8-dont-show-suggests-with-requires.patch deleted file mode 100644 index 19cf1e0..0000000 --- a/rpm-5.4.8-dont-show-suggests-with-requires.patch +++ /dev/null @@ -1,62 +0,0 @@ ---- rpm-5.4.8/rpmdb/hdrfmt.c.suggests~ 2012-04-25 17:58:22.721144146 +0200 -+++ rpm-5.4.8/rpmdb/hdrfmt.c 2012-04-25 18:33:32.293704707 +0200 -@@ -1607,6 +1607,38 @@ static const char * bfstring(unsigned in - #endif - - /** -+ * Format dependency flags for display. -+ * @param he tag container -+ * @param av parameter list (or NULL) -+ * @return formatted string -+ */ -+static /*@only@*/ -+char * hintFormat(HE_t he, /*@unused@*/ /*@null@*/ const char ** av) -+ /*@*/ -+{ -+ int ix = (he->ix > 0 ? he->ix : 0); -+ char * val; -+ -+assert(ix == 0); -+ if (he->t != RPM_UINT64_TYPE) { -+ val = xstrdup(_("(invalid type)")); -+ } else { -+ rpmuint64_t anint = he->p.ui64p[ix]; -+ char *t, *buf; -+ -+ t = buf = alloca(32); -+ *t = '\0'; -+ -+ if (anint & RPMSENSE_MISSINGOK) -+ t = stpcpy(t, "(hint)"); -+ *t = '\0'; -+ -+ val = xstrdup(buf); -+ } -+ -+ return val; -+} -+/** - * Retrieve install prefixes. - * @param h header - * @retval *he tag container -@@ -5201,6 +5233,8 @@ static struct headerSprintfExtension_s _ - { .fmtFunction = digestFormat } }, - { HEADER_EXT_FORMAT, "fflags", - { .fmtFunction = fflagsFormat } }, -+ { HEADER_EXT_FORMAT, "hint", -+ { .fmtFunction = hintFormat } }, - { HEADER_EXT_FORMAT, "iconv", - { .fmtFunction = iconvFormat } }, - { HEADER_EXT_FORMAT, "json", ---- rpm-5.4.8/rpmpopt.in.suggests~ 2012-04-25 17:58:22.439141788 +0200 -+++ rpm-5.4.8/rpmpopt.in 2012-04-25 18:33:32.295704719 +0200 -@@ -98,7 +98,8 @@ rpm alias --provides --qf \ - --POPTdesc=$"list capabilities that this package provides" - - rpm alias --requires --qf \ -- "[%{REQUIRENAME}%{REQUIREFLAGS:depflags}%{REQUIREVERSION}\n]" \ -+ "[%{REQUIRENAME}%{REQUIREFLAGS:hint:depflags}%{REQUIREVERSION}\n]" \ -+ --pipe "grep -v \(hint\)" \ - --POPTdesc=$"list capabilities required by package(s)" - rpm alias -R --requires - diff --git a/rpm-5.4.9-add-distepoch-rpmlib-feature.patch b/rpm-5.4.9-add-distepoch-rpmlib-feature.patch deleted file mode 100644 index 193e450..0000000 --- a/rpm-5.4.9-add-distepoch-rpmlib-feature.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- rpm-5.4.9/lib/rpmds.c.depoch_rpmlib~ 2012-05-15 02:59:01.000000000 +0200 -+++ rpm-5.4.9/lib/rpmds.c 2012-05-15 03:00:11.147448068 +0200 -@@ -1565,6 +1565,11 @@ static struct rpmlibProvides_s rpmlibPro - { "rpmlib(SetVersions)", "4.0.4-alt98", - (evrFlags)(RPMSENSE_RPMLIB|RPMSENSE_EQUAL), - N_("dependencies support set/subset versions.") }, -+#if defined(RPM_VENDOR_MANDRIVA) -+ { "rpmlib(DistEpoch)", "5.4.7-1", -+ (RPMSENSE_RPMLIB|RPMSENSE_EQUAL), -+ N_("package has distepoch.") }, -+#endif - { NULL, NULL, (evrFlags)0, NULL } - }; - diff --git a/rpm-5.4.9-add-filetriggers-regex-matching-support.patch b/rpm-5.4.9-add-filetriggers-regex-matching-support.patch deleted file mode 100644 index b940477..0000000 --- a/rpm-5.4.9-add-filetriggers-regex-matching-support.patch +++ /dev/null @@ -1,111 +0,0 @@ ---- rpm-5.4.9/build/parseReqs.c.trig_pcre~ 2009-06-13 11:07:44.000000000 +0200 -+++ rpm-5.4.9/build/parseReqs.c 2012-05-15 03:05:07.438054281 +0200 -@@ -110,7 +110,7 @@ rpmRC parseRCPOT(Spec spec, Package pkg, - ix = 0; - if (N[ix] == '!') - ix++; -- if (!(xisalnum(N[ix]) || N[ix] == '_' || N[ix] == '/' -+ if (!(xisalnum(N[ix]) || N[ix] == '_' || N[ix] == '/' || N[ix] == '^' - || (nr > 5 && N[ix] == '%' && N[ix+1] == '{' && N[nr-1] == '}'))) - { - rpmlog(RPMLOG_ERR, ---- rpm-5.4.9/lib/psm.c.trig_pcre~ 2012-05-15 03:05:07.085052367 +0200 -+++ rpm-5.4.9/lib/psm.c 2012-05-15 03:07:11.367726113 +0200 -@@ -67,6 +67,9 @@ - - #include "debug.h" - -+#define PATT_ISDIR(patt, len) ((patt[0] == '/' && patt[len-1] == '/') || \ -+ (patt[0] == '^' && patt[len-1] == '$' && patt[len-2] == '/')) -+ - #define _PSM_DEBUG 0 - /*@unchecked@*/ - int _psm_debug = _PSM_DEBUG; -@@ -1285,11 +1288,11 @@ static rpmRC handleOneTrigger(const rpmp - - bingo = 0; /* no trigger to fire. */ - depName = (char *) rpmdsN(Tds); -- if (depName[0] == '/') { -+ if (depName[0] == '^' || depName[0] == '/') { - size_t nb = strlen(depName); -- if (Glob_pattern_p(depName, 0)) { -+ if (depName[0] == '^' || Glob_pattern_p(depName, 0)) { - rpmds ds = NULL; -- if (depName[nb-1] == '/') { -+ if (PATT_ISDIR(depName, nb)) { - /* XXX Dirnames w trailing "/" needed. */ - if (Dds == NULL) - Dds = rpmdsNew(sourceH, RPMTAG_DIRNAMES, 0x2); -@@ -1300,7 +1303,7 @@ static rpmRC handleOneTrigger(const rpmp - ds = rpmdsLink(Fds, "Triggers"); - } - if (mire == NULL) -- mire = mireNew(RPMMIRE_GLOB, 0); -+ mire = mireNew(depName[0] == '^' ? RPMMIRE_PCRE : RPMMIRE_GLOB, 0); - - xx = mireRegcomp(mire, depName); - if ((ds = rpmdsInit(ds)) != NULL) -@@ -1318,7 +1321,7 @@ static rpmRC handleOneTrigger(const rpmp - } - - /* If not matched, and directory trigger, try dir names. */ -- if (!bingo && depName[nb-1] == '/') { -+ if (!bingo && PATT_ISDIR(depName, nb)) { - /* XXX Dirnames w trailing "/" needed. */ - if (Dds == NULL) - Dds = rpmdsNew(sourceH, RPMTAG_DIRNAMES, 0x2); -@@ -1401,9 +1404,9 @@ static int rpmdbTriggerGlobs(rpmpsm psm) - if (keys) - for (i = 0; i < nkeys; i++) { - char * t = (char *) keys[i]; -- if (!Glob_pattern_p(t, 0)) -+ if (!(t[0] == '^' || Glob_pattern_p(t, 0))) - continue; -- xx = mireAppend(RPMMIRE_GLOB, 0, t, NULL, -+ xx = mireAppend(t[0] == '^' ? RPMMIRE_PCRE : RPMMIRE_GLOB, 0, t, NULL, - (miRE *)&psm->Tmires, &psm->nTmires); - xx = argvAdd(&psm->Tpats, t); - } -@@ -1461,7 +1464,7 @@ static rpmRC runTriggersLoop(rpmpsm psm, - const char * pattern = psm->Tpats[j]; - if (depName[nName-1] != '/') { - size_t npattern = strlen(pattern); -- depName[nName] = (pattern[npattern-1] == '/') ? '/' : '\0'; -+ depName[nName] = PATT_ISDIR(pattern, npattern) ? '/' : '\0'; - } - if (mireRegexec(mire, depName, 0) < 0) - /*@innercontinue@*/ continue; -@@ -1634,14 +1637,14 @@ assert(fi->h != NULL); - - /* If not limited to NEVRA triggers, use file/dir index. */ - if (tagno != RPMTAG_NAME) { -+ size_t nb = strlen(N); - /* XXX if trigger name ends with '/', use dirnames instead. */ -- if (N[0] == '/') -- tagno = (N[strlen(N)-1] == '/') -- ? RPMTAG_DIRNAMES : RPMTAG_FILEPATHS; -+ if (N[0] == '^' || N[0] == '/') -+ tagno = (PATT_ISDIR(N, nb)) ? RPMTAG_DIRNAMES : RPMTAG_FILEPATHS; - } - /* XXX For now, permit globs only in unversioned triggers. */ -- if ((EVR == NULL || *EVR == '\0') && Glob_pattern_p(N, 0)) -- xx = rpmdbMireApply(rpmtsGetRdb(ts), tagno, RPMMIRE_GLOB, N, &keys); -+ if ((EVR == NULL || *EVR == '\0') && (N[0] == '^' || Glob_pattern_p(N, 0))) -+ xx = rpmdbMireApply(rpmtsGetRdb(ts), tagno, N[0] == '^' ? RPMMIRE_PCRE : RPMMIRE_GLOB, N, &keys); - else - xx = argvAdd(&keys, N); - } -@@ -1657,10 +1660,10 @@ assert(fi->h != NULL); - - /* If not limited to NEVRA triggers, use file/dir index. */ - if (tagno != RPMTAG_NAME) { -+ size_t nb = strlen(Name); - /* XXX if trigger name ends with '/', use dirnames instead. */ -- if (Name[0] == '/') -- tagno = (Name[strlen(Name)-1] == '/') -- ? RPMTAG_DIRNAMES : RPMTAG_FILEPATHS; -+ if (Name[0] == '^' || Name[0] == '/') -+ tagno = PATT_ISDIR(Name, nb) ? RPMTAG_DIRNAMES : RPMTAG_FILEPATHS; - } - - mi = rpmtsInitIterator(ts, tagno, Name, 0); diff --git a/rpm-5.4.9-add-matches-as-arguments-to-triggers.patch b/rpm-5.4.9-add-matches-as-arguments-to-triggers.patch deleted file mode 100644 index 67322d4..0000000 --- a/rpm-5.4.9-add-matches-as-arguments-to-triggers.patch +++ /dev/null @@ -1,135 +0,0 @@ ---- rpm-5.4.9/lib/psm.c.trigger_args~ 2012-05-15 03:08:19.198093824 +0200 -+++ rpm-5.4.9/lib/psm.c 2012-05-15 03:14:25.545079818 +0200 -@@ -610,28 +610,37 @@ static int exitChroot(rpmpsm psm, int in - * @return RPMRC_OK on success - */ - static rpmRC runEmbeddedScript(rpmpsm psm, const char * sln, HE_t Phe, -- const char *script, int arg1, int arg2) -+ const char *script, int arg1, int arg2, ARGV_t matches) - /*@globals fileSystem, internalState @*/ - /*@modifies psm, fileSystem, internalState @*/ - { -- char * av[] = { NULL, NULL, NULL, NULL }; -+ char ** av = NULL; - int pwdFdno = -1; - int rootFdno = -1; - rpmRC rc = RPMRC_OK; - int xx = 0; - rpmuint32_t * ssp = NULL; - int inChroot = enterChroot(psm, &pwdFdno, &rootFdno); -+ size_t len = 4 + (matches ? argvCount(matches) : 0); - - if (psm->sstates != NULL) - ssp = psm->sstates + tag2slx(psm->scriptTag); - if (ssp != NULL) - *ssp |= (RPMSCRIPT_STATE_EMBEDDED|RPMSCRIPT_STATE_EXEC); - -- av[0] = (char *) Phe->p.argv[0]; -+ av = alloca(len * sizeof(*av)); - if (arg1 >= 0) - (void) sprintf((av[1] = (char *) alloca(32)), "%d", arg1); -+ else -+ av[1] = NULL; - if (arg2 >= 0) - (void) sprintf((av[2] = (char *) alloca(32)), "%d", arg2); -+ else -+ av[2] = NULL; -+ if (matches) -+ memcpy(&av[3], argvData(matches), argvCount(matches) * sizeof(*argvData(matches))); -+ av[len-1] = NULL; -+ - - #if defined(WITH_LUA) - if (!strcmp(Phe->p.argv[0], "")) { -@@ -776,7 +785,7 @@ static const char * ldconfig_path = "/sb - * @return RPMRC_OK on success - */ - static rpmRC runScript(rpmpsm psm, Header h, const char * sln, HE_t Phe, -- const char * script, int arg1, int arg2) -+ const char * script, int arg1, int arg2, ARGV_t matches) - /*@globals ldconfig_done, rpmGlobalMacroContext, h_errno, - fileSystem, internalState@*/ - /*@modifies psm, ldconfig_done, rpmGlobalMacroContext, -@@ -843,7 +852,7 @@ assert(he->p.str != NULL); - rpmlog(RPMLOG_DEBUG, - D_("%s: %s(%s) running %s scriptlet.\n"), - psm->stepName, tag2sln(psm->scriptTag), NVRA, Phe->p.argv[0]); -- rc = runEmbeddedScript(psm, sln, Phe, body, arg1, arg2); -+ rc = runEmbeddedScript(psm, sln, Phe, body, arg1, arg2, matches); - #endif - goto exit; - } -@@ -870,12 +879,12 @@ assert(he->p.str != NULL); - (F_ISSET(psm, UNORDERED) ? "a" : "")); - - if (Phe->p.argv == NULL) { -- argv = (const char **) alloca(5 * sizeof(*argv)); -+ argv = alloca(5 + (matches ? argvCount(matches) : 0 ) * sizeof(*argv)); - argv[0] = "/bin/sh"; - argc = 1; - ldconfig_done = 0; - } else { -- argv = (const char **) alloca((Phe->c + 4) * sizeof(*argv)); -+ argv = alloca((Phe->c + 4) + (matches ? argvCount(matches) : 0 ) * sizeof(*argv)); - memcpy(argv, Phe->p.argv, Phe->c * sizeof(*argv)); - argc = Phe->c; - ldconfig_done = (ldconfig_path && !strcmp(argv[0], ldconfig_path) -@@ -959,6 +968,10 @@ assert(he->p.str != NULL); - sprintf(av, "%d", arg2); - argv[argc++] = av; - } -+ if (matches) { -+ memcpy(&argv[argc], argvData(matches), argvCount(matches) * sizeof(*argvData(matches))); -+ argc += argvCount(matches); -+ } - } - - argv[argc] = NULL; -@@ -1199,7 +1212,7 @@ assert(fi->h != NULL); - Phe->p.argv[0] = argv0 = rpmExpand(Phe->p.argv[0], NULL); - - rc = runScript(psm, fi->h, tag2sln(psm->scriptTag), Phe, -- She->p.str, psm->scriptArg, -1); -+ She->p.str, psm->scriptArg, -1, NULL); - - exit: - argv0 = _free(argv0); -@@ -1280,6 +1293,7 @@ static rpmRC handleOneTrigger(const rpmp - while ((i = rpmdsNext(Tds)) >= 0) { - rpmuint32_t Flags = rpmdsFlags(Tds); - char * depName; -+ ARGV_t matches = NULL; - int bingo; - - /* Skip triggers that are not in this context. */ -@@ -1313,7 +1327,7 @@ static rpmRC handleOneTrigger(const rpmp - if (xx < 0) - /*@innercontinue@*/ continue; - bingo = 1; -- /*@innerbreak@*/ break; -+ argvAdd(&matches, N); - } - (void)rpmdsFree(ds); - ds = NULL; -@@ -1347,7 +1361,6 @@ static rpmRC handleOneTrigger(const rpmp - continue; - - /* Coerce strings into header argv return. */ -- /* XXX FIXME: permit trigger scripts with arguments. */ - { int index = Ihe->p.ui32p[i]; - const char * s = Phe->p.argv[index]; - char * t; -@@ -1362,11 +1375,12 @@ static rpmRC handleOneTrigger(const rpmp - *t = '\0'; - - if (runScript(psm, triggeredH, "%trigger", he, -- She->p.argv[index], arg1, arg2)) -+ She->p.argv[index], arg1, arg2, matches)) - rc = RPMRC_FAIL; - - he->p.ptr = _free(he->p.ptr); - } -+ argvFree(matches); - } - - mire = mireFree(mire); diff --git a/rpm-5.4.9-add-support-for-using-rpmdsMerge-with-filepath-tags.patch b/rpm-5.4.9-add-support-for-using-rpmdsMerge-with-filepath-tags.patch deleted file mode 100644 index bfcc7c5..0000000 --- a/rpm-5.4.9-add-support-for-using-rpmdsMerge-with-filepath-tags.patch +++ /dev/null @@ -1,84 +0,0 @@ ---- rpm-5.4.9/lib/rpmds.c.ds_merge~ 2012-05-15 03:43:11.000000000 +0200 -+++ rpm-5.4.9/lib/rpmds.c 2012-05-15 03:46:37.823554837 +0200 -@@ -973,21 +973,24 @@ static rpmds rpmdsDup(const rpmds ods) - : rpmdsDupArgv(ods->N, ods->Count) ); - - /* XXX rpm prior to 3.0.2 did not always supply EVR and Flags. */ -+ if (ods->tagN != RPMTAG_BASENAMES && -+ ods->tagN != RPMTAG_DIRNAMES && -+ ods->tagN != RPMTAG_FILEPATHS) { - assert(ods->EVR != NULL); - assert(ods->Flags != NULL); -- -- nb = (ds->Count+1) * sizeof(*ds->EVR); -- ds->EVR = (const char **) (ds->h != NULL -- ? memcpy(xmalloc(nb), ods->EVR, nb) -- : rpmdsDupArgv(ods->EVR, ods->Count) ); -- -- nb = (ds->Count * sizeof(*ds->Flags)); -- ds->Flags = (evrFlags *) (ds->h != NULL -- ? ods->Flags -- : memcpy(xmalloc(nb), ods->Flags, nb) ); -- ds->nopromote = ods->nopromote; --/*@-assignexpose@*/ -- ds->EVRcmp = ods->EVRcmp;; -+ nb = (ds->Count+1) * sizeof(*ds->EVR); -+ ds->EVR = (ds->h != NULL -+ ? memcpy(xmalloc(nb), ods->EVR, nb) -+ : rpmdsDupArgv(ods->EVR, ods->Count) ); -+ -+ nb = (ds->Count * sizeof(*ds->Flags)); -+ ds->Flags = (ds->h != NULL -+ ? ods->Flags -+ : memcpy(xmalloc(nb), ods->Flags, nb) ); -+ ds->nopromote = ods->nopromote; -+ /*@-assignexpose@*/ -+ ds->EVRcmp = ods->EVRcmp; -+ } - /*@=assignexpose@*/ - - /*@-compmempass@*/ /* FIX: ds->Flags is kept, not only */ -@@ -1075,24 +1078,28 @@ save = ods->i; - - /* XXX rpm prior to 3.0.2 did not always supply EVR and Flags. */ - /*@-nullderef -nullpass -nullptrarith @*/ -+ if (ds->tagN != RPMTAG_BASENAMES && -+ ds->tagN != RPMTAG_DIRNAMES && -+ ds->tagN != RPMTAG_FILEPATHS) { - assert(ods->EVR != NULL); - assert(ods->Flags != NULL); - -- for (j = ds->Count; j > (int)ds->u; j--) -- ds->EVR[j] = ds->EVR[j-1]; -- ds->EVR[ds->u] = ods->EVR[ods->i]; -- EVR = rpmdsDupArgv(ds->EVR, ds->Count+1); -- ds->EVR = _free(ds->EVR); -- ds->EVR = EVR; -- -- Flags = (evrFlags *) xmalloc((ds->Count+1) * sizeof(*Flags)); -- if (ds->u > 0) -- memcpy(Flags, ds->Flags, ds->u * sizeof(*Flags)); -- if (ds->u < ds->Count) -- memcpy(Flags + ds->u + 1, ds->Flags + ds->u, (ds->Count - ds->u) * sizeof(*Flags)); -- Flags[ds->u] = ods->Flags[ods->i]; -- ds->Flags = _free(ds->Flags); -- ds->Flags = Flags; -+ for (j = ds->Count; j > (int)ds->u; j--) -+ ds->EVR[j] = ds->EVR[j-1]; -+ ds->EVR[ds->u] = ods->EVR[ods->i]; -+ EVR = rpmdsDupArgv(ds->EVR, ds->Count+1); -+ ds->EVR = _free(ds->EVR); -+ ds->EVR = EVR; -+ -+ Flags = xmalloc((ds->Count+1) * sizeof(*Flags)); -+ if (ds->u > 0) -+ memcpy(Flags, ds->Flags, ds->u * sizeof(*Flags)); -+ if (ds->u < ds->Count) -+ memcpy(Flags + ds->u + 1, ds->Flags + ds->u, (ds->Count - ds->u) * sizeof(*Flags)); -+ Flags[ds->u] = ods->Flags[ods->i]; -+ ds->Flags = _free(ds->Flags); -+ ds->Flags = Flags; -+ } - /*@=nullderef =nullpass =nullptrarith @*/ - - ds->i = -1; diff --git a/rpm-5.4.9-add-x32-macros.patch b/rpm-5.4.9-add-x32-macros.patch deleted file mode 100644 index e0c0301..0000000 --- a/rpm-5.4.9-add-x32-macros.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- rpm-5.4.9/cpu-os-macros/x32-linux/macros.x32~ 2012-05-17 06:09:01.611004408 +0200 -+++ rpm-5.4.9/cpu-os-macros/x32-linux/macros 2012-05-17 06:06:14.725072024 +0200 -@@ -0,0 +1,20 @@ -+# Per-platform rpm configuration file. -+ -+#============================================================================== -+# ---- per-platform macros. -+# -+%_arch x86_64 -+%_os linux -+%_gnu -gnu -+%_target_platform %{_arch}-%{_target_vendor}-%{_target_os}%{?_gnu} -+%optflags %{?__common_cflags_with_ssp:%{__common_cflags_with_ssp} -fPIC}%{!?__common_cflags_with_ssp:-Os -g -mx32 -march=atom -mtune=core-avx-i} -+ -+#============================================================================== -+# ---- configure macros. -+# -+%_lib lib32 -+ -+#--------------------------------------------------------------------- -+# Multilibs -+%_multilibno 1 -+%_multilibpatt (/%{_lib}|/usr/%{_lib}(|/gconv)|/usr/local/%{_lib}|/usr/X11R6/%{_lib}|/opt/%{_lib})/[^/]*\\.([oa]|la|so[0-9.]*)$ diff --git a/rpm-5.4.9-avoid-dependencies-on-self.patch b/rpm-5.4.9-avoid-dependencies-on-self.patch deleted file mode 100644 index 8a3ea13..0000000 --- a/rpm-5.4.9-avoid-dependencies-on-self.patch +++ /dev/null @@ -1,85 +0,0 @@ ---- rpm-5.4.9/lib/rpmfc.c.drop_deps~ 2012-05-07 22:41:45.000000000 +0200 -+++ rpm-5.4.9/lib/rpmfc.c 2012-05-15 01:58:00.071056896 +0200 -@@ -1696,6 +1696,65 @@ static int rpmfcGenerateScriptletDeps(co - return rc; - } - -+static void removeSillyDeps(Header h) { -+ HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he)); -+ int xx, i, rnum, removed = 0; -+ const char **deps = NULL; -+ const char **versions = NULL; -+ evrFlags *flags = NULL; -+ -+ he->tag = RPMTAG_REQUIRENAME; -+ xx = headerGet(h, he, 0); -+ deps = he->p.argv; -+ rnum = he->c; -+ -+ he->tag = RPMTAG_REQUIREVERSION; -+ xx = headerGet(h, he, 0); -+ versions = he->p.argv; -+ -+ he->tag = RPMTAG_REQUIREFLAGS; -+ xx = headerGet(h, he, 0); -+ flags = (evrFlags*)he->p.ui32p; -+ -+ for (i = 0; i < rnum-removed; i++) { -+ if (removed) { -+ deps[i] = deps[i+removed]; -+ versions[i] = versions[i+removed]; -+ flags[i] = flags[i+removed]; -+ } -+ rpmds req = rpmdsSingle(RPMTAG_REQUIRENAME, deps[i], versions[i], flags[i]); -+ rpmds prov = rpmdsNew(h, (*deps[i] == '/' && !*versions[i]) ? RPMTAG_BASENAMES : RPMTAG_PROVIDENAME, 0); -+ if (rpmdsMatch(req, prov)) { -+ if (flags[i] & RPMSENSE_SCRIPT_PRE) -+ rpmlog(RPMLOG_ERR, "Requires(pre): on dependency provided by self: %s\n", rpmdsDNEVR(req)); -+ else { -+ rpmlog(RPMLOG_NOTICE, "Removing dependency on self: %s\n", rpmdsDNEVR(req)); -+ removed++; -+ i--; -+ } -+ } -+ req = rpmdsFree(req); -+ prov = rpmdsFree(prov); -+ } -+ if (removed) { -+ he->tag = RPMTAG_REQUIRENAME; -+ he->t = RPM_STRING_ARRAY_TYPE; -+ he->p.argv = deps; -+ he->c -= removed; -+ headerMod(h, he, 0); -+ -+ he->tag = RPMTAG_REQUIREVERSION; -+ he->p.argv = versions; -+ headerMod(h, he, 0); -+ -+ he->tag = RPMTAG_REQUIREFLAGS; -+ he->t = RPM_UINT32_TYPE; -+ he->p.ui32p = (uint32_t*)flags; -+ headerMod(h, he, 0); -+ } -+ -+} -+ - rpmRC rpmfcGenerateDepends(void * _spec, void * _pkg) - { - HE_t he = (HE_t) memset(alloca(sizeof(*he)), 0, sizeof(*he)); -@@ -1729,6 +1788,7 @@ rpmRC rpmfcGenerateDepends(void * _spec, - if (internaldeps == 0) { - /* ... then generate dependencies using %{__find_requires} et al. */ - rc = rpmfcGenerateDependsHelper(spec, pkg, fi); -+ removeSillyDeps(pkg->header); - printDeps(pkg->header); - return rc; - } -@@ -1946,6 +2006,8 @@ assert(ac == (int)he->c); - xx = headerPut(pkg->header, he, 0); - } - -+ removeSillyDeps(pkg->header); -+ - printDeps(pkg->header); - - if (fc != NULL && _rpmfc_debug) { diff --git a/rpm-5.4.9-avoid-double-slash-in-path-for-dirname-filetrigger-matching.patch b/rpm-5.4.9-avoid-double-slash-in-path-for-dirname-filetrigger-matching.patch deleted file mode 100644 index 7535c34..0000000 --- a/rpm-5.4.9-avoid-double-slash-in-path-for-dirname-filetrigger-matching.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- rpm-5.4.9/lib/psm.c.slash~ 2012-05-15 03:47:32.000000000 +0200 -+++ rpm-5.4.9/lib/psm.c 2012-05-15 03:49:04.075347677 +0200 -@@ -1463,11 +1463,15 @@ static rpmRC runTriggersLoop(rpmpsm psm, - ARGint_t vals; - - depName = _free(depName); -- depName = (char *) xmalloc(nName + 1 + 1); -- (void) stpcpy(depName, Name); -- /* XXX re-add the pesky trailing '/' to dirnames. */ -- depName[nName] = (tagno == RPMTAG_DIRNAMES ? '/' : '\0'); -- depName[nName+1] = '\0'; -+ if (!strcmp(Name, "/")) -+ depName = xstrdup(Name); -+ else { -+ depName = xmalloc(nName + 1 + 1); -+ (void) stpcpy(depName, Name); -+ /* XXX re-add the pesky trailing '/' to dirnames. */ -+ depName[nName] = (tagno == RPMTAG_DIRNAMES ? '/' : '\0'); -+ depName[nName+1] = '\0'; -+ } - - if (depName[0] == '/' && psm->Tmires != NULL) { - miRE mire; diff --git a/rpm-5.4.9-disable-l10ndir.patch b/rpm-5.4.9-disable-l10ndir.patch deleted file mode 100644 index 05e6259..0000000 --- a/rpm-5.4.9-disable-l10ndir.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.9/macros/macros.in.l10ndir~ 2012-05-18 11:46:41.037713866 +0200 -+++ rpm-5.4.9/macros/macros.in 2012-05-18 11:46:59.425827976 +0200 -@@ -286,7 +286,7 @@ package or when debugging this package.\ - %__gitdir %{__varlibwdj}/git - %__svndir %{__varlibwdj}/svn - %__sqldir %{__varlibwdj}/sql --%__l10ndir %{__varlibwdj}/l10n -+#__l10ndir %{__varlibwdj}/l10n - - # Elements necessary to construct a mongodb:// URI configurably - # diff --git a/rpm-5.4.9-disable-support-for-i18nstring-type.patch b/rpm-5.4.9-disable-support-for-i18nstring-type.patch deleted file mode 100644 index b64809f..0000000 --- a/rpm-5.4.9-disable-support-for-i18nstring-type.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.9/system.h.no18n~ 2012-05-18 08:09:33.444289007 +0200 -+++ rpm-5.4.9/system.h 2012-05-18 08:09:35.991304560 +0200 -@@ -741,7 +741,7 @@ static inline const char *rcsid(const ch - /** - * Eliminate RPM_I18NSTRING_TYPE. - */ --#define SUPPORT_I18NSTRING_TYPE 1 -+#define SUPPORT_I18NSTRING_TYPE 0 - - /** - * Eliminate signature/digest disablers. diff --git a/rpm-5.4.9-ditch-install-info-macros.patch b/rpm-5.4.9-ditch-install-info-macros.patch deleted file mode 100644 index 08a6b23..0000000 --- a/rpm-5.4.9-ditch-install-info-macros.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- rpm-5.4.9/macros/mandriva.in.install_info~ 2012-05-30 21:11:09.893734550 +0200 -+++ rpm-5.4.9/macros/mandriva.in 2012-05-30 21:11:12.643700170 +0200 -@@ -141,15 +141,6 @@ end\ - %_extension .xz - - --%__install_info /sbin/install-info -- --%_install_info() if [[ -f %{_infodir}/%{1}%{_extension} ]]; then %{__install_info} %{_infodir}/%{1}%{_extension} --dir=%{_infodir}/dir; fi \ --%{nil} --# (nb: keep the "alone on its line ';'") --%_remove_install_info() if [ "$1" = "0" ]; then if [[ -f %{_infodir}/%{1}%{_extension} ]]; then %{__install_info} %{_infodir}/%{1}%{_extension} --dir=%{_infodir}/dir --remove ; fi; fi \ --%{nil} -- -- - # Macro: %{mklibname [ []] [-s] [-d]} - # - %{mklibname test} => lib64test, on a lib64 platform - # - %{mklibname test 1 -d} => libtest1-devel diff --git a/rpm-5.4.9-dont-add-versioneddependency-rpmlib-feature-dependency.patch b/rpm-5.4.9-dont-add-versioneddependency-rpmlib-feature-dependency.patch deleted file mode 100644 index 9b62123..0000000 --- a/rpm-5.4.9-dont-add-versioneddependency-rpmlib-feature-dependency.patch +++ /dev/null @@ -1,40 +0,0 @@ ---- rpm-5.4.9/lib/rpmfc.c.no_verdepfeat~ 2012-05-15 03:02:42.578268986 +0200 -+++ rpm-5.4.9/lib/rpmfc.c 2012-05-15 03:03:46.035612993 +0200 -@@ -504,19 +504,6 @@ assert(EVR != NULL); - if (_filter_values && rpmfcMatchRegexps(mire, nmire, N, deptype)) - continue; - -- /* Add tracking dependency for versioned Provides: */ -- if (!fc->tracked && deptype == 'P' && *EVR != '\0') { -- static evrFlags _Flags = (evrFlags) -- (RPMSENSE_RPMLIB|(RPMSENSE_LESS|RPMSENSE_EQUAL)); -- ds = rpmdsSingle(RPMTAG_REQUIRENAME, -- "rpmlib(VersionedDependencies)", "3.0.3-1", -- _Flags); -- xx = rpmdsMerge(&fc->requires, ds); -- (void)rpmdsFree(ds); -- ds = NULL; -- fc->tracked = 1; -- } -- - ds = rpmdsSingle(tagN, N, EVR, Flags); - - #if defined(RPM_VENDOR_MANDRIVA) /* filter-overlapping-dependencies */ -@@ -2022,7 +2009,6 @@ rpmRC rpmfcGenerateDepends(void * _spec, - fc = rpmfcNew(); - fc->skipProv = !pkg->autoProv; - fc->skipReq = !pkg->autoReq; -- fc->tracked = 0; - - { const char * buildRootURL; - const char * buildRoot; ---- rpm-5.4.9/lib/rpmfc.h.no_verdepfeat~ 2012-04-22 19:07:07.000000000 +0200 -+++ rpm-5.4.9/lib/rpmfc.h 2012-05-15 03:02:42.609269153 +0200 -@@ -76,7 +76,6 @@ struct rpmfc_s { - size_t ix; /*!< current file index */ - int skipProv; /*!< Don't auto-generate Provides:? */ - int skipReq; /*!< Don't auto-generate Requires:? */ -- int tracked; /*!< Versioned Provides: tracking dependency added? */ - size_t brlen; /*!< strlen(spec->buildRoot) */ - - ARGV_t fn; /*!< (no. files) file names */ diff --git a/rpm-5.4.9-dont-remap-i18n-strings-if-enabled.patch b/rpm-5.4.9-dont-remap-i18n-strings-if-enabled.patch deleted file mode 100644 index c33008b..0000000 --- a/rpm-5.4.9-dont-remap-i18n-strings-if-enabled.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- rpm-5.4.9/rpmdb/tagname.c.i18n_str~ 2012-05-18 07:27:53.216728091 +0200 -+++ rpm-5.4.9/rpmdb/tagname.c 2012-05-18 08:08:19.766839174 +0200 -@@ -493,7 +493,11 @@ void tagTypeValidate(HE_t he) - { - /* XXX Re-map RPM_I18NSTRING_TYPE -> RPM_STRING_TYPE */ - if (he->t == RPM_I18NSTRING_TYPE) -+#if !defined(SUPPORT_I18NSTRING_TYPE) - he->t = RPM_STRING_TYPE; -+#else -+ return; -+#endif - - /* XXX Arbitrary tags are always strings. */ - if ((he->tag & 0x40000000) diff --git a/rpm-5.4.9-drop-dead-cputoolize-macro.patch b/rpm-5.4.9-drop-dead-cputoolize-macro.patch deleted file mode 100644 index 521cc6d..0000000 --- a/rpm-5.4.9-drop-dead-cputoolize-macro.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.9/macros/mandriva.in.cputoolize~ 2012-05-30 19:54:36.169164010 +0200 -+++ rpm-5.4.9/macros/mandriva.in 2012-05-30 19:54:37.439148132 +0200 -@@ -355,8 +355,6 @@ GCONF_CONFIG_SOURCE=`%{_gconftool_bin} - - %__fix_libtool_from_moving_options_after_libs @USRLIBRPM@/@RPMCANONVENDOR@/fix-libtool-from-moving-options-after-libs - %__fix_dlsearch_path_in_libtool_for_multilib @USRLIBRPM@/@RPMCANONVENDOR@/fix-dlsearch-path-in-libtool-for-multilib - --%__cputoolize cputoolize -- - %__libtoolize_configure %{?__libtoolize:(cd $CONFIGURE_TOP; [ ! -f configure.in -a ! -f configure.ac ] || %{__libtoolize} --copy --force)} - - %ldflags %{?!_disable_ld_as_needed: -Wl,--as-needed}%{?!_disable_ld_no_undefined: -Wl,--no-undefined}%{?!_disable_ld_relro: -Wl,-z,relro}%{?!_disable_ld_O1: -Wl,-O1}%{?!_disable_ld_build_id: -Wl,--build-id}%{?!_disable_ld_enable_new_dtags: -Wl,--enable-new-dtags}%{?!_disable_hash_style_gnu: -Wl,--hash-style=gnu}%{?_hardened_flags: %_hardened_flags} diff --git a/rpm-5.4.9-find-debuginfo-strip-reloc-debug-sections.patch b/rpm-5.4.9-find-debuginfo-strip-reloc-debug-sections.patch deleted file mode 100644 index 3178f59..0000000 --- a/rpm-5.4.9-find-debuginfo-strip-reloc-debug-sections.patch +++ /dev/null @@ -1,112 +0,0 @@ ---- rpm-5.4.9/configure.ac.strip_reloc_debug~ 2012-05-04 10:41:08.000000000 +0200 -+++ rpm-5.4.9/configure.ac 2012-05-15 02:03:16.448634686 +0200 -@@ -625,6 +625,35 @@ AC_PATH_PROG(__STRIP, strip, %{_bindir}/ - AC_CHECK_PROGS(LIBTOOLIZE, libtoolize glibtoolize, libtoolize) - AC_SUBST(LIBTOOLIZE) - -+# check for elfutils eu-strip --reloc-debug_sections -+# elfutils-0.153 introduce the --reloc-debug-sections -+# This is a new option to eu-strip that strips -+# out/resolves relocations between .debug_* elf sections in ET_REL files. -+# This can save a lot of space for kernel module. -+# Use this option in find-debuginfo if supported -+# Check also for the eu_strip path and AC_SUBST it if found -+# not used really today -+old_PATH=$PATH -+PATH=$MYPATH -+AC_CACHE_CHECK([whether eu-strip supports --reloc-debug-sections], [ac_cv_path_EU_STRIP], -+ [AC_PATH_PROGS_FEATURE_CHECK([EU_STRIP], [eu-strip strip], -+ [[eu_stripout=`$ac_path_EU_STRIP --help | grep "\--reloc-debug-sections"` -+ test "x$eu_stripout" != x \ -+ && ac_cv_path_EU_STRIP=$ac_path_EU_STRIP debuginfo_eu_strip_reloc_debug_sections="-r"]], -+ [[ debuginfo_eu_strip_reloc_debug_sections="" ]] -+)]) -+PATH=$old_PATH -+AC_SUBST([debuginfo_eu_strip_reloc_debug_sections]) -+AS_IF([test "x$ac_cv_path_EU_STRIP" != x], [ -+ AC_SUBST([EU_STRIP], [$ac_cv_path_EU_STRIP]) -+], [ -+ AC_SUBST([EU_STRIP], [:]) -+ AC_MSG_RESULT([no]) -+]) -+ -+ -+ -+ - dnl # check for id -u - AC_MSG_CHECKING(whether id supports -u) - if ${__ID} -u 2>&1 > /dev/null; then ---- rpm-5.4.9/macros/macros.in.strip_reloc_debug~ 2012-05-15 02:03:16.377634331 +0200 -+++ rpm-5.4.9/macros/macros.in 2012-05-15 02:03:16.449634691 +0200 -@@ -148,7 +148,7 @@ - # the script. See the script for details. - # - %__debug_install_post \ -- %{_rpmhome}/find-debuginfo.sh %{?_missing_build_ids_terminate_build:--strict-build-id} %{?_find_debuginfo_opts} "%{_builddir}/%{?buildsubdir}"\ -+ %{_rpmhome}/find-debuginfo.sh %{?_missing_build_ids_terminate_build:--strict-build-id} %{?_find_debuginfo_opts} @debuginfo_eu_strip_reloc_debug_sections@ "%{_builddir}/%{?buildsubdir}"\ - %{nil} - - # Template for debug information sub-package. ---- rpm-5.4.9/macros/macros.rpmbuild.in.strip_reloc_debug~ 2011-10-21 17:39:02.000000000 +0200 -+++ rpm-5.4.9/macros/macros.rpmbuild.in 2012-05-15 02:03:16.450634696 +0200 -@@ -21,6 +21,7 @@ - %__ranlib @RANLIB@ - %__remsh %{__rsh} - %__strip @__STRIP@ -+%__eu_strip @__EU_STRIP@ - - # XXX avoid failures if tools are not installed when rpm is built. - %__libtoolize @LIBTOOLIZE@ ---- rpm-5.4.9/scripts/find-debuginfo.sh.strip_reloc_debug~ 2012-05-08 05:10:17.000000000 +0200 -+++ rpm-5.4.9/scripts/find-debuginfo.sh 2012-05-15 02:04:42.628066270 +0200 -@@ -2,7 +2,7 @@ - #find-debuginfo.sh - automagically generate debug info and file list - #for inclusion in an rpm spec file. - # --# Usage: find-debuginfo.sh [--strict-build-id] [-g] -+# Usage: find-debuginfo.sh [--strict-build-id] [-g] [-r] - # [-o debugfiles.list] - # [[-l filelist]... [-p 'pattern'] -o debuginfo.list] - # [builddir] -@@ -18,12 +18,16 @@ - # the -l filelist file, or whose names match the -p pattern. - # The -p argument is an egrep-style regexp matching the a file name, - # and must not use anchors (^ or $). -+# The -r flag says to use eu-strip --reloc-debug-sections. - # - # All file names in switches are relative to builddir (. if not given). - # - - # With -g arg, pass it to strip on libraries. - strip_g=false -+# with -r arg, pass --reloc-debug-sections to eu-strip. -+strip_r=false -+ - - # Barf on missing build IDs. - strict=false -@@ -40,6 +44,9 @@ while [ $# -gt 0 ]; do - -g) - strip_g=true - ;; -+ -r) -+ strip_r=true -+ ;; - -o) - if [ -z "${lists[$nout]}" -a -z "${ptns[$nout]}" ]; then - out=$2 -@@ -90,12 +97,13 @@ debugdir="${RPM_BUILD_ROOT}/usr/lib/debu - strip_to_debug() - { - local g= -+ $strip_r && r=--reloc-debug-sections - $strip_g && case "$(file -bi "$2")" in - application/x-sharedlib*) g=-g ;; - esac - [ -n "$EXCLUDE_FULL_REGEXP" ] && grep -E -q "$EXCLUDE_FULL_REGEXP" <<< "$2" && g=-g - -- eu-strip --remove-comment $g $([ -n "$DISABLE_DEBUG" ] || echo -f "$1") "$2" || exit -+ eu-strip --remove-comment $g $([ -n "$DISABLE_DEBUG" ] || echo $r -f "$1") "$2" || exit - [ -n "$DISABLE_DEBUG" ] || chmod 444 "$1" || exit - } - diff --git a/rpm-5.4.9-fix-mdvbz62979.patch b/rpm-5.4.9-fix-mdvbz62979.patch deleted file mode 100644 index eeb2797..0000000 --- a/rpm-5.4.9-fix-mdvbz62979.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- rpm-5.4.9/build/parseDescription.c.mdvbz62979~ 2012-05-03 20:39:51.000000000 +0200 -+++ rpm-5.4.9/build/parseDescription.c 2012-05-15 01:55:31.332318888 +0200 -@@ -92,6 +92,7 @@ int parseDescription(Spec spec) - } - - /* Lose the inheirited %description (if present). */ -+#if !defined(RPM_VENDOR_MANDRIVA) /* mdvbz#62979 */ - if (spec->packages->header != pkg->header) { - he->tag = RPMTAG_DESCRIPTION; - xx = headerGet(pkg->header, he, 0); -@@ -99,6 +100,7 @@ int parseDescription(Spec spec) - if (xx && he->t == RPM_STRING_TYPE) - xx = headerDel(pkg->header, he, 0); - } -+#endif - - t = stashSt(spec, pkg->header, RPMTAG_DESCRIPTION, lang); - diff --git a/rpm-5.4.9-fix-rpm_qa-pattern.patch b/rpm-5.4.9-fix-rpm_qa-pattern.patch deleted file mode 100644 index 76ce249..0000000 --- a/rpm-5.4.9-fix-rpm_qa-pattern.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.9/lib/rpmgi.c.pattern~ 2012-04-15 23:20:58.000000000 +0200 -+++ rpm-5.4.9/lib/rpmgi.c 2012-05-17 01:56:21.018481577 +0200 -@@ -473,7 +473,7 @@ fprintf(stderr, "*** gi %p key %p[%d]\tm - pat = ae; - got++; - } -- if (got) { -+ if (got >= 0) { - if (_rpmgi_debug < 0) - fprintf(stderr, "\tav %p[%d]: \"%s\" -> %s ~= \"%s\"\n", gi->argv, (int)(av - gi->argv), *av, tagName((rpmTag)tag), pat); - got = rpmmiAddPattern(gi->mi, (rpmTag)tag, RPMMIRE_DEFAULT, pat); diff --git a/rpm-5.4.9-fix-russian-typo.patch b/rpm-5.4.9-fix-russian-typo.patch deleted file mode 100644 index b5bf51a..0000000 --- a/rpm-5.4.9-fix-russian-typo.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.9/po/ru.po.ru~ 2012-05-08 05:34:29.000000000 +0200 -+++ rpm-5.4.9/po/ru.po 2012-05-15 01:48:04.461117188 +0200 -@@ -3029,7 +3029,7 @@ msgstr "(ŐÓÔÁÎĎ×ĚĹÎ)" - #: lib/rpmps.c:305 - #, c-format - msgid "%s conflicts with %s%s" --msgstr "%s ËĎÎĆĚÉËÔŐĹÔ Ó%s%s" -+msgstr "%s ËĎÎĆĚÉËÔŐĹÔ Ó %s%s" - - #: lib/rpmps.c:311 - #, fuzzy, c-format diff --git a/rpm-5.4.9-fix-typo-in-rpmtag-header.patch b/rpm-5.4.9-fix-typo-in-rpmtag-header.patch deleted file mode 100644 index ef1685b..0000000 --- a/rpm-5.4.9-fix-typo-in-rpmtag-header.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.9/rpmdb/rpmtag.h.typo~ 2012-05-03 20:39:52.000000000 +0200 -+++ rpm-5.4.9/rpmdb/rpmtag.h 2012-05-18 05:30:09.780867642 +0200 -@@ -948,7 +948,7 @@ Header headerCopyLoad(const void * uh) - int headerIsEntry(/*@null@*/ Header h, rpmTag tag) - /*@*/; - --#if defined(SUPPORT_I18BSTRING_TYPE) -+#if defined(SUPPORT_I18NSTRING_TYPE) - /** \ingroup header - * Add locale specific tag to header. - * A NULL lang is interpreted as the C locale. Here are the rules: diff --git a/rpm-5.4.9-fix-verify-segfault.patch b/rpm-5.4.9-fix-verify-segfault.patch deleted file mode 100644 index e457b5e..0000000 --- a/rpm-5.4.9-fix-verify-segfault.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- rpm-5.4.9/rpmio/rpmhkp.c.fix_verify~ 2012-04-16 22:53:33.000000000 +0200 -+++ rpm-5.4.9/rpmio/rpmhkp.c 2012-05-15 03:51:08.805023846 +0200 -@@ -901,6 +901,14 @@ char * t, * te; - te = t = tbuf; - *te = '\0'; - -+ /*Reset all the temporary variables*/ -+ hkp->pubx = -1; -+ hkp->uidx = -1; -+ hkp->subx = -1; -+ hkp->sigx = -1; -+ hkp->tvalid = 0; -+ hkp->uvalidx = -1; -+ - HKPDEBUG((stderr, "--> %s(%p,%s)\n", __FUNCTION__, hkp, keyname)); - - /* Do a lazy lookup before validating. */ -@@ -1065,7 +1073,7 @@ SPEW((stderr, "\t%s\n", pgpHexStr(hkp->p - } - - exit: -- if ((hkp->uidx >= 0 && hkp->uidx < hkp->npkts) && hkp->tvalid > 0) { -+ if ((hkp->uvalidx >= 0 && hkp->uvalidx < hkp->npkts) && hkp->tvalid > 0) { - char user[256+1]; - size_t nuser; - pgpPktUid * u; diff --git a/rpm-5.4.9-font-provides.patch b/rpm-5.4.9-font-provides.patch deleted file mode 100644 index d0b894a..0000000 --- a/rpm-5.4.9-font-provides.patch +++ /dev/null @@ -1,60 +0,0 @@ ---- rpm-5.4.9/macros/macros.rpmbuild.in.font~ 2012-05-15 02:55:46.222011889 +0200 -+++ rpm-5.4.9/macros/macros.rpmbuild.in 2012-05-15 02:55:46.347012566 +0200 -@@ -682,5 +682,8 @@ done \ - - %requires_eq() %(echo '%*' | LC_ALL="C" xargs -r rpm -q --qf 'Requires: %%{name} = %%{epoch}:%%{version}\\n' | sed -e 's/ (none):/ /' -e 's/ 0:/ /' | grep -v "is not") - -+%__font_provides %{_rpmhome}/fontconfig.prov -+#%__font_requires %{_rpmhome}/fontconfig.req -+ - # \endverbatim - #*/ ---- rpm-5.4.9/scripts/fontconfig.prov.font~ 2012-05-15 02:55:46.347012566 +0200 -+++ rpm-5.4.9/scripts/fontconfig.prov 2012-05-15 02:55:46.347012566 +0200 -@@ -0,0 +1,24 @@ -+#!/bin/bash -+# -+# Script to install in: -+# /usr/lib/rpm/redhat/find-provides.d -+# -+# Transform font files into RPM provides -+# Requires fontconfig >= 2.6.90 -+# -+# Author: Behdad Esfahbod -+# Based on other provides scripts from RPM -+# -+ -+fcquery=/usr/bin/fc-query -+ -+if [ ! -x $fcquery ]; then -+ cat > /dev/null -+ exit 0 -+fi -+ -+# filter out anything outside main fontconfig path -+grep /usr/share/fonts/ | -+while read fn; do -+ $fcquery --format '%{=pkgkit}' "${fn}" 2> /dev/null -+done ---- rpm-5.4.9/scripts/Makefile.am.font~ 2012-05-15 02:55:46.304012334 +0200 -+++ rpm-5.4.9/scripts/Makefile.am 2012-05-15 02:55:46.347012566 +0200 -@@ -19,7 +19,7 @@ EXTRA_DIST = api-sanity-autotest.pl api- - cpanflute cpanflute2 Specfile.pm \ - find-provides.perl find-requires.perl \ - find-provides.php find-requires.php \ -- freshen.sh gendiff getpo.sh http.req \ -+ freshen.sh fontconfig.prov gendiff getpo.sh http.req \ - check-java-closure.sh java.prov.sh java.req.sh \ - gstreamer.sh javadeps.sh libtooldeps.sh mgo \ - mono-find-provides mono-find-requires \ -@@ -55,8 +55,8 @@ pkgdata_SCRIPTS = \ - brp-strip-shared brp-strip-static-archive brp-sparc64-linux \ - check-files cross-build dbconvert.sh executabledeps.sh \ - find-debuginfo.sh find-lang.sh find-prov.pl find-req.pl \ -- find-provides.perl \ -- find-requires.perl gem_helper.rb getpo.sh http.req \ -+ find-provides.perl find-requires.perl \ -+ fontconfig.prov gem_helper.rb getpo.sh http.req \ - kmod-deps.sh gstreamer.sh javadeps.sh libtooldeps.sh \ - mono-find-provides mono-find-requires \ - check-multiarch-files mkmultiarch \ diff --git a/rpm-5.4.9-keep-loading-script-macros.patch b/rpm-5.4.9-keep-loading-script-macros.patch deleted file mode 100644 index 7977732..0000000 --- a/rpm-5.4.9-keep-loading-script-macros.patch +++ /dev/null @@ -1,81 +0,0 @@ ---- rpm-5.4.9/macros/macros.in.script_macros~ 2012-05-07 00:36:51.000000000 +0200 -+++ rpm-5.4.9/macros/macros.in 2012-05-15 01:39:37.382649841 +0200 -@@ -993,63 +993,63 @@ $_arbitrary_tags_tests Foo:Bar - # XXX %{load:...}, then loading will CEASE at that point in the file. - #============================================================================== - # ---- SELinux configuration macros. --#%%{load:%{_usrlibrpm}/macros.d/selinux} -+%{load:%{_usrlibrpm}/macros.d/selinux} - - #============================================================================== - # ---- rpmbuild macros. --#%%{load:%{_usrlibrpm}/macros.rpmbuild} -+%{load:%{_usrlibrpm}/macros.rpmbuild} - - #------------------------------------------------------------------------ - # cmake(...) configuration --#%%{load:%{_usrlibrpm}/macros.d/cmake} -+%{load:%{_usrlibrpm}/macros.d/cmake} - - #------------------------------------------------------------------------ - # gstreamer(...) configuration. --#%%{load:%{_usrlibrpm}/macros.d/gstreamer} -+%{load:%{_usrlibrpm}/macros.d/gstreamer} - - #------------------------------------------------------------------------ - # haskell(...) configuration. --#%%{load:%{_usrlibrpm}/macros.d/haskell} -+# % {load:%{_usrlibrpm}/macros.d/haskell} # provided by haskell-macros for now - - #------------------------------------------------------------------------ - # perl(...) configuration --#%%{load:%{_usrlibrpm}/macros.d/perl} -+%{load:%{_usrlibrpm}/macros.d/perl} - - #------------------------------------------------------------------------ - # python(...) configuration. --#%%{load:%{_usrlibrpm}/macros.d/python} -+%{load:%{_usrlibrpm}/macros.d/python} - - #------------------------------------------------------------------------ - # php(...) configuration. --#%%{load:%{_usrlibrpm}/macros.d/php} -+%{load:%{_usrlibrpm}/macros.d/php} - - #------------------------------------------------------------------------ - # java(...) configuration. --#%%{load:%{_usrlibrpm}/macros.d/java} -+%{load:%{_usrlibrpm}/macros.d/java} - - #------------------------------------------------------------------------ - # libtool(...) configuration. --#%%{load:%{_usrlibrpm}/macros.d/libtool} -+%{load:%{_usrlibrpm}/macros.d/libtool} - - #------------------------------------------------------------------------ - # pkgconfig(...) configuration. --#%%{load:%{_usrlibrpm}/macros.d/pkgconfig} -+%{load:%{_usrlibrpm}/macros.d/pkgconfig} - - #------------------------------------------------------------------------ - # mono(...) configuration. --#%%{load:%{_usrlibrpm}/macros.d/mono} -+%{load:%{_usrlibrpm}/macros.d/mono} - - #------------------------------------------------------------------------ - # ruby(...) configuration. --#%%{load:%{_usrlibrpm}/macros.d/ruby} -+%{load:%{_usrlibrpm}/macros.d/ruby} - - #------------------------------------------------------------------------ - # tcl(...) configuration. --#%%{load:%{_usrlibrpm}/macros.d/tcl} -+%{load:%{_usrlibrpm}/macros.d/tcl} - - #------------------------------------------------------------------------ - # typelib(...) configuration. --#%%{load:%{_usrlibrpm}/macros.d/typelib} -+%{load:%{_usrlibrpm}/macros.d/typelib} - - # \endverbatim - #*/ diff --git a/rpm-5.4.9-mire-fix-strings-lacking-null-terminator.patch b/rpm-5.4.9-mire-fix-strings-lacking-null-terminator.patch deleted file mode 100644 index b2d3f32..0000000 --- a/rpm-5.4.9-mire-fix-strings-lacking-null-terminator.patch +++ /dev/null @@ -1,32 +0,0 @@ ---- rpm-5.4.9/rpmio/mire.c.str_nul~ 2012-04-16 05:21:22.000000000 +0200 -+++ rpm-5.4.9/rpmio/mire.c 2012-05-15 03:20:14.361970779 +0200 -@@ -415,11 +415,10 @@ int mireRegexec(miRE mire, const char * - break; - /* XXX rpmgrep: ensure that the string is NUL terminated. */ - if (vallen > 0) { -- if (val[vallen] != '\0') { -- char * t = strncpy((char *)alloca(vallen+1), val, vallen); -- t[vallen] = '\0'; -- val = t; -- } -+ /* if (val[vallen] != '\0') might go outside of allocated memory */ -+ char * t = strncpy(alloca(vallen+1), val, vallen); -+ t[vallen] = '\0'; -+ val = t; - } else - if (vallen == 0) - vallen = strlen(val); -@@ -466,6 +465,13 @@ int mireRegexec(miRE mire, const char * - case RPMMIRE_GLOB: - if (mire->pattern == NULL) - break; -+ /* XXX rpmgrep: ensure that the string is NUL terminated. */ -+ if (vallen > 0) { -+ /* if (val[vallen] != '\0') might go outside of allocated memory */ -+ char * t = strncpy(alloca(vallen+1), val, vallen); -+ t[vallen] = '\0'; -+ val = t; -+ } - rc = fnmatch(mire->pattern, val, mire->fnflags); - switch (rc) { - case 0: rc = 0; /*@innerbreak@*/ break; diff --git a/rpm-5.4.9-package-name.patch b/rpm-5.4.9-package-name.patch deleted file mode 100644 index bcb1ecd..0000000 --- a/rpm-5.4.9-package-name.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urN rpm-5.4.9/macros/macros.rpmbuild.in rpm-5.4.9-patched/macros/macros.rpmbuild.in ---- rpm-5.4.9/macros/macros.rpmbuild.in 2012-08-25 12:37:14.939808237 +1100 -+++ rpm-5.4.9-patched/macros/macros.rpmbuild.in 2012-08-25 12:36:37.302808636 +1100 -@@ -329,6 +329,8 @@ - RPM_BUILD_DIR=\"%{realpath:%{u2p:%{_builddir}}}\"\ - RPM_OPT_FLAGS=\"%{optflags}\"\ - export RPM_BUILD_DIR RPM_OPT_FLAGS\ -+ RPM_PACKAGE_NAME=\"%{name}\"\ -+ export RPM_BUILD_DIR RPM_OPT_FLAGS RPM_PACKAGE_NAME\ - %{?buildroot:RPM_BUILD_ROOT=\"%{u2p:%{buildroot}}\"\ - export RPM_BUILD_ROOT}\ - %{?_javaclasspath:CLASSPATH=\"%{_javaclasspath}\"\ diff --git a/rpm-5.4.9-rpmfc-extract-dependencies-for-all-files.patch b/rpm-5.4.9-rpmfc-extract-dependencies-for-all-files.patch deleted file mode 100644 index f1742d7..0000000 --- a/rpm-5.4.9-rpmfc-extract-dependencies-for-all-files.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.9/lib/rpmfc.c.rpmfc_ruby~ 2012-05-15 02:27:26.000000000 +0200 -+++ rpm-5.4.9/lib/rpmfc.c 2012-05-15 02:27:34.978029207 +0200 -@@ -1090,7 +1090,7 @@ typedef struct rpmfcApplyTbl_s { - /*@unchecked@*/ - static struct rpmfcApplyTbl_s rpmfcApplyTable[] = { - { rpmfcELF, RPMFC_ELF }, -- { rpmfcSCRIPT, (RPMFC_SCRIPT|RPMFC_FONT|RPMFC_HASKELL|RPMFC_PERL|RPMFC_PYTHON|RPMFC_LIBTOOL|RPMFC_PKGCONFIG|RPMFC_BOURNE|RPMFC_JAVA|RPMFC_PHP|RPMFC_MONO|RPMFC_TYPELIB) }, -+ { rpmfcSCRIPT, (RPMFC_SCRIPT|RPMFC_FONT|RPMFC_HASKELL|RPMFC_RUBY|RPMFC_PERL|RPMFC_PYTHON|RPMFC_LIBTOOL|RPMFC_PKGCONFIG|RPMFC_BOURNE|RPMFC_JAVA|RPMFC_PHP|RPMFC_MONO|RPMFC_TYPELIB) }, - #if defined(RPM_VENDOR_MANDRIVA) - { rpmfcSYMLINK, RPMFC_SYMLINK }, - #endif diff --git a/rpm-5.4.9-rpmpython-fix-input.patch b/rpm-5.4.9-rpmpython-fix-input.patch deleted file mode 100644 index 0589a54..0000000 --- a/rpm-5.4.9-rpmpython-fix-input.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.9/rpmio/rpmpython.c.py_input~ 2012-05-15 03:40:55.316698083 +0200 -+++ rpm-5.4.9/rpmio/rpmpython.c 2012-05-15 03:40:59.799722384 +0200 -@@ -215,7 +215,7 @@ fprintf(stderr, "==> %s(%p,%s,%p)\n", __ - PyCompilerFlags cf = { 0 }; - PyObject * m = PyImport_AddModule("__main__"); - PyObject * d = (m ? PyModule_GetDict(m) : NULL); -- PyObject * v = (m ? PyRun_StringFlags(val, Py_file_input, d, d, &cf) : NULL); -+ PyObject * v = (m ? PyRun_StringFlags(val, Py_single_input, d, d, &cf) : NULL); - - if (v == NULL) { - PyErr_Print(); diff --git a/rpm-5.4.9-ruby1.9-fixes.patch b/rpm-5.4.9-ruby1.9-fixes.patch deleted file mode 100644 index 2c0ae90..0000000 --- a/rpm-5.4.9-ruby1.9-fixes.patch +++ /dev/null @@ -1,114 +0,0 @@ -diff -urN rpm-5.4.9/macros/ruby.in rpm-5.4.9-patched/macros/ruby.in ---- rpm-5.4.9/macros/ruby.in 2011-10-15 23:56:57.000000000 +1100 -+++ rpm-5.4.9-patched/macros/ruby.in 2012-08-30 18:09:09.732009037 +1100 -@@ -2,7 +2,7 @@ - # To make use of these macros insert the following line into your spec file: - # %{load:%{_usrlibrpm}/macros.d/ruby} - --%__ruby @__RUBY@ -+%__ruby /usr/bin/ruby - - # Path to scripts to autogenerate php package dependencies, - # -@@ -11,18 +11,18 @@ - %__ruby_provides %{_rpmhome}/rubygems.rb --provides - %__ruby_requires %{_rpmhome}/rubygems.rb --requires - --%ruby_version %(%{__ruby} -rrbconfig -e 'print Config::CONFIG["ruby_version"]') -+%ruby_version %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["ruby_version"]') - --%ruby_archdir %(%{__ruby} -rrbconfig -e 'print Config::CONFIG["archdir"]') --%ruby_libdir %(%{__ruby} -rrbconfig -e 'print Config::CONFIG["rubylibdir"]') --%ruby_sitedir %(%{__ruby} -rrbconfig -e 'print Config::CONFIG["sitedir"]') --%ruby_sitearchdir %(%{__ruby} -rrbconfig -e 'print Config::CONFIG["sitearchdir"]') --%ruby_sitelibdir %(%{__ruby} -rrbconfig -e 'print Config::CONFIG["sitelibdir"]') --%ruby_vendordir %(%{__ruby} -rrbconfig -e 'print Config::CONFIG["vendordir"]') --%ruby_vendorarchdir %(%{__ruby} -rrbconfig -e 'print Config::CONFIG["vendorarchdir"]') --%ruby_vendorlibdir %(%{__ruby} -rrbconfig -e 'print Config::CONFIG["vendorlibdir"]') --%ruby_gemdir %(%{__ruby} -rrbconfig -e 'include Config; print CONFIG["rubylibdir"].sub(CONFIG["ruby_version"], "gems/#{CONFIG["ruby_version"]}")') --%ruby_ridir %(%{__ruby} -rrbconfig -e 'include Config; print File.join(CONFIG["datadir"], "ri", CONFIG["ruby_version"])') -+%ruby_archdir %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["archdir"]') -+%ruby_libdir %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["rubylibdir"]') -+%ruby_sitedir %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["sitedir"]') -+%ruby_sitearchdir %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["sitearchdir"]') -+%ruby_sitelibdir %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["sitelibdir"]') -+%ruby_vendordir %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["vendordir"]') -+%ruby_vendorarchdir %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["vendorarchdir"]') -+%ruby_vendorlibdir %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["vendorlibdir"]') -+%ruby_gemdir %(%{__ruby} -rrbconfig -e 'print RbConfig::CONFIG["rubylibdir"].sub(RbConfig::CONFIG["ruby_version"], "gems/#{RbConfig::CONFIG["ruby_version"]}")') -+%ruby_ridir %(%{__ruby} -rrbconfig -e 'print File.join(RbConfig::CONFIG["datadir"], "ri", RbConfig::CONFIG["ruby_version"])') - - %__gem_helper %{_usrlibrpm}/gem_helper.rb - -diff -urN rpm-5.4.9/scripts/gem_helper.rb rpm-5.4.9-patched/scripts/gem_helper.rb ---- rpm-5.4.9/scripts/gem_helper.rb 2010-10-16 20:58:48.000000000 +1100 -+++ rpm-5.4.9-patched/scripts/gem_helper.rb 2012-08-30 18:12:11.233007114 +1100 -@@ -57,10 +57,13 @@ - argv.delete_at(0) - end - -- file_data = Zlib::GzipReader.open("metadata.gz") -+ file_data = Zlib::GzipReader.open("metadata.gz") {|io| io.read} - header = YAML::load(file_data) -- file_data.close() -- body = header.instance_variable_get :@ivars -+ body = {} -+ # I don't know any better.. :/ -+ header.instance_variables.each do |iv| -+ body[iv.to_s.gsub(/^@/,'')] = header.instance_variable_get(iv) -+ end - - require 'rubygems' - spec = Gem::Specification.from_yaml(YAML.dump(header)) -diff -urN rpm-5.4.9/scripts/rubygems.rb rpm-5.4.9-patched/scripts/rubygems.rb ---- rpm-5.4.9/scripts/rubygems.rb 2011-04-01 18:30:28.000000000 +1100 -+++ rpm-5.4.9-patched/scripts/rubygems.rb 2012-08-30 18:09:09.771009037 +1100 -@@ -30,7 +30,7 @@ - exit(1) - end - --specpatt = Config::CONFIG["rubylibdir"].sub(Config::CONFIG["ruby_version"], ".*/specifications/.*\.gemspec$") -+specpatt = RbConfig::CONFIG["rubylibdir"].sub(RbConfig::CONFIG["ruby_version"], ".*/specifications/.*\.gemspec$") - gems = [] - ruby_versioned = false - abi_provide = false -@@ -44,17 +44,17 @@ - # package is dependent on this specific version. - # FIXME: only supports current ruby version - elsif not ruby_versioned -- if path.match(Config::CONFIG["rubylibdir"]) -+ if path.match(RbConfig::CONFIG["rubylibdir"]) - ruby_versioned = true - # even more fugly, but we make the assumption that if the package has - # this file, the package is the current ruby version, and should - # therefore provide ruby(abi) = version -- if provides and path.match(Config::CONFIG["rubylibdir"] + "/Env.rb") -+ if provides and path.match(RbConfig::CONFIG["rubylibdir"] + "/Env.rb") - abi_provide = true - end -- elsif path.match(Config::CONFIG["sitelibdir"]) -+ elsif path.match(RbConfig::CONFIG["sitelibdir"]) - ruby_versioned = true -- elsif path.match(Config::CONFIG["vendorlibdir"]) -+ elsif path.match(RbConfig::CONFIG["vendorlibdir"]) - ruby_versioned = true - end - end -@@ -63,7 +63,7 @@ - if requires or abi_provide - print "ruby(abi)" - if ruby_versioned -- print " = %s\n" % Config::CONFIG["ruby_version"] -+ print " = %s\n" % RbConfig::CONFIG["ruby_version"] - end - end - -@@ -105,7 +105,7 @@ - end - if requires - for d in spec.dependencies -- print d.requirement.to_rpm(d.name) unless d.type != :runtime -+ print d.requirement.to_rpm(d.name)[0] unless d.type != :runtime - end - for d in spec.required_rubygems_version.to_rpm("rubygems") - print d.gsub(/(rubygem\()|(\))/, "") diff --git a/rpm-5.4.9-specspo.patch b/rpm-5.4.9-specspo.patch deleted file mode 100644 index 2df4235..0000000 --- a/rpm-5.4.9-specspo.patch +++ /dev/null @@ -1,122 +0,0 @@ ---- rpm-5.3.13/rpmdb/hdrfmt.c 2011-03-26 15:57:24.000000000 +0300 -+++ rpm-5.3.13/rpmdb/hdrfmt.c 2012-04-16 12:32:50.588475008 +0400 -@@ -2096,102 +2096,34 @@ - /*@globals rpmGlobalMacroContext, h_errno, internalState @*/ - /*@modifies he, rpmGlobalMacroContext, internalState @*/ - { -- char * dstring = rpmExpand(_macro_i18ndomains, NULL); -- int rc = 1; /* assume failure */ -- -+ int rc = headerGet(h, he, HEADERGET_NOEXTENSION); - he->t = RPM_STRING_TYPE; -- he->p.str = NULL; -- he->c = 0; -- he->freeData = 0; -- -- if (dstring && *dstring) { -- char *domain, *de; -- const char * langval; -- const char * msgkey; -- const char * msgid; -- -- { HE_t nhe = (HE_t) memset(alloca(sizeof(*nhe)), 0, sizeof(*nhe)); -- const char * tn; -- char * mk; -- size_t nb = sizeof("()"); -- int xx; -- -- nhe->tag = RPMTAG_NAME; -- xx = headerGet(h, nhe, 0); -- /* -- * XXX Ick, tagName() is called by headerGet(), and the tagName() -- * buffer is valid only until next tagName() call. -- * For now, do the tagName() lookup after headerGet(). -- */ -- tn = tagName(he->tag); -- if (tn) nb += strlen(tn); -- if (nhe->p.str) nb += strlen(nhe->p.str); -- mk = alloca(nb); -- (void) snprintf(mk, nb, "%s(%s)", -- (nhe->p.str ? nhe->p.str : ""), (tn ? tn : "")); -- mk[nb-1] = '\0'; -- nhe->p.ptr = _free(nhe->p.ptr); -- msgkey = mk; -- } -- -- /* change to en_US for msgkey -> msgid resolution */ -- langval = getenv(language); -- (void) setenv(language, "en_US", 1); --#if defined(ENABLE_NLS) --/*@i@*/ ++_nl_msg_cat_cntr; --#endif -- -- msgid = NULL; -+ if (rc){ -+ char *de, *domain, *dstring = rpmExpand(_macro_i18ndomains, NULL); -+ const char *msgid = he->p.str; -+ const char *msg; -+ - for (domain = dstring; domain != NULL; domain = de) { - de = strchr(domain, ':'); - if (de) *de++ = '\0'; --/*@-unrecog@*/ -- msgid = dgettext(domain, msgkey); --/*@=unrecog@*/ -- if (msgid != msgkey) break; -- } -- -- /* restore previous environment for msgid -> msgstr resolution */ -- if (langval) -- (void) setenv(language, langval, 1); -- else -- unsetenv(language); --#if defined(ENABLE_NLS) --/*@i@*/ ++_nl_msg_cat_cntr; --#endif -- -- if (domain && msgid) { --/*@-unrecog@*/ -- const char * s = dgettext(domain, msgid); --/*@=unrecog@*/ -- if (s) { -- rc = 0; -- he->p.str = xstrdup(s); -- he->c = 1; -- he->freeData = 1; -+ msg = dgettext(domain, msgid); -+ if (msg != msgid){ -+ he->p.str = xstrdup(msg); -+ he->c = 1; -+ he->freeData = 1; -+ -+ break; - } - } -+ -+ dstring = _free(dstring); -+ return 0; - } - --/*@-dependenttrans@*/ -- dstring = _free(dstring); --/*@=dependenttrans@*/ -- if (!rc) -- return rc; -- -- rc = headerGet(h, he, HEADERGET_NOEXTENSION); -- if (rc) { -- rc = 0; -- he->p.str = xstrtolocale(he->p.str); -- he->freeData = 1; -- return rc; -- } -- -- he->t = RPM_STRING_TYPE; - he->p.str = NULL; - he->c = 0; - he->freeData = 0; -- -+ - return 1; - } - diff --git a/rpm-5.4.9-strip-buildroot-away-from-duplicate-files-list.patch b/rpm-5.4.9-strip-buildroot-away-from-duplicate-files-list.patch deleted file mode 100644 index 8e48830..0000000 --- a/rpm-5.4.9-strip-buildroot-away-from-duplicate-files-list.patch +++ /dev/null @@ -1,97 +0,0 @@ ---- rpm-5.4.9/build/files.c.buildroot_dups~ 2012-04-15 17:04:14.000000000 +0200 -+++ rpm-5.4.9/build/files.c 2012-05-15 02:11:03.734983519 +0200 -@@ -2917,7 +2917,7 @@ exit: - - /* auxiliary function for checkDuplicateFiles() */ - /* XXX need to pass Header because fi->h is NULL */ --static int fiIntersect(/*@null@*/ rpmfi fi1, /*@null@*/ rpmfi fi2) -+static int fiIntersect(/*@null@*/ rpmfi fi1, /*@null@*/ rpmfi fi2, size_t buildrootL) - /*@globals internalState @*/ - /*@modifies fi1, fi2, internalState @*/ - { -@@ -2941,7 +2941,7 @@ static int fiIntersect(/*@null@*/ rpmfi - if (!dups) - dups = rpmiobNew(0); - dups = rpmiobAppend(dups, "\t", 0); -- dups = rpmiobAppend(dups, fn1, 1); -+ dups = rpmiobAppend(dups, fn1+buildrootL, 1); - n++; - } - } -@@ -2972,7 +2972,7 @@ static int fiIntersect(/*@null@*/ rpmfi - * @param spec spec file control structure - * @return number of duplicate files - */ --static int checkDuplicateFiles(Spec spec) -+static int checkDuplicateFiles(Spec spec, size_t buildrootL) - /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/ - /*@modifies *spec->packages, - rpmGlobalMacroContext, fileSystem, internalState @*/ -@@ -2997,7 +2997,7 @@ static int checkDuplicateFiles(Spec spec - #endif - if (fi2 == NULL) continue; - (void) rpmfiSetHeader(fi2, pkg2->header); -- n += fiIntersect(fi1, fi2); -+ n += fiIntersect(fi1, fi2, buildrootL); - (void) rpmfiSetHeader(fi2, NULL); - fi2 = rpmfiFree(fi2); - } -@@ -3023,7 +3023,7 @@ static inline int packagedDir(Package pk - * /A/B/C/D - * Now directories "/A/B" and "/A/B/C" should also be packaged. - */ --static int pkgUnpackagedSubdirs(Package pkg) -+static int pkgUnpackagedSubdirs(Package pkg, size_t buildrootL) - /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/ - /*@modifies pkg->header, - rpmGlobalMacroContext, fileSystem, internalState @*/ -@@ -3096,7 +3096,7 @@ static int pkgUnpackagedSubdirs(Package - - for (i = 0; i < n; i++) { - list = rpmiobAppend(list, "\t", 0); -- list = rpmiobAppend(list, unpackaged[i], 1); -+ list = rpmiobAppend(list, unpackaged[i]+buildrootL, 1); - unpackaged[i] = _free(unpackaged[i]); - } - unpackaged = _free(unpackaged); -@@ -3117,7 +3117,7 @@ static int pkgUnpackagedSubdirs(Package - * @param spec spec file control structure - * @return number of unpackaged subdirectories - */ --static int checkUnpackagedSubdirs(Spec spec) -+static int checkUnpackagedSubdirs(Spec spec, size_t buildrootL) - /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/ - /*@modifies *spec->packages, - rpmGlobalMacroContext, fileSystem, internalState @*/ -@@ -3126,7 +3126,7 @@ static int checkUnpackagedSubdirs(Spec s - Package pkg; - - for (pkg = spec->packages; pkg; pkg = pkg->next) -- n += pkgUnpackagedSubdirs(pkg); -+ n += pkgUnpackagedSubdirs(pkg, buildrootL); - return n; - } - -@@ -3137,6 +3137,11 @@ rpmRC processBinaryFiles(Spec spec, int - Package pkg; - rpmRC res = RPMRC_OK; - -+ char *buildroot = rpmExpand("%{?buildroot}", NULL); -+ size_t buildrootL = strlen(buildroot); -+ -+ buildroot = _free(buildroot); -+ - for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) { - int rc; - -@@ -3178,8 +3183,8 @@ rpmRC processBinaryFiles(Spec spec, int - if (res == RPMRC_OK) { - if (checkUnpackagedFiles(spec) > 0) - res = RPMRC_FAIL; -- (void) checkDuplicateFiles(spec); -- (void) checkUnpackagedSubdirs(spec); -+ (void) checkDuplicateFiles(spec, buildrootL); -+ (void) checkUnpackagedSubdirs(spec, buildrootL); - } - - return res; diff --git a/rpm-5.4.9-support-signatures-and-digest-disablers.patch b/rpm-5.4.9-support-signatures-and-digest-disablers.patch deleted file mode 100644 index af9e1a7..0000000 --- a/rpm-5.4.9-support-signatures-and-digest-disablers.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.9/system.h.nosig~ 2012-05-16 20:52:58.216415034 +0200 -+++ rpm-5.4.9/system.h 2012-05-16 20:53:29.053598105 +0200 -@@ -746,7 +746,7 @@ static inline const char *rcsid(const ch - /** - * Eliminate signature/digest disablers. - */ --#undef SUPPORT_NOSIGNATURES -+#define SUPPORT_NOSIGNATURES 1 - - /** - * Permit ar(1) payloads. Disabled while rpmio/iosm.c is under development. diff --git a/rpm-5.4.9-update-rpmfc-when-removing-dependencies-on-self.patch b/rpm-5.4.9-update-rpmfc-when-removing-dependencies-on-self.patch deleted file mode 100644 index c3b9e35..0000000 --- a/rpm-5.4.9-update-rpmfc-when-removing-dependencies-on-self.patch +++ /dev/null @@ -1,140 +0,0 @@ ---- rpm-5.4.9/lib/rpmfc.c.fc_deps~ 2012-05-15 02:23:23.157740011 +0200 -+++ rpm-5.4.9/lib/rpmfc.c 2012-05-15 02:24:42.863147557 +0200 -@@ -1763,12 +1763,14 @@ static int rpmfcGenerateScriptletDeps(co - return rc; - } - --static void removeSillyDeps(Header h) { -+static unsigned removeSillyDeps(Header h, rpmfc fc) { - HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he)); -- int xx, i, rnum, removed = 0; -+ int xx; -+ unsigned i, rnum, removed = 0; - const char **deps = NULL; - const char **versions = NULL; - evrFlags *flags = NULL; -+ int *newpos = NULL, *ddictxPos = NULL; - - he->tag = RPMTAG_REQUIRENAME; - xx = headerGet(h, he, 0); -@@ -1783,18 +1785,32 @@ static void removeSillyDeps(Header h) { - xx = headerGet(h, he, 0); - flags = (evrFlags*)he->p.ui32p; - -+ if (fc && fc->requires != NULL && fc->ddictx != NULL) { -+ newpos = alloca(he->c*sizeof(newpos[0])); -+ if (fc->ddictx) -+ ddictxPos = alloca(fc->ddictx->nvals*sizeof(ddictxPos[0])); -+ } - for (i = 0; i < rnum-removed; i++) { - if (removed) { - deps[i] = deps[i+removed]; - versions[i] = versions[i+removed]; - flags[i] = flags[i+removed]; -+ if (fc) { -+ fc->requires->N[i] = fc->requires->N[i+removed]; -+ fc->requires->EVR[i] = fc->requires->EVR[i+removed]; -+ fc->requires->Flags[i] = fc->requires->Flags[i+removed]; -+ } - } -+ if (fc && fc->requires != NULL && fc->ddictx != NULL) -+ newpos[i+removed] = i; - rpmds req = rpmdsSingle(RPMTAG_REQUIRENAME, deps[i], versions[i], flags[i]); - rpmds prov = rpmdsNew(h, (*deps[i] == '/' && !*versions[i]) ? RPMTAG_BASENAMES : RPMTAG_PROVIDENAME, 0); - if (rpmdsMatch(req, prov)) { - if (flags[i] & RPMSENSE_SCRIPT_PRE) - rpmlog(RPMLOG_ERR, "Requires(pre): on dependency provided by self: %s\n", rpmdsDNEVR(req)); - else { -+ if (fc && fc->requires != NULL && fc->ddictx != NULL) -+ newpos[i+removed] = -1; - rpmlog(RPMLOG_NOTICE, "Removing dependency on self: %s\n", rpmdsDNEVR(req)); - removed++; - i--; -@@ -1803,6 +1819,52 @@ static void removeSillyDeps(Header h) { - req = rpmdsFree(req); - prov = rpmdsFree(prov); - } -+ if (fc && fc->requires != NULL && fc->ddictx != NULL && removed) { -+ fc->requires->Count -= removed; -+ unsigned rx = 0; -+ for (i = 0; i < fc->ddictx->nvals-rx; i++) { -+ unsigned ix; -+ unsigned char deptype; -+ -+ ix = fc->ddictx->vals[i+rx]; -+ deptype = ((ix >> 24) & 0xff); -+ ix &= 0x00ffffff; -+ -+ if (deptype == 'P') { -+ ddictxPos[i+rx] = i; -+ fc->ddictx->vals[i] = fc->ddictx->vals[i+rx]; -+ continue; -+ } -+ if (newpos[ix] == -1) { -+ ddictxPos[i+rx] = -1; -+ i--, rx++; -+ } -+ else -+ { -+ ddictxPos[i+rx] = i; -+ fc->ddictx->vals[i] = (deptype << 24) | (newpos[ix] & 0x00ffffff); -+ } -+ } -+ fc->ddictx->nvals -= rx; -+ -+ for (i = 0; i < fc->fddictn->nvals; i++) { -+ rx = 0; -+ if (fc->fddictn->vals[i]) { -+ unsigned j, ix = fc->fddictx->vals[i]; -+ for (j = 0, rx = 0; j < fc->fddictn->vals[i]; j++, ix++) { -+ if (ddictxPos[ix] == -1) -+ rx++; -+ if (j == 0 || fc->fddictx->vals[i] == -1) -+ fc->fddictx->vals[i] = ddictxPos[ix]; -+ } -+ } -+ if (rx) -+ fc->fddictn->vals[i] -= rx; -+ if (fc->fddictn->vals[i] == 0) -+ fc->fddictx->vals[i] = 0; -+ } -+ } -+ - if (removed) { - he->tag = RPMTAG_REQUIRENAME; - he->t = RPM_STRING_ARRAY_TYPE; -@@ -1820,6 +1882,7 @@ static void removeSillyDeps(Header h) { - headerMod(h, he, 0); - } - -+ return removed; - } - - rpmRC rpmfcGenerateDepends(void * _spec, void * _pkg) -@@ -1855,7 +1918,7 @@ rpmRC rpmfcGenerateDepends(void * _spec, - if (internaldeps == 0) { - /* ... then generate dependencies using %{__find_requires} et al. */ - rc = rpmfcGenerateDependsHelper(spec, pkg, fi); -- removeSillyDeps(pkg->header); -+ removeSillyDeps(pkg->header, NULL); - printDeps(pkg->header); - return rc; - } -@@ -2045,6 +2108,8 @@ assert(he->p.ptr != NULL); - /*@=nullpass@*/ - } - -+ removeSillyDeps(pkg->header, fc); -+ - /* Add dependency dictionary(#dependencies) */ - he->tag = RPMTAG_DEPENDSDICT; - he->t = RPM_UINT32_TYPE; -@@ -2073,8 +2138,6 @@ assert(ac == (int)he->c); - xx = headerPut(pkg->header, he, 0); - } - -- removeSillyDeps(pkg->header); -- - printDeps(pkg->header); - - if (fc != NULL && _rpmfc_debug) { diff --git a/rpm-5.4.9-updated-pld-mandriva-php-dep-generator.patch b/rpm-5.4.9-updated-pld-mandriva-php-dep-generator.patch deleted file mode 100644 index 0f9a3e7..0000000 --- a/rpm-5.4.9-updated-pld-mandriva-php-dep-generator.patch +++ /dev/null @@ -1,245 +0,0 @@ ---- rpm-5.4.9/macros/mandriva.in.php_deps~ 2012-06-28 04:25:18.070035644 +0200 -+++ rpm-5.4.9/macros/mandriva.in 2012-06-28 04:25:21.883987963 +0200 -@@ -275,8 +275,6 @@ Group: %{group}\ - # TODO: merge relevant changes into rpm version rather than using our own - %__perl_provides @USRLIBRPM@/@RPMCANONVENDOR@/perl.prov - %__perl_requires @USRLIBRPM@/@RPMCANONVENDOR@/perl.req --%__php_provides @USRLIBRPM@/@RPMCANONVENDOR@/php.prov --%__php_requires @USRLIBRPM@/@RPMCANONVENDOR@/php.req - - %__find_provides @USRLIBRPM@/@RPMCANONVENDOR@/filter.sh '%{?_provides_exceptions:%{_provides_exceptions}}%{!?_provides_exceptions: }' '%{?_exclude_files_from_autoprov:%{_exclude_files_from_autoprov}}%{!?_exclude_files_from_autoprov: }' '%{buildroot}' @USRLIBRPM@/@RPMCANONVENDOR@/find-provides - %__find_requires @USRLIBRPM@/@RPMCANONVENDOR@/filter.sh '%{?_requires_exceptions:%{_requires_exceptions}}%{!?_requires_exceptions: }' '%{?_exclude_files_from_autoreq:%{_exclude_files_from_autoreq}}%{!?_exclude_files_from_autoreq: }' '%{buildroot}' @USRLIBRPM@/@RPMCANONVENDOR@/find-requires %{?buildroot:%{buildroot}} %{?_target_cpu:%{_target_cpu}} ---- rpm-5.4.9/scripts/php.prov.php_deps~ 2012-06-28 04:22:17.980287076 +0200 -+++ rpm-5.4.9/scripts/php.prov 2012-06-28 04:22:33.725090237 +0200 -@@ -1,17 +1,44 @@ - #!/usr/bin/perl - ##################################################################### - # # --# Small script to generate provides for php-pear/php-pecl # -+# Check system dependences between php-pear modules # - # # --# Adam Gołębiowski # --# # --# Somehow based on previous work by: # --# Paweł Gołaszewski # -+# Paweł Gołaszewski # - # Michał Moskal # -+# ------------------------------------------------------------------# -+# TODO: # - ##################################################################### - --# Contest: shrink this one to oneliner --# Bonus : and fit in 80 columns ;) -+$pear = "/usr/share/pear"; -+@files = (); -+ -+ -+if ("@ARGV") { -+ foreach (@ARGV) { -+ process_file($_); -+ } -+} else { -+ -+ # notice we are passed a list of filenames NOT as common in unix the -+ # contents of the file. -+ -+ foreach (<>) { -+ chomp $_; -+ process_file($_); -+ } -+} -+ -+f: for $f (sort keys %req) { -+ print "pear($f)\n"; -+} -+ -+exit(0); -+ -+sub process_file() { -+ my ($f) = @_; -+ return unless ($f =~ /$pear.*\.php$/); - --/package.xml/ and open(F, $_) foreach (@ARGV ? @ARGV : <> ); --/^\s+\([a-zA-Z0-9\_]+)\<\/name\>$/ and print "php-pear-$1" while (); -+ $f =~ s/.*$pear\///; -+ push @files, $f; -+ $req{$f} = 1; -+} ---- rpm-5.4.9/scripts/php.req.php_deps~ 2012-06-28 04:22:21.478243346 +0200 -+++ rpm-5.4.9/scripts/php.req 2012-06-28 04:22:33.986086975 +0200 -@@ -1,78 +1,108 @@ --#!/usr/bin/perl -W -+#!/usr/bin/perl - ##################################################################### - # # --# Check system dependencies between php-pear/php-pecl modules # -+# Check system dependences between php-pear modules # - # # --# Adam Gołębiowski # --# # --# based on previous work by: # - # Paweł Gołaszewski # --# Michał Moskal # --# # --# ----------------------------------------------------------------- # --# ChangeLog: # --# 20031201: complete rewrite to use PEAR's package.xml, now handles # --# all dependencies, including PHP modules (like php-gmp), # --# and PECL extensions (adamg) # -+# Michał Moskal # -+# ------------------------------------------------------------------# -+# TODO: # -+# - extension_loaded - dependencies. # -+# - some clean-up... # - ##################################################################### - --@req_arr = (); --$fname = '/dev/null'; --foreach ( @ARGV ? $ARGV : <> ) --{ -- $fname = $_ if (/package.xml/) -+$pear = "/usr/share/pear"; -+ -+@files = (); -+%req = (); -+ -+if ("@ARGV") { -+ foreach (@ARGV) { -+ process_file($_); -+ } -+} else { -+ -+ # notice we are passed a list of filenames NOT as common in unix the -+ # contents of the file. -+ -+ foreach (<>) { -+ chomp $_; -+ process_file($_); -+ } - } - --open F, $fname; -+f: for $f (keys %req) { -+ for $g (@files) { next f if ($g =~ /\Q$f\E$/); } -+ print "pear($f)\n"; -+} -+ -+exit(0); -+ -+sub process_file() { -+ my ($f) = @_; -+ push @files, $f; -+ -+ # skip non-php files -+ next unless ($f =~ /\.php$/); -+ -+ if (!open(F, $f)) { -+ warn("$0: Warning: Could not open file '$f' for reading: $!\n"); -+ return; -+ } -+ -+ if ($f =~ /$pear/) { -+ $file_dir = $f; -+ $file_dir =~ s|.*$pear/||; -+ $file_dir =~ s|/[^/]*$||; -+ } else { -+ $file_dir = undef; -+ } -+ -+ while () { -+ # skip comments -+ next if (/^\s*(#|\/\/|\*|\/\*)/); -+ while (/(\W|^)(require|include)(_once)? -+ \s* \(? \s* ("([^"]*)"|'([^']*)') -+ \s* \)? \s* ;/xg) { -+ -+ if ($5 ne "") { -+ $x = $5; -+ } elsif ($6 ne "") { -+ $x = $6; -+ } else { -+ next; -+ } -+ $x =~ s/\/\.?\//\//g while $x =~ /\/\.?\//; -+ $x =~ s/(\/|^)[^\/]*[^.]\/\.\.\//\1/g while $x =~ /(\/|^)[^\/]*[^.]\/\.\.\//; -+ next if ($x =~ m|^\.\.?/| or $x =~ /\$/); -+ next unless ($x =~ /\.php$/); -+ $req{$x} = 1; -+ } -+ -+ next unless (defined $file_dir); -+ -+ while (/(\W|^)(require|include)(_once)? -+ \s* \(? \s* dirname \s* \( \s* __FILE__ \s* \) \s* \. \s* -+ ("([^"]*)"|'([^']*)') -+ \s* \)? \s* ;/xg) { -+ if ($5 ne "") { -+ $x = $5; -+ } elsif ($6 ne "") { -+ $x = $6; -+ } else { -+ next; -+ } -+ -+ next unless ($x =~ /\.php$/); -+ -+ $x = "$file_dir/$x"; -+ $x =~ s/\/\.?\//\//g while $x =~ /\/\.?\//; -+ $x =~ s/(\/|^)[^\/]*[^.]\/\.\.\//\1/g while $x =~ /(\/|^)[^\/]*[^.]\/\.\.\//; -+ $req{$x} = 1; -+ } -+ } - --while () { -- if ( /\s+\([a-zA-Z0-9\_\-]*)\=" if ( $rel eq "ge"); -- $relation = ">" if ( $rel eq "gt"); -- $relation = "=" if ( $rel eq "has"); -- # die if we were unable to substitute relations -- die "ERROR: Unexpected relation! ($rel)\n" if ( $relation eq ""); -- -- $req = ""; -- $relver = ""; -- $relver = "$relation $version" if ( $version !~ /^$/ ); -- $req = "$name $relver" if ( $type =~ /(php|prog)/ ); -- $req = "php-$name $relver" if ( $type =~ /ext/ ); -- $req = "php-pear-$name" if ( $type =~ /pkg/ ); -- -- push @req_arr, $req -+ close(F) || -+ die("$0: Could not close file: '$f' : $!\n"); - -- } - } --for $r (@req_arr) { print "$r\n"; } diff --git a/rpm.spec b/rpm.spec index 91e2972..81f1fb2 100644 --- a/rpm.spec +++ b/rpm.spec @@ -1,3 +1,9 @@ +%define commit 4ec71f4ce5c342fb225e35545f252bc67db7dde7 +%define short_commit %(echo %{commit} | head -c 4) +# When updating, change commit hash above to the commit in +# https://abf.io/soft/rpm5 that you want to build from +# and bump "Release". + %{?build_selinux}%{?!build_selinux:%bcond_with selinux} %{?build_squirrel}%{?!build_squirrel:%bcond_without squirrel} @@ -50,8 +56,6 @@ %define libver 5.4 %define minorver 10 -%define srcver %{libver}.%{minorver} -#define prereldate 20110712 %define librpmname %mklibname rpm %{libver} %define librpmnamedevel %mklibname rpm -d @@ -61,14 +65,11 @@ Summary: The RPM package management system Name: rpm Epoch: 1 Version: %{libver}.%{minorver} -Release: %{?prereldate:0.%{prereldate}.}87 +Release: 88.git%{short_commit} License: LGPLv2.1+ Group: System/Configuration/Packaging Url: http://rpm5.org/ -# snapshot from rpm-5_4 branch: 'cvs -d :pserver:anonymous@rpm5.org:/cvs co -r rpm-5_4 rpm' -# tarball generated with './devtool tarball.xz' -Source0: ftp://ftp.jbj.org/pub/rpm-%{libver}.x/%{name}-%{srcver}.tar.gz -#Source1: bootstrap.spec +Source0: https://abf.io/soft/rpm5/archive/rpm5-%{commit}.tar.gz # These are a bit dated with a lot of redundant macros and many of them no # of use at all anymore! Should ideally just contain the macros different # from the default; _arch, optflags, _lib & _multilib*. @@ -78,461 +79,6 @@ Source2: rpm.rpmlintrc Source3: cpu-os-macros.tar.gz Source5: RPMBDB-0.1.tar.xz Source6: autosetup.macros -# add squirrel3 support -Patch0: rpm-5.4.10-squirrel3.patch -# add makeinstall_qt macro to handle install from qmake-generated makefiles -Patch1: rpm-5.4.10-makeinstall_qt.patch -# fixes a typo in russian translation (#62333) -# status: needs to be pushed back to the Russian i18n project -Patch11: rpm-5.4.9-fix-russian-typo.patch -# temporary workaround for issues with file triggers firing multiple times and -# a huge memleak... -# DIE -Patch15: rpm-5.3.8-fire-file-triggers-only-once.patch -# status: ready to merge, it's already been merged on HEAD, so commiting it to rpm-5_4 -# would basically just mean backporting it.. -Patch29: rpm-5.4.4-add-_specfile-macro.patch -# status: ready for merge -Patch31: rpm-5.4.9-fix-rpm_qa-pattern.patch -# uhm.. broken? -# status: this one was fixed for real in 5.3.12, but I forgot commiting it -# on rpm-5_4 branch back then, and I've been unable to remember and not -# bothered figuring out what was wrong.. -Patch32: rpm-5.4.4-really-always-invoke-clean-at-end.patch -# status: i18n strings is getting dropped, so this one might be of less relevance, -# but feel free to discuss it on rpm-devel -Patch33: rpm-5.4.9-fix-mdvbz62979.patch -# This patch adds support for untangling dependency loops with prioritized removal -# of dependencies from loops. It's very crude for now and certainly needs some obvious -# improvement, but it'll fix the most common scenario giving issues where ie. -# Requires(post) has been used and shouldn't introduce any regressions.. -# REF: http://rpm5.org/community/rpm-devel/4633.html -# status: needs to be finished and probably rewrite the implementation, -# so keep locally for now, but feel free to discuss it on rpm-devel if you run out -# of things to do.. :p -Patch34: rpm-5.4.4-use-dependency-type-for-ordering.patch -# status: needs to be cleaned up and properly reviewed together with rest -# of the patches related to dependency generation -Patch37: rpm-5.4.9-avoid-dependencies-on-self.patch -# status: probably ready to merge -Patch40: rpm-5.4.4-pkgconfigdeps-check-path.patch -# status: probably okay to merge, but discuss on rpm-devel first -Patch42: rpm-5.4.4-glob-wildcards-for-loading-macro-files.patch -# status: needs to be discussed -Patch46: rpm-5.4.4-allow-installation-of-repackaged-rpms.patch -# status: same as for other dependency generation related patches -Patch47: rpm-5.4.4-fix-removal-of-overlapping-dependencies.patch -# status: ready to merge -Patch48: rpm-5.4.8-dont-show-suggests-with-requires.patch -# backport from HEAD -# status: almost ready for merge, the strip reloc flag to debugedit needs to be made -# conditional first in order to not break backwards compatibility with older elfutils versions -Patch55: rpm-5.4.9-find-debuginfo-strip-reloc-debug-sections.patch -# status: ready for merge -Patch61: rpm-5.4.4-fix-same-package-with-epoch-possible-to-upgrade.patch -# status: ready for merge -Patch63: rpm-5.4.9-strip-buildroot-away-from-duplicate-files-list.patch -# status: probably okay to merge, but discuss on rpm-devel first -Patch64: rpm-5.4.10-duplicate_files_terminate_build.patch -# status: same as above -Patch65: rpm-5.4.10-unpackaged_subdirs_terminate_build.patch -# mdvbz#64898 -# status: uncertain, might be okay to merge, discuss on rpm-devel first -Patch66: rpm-5.4.4-rpmbuild-withoutclean.patch -# status: ready for merge -Patch67: rpm-5.4.4-find-debuginfo-avoid-excessive-output-from-eu-strip.patch -# no sense in having an additional dependency on 'pkgconfig' on all packages that -# have a pkgconfig file, it's not needed for them to be made useful and anything -# actuallly using pkgconfig for this purpose will pull it in as a dependency anyways... -# status: might be okay to merge, but discuss on rpm-devel first -#Patch69: rpm-5.4.4-drop-useless-auto-generated-pkgconfig-dependency.patch -# drop dependencies such as /bin/sh which will always be satisfied by glibc's dependency on -# bash, and also on /sbin/ldconfig which always will be satisfied by glibc -# status: should *NOT* be merged -Patch70: rpm-5.4.4-drop-base-dependencies.patch -# status: ready for merge -Patch71: rpm-5.4.4-fix-rpmconstant-to-always-use-LC_CTYPE-C-for-case-conversion.patch -# $RPM_BUILD_DIR isn't necessarily the same as $PWD, it's %%{_builddir}, not -# %%{_builddir}/%%{?buildsubdir}, messing up paths in debug packages created.. -# status: needs to be discussed and investigated a bit better.. -Patch74: rpm-5.4.4-pass-_builddir-properly-to-find-debuginfo.patch -# status: probably okay to merge, but discuss on rpm-devel first -Patch76: rpm-5.4.10-files-listed-twice-terminates-build.patch -# status: don't merge -Patch77: rpm-5.4.7-use-bdb-5.2.patch -# status: probably okay to merge -Patch78: rpm-5.4.9-ruby1.9-fixes.patch -# mdvbz#65269 -# status: same as for other dependency generation patches -Patch79: rpm-5.4.4-dont-consider-ranged-dependencies-as-overlapping-for-removal.patch -# status: same as for other dependency generation patches -Patch85: rpm-5.4.5-fix-removal-of-overlapping-dependencies-for-internal-dependency-generator.patch -# this updates to using the dependency generator shipped with mono, it has some -# issues which makes me cautious about actually merging it with rpm5 upstream, -# but we'll anyways use it as is for now to prevent any potential regressions -# by switching to the internal dependency generator -# status: shouldn't be merged as is -Patch86: rpm-5.4.5-update-mono-dependency-generator.patch -# status: probably okay to merge -Patch87: rpm-5.4.5-dont-generate-php-dependencies-only-when-executable.patch -# status: these three were lost on rpm-5_3 branch, so should be okay to merge -Patch88: rpm-5.4.5-patchset_16004.patch -Patch89: rpm-5.4.5-patchset_16005.patch -Patch90: rpm-5.4.5-patchset_16022.patch -# status: same as for other dep gen patches -Patch91: rpm-5.4.9-update-rpmfc-when-removing-dependencies-on-self.patch -# status: idem -Patch92: rpm-5.4.9-rpmfc-extract-dependencies-for-all-files.patch -# status: ready for merge -Patch93: rpm-5.4.5-rubygems-add-missing-newline.patch -# status: same as for other dep gen patches -Patch95: rpm-5.4.5-drop-some-interpreter-deps.patch -# status: probably okay to merge.. -Patch96: rpm-5.4.5-fix-elf-interpreter-resolving-breaking-uclibc-deps.patch -# status: probably okay to merge -Patch97: rpm-5.4.5-set-proper-file-color-for-scripts-using-env-in-shellbang.patch -Patch98: rpm-5.4.5-update-rpmfc-when-removing-overlapping-dependencies.patch -# status: probably okay to merge -Patch99: rpm-5.4.5-python-export-spec-macros.patch -# status: same as for other dep gen patches -Patch100: rpm-5.4.5-do-not-merge-script-dependencies-with-non-script-dependencies.patch -# status: idem -Patch101: rpm-5.4.9-font-provides.patch -# status: idem -Patch102: rpm-5.4.7-kmod-dependencies.patch -# status: idem -Patch103: rpm-5.4.5-desktop-provides.patch -# status: probably okay to merge, discuss on rpm-devel first -Patch104: rpm-5.4.5-skip-dependencies-for-character-devices.patch -# status: ready to merge -Patch105: rpm-5.4.5-rpmfc-use-strlen-not-sizeof.patch -# status: same as for other dep gen patches -Patch106: rpm-5.4.5-break-out-of-elf-link-loop.patch -# status: probably okay to merge -Patch107: rpm-5.4.5-rpmfc-apply-python-coloring-from-magic.patch -# status: same as for other dep gen patches -Patch109: rpm-5.4.5-fix-generation-of-uclibc-deps-on-non-lib64.patch -# status: idem -Patch110: rpm-5.4.7-only-generate-devel-deps-for-symlinks-start-with-lib.patch -# status: keep locally -Patch111: rpm-5.4.9-keep-loading-script-macros.patch -# status: ready for merge -Patch112: rpm-5.4.7-use-gnu-hash-style-by-default-and-drop-rtld-dep.patch -# status: keep locally only -Patch113: rpm-5.4.9-add-distepoch-rpmlib-feature.patch -# status: probably okay to merge, but discuss on rpm-devel first -Patch114: rpm-5.4.9-dont-add-versioneddependency-rpmlib-feature-dependency.patch -# status: ready to merge -Patch115: rpm-5.4.7-rpmfc-fix-invalid-free-if-not-_defaultdocdir-set.patch -# status: probably okay to merge -Patch116: rpm-5.4.10-dont-try-generate-rpmfc-dependencies-from-doc-files.patch -# status: ready to merge -Patch117: rpm-5.4.7-only-generate-ruby-and-python-deps-for-executables-and-modules.patch -# status: ready -Patch119: rpm-5.4.7-fix-generation-of-ruby-abi-provides.patch -# status: same as for other dep gen patches -Patch120: rpm-5.4.7-print-name-of-files-removed-dependencies-are-generated-from.patch -# status: idem -Patch121: rpm-5.4.7-always-choose-equal-only-deps-when-overlapping.patch -# status: idem -Patch122: rpm-5.4.7-rpmfc-strdup-EVR-in-overlap-removal.patch -# status: idem -Patch123: rpm-5.4.7-rpmds-dont-try-fopen-empty-filenames.patch -# status: ready -Patch124: rpm-5.4.7-change-to-debuginfo-suffix.patch -# crash reproducable with 'rpm -qa --triggers' -# status: ready -Patch125: rpm-5.4.7-hdrfmt-fix-unitialized-argv-element.patch -# status: probably okay to merge, discuss on rpm-devel first -Patch126: rpm-5.4.9-add-filetriggers-regex-matching-support.patch -# status: idem -Patch127: rpm-5.4.9-add-matches-as-arguments-to-triggers.patch -# status: same as for other dep gen patches -Patch128: rpm-5.4.7-dont-consider-trigger-dependencies-as-overlapping.patch -# status: ready -Patch129: rpm-5.4.7-fix-minor-memleaks.patch -# status: ready -Patch130: rpm-5.4.9-mire-fix-strings-lacking-null-terminator.patch -# status: keep locally for now -Patch131: rpm-5.4.10-dlopen-embedded-interpreters.patch -# status: ready -Patch132: rpm-5.4.9-rpmpython-fix-input.patch -# status: same as for other dep gen patches -Patch133: rpm-5.4.7-generate-devel-provides-outside-of-libdirs.patch -# status: ready -Patch134: rpm-5.4.7-actually-perform-linking-against-internal-lua.patch -# status: ready -Patch135: rpm-5.4.7-no-seqid_init-on-rdonly-database.patch -# status: same as for other dep gen patches -Patch136: rpm-5.4.9-add-support-for-using-rpmdsMerge-with-filepath-tags.patch -# status: probably ready for merging -Patch137: rpm-5.4.9-avoid-double-slash-in-path-for-dirname-filetrigger-matching.patch -# This patch adds %%triggerpretransin, %%triggerpretransun, -# %%triggerposttransin, %%triggerposttransun # triggers, which behaves in -# similar fashion as the legacy mandriva triggers, ie. it will fire only once -# for all matches per transaction. -# Caveat: Due to lack of available bits for dependency flags, the same bits as -# for regular triggers are reused with only one additional bit used to identify -# as pre/posttrans triggers, meaning that older rpm versions will identify -# these triggers as regular triggers. One possible solution could be something -# like setting an environment variable that the packager writing the trigger -# can check for in the trigger script.. -# status: pretty much done, but implementation might not be satisfactory to -# everyone, requiring some greater discussion to take place before even -# considering merging it upstream. -# status: ready for use, but keep locally for now... -Patch138: rpm-5.4.10-trigtrans.patch -# status: probably ready to merge, discuss on rpm-devel first -Patch139: rpm-5.4.9-fix-verify-segfault.patch -# status: keep locally -Patch140: rpm-5.4.7-rpmv3-support.patch -# status: ready -Patch143: rpm-5.4.7-mono-find-requires-strip-newlines.patch -# status: ready -Patch144: rpm-5.4.8-URPM-build-fix.patch -# status: undefined -Patch145: rpm-5.4.8-add-armv7l-specific-macros.patch -# status: keep locally, might drop this one later.. -Patch146: rpm-5.4.9-support-signatures-and-digest-disablers.patch -# status: undefined -Patch147: rpm-5.4.9-add-x32-macros.patch -# status: ready and should be merged -Patch149: rpm-5.4.9-fix-typo-in-rpmtag-header.patch -# status: can be merged, but doesn't really matter as it's to be removed and -# we now anyways disable the support in question.. -Patch150: rpm-5.4.9-dont-remap-i18n-strings-if-enabled.patch -# status: just keep around and toss away when ripped out upstream... -Patch151: rpm-5.4.9-disable-support-for-i18nstring-type.patch -# lack insight on actual functionality, which anyways seems broken, so let's -# disable it to avoid errors from berkeley db.. -# status: keep locally -Patch152: rpm-5.4.9-disable-l10ndir.patch -# drop this dead macro -# status: ready -Patch154: rpm-5.4.9-drop-dead-cputoolize-macro.patch -# idem -Patch155: rpm-5.4.9-ditch-install-info-macros.patch -# the php dependency generator carried with rpm5 is based on a version from PLD -# that they've backed out later on, reverting to their older version. -# this patch replaces current upstream rpm5 version with mandriva one, which is -# based on the same as PLD currently uses. -# status: current version carried upstream seems useless and unmaintained, so -# replacing it with this one shouldn't hurt.. -Patch156: rpm-5.4.9-updated-pld-mandriva-php-dep-generator.patch -# this patch contains changes from rpm-setup & rpm.org -# status: not entirely convinced by the perl version conversion macro stuff -# in the script, which might not be upstream material, but rest of the patch -# should otherwise be sane 'nuff -Patch157: rpm-5.4.10-merge-rpm.org-and-mandriva-perl-dep-gen-changes.patch -# Due to rpmdav/neon being written in a different fashion than other rpmio clients, -# the inconsistent behaviour affects code elsewhere which expects consistent behaviour, -# with the result being that when unable to download files, neon will save error -# page as the target file. -# status: should go upstream, but uncertain about "correct" fix, ie. this is -# more of a workaround, while rewriting rpmdav code to behave consistently -# would be "the right thing to do". Yet I'm not fully able to grasp all of the -# code and don't want to spend more time just to get the API.. -Patch158: rpm-5.4.10-fix-neon-saving-error-pages-as-target-file.patch -# As the transaction flags for ignoring arch & os are no longer used, there's -# currently no way to ignore arch & os of packages anymore. This patch adds -# support for doing this again by defining rpm variables and overriding -# --ignorearch & --ignoreos to set these. -# status: needs to be discussed upstream before thinking about merging -Patch159: rpm-5.4.10-support-ignore-arch-and-os-again.patch -# fix so that we search through library dirs within buildroot for uclibc libraries -# status: same as for other dep gen patches -Patch161: rpm-5.4.10-search-through-buildroot-library-dirs-for-uclibc-deps.patch -# status: same as for other dep gen patches -Patch162: rpm-5.4.10-fix-uninitialized-variable.patch -# coverity #1035956 -# https://www.mail-archive.com/rpm-cvs@rpm5.org/msg08976.html -Patch163: rpm-5.4.10-coverity-1035956.patch -# clang: fix -fsanitize=integer issues -# https://www.mail-archive.com/rpm-cvs@rpm5.org/msg09653.html -Patch164: rpm-5.4.10-fix-fsanitize-integer.patch - -# our own helper scripts needs to be run first so that library permissions gets -# fixed for find-debuginfo.sh to properly strip them -# status: ready as they only modify our own distribution specific macros.. -Patch165: rpm-5.4.10-post-install-helper-order.patch -# fixes issue with ldflags getting duplicated when configure is run more than once -# status: ready -Patch166: rpm-5.4.10-fix-ldflags-passing.patch -# fixes extraction of perl version from Config.pm when it's of a different -# version than system version -# status: ready -Patch167: rpm-5.4.10-fix-perl-abi-provides-version.patch -# in our perl package, the perl library now has a versioned soname, so there's no -# longer any need for special treatment of perl extension with explicitly -# versioned perl(abi) dependencies anymore -# status: relies on mandriva specific behaviour with local patches, so keep locally -Patch168: rpm-5.4.10-no-more-explicit-perl-abi-version-reqs.patch -# this patch updates the upstream brp-compress scripts, which will be replacing -# our own locally maintained compress-files script from spec-helper -# status: ready -Patch169: rpm-5.4.10-update-and-use-brp-compress.patch - -Patch170: rpm-5.4.10-dbconvert-5.2.patch - -# Do not generate pythonegg provides for python3 until we find a better solution -Patch171: rpm-5.4.10-python3-egg-reqs.patch -# status: ready -Patch1710: rpm-5.4.10-set-lc_ctype-to-utf8-when-building-gem.patch -# resolve absolute path before setting $RPM_BUILD_DIR rather to fix same issue -# without regression -# status: ready -Patch172: rpm-5.4.10-resolve-absolute-path-to-RPM_BUILD_DIR-for-debugedit.patch -# just fix a couple of minor memleaks at exit.. -# status: ready -Patch173: rpm-5.4.10-fix-a-couple-of-debugedit-memleaks.patch -# make "canonicalization(...)shrank by one character" error message more useful -# status: ready -Patch174: rpm-5.4.10-debugedit-saner-error-msg.patch -# files added with %%doc gets copied to buildroot after %%install, preventing -# ie. fix_eol to be run on these files (where it's usually most relevant), -# so let's add support for specific scripts to be run after this and make sure -# to execute fix_eol then.. -# status: kinda breaks use of (prolly' never used) $DONT_FIX_EOL variable, -# while not feeling exactly perfectly implemented either, but works more than -# satisfactory 'nuff for us, so should be discussed before merging upstream.. -Patch175: rpm-5.4.10-run-spec-helper-at-end-of-doc-stage.patch -# reverts change upstream that adds rpath to perl module -# status: as it reverts a previous upstream change, it prolly' shouldn't be -# merged, but probably worthwhile a discussion at least... -Patch176: rpm-5.4.10-drop-rpath-from-perl-module.patch - -# tool for automatically checking and fixing broken rpmdb -# status: probably' worth merging upstream -Patch179: rpm-5.4.10-rpmdbchk.patch -# adds casts for C++ compatibility -# status: ready -Patch180: rpm-5.4.10-rpmdb-typecasts.patch - -# adds ability for printing parsed version of spec file with 'rpm -q --specfile --printspec' -# status: very simple, non-intrusive, while quite convenient, should be okay to merge -Patch181: rpm-5.4.10-printspec.patch - -# elf(buildid) provides are currently not actually used for any purpose, yet -# they're generated for each individual executable binary, so let's just -# disable this for now and look at this again whenever in the future it -# might have any possible relevance -# status: keep locally -Patch185: rpm-5.4.10-disable-generation-of-buildid-provides.patch -# backport from upstream -Patch186: rpm-5.4.10-dont-repackage-if-justdb-is-specified.patch -# backport from upstream -Patch187: rpm-5.4.10-adjust-trigger-counts-for-delayed-commit.patch - -Patch191: rpm-5.4.10-enhance-rename-macro-to-accept-optional-second-version-arg.patch - -Patch192: rpm-5.4.10-do-assert-rather-than-just-exit-on-memalloc-filaure.patch -# fixes issue where querying a package with >= 3 '-' in the name with an extra '-' behind -# status: ready -Patch193: rpm-5.4.10-fix-memalloc-realloc-to-0.patch -#From ce2ce4c19724879b9ea469e7760c7922660b9698 Mon Sep 17 00:00:00 2001 -#From: Panu Matilainen -#Date: Tue, 3 Jan 2012 13:10:26 +0200 -#Subject: [PATCH] Implement scriptlet start and stop callbacks (RhBug:606239) -# -#- Adds two new transaction callbacks: RPMCALLBACK_SCRIPT_START and -# RPMCALLBACK_SCRIPT_STOP which get issued for every scriptlet we run. -#- On script start, callback can optionally return an FD which will -# override transaction-wide script fd to make it easier to accurately -# collect per-scriptlet output (eg per-scriptlet temporary file). -# Callback is also responsible for closing the fd if it returns one. -#- For both callbacks, "amount" holds the script tag number. On stop -# callback, "total" holds the scriptlet exit status mapped into -# OK/NOTFOUND/FAIL for success/non-fatal/fatal errors. Abusing "notfound" -# for warning result is ugly but differentiating it from the other -# cases allows callers to ignore SCRIPT_ERROR if they choose to -# implement stop and start.. -# status: ready -Patch194: rpm-5.4.10-implement-start-and-stop-callbacks.patch -#From ff0ece3f6be58c8c28a766bdee5ed36daf1727b1 Mon Sep 17 00:00:00 2001 -#From: Panu Matilainen -#Date: Thu, 5 Jan 2012 14:34:46 +0200 -#Subject: [PATCH] Add enum for RPMCALLBACK_INST_STOP callback event -# -#- Unused atm but we'll be adding this shortly -Patch195: rpm-5.4.10-add-enum-for-RPMCALLBACK_INST_STOP-callback-event.patch -# this fixes tagSwab to properly handle RPM_UINT64_TYPE, fixing headerPut with -# status: ready -Patch196: rpm-5.4.10-fix-64bit-tagSwab.patch - -Patch198: rpm-5.4.10-enable-nofsync-for-rpm-rebuilddb.patch -Patch199: rpm-5.4.10-fix-font-dep-misidentification.patch - -Patch216: rpm-5.4.14-ruby-archdirs.patch -Patch217: rpm-5.4.14-ruby-abi-versioned.patch -Patch218: rpm-5.4.14-gem_helper-spec-arg.patch -Patch219: rpm-5.4.14-rubygems2-support.patch -Patch220: rpm-5.4.14-fix-dependency-generation-when-ruby_version-is-empty.patch -Patch221: rpm-5.4.14-rubygems2.2-support.patch - -# alloca fails with 121 008 objects -Patch222: rpm-5.4.10-trigtrans_avoid_alloca_as_stack_overflows.patch -# https://forum.rosalinux.ru/viewtopic.php?f=56&t=8427&p=88972&hilit=rpm4+rpm5#p88972 -Patch223: rpm-5.4.10-speed_rpm.patch - -# ROSA stuff -Patch501: rpm-5.3.12.vendor.ROSA.patch -# Restore RPM_PACKAGE_NAME export as it's still used by aot-compile-rpm -Patch502: rpm-5.4.9-package-name.patch -# for specspo -Patch503: rpm-5.4.9-specspo.patch - -Patch504: rpm-5.4.10-postpone_subpackage_build_failures.patch - -# Turn back old implementation of __urlgetfile handling, -# the new one doesn't work in ROSA atm -Patch505: rpm-5.4.10-turn-back-urlgetfile.patch - -# This is a durty hack since we use the same flag for NodeJS and Mono, -# but there is no other easy way to add more dependency generators for now -# (see jbj mails in mailing lists) -Patch506: rpm-5.4.10-nodejs-dependency-generator.patch - -# Use -fPIE and other hardening flags in builds by default -# Patch507: rpm-5.4.10-cpu-os-macros-hardening.patch -Patch508: rpm-5.4.10-hardening.patch - -# -ffat-lto-objects by default -Patch509: rpm-5.4.10-fat-lto-objects.patch - -# -fno-delete-null-pointer-checks by default -Patch510: rpm-5.4.10-no-delete-null-pointer-checks.patch - -# get distepoch from /etc/os-release -Patch511: rpm-5.4.10-distepoch-from-os-release.patch - -# stop rpm crashing when accessing a broken binary rpm (with inode collisions) -Patch512: rpm-5.4.10-hardlink-segfault-fix.patch - -# don't use hashes for inodes to avoid hash collisions on large packages -Patch513: rpm-5.4.10-payload-no-hashed-inode.patch - -# KDE5 support in find_lang -Patch514: rpm-5.4.10-find-lang-kde5.patch - -# Fix addsign check to skip PUBKEYS addition (to ensure reproducibility) -Patch515: rpm-5.4.10-fix-addsign-check.patch - -# Add _appdatadir macro definition -Patch516: rpm-5.4.10-appdatadir.patch - -# Add QML dependency generator -Patch517: rpm-5.4.10-qml-dependency-generator.patch - -# Always detect Python egg-info files as text for pythonegg(xxx) Provides generation -Patch518: rpm-5.4.10-fix-egg-info-provides.patch - -# On some modern files, 'file' reprots '... not stripped, too many notes' -Patch519: rpm-5.4.10-debuginfo-too-many-notes.patch - -Patch520: rpm-5.4.10-Multithreaded-XZ.patch -Patch521: rpm-5.4.10-Use-multithreaded-XZ-by-default-for-both-binary-and-.patch -Patch522: rpm-5.4.10-multithreaded-xz-memlimit.patch -Patch523: rpm-5.4.10-Parse-private-dependencies-from-pkgconfig-files.patch BuildRequires: autoconf >= 2.57 BuildRequires: bzip2-devel @@ -1031,185 +577,10 @@ This package contains the RPM API documentation generated in HTML format. #---------------------------------------------------------------------------- %prep -%setup -q -a5 -%patch111 -p1 -b .script_macros~ -%patch0 -p1 -b .squirrel3~ -%patch1 -p1 -b .makeinstall_qt~ -%patch11 -p1 -b .ru~ -%if 0 -%patch15 -p1 -b .trigger_once~ -%endif -%patch29 -p1 -b .specfile~ -%patch31 -p1 -b .rpm_qa~ -#%%patch32 -p1 -b .clean~ -%patch34 -p1 -b .ordering~ -%patch37 -p1 -b .drop_deps~ -%patch40 -p1 -b .pc_paths~ -%patch42 -p1 -b .glob~ -%patch46 -p1 -b .repackage~ -%patch47 -p1 -b .overlap~ -%patch48 -p1 -b .suggests~ -%patch55 -p1 -b .strip_reloc_debug~ -%patch61 -p1 -b .epoch_cmp~ -%patch63 -p1 -b .buildroot_dups~ -%patch64 -p1 -b .dups_terminate~ -%patch65 -p1 -b .subdir_terminate~ -%patch66 -p1 -b .withoutclean~ -%patch67 -p1 -b .strip_silent~ -#%patch69 -p1 -b .oneshot~ -%patch70 -p1 -b .drop_basedeps~ -%patch71 -p1 -b .locale~ -%patch74 -p1 -b .builddir~ -%patch76 -p1 -b .twice_terminate~ -%patch77 -p1 -b .db52~ -%patch78 -p1 -b .ruby19~ -%patch79 -p1 -b .range_nooverlap~ -%patch85 -p1 -b .int_gen_overlap~ -%patch86 -p1 -b .mono_deps_new~ -%patch87 -p1 -b .php_dep_gen~ -%patch88 -p1 -b .16004~ -%patch89 -p1 -b .16005~ -%patch90 -p1 -b .16022~ -%patch91 -p1 -b .fc_deps~ -%patch92 -p1 -b .rpmfc_ruby~ -%patch93 -p1 -b .rb_newline~ -%patch95 -p1 -b .interpret_deps~ -%patch96 -p1 -b .uclibc~ -%patch97 -p1 -b .env_color~ -%patch98 -p1 -b .fc_overlap~ -%patch99 -p1 -b .py_macros~ -%patch100 -p1 -b .script_overlap~ -%patch101 -p1 -b .font~ -%patch102 -p1 -b .kmod~ -%patch103 -p1 -b .desktop~ -%patch104 -p1 -b .skip_chrdev~ -%patch105 -p1 -b .sizeof~ -%patch106 -p1 -b .link_loop~ -%patch107 -p1 -b .python_color~ -%patch109 -p1 -b .uclibc_nolib64~ -%patch110 -p1 -b .req_devel~ -%patch112 -p1 -b .gnu_hash~ -%patch113 -p1 -b .depoch_rpmlib~ -%patch114 -p1 -b .no_verdepfeat~ -%patch115 -p1 -b .free~ -%patch116 -p1 -b .skip_doc~ -%patch117 -p1 -b .exec_modules~ -%patch119 -p1 -b .rubyabi_prov~ -%patch120 -p1 -b .filedep_origins~ -%patch121 -p1 -b .equal_overlaps~ -%patch122 -p1 -b .strdup~ -%patch123 -p1 -b .ds_fopen~ -%patch124 -p1 -b .debuginfo~ -%patch125 -p1 -b .unitialized~ -%patch126 -p1 -b .trig_pcre~ -%patch127 -p1 -b .trigger_args~ -%patch128 -p1 -b .triggers_nooverlap~ -%patch129 -p1 -b .memleak~ -%patch130 -p1 -b .str_nul~ -%patch131 -p1 -b .dlopen~ -%patch132 -p1 -b .py_input~ -%patch133 -p1 -b .devel_prov~ -#patch134 -p1 -b .lua~ -%patch135 -p1 -b .db_rdonly~ -%patch136 -p1 -b .ds_merge~ -%patch137 -p1 -b .slash~ -%patch138 -p1 -b .trigtrans~ -%patch139 -p1 -b .fix_verify~ -%patch140 -p1 -b .rpmv3~ -%patch143 -p1 -b .mono_newline~ -%patch144 -p1 -b .urpm~ -%patch146 -p1 -b .nosig~ -%patch147 -p1 -%patch149 -p1 -b .typo~ -%patch150 -p1 -b .i18n_str~ -%patch151 -p1 -b .noi18n~ -%patch152 -p1 -b .l10ndir~ -%patch154 -p1 -b .cputoolize~ -%patch155 -p1 -b .install_info~ -%patch156 -p1 -b .php_deps~ -%patch157 -p1 -b .perl_deps~ -%patch158 -p1 -b .dl_error~ -#patch138 -p1 -b .trigtrans~ -%patch159 -p1 -b .ignore_arch~ -%patch161 -p1 -b .uclibc_buildroot~ -%patch162 -p1 -b .uninitialized~ -%patch163 -p1 -b .coverity1035956.patch~ -%patch164 -p1 -b .fsanitize_int~ - -%patch165 -p1 -b .helper_order~ -%patch166 -p1 -b .ldflags~ -%patch167 -p1 -b .perl_abiver~ -%patch168 -p1 -b .perl_abireq~ -%patch169 -p1 -b .brpcomp~ -%patch170 -p1 -b .dbconvert52~ -%patch171 -p1 -b .python3~ -%patch1710 -p1 -b .ruby_utf8~ -%patch172 -p1 -b .debug_path~ - -%patch173 -p1 -b .debugedit_memleaks~ -%patch174 -p1 -b .debugedit_errmsg~ -%patch175 -p1 -b .doc_post~ -%patch176 -p1 -b .droprpath~ - -%patch179 -p1 -b .rpmdbchk~ -%patch180 -p1 -b .typecast~ -%patch181 -p1 -b .printspec~ - -%patch185 -p1 -b .buildid_deps~ -%patch186 -p1 -b .rpkg_justdb~ -%patch187 -p1 -b .trig_cnt~ - -%patch191 -p1 -b .rename~ -%patch192 -p1 -b .mem_assert~ -%patch193 -p1 -b .xrealloc~ -%patch194 -p1 -b .cb~ -%patch195 -p1 -b .cb2~ -%patch196 -p1 -b .ui64p~ - -%patch198 -p1 -b .rpmdbnofsync~ -%patch199 -p1 -b .fontdep_sure~ - -%patch216 -p1 -b .rubyarchdirs~ -%patch217 -p1 -b .rubyabiver~ -%patch218 -p1 -b .gem_spec~ -%patch219 -p1 -b .rubygems2~ -%patch220 -p1 -b .no_ruby_version~ -%patch221 -p1 -b .rubygems2.2~ - -%patch222 -p1 -b .trigtrans-fix-alloca~ -%patch223 -p1 -b .speed~ - -%patch501 -p1 -b .rosa_vendor~ -%patch502 -p1 -b .package_name~ -%patch503 -p1 -b .specspo~ -%patch504 -p1 -b .postpone_errors~ -%patch505 -p1 -b .urlgetfile~ -%patch506 -p1 -b .nodejs~ -%patch508 -p1 -b .hardening~ -%patch509 -p1 -b .fat_lto_cpu_os_macros~ -%patch510 -p1 -b .no-delete-null-pointer-checks~ -%patch511 -p1 -b .distepoch -%patch512 -p1 -b .hardlink-segfault-fix -%patch513 -p1 -b .payload-no-hashed-inode -%patch514 -p1 -b .kde5-find-lang -%patch515 -p1 -b .fix-addsign-check -%patch516 -p1 -b .appdatadir~ -%patch517 -p1 -b .qmldeps~ -%patch518 -p1 -b .egg-info~ -%patch519 -p1 -b .debug_notes~ - -%patch520 -p1 -b .MultithreadedXZ -%patch521 -p1 -b .MultithreadedXZbyDefault -%patch522 -p1 -b .MultithreadedXZ32bitMemLimit -%patch523 -p1 -b .ParsePkgconfigPrivate - -#required by P55, P80, P81, P94.. -./autogen.sh - +%setup -q -a5 -n rpm5-%{commit} mkdir -p cpu-os-macros tar -zxf %{SOURCE3} -C cpu-os-macros -%patch145 -p1 -# patch507 -p0 -b .hardening_cpu_os_macros~ +./autogen.sh %build %configure2_5x --enable-nls \