From: Thomas Petazzoni Date: Sun, 2 Jul 2017 16:53:35 +0000 (+0200) Subject: rpm: don't download patches from Github X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e4df30ff97eb21b8b3ab1c0b454389d846fc9bdd;p=buildroot.git rpm: don't download patches from Github Patches downloaded from Github are not stable, so bring them in the tree. Signed-off-by: Thomas Petazzoni Signed-off-by: Peter Korsgaard --- diff --git a/package/rpm/0001-Detect-bfd.h-to-enable-disable-sepdebugcrcfix-buildi.patch b/package/rpm/0001-Detect-bfd.h-to-enable-disable-sepdebugcrcfix-buildi.patch deleted file mode 100644 index e1fd0697e6..0000000000 --- a/package/rpm/0001-Detect-bfd.h-to-enable-disable-sepdebugcrcfix-buildi.patch +++ /dev/null @@ -1,55 +0,0 @@ -From edadcf67980764c104c25c7c1a0ba91257b89698 Mon Sep 17 00:00:00 2001 -From: Thomas Petazzoni -Date: Thu, 8 Dec 2016 23:33:30 +0100 -Subject: [PATCH 1/2] Detect bfd.h to enable/disable sepdebugcrcfix building - -tools/sepdebugcrcfix includes , but this header from binutils -is not checked in the configure script. Due to this, sepdebugcrcfix is -attempted to be built even when is not available. This commit -addresses that by adding the appropriate configure check. - -This fixes the following build error: - -tools/sepdebugcrcfix.c:31:17: fatal error: bfd.h: No such file or directory -compilation terminated. -make[3]: *** [tools/sepdebugcrcfix.o] Error 1 - -Signed-off-by: Thomas Petazzoni ---- - Makefile.am | 2 ++ - configure.ac | 3 +++ - 2 files changed, 5 insertions(+) - -diff --git a/Makefile.am b/Makefile.am -index 863138c..d8a68f0 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -168,9 +168,11 @@ elfdeps_SOURCES = tools/elfdeps.c - elfdeps_LDADD = rpmio/librpmio.la - elfdeps_LDADD += @WITH_LIBELF_LIB@ @WITH_POPT_LIB@ - -+if HAS_BFD_H - rpmlibexec_PROGRAMS += sepdebugcrcfix - sepdebugcrcfix_SOURCES = tools/sepdebugcrcfix.c - sepdebugcrcfix_LDADD = @WITH_LIBELF_LIB@ -+endif # HAS_BFD_H - endif - endif - -diff --git a/configure.ac b/configure.ac -index c5ae701..b99ecb8 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -242,6 +242,9 @@ AC_CHECK_HEADERS([dwarf.h], [ - ]) - AM_CONDITIONAL(LIBDWARF,[test "$WITH_LIBDWARF" = yes]) - -+AC_CHECK_HEADERS([bfd.h]) -+AM_CONDITIONAL(HAS_BFD_H, [test "${ac_cv_header_bfd_h}" = "yes"]) -+ - #================= - # Check for beecrypt library if requested. - AC_ARG_WITH(beecrypt, [ --with-beecrypt build with beecrypt support ],,[with_beecrypt=no]) --- -2.7.4 - diff --git a/package/rpm/0001-configure-ac-use-link-instead-of-compile-for-gcc-flags-test.patch b/package/rpm/0001-configure-ac-use-link-instead-of-compile-for-gcc-flags-test.patch new file mode 100644 index 0000000000..6f6a2aba51 --- /dev/null +++ b/package/rpm/0001-configure-ac-use-link-instead-of-compile-for-gcc-flags-test.patch @@ -0,0 +1,33 @@ +From b5f1895aae096836d6e8e155ee289e1b10fcabcb Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Sat, 10 Oct 2015 23:17:44 +0200 +Subject: [PATCH] configure.ac: use link instead of compile for gcc flags test + +The logic that tests whether gcc supports or not certain flags uses +AC_COMPILE_IFELSE(). However, when checking for stack smashing +protection support, an AC_LINK_IFELSE() test is needed, since the +build might work but not the link stage if certain libraries are +missing for proper stack smashing protection support. + +Therefore, this commit switches to use AC_LINK_IFELSE(). + +[Upstream commit: https://github.com/rpm-software-management/rpm/commit/b5f1895aae096836d6e8e155ee289e1b10fcabcb] +Signed-off-by: Thomas Petazzoni +Signed-off-by: James Knight +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 6ece8c9fd..822294c3f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -43,7 +43,7 @@ if test "$GCC" = yes; then + echo + for flag in $cflags_to_try; do + CFLAGS="$CFLAGS $flag -Werror" +- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[return 0;]])],[ ++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[return 0;]])],[ + echo " $flag" + RPMCFLAGS="$RPMCFLAGS $flag" + ],[]) diff --git a/package/rpm/0002-configure-ac-correct-stack-protector-check.patch b/package/rpm/0002-configure-ac-correct-stack-protector-check.patch new file mode 100644 index 0000000000..9d2942b4fa --- /dev/null +++ b/package/rpm/0002-configure-ac-correct-stack-protector-check.patch @@ -0,0 +1,45 @@ +From c810a0aca3f1148d2072d44b91b8cc9caeb4cf19 Mon Sep 17 00:00:00 2001 +From: James Knight +Date: Wed, 16 Nov 2016 15:54:46 -0500 +Subject: [PATCH] configure.ac: correct stack protector check + +If a used toolchain accepts the `-fstack-protector` option but does not +provide a stack smashing protector implementation (ex. libssp), linking +will fail: + + .libs/rpmio.o: In function `Fdescr': + rpmio.c:(.text+0x672): undefined reference to `__stack_chk_fail_local' + .libs/rpmio.o: In function `Fdopen': + rpmio.c:(.text+0xce9): undefined reference to `__stack_chk_fail_local' + .libs/rpmio.o: In function `ufdCopy': + rpmio.c:(.text+0x10f7): undefined reference to `__stack_chk_fail_local' + ... + +This is a result of testing for `-fstack-protector` support using a main +that GCC does not inject guards. GCC's manual notes that stack protector +code is only added when "[functions] that call alloca, and functions +with buffers larger than 8 bytes" [1]. This commit adjusts the stack +protector check to allocate memory on the stack (via `alloca`). + +[1]: https://gcc.gnu.org/onlinedocs/gcc-4.4.2/gcc/Optimize-Options.html + +Signed-off-by: James Knight +[Upstream commit: https://github.com/rpm-software-management/rpm/commit/c810a0aca3f1148d2072d44b91b8cc9caeb4cf19] +Signed-off-by: Thomas Petazzoni +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index a9730d3bc..b4b3fe8fb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -43,7 +43,7 @@ if test "$GCC" = yes; then + echo + for flag in $cflags_to_try; do + CFLAGS="$CFLAGS $flag -Werror" +- AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[return 0;]])],[ ++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[alloca(100);]])],[ + echo " $flag" + RPMCFLAGS="$RPMCFLAGS $flag" + ],[]) diff --git a/package/rpm/0002-tools-sepdebugcrcfix.c-fix-build-with-recent-binutil.patch b/package/rpm/0002-tools-sepdebugcrcfix.c-fix-build-with-recent-binutil.patch deleted file mode 100644 index bebe94511d..0000000000 --- a/package/rpm/0002-tools-sepdebugcrcfix.c-fix-build-with-recent-binutil.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 65afab91444d4996a8e61d1e2d27d52e18417ef5 Mon Sep 17 00:00:00 2001 -From: Thomas Petazzoni -Date: Thu, 8 Dec 2016 23:45:55 +0100 -Subject: [PATCH 2/2] tools/sepdebugcrcfix.c: fix build with recent binutils - -Moderately recent binutils versions install a header that -checks if config.h is included. While this makes sense in binutils -itself, it does not outside. So the binutils developers have added a -check: if PACKAGE or PACKAGE_VERSION are defined, they assume you're -re-using bfd.h outside of binutils, and therefore including it without -including config.h is legit. - -So we take the same approch as numerous users of bfd.h: fake a PACKAGE -definition. See for example tools/perf/util/srcline.c in the Linux -kernel source tree. - -This fixes the following build error: - -In file included from tools/sepdebugcrcfix.c:31:0: -/home/test/autobuild/run/instance-0/output/host/usr/arc-buildroot-linux-uclibc/sysroot/usr/include/bfd.h:35:2: error: #error config.h must be included before this header - #error config.h must be included before this header - -Signed-off-by: Thomas Petazzoni ---- - tools/sepdebugcrcfix.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/tools/sepdebugcrcfix.c b/tools/sepdebugcrcfix.c -index cd7fa02..e7b480f 100644 ---- a/tools/sepdebugcrcfix.c -+++ b/tools/sepdebugcrcfix.c -@@ -28,6 +28,8 @@ - #include - #include - #include -+/* Needed to please */ -+#define PACKAGE "rpm" - #include - - #define _(x) x --- -2.7.4 - diff --git a/package/rpm/0003-Detect-bfd.h-to-enable-disable-sepdebugcrcfix-buildi.patch b/package/rpm/0003-Detect-bfd.h-to-enable-disable-sepdebugcrcfix-buildi.patch new file mode 100644 index 0000000000..e1fd0697e6 --- /dev/null +++ b/package/rpm/0003-Detect-bfd.h-to-enable-disable-sepdebugcrcfix-buildi.patch @@ -0,0 +1,55 @@ +From edadcf67980764c104c25c7c1a0ba91257b89698 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Thu, 8 Dec 2016 23:33:30 +0100 +Subject: [PATCH 1/2] Detect bfd.h to enable/disable sepdebugcrcfix building + +tools/sepdebugcrcfix includes , but this header from binutils +is not checked in the configure script. Due to this, sepdebugcrcfix is +attempted to be built even when is not available. This commit +addresses that by adding the appropriate configure check. + +This fixes the following build error: + +tools/sepdebugcrcfix.c:31:17: fatal error: bfd.h: No such file or directory +compilation terminated. +make[3]: *** [tools/sepdebugcrcfix.o] Error 1 + +Signed-off-by: Thomas Petazzoni +--- + Makefile.am | 2 ++ + configure.ac | 3 +++ + 2 files changed, 5 insertions(+) + +diff --git a/Makefile.am b/Makefile.am +index 863138c..d8a68f0 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -168,9 +168,11 @@ elfdeps_SOURCES = tools/elfdeps.c + elfdeps_LDADD = rpmio/librpmio.la + elfdeps_LDADD += @WITH_LIBELF_LIB@ @WITH_POPT_LIB@ + ++if HAS_BFD_H + rpmlibexec_PROGRAMS += sepdebugcrcfix + sepdebugcrcfix_SOURCES = tools/sepdebugcrcfix.c + sepdebugcrcfix_LDADD = @WITH_LIBELF_LIB@ ++endif # HAS_BFD_H + endif + endif + +diff --git a/configure.ac b/configure.ac +index c5ae701..b99ecb8 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -242,6 +242,9 @@ AC_CHECK_HEADERS([dwarf.h], [ + ]) + AM_CONDITIONAL(LIBDWARF,[test "$WITH_LIBDWARF" = yes]) + ++AC_CHECK_HEADERS([bfd.h]) ++AM_CONDITIONAL(HAS_BFD_H, [test "${ac_cv_header_bfd_h}" = "yes"]) ++ + #================= + # Check for beecrypt library if requested. + AC_ARG_WITH(beecrypt, [ --with-beecrypt build with beecrypt support ],,[with_beecrypt=no]) +-- +2.7.4 + diff --git a/package/rpm/0004-tools-sepdebugcrcfix.c-fix-build-with-recent-binutil.patch b/package/rpm/0004-tools-sepdebugcrcfix.c-fix-build-with-recent-binutil.patch new file mode 100644 index 0000000000..bebe94511d --- /dev/null +++ b/package/rpm/0004-tools-sepdebugcrcfix.c-fix-build-with-recent-binutil.patch @@ -0,0 +1,43 @@ +From 65afab91444d4996a8e61d1e2d27d52e18417ef5 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Thu, 8 Dec 2016 23:45:55 +0100 +Subject: [PATCH 2/2] tools/sepdebugcrcfix.c: fix build with recent binutils + +Moderately recent binutils versions install a header that +checks if config.h is included. While this makes sense in binutils +itself, it does not outside. So the binutils developers have added a +check: if PACKAGE or PACKAGE_VERSION are defined, they assume you're +re-using bfd.h outside of binutils, and therefore including it without +including config.h is legit. + +So we take the same approch as numerous users of bfd.h: fake a PACKAGE +definition. See for example tools/perf/util/srcline.c in the Linux +kernel source tree. + +This fixes the following build error: + +In file included from tools/sepdebugcrcfix.c:31:0: +/home/test/autobuild/run/instance-0/output/host/usr/arc-buildroot-linux-uclibc/sysroot/usr/include/bfd.h:35:2: error: #error config.h must be included before this header + #error config.h must be included before this header + +Signed-off-by: Thomas Petazzoni +--- + tools/sepdebugcrcfix.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/tools/sepdebugcrcfix.c b/tools/sepdebugcrcfix.c +index cd7fa02..e7b480f 100644 +--- a/tools/sepdebugcrcfix.c ++++ b/tools/sepdebugcrcfix.c +@@ -28,6 +28,8 @@ + #include + #include + #include ++/* Needed to please */ ++#define PACKAGE "rpm" + #include + + #define _(x) x +-- +2.7.4 + diff --git a/package/rpm/rpm.hash b/package/rpm/rpm.hash index fd77d33fa2..7ae9ec73d9 100644 --- a/package/rpm/rpm.hash +++ b/package/rpm/rpm.hash @@ -1,5 +1,2 @@ # From http://rpm.org/wiki/Releases/4.13.0.1 sha1 9566f95f38fcb214e439c552f378c2f64ba0aff9 rpm-4.13.0.1.tar.bz2 -# Locally computed -sha256 a3e5568d721737a24141737e6036bb39ba9dfbeaa03fa4a51cc7881a243e0c5d b5f1895aae096836d6e8e155ee289e1b10fcabcb.patch -sha256 7ab0e08e143bb2d43d5b0553ee22ea34da15a611c597860a6110745467d20fa8 c810a0aca3f1148d2072d44b91b8cc9caeb4cf19.patch diff --git a/package/rpm/rpm.mk b/package/rpm/rpm.mk index fdaf27c58c..317ec1411e 100644 --- a/package/rpm/rpm.mk +++ b/package/rpm/rpm.mk @@ -11,12 +11,9 @@ RPM_SITE = http://ftp.rpm.org/releases/rpm-$(RPM_VERSION_MAJOR).x RPM_DEPENDENCIES = host-pkgconf berkeleydb file popt zlib RPM_LICENSE = GPL-2.0 or LGPL-2.0 (library only) RPM_LICENSE_FILES = COPYING -RPM_PATCH = \ - https://github.com/rpm-software-management/rpm/commit/b5f1895aae096836d6e8e155ee289e1b10fcabcb.patch \ - https://github.com/rpm-software-management/rpm/commit/c810a0aca3f1148d2072d44b91b8cc9caeb4cf19.patch -# b5f1895aae096836d6e8e155ee289e1b10fcabcb.patch -# c810a0aca3f1148d2072d44b91b8cc9caeb4cf19.patch +# 0001-configure-ac-use-link-instead-of-compile-for-gcc-flags-test.patch +# 0002-configure-ac-correct-stack-protector-check.patch RPM_AUTORECONF = YES RPM_CONF_OPTS = \