gettext,m4,augeas,gnutls: Account for removal of gets in eglibc 2.16

These recipes use gnulib which needs this change to use gets
when its defined and not otherwise. Until that change goes into
gnulib and then all these package upgrade gnulib in their sourcebase
we patch them

(From OE-Core rev: 3148460575b65cb681065e5850b8afb96056d712)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Khem Raj 2012-07-03 23:53:16 -07:00 committed by Richard Purdie
parent 734e1a9197
commit 19875a0f71
8 changed files with 151 additions and 5 deletions

View File

@ -0,0 +1,58 @@
eglibc 2.16 has removed gets so we need to check for it
being there before using it.
From glibc stdio.h
The function has been officially removed in ISO C11. This opportunity
is used to also remove it from the GNU feature list. It is now only
available when explicitly using an old ISO C, Unix, or POSIX standard.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upstream-Status: Pending
Index: gettext-0.18.1.1/gettext-runtime/gnulib-lib/stdio.in.h
===================================================================
--- gettext-0.18.1.1.orig/gettext-runtime/gnulib-lib/stdio.in.h 2010-05-17 12:56:12.000000000 -0700
+++ gettext-0.18.1.1/gettext-runtime/gnulib-lib/stdio.in.h 2012-07-02 22:42:21.292223316 -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@
Index: gettext-0.18.1.1/gettext-tools/gnulib-lib/stdio.in.h
===================================================================
--- gettext-0.18.1.1.orig/gettext-tools/gnulib-lib/stdio.in.h 2010-05-24 02:42:46.000000000 -0700
+++ gettext-0.18.1.1/gettext-tools/gnulib-lib/stdio.in.h 2012-07-02 23:02:33.476281979 -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@
Index: gettext-0.18.1.1/gettext-tools/libgettextpo/stdio.in.h
===================================================================
--- gettext-0.18.1.1.orig/gettext-tools/libgettextpo/stdio.in.h 2010-05-17 12:58:03.000000000 -0700
+++ gettext-0.18.1.1/gettext-tools/libgettextpo/stdio.in.h 2012-07-02 23:01:57.440280253 -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@

View File

@ -5,7 +5,7 @@ SECTION = "libs"
LICENSE = "GPLv3+ & LGPL-2.1+"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
PR = "r14"
PR = "r15"
DEPENDS = "libxml2-native gettext-native virtual/libiconv ncurses expat"
DEPENDS_virtclass-native = "libxml2-native gettext-minimal-native"
PROVIDES = "virtual/libintl virtual/gettext"
@ -13,6 +13,7 @@ PROVIDES_virtclass-native = "virtual/gettext-native"
RCONFLICTS_${PN} = "proxy-libintl"
SRC_URI = "${GNU_MIRROR}/gettext/gettext-${PV}.tar.gz \
file://parallel.patch \
file://remove_gets.patch \
"
SRC_URI_append_libc-uclibc = " file://wchar-uclibc.patch \

View File

@ -5,8 +5,10 @@ LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504\
file://examples/COPYING;md5=fbc986d45b3dae6725c29870dd6b669d"
PR = "r3"
SRC_URI += "file://ac_config_links.patch"
PR = "r4"
SRC_URI += "file://ac_config_links.patch \
file://remove-gets.patch \
"
SRC_URI[md5sum] = "a5dfb4f2b7370e9d34293d23fd09b280"
SRC_URI[sha256sum] = "e9176a35bb13a1b08482359aa554ee8072794f58f00e4827bf0e06b570c827da"

View File

@ -0,0 +1,21 @@
eglibc has remove gets starting 2.16
therefore check for its being there before
undefining it.
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Index: m4-1.4.16/lib/stdio.in.h
===================================================================
--- m4-1.4.16.orig/lib/stdio.in.h 2011-03-01 08:39:29.000000000 -0800
+++ m4-1.4.16/lib/stdio.in.h 2012-07-03 08:32:08.145935928 -0700
@@ -161,8 +161,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@

View File

@ -0,0 +1,20 @@
eglibc 2.16 has remove gets so check for it to be there before using it
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upstream-Status: Pending
Index: augeas-0.10.0/gnulib/lib/stdio.in.h
===================================================================
--- augeas-0.10.0.orig/gnulib/lib/stdio.in.h 2011-03-03 17:07:59.000000000 -0800
+++ augeas-0.10.0/gnulib/lib/stdio.in.h 2012-07-03 19:46:42.871894833 -0700
@@ -161,8 +161,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@

View File

@ -1,6 +1,8 @@
require augeas.inc
PR = "r2"
SRC_URI += "file://remove-gets.patch \
"
PR = "r3"
SRC_URI[md5sum] = "fe1834e90a066c3208ac0214622c7352"
SRC_URI[sha256sum] = "ec111af06186216930176ebe5ecccdf7bf528528aee9acde1d5d70088484afca"

View File

@ -0,0 +1,41 @@
eglibc 2.16 has removed gets completely
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upstream-Status: Pending
Index: gnutls-2.12.20/gl/stdio.in.h
===================================================================
--- gnutls-2.12.20.orig/gl/stdio.in.h 2012-03-01 07:47:48.000000000 -0800
+++ gnutls-2.12.20/gl/stdio.in.h 2012-07-03 18:17:57.191637189 -0700
@@ -710,11 +710,13 @@
_GL_CXXALIAS_SYS (gets, char *, (char *s));
# undef gets
# endif
+# if defined gets
_GL_CXXALIASWARN (gets);
/* 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. */
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+# endif
#endif
Index: gnutls-2.12.20/lib/gl/stdio.in.h
===================================================================
--- gnutls-2.12.20.orig/lib/gl/stdio.in.h 2012-03-01 07:53:13.000000000 -0800
+++ gnutls-2.12.20/lib/gl/stdio.in.h 2012-07-03 18:18:56.351639640 -0700
@@ -710,11 +710,13 @@
_GL_CXXALIAS_SYS (gets, char *, (char *s));
# undef gets
# endif
+# if defined gets
_GL_CXXALIASWARN (gets);
/* 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. */
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+# endif
#endif

View File

@ -1,11 +1,12 @@
require gnutls.inc
PR = "${INC_PR}.0"
PR = "${INC_PR}.2"
SRC_URI += "file://gnutls-openssl.patch \
file://correct_rpl_gettimeofday_signature.patch \
file://configure-fix.patch \
${@['', 'file://fix-gettext-version.patch'][bb.data.inherits_class('native', d) or (not ((d.getVar("INCOMPATIBLE_LICENSE", True) or "").find("GPLv3") != -1))]} \
file://remove-gets.patch \
"
SRC_URI[md5sum] = "f1dea97da5d4dcdbc675720c9aad9ee3"