aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/eglibc/eglibc-2.17/tzselect-sh.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-core/eglibc/eglibc-2.17/tzselect-sh.patch')
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.17/tzselect-sh.patch156
1 files changed, 156 insertions, 0 deletions
diff --git a/meta/recipes-core/eglibc/eglibc-2.17/tzselect-sh.patch b/meta/recipes-core/eglibc/eglibc-2.17/tzselect-sh.patch
new file mode 100644
index 0000000000..e9a3691bbb
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-2.17/tzselect-sh.patch
@@ -0,0 +1,156 @@
+tzselect: eliminate ksh-dependency
+
+This is an adapted version of a patch originally
+by Peter Seebach <peter.seebach@windriver.com> found here:
+http://www.eglibc.org/archives/patches/msg00671.html
+
+Upstream-Status: Pending
+
+Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
+
+Index: libc/timezone/tzselect.ksh
+===================================================================
+--- libc.orig/timezone/tzselect.ksh 2012-11-17 09:50:14.000000000 -0800
++++ libc/timezone/tzselect.ksh 2013-01-03 22:46:26.423844259 -0800
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+
+ PKGVERSION='(tzcode) '
+ TZVERSION=see_Makefile
+@@ -11,23 +11,80 @@
+
+ # Porting notes:
+ #
+-# This script requires a Posix-like shell with the extension of a
+-# 'select' statement. The 'select' statement was introduced in the
+-# Korn shell and is available in Bash and other shell implementations.
+-# If your host lacks both Bash and the Korn shell, you can get their
+-# source from one of these locations:
++# func_select allows this script to run on shells (such as busybox ash)
++# which lack the ksh "select" builtin.
+ #
+-# Bash <http://www.gnu.org/software/bash/bash.html>
+-# Korn Shell <http://www.kornshell.com/>
+-# Public Domain Korn Shell <http://www.cs.mun.ca/~michael/pdksh/>
+-#
+-# This script also uses several features of modern awk programs.
++# This script uses several features of modern awk programs.
+ # If your host lacks awk, or has an old awk that does not conform to Posix,
+ # you can use either of the following free programs instead:
+ #
+ # Gawk (GNU awk) <http://www.gnu.org/software/gawk/>
+ # mawk <http://invisible-island.net/mawk/>
+
++# Implement ksh-style select in POSIX shell
++
++# We need a mostly-portable echo-n.
++case `echo -n "foo\c"` in
++*n*c*) func_echo_n() { echo "$*"; } ;;
++*n*) func_echo_n() { echo "$*\c"; } ;;
++*) func_echo_n() { echo -n "$*"; } ;;
++esac
++
++# Synopsis: Replace "select foo in list" with "while func_select foo in list"
++# and this works just like ksh, so far as I know.
++func_select () {
++ func_select_args=0
++ if expr "$1" : "[_a-zA-Z][_a-zA-Z0-9]*$" > /dev/null; then
++ func_select_var=$1
++ else
++ echo >&2 "func_select: '$1' is not a valid variable name."
++ return 1
++ fi
++ shift 1
++ case $1 in
++ in) shift 1;;
++ *) echo >&2 "func_select: usage: func_select var in ... (you must provide
++arguments)"; return 1;;
++ esac
++ case $# in
++ 0) echo >&2 "func_select: usage: func_select var in ..."; return 1;;
++ esac
++ for func_select_arg
++ do
++ func_select_args=`expr $func_select_args + 1`
++ eval func_select_a_$func_select_args=\$func_select_arg
++ done
++ REPLY=""
++ while :
++ do
++ if test -z "$REPLY"; then
++ func_select_i=1
++ while test $func_select_i -le $func_select_args
++ do
++ eval echo "\"\$func_select_i) \$func_select_a_$func_select_i\""
++ func_select_i=`expr $func_select_i + 1`
++ done
++ fi
++ func_echo_n "${PS3-#? }" >&2
++ if read REPLY; then
++ if test -n "${REPLY}"; then
++ if expr "$REPLY" : '[1-9][0-9]*$' > /dev/null; then
++ if test "$REPLY" -ge 1 && test "$REPLY" -le $func_select_args; then
++ eval $func_select_var=\$func_select_a_$REPLY
++ else
++ eval $func_select_var=
++ fi
++ else
++ eval $func_select_var=
++ fi
++ return 0
++ fi
++ else
++ eval $func_select_var=
++ return 1
++ fi
++ done
++}
+
+ # Specify default values for environment variables if they are unset.
+ : ${AWK=awk}
+@@ -72,7 +129,7 @@
+
+
+ # Work around a bug in bash 1.14.7 and earlier, where $PS3 is sent to stdout.
+-case $(echo 1 | (select x in x; do break; done) 2>/dev/null) in
++case $(echo 1 | (while func_select x in x; do break; done) 2>/dev/null) in
+ ?*) PS3=
+ esac
+
+@@ -92,7 +149,7 @@
+
+ echo >&2 'Please select a continent or ocean.'
+
+- select continent in \
++ while func_select continent in \
+ Africa \
+ Americas \
+ Antarctica \
+@@ -172,7 +229,7 @@
+ case $countries in
+ *"$newline"*)
+ echo >&2 'Please select a country.'
+- select country in $countries
++ while func_select country in $countries
+ do
+ case $country in
+ '') echo >&2 'Please enter a number in range.';;
+@@ -211,7 +268,7 @@
+ *"$newline"*)
+ echo >&2 'Please select one of the following' \
+ 'time zone regions.'
+- select region in $regions
++ while func_select region in $regions
+ do
+ case $region in
+ '') echo >&2 'Please enter a number in range.';;
+@@ -288,7 +345,7 @@
+ echo >&2 "Is the above information OK?"
+
+ ok=
+- select ok in Yes No
++ while func_select ok in Yes No
+ do
+ case $ok in
+ '') echo >&2 'Please enter 1 for Yes, or 2 for No.';;