From fb35e2d9d54505d58b8e4787525e5a9c54e49ce8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20R=C4=99korajski?= Date: Fri, 27 Dec 2019 00:22:37 +0900 Subject: [PATCH] - finished patch review, some patches require update (mst notableis x32) - switch to openssl and ddb5.3 --- disable-header-verification.patch | 20 -- do_not_write_before_macro_buffer.patch | 23 -- extension-based-compression-detection.patch | 29 --- fast_python_deps.patch | 86 ------- gcc6-stdlib.patch | 31 --- glibc.patch | 56 ---- py-disable-fetch.patch | 34 --- python-libx32.patch | 10 - python-rpmsense-missingok.patch | 12 - python2_explicit.patch | 11 - rpm-5.4.15-use-DSA-sig.patch | 11 - rpm-CVE-2013-6435.patch | 72 ------ rpm-CVE-2014-8118.patch | 11 - rpm-DB_CONFIG.patch | 13 - rpm-bug-420.patch | 22 -- rpm-changelog-encoding.patch | 22 -- rpm-clean-docdir.patch | 20 +- rpm-cppcompat.patch | 56 ---- rpm-db5.2.patch | 29 --- rpm-disable-hmac-verify.patch | 23 -- ...dont-treat-gstreamer-modules-as-font.patch | 11 - rpm-double_check_file_deps.patch | 94 ------- rpm-double_check_unpackaged_subdirs.patch | 46 ---- rpm-file-magic-can-be-mixed-case.patch | 20 -- rpm-file-output-for-ELF.patch | 34 --- rpm-fix-___build_pre-macro.patch | 22 -- rpm-fix-filedigests-verify.patch | 10 - rpm-fix-internal-lua-build.patch | 40 --- rpm-gpg-pinentry.patch | 24 -- rpm-gst-inspect-typo.patch | 11 - rpm-ignore-missing-macro-files.patch | 55 +--- rpm-lua-enable-extra-libs.patch | 21 -- rpm-lua-expat.patch | 14 - rpm-macros.patch | 34 --- rpm-missing-patch-file-fails-build.patch | 13 - rpm-null-term-ascii-digest.patch | 19 -- rpm-parseSpec-skip-empty-tags.patch | 11 - rpm-pattern_Release.patch | 11 - rpm-payload-use-hashed-inode.patch | 105 -------- rpm-perl-magic.patch | 16 +- rpm-preserve-iterator.patch | 23 -- rpm-preserve-tag-type.patch | 55 ---- rpm-python-enable-compat-RPMSENSE.patch | 11 - rpm-python-sitescriptdir.patch | 25 -- rpm-python-spec-header.patch | 56 ---- rpm-pythoneggs.patch | 82 ------ rpm-query-always-noisy.patch | 99 -------- ...ove-misleading-missing-patch-message.patch | 20 -- ...repackage-dont-force-max-compression.patch | 11 - rpm-revert-gpg-argv-parsing.patch | 39 --- rpm-rpmspec.patch | 239 ------------------ rpm-rpmtdnext.patch | 12 - rpm-verify-ghosts-broken-logic.patch | 11 - rpm.spec | 144 ++--------- skip-ldconfig-optimization.patch | 74 ------ x32.patch | 163 ++++++------ 56 files changed, 127 insertions(+), 2139 deletions(-) delete mode 100644 disable-header-verification.patch delete mode 100644 do_not_write_before_macro_buffer.patch delete mode 100644 extension-based-compression-detection.patch delete mode 100644 fast_python_deps.patch delete mode 100644 gcc6-stdlib.patch delete mode 100644 glibc.patch delete mode 100644 py-disable-fetch.patch delete mode 100644 python-libx32.patch delete mode 100644 python-rpmsense-missingok.patch delete mode 100644 python2_explicit.patch delete mode 100644 rpm-5.4.15-use-DSA-sig.patch delete mode 100644 rpm-CVE-2013-6435.patch delete mode 100644 rpm-CVE-2014-8118.patch delete mode 100644 rpm-DB_CONFIG.patch delete mode 100644 rpm-bug-420.patch delete mode 100644 rpm-changelog-encoding.patch delete mode 100644 rpm-cppcompat.patch delete mode 100644 rpm-db5.2.patch delete mode 100644 rpm-disable-hmac-verify.patch delete mode 100644 rpm-dont-treat-gstreamer-modules-as-font.patch delete mode 100644 rpm-double_check_file_deps.patch delete mode 100644 rpm-double_check_unpackaged_subdirs.patch delete mode 100644 rpm-file-magic-can-be-mixed-case.patch delete mode 100644 rpm-file-output-for-ELF.patch delete mode 100644 rpm-fix-___build_pre-macro.patch delete mode 100644 rpm-fix-filedigests-verify.patch delete mode 100644 rpm-fix-internal-lua-build.patch delete mode 100644 rpm-gpg-pinentry.patch delete mode 100644 rpm-gst-inspect-typo.patch delete mode 100644 rpm-lua-enable-extra-libs.patch delete mode 100644 rpm-lua-expat.patch delete mode 100644 rpm-macros.patch delete mode 100644 rpm-missing-patch-file-fails-build.patch delete mode 100644 rpm-null-term-ascii-digest.patch delete mode 100644 rpm-parseSpec-skip-empty-tags.patch delete mode 100644 rpm-pattern_Release.patch delete mode 100644 rpm-payload-use-hashed-inode.patch delete mode 100644 rpm-preserve-iterator.patch delete mode 100644 rpm-preserve-tag-type.patch delete mode 100644 rpm-python-enable-compat-RPMSENSE.patch delete mode 100644 rpm-python-sitescriptdir.patch delete mode 100644 rpm-python-spec-header.patch delete mode 100644 rpm-pythoneggs.patch delete mode 100644 rpm-query-always-noisy.patch delete mode 100644 rpm-remove-misleading-missing-patch-message.patch delete mode 100644 rpm-repackage-dont-force-max-compression.patch delete mode 100644 rpm-revert-gpg-argv-parsing.patch delete mode 100644 rpm-rpmspec.patch delete mode 100644 rpm-rpmtdnext.patch delete mode 100644 rpm-verify-ghosts-broken-logic.patch delete mode 100644 skip-ldconfig-optimization.patch diff --git a/disable-header-verification.patch b/disable-header-verification.patch deleted file mode 100644 index ab553fe..0000000 --- a/disable-header-verification.patch +++ /dev/null @@ -1,20 +0,0 @@ -http://lists.pld-linux.org/mailman/pipermail/pld-devel-en/2015-February/024241.html - ---- rpm-5.4.15/lib/verify.c~ 2015-02-11 12:07:41.000000000 +0200 -+++ rpm-5.4.15/lib/verify.c 2015-02-11 17:31:05.418447510 +0200 -@@ -563,6 +563,7 @@ - - { - /* Verify header digest/signature. */ -+#if NOTYET - if (qva->qva_flags & (VERIFY_DIGEST | VERIFY_SIGNATURE)) - { - const char * horigin = headerGetOrigin(h); -@@ -577,6 +578,7 @@ - uh = _free(uh); - msg = _free(msg); - } -+#endif - - /* Verify file digests. */ - if (fc > 0 && (qva->qva_flags & VERIFY_FILES)) diff --git a/do_not_write_before_macro_buffer.patch b/do_not_write_before_macro_buffer.patch deleted file mode 100644 index 14fbd82..0000000 --- a/do_not_write_before_macro_buffer.patch +++ /dev/null @@ -1,23 +0,0 @@ -http://lists.pld-linux.org/mailman/pipermail/pld-devel-en/2015-November/thread.html#24537 - ---- rpm-5.4.15.orig/rpmio/macro.c 2015-11-28 20:47:15.000000000 +0100 -+++ rpm-5.4.15/rpmio/macro.c 2015-11-28 20:51:05.634724202 +0100 -@@ -706,7 +706,9 @@ - FILE *shf; - int rc; - int c; -+ char * start; - -+ start = mb->t; - strncpy(buf, cmd, clen); - buf[clen] = '\0'; - rc = expandU(mb, buf, bufn); -@@ -720,7 +722,7 @@ - (void) pclose(shf); - - /* XXX delete trailing \r \n */ -- while (iseol(mb->t[-1])) { -+ while (mb->t > start && iseol(mb->t[-1])) { - *(mb->t--) = '\0'; - mb->nb++; - } diff --git a/extension-based-compression-detection.patch b/extension-based-compression-detection.patch deleted file mode 100644 index 112b161..0000000 --- a/extension-based-compression-detection.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- rpm-5.4.15/rpmio/macro.c~ 2018-08-19 13:11:28.000000000 +0200 -+++ rpm-5.4.15/rpmio/macro.c 2018-08-19 13:18:39.102655981 +0200 -@@ -3122,7 +3122,7 @@ - ssize_t nb; - int rc = -1; - unsigned char magic[13]; --#if defined(RPM_VENDOR_OPENPKG) || defined(RPM_VENDOR_FEDORA) || defined(RPM_VENDOR_MANDRIVA) /* extension-based-compression-detection */ -+#if defined(RPM_VENDOR_OPENPKG) || defined(RPM_VENDOR_FEDORA) || defined(RPM_VENDOR_MANDRIVA) || defined(RPM_VENDOR_PLD) /* extension-based-compression-detection */ - size_t file_len; - #endif - -@@ -3139,7 +3139,7 @@ - return 0; - #endif - --#if defined(RPM_VENDOR_OPENPKG) || defined(RPM_VENDOR_FEDORA) || defined(RPM_VENDOR_MANDRIVA) /* extension-based-compression-detection */ -+#if defined(RPM_VENDOR_OPENPKG) || defined(RPM_VENDOR_FEDORA) || defined(RPM_VENDOR_MANDRIVA) || defined(RPM_VENDOR_PLD) /* extension-based-compression-detection */ - file_len = strlen(file); - if ((file_len > 4 && strcasecmp(file+file_len-4, ".tbz") == 0) - || (file_len > 4 && strcasecmp(file+file_len-4, ".bz2") == 0)) { -@@ -3208,7 +3208,7 @@ - && magic[2] == 'Z' && magic[3] == 'O') /* lzop */ - *compressed = COMPRESSED_LZOP; - else --#if !defined(RPM_VENDOR_OPENPKG) && !defined(RPM_VENDOR_FEDORA) && !defined(RPM_VENDOR_MANDRIVA) /* extension-based-compression-detection */ -+#if !defined(RPM_VENDOR_OPENPKG) && !defined(RPM_VENDOR_FEDORA) && !defined(RPM_VENDOR_MANDRIVA) && !defined(RPM_VENDOR_PLD) /* extension-based-compression-detection */ - /* XXX Ick, LZMA has no magic. See http://lkml.org/lkml/2005/6/13/285 */ - if (magic[ 9] == (unsigned char) 0x00 && magic[10] == (unsigned char) 0x00 && - magic[11] == (unsigned char) 0x00 && magic[12] == (unsigned char) 0x00) /* lzmash */ diff --git a/fast_python_deps.patch b/fast_python_deps.patch deleted file mode 100644 index f22e1b0..0000000 --- a/fast_python_deps.patch +++ /dev/null @@ -1,86 +0,0 @@ -diff -dur -x '*~' -x '*.orig' rpm-5.4.15.orig/lib/rpmfc.c rpm-5.4.15/lib/rpmfc.c ---- rpm-5.4.15.orig/lib/rpmfc.c 2015-11-29 09:57:16.945204643 +0100 -+++ rpm-5.4.15/lib/rpmfc.c 2015-11-29 09:59:24.804768239 +0100 -@@ -604,8 +604,6 @@ - /* XXX "a /usr/bin/python -t script text executable" */ - /* 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 }, -@@ -1114,6 +1112,9 @@ - int i; - int xx; - int skipping; -+ int l; -+ const char * lastPycDir = NULL; -+ const char * p; - - miRE mire; - int skipProv = fc->skipProv; -@@ -1156,8 +1157,29 @@ - if ((fn[0] == '3' && fn[1] == '2') || - (fn[0] == '6' && fn[1] == '4')) - fn += 2; -- if (!strncmp(fn, "/python", sizeof("/python")-1)) -- fc->fcolor->vals[fc->ix] |= RPMFC_PYTHON; -+ if (!strncmp(fn, "/python", sizeof("/python")-1)) { -+ l = strlen(fn); -+ if (fn[l-4] == '.' && fn[l-3] == 'p' && fn[l-2] == 'y' -+ && (fn[l-1] == 'c' || fn[l-1] == 'o')) { -+ p = strchr(fn, '/'); -+ if (p) { -+ l = p - fc->fn[fc->ix]; -+ if (!lastPycDir || strncmp(lastPycDir, fc->fn[fc->ix], l)) { -+ /* one pyc/pyo file per python library directory should be enough to get the dependency */ -+ fc->fcolor->vals[fc->ix] |= RPMFC_PYTHON; -+ lastPycDir = fc->fn[fc->ix]; -+ } -+ } -+ } -+ else if (l > 17 && !strcmp(fn + l - 17, "egg-info/PKG-INFO")) { -+ /* get all PKG-INFO files for egg-info data */ -+ fc->fcolor->vals[fc->ix] |= RPMFC_PYTHON; -+ } -+ else if (l > 8 && !strcmp(fn + l - 8, "egg-info")) { -+ /* get all .egg-info files too */ -+ fc->fcolor->vals[fc->ix] |= RPMFC_PYTHON; -+ } -+ } - else if (!strncmp(fn, "/ruby", sizeof("/ruby")-1)) { - fc->fcolor->vals[fc->ix] |= RPMFC_RUBY; - if ((strstr(fn, ".gemspec") || strstr(fn, "rbconfig.rb"))) { -@@ -1184,8 +1206,29 @@ - fn = strstr(fc->fn[fc->ix], "/usr/share"); - if (fn) { - fn += sizeof("/usr/share")-1; -- if (!strncmp(fn, "/python", sizeof("/python")-1)) -- fc->fcolor->vals[fc->ix] |= RPMFC_PYTHON; -+ if (!strncmp(fn, "/python", sizeof("/python")-1)) { -+ l = strlen(fn); -+ if (fn[l-4] == '.' && fn[l-3] == 'p' && fn[l-2] == 'y' -+ && (fn[l-1] == 'c' || fn[l-1] == 'o')) { -+ p = strchr(fn, '/'); -+ if (p) { -+ l = p - fc->fn[fc->ix]; -+ if (!lastPycDir || strncmp(lastPycDir, fc->fn[fc->ix], l)) { -+ /* one pyc/pyo file per python library directory should be enough to get the dependency */ -+ fc->fcolor->vals[fc->ix] |= RPMFC_PYTHON; -+ lastPycDir = fc->fn[fc->ix]; -+ } -+ } -+ } -+ else if (l > 17 && !strcmp(fn + l - 17, "egg-info/PKG-INFO")) { -+ /* get all PKG-INFO files for egg-info data */ -+ fc->fcolor->vals[fc->ix] |= RPMFC_PYTHON; -+ } -+ else if (l > 8 && !strcmp(fn + l - 8, "egg-info")) { -+ /* get all .egg-info files too */ -+ fc->fcolor->vals[fc->ix] |= RPMFC_PYTHON; -+ } -+ } - else if (!strncmp(fn, "/ruby", sizeof("/ruby")-1) || !strncmp(fn, "/gems/specifications", sizeof("/gems/specifications")-1)) { - fc->fcolor->vals[fc->ix] |= RPMFC_RUBY; - if ((strstr(fn, ".gemspec") || strstr(fn, "rbconfig.rb"))) { diff --git a/gcc6-stdlib.patch b/gcc6-stdlib.patch deleted file mode 100644 index 4274a97..0000000 --- a/gcc6-stdlib.patch +++ /dev/null @@ -1,31 +0,0 @@ -gcc6 hack - -http://lists.pld-linux.org/mailman/pipermail/pld-devel-en/2017-June/025365.html -https://patchwork.openembedded.org/patch/122245/ - - --- - -gcc6 has fixed a long standing c++ include issue where -was different from inclusion via - -https://gcc.gnu.org/ml/libstdc++/2016-01/msg00025.html - -and its also descibed in https://gcc.gnu.org/gcc-6/porting_to.html -rpmio component uses some .cpp and .cc fies which need to use -C stdlib.h from C library and not the C++ libstdc++ header -therefore we pass _GLIBCXX_INCLUDE_NEXT_C_HEADERS so that it -keeps the old behavior ---- rpm-5.4.15/rpmio/rpmjni.cc~ 2014-08-09 01:08:50.000000000 +0300 -+++ rpm-5.4.15/rpmio/rpmjni.cc 2017-06-25 16:42:23.383464974 +0300 -@@ -1,3 +1,4 @@ -+#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS - #include "system.h" - #include - #include ---- rpm-5.4.15/rpmqv.cc~ 2017-06-25 17:37:53.000000000 +0300 -+++ rpm-5.4.15/rpmqv.cc 2017-06-25 18:01:37.158939691 +0300 -@@ -1,3 +1,4 @@ -+#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS - #include "system.h" - extern const char *__progname; - diff --git a/glibc.patch b/glibc.patch deleted file mode 100644 index 84a9b0f..0000000 --- a/glibc.patch +++ /dev/null @@ -1,56 +0,0 @@ -diff -upr rpm-5.4.15.org/rpmio/gzdio.c rpm-5.4.15/rpmio/gzdio.c ---- rpm-5.4.15.org/rpmio/gzdio.c 2012-04-16 05:21:22.000000000 +0200 -+++ rpm-5.4.15/rpmio/gzdio.c 2018-08-11 12:36:48.761296851 +0200 -@@ -380,7 +380,7 @@ static int gzdSeek(void * cookie, _libio - int rc; - #if defined(HAVE_GZSEEK) - #ifdef USE_COOKIE_SEEK_POINTER -- _IO_off64_t p = *pos; -+ off64_t p = *pos; - #else - off_t p = pos; - #endif -diff -upr rpm-5.4.15.org/rpmio/rpmio.c rpm-5.4.15/rpmio/rpmio.c ---- rpm-5.4.15.org/rpmio/rpmio.c 2014-08-05 00:47:16.000000000 +0200 -+++ rpm-5.4.15/rpmio/rpmio.c 2018-08-11 12:36:48.757963417 +0200 -@@ -481,7 +481,7 @@ static int fdSeek(void * cookie, _libio_ - /*@modifies fileSystem, internalState @*/ - { - #ifdef USE_COOKIE_SEEK_POINTER -- _IO_off64_t p = *pos; -+ off64_t p = *pos; - #else - off_t p = pos; - #endif -@@ -2458,7 +2458,7 @@ int Fseek(FD_t fd, _libio_off_t offset, - { - fdio_seek_function_t _seek; - #ifdef USE_COOKIE_SEEK_POINTER -- _IO_off64_t o64 = offset; -+ off64_t o64 = offset; - _libio_pos_t pos = &o64; - #else - _libio_pos_t pos = offset; -diff -upr rpm-5.4.15.org/rpmio/rpmio.h rpm-5.4.15/rpmio/rpmio.h ---- rpm-5.4.15.org/rpmio/rpmio.h 2014-07-20 01:01:26.000000000 +0200 -+++ rpm-5.4.15/rpmio/rpmio.h 2018-08-11 12:36:48.761296851 +0200 -@@ -1,6 +1,10 @@ - #ifndef H_RPMIO - #define H_RPMIO - -+#ifndef _GNU_SOURCE -+#define _GNU_SOURCE 1 -+#endif -+ - /** \ingroup rpmio - * \file rpmio/rpmio.h - * -@@ -25,7 +25,7 @@ - #if !defined(__LCLINT__) && !defined(__UCLIBC__) && defined(__GLIBC__) && \ - (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)) - #define USE_COOKIE_SEEK_POINTER 1 --typedef _IO_off64_t _libio_off_t; -+typedef off64_t _libio_off_t; - typedef _libio_off_t * _libio_pos_t; - #else - typedef off_t _libio_off_t; diff --git a/py-disable-fetch.patch b/py-disable-fetch.patch deleted file mode 100644 index 6035867..0000000 --- a/py-disable-fetch.patch +++ /dev/null @@ -1,34 +0,0 @@ -disable fetching sources. -annoying if you just want to get .spec structure! - -it could be parameter to s.parseSpec(), but as prevous code hardcoded, i'll -just "hardcode" different value here. - -http://lists.pld-linux.org/mailman/pipermail/pld-devel-en/2015-November/024529.html - -one could play with '__urlgetfile' macro, and just tell it 'OK': -%__urlgetfile OK - -but then ugly "Fetching" messages are still displayed, which maybe even more confusing. - -http://comments.gmane.org/gmane.comp.package-management.rpm.user/159 - ---- rpm-5.4.15/python/rpmts-py.c~ 2014-07-28 00:52:21.000000000 +0300 -+++ rpm-5.4.15/python/rpmts-py.c 2015-11-04 22:00:33.989058412 +0200 -@@ -1333,13 +1333,15 @@ - char * passPhrase = ""; - char *cookie = NULL; - int anyarch = 1; -- int verify = 1; -+ int verify; - int force = 1; - char * kwlist[] = {"specfile", NULL}; - - if (!PyArg_ParseTupleAndKeywords(args, kwds, "s:Parse", kwlist, &specfile)) - return NULL; - -+ verify = rpmExpandNumeric("%{?_py_parsespec_verify}%{?!_py_parsespec_verify:0}"); -+ - if (parseSpec(s->ts, specfile,"/", recursing, passPhrase, - cookie, anyarch, force, verify)!=0) { - PyErr_SetString(pyrpmError, "can't parse specfile\n"); diff --git a/python-libx32.patch b/python-libx32.patch deleted file mode 100644 index 59626dd..0000000 --- a/python-libx32.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- rpm-5.4.15/lib/rpmfc.c.old 2015-02-27 14:41:47.000000000 +0000 -+++ rpm-5.4.15/lib/rpmfc.c 2015-02-27 14:59:44.000000000 +0000 -@@ -1153,6 +1153,7 @@ assert(fc->fn != NULL); - { fn = strstr(fc->fn[fc->ix], "/usr/lib"); - if (fn) { - fn += sizeof("/usr/lib")-1; -+ if (fn[0] == 'x') fn++; - if ((fn[0] == '3' && fn[1] == '2') || - (fn[0] == '6' && fn[1] == '4')) - fn += 2; diff --git a/python-rpmsense-missingok.patch b/python-rpmsense-missingok.patch deleted file mode 100644 index d9a0731..0000000 --- a/python-rpmsense-missingok.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- rpm-5.4.10/python/rpmmodule.c~ 2013-04-27 22:07:40.000000000 +0300 -+++ rpm-5.4.10/python/rpmmodule.c 2013-04-27 22:07:54.410867637 +0300 -@@ -500,6 +500,9 @@ - REGISTER_ENUM(RPMSENSE_SCRIPT_PREUN); - REGISTER_ENUM(RPMSENSE_SCRIPT_POSTUN) - #endif -+#if defined(RPM_VENDOR_PLD) -+ REGISTER_ENUM(RPMSENSE_MISSINGOK); -+#endif - - REGISTER_ENUM(RPMDEPS_FLAG_NOUPGRADE); - REGISTER_ENUM(RPMDEPS_FLAG_NOREQUIRES); diff --git a/python2_explicit.patch b/python2_explicit.patch deleted file mode 100644 index acc6e2e..0000000 --- a/python2_explicit.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.15/configure.ac~ 2015-11-28 13:11:46.816903917 +0100 -+++ rpm-5.4.15/configure.ac 2015-11-28 13:14:39.887776863 +0100 -@@ -604,7 +604,7 @@ - AC_PATH_PROG(__PERL, perl, %{_bindir}/perl, $MYPATH) - AC_PATH_PROG(__PGP, pgp, %{_bindir}/pgp, $MYPATH) - AC_PATH_PROG(__PHP, php, %{_bindir}/php, $MYPATH) --AC_PATH_PROG(__PYTHON, python, %{_bindir}/python, $MYPATH) -+AC_PATH_PROG(__PYTHON, python2, %{_bindir}/python2, $MYPATH) - AC_PATH_PROG(__RM, rm, /bin/rm, $MYPATH) - AC_PATH_PROG(__RMDIR, rmdir, /bin/rmdir, $MYPATH) - AC_PATH_PROG(__RSH, rsh, %{_bindir}/rsh, $MYPATH) diff --git a/rpm-5.4.15-use-DSA-sig.patch b/rpm-5.4.15-use-DSA-sig.patch deleted file mode 100644 index e6d9799..0000000 --- a/rpm-5.4.15-use-DSA-sig.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.15/macros/macros.rpmbuild.in~ 2014-11-15 19:23:32.000000000 +0100 -+++ rpm-5.4.15/macros/macros.rpmbuild.in 2014-11-15 19:24:15.545692422 +0100 -@@ -282,7 +282,7 @@ - # ECDSA/SHA384 (using NIST P-384) - # ECDSA/SHA512 (using NIST P-521) - # --%_build_sign RSA/SHA1 -+%_build_sign DSA - - # - # Choose metadata file digest algorithm: diff --git a/rpm-CVE-2013-6435.patch b/rpm-CVE-2013-6435.patch deleted file mode 100644 index d96fd44..0000000 --- a/rpm-CVE-2013-6435.patch +++ /dev/null @@ -1,72 +0,0 @@ ---- rpm-5.4.15/rpmio/iosm.c~ 2014-06-11 19:58:04.000000000 +0200 -+++ rpm-5.4.15/rpmio/iosm.c 2015-01-25 21:53:27.659197235 +0100 -@@ -2627,7 +2627,7 @@ - iosm->rfd = NULL; - break; - case IOSM_WOPEN: -- iosm->wfd = Fopen(iosm->path, "w.fdio"); -+ iosm->wfd = Fopen(iosm->path, "wU.fdio"); - if (iosm->wfd == NULL || Ferror(iosm->wfd)) { - if (iosm->wfd != NULL) (void) iosmNext(iosm, IOSM_WCLOSE); - iosm->wfd = NULL; ---- rpm-5.4.15/rpmio/rpmio.c~ 2014-08-05 00:47:16.000000000 +0200 -+++ rpm-5.4.15/rpmio/rpmio.c 2015-01-25 21:50:59.409202466 +0100 -@@ -2638,16 +2638,20 @@ - * - bzopen: 'q' sets verbosity to 0 - * - bzopen: 'v' does verbosity++ (up to 4) - * - HACK: '.' terminates, rest is type of I/O -+ * - 'U' sets *mode to zero (no permissions) instead of 0666 - */ - static inline void cvtfmode (const char *m, - /*@out@*/ char *stdio, size_t nstdio, - /*@out@*/ char *other, size_t nother, -- /*@out@*/ const char **end, /*@out@*/ int * f) -+ /*@out@*/ const char **end, /*@out@*/ int * f, mode_t *mode) - /*@modifies *stdio, *other, *end, *f @*/ - { - int flags = 0; - char c; - -+ if (mode) -+ *mode = 0666; -+ - switch (*m) { - case 'a': - flags |= O_WRONLY | O_CREAT | O_APPEND; -@@ -2661,6 +2665,9 @@ - flags |= O_RDONLY; - if (--nstdio > 0) *stdio++ = *m; - break; -+ case 'U': -+ if (mode) *mode = 0; -+ break; - default: - *stdio = '\0'; - return; -@@ -2729,7 +2736,7 @@ - if (fmode == NULL) - return NULL; - -- cvtfmode(fmode, stdio, sizeof(stdio), other, sizeof(other), &end, NULL); -+ cvtfmode(fmode, stdio, sizeof(stdio), other, sizeof(other), &end, NULL, NULL); - if (stdio[0] == '\0') - return NULL; - zstdio[0] = '\0'; -@@ -2835,7 +2842,7 @@ - const char * fmode = NULL; - char stdio[20], other[20]; - const char *end = NULL; -- mode_t perms = 0666; -+ mode_t perms; - int flags = 0; - FD_t fd = NULL; - -@@ -2849,7 +2856,7 @@ - fprintf(stderr, "==> Fopen(%s, %s)\n", path, fmode); - - stdio[0] = '\0'; -- cvtfmode(fmode, stdio, sizeof(stdio), other, sizeof(other), &end, &flags); -+ cvtfmode(fmode, stdio, sizeof(stdio), other, sizeof(other), &end, &flags, &perms); - if (stdio[0] == '\0') - goto exit; - diff --git a/rpm-CVE-2014-8118.patch b/rpm-CVE-2014-8118.patch deleted file mode 100644 index dfd27f4..0000000 --- a/rpm-CVE-2014-8118.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.15/rpmio/cpio.c.orig 2012-04-16 05:21:22.000000000 +0200 -+++ rpm-5.4.15/rpmio/cpio.c 2015-01-25 15:50:23.017311712 +0100 -@@ -136,7 +136,7 @@ - /*@=shiftimplementation@*/ - - GET_NUM_FIELD(hdr->namesize, nb); -- if (nb >= iosm->wrsize) -+ if (nb <= 0 || nb >= iosm->wrsize) - return IOSMERR_BAD_HEADER; - - /* Read file name. */ diff --git a/rpm-DB_CONFIG.patch b/rpm-DB_CONFIG.patch deleted file mode 100644 index 238c385..0000000 --- a/rpm-DB_CONFIG.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- rpm-5.4.10/rpmdb/DB_CONFIG.in~ 2012-02-18 20:19:37.000000000 +0100 -+++ rpm-5.4.10/rpmdb/DB_CONFIG.in 2012-11-22 17:32:56.647805060 +0100 -@@ -5,6 +5,10 @@ - set_lg_dir ./log - set_tmp_dir ./tmp - -+# prevent recovery logs (log/log.*) from growing forever and keep only active log by default -+# this makes BDB "catastrophic" (re-creation of db from logs) recovery impossible -+log_set_config DB_LOG_AUTO_REMOVE -+ - # -- thread_count must be >= 8 - set_thread_count 64 - diff --git a/rpm-bug-420.patch b/rpm-bug-420.patch deleted file mode 100644 index 9581736..0000000 --- a/rpm-bug-420.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- rpm-5.4.15/rpmdb/legacy.c~ 2019-03-09 00:37:45.000000000 +0100 -+++ rpm-5.4.15/rpmdb/legacy.c 2019-03-09 00:38:28.799270580 +0100 -@@ -113,7 +113,7 @@ ANNOTATE_IGNORE_READS_AND_WRITES_END(); - bingo = 0; - while (!bingo && (scn = elf_nextscn(elf, scn)) != NULL) { - (void) gelf_getshdr(scn, &shdr); -- if (shdr.sh_type != SHT_DYNAMIC) -+ if (shdr.sh_type != SHT_DYNAMIC || shdr.sh_entsize == 0) - continue; - while (!bingo && (data = elf_getdata (scn, data)) != NULL) { - unsigned maxndx = (unsigned) (data->d_size / shdr.sh_entsize); ---- rpm-5.4.15/lib/rpmds.c~ 2019-03-09 01:04:27.000000000 +0100 -+++ rpm-5.4.15/lib/rpmds.c 2019-03-09 01:11:06.792636867 +0100 -@@ -3187,7 +3187,7 @@ fprintf(stderr, "*** rpmdsELF(%s, %d, %p - case SHT_DYNAMIC: - data = NULL; - while ((data = elf_getdata (scn, data)) != NULL) { -- for (cnt = 0; cnt < (int)(shdr->sh_size / shdr->sh_entsize); ++cnt) { -+ for (cnt = 0; shdr->sh_entsize && cnt < (int)(shdr->sh_size / shdr->sh_entsize); ++cnt) { - dyn = gelf_getdyn (data, cnt, &dyn_mem); - if (dyn == NULL) - /*@innerbreak@*/ break; diff --git a/rpm-changelog-encoding.patch b/rpm-changelog-encoding.patch deleted file mode 100644 index d48b50f..0000000 --- a/rpm-changelog-encoding.patch +++ /dev/null @@ -1,22 +0,0 @@ -commit 1f9882b38b046c7752ec3e1200b17b7edfc995cd -Author: Kacper Kornet -Date: Sat May 4 20:27:19 2013 +0100 - - Don't use tagFunction during copying headers - - It fixes error when the changelog in subpackage was converted - to encoding determined by environment. - -diff --git a/rpmdb/header.c b/rpmdb/header.c -index 01056c3..1cec5cc 100644 ---- a/rpmdb/header.c -+++ b/rpmdb/header.c -@@ -2213,7 +2213,7 @@ void headerCopyTags(Header headerFrom, Header headerTo, rpmTag * tagstocopy) - if (headerIsEntry(headerTo, *tagno)) - continue; - he->tag = *tagno; -- if (!headerGet(headerFrom, he, 0)) -+ if (!headerGet(headerFrom, he, HEADERGET_NOEXTENSION)) - continue; - xx = headerPut(headerTo, he, 0); - he->p.ptr = _free(he->p.ptr); diff --git a/rpm-clean-docdir.patch b/rpm-clean-docdir.patch index 5b8c858..800e2c0 100644 --- a/rpm-clean-docdir.patch +++ b/rpm-clean-docdir.patch @@ -1,10 +1,14 @@ --- rpm-5.4.10/build/files.c~ 2013-01-24 14:24:39.161982722 +0100 +++ rpm-5.4.10/build/files.c 2013-01-24 14:27:50.620325354 +0100 -@@ -1045,6 +1045,7 @@ - pkg->specialDoc = rpmiobAppend(pkg->specialDoc, "DOCDIR=\"$RPM_BUILD_ROOT\"", 0); - pkg->specialDoc = rpmiobAppend(pkg->specialDoc, buf, 1); - pkg->specialDoc = rpmiobAppend(pkg->specialDoc, "export DOCDIR", 1); -+ pkg->specialDoc = rpmiobAppend(pkg->specialDoc, "if test -d \"$DOCDIR\" ; then rmdir \"$DOCDIR\" ; fi", 1); - mkdir_p = rpmExpand("%{?__mkdir_p}%{!?__mkdir_p:mkdir -p}", NULL); - if (!mkdir_p) - mkdir_p = xstrdup("mkdir -p"); +@@ -2363,6 +2363,11 @@ + appendLineStringBuf(docScript, "export LC_ALL=C"); + appendStringBuf(docScript, "export "); + appendLineStringBuf(docScript, sdenv); ++ appendStringBuf(docScript, "if test -d \"$"); ++ appendStringBuf(docScript, sdenv); ++ appendStringBuf(docScript, "\" ; then rmdir \"$"); ++ appendStringBuf(docScript, sdenv); ++ appendLineStringBuf(docScript, "\" ; fi"); + appendLineStringBuf(docScript, mkdocdir); + + for (ARGV_const_t fn = sd->files; fn && *fn; fn++) { diff --git a/rpm-cppcompat.patch b/rpm-cppcompat.patch deleted file mode 100644 index 2943b79..0000000 --- a/rpm-cppcompat.patch +++ /dev/null @@ -1,56 +0,0 @@ ---- rpm-5.4.15/rpmdb/rpmdb.h.orig 2015-01-27 21:01:38.147301133 +0100 -+++ rpm-5.4.15/rpmdb/rpmdb.h 2015-02-16 20:01:30.571602097 +0100 -@@ -939,7 +939,7 @@ - /*@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); -@@ -949,7 +949,7 @@ - /*@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; -@@ -1027,7 +1027,7 @@ - /*@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; -@@ -1039,7 +1039,7 @@ - /*@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) -@@ -1073,7 +1073,7 @@ - /*@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) -@@ -1084,7 +1084,7 @@ - /*@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-db5.2.patch b/rpm-db5.2.patch deleted file mode 100644 index 08e5602..0000000 --- a/rpm-db5.2.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- rpm-5.4.10/configure.ac~ 2012-07-18 21:42:22.133130256 +0200 -+++ rpm-5.4.10/configure.ac 2012-07-18 21:45:04.726457854 +0200 -@@ -543,7 +543,7 @@ - MYPATH=$PATH - fi - --DBXY=db61 -+DBXY=db5.2 - - AC_PATH_PROG(__BASH, bash, %{_bindir}/bash, $MYPATH) - AC_PATH_PROG(__BZIP2, bzip2, %{_bindir}/bzip2, $MYPATH) -@@ -1582,7 +1582,7 @@ - CPPFLAGS="${CPPFLAGS} -I${prefix}/include/${DBXY}" - RPM_CHECK_LIB( - [Berkeley-DB], [db], -- [db-6.1], [db_create], [db.h], -+ [db-5.2], [db_create], [db.h], - [yes,external], [db3], - [ DBLIBSRCS="$DBLIBSRCS db3.c" - AM_CONDITIONAL(WITH_DB, [ true ]) -@@ -1609,7 +1609,7 @@ - dnl XXX error: `db3' is already registered with AC_CONFIG_SUBDIRS. - RPM_CHECK_LIB( - [Berkeley-DB (+SQLite3)], [dbsql], -- [db_sql-6.1], [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-disable-hmac-verify.patch b/rpm-disable-hmac-verify.patch deleted file mode 100644 index fb46df7..0000000 --- a/rpm-disable-hmac-verify.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- rpm-5.4.10.orig/lib/verify.c 2012-07-06 17:39:16.000000000 +0200 -+++ rpm-5.4.10/lib/verify.c 2012-10-21 19:35:08.610708732 +0200 -@@ -261,11 +261,20 @@ - unsigned char * fdigest = (unsigned char *) - memset(alloca(vf->dlen), 0, vf->dlen); - size_t fsize = 0; -+#if defined(RPM_VENDOR_PLD) -+/* -+ * Disable hmac during digest calculation, since rpm package files contain plain md5sums, -+ * hmac support is useless, see: -+ * http://lists.pld-linux.org/mailman/pipermail/pld-devel-en/2012-October/023193.html -+ */ -+ int rc = dodigest(vf->dalgo, vf->fn, fdigest, 0, &fsize); -+#else - #define _mask (RPMVERIFY_FDIGEST|RPMVERIFY_HMAC) - unsigned dflags = (vf->vflags & _mask) == RPMVERIFY_HMAC - ? 0x2 : 0x0; - #undef _mask - int rc = dodigest(vf->dalgo, vf->fn, fdigest, dflags, &fsize); -+#endif - sb.st_size = fsize; - if (rc) { - VF_SET(res, READFAIL); diff --git a/rpm-dont-treat-gstreamer-modules-as-font.patch b/rpm-dont-treat-gstreamer-modules-as-font.patch deleted file mode 100644 index 36c7617..0000000 --- a/rpm-dont-treat-gstreamer-modules-as-font.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.10/lib/rpmfc.c.old 2012-09-25 22:34:46.184039778 +0200 -+++ rpm-5.4.10/lib/rpmfc.c 2012-09-25 22:35:21.947179368 +0200 -@@ -921,7 +921,7 @@ static int rpmfcSCRIPT(rpmfc fc) - #endif - xx = rpmfcHelper(fc, 'R', "ruby"); - } else -- if (fc->fcolor->vals[fc->ix] & RPMFC_FONT) { -+ if ((fc->fcolor->vals[fc->ix] & RPMFC_FONT) == RPMFC_FONT) { - 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-double_check_file_deps.patch b/rpm-double_check_file_deps.patch deleted file mode 100644 index 58000a5..0000000 --- a/rpm-double_check_file_deps.patch +++ /dev/null @@ -1,94 +0,0 @@ -diff -dur rpm-5.4.12.orig/lib/rpmal.c rpm-5.4.12/lib/rpmal.c ---- rpm-5.4.12.orig/lib/rpmal.c 2012-04-15 23:20:57.000000000 +0200 -+++ rpm-5.4.12/lib/rpmal.c 2013-08-13 13:46:28.000000000 +0200 -@@ -7,6 +7,10 @@ - #include - #include /* XXX fnpyKey */ - #include -+#include -+ -+#define _RPMFI_INTERNAL -+#include - - #include - #include -@@ -38,6 +42,7 @@ - rpmds provides; /*!< Provides: dependencies. */ - /*@refcounted@*/ /*@null@*/ - rpmbf bf; /*!< File name Bloom filter. */ -+ rpmfi fi; /*!< File name Bloom filter. */ - - rpmuint32_t tscolor; /*!< Transaction color bits. */ - -@@ -149,6 +154,8 @@ - alp->provides = NULL; - (void)rpmbfFree(alp->bf); - alp->bf = NULL; -+ (void)rpmfiFree(alp->fi); -+ alp->fi = NULL; - } - - al->list = _free(al->list); -@@ -205,6 +212,8 @@ - alp->provides = NULL; - (void)rpmbfFree(alp->bf); - alp->bf = NULL; -+ (void)rpmfiFree(alp->fi); -+ alp->fi = NULL; - - memset(alp, 0, sizeof(*alp)); /* XXX trash and burn */ - return; -@@ -244,6 +253,7 @@ - /*@-assignexpose -castexpose @*/ - alp->provides = rpmdsLink(provides, "Provides (rpmalAdd)"); - alp->bf = rpmbfLink(rpmfiFNBF(fi)); -+ alp->fi = rpmfiLink(fi, "file list (rpmalAdd)"); - /*@=assignexpose =castexpose @*/ - - rpmalFreeIndex(al); -@@ -350,17 +360,17 @@ - rpmalAllFileSatisfiesDepend(const rpmal al, const rpmds ds, alKey * keyp) - { - fnpyKey * ret = NULL; -- int found = 0; -+ int found = 0, verified = 0; - const char * fn; - size_t nfn; -- int i; -+ int i, j; - - if (keyp) *keyp = RPMAL_NOMATCH; - - if (al == NULL || (fn = rpmdsN(ds)) == NULL || *fn != '/') - goto exit; - nfn = strlen(fn); -- -+ - if (al->list != NULL) /* XXX always true */ - for (i = 0; i < al->size; i++) { - availablePackage alp = al->list + i; -@@ -368,6 +378,24 @@ - if (!rpmbfChk(alp->bf, fn, nfn)) - continue; - -+ verified = 0; -+ char * fifn = (char *) malloc(alp->fi->fnlen + 1); -+ for(j=0; j<(int)alp->fi->fc; j++) { -+ const char * dn = NULL; -+ (void) urlPath(alp->fi->dnl[alp->fi->dil[j]], &dn); -+ strcpy(stpcpy(fifn, dn), alp->fi->bnl[j]); -+ if (!strcmp(fn, fifn)) { -+ verified = 1; -+ break; -+ } -+ } -+ free(fifn); -+ -+ if (!verified) { -+ rpmlog(RPMLOG_DEBUG, " False positive: '%s'\n", fn); -+ continue; -+ } -+ - rpmdsNotify(ds, _("(added files)"), 0); - - ret = (fnpyKey *) xrealloc(ret, (found + 2) * sizeof(*ret)); diff --git a/rpm-double_check_unpackaged_subdirs.patch b/rpm-double_check_unpackaged_subdirs.patch deleted file mode 100644 index b83f7de..0000000 --- a/rpm-double_check_unpackaged_subdirs.patch +++ /dev/null @@ -1,46 +0,0 @@ -Let packagedDir do a strict check when Bloom filter returns true. -Also, don't try to check dirs over buildroot to avoid wasting time -for useless checks (note that before packagedDir() could succeed on -some dir over buildroot, leading to log some junk, after the end of -string shorter than buildrootL). - ---- rpm-5.4.13/build/files.c.orig 2013-10-04 21:31:18.840898688 +0200 -+++ rpm-5.4.13/build/files.c 2013-10-13 09:09:23.406411763 +0200 -@@ -3032,12 +3032,26 @@ - } - - /* auxiliary function: check if directory d is packaged */ --static inline int packagedDir(Package pkg, const char *d) -+static int packagedDir(Package pkg, const char *d) - /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/ - /*@modifies pkg->header, - rpmGlobalMacroContext, fileSystem, internalState @*/ - { -- return rpmbfChk(rpmfiFNBF(pkg->fi), d, strlen(d)); -+ if(!rpmbfChk(rpmfiFNBF(pkg->fi), d, strlen(d))) -+ return 0; -+ char * fifn = (char *) xmalloc(pkg->fi->fnlen + 1); -+ rpmuint32_t j; -+ for(j = 0; j < pkg->fi->fc; j++) { -+ const char * dn = NULL; -+ (void) urlPath(pkg->fi->dnl[pkg->fi->dil[j]], &dn); -+ strcpy(stpcpy(fifn, dn), pkg->fi->bnl[j]); -+ if (!strcmp(d, fifn)) { -+ free(fifn); -+ return 1; -+ } -+ } -+ free(fifn); -+ return 0; - } - - /* auxiliary function: find unpackaged subdirectories -@@ -3076,6 +3090,8 @@ - strcpy(fn, rpmfiFN(fi)); - /* find the first path component that is packaged */ - while ((p = strchr(p + 1, '/'))) { -+ if (p - fn < buildrootL) -+ continue; /* don't try to check components over buildroot */ - *p = '\0'; - found = packagedDir(pkg, fn); - *p = '/'; diff --git a/rpm-file-magic-can-be-mixed-case.patch b/rpm-file-magic-can-be-mixed-case.patch deleted file mode 100644 index 9536124..0000000 --- a/rpm-file-magic-can-be-mixed-case.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- rpm-5.4.10/scripts/rpm2cpio~ 2009-03-19 02:01:24.000000000 +0100 -+++ rpm-5.4.10/scripts/rpm2cpio 2012-09-18 23:49:28.261438724 +0200 -@@ -25,13 +25,13 @@ - EXTRACTOR="dd if=$pkg ibs=$o skip=1" - - COMPRESSION=`($EXTRACTOR |file -) 2>/dev/null` --if echo $COMPRESSION |grep -q gzip; then -+if echo $COMPRESSION |grep -qi gzip; then - DECOMPRESSOR=gunzip --elif echo $COMPRESSION |grep -q bzip2; then -+elif echo $COMPRESSION |grep -qi bzip2; then - DECOMPRESSOR=bunzip2 --elif echo $COMPRESSION |grep -q xz; then -+elif echo $COMPRESSION |grep -qi xz; then - DECOMPRESSOR=unxz --elif echo $COMPRESSION |grep -q cpio; then -+elif echo $COMPRESSION |grep -qi cpio; then - DECOMPRESSOR=cat - else - # Most versions of file don't support LZMA, therefore we assume diff --git a/rpm-file-output-for-ELF.patch b/rpm-file-output-for-ELF.patch deleted file mode 100644 index ea01b4a..0000000 --- a/rpm-file-output-for-ELF.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff -dur -x '*~' rpm-5.4.15.orig/scripts/brp-strip rpm-5.4.15/scripts/brp-strip ---- rpm-5.4.15.orig/scripts/brp-strip 2011-09-06 14:53:10.000000000 +0200 -+++ rpm-5.4.15/scripts/brp-strip 2015-01-27 11:09:22.000000000 +0100 -@@ -16,6 +16,6 @@ - for f in `find "$RPM_BUILD_ROOT" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) -exec file {} \; | \ - grep -v "^${RPM_BUILD_ROOT}/\?usr/lib/debug" | \ - grep -v ' shared object,' | \ -- sed -n -e 's/^\(.*\):[ ]*ELF.*, not stripped/\1/p'`; do -+ sed -n -e 's/^\(.*\):[ ]*ELF.*, not stripped.*/\1/p'`; do - $STRIP -g "$f" || : - done -diff -dur -x '*~' rpm-5.4.15.orig/scripts/brp-strip-shared rpm-5.4.15/scripts/brp-strip-shared ---- rpm-5.4.15.orig/scripts/brp-strip-shared 2012-05-08 05:00:44.000000000 +0200 -+++ rpm-5.4.15/scripts/brp-strip-shared 2015-01-27 11:09:41.000000000 +0100 -@@ -21,6 +21,6 @@ - for f in `find "$RPM_BUILD_ROOT" -type f -a -exec file {} \; | \ - grep -v "^${RPM_BUILD_ROOT}/\?usr/lib/debug" | \ - grep ' shared object,' | \ -- sed -n -e 's/^\(.*\):[ ]*ELF.*, not stripped/\1/p'`; do -+ sed -n -e 's/^\(.*\):[ ]*ELF.*, not stripped.*/\1/p'`; do - $STRIP --strip-unneeded "$f" - done -diff -dur -x '*~' rpm-5.4.15.orig/scripts/find-debuginfo.sh rpm-5.4.15/scripts/find-debuginfo.sh ---- rpm-5.4.15.orig/scripts/find-debuginfo.sh 2015-01-27 11:10:52.000000000 +0100 -+++ rpm-5.4.15/scripts/find-debuginfo.sh 2015-01-27 11:09:54.000000000 +0100 -@@ -194,7 +194,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' | - 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-fix-___build_pre-macro.patch b/rpm-fix-___build_pre-macro.patch deleted file mode 100644 index 4dc7336..0000000 --- a/rpm-fix-___build_pre-macro.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- rpm-5.4.10/macros/macros.rpmbuild.in.old 2012-09-15 19:31:55.178325519 +0200 -+++ rpm-5.4.10/macros/macros.rpmbuild.in 2012-09-15 19:32:37.158324039 +0200 -@@ -324,8 +324,18 @@ - %___build_args -e - %___build_cmd %{?_sudo:%{_sudo} }%{?_remsh:%{_remsh} %{_remhost} }%{?_remsudo:%{_remsudo} }%{?_remchroot:%{_remchroot} %{_remroot} }%{___build_shell} %{___build_args} - %___build_pre \ -+ RPM_SOURCE_DIR=\"%{u2p:%{_sourcedir}}\"\ -+ RPM_BUILD_DIR=\"%{u2p:%{_builddir}}\"\ - RPM_OPT_FLAGS=\"%{optflags}\"\ -- export RPM_OPT_FLAGS\ -+ RPM_ARCH=\"%{_arch}\"\ -+ RPM_OS=\"%{_os}\"\ -+ export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_ARCH RPM_OS\ -+ RPM_DOC_DIR=\"%{_docdir}\"\ -+ export RPM_DOC_DIR\ -+ RPM_PACKAGE_NAME=\"%{name}\"\ -+ RPM_PACKAGE_VERSION=\"%{version}\"\ -+ RPM_PACKAGE_RELEASE=\"%{release}\"\ -+ export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE\ - %{?buildroot:RPM_BUILD_ROOT=\"%{u2p:%{buildroot}}\"\ - export RPM_BUILD_ROOT}\ - %{?_javaclasspath:CLASSPATH=\"%{_javaclasspath}\"\ diff --git a/rpm-fix-filedigests-verify.patch b/rpm-fix-filedigests-verify.patch deleted file mode 100644 index 755848f..0000000 --- a/rpm-fix-filedigests-verify.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- rpm-5.4.10.orig/build/files.c 2012-10-15 23:29:13.601832730 +0200 -+++ rpm-5.4.10/build/files.c 2012-10-15 23:29:50.264308164 +0200 -@@ -393,7 +393,6 @@ - if (strcmp(p, vfa->attribute)) - /*@innercontinue@*/ continue; - verifyFlags |= vfa->flag; -- verifyFlags &= ~RPMVERIFY_FDIGEST; - /*@innerbreak@*/ break; - } - if (vfa->attribute) diff --git a/rpm-fix-internal-lua-build.patch b/rpm-fix-internal-lua-build.patch deleted file mode 100644 index 64e30f3..0000000 --- a/rpm-fix-internal-lua-build.patch +++ /dev/null @@ -1,40 +0,0 @@ -diff -ur rpm-5.4.12/lua/linit.c rpm-5.4.12.lua/lua/linit.c ---- rpm-5.4.12/lua/linit.c 2013-07-29 12:55:10.414926615 +0200 -+++ rpm-5.4.12.lua/lua/linit.c 2013-07-29 12:52:16.932990663 +0200 -@@ -41,7 +41,7 @@ - {LUA_DBLIBNAME, luaopen_debug}, - {"rex_posix", luaopen_rex_posix}, - {"rex_pcre", luaopen_rex_pcre}, -- {"posix", luaopen_posix}, -+ {"posix", luaopen_posix_c}, - {NULL, NULL} - }; - -diff -ur rpm-5.4.12/lua/local/lposix.c rpm-5.4.12.lua/lua/local/lposix.c ---- rpm-5.4.12/lua/local/lposix.c 2013-06-29 23:58:11.000000000 +0200 -+++ rpm-5.4.12.lua/lua/local/lposix.c 2013-07-29 12:49:02.437509943 +0200 -@@ -3934,6 +3934,10 @@ - MENTRY( NFILE ); - MENTRY( NOBUFS ); - #if !defined(__APPLE__) -+// sys/param.h defines NODEV as ((dev_t) -1) which confuses MENTRY macro -+#ifdef NODEV -+#undef NODEV -+#endif - MENTRY( NODEV ); - #endif - MENTRY( NOENT ); -diff -ur rpm-5.4.12/lua/local/lposix.h rpm-5.4.12.lua/lua/local/lposix.h ---- rpm-5.4.12/lua/local/lposix.h 2004-03-23 06:09:14.000000000 +0100 -+++ rpm-5.4.12.lua/lua/local/lposix.h 2013-07-29 12:52:09.029570083 +0200 -@@ -1,7 +1,9 @@ - #ifndef LPOSIX_H - #define LPOSIX_H - --int luaopen_posix (lua_State *L) -+#include -+ -+int luaopen_posix_c (lua_State *L) - /*@modifies L @*/; - - #endif diff --git a/rpm-gpg-pinentry.patch b/rpm-gpg-pinentry.patch deleted file mode 100644 index 531f1b3..0000000 --- a/rpm-gpg-pinentry.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -ruN rpm-5.4.15.orig/macros/macros rpm-5.4.15/macros/macros ---- rpm-5.4.15.orig/macros/macros 2014-08-17 14:02:20.000000000 +0200 -+++ rpm-5.4.15/macros/macros 2018-09-24 15:46:44.323052200 +0200 -@@ -519,7 +519,7 @@ - # signing and verification. - # - %__gpg_check_password_cmd %{__gpg} \ -- gpg --batch --no-verbose --passphrase-fd 3 -u "%{_gpg_name}" -so - -+ gpg --batch --pinentry-mode loopback --no-verbose --passphrase-fd 3 -u "%{_gpg_name}" -so - - #%__pgp_check_password_cmd %{__pgp} \ - # pgp +batchmode=on +verbose=0 "%{_pgp_name}" -sf - #%__pgp5_check_password_cmd %{__pgp} \ -diff -ruN rpm-5.4.15.orig/macros/macros.in rpm-5.4.15/macros/macros.in ---- rpm-5.4.15.orig/macros/macros.in 2014-08-09 00:40:40.000000000 +0200 -+++ rpm-5.4.15/macros/macros.in 2018-09-24 15:46:34.807097580 +0200 -@@ -519,7 +519,7 @@ - # signing and verification. - # - %__gpg_check_password_cmd %{__gpg} \ -- gpg --batch --no-verbose --passphrase-fd 3 -u "%{_gpg_name}" -so - -+ gpg --batch --pinentry-mode loopback --no-verbose --passphrase-fd 3 -u "%{_gpg_name}" -so - - #%__pgp_check_password_cmd %{__pgp} \ - # pgp +batchmode=on +verbose=0 "%{_pgp_name}" -sf - #%__pgp5_check_password_cmd %{__pgp} \ diff --git a/rpm-gst-inspect-typo.patch b/rpm-gst-inspect-typo.patch deleted file mode 100644 index 74d32fc..0000000 --- a/rpm-gst-inspect-typo.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.10/macros/gstreamer.in.gst 2012-09-26 08:59:44.842368772 +0200 -+++ rpm-5.4.10/macros/gstreamer.in 2012-09-26 08:59:48.542348566 +0200 -@@ -2,7 +2,7 @@ - # To make use of these macros insert the following line into your spec file: - # %{load:%{_usrlibrpm}/macros.d/gstreamer} - --%__gst_inspect @__GST_INSPECT -+%__gst_inspect @__GST_INSPECT@ - - # Path to scripts to autogenerate gstreamer package dependencies, - # diff --git a/rpm-ignore-missing-macro-files.patch b/rpm-ignore-missing-macro-files.patch index f859bd1..b7e7ed0 100644 --- a/rpm-ignore-missing-macro-files.patch +++ b/rpm-ignore-missing-macro-files.patch @@ -1,51 +1,10 @@ --- rpm-5.4.15/rpmio/macro.c~ 2014-12-07 20:24:53.000000000 +0100 +++ rpm-5.4.15/rpmio/macro.c 2014-12-07 20:44:45.739944044 +0100 -@@ -2965,7 +2965,17 @@ - se = rpmMCExpand(mc, s, NULL); - rc = rpmGlob(se, &argc, &argv); - for(i = 0; i < argc; i++) { -- rc |= rpmLoadMacroFile(mc, argv[i], nesting - 1); -+ /* Skip backups, non existing files and %config leftovers. */ -+#define _suffix(_s, _x) \ -+ (strlen(_s) >= sizeof(_x) && !strcmp((_s)+strlen(_s)-(sizeof(_x)-1), (_x))) -+ if (!(_suffix(argv[i], "~") -+ || _suffix(argv[i], ".rpmnew") -+ || _suffix(argv[i], ".rpmorig") -+ || _suffix(argv[i], ".rpmsave")) -+ && !Access(argv[i], R_OK) -+ ) -+ rc |= rpmLoadMacroFile(mc, argv[i], nesting - 1); -+#undef _suffix - argv[i] = _free(argv[i]); +@@ -1795,6 +1795,7 @@ + for (path = files; *path; path++) { + if (rpmFileHasSuffix(*path, ".rpmnew") || + rpmFileHasSuffix(*path, ".rpmsave") || ++ rpmFileHasSuffix(*path, "~") || + rpmFileHasSuffix(*path, ".rpmorig")) { + continue; } - argv = _free(argv); ---- rpm-5.4.15/macros/macros.in~ 2014-12-07 21:43:59.000000000 +0100 -+++ rpm-5.4.15/macros/macros.in 2014-12-07 22:07:57.383101292 +0100 -@@ -1019,13 +1019,7 @@ - %{nil} - - #============================================================================== --# XXX Caveat: --# XXX With %{load:...} being interpreted immediately -- not lazily -- --# XXX within a macro init file, a failure to load causes immediate loading --# XXX termination silently. --# XXX --# XXX So the order as well as the existence of the %{load:...} macros below --# XXX are critically important. -+# XXX If a file specified in %{load:...} does not exist, it will be skipped. - # XXX - # XXX Note also that loaded macro files can NOT recursively load other - # XXX macro files; only a top-level (i.e. after --macros, or within a *.spec) -@@ -1036,11 +1030,8 @@ - # XXX for configuring RPM itself. - # XXX - # XXX Simple example(s): --# XXX If the file %{_usrlibrpm}/macros.d/selinux doesn't exist, --# XXX then %{_usrlibrpm}/macros.rpmbuild will NOT be loaded. --# XXX - # XXX if the file %{_usrlibrpm}/macros.d/cmake attempts another --# XXX %{load:...}, then loading will CEASE at that point in the file. -+# XXX %{load:...}, then the statement will be IGNORED. - #============================================================================== - # ---- SELinux configuration macros. - %{load:%{_usrlibrpm}/macros.d/selinux} diff --git a/rpm-lua-enable-extra-libs.patch b/rpm-lua-enable-extra-libs.patch deleted file mode 100644 index 33f6524..0000000 --- a/rpm-lua-enable-extra-libs.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- rpm-5.4.10/lua/linit.c~ 2012-10-03 14:46:45.303935753 +0200 -+++ rpm-5.4.10/lua/linit.c 2012-10-03 14:48:19.503932430 +0200 -@@ -13,6 +13,8 @@ - #include "lualib.h" - #include "lauxlib.h" - -+#include "lposix.h" -+#include "lrexlib.h" - - static const luaL_Reg lualibs[] = { - {"", luaopen_base}, -@@ -26,6 +26,9 @@ - {LUA_STRLIBNAME, luaopen_string}, - {LUA_MATHLIBNAME, luaopen_math}, - {LUA_DBLIBNAME, luaopen_debug}, -+ {"rex_posix", luaopen_rex_posix}, -+ {"rex_pcre", luaopen_rex_pcre}, -+ {"posix", luaopen_posix}, - {NULL, NULL} - }; - diff --git a/rpm-lua-expat.patch b/rpm-lua-expat.patch deleted file mode 100644 index a3ac839..0000000 --- a/rpm-lua-expat.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- lua/Makefile.am~ 2013-06-29 22:03:22.000000000 +0100 -+++ lua/Makefile.am 2013-09-23 19:07:35.157853272 +0100 -@@ -230,7 +230,10 @@ - # local/lwrs.h - # local/lwrs.c - --liblua_la_LIBADD = @WITH_LUA_SUBDIR_LIB@ -lm -lexpat -+liblua_la_LIBADD = @WITH_LUA_SUBDIR_LIB@ -lm -+if USE_LUA_CRYPTO -+liblua_la_LIBADD += -lexpat -+endif - liblua_la_SOURCES += \ - local/llocal.c \ - local/llocal.h \ diff --git a/rpm-macros.patch b/rpm-macros.patch deleted file mode 100644 index 3565601..0000000 --- a/rpm-macros.patch +++ /dev/null @@ -1,34 +0,0 @@ ---- rpm-5.4.10/macros/macros.in~ 2012-11-17 00:38:23.000000000 +0200 -+++ rpm-5.4.10/macros/macros.in 2012-11-17 00:38:55.871401871 +0200 -@@ -561,9 +561,10 @@ - - # Horowitz Key Protocol server configuration - # --%_hkp_keyserver hkp://keys.rpm5.org -+#%_hkp_keyserver hkp://keys.rpm5.org - #%_hkp_keyserver hkp://keys.n3npq.net - #%_hkp_keyserver hkp://pool.sks-keyservers.net -+%_hkp_keyserver hkp://ha.pool.sks-keyservers.net - %_hkp_keyserver_query %{_hkp_keyserver}/pks/lookup?op=get&search= - - -@@ -670,18 +670,7 @@ - # XXX Note: that there cannot be any whitespace within the string "p>q", - # and that both p and q are package names (i.e. no version/release). - # --%_dependency_whiteout_caos_core \ -- perl>perl-Filter \ -- pam>coreutils \ -- pam>initscripts \ -- glibc-common>glibc \ -- glibc>nscd \ -- filesystem>setup -- --%_dependency_whiteout \ -- %{?_dependency_whiteout_caos_core} \ -- %{?_dependency_whiteout_system} \ -- %{nil} -+%_dependency_whiteout %{nil} - - # - # Default path used for serializing transactions with a fcntl lock. diff --git a/rpm-missing-patch-file-fails-build.patch b/rpm-missing-patch-file-fails-build.patch deleted file mode 100644 index 0bce7d5..0000000 --- a/rpm-missing-patch-file-fails-build.patch +++ /dev/null @@ -1,13 +0,0 @@ -Fix for http://rpm5.org/cvs/tktview?tn=41 - ---- rpm-5.4.10/macros/macros.rpmbuild.in~ 2012-07-06 17:39:16.000000000 +0200 -+++ rpm-5.4.10/macros/macros.rpmbuild.in 2012-09-15 20:15:30.455784728 +0200 -@@ -169,7 +169,7 @@ - %define __patch_suffix %{-b:-b --suffix %{-b*}} %{-z:--suffix %{-z*}} \ - %define __patch_fuzz %{?_default_patch_fuzz:%(test %{_default_patch_fuzz} -ge 0 && echo "--fuzz=%{_default_patch_fuzz} ")} \ - %define __patch_options %{_default_patch_flags} %{-p:-p%{-p*}} %{-F:-F%{-F*}} %{-d:-d%{-d*}} %{-R} %{-E} %{__patch_suffix} \ --echo "Patch #%{__patch_number} (%{basename:%{__patch_file}}):" && ( %{uncompress:%{__patch_file}} | %{__patch} %{__patch_fuzz}%{__patch_options} ) || exit 1\ -+echo "Patch #%{__patch_number} (%{basename:%{__patch_file}}):" && [ -f %{__patch_file} ] && %{uncompress:%{__patch_file}} | %{__patch} %{__patch_fuzz}%{__patch_options} || exit 1\ - } - - # diff --git a/rpm-null-term-ascii-digest.patch b/rpm-null-term-ascii-digest.patch deleted file mode 100644 index 06102d7..0000000 --- a/rpm-null-term-ascii-digest.patch +++ /dev/null @@ -1,19 +0,0 @@ -Index: rpmdb/legacy.c -=================================================================== -RCS file: /v/rpm/cvs/rpm/rpmdb/legacy.c,v -retrieving revision 1.44.4.3 -diff -p -u -w -r1.44.4.3 legacy.c ---- rpmdb/legacy.c 16 Apr 2012 23:43:34 -0000 1.44.4.3 -+++ rpmdb/legacy.c 2 Oct 2012 20:17:21 -0000 -@@ -282,8 +282,10 @@ int dodigest(int dalgo, const char * fn, - exit: - if (fsizep) - *fsizep = fsize; -- if (!rc) -+ if (!rc) { - memcpy(digest, dsum, dlen); -+ if (asAscii) digest[dlen] = '\0'; -+ } - dsum = _free(dsum); - - return rc; diff --git a/rpm-parseSpec-skip-empty-tags.patch b/rpm-parseSpec-skip-empty-tags.patch deleted file mode 100644 index 119cbed..0000000 --- a/rpm-parseSpec-skip-empty-tags.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.10/build/parseSpec.c.orig 2013-02-25 14:29:07.874848468 +0100 -+++ rpm-5.4.10/build/parseSpec.c 2013-02-25 14:29:25.661698897 +0100 -@@ -92,6 +92,8 @@ - if (aTags != NULL && aTags[0] != NULL) { - ARGV_t av; - s = tagCanonicalize(line+1); /* XXX +1 to skip leading '%' */ -+ if (strlen(s) == 0) /* not a tag, just unknown macro */ -+ goto exit; - #if defined(RPM_VENDOR_OPENPKG) /* wildcard-matching-arbitrary-tagnames */ - av = argvSearchLinear(aTags, s, argvFnmatchCasefold); - #else diff --git a/rpm-pattern_Release.patch b/rpm-pattern_Release.patch deleted file mode 100644 index f78e9b0..0000000 --- a/rpm-pattern_Release.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.10/macros/macros.in~ 2012-09-12 13:52:19.305575500 +0200 -+++ rpm-5.4.10/macros/macros.in 2012-09-14 14:15:34.115044785 +0200 -@@ -778,7 +778,7 @@ - %pattern_Name ^[A-Za-z0-9][A-Za-z0-9+._-]*$ - %pattern_Epoch ^[0-9]+$ - %pattern_Version ^[A-Za-z0-9+._~]+$ --%pattern_Release ^[A-Za-z0-9+._]+$ -+%pattern_Release ^[A-Za-z0-9+._@{}%]+$ - %pattern_Disttag ^[A-Za-z0-9]+$ - %pattern_Repotag ^[A-Za-z0-9]+$ - %pattern_Distepoch ^[A-Za-z0-9.]+$ diff --git a/rpm-payload-use-hashed-inode.patch b/rpm-payload-use-hashed-inode.patch deleted file mode 100644 index 05e2447..0000000 --- a/rpm-payload-use-hashed-inode.patch +++ /dev/null @@ -1,105 +0,0 @@ -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; diff --git a/rpm-perl-magic.patch b/rpm-perl-magic.patch index 2b41d61..29e27a2 100644 --- a/rpm-perl-magic.patch +++ b/rpm-perl-magic.patch @@ -1,11 +1,11 @@ ---- lib/rpmfc.c.orig 2014-10-07 15:53:03.185631053 +0100 -+++ lib/rpmfc.c 2014-10-07 16:02:32.487591097 +0100 +--- rpm/build/rpmfc.c.orig 2014-10-07 15:53:03.185631053 +0100 ++++ rpm/build/rpmfc.c 2014-10-07 16:02:32.487591097 +0100 @@ -593,7 +593,8 @@ + { "troff or preprocessor input", RPMFC_INCLUDE }, + { "GNU Info", RPMFC_INCLUDE }, - { "Desktop Entry", RPMFC_DESKTOP_FILE|RPMFC_INCLUDE }, + { "perl ", RPMFC_INCLUDE }, ++ { "Perl script", RPMFC_INCLUDE }, + { "Perl5 module source text", RPMFC_INCLUDE }, + { "python ", RPMFC_INCLUDE }, - { "perl script text", RPMFC_PERL|RPMFC_INCLUDE }, -+ { "Perl script", RPMFC_PERL|RPMFC_INCLUDE }, - { "Perl5 module source text", RPMFC_PERL|RPMFC_MODULE|RPMFC_INCLUDE }, - - { "PHP script text", RPMFC_PHP|RPMFC_INCLUDE }, diff --git a/rpm-preserve-iterator.patch b/rpm-preserve-iterator.patch deleted file mode 100644 index 3764ec5..0000000 --- a/rpm-preserve-iterator.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- rpm-5.4.10/lib/rpmal.c~ 2012-11-30 13:20:59.087249280 +0100 -+++ rpm-5.4.10/lib/rpmal.c 2012-11-30 21:20:20.856611761 +0100 -@@ -403,6 +403,7 @@ - const char * KName; - availablePackage alp; - int rc; -+ int savedIx; - - if (keyp) *keyp = RPMAL_NOMATCH; - -@@ -450,10 +451,12 @@ - if (alp->provides != NULL) /* XXX can't happen */ - switch (match->type) { - case IET_PROVIDES: -+ savedIx = rpmdsIx(alp->provides); - /* XXX single step on rpmdsNext to regenerate DNEVR string */ - (void) rpmdsSetIx(alp->provides, match->entryIx - 1); - if (rpmdsNext(alp->provides) >= 0) - rc = rpmdsCompare(alp->provides, ds); -+ (void) rpmdsSetIx(alp->provides, savedIx); - - if (rc) - rpmdsNotify(ds, _("(added provide)"), 0); diff --git a/rpm-preserve-tag-type.patch b/rpm-preserve-tag-type.patch deleted file mode 100644 index 9956219..0000000 --- a/rpm-preserve-tag-type.patch +++ /dev/null @@ -1,55 +0,0 @@ -commit 8241b884f83153dee9cdcddac7a476c6234cf156 -Author: Kacper Kornet -Date: Sun May 5 21:56:02 2013 +0100 - - Don't overwrite type of validated tag - - It caused headerGet(h, he, HEADERGET_NOI18NSTRING|HEADERGET_NOEXTENSION) - to return always he->t = RPMTAG_STRING even when RPM_I18NSTRING_TYPE (char **) - was returned in reality. - -diff --git a/rpmdb/tagname.c b/rpmdb/tagname.c -index 540838b..174df60 100644 ---- a/rpmdb/tagname.c -+++ b/rpmdb/tagname.c -@@ -491,26 +491,28 @@ tagStore_t tagStoreFree(tagStore_t dbiTags, size_t dbiNTags) - void tagTypeValidate(HE_t he); - void tagTypeValidate(HE_t he) - { -+ HE_s he_s = *he; -+ - /* XXX Re-map RPM_I18NSTRING_TYPE -> RPM_STRING_TYPE */ -- if (he->t == RPM_I18NSTRING_TYPE) -- he->t = RPM_STRING_TYPE; -+ if (he_s.t == RPM_I18NSTRING_TYPE) -+ he_s.t = RPM_STRING_TYPE; - - /* XXX Arbitrary tags are always strings. */ -- if ((he->tag & 0x40000000) -- && (he->t == RPM_STRING_TYPE || he->t == RPM_STRING_ARRAY_TYPE)) -+ if ((he_s.tag & 0x40000000) -+ && (he_s.t == RPM_STRING_TYPE || he_s.t == RPM_STRING_ARRAY_TYPE)) - return; - - /* XXX Make 0x3fffffff disappear for now. Signature? */ -- if (he->tag == 0x3fffffff && he->t == RPM_BIN_TYPE) -+ if (he_s.tag == 0x3fffffff && he_s.t == RPM_BIN_TYPE) - return; - - /* XXX hack around known borkage for now. */ --if (!(he->tag == 62)) --if (!(he->tag == 261 || he->tag == 269)) --if (!(he->tag == 1000 || he->tag == 1004 || he->tag == 1007)) --if (!(he->tag == 1029)) --if (!(he->tag == 1086 || he->tag == 1087)) --if (he->t != (tagType(he->tag) & 0xffff)) --fprintf(stderr, "==> warning: tag %u type(0x%x) != implicit type(0x%x)\n", (unsigned) he->tag, he->t, tagType(he->tag)); -+if (!(he_s.tag == 62)) -+if (!(he_s.tag == 261 || he_s.tag == 269)) -+if (!(he_s.tag == 1000 || he_s.tag == 1004 || he_s.tag == 1007)) -+if (!(he_s.tag == 1029)) -+if (!(he_s.tag == 1086 || he_s.tag == 1087)) -+if (he_s.t != (tagType(he_s.tag) & 0xffff)) -+fprintf(stderr, "==> warning: tag %u type(0x%x) != implicit type(0x%x)\n", (unsigned) he_s.tag, he_s.t, tagType(he_s.tag)); - } - #endif diff --git a/rpm-python-enable-compat-RPMSENSE.patch b/rpm-python-enable-compat-RPMSENSE.patch deleted file mode 100644 index e3b7701..0000000 --- a/rpm-python-enable-compat-RPMSENSE.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.10/python/rpmmodule.c~ 2012-04-25 22:41:43.000000000 +0200 -+++ rpm-5.4.10/python/rpmmodule.c 2012-09-24 12:22:53.535610753 +0200 -@@ -493,7 +493,7 @@ - REGISTER_ENUM(RPMSENSE_EQUAL); - REGISTER_ENUM(RPMSENSE_NOTEQUAL); - REGISTER_ENUM(RPMSENSE_FIND_REQUIRES); --#if defined(RPM_VENDOR_MANDRIVA) -+#if defined(RPM_VENDOR_MANDRIVA) || defined(RPM_VENDOR_PLD) - REGISTER_ENUM(RPMSENSE_PREREQ); - REGISTER_ENUM(RPMSENSE_SCRIPT_PRE); - REGISTER_ENUM(RPMSENSE_SCRIPT_POST); diff --git a/rpm-python-sitescriptdir.patch b/rpm-python-sitescriptdir.patch deleted file mode 100644 index a2ffddc..0000000 --- a/rpm-python-sitescriptdir.patch +++ /dev/null @@ -1,25 +0,0 @@ ---- rpm-5.4.10/lib/rpmfc.c~ 2012-12-01 21:13:39.985319735 +0100 -+++ rpm-5.4.10/lib/rpmfc.c 2013-01-24 12:21:26.379891972 +0100 -@@ -1142,7 +1142,7 @@ - /* Generate package and per-file dependencies. */ - for (fc->ix = 0; fc->fn[fc->ix] != NULL; fc->ix++) { - -- /* XXX Insure that /usr/lib{,64}/python files are marked RPMFC_PYTHON */ -+ /* XXX Insure that /usr/{share,lib{,64}}/python files are marked RPMFC_PYTHON */ - /* XXX HACK: classification by path is intrinsically stupid. */ - { fn = strstr(fc->fn[fc->ix], "/usr/lib"); - if (fn) { -@@ -1166,6 +1166,13 @@ - fc->fcolor->vals[fc->ix] & RPMFC_LIBRARY) - fc->fcolor->vals[fc->ix] |= (RPMFC_MODULE|RPMFC_SCRIPT); - } -+ fn = strstr(fc->fn[fc->ix], "/usr/share"); -+ if (fn) { -+ fn += sizeof("/usr/share")-1; -+ if (!strncmp(fn, "/python", sizeof("/python")-1)) -+ fc->fcolor->vals[fc->ix] |= RPMFC_PYTHON; -+ } -+ } - } - - /* XXX ugly quick & dirty integration of haskell() dependencies */ diff --git a/rpm-python-spec-header.patch b/rpm-python-spec-header.patch deleted file mode 100644 index d56b6b2..0000000 --- a/rpm-python-spec-header.patch +++ /dev/null @@ -1,56 +0,0 @@ -diff -ur rpm-5.4.15/python/spec-py.c rpm-5.4.15-pyspec/python/spec-py.c ---- rpm-5.4.15/python/spec-py.c 2016-05-11 21:38:24.970137574 +0200 -+++ rpm-5.4.15-pyspec/python/spec-py.c 2016-05-10 22:47:04.748529737 +0200 -@@ -8,6 +8,9 @@ - #include - #define _MACRO_INTERNAL - #include -+#define _RPMTAG_INTERNAL -+#include "header_internal.h" /* XXX HEADERFLAG_ALLOCATED */ -+#include "header-py.h" - #include "spec-py.h" - - /** \ingroup python -@@ -192,6 +195,34 @@ - - } - -+static PyObject * -+spec_get_headers(specObject *s) -+ /*@*/ -+{ -+ PyObject *headerList; -+ Spec spec; -+ Package package; -+ Header header; -+ -+ headerList = PyList_New(0); -+ if (!headerList) { -+ return NULL; -+ } -+ spec = specFromSpec(s); -+ if ( spec != NULL) { -+ package = spec->packages; -+ -+ while (package != NULL) { -+ header = package->header; -+ if (header != NULL) -+ PyList_Append(headerList, (PyObject *) hdr_Wrap(header)); -+ package = package->next; -+ } -+ } -+ -+ return PyList_AsTuple(headerList); -+} -+ - /** - */ - /*@unchecked@*/ /*@observer@*/ -@@ -208,6 +239,7 @@ - {"clean", (PyCFunction) spec_get_clean, METH_VARARGS, NULL }, - {"buildRoot", (PyCFunction) spec_get_buildroot, METH_VARARGS, NULL }, - {"macros", (PyCFunction) spec_get_macros, METH_VARARGS, NULL }, -+ {"headers", (PyCFunction) spec_get_headers, METH_VARARGS, NULL }, - {NULL} /* Sentinel */ - }; - /*@=fullinitblock@*/ diff --git a/rpm-pythoneggs.patch b/rpm-pythoneggs.patch deleted file mode 100644 index 15c848d..0000000 --- a/rpm-pythoneggs.patch +++ /dev/null @@ -1,82 +0,0 @@ ---- rpm-5.4.15.org/scripts/pythoneggs.py 2012-05-08 00:39:11.000000000 +0200 -+++ rpm-5.4.15/scripts/pythoneggs.py 2018-09-27 10:32:34.661059061 +0200 -@@ -16,7 +16,8 @@ from pkg_resources import Distribution, - from distutils.sysconfig import get_python_lib - from subprocess import Popen, PIPE, STDOUT - import os -- -+import platform -+import re - - opts, args = getopt(argv[1:], 'hPRSCOEb:', - ['help', 'provides', 'requires', 'suggests', 'conflicts', 'obsoletes', 'extras','buildroot=']) -@@ -29,6 +30,13 @@ Obsoletes = False - Extras = False - buildroot = None - -+def make_pldver(raw): -+ if re.match(r'^[0-9\.]+$', raw) == None: -+ pldver = re.sub(r'([\d\.]+)(.+)', r'\1-0.\2', raw) -+ else: -+ pldver = raw -+ return pldver -+ - for o, a in opts: - if o in ('-h', '--help'): - print '-h, --help\tPrint help' -@@ -125,11 +133,14 @@ for f in files: - if not name in py_deps: - py_deps[name] = [] - py_deps[name].append(('==', dist.py_version)) -- name = 'pythonegg(%s)' % dist.key -+ if dist.py_version .split(".")[0] == '3': -+ name = 'python3egg(%s)' % dist.key -+ else: -+ name = 'pythonegg(%s)' % dist.key - if not name in py_deps: - py_deps[name] = [] - if dist.version: -- spec = ('==', dist.version) -+ spec = ('==', make_pldver(dist.version)) - if not spec in py_deps[name]: - py_deps[name].append(spec) - if Requires or (Suggests and dist.extras): -@@ -145,6 +156,14 @@ for f in files: - spec = ('==', dist.py_version) - if not spec in py_deps[name]: - py_deps[name].append(spec) -+ # fake python version for dist.requires(), so deps like -+ # [:python_version < '3'] -+ # enum34 -+ # will be handled correctly -+ old_python_version = platform.python_version -+ def new_python_version(): -+ return dist.py_version -+ platform.python_version = new_python_version - deps = dist.requires() - if Suggests: - depsextras = dist.requires(extras=dist.extras) -@@ -153,15 +172,20 @@ for f in files: - if dep in deps: - depsextras.remove(dep) - deps = depsextras -+ platform.python_version = old_python_version - # add requires/suggests based on egg metadata - for dep in deps: -- name = 'pythonegg(%s)' % dep.key -+ if dist.py_version .split(".")[0] == '3': -+ 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: - py_deps[name] = [] -- if not spec in py_deps[name]: -- py_deps[name].append(spec) -+ plddep = (spec[0], make_pldver(spec[1])) -+ if not plddep in py_deps[name]: -+ py_deps[name].append(plddep) - if not dep.specs: - py_deps[name] = [] - # Unused, for automatic sub-package generation based on 'extras' from egg metadata diff --git a/rpm-query-always-noisy.patch b/rpm-query-always-noisy.patch deleted file mode 100644 index 4b82476..0000000 --- a/rpm-query-always-noisy.patch +++ /dev/null @@ -1,99 +0,0 @@ ---- rpm-5.4.10/lib/query.c~ 2012-05-08 02:06:44.000000000 +0200 -+++ rpm-5.4.10/lib/query.c 2012-09-21 13:42:12.013607913 +0200 -@@ -522,6 +522,10 @@ - case RPMQV_WHATCONFLICTS: - case RPMQV_WHATOBSOLETES: - qva->qva_mi = rpmtsInitIterator(ts, (rpmTag) qva->qva_source, arg, 0); -+#if defined(RPM_VENDOR_PLD) -+ if(rpmmiCount(qva->qva_mi) == 0) -+ qva->qva_mi = rpmmiFree(qva->qva_mi); -+#endif - if (qva->qva_mi == NULL) { - rpmlog(RPMLOG_NOTICE, _("key \"%s\" not found in %s table\n"), - arg, tagName((rpmTag)qva->qva_source)); -@@ -593,6 +597,10 @@ - tag = (qva->qva_source == RPMQV_PKGID - ? RPMTAG_SOURCEPKGID : RPMTAG_PKGID); - qva->qva_mi = rpmtsInitIterator(ts, (rpmTag) tag, MD5, MD5len); -+#if defined(RPM_VENDOR_PLD) -+ if(rpmmiCount(qva->qva_mi) == 0) -+ qva->qva_mi = rpmmiFree(qva->qva_mi); -+#endif - if (qva->qva_mi == NULL) { - rpmlog(RPMLOG_NOTICE, _("no package matches %s: %s\n"), - "pkgid", arg); -@@ -610,6 +618,10 @@ - } - - qva->qva_mi = rpmtsInitIterator(ts, RPMTAG_SHA1HEADER, arg, 0); -+#if defined(RPM_VENDOR_PLD) -+ if(rpmmiCount(qva->qva_mi) == 0) -+ qva->qva_mi = rpmmiFree(qva->qva_mi); -+#endif - if (qva->qva_mi == NULL) { - rpmlog(RPMLOG_NOTICE, _("no package matches %s: %s\n"), - "hdrid", arg); -@@ -637,6 +649,10 @@ - *t = (nibble(s[0]) << 4) | nibble(s[1]); - - qva->qva_mi = rpmtsInitIterator(ts, RPMTAG_FILEDIGESTS, digest, dlen); -+#if defined(RPM_VENDOR_PLD) -+ if(rpmmiCount(qva->qva_mi) == 0) -+ qva->qva_mi = rpmmiFree(qva->qva_mi); -+#endif - if (qva->qva_mi == NULL) { - rpmlog(RPMLOG_NOTICE, _("no package matches %s: %s\n"), - "fileid", arg); -@@ -666,6 +682,10 @@ - return 1; - } - qva->qva_mi = rpmtsInitIterator(ts, RPMTAG_INSTALLTID, &iid, sizeof(iid)); -+#if defined(RPM_VENDOR_PLD) -+ if(rpmmiCount(qva->qva_mi) == 0) -+ qva->qva_mi = rpmmiFree(qva->qva_mi); -+#endif - if (qva->qva_mi == NULL) { - rpmlog(RPMLOG_NOTICE, _("no package matches %s: %s\n"), - "tid", arg); -@@ -677,6 +697,10 @@ - case RPMQV_WHATNEEDS: - case RPMQV_WHATREQUIRES: - qva->qva_mi = rpmtsInitIterator(ts, RPMTAG_REQUIRENAME, arg, 0); -+#if defined(RPM_VENDOR_PLD) -+ if(rpmmiCount(qva->qva_mi) == 0) -+ qva->qva_mi = rpmmiFree(qva->qva_mi); -+#endif - if (qva->qva_mi == NULL) { - rpmlog(RPMLOG_NOTICE, _("no package requires %s\n"), arg); - res = 1; -@@ -688,6 +712,10 @@ - if (arg[0] != '/') { - provides_checked = 1; - qva->qva_mi = rpmtsInitIterator(ts, RPMTAG_PROVIDENAME, arg, 0); -+#if defined(RPM_VENDOR_PLD) -+ if(rpmmiCount(qva->qva_mi) == 0) -+ qva->qva_mi = rpmmiFree(qva->qva_mi); -+#endif - if (qva->qva_mi == NULL) { - rpmlog(RPMLOG_NOTICE, _("no package provides %s\n"), arg); - res = 1; -@@ -732,7 +732,7 @@ - qva->qva_mi = rpmtsInitIterator(ts, RPMTAG_FILEPATHS, fn, 0); - if (qva->qva_mi == NULL && !provides_checked && !gotpattern) { - qva->qva_mi = rpmtsInitIterator(ts, RPMTAG_PROVIDENAME, fn, 0); --#if defined(RPM_VENDOR_MANDRIVA) -+#if defined(RPM_VENDOR_MANDRIVA) || defined(RPM_VENDOR_PLD) - if(rpmmiCount(qva->qva_mi) == 0) - qva->qva_mi = rpmmiFree(qva->qva_mi); - #endif -@@ -774,6 +802,10 @@ - } - rpmlog(RPMLOG_DEBUG, D_("package record number: %u\n"), (unsigned)hdrNum); - qva->qva_mi = rpmtsInitIterator(ts, RPMDBI_PACKAGES, &hdrNum, sizeof(hdrNum)); -+#if defined(RPM_VENDOR_PLD) -+ if(rpmmiCount(qva->qva_mi) == 0) -+ qva->qva_mi = rpmmiFree(qva->qva_mi); -+#endif - if (qva->qva_mi == NULL) { - rpmlog(RPMLOG_NOTICE, - _("record %u could not be read\n"), (unsigned)hdrNum); diff --git a/rpm-remove-misleading-missing-patch-message.patch b/rpm-remove-misleading-missing-patch-message.patch deleted file mode 100644 index a31ec78..0000000 --- a/rpm-remove-misleading-missing-patch-message.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- rpm-5.4.10/rpmio/macro.c~ 2012-09-17 14:07:24.201198493 +0200 -+++ rpm-5.4.10/rpmio/macro.c 2012-09-17 18:10:28.221354435 +0200 -@@ -3054,6 +3054,17 @@ - #endif - - *compressed = COMPRESSED_NOT; -+#if defined(RPM_VENDOR_PLD) -+ /* -+ * Workaround for misleading message: -+ * error: File %PATCH666: No such file or directory -+ * It happens when there is no "PatchXXX: " definition -+ * and spec contains commented out %patchXXX macro -+ * http://git.pld-linux.org/gitweb.cgi/packages/kernel.git/commitdiff/5d3a3ea257d7f88e59d0ad93c20cc8448fb42f3d -+ */ -+ if ((strlen(file) > 6) && (strncasecmp(file, "%PATCH", 6) == 0)) -+ return 0; -+#endif - - #if defined(RPM_VENDOR_OPENPKG) || defined(RPM_VENDOR_FEDORA) || defined(RPM_VENDOR_MANDRIVA) /* extension-based-compression-detection */ - file_len = strlen(file); diff --git a/rpm-repackage-dont-force-max-compression.patch b/rpm-repackage-dont-force-max-compression.patch deleted file mode 100644 index 7c2a25d..0000000 --- a/rpm-repackage-dont-force-max-compression.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.10/lib/psm.c~ 2013-03-17 13:34:31.534601434 +0100 -+++ rpm-5.4.10/lib/psm.c 2013-03-25 13:46:18.326658890 +0100 -@@ -3017,7 +3017,7 @@ - - psm->rpmio_flags = t = (char *) xmalloc(sizeof("w9.gzdio")); - *t = '\0'; -- t = stpcpy(t, ((psm->goal == PSM_PKGSAVE) ? "w9" : "r")); -+ t = stpcpy(t, ((psm->goal == PSM_PKGSAVE) ? "w6" : "r")); - if (!strcmp(payload_compressor, "gzip")) - t = stpcpy(t, ".gzdio"); - if (!strcmp(payload_compressor, "bzip2")) diff --git a/rpm-revert-gpg-argv-parsing.patch b/rpm-revert-gpg-argv-parsing.patch deleted file mode 100644 index a3d0d62..0000000 --- a/rpm-revert-gpg-argv-parsing.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff -urN rpm-5.4.10/rpmdb/signature.c rpm-5.4.12/rpmdb/signature.c ---- rpm-5.4.10/rpmdb/signature.c 2012-04-17 01:43:35.000000000 +0200 -+++ rpm-5.4.12/rpmdb/signature.c 2013-06-28 18:42:13.000000000 +0200 -@@ -12,7 +12,6 @@ - #include /* XXX for rpmGetPath() */ - #include - #include --#include - - #include - #include "rpmdb.h" -@@ -503,7 +504,7 @@ - - if (!(pid = fork())) { - const char * cmd; -- ARGV_t av; -+ char *const *av; - int fdno; - - xx = close(STDIN_FILENO); -@@ -528,16 +529,13 @@ - (void) setenv("GNUPGHOME", gpg_path, 1); - - cmd = rpmExpand("%{?__gpg_check_password_cmd}", NULL); -- rc = argvSplit(&av, cmd, NULL); -+ rc = poptParseArgvString(cmd, NULL, (const char ***)&av); - if (!rc) -- rc = execve(av[0], (char *const *)av+1, environ); -+ rc = execve(av[0], av+1, environ); - - rpmlog(RPMLOG_ERR, _("Could not exec %s: %s\n"), "gpg", - strerror(errno)); -- cmd = _free(cmd); -- gpg_path = _free(gpg_path); - } -- av = argvFree(av); - } - - pw = rpmkuPassPhrase(passPhrase); diff --git a/rpm-rpmspec.patch b/rpm-rpmspec.patch deleted file mode 100644 index 6eb9d2d..0000000 --- a/rpm-rpmspec.patch +++ /dev/null @@ -1,239 +0,0 @@ -diff -urN rpm-5.4.13/build/parseSpec.c rpm-5.4.13-rpmspec/build/parseSpec.c ---- rpm-5.4.13/build/parseSpec.c 2013-10-22 20:18:34.483039876 +0200 -+++ rpm-5.4.13-rpmspec/build/parseSpec.c 2013-10-22 18:52:02.550664732 +0200 -@@ -474,6 +474,11 @@ - spec->line[0] = '\0'; - } - -+ /* Collect parsed line */ -+ if (spec->parsed == NULL) -+ spec->parsed = rpmiobNew(0); -+ spec->parsed = rpmiobAppend(spec->parsed, spec->line, 1); -+ - /*@-compmempass@*/ /* FIX: spec->readStack->next should be dependent */ - return 0; - /*@=compmempass@*/ -diff -urN rpm-5.4.13/build/rpmspec.h rpm-5.4.13-rpmspec/build/rpmspec.h ---- rpm-5.4.13/build/rpmspec.h 2013-10-22 20:18:34.449706143 +0200 -+++ rpm-5.4.13-rpmspec/build/rpmspec.h 2013-10-22 18:44:37.729692113 +0200 -@@ -193,6 +193,8 @@ - /*@only@*/ - rpmiob clean; /*!< %clean scriptlet. */ - -+ rpmiob parsed; -+ - size_t nfoo; - /*@only@*/ /*@relnull@*/ - tagStore_t foo; ---- rpm-5.4.13/build/spec.c~ 2013-07-27 02:16:06.000000000 +0200 -+++ rpm-5.4.13/build/spec.c 2013-10-23 13:01:36.596670702 +0200 -@@ -562,6 +562,7 @@ - spec->install = rpmiobFree(spec->install); - spec->check = rpmiobFree(spec->check); - spec->clean = rpmiobFree(spec->clean); -+ spec->parsed = rpmiobFree(spec->parsed); - spec->foo = tagStoreFree(spec->foo, spec->nfoo); - spec->nfoo = 0; - -diff -urN rpm-5.4.13/tools/Makefile.am rpm-5.4.13-rpmspec/tools/Makefile.am ---- rpm-5.4.13/tools/Makefile.am 2013-10-22 20:18:34.426372530 +0200 -+++ rpm-5.4.13-rpmspec/tools/Makefile.am 2013-10-22 20:02:30.365350944 +0200 -@@ -61,7 +61,7 @@ - pkgbin_PROGRAMS = \ - @WITH_AUGEAS_AUGTOOL@ chroot cp @WITH_CUDF_CUDFTOOL@ find mtree \ - @WITH_SEMANAGE_SEMODULE@ wget \ -- rpmcache rpmdigest rpmrepo rpmspecdump \ -+ rpmcache rpmdigest rpmrepo rpmspecdump rpmspec \ - rpmcmp rpmdeps sqlite3 @WITH_KEYUTILS_RPMKEY@ @WITH_LIBELF_DEBUGEDIT@ - if WITH_DB - pkgbin_PROGRAMS += dbconvert -@@ -195,6 +195,9 @@ - rpmspecdump_SOURCES = rpmspecdump.c - rpmspecdump_LDADD = $(RPMBUILD_LDADD_COMMON) - -+rpmspec_SOURCES = rpmspec.c -+rpmspec_LDADD = $(RPMBUILD_LDADD_COMMON) -+ - semodule_SOURCES = semodule.c - semodule_LDADD = $(RPMIO_LDADD_COMMON) - -diff -urN rpm-5.4.13/tools/rpmspec.c rpm-5.4.13-rpmspec/tools/rpmspec.c ---- rpm-5.4.13/tools/rpmspec.c 1970-01-01 01:00:00.000000000 +0100 -+++ rpm-5.4.13-rpmspec/tools/rpmspec.c 2013-10-22 20:00:06.075242852 +0200 -@@ -0,0 +1,176 @@ -+#include "system.h" -+const char *__progname; -+ -+#define _AUTOHELP -+ -+#if defined(IAM_RPM) || defined(__LCLINT__) -+#define IAM_RPMBT -+#define IAM_RPMDB -+#define IAM_RPMEIU -+#define IAM_RPMQV -+#define IAM_RPMK -+#endif -+ -+#include -+#include -+#include -+ -+#include -+#include -+#include "rpmdb.h" -+ -+#include "rpmversion.h" -+#include "rpmps.h" -+#include "rpmts.h" -+ -+#include -+ -+#ifdef IAM_RPMBT -+#include "build.h" -+#define GETOPT_REBUILD 1003 -+#define GETOPT_RECOMPILE 1004 -+#endif -+ -+#include -+ -+#include "debug.h" -+ -+enum modes { -+ MODE_UNKNOWN = 0, -+ MODE_QUERY = (1 << 0), -+ MODE_PARSE = (1 << 1), -+}; -+ -+static int mode = MODE_UNKNOWN; -+static rpmQVSources source = RPMQV_RPM; -+static const char *target = NULL; -+static char *queryformat = NULL; -+ -+static struct poptOption specOptsTable[] = { -+ { "parse", 'P', POPT_ARG_VAL, &mode, MODE_PARSE, -+ N_("parse spec file(s) to stdout"), NULL }, -+ { "query", 'q', POPT_ARG_VAL, &mode, MODE_QUERY, -+ N_("query spec file(s)"), NULL }, -+ { "rpms", 0, POPT_ARG_VAL, &source, RPMQV_RPM, -+ N_("operate on binary rpms generated by spec (default)"), NULL }, -+ { "srpm", 0, POPT_ARG_VAL, &source, RPMQV_SPECSRPM, -+ N_("operate on source rpm generated by spec"), NULL }, -+ { "target", 0, POPT_ARG_STRING, &target, 0, -+ N_("override target platform"), NULL }, -+ { "queryformat", 0, POPT_ARG_STRING, &queryformat, 0, -+ N_("use the following query format"), "QUERYFORMAT" }, -+ { "qf", 0, (POPT_ARG_STRING | POPT_ARGFLAG_DOC_HIDDEN), &queryformat, 0, -+ NULL, NULL }, -+ POPT_TABLEEND -+}; -+ -+/* the structure describing the options we take and the defaults */ -+static struct poptOption optionsTable[] = { -+ { NULL, '\0', POPT_ARG_INCLUDE_TABLE, specOptsTable, 0, -+ N_("Spec options:"), NULL }, -+ -+ { NULL, '\0', POPT_ARG_INCLUDE_TABLE, rpmcliAllPoptTable, 0, -+ N_("Common options for all rpm modes and executables:"), NULL }, -+ -+ POPT_AUTOALIAS -+ POPT_AUTOHELP -+ POPT_TABLEEND -+}; -+ -+/*@exits@*/ static void argerror(const char * desc) -+ /*@globals __assert_program_name, fileSystem @*/ -+ /*@modifies fileSystem @*/ -+{ -+ fprintf(stderr, _("%s: %s\n"), __progname, desc); -+ exit(EXIT_FAILURE); -+} -+ -+#ifdef DYING /* XXX rpmIsVerbose alone stops usage spewage with every --eval */ -+static void printVersion(FILE * fp) -+ /*@globals rpmEVR, fileSystem @*/ -+ /*@modifies *fp, fileSystem @*/ -+{ -+ fprintf(fp, "%s (" RPM_NAME ") %s\n", __progname, rpmEVR); -+ if (rpmIsVerbose()) -+ fprintf(fp, "rpmlib 0x%08x,0x%08x,0x%08x\n", -+ rpmlibVersion(), rpmlibTimestamp(), rpmlibVendor()); -+} -+ -+static void printUsage(poptContext con, FILE * fp, int flags) -+ /*@globals rpmEVR, fileSystem, internalState @*/ -+ /*@modifies *fp, fileSystem, internalState @*/ -+{ -+ printVersion(fp); -+ fprintf(fp, "\n"); -+ -+ if (rpmIsVerbose()) -+ poptPrintHelp(con, fp, flags); -+ else -+ poptPrintUsage(con, fp, flags); -+} -+#endif -+ -+int main(int argc, char *argv[]) -+{ -+ rpmts ts = NULL; -+ QVA_t qva = &rpmQVKArgs; -+ -+ poptContext optCon; -+ int ec = 0; -+ -+ optCon = rpmcliInit(argc, argv, optionsTable); -+ -+ if (target) { -+ rpmFreeMacros(NULL); -+ rpmFreeRpmrc(); -+ rpmcliConfigured(); -+ } -+ -+ ts = rpmtsCreate(); -+ switch (mode) { -+ -+ case MODE_QUERY: -+ if (!poptPeekArg(optCon)) -+ argerror(_("no arguments given for query")); -+ -+ qva->qva_queryFormat = queryformat; -+ qva->qva_source = source; -+ qva->qva_specQuery = rpmspecQuery; -+ ec = rpmcliQuery(ts, qva, (const char **) poptGetArgs(optCon)); -+ break; -+ -+ case MODE_PARSE: { -+ const char * spath; -+ if (!poptPeekArg(optCon)) -+ argerror(_("no arguments given for parse")); -+ -+ while ((spath = poptGetArg(optCon)) != NULL) { -+ int ret = parseSpec(ts, spath, "/", 0, NULL, NULL, 1, 1, 0); -+ if (ret != 0) { -+ ec++; -+ continue; -+ } -+ Spec spec = rpmtsSpec(ts); -+ fprintf(stdout, "%s", rpmiobStr(spec->parsed)); -+ } -+ break; -+ } -+ -+ case MODE_UNKNOWN: -+#ifdef DYING /* XXX rpmIsVerbose alone stops usage spewage with every --eval */ -+ if (poptPeekArg(optCon) != NULL || argc <= 1 || rpmIsVerbose()) { -+ printUsage(optCon, stderr, 0); -+ ec = argc; -+ } -+#endif -+ break; -+ } -+ -+ rpmtsFree(ts); -+ -+ free(qva->qva_queryFormat); -+ -+ rpmcliFini(optCon); -+ -+ return ec; -+} diff --git a/rpm-rpmtdnext.patch b/rpm-rpmtdnext.patch deleted file mode 100644 index 5b7d486..0000000 --- a/rpm-rpmtdnext.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- rpm-5.4.15/lib/rpm46compat.h.rpmtdnext 2015-02-02 21:41:55.016116655 +0100 -+++ rpm-5.4.15/lib/rpm46compat.h 2015-02-02 21:47:06.407763121 +0100 -@@ -223,6 +223,9 @@ static inline int headerGet_RPMorg(Heade - rflags &= ~HEADERGET_NOI18NSTRING; - - rc = headerGet(h, (HE_t)he, rflags); -+ -+ /* XXX: Hack. headerGet() sets he->ix to 0 whereas rpmtdNext expects it to be -1 initially */ -+ he->ix = -1; - - return rc; - } diff --git a/rpm-verify-ghosts-broken-logic.patch b/rpm-verify-ghosts-broken-logic.patch deleted file mode 100644 index a9284c8..0000000 --- a/rpm-verify-ghosts-broken-logic.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-5.4.10/lib/verify.c.orig 2012-09-22 18:33:59.791810053 +0200 -+++ rpm-5.4.10/lib/verify.c 2012-09-22 18:33:34.921810920 +0200 -@@ -594,7 +594,7 @@ - continue; - - /* If not verifying %ghost, skip ghost files. */ -- if (!FF_ISSET(qva->qva_fflags, GHOST) && FF_ISSET(fflags, GHOST)) -+ if (FF_ISSET(qva->qva_fflags, GHOST) && FF_ISSET(fflags, GHOST)) - continue; - - /* Gather per-file data into a carrier. */ diff --git a/rpm.spec b/rpm.spec index 1b95ba8..fb7b770 100644 --- a/rpm.spec +++ b/rpm.spec @@ -12,7 +12,7 @@ %bcond_without python # don't build python bindings %bcond_without selinux # build without selinux support %bcond_without suggest_tags # build without Suggest tag (bootstrapping) -%bcond_with db61 # use DB 6.1 instead of 5.2 +%bcond_with db61 # use DB 6.1 instead of 5.3 %bcond_with neon # build with HTTP/WebDAV support (neon library) %bcond_with sqlite # build with SQLite support %bcond_without system_pcre # use system pcre @@ -29,12 +29,12 @@ %define reqdb_ver 6.1 %define reqdb_pkgver 6.1.19 %else -%define reqdb_pkg db5.2 -%define reqdb_ver 5.2 -%define reqdb_pkgver 5.2.36.0-4 +%define reqdb_pkg db5.3 +%define reqdb_ver 5.3 +%define reqdb_pkgver 5.3.28.0 %endif %define reqpopt_ver 1.15 -%define beecrypt_ver 2:4.2.0 +%define openssl_ver 1.1.1d %define sover 5.4 Summary: RPM Package Manager @@ -103,62 +103,11 @@ Patch29: %{name}-builddir-readlink.patch Patch30: %{name}-changelog_order_check_nonfatal.patch Patch35: %{name}-namespace-compare.patch Patch37: %{name}-postun-nofail.patch -Patch42: %{name}-pattern_Release.patch -Patch43: %{name}-fix-___build_pre-macro.patch -Patch44: %{name}-missing-patch-file-fails-build.patch -Patch45: %{name}-remove-misleading-missing-patch-message.patch -Patch46: %{name}-file-magic-can-be-mixed-case.patch -Patch47: %{name}-query-always-noisy.patch -Patch48: %{name}-verify-ghosts-broken-logic.patch -Patch49: %{name}-python-enable-compat-RPMSENSE.patch -Patch50: %{name}-dont-treat-gstreamer-modules-as-font.patch -Patch51: %{name}-gst-inspect-typo.patch -Patch52: %{name}-null-term-ascii-digest.patch -Patch53: %{name}-lua-enable-extra-libs.patch -Patch54: %{name}-fix-filedigests-verify.patch -Patch55: %{name}-disable-hmac-verify.patch -Patch56: %{name}-macros.patch -Patch57: %{name}-db5.2.patch -Patch58: %{name}-preserve-iterator.patch -Patch59: gcc6-stdlib.patch -Patch60: %{name}-python-sitescriptdir.patch Patch61: %{name}-clean-docdir.patch -Patch62: %{name}-DB_CONFIG.patch -Patch63: %{name}-pythoneggs.patch Patch64: %{name}-fix-compress-doc.patch -Patch65: %{name}-parseSpec-skip-empty-tags.patch -Patch66: %{name}-payload-use-hashed-inode.patch -Patch67: %{name}-repackage-dont-force-max-compression.patch -Patch68: rpm-bug-420.patch -Patch70: python-%{name}sense-missingok.patch -Patch71: %{name}-changelog-encoding.patch -Patch72: %{name}-preserve-tag-type.patch -Patch74: %{name}-fix-internal-lua-build.patch -Patch75: %{name}-double_check_file_deps.patch -Patch77: %{name}-lua-expat.patch -Patch78: %{name}-double_check_unpackaged_subdirs.patch -Patch79: %{name}-rpmspec.patch -Patch80: %{name}-revert-gpg-argv-parsing.patch Patch81: %{name}-perl-magic.patch -Patch82: %{name}-5.4.15-use-DSA-sig.patch Patch83: %{name}-ignore-missing-macro-files.patch Patch84: x32.patch -Patch85: rpm-CVE-2013-6435.patch -Patch86: rpm-CVE-2014-8118.patch -Patch87: %{name}-file-output-for-ELF.patch -Patch88: %{name}-rpmtdnext.patch -Patch89: disable-header-verification.patch -Patch90: %{name}-cppcompat.patch -Patch91: py-disable-fetch.patch -Patch92: fast_python_deps.patch -Patch93: python2_explicit.patch -Patch94: do_not_write_before_macro_buffer.patch -Patch95: rpm-python-spec-header.patch -Patch96: skip-ldconfig-optimization.patch -Patch97: glibc.patch -Patch98: extension-based-compression-detection.patch -Patch99: %{name}-gpg-pinentry.patch -Patch100: python-libx32.patch URL: http://rpm5.org/ BuildRequires: %{reqdb_pkg}-devel >= %{reqdb_pkgver} @@ -169,7 +118,7 @@ BuildRequires: %{reqdb_pkg}-sql-devel >= %{reqdb_pkgver} %endif BuildRequires: autoconf >= 2.63 BuildRequires: automake >= 1.4 -BuildRequires: beecrypt-devel >= %{beecrypt_ver} +BuildRequires: openssl-devel >= %{openssl_ver} BuildRequires: bzip2-devel >= 1.0.2-17 BuildRequires: elfutils-devel >= 0.108 BuildRequires: gettext-tools >= 0.19.2 @@ -206,7 +155,7 @@ BuildRequires: tetex-pdftex %if %{with static} # Require static library only for static build BuildRequires: %{reqdb_pkg}-static >= %{reqdb_pkgver} -BuildRequires: beecrypt-static >= %{beecrypt_ver} +BuildRequires: openssl-static >= %{openssl_ver} BuildRequires: bzip2-static >= 1.0.2-17 BuildRequires: elfutils-static BuildRequires: glibc-static >= 2.2.94 @@ -223,7 +172,7 @@ Requires(posttrans): coreutils Requires: FHS >= 3.0-2 Requires: %{name}-base = %{version}-%{release} Requires: %{name}-lib = %{version}-%{release} -Requires: beecrypt >= %{beecrypt_ver} +Requires: openssl >= %{openssl_ver} Requires: popt >= %{reqpopt_ver} Provides: rpm-db-ver = %{reqdb_ver} Obsoletes: rpm-getdeps @@ -328,7 +277,7 @@ Requires: sqlite3 >= %{sqlite_build_version} %else Requires: %{reqdb_pkg}-sql >= %{reqdb_pkgver} %endif -Requires: beecrypt >= %{beecrypt_ver} +Requires: openssl >= %{openssl_ver} Requires: libmagic >= 1.15-2 %{?with_selinux:Requires: libselinux >= 2.1.0} Requires: popt >= %{reqpopt_ver} @@ -353,7 +302,7 @@ Summary(uk.UTF-8): Хедери та бібліотеки для програм, Group: Development/Libraries Requires: %{name}-lib = %{version}-%{release} Requires: %{reqdb_pkg}-devel >= %{reqdb_pkgver} -Requires: beecrypt-devel >= %{beecrypt_ver} +Requires: openssl-devel >= %{openssl_ver} Requires: bzip2-devel Requires: elfutils-devel %{?with_keyutils:Requires: keyutils-devel} @@ -421,7 +370,7 @@ Summary(uk.UTF-8): Статична бібліотека для програм, Group: Development/Libraries Requires: %{name}-devel = %{version}-%{release} Requires: %{reqdb_pkg}-static >= %{reqdb_pkgver} -Requires: beecrypt-static >= %{beecrypt_ver} +Requires: openssl-static >= %{openssl_ver} Requires: bzip2-static Requires: elfutils-static %{?with_keyutils:Requires: keyutils-static} @@ -741,74 +690,19 @@ cd - %patch30 -p1 #%patch35 -p1 %patch37 -p1 -%patch42 -p1 -%patch43 -p1 -%patch44 -p1 -%patch45 -p1 -%patch46 -p1 -%patch47 -p1 -%patch48 -p1 -%patch49 -p1 -%patch50 -p1 -%patch51 -p1 -%patch52 -p0 -%patch53 -p1 -%patch54 -p1 -%patch55 -p1 -%patch56 -p1 -%{!?with_db61:%patch57 -p1} -%patch58 -p1 -%patch59 -p1 -%patch60 -p1 %patch61 -p1 -%patch62 -p1 -%patch63 -p1 -%patch64 -p1 -%patch65 -p1 -%patch66 -p1 -%patch67 -p1 -%patch68 -p1 -%patch70 -p1 -%patch71 -p1 -%patch72 -p1 -%patch74 -p1 -%patch75 -p1 -%patch77 -p0 -%patch78 -p1 -%patch79 -p1 -%patch80 -p1 -%patch81 -p0 -%patch82 -p1 -%patch84 -p1 -%patch85 -p1 -%patch86 -p1 -%patch87 -p1 -%patch88 -p1 -%patch89 -p1 -%patch90 -p1 -%patch91 -p1 -%patch99 -p1 - +#%patch64 -p1 +%patch81 -p1 %patch83 -p1 -%patch92 -p1 -%patch93 -p1 -%patch94 -p1 -%patch95 -p1 -%patch96 -p1 -%patch97 -p1 -%patch98 -p1 - -%patch100 -p1 +#%patch84 -p1 -install %{SOURCE2} macros/pld.in +install %{SOURCE2} pld.in #install %{SOURCE8} scripts/php.prov.in #install %{SOURCE9} scripts/php.req.in install %{SOURCE11} scripts/perl.prov.in cp -p %{SOURCE30} scripts/rubygems.rb cp -p %{SOURCE31} scripts/gem_helper.rb -rm scripts/find-php* - %{__mv} -f scripts/perl.req{,.in} # generate Group translations to *.po @@ -817,7 +711,7 @@ awk -f %{SOURCE6} %{SOURCE1} install %{SOURCE26} tools/rpmdb_checkversion.c install %{SOURCE28} tools/rpmdb_reset.c -for extlib in beecrypt neon %{?with_system_pcre:pcre} popt; do +for extlib in openssl neon %{?with_system_pcre:pcre} popt; do [ -d $extlib ] && %{__rm} -r $extlib done @@ -834,7 +728,7 @@ sed -i \ -e 's|@host@|%{_target_cpu}-%{_target_vendor}-%{_target_os}|' \ -e 's|@host_cpu@|%{_target_cpu}|' \ -e 's|@host_os@|%{_target_os}|' \ - macros/macros.in + macros.in CPPFLAGS="-I/usr/include/lua51 %{rpmcppflags}" %configure \ @@ -845,7 +739,7 @@ CPPFLAGS="-I/usr/include/lua51 %{rpmcppflags}" --enable-shared \ --enable-static \ %{!?with_apidocs:--without-apidocs} \ - --with-beecrypt=external \ + --with-crypto=openssl \ --with-bugreport="http://bugs.pld-linux.org/" \ --with-bzip2=external \ --with-db=external \ @@ -862,7 +756,7 @@ CPPFLAGS="-I/usr/include/lua51 %{rpmcppflags}" --with-popt=external \ %{?with_python:--with-python=%{py_ver} --with-python-lib-dir=%{py_sitedir}} \ %{!?with_python:--without-python} \ - --with-selinux=%{!?with_selinux:no}%{?with_selinux:external} \ + --with-selinux=%{!?with_selinux:no}%{?with_selinux:yes} \ --with-semanage=%{!?with_selinux:no}%{?with_selinux:external} \ --with-sepol=%{!?with_selinux:no}%{?with_selinux:external} \ --with-sqlite=%{?with_sqlite:yes}%{!?with_sqlite:no} \ diff --git a/skip-ldconfig-optimization.patch b/skip-ldconfig-optimization.patch deleted file mode 100644 index 917a8fc..0000000 --- a/skip-ldconfig-optimization.patch +++ /dev/null @@ -1,74 +0,0 @@ -http://lists.pld-linux.org/mailman/pipermail/pld-devel-en/2016-May/024910.html - -patch from jbj answer: -http://lists.pld-linux.org/mailman/pipermail/pld-devel-en/2016-May/024913.html - -On May 31, 2016, at 2:52 AM, Elan Ruusamäe wrote: - -> On 31.05.2016 09:45, Elan Ruusamäe wrote: ->> [root@57c8cccdc671 bin]# poldek -u procps -> oh, and it's 100% reproducible: -> - -Yes. And it has been discussed many times over the last 15y, -several times on this list. - -Short answer: - Disable the mechanism with attached patch to lib/psm.c - - OR -- - Don't use - %scriptlet -p /sbin/ldconfig - in packages that are known to invoke an executable that depends on - a new library. - -Longer answer: - Libraries often have scriptlets like this: - %post -p /sbin/ldconfig - %postun -p /sbin/ldconfig - (or the equivalent within a scriptlet body). - - On upgrade, with install before erase, this results in 2 executions of /sbin/ldconfig. - - One of those invocations is redundant when a library is being replaced, the - install %post is sufficient to make the library avaialble for loading. - - The redundant invocation of /sbin/ldconfig was deemed a performance flaw @redhat, - where I was asked to implement the current optimization. - - So the RPM optimization detects when /sbin/ldconfig has just been run, and skips the next - %scriptlet -p /sbin/ldconfig - (when written exactly like that) if /sbin/ldconfig has been executed. - - Issues are only seen when a scriptlet contains an executable that needs - a changed API: this is usually a very rare occurrence - - There are other flaws with the optimization when dependency loops break the sorted order - (and/or --noorder is used). , and the fix of running /sbin/ldconfig manually is rather simple - (even if the problem is obscure). - - There is another flaw (as in your report), when the very last package - has a pending skipped /sbin/ldconfig invocation. - - The fix of running /sbin/ldconfig manually is rather simple - (even if the problem is obscure). - -hth - -73 de Jeff -=================================================================== -RCS file: /v/rpm/cvs/rpm/lib/psm.c,v -retrieving revision 2.399.2.20 -diff -p -u -w -r2.399.2.20 psm.c ---- ./lib/psm.c 11 May 2015 21:10:16 -0000 2.399.2.20 -+++ ./lib/psm.c 31 May 2016 15:19:20 -0000 -@@ -800,7 +800,7 @@ static rpmRC runEmbeddedScript(rpmpsm ps - static int ldconfig_done = 0; - - /*@unchecked@*/ /*@observer@*/ /*@null@*/ --static const char * ldconfig_path = "/sbin/ldconfig"; -+static const char * ldconfig_path = NULL; - - /** - * Run scriptlet with args. - - diff --git a/x32.patch b/x32.patch index 900aa64..bb34415 100644 --- a/x32.patch +++ b/x32.patch @@ -12,20 +12,20 @@ alpha*) RPMCANONARCH=alpha ;; sparc64*) RPMCANONARCH=sparc64 ;; sparc*) RPMCANONARCH=sparc ;; ---- rpm-5.4.15/lib/rpmfc.c.orig 2014-12-20 16:50:32.000000000 +0100 -+++ rpm-5.4.15/lib/rpmfc.c 2014-12-20 18:32:11.641808153 +0100 +--- rpm-5.4.15/build/rpmfc.c.orig 2014-12-20 16:50:32.000000000 +0100 ++++ rpm-5.4.15/build/rpmfc.c 2014-12-20 18:32:11.641808153 +0100 @@ -581,6 +581,7 @@ - { "MIPS, N32 MIPS32", RPMFC_ELFMIPSN32|RPMFC_INCLUDE }, + { "ELF 32-bit", RPMFC_ELF32|RPMFC_INCLUDE }, { "ELF 64-bit", RPMFC_ELF64|RPMFC_INCLUDE }, +// { "ELF 32-bit", RPMFC_ELFX32|RPMFC_INCLUDE }, - { " script", RPMFC_SCRIPT }, - { " text", RPMFC_TEXT }, + { "troff or preprocessor input", RPMFC_INCLUDE }, + { "GNU Info", RPMFC_INCLUDE }, @@ -685,7 +686,11 @@ - for (fct = rpmfcTokens; fct->token != NULL; fct++) { if (strstr(fmstr, fct->token) == NULL) continue; + - fcolor |= fct->colors; + // This is a nasty hack, but will have to do for now + if ((fct->colors & RPMFC_ELF32) && (strstr(fmstr, "x86-64") != NULL)) @@ -35,8 +35,8 @@ if (fcolor & RPMFC_INCLUDE) return fcolor; } ---- rpm-5.4.15/lib/rpmfc.h.orig 2014-12-20 17:51:48.584934979 +0100 -+++ rpm-5.4.15/lib/rpmfc.h 2014-12-20 17:56:14.690160030 +0100 +--- rpm-5.4.15/build/rpmfc.h.orig 2014-12-20 17:51:48.584934979 +0100 ++++ rpm-5.4.15/build/rpmfc.h 2014-12-20 17:56:14.690160030 +0100 @@ -20,8 +20,9 @@ RPMFC_BLACK = 0, RPMFC_ELF32 = (1 << 0), @@ -48,80 +48,6 @@ /* (1 << 3) leaks into package headers, reserved */ RPMFC_DESKTOP_FILE = (1 << 4), -diff -ur rpm-5.4.15/autodeps/linux.prov rpm-5.4.15.x32/autodeps/linux.prov ---- rpm-5.4.15/autodeps/linux.prov 2010-03-18 10:54:56.000000000 +0100 -+++ rpm-5.4.15.x32/autodeps/linux.prov 2014-12-20 19:18:57.339941715 +0100 -@@ -16,8 +16,12 @@ - - # - # --- Alpha does not mark 64bit dependencies -+# --- Only x86_64 has x32bit dependencies -+markx32="" - case `uname -m` in - alpha*) mark64="" ;; -+ x86_64) markx32="()(x32bit)" -+ mark64="()(64bit)" ;; - *) mark64="()(64bit)" ;; - esac - -@@ -28,6 +32,10 @@ - - lib64=`if file -L $f 2>/dev/null | \ - grep "ELF 64-bit" >/dev/null; then echo "$mark64"; fi` -+ libx32=`if file -L $f 2>/dev/null | \ -+ grep "ELF 32-bit.*x86-64" > /dev/null; \ -+ then echo "$markx32"; fi` -+ lib64="$lib64$libx32" - if [ "$soname" != "" ]; then - if [ ! -L $f ]; then - echo $soname$lib64 -Only in rpm-5.4.15.x32/autodeps: linux.prov.orig -diff -ur rpm-5.4.15/autodeps/linux.req rpm-5.4.15.x32/autodeps/linux.req ---- rpm-5.4.15/autodeps/linux.req 2010-03-18 10:54:56.000000000 +0100 -+++ rpm-5.4.15.x32/autodeps/linux.req 2014-12-20 19:20:04.622910545 +0100 -@@ -38,8 +38,12 @@ - - # - # --- Alpha does not mark 64bit dependencies -+# --- Only x86_64 has x32bit dependencies -+markx32="" - case `uname -m` in - alpha*) mark64="" ;; -+ x86_64) markx32="()(x32bit)" -+ mark64="()(64bit)" ;; - *) mark64="()(64bit)" ;; - esac - -@@ -50,6 +54,9 @@ - [ -r $f -a -x $f ] || continue - lib64=`if file -L $f 2>/dev/null | \ - grep "ELF 64-bit" >/dev/null; then echo "$mark64"; fi` -+ libx32=`if file -L $f 2>/dev/null | \ -+ grep "ELF 32-bit.*x86-64" >/dev/null; then echo "$markx32"; fi` -+ lib64="$lib64$libx32" - ldd $f | awk '/=>/ { - if ($1 !~ /libNoVersion.so/ && $1 !~ /4[um]lib.so/ && $1 !~ /libredhat-kernel.so/) { - gsub(/'\''"/,"\\&",$1); -@@ -64,6 +71,9 @@ - [ -r $f ] || continue - lib64=`if file -L $f 2>/dev/null | \ - grep "ELF 64-bit" >/dev/null; then echo "$mark64"; fi` -+ libx32=`if file -L $f 2>/dev/null | \ -+ grep "ELF 32-bit.*x86-64" >/dev/null; then echo "$markx32"; fi` -+ lib64="$lib64$libx32" - ldd $f | awk '/=>/ { - if ($1 !~ /libNoVersion.so/ && $1 !~ /4[um]lib.so/ && $1 !~ /libredhat-kernel.so/) { - gsub(/'\''"/,"\\&",$1); -@@ -98,6 +108,9 @@ - [ -r $f ] || continue - lib64=`if file -L $f 2>/dev/null | \ - grep "ELF 64-bit" >/dev/null; then echo "$mark64"; fi` -+ libx32=`if file -L $f 2>/dev/null | \ -+ grep "ELF 32-bit.*x86-64" >/dev/null; then echo "$markx32"; fi` -+ lib64="$lib64$libx32" - $OBJDUMP -p $f | awk 'BEGIN { START=0; LIBNAME=""; needed='$needed'; } - /^$/ { START=0; } - /^Dynamic Section:$/ { START=1; } diff -ur rpm-5.4.15/lib/rpmds.c rpm-5.4.15.x32/lib/rpmds.c --- rpm-5.4.15/lib/rpmds.c 2014-12-20 19:35:31.114557975 +0100 +++ rpm-5.4.15.x32/lib/rpmds.c 2014-12-20 19:34:54.958087185 +0100 @@ -245,3 +171,76 @@ diff -ur rpm-5.4.15/build/parseSpec.c rpm-5.4.15-fixed/build/parseSpec.c for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) { he->tag = RPMTAG_OS; +diff -ur rpm-5.4.15/autodeps/linux.prov rpm-5.4.15.x32/autodeps/linux.prov +--- rpm-5.4.15/autodeps/linux.prov 2010-03-18 10:54:56.000000000 +0100 ++++ rpm-5.4.15.x32/autodeps/linux.prov 2014-12-20 19:18:57.339941715 +0100 +@@ -16,8 +16,12 @@ + + # + # --- Alpha does not mark 64bit dependencies ++# --- Only x86_64 has x32bit dependencies ++markx32="" + case `uname -m` in + alpha*) mark64="" ;; ++ x86_64) markx32="()(x32bit)" ++ mark64="()(64bit)" ;; + *) mark64="()(64bit)" ;; + esac + +@@ -28,6 +32,10 @@ + + lib64=`if file -L $f 2>/dev/null | \ + grep "ELF 64-bit" >/dev/null; then echo "$mark64"; fi` ++ libx32=`if file -L $f 2>/dev/null | \ ++ grep "ELF 32-bit.*x86-64" > /dev/null; \ ++ then echo "$markx32"; fi` ++ lib64="$lib64$libx32" + if [ "$soname" != "" ]; then + if [ ! -L $f ]; then + echo $soname$lib64 +diff -ur rpm-5.4.15/autodeps/linux.req rpm-5.4.15.x32/autodeps/linux.req +--- rpm-5.4.15/autodeps/linux.req 2010-03-18 10:54:56.000000000 +0100 ++++ rpm-5.4.15.x32/autodeps/linux.req 2014-12-20 19:20:04.622910545 +0100 +@@ -38,8 +38,12 @@ + + # + # --- Alpha does not mark 64bit dependencies ++# --- Only x86_64 has x32bit dependencies ++markx32="" + case `uname -m` in + alpha*) mark64="" ;; ++ x86_64) markx32="()(x32bit)" ++ mark64="()(64bit)" ;; + *) mark64="()(64bit)" ;; + esac + +@@ -50,6 +54,9 @@ + [ -r $f -a -x $f ] || continue + lib64=`if file -L $f 2>/dev/null | \ + grep "ELF 64-bit" >/dev/null; then echo "$mark64"; fi` ++ libx32=`if file -L $f 2>/dev/null | \ ++ grep "ELF 32-bit.*x86-64" >/dev/null; then echo "$markx32"; fi` ++ lib64="$lib64$libx32" + ldd $f | awk '/=>/ { + if ($1 !~ /libNoVersion.so/ && $1 !~ /4[um]lib.so/ && $1 !~ /libredhat-kernel.so/) { + gsub(/'\''"/,"\\&",$1); +@@ -64,6 +71,9 @@ + [ -r $f ] || continue + lib64=`if file -L $f 2>/dev/null | \ + grep "ELF 64-bit" >/dev/null; then echo "$mark64"; fi` ++ libx32=`if file -L $f 2>/dev/null | \ ++ grep "ELF 32-bit.*x86-64" >/dev/null; then echo "$markx32"; fi` ++ lib64="$lib64$libx32" + ldd $f | awk '/=>/ { + if ($1 !~ /libNoVersion.so/ && $1 !~ /4[um]lib.so/ && $1 !~ /libredhat-kernel.so/) { + gsub(/'\''"/,"\\&",$1); +@@ -98,6 +108,9 @@ + [ -r $f ] || continue + lib64=`if file -L $f 2>/dev/null | \ + grep "ELF 64-bit" >/dev/null; then echo "$mark64"; fi` ++ libx32=`if file -L $f 2>/dev/null | \ ++ grep "ELF 32-bit.*x86-64" >/dev/null; then echo "$markx32"; fi` ++ lib64="$lib64$libx32" + $OBJDUMP -p $f | awk 'BEGIN { START=0; LIBNAME=""; needed='$needed'; } + /^$/ { START=0; } + /^Dynamic Section:$/ { START=1; } -- 2.43.0