From cf4aaed28a34cc652352f0817316187b72babc76 Mon Sep 17 00:00:00 2001 From: Robert Yang Date: Sat, 3 Jan 2015 18:38:19 -0800 Subject: grub 2.0: several fixes * Make grub, grub-efi grub_git use a grub2.inc to reduce the duplicated code. * Make grub and grub-efi use the same patches since they use the same source. (grub_git is different). * grub-efi: - Use autotools to replace autotools-brokensep - Remove the DEPENDS of freetype, it should be a RDEPENDS. - Remove grub-2.00-ignore-gnulib-gets-stupidity.patch since it is a duplication of remove-gets.patch. - Make grub-efi.rpm contain files rather than make an empty package. * grub_git: - Fix a SSE build failure. [YOCTO #6310] Signed-off-by: Robert Yang --- .../grub/files/fix-endianness-problem.patch | 44 +++++++++ .../grub-2.00-ignore-gnulib-gets-stupidity.patch | 28 ------ meta/recipes-bsp/grub/files/grub-install.in.patch | 20 ++++ ...rub2-remove-sparc64-setup-from-x86-builds.patch | 104 +++++++++++++++++++++ meta/recipes-bsp/grub/files/remove-gets.patch | 20 ++++ 5 files changed, 188 insertions(+), 28 deletions(-) create mode 100644 meta/recipes-bsp/grub/files/fix-endianness-problem.patch delete mode 100644 meta/recipes-bsp/grub/files/grub-2.00-ignore-gnulib-gets-stupidity.patch create mode 100644 meta/recipes-bsp/grub/files/grub-install.in.patch create mode 100644 meta/recipes-bsp/grub/files/grub2-remove-sparc64-setup-from-x86-builds.patch create mode 100644 meta/recipes-bsp/grub/files/remove-gets.patch (limited to 'meta/recipes-bsp/grub/files') diff --git a/meta/recipes-bsp/grub/files/fix-endianness-problem.patch b/meta/recipes-bsp/grub/files/fix-endianness-problem.patch new file mode 100644 index 0000000000..079992afba --- /dev/null +++ b/meta/recipes-bsp/grub/files/fix-endianness-problem.patch @@ -0,0 +1,44 @@ +grub-core/net/tftp.c: fix endianness problem. + + * grub-core/net/tftp.c (ack): Fix endianness problem. + (tftp_receive): Likewise. + Reported by: Michael Davidsaver. + +Upstream-Status: Backport + +diff --git a/ChangeLog b/ChangeLog +index 81bdae9..c2f42d5 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,9 @@ ++2012-07-02 Vladimir Serbinenko ++ ++ * grub-core/net/tftp.c (ack): Fix endianness problem. ++ (tftp_receive): Likewise. ++ Reported by: Michael Davidsaver. ++ + 2012-06-27 Vladimir Serbinenko + + * configure.ac: Bump version to 2.00. +diff --git a/grub-core/net/tftp.c b/grub-core/net/tftp.c +index 9c70efb..d0f39ea 100644 +--- a/grub-core/net/tftp.c ++++ b/grub-core/net/tftp.c +@@ -143,7 +143,7 @@ ack (tftp_data_t data, grub_uint16_t block) + + tftph_ack = (struct tftphdr *) nb_ack.data; + tftph_ack->opcode = grub_cpu_to_be16 (TFTP_ACK); +- tftph_ack->u.ack.block = block; ++ tftph_ack->u.ack.block = grub_cpu_to_be16 (block); + + err = grub_net_send_udp_packet (data->sock, &nb_ack); + if (err) +@@ -225,7 +225,7 @@ tftp_receive (grub_net_udp_socket_t sock __attribute__ ((unused)), + grub_priority_queue_pop (data->pq); + + if (file->device->net->packs.count < 50) +- err = ack (data, tftph->u.data.block); ++ err = ack (data, data->block + 1); + else + { + file->device->net->stall = 1; diff --git a/meta/recipes-bsp/grub/files/grub-2.00-ignore-gnulib-gets-stupidity.patch b/meta/recipes-bsp/grub/files/grub-2.00-ignore-gnulib-gets-stupidity.patch deleted file mode 100644 index 70f60015c2..0000000000 --- a/meta/recipes-bsp/grub/files/grub-2.00-ignore-gnulib-gets-stupidity.patch +++ /dev/null @@ -1,28 +0,0 @@ -From f66d54b934710f54999debb72e8b7c620edece1d Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Fri, 25 May 2012 15:28:19 -0400 -Subject: [PATCH] gnulib accused in build breaking shocker. - -Upstream-Status: pending [Fedora will push this] - ---- - grub-core/gnulib/stdio.in.h | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/grub-core/gnulib/stdio.in.h b/grub-core/gnulib/stdio.in.h -index 80b9dbf..69932d9 100644 ---- a/grub-core/gnulib/stdio.in.h -+++ b/grub-core/gnulib/stdio.in.h -@@ -141,7 +141,9 @@ _GL_WARN_ON_USE (fflush, "fflush is not always POSIX compliant - " - so any use of gets warrants an unconditional warning. Assume it is - always declared, since it is required by C89. */ - #undef gets -+#if 0 - _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); -+#endif - - #if @GNULIB_FOPEN@ - # if @REPLACE_FOPEN@ --- -1.7.10.1 - diff --git a/meta/recipes-bsp/grub/files/grub-install.in.patch b/meta/recipes-bsp/grub/files/grub-install.in.patch new file mode 100644 index 0000000000..326951df44 --- /dev/null +++ b/meta/recipes-bsp/grub/files/grub-install.in.patch @@ -0,0 +1,20 @@ +Upstream-Status: Inappropriate [embedded specific] + +Our use of grub-install doesn't require the -x option, so we should be +be able make use of grep versions that don't support it. + +Signed-off-by: Tom Zanussi + +Index: grub-1.99/util/grub-install.in +=================================================================== +--- grub-1.99.orig/util/grub-install.in 2011-09-09 22:37:20.093906679 -0500 ++++ grub-1.99/util/grub-install.in 2011-09-09 22:37:30.854737882 -0500 +@@ -510,7 +510,7 @@ + + if [ "x${devabstraction_module}" = "x" ] ; then + if [ x"${install_device}" != x ]; then +- if echo "${install_device}" | grep -qx "(.*)" ; then ++ if echo "${install_device}" | grep -q "(.*)" ; then + install_drive="${install_device}" + else + install_drive="`"$grub_probe" --device-map="${device_map}" --target=drive --device "${install_device}"`" || exit 1 diff --git a/meta/recipes-bsp/grub/files/grub2-remove-sparc64-setup-from-x86-builds.patch b/meta/recipes-bsp/grub/files/grub2-remove-sparc64-setup-from-x86-builds.patch new file mode 100644 index 0000000000..6259a1abe3 --- /dev/null +++ b/meta/recipes-bsp/grub/files/grub2-remove-sparc64-setup-from-x86-builds.patch @@ -0,0 +1,104 @@ +Upstream-Status: Inappropriate [embedded specific] + +remove the grub-sparc64-setup files from the x86 builds. + +Signed-Off-By: Nitin A Kamble + +--- a/Makefile.util.am 2014-08-15 11:41:02.441011278 -0700 ++++ b/Makefile.util.am 2014-08-15 11:44:26.245021142 -0700 +@@ -4692,9 +4692,9 @@ + endif + + if COND_emu +-sbin_PROGRAMS += grub-sparc64-setup ++sbin_PROGRAMS += + if COND_MAN_PAGES +-man_MANS += grub-sparc64-setup.8 ++man_MANS += + + grub-sparc64-setup.8: grub-sparc64-setup + chmod a+x grub-sparc64-setup +@@ -4715,9 +4715,9 @@ + endif + + if COND_i386_pc +-sbin_PROGRAMS += grub-sparc64-setup ++sbin_PROGRAMS += + if COND_MAN_PAGES +-man_MANS += grub-sparc64-setup.8 ++man_MANS += + + grub-sparc64-setup.8: grub-sparc64-setup + chmod a+x grub-sparc64-setup +@@ -4738,9 +4738,9 @@ + endif + + if COND_i386_efi +-sbin_PROGRAMS += grub-sparc64-setup ++sbin_PROGRAMS += + if COND_MAN_PAGES +-man_MANS += grub-sparc64-setup.8 ++man_MANS += + + grub-sparc64-setup.8: grub-sparc64-setup + chmod a+x grub-sparc64-setup +@@ -4761,9 +4761,9 @@ + endif + + if COND_i386_qemu +-sbin_PROGRAMS += grub-sparc64-setup ++sbin_PROGRAMS += + if COND_MAN_PAGES +-man_MANS += grub-sparc64-setup.8 ++man_MANS += + + grub-sparc64-setup.8: grub-sparc64-setup + chmod a+x grub-sparc64-setup +@@ -4784,9 +4784,9 @@ + endif + + if COND_i386_coreboot +-sbin_PROGRAMS += grub-sparc64-setup ++sbin_PROGRAMS += + if COND_MAN_PAGES +-man_MANS += grub-sparc64-setup.8 ++man_MANS += + + grub-sparc64-setup.8: grub-sparc64-setup + chmod a+x grub-sparc64-setup +@@ -4807,9 +4807,9 @@ + endif + + if COND_i386_multiboot +-sbin_PROGRAMS += grub-sparc64-setup ++sbin_PROGRAMS += + if COND_MAN_PAGES +-man_MANS += grub-sparc64-setup.8 ++man_MANS += + + grub-sparc64-setup.8: grub-sparc64-setup + chmod a+x grub-sparc64-setup +@@ -4830,9 +4830,9 @@ + endif + + if COND_i386_ieee1275 +-sbin_PROGRAMS += grub-sparc64-setup ++sbin_PROGRAMS += + if COND_MAN_PAGES +-man_MANS += grub-sparc64-setup.8 ++man_MANS += + + grub-sparc64-setup.8: grub-sparc64-setup + chmod a+x grub-sparc64-setup +@@ -4853,9 +4853,9 @@ + endif + + if COND_x86_64_efi +-sbin_PROGRAMS += grub-sparc64-setup ++sbin_PROGRAMS += + if COND_MAN_PAGES +-man_MANS += grub-sparc64-setup.8 ++man_MANS += + + grub-sparc64-setup.8: grub-sparc64-setup + chmod a+x grub-sparc64-setup diff --git a/meta/recipes-bsp/grub/files/remove-gets.patch b/meta/recipes-bsp/grub/files/remove-gets.patch new file mode 100644 index 0000000000..463f7847ad --- /dev/null +++ b/meta/recipes-bsp/grub/files/remove-gets.patch @@ -0,0 +1,20 @@ +ISO C11 removes the specification of gets() from the C language, eglibc 2.16+ removed it + +Signed-off-by: Khem Raj + +Upstream-Status: Pending +Index: grub-1.99/grub-core/gnulib/stdio.in.h +=================================================================== +--- grub-1.99.orig/grub-core/gnulib/stdio.in.h 2010-12-01 06:45:43.000000000 -0800 ++++ grub-1.99/grub-core/gnulib/stdio.in.h 2012-07-04 12:25:02.057099107 -0700 +@@ -140,8 +140,10 @@ + /* It is very rare that the developer ever has full control of stdin, + so any use of gets warrants an unconditional warning. Assume it is + always declared, since it is required by C89. */ ++#if defined gets + #undef gets + _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); ++#endif + + #if @GNULIB_FOPEN@ + # if @REPLACE_FOPEN@ -- cgit v1.2.3