summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2021-12-09 17:06:13 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-12-12 11:27:24 +0000
commitc9351aee3f9b1016c1697178a53664eebebbcf84 (patch)
treee5c1ed258cc2e2a3e601fcacf196056ea0440609
parent63f1e59f9f62eb39945aedc62ea01e0c29caea77 (diff)
downloadpoky-c9351aee3f9b1016c1697178a53664eebebbcf84.tar.gz
glibc: Redo tzselect bash dependency problem
New patch adds a knob to select needed shell interpreter for tzselect script, which then we excercise via EXTRA_OEMAKE (From OE-Core rev: 28adfbbcf42d15eabdd7fe3a5dea486bd5049f09) Signed-off-by: Khem Raj <raj.khem@gmail.com> Cc: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-core/glibc/cross-localedef-native_2.34.bb7
-rw-r--r--meta/recipes-core/glibc/glibc.inc4
-rw-r--r--meta/recipes-core/glibc/glibc/0001-Make-shell-interpreter-overridable-in-tzselect.ksh.patch50
-rw-r--r--meta/recipes-core/glibc/glibc/0017-timezone-re-written-tzselect-as-posix-sh.patch34
-rw-r--r--meta/recipes-core/glibc/glibc_2.34.bb2
5 files changed, 61 insertions, 36 deletions
diff --git a/meta/recipes-core/glibc/cross-localedef-native_2.34.bb b/meta/recipes-core/glibc/cross-localedef-native_2.34.bb
index 482e53cf5d..c37814ee24 100644
--- a/meta/recipes-core/glibc/cross-localedef-native_2.34.bb
+++ b/meta/recipes-core/glibc/cross-localedef-native_2.34.bb
@@ -25,13 +25,13 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
25 file://0001-localedef-Add-hardlink-resolver-from-util-linux.patch \ 25 file://0001-localedef-Add-hardlink-resolver-from-util-linux.patch \
26 file://0002-localedef-fix-ups-hardlink-to-make-it-compile.patch \ 26 file://0002-localedef-fix-ups-hardlink-to-make-it-compile.patch \
27 \ 27 \
28 file://0017-timezone-re-written-tzselect-as-posix-sh.patch \
29 file://0018-Remove-bash-dependency-for-nscd-init-script.patch \ 28 file://0018-Remove-bash-dependency-for-nscd-init-script.patch \
30 file://0019-eglibc-Cross-building-and-testing-instructions.patch \ 29 file://0019-eglibc-Cross-building-and-testing-instructions.patch \
31 file://0020-eglibc-Help-bootstrap-cross-toolchain.patch \ 30 file://0020-eglibc-Help-bootstrap-cross-toolchain.patch \
32 file://0021-eglibc-Resolve-__fpscr_values-on-SH4.patch \ 31 file://0021-eglibc-Resolve-__fpscr_values-on-SH4.patch \
33 file://0022-eglibc-Forward-port-cross-locale-generation-support.patch \ 32 file://0022-eglibc-Forward-port-cross-locale-generation-support.patch \
34 file://0024-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch \ 33 file://0024-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch \
34 file://0001-Make-shell-interpreter-overridable-in-tzselect.ksh.patch \
35" 35"
36# Makes for a rather long rev (22 characters), but... 36# Makes for a rather long rev (22 characters), but...
37# 37#
@@ -40,6 +40,11 @@ SRCREV_FORMAT = "glibc_localedef"
40S = "${WORKDIR}/git" 40S = "${WORKDIR}/git"
41 41
42EXTRA_OECONF = "--with-glibc=${S}" 42EXTRA_OECONF = "--with-glibc=${S}"
43
44# We do not need bash to run tzselect script, the default is to use
45# bash but it can be configured by setting KSHELL Makefile variable
46EXTRA_OEMAKE += "KSHELL=/bin/sh"
47
43CFLAGS += "-fgnu89-inline -std=gnu99 -DIS_IN\(x\)='0'" 48CFLAGS += "-fgnu89-inline -std=gnu99 -DIS_IN\(x\)='0'"
44 49
45do_install() { 50do_install() {
diff --git a/meta/recipes-core/glibc/glibc.inc b/meta/recipes-core/glibc/glibc.inc
index 80a3e0b493..fdd241d973 100644
--- a/meta/recipes-core/glibc/glibc.inc
+++ b/meta/recipes-core/glibc/glibc.inc
@@ -41,6 +41,10 @@ PARALLEL_MAKE = ""
41# ensure make uses /bin/bash 41# ensure make uses /bin/bash
42EXTRA_OEMAKE += "SHELL=/bin/bash" 42EXTRA_OEMAKE += "SHELL=/bin/bash"
43 43
44# We do not need bash to run tzselect script, the default is to use
45# bash but it can be configured by setting KSHELL Makefile variable
46EXTRA_OEMAKE += "KSHELL=/bin/sh"
47
44do_configure:prepend() { 48do_configure:prepend() {
45 sed -e "s#/bin/bash#/bin/sh#" -i ${S}/elf/ldd.bash.in 49 sed -e "s#/bin/bash#/bin/sh#" -i ${S}/elf/ldd.bash.in
46} 50}
diff --git a/meta/recipes-core/glibc/glibc/0001-Make-shell-interpreter-overridable-in-tzselect.ksh.patch b/meta/recipes-core/glibc/glibc/0001-Make-shell-interpreter-overridable-in-tzselect.ksh.patch
new file mode 100644
index 0000000000..0480c47b49
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc/0001-Make-shell-interpreter-overridable-in-tzselect.ksh.patch
@@ -0,0 +1,50 @@
1From 76d170fbbfd07b26a0288212201e5d15558db36f Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 9 Dec 2021 15:14:42 -0800
4Subject: [PATCH] Make shell interpreter overridable in tzselect.ksh
5
6define new macro called KSHELL which can be used to define default shell
7use Bash by default
8
9Upstream-Status: Submitted [https://patchwork.sourceware.org/project/glibc/patch/20211209234015.1554552-1-raj.khem@gmail.com/]
10Signed-off-by: Khem Raj <raj.khem@gmail.com>
11---
12 Makeconfig | 9 +++++++++
13 timezone/Makefile | 1 +
14 2 files changed, 10 insertions(+)
15
16diff --git a/Makeconfig b/Makeconfig
17index 3fa2f13003..a1ea5d5571 100644
18--- a/Makeconfig
19+++ b/Makeconfig
20@@ -292,6 +292,15 @@ ifndef sysincludedir
21 sysincludedir = /usr/include
22 endif
23
24+# The full path name of a Posix-compliant shell, preferably one that supports
25+# the Korn shell's 'select' statement as an extension.
26+# These days, Bash is the most popular.
27+# It should be OK to set this to /bin/sh, on platforms where /bin/sh
28+# lacks 'select' or doesn't completely conform to Posix, but /bin/bash
29+# is typically nicer if it works.
30+ifndef KSHELL
31+KSHELL = /bin/bash
32+endif
33
34 # Commands to install files.
35 ifndef INSTALL_DATA
36diff --git a/timezone/Makefile b/timezone/Makefile
37index c624a189b3..dc8f5277de 100644
38--- a/timezone/Makefile
39+++ b/timezone/Makefile
40@@ -127,6 +127,7 @@ $(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make
41 -e '/TZVERSION=/s|see_Makefile|"$(version)"|' \
42 -e '/PKGVERSION=/s|=.*|="$(PKGVERSION)"|' \
43 -e '/REPORT_BUGS_TO=/s|=.*|="$(REPORT_BUGS_TO)"|' \
44+ -e 's|#!/bin/bash|#!$(KSHELL)|g' \
45 < $< > $@.new
46 chmod 555 $@.new
47 mv -f $@.new $@
48--
492.34.1
50
diff --git a/meta/recipes-core/glibc/glibc/0017-timezone-re-written-tzselect-as-posix-sh.patch b/meta/recipes-core/glibc/glibc/0017-timezone-re-written-tzselect-as-posix-sh.patch
deleted file mode 100644
index 100d08599c..0000000000
--- a/meta/recipes-core/glibc/glibc/0017-timezone-re-written-tzselect-as-posix-sh.patch
+++ /dev/null
@@ -1,34 +0,0 @@
1From 2731fa0c7463cd160361a8ac92f3bd7f984d953d Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 18 Mar 2015 00:33:03 +0000
4Subject: [PATCH] timezone: re-written tzselect as posix sh
5
6To avoid the bash dependency.
7
8Upstream-Status: Pending
9
10Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12---
13 timezone/tzselect.ksh | 4 ++--
14 1 file changed, 2 insertions(+), 2 deletions(-)
15
16diff --git a/timezone/tzselect.ksh b/timezone/tzselect.ksh
17index 18fce27e24..7705df83d7 100755
18--- a/timezone/tzselect.ksh
19+++ b/timezone/tzselect.ksh
20@@ -1,4 +1,4 @@
21-#!/bin/bash
22+#!/bin/sh
23 # Ask the user about the time zone, and output the resulting TZ value to stdout.
24 # Interact with the user via stderr and stdin.
25
26@@ -34,7 +34,7 @@ REPORT_BUGS_TO=tz@iana.org
27
28 # Specify default values for environment variables if they are unset.
29 : ${AWK=awk}
30-: ${TZDIR=`pwd`}
31+: ${TZDIR=$(pwd)}
32
33 # Output one argument as-is to standard output.
34 # Safer than 'echo', which can mishandle '\' or leading '-'.
diff --git a/meta/recipes-core/glibc/glibc_2.34.bb b/meta/recipes-core/glibc/glibc_2.34.bb
index cdce2c4112..27a5d5fa2b 100644
--- a/meta/recipes-core/glibc/glibc_2.34.bb
+++ b/meta/recipes-core/glibc/glibc_2.34.bb
@@ -36,7 +36,6 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
36 ${NATIVESDKFIXES} \ 36 ${NATIVESDKFIXES} \
37 file://0015-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch \ 37 file://0015-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch \
38 file://0016-yes-within-the-path-sets-wrong-config-variables.patch \ 38 file://0016-yes-within-the-path-sets-wrong-config-variables.patch \
39 file://0017-timezone-re-written-tzselect-as-posix-sh.patch \
40 file://0018-Remove-bash-dependency-for-nscd-init-script.patch \ 39 file://0018-Remove-bash-dependency-for-nscd-init-script.patch \
41 file://0019-eglibc-Cross-building-and-testing-instructions.patch \ 40 file://0019-eglibc-Cross-building-and-testing-instructions.patch \
42 file://0020-eglibc-Help-bootstrap-cross-toolchain.patch \ 41 file://0020-eglibc-Help-bootstrap-cross-toolchain.patch \
@@ -53,6 +52,7 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
53 file://0002-CVE-2021-38604.patch \ 52 file://0002-CVE-2021-38604.patch \
54 file://0001-fix-create-thread-failed-in-unprivileged-process-BZ-.patch \ 53 file://0001-fix-create-thread-failed-in-unprivileged-process-BZ-.patch \
55 file://CVE-2021-43396.patch \ 54 file://CVE-2021-43396.patch \
55 file://0001-Make-shell-interpreter-overridable-in-tzselect.ksh.patch \
56 " 56 "
57S = "${WORKDIR}/git" 57S = "${WORKDIR}/git"
58B = "${WORKDIR}/build-${TARGET_SYS}" 58B = "${WORKDIR}/build-${TARGET_SYS}"