grub-efi-native: fix build on modern distributions without gets()

Submitted by Koen Kooi on April 18, 2013, 3:10 p.m.

Details

Message ID 1366297820-5000-1-git-send-email-koen@dominion.thruhere.net
State Accepted
Commit 261e377b08388a288ee521a3629877b89e18e42b
Headers show

Commit Message

Koen Kooi April 18, 2013, 3:10 p.m.
O irony: the grub2/gnulib nag macro that says "don't use gets, use fgets" breaks the build if you're using a recent (e)glibc release that has gets removed.

Fedora already #if 0's the check in grub, so I stole their patch.

Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
---
 .../grub-2.00-ignore-gnulib-gets-stupidity.patch   | 28 ++++++++++++++++++++++
 meta/recipes-bsp/grub/grub-efi-native_2.00.bb      |  3 ++-
 2 files changed, 30 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-bsp/grub/files/grub-2.00-ignore-gnulib-gets-stupidity.patch

Patch hide | download patch | download mbox

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
new file mode 100644
index 0000000..70f6001
--- /dev/null
+++ b/meta/recipes-bsp/grub/files/grub-2.00-ignore-gnulib-gets-stupidity.patch
@@ -0,0 +1,28 @@ 
+From f66d54b934710f54999debb72e8b7c620edece1d Mon Sep 17 00:00:00 2001
+From: Peter Jones <pjones@redhat.com>
+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/grub-efi-native_2.00.bb b/meta/recipes-bsp/grub/grub-efi-native_2.00.bb
index 6f8ba8e..2a5dad7 100644
--- a/meta/recipes-bsp/grub/grub-efi-native_2.00.bb
+++ b/meta/recipes-bsp/grub/grub-efi-native_2.00.bb
@@ -16,7 +16,7 @@  LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
 # FIXME: We should be able to optionally drop freetype as a dependency
 DEPENDS = "autogen-native"
 RDEPENDS_${PN} = "diffutils freetype"
-PR = "r1"
+PR = "r2"
 
 # Native packages do not normally rebuild when the target changes.
 # Ensure this is built once per HOST-TARGET pair.
@@ -28,6 +28,7 @@  SRC_URI = "ftp://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \
            file://grub-2.00-disable-help2man.patch \
            file://check-if-liblzma-is-disabled.patch \
 	   file://grub-no-unused-result.patch \
+	   file://grub-2.00-ignore-gnulib-gets-stupidity.patch \
           "
 SRC_URI[md5sum] = "e927540b6eda8b024fb0391eeaa4091c"
 SRC_URI[sha256sum] = "65b39a0558f8c802209c574f4d02ca263a804e8a564bc6caf1cd0fd3b3cc11e3"

Comments

Darren Hart May 1, 2013, 8:39 p.m.
Hi Koen,

Please Cc recipe authors.

On 04/18/2013 08:10 AM, Koen Kooi wrote:
> O irony: the grub2/gnulib nag macro that says "don't use gets, use fgets" breaks the build if you're using a recent (e)glibc release that has gets removed.

Please ensure your git log wraps at around 72 chars to ensure it isn't
truncated in the git log output in a typical terminal.

> 
> Fedora already #if 0's the check in grub, so I stole their patch.

Perfect :-)

> 
> Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>


More below...

> ---
>  .../grub-2.00-ignore-gnulib-gets-stupidity.patch   | 28 ++++++++++++++++++++++
>  meta/recipes-bsp/grub/grub-efi-native_2.00.bb      |  3 ++-
>  2 files changed, 30 insertions(+), 1 deletion(-)
>  create mode 100644 meta/recipes-bsp/grub/files/grub-2.00-ignore-gnulib-gets-stupidity.patch
> 
> 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
> new file mode 100644
> index 0000000..70f6001
> --- /dev/null
> +++ b/meta/recipes-bsp/grub/files/grub-2.00-ignore-gnulib-gets-stupidity.patch
> @@ -0,0 +1,28 @@
> +From f66d54b934710f54999debb72e8b7c620edece1d Mon Sep 17 00:00:00 2001
> +From: Peter Jones <pjones@redhat.com>
> +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/grub-efi-native_2.00.bb b/meta/recipes-bsp/grub/grub-efi-native_2.00.bb
> index 6f8ba8e..2a5dad7 100644
> --- a/meta/recipes-bsp/grub/grub-efi-native_2.00.bb
> +++ b/meta/recipes-bsp/grub/grub-efi-native_2.00.bb
> @@ -16,7 +16,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
>  # FIXME: We should be able to optionally drop freetype as a dependency
>  DEPENDS = "autogen-native"
>  RDEPENDS_${PN} = "diffutils freetype"
> -PR = "r1"
> +PR = "r2"
>  
>  # Native packages do not normally rebuild when the target changes.
>  # Ensure this is built once per HOST-TARGET pair.
> @@ -28,6 +28,7 @@ SRC_URI = "ftp://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \
>             file://grub-2.00-disable-help2man.patch \
>             file://check-if-liblzma-is-disabled.patch \
>  	   file://grub-no-unused-result.patch \
> +	   file://grub-2.00-ignore-gnulib-gets-stupidity.patch \
            "

Please be consistent with whitespace above. I prefer TABs be used
exclusively for indentation with spaces used for alignment. The above is
purely alignment. However, others prefer TABs for as much of either as
possible. Either is fine, but it must be consistent throughout the file.
In this case, please use spaces.


>  SRC_URI[md5sum] = "e927540b6eda8b024fb0391eeaa4091c"
>  SRC_URI[sha256sum] = "65b39a0558f8c802209c574f4d02ca263a804e8a564bc6caf1cd0fd3b3cc11e3"
> 

Thanks,
Koen Kooi May 2, 2013, 6:07 a.m.
Op 1 mei 2013, om 22:39 heeft Darren Hart <dvhart@linux.intel.com> het volgende geschreven:

>> # Native packages do not normally rebuild when the target changes.
>> # Ensure this is built once per HOST-TARGET pair.
>> @@ -28,6 +28,7 @@ SRC_URI = "ftp://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \
>>            file://grub-2.00-disable-help2man.patch \
>>            file://check-if-liblzma-is-disabled.patch \
>> 	   file://grub-no-unused-result.patch \
>> +	   file://grub-2.00-ignore-gnulib-gets-stupidity.patch \
>            "
> 
> Please be consistent with whitespace above. I prefer TABs be used
> exclusively for indentation with spaces used for alignment. The above is
> purely alignment. However, others prefer TABs for as much of either as
> possible. Either is fine, but it must be consistent throughout the file.
> In this case, please use spaces.

I only use tabs in shell methods for oe-core, I just copied the indentation of the line above, which mixes tabs and spaces.

regards,

Koen