Initial commit
This commit is contained in:
@@ -0,0 +1,131 @@
|
||||
SUMMARY = "An sh-compatible command language interpreter"
|
||||
HOMEPAGE = "http://tiswww.case.edu/php/chet/bash/bashtop.html"
|
||||
DESCRIPTION = "Bash is the GNU Project's Bourne Again SHell, a complete implementation of the IEEE POSIX and Open Group shell specification with interactive command line editing, job control on architectures that support it, csh-like features such as history substitution and brace expansion, and a slew of other features."
|
||||
SECTION = "base/shell"
|
||||
|
||||
DEPENDS = "ncurses bison-native virtual/libiconv"
|
||||
|
||||
inherit autotools gettext texinfo update-alternatives ptest
|
||||
|
||||
EXTRA_AUTORECONF += "--exclude=autoheader"
|
||||
EXTRA_OECONF = "--enable-job-control --without-bash-malloc bash_cv_wexitstatus_offset=8"
|
||||
|
||||
# If NON_INTERACTIVE_LOGIN_SHELLS is defined, all login shells read the
|
||||
# startup files, even if they are not interactive.
|
||||
# This is what other major distros do. And this is what we wanted. See bug#5359 and bug#7137.
|
||||
CFLAGS += "-DNON_INTERACTIVE_LOGIN_SHELLS"
|
||||
|
||||
# This can vary depending upon the host
|
||||
CFLAGS += "-DHEREDOC_PIPESIZE=65536"
|
||||
|
||||
# Disable bracketed paste mode by default (enabled by default in bash 5.1). It
|
||||
# causes a lot of garbage in non-interactive shells
|
||||
CFLAGS += "-DBRACKETED_PASTE_DEFAULT=0"
|
||||
|
||||
ALTERNATIVE:${PN} = "bash sh"
|
||||
ALTERNATIVE_LINK_NAME[bash] = "${base_bindir}/bash"
|
||||
ALTERNATIVE_TARGET[bash] = "${base_bindir}/bash"
|
||||
ALTERNATIVE_LINK_NAME[sh] = "${base_bindir}/sh"
|
||||
ALTERNATIVE_TARGET[sh] = "${base_bindir}/bash.${BPN}"
|
||||
ALTERNATIVE_PRIORITY = "100"
|
||||
|
||||
RDEPENDS:${PN} += "base-files"
|
||||
RDEPENDS:${PN}:class-nativesdk = ""
|
||||
RDEPENDS:${PN}-ptest += "make coreutils perl sed shadow util-linux-setpriv"
|
||||
|
||||
RDEPENDS:${PN}-ptest:append:libc-glibc = " \
|
||||
glibc-gconv-big5hkscs \
|
||||
glibc-gconv-iso8859-1 \
|
||||
glibc-utils \
|
||||
locale-base-de-de \
|
||||
locale-base-en-us \
|
||||
locale-base-fr-fr \
|
||||
locale-base-fr-fr.iso-8859-1 \
|
||||
locale-base-zh-hk.big5-hkscs \
|
||||
"
|
||||
|
||||
CACHED_CONFIGUREVARS += "headersdir=${includedir}/${PN}"
|
||||
|
||||
do_configure:prepend () {
|
||||
if [ ! -e ${S}/acinclude.m4 ]; then
|
||||
cat ${S}/aclocal.m4 > ${S}/acinclude.m4
|
||||
fi
|
||||
}
|
||||
|
||||
do_compile:prepend() {
|
||||
# Remove any leftover .build files. This ensures that bash always has the
|
||||
# same version number and keeps builds reproducible
|
||||
rm -f ${B}/.build
|
||||
}
|
||||
|
||||
do_compile_ptest () {
|
||||
oe_runmake buildtest
|
||||
}
|
||||
|
||||
do_install:prepend () {
|
||||
# Ensure determinism as this counter increases for each make call
|
||||
rm -f ${B}/.build
|
||||
}
|
||||
|
||||
do_install:append () {
|
||||
# Move /usr/bin/bash to /bin/bash, if need
|
||||
if [ "${base_bindir}" != "${bindir}" ]; then
|
||||
mkdir -p ${D}${base_bindir}
|
||||
mv ${D}${bindir}/bash ${D}${base_bindir}
|
||||
fi
|
||||
}
|
||||
do_install:append:class-target () {
|
||||
# Clean buildhost references in bashbug
|
||||
sed -i -e "s,--sysroot=${STAGING_DIR_TARGET},,g" \
|
||||
-e "s,-I${WORKDIR}/\S* ,,g" \
|
||||
-e 's|${DEBUG_PREFIX_MAP}||g' \
|
||||
${D}${bindir}/bashbug
|
||||
|
||||
# Clean buildhost references in bash.pc
|
||||
sed -i -e "s,--sysroot=${STAGING_DIR_TARGET},,g" \
|
||||
${D}${libdir}/pkgconfig/bash.pc
|
||||
|
||||
# Clean buildhost references in Makefile.inc
|
||||
sed -i -e "s,--sysroot=${STAGING_DIR_TARGET},,g" \
|
||||
-e 's|${DEBUG_PREFIX_MAP}||g' \
|
||||
-e 's:${HOSTTOOLS_DIR}/::g' \
|
||||
-e 's:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \
|
||||
${D}${libdir}/bash/Makefile.inc
|
||||
}
|
||||
|
||||
do_install_ptest () {
|
||||
make INSTALL_TEST_DIR=${D}${PTEST_PATH}/tests install-test
|
||||
cp ${B}/Makefile ${D}${PTEST_PATH}
|
||||
cp ${B}/config.h ${D}${PTEST_PATH}
|
||||
cp ${B}/version.h ${D}${PTEST_PATH}
|
||||
cp ${S}/y.tab.[ch] ${D}${PTEST_PATH}
|
||||
install -D ${WORKDIR}/run-bash-ptests ${D}${PTEST_PATH}/run-bash-ptests
|
||||
sed -i -e 's/^Makefile/_Makefile/' -e "s,--sysroot=${STAGING_DIR_TARGET},,g" \
|
||||
-e 's|${DEBUG_PREFIX_MAP}||g' \
|
||||
-e "s,${S},,g" -e "s,${B},,g" -e "s,${STAGING_DIR_NATIVE},,g" \
|
||||
-e 's:${HOSTTOOLS_DIR}/::g' \
|
||||
-e 's:${UNINATIVE_LOADER}:${base_bindir}/false:g' \
|
||||
${D}${PTEST_PATH}/Makefile
|
||||
}
|
||||
# The uninative loader is different on i386 & x86_64 hosts. Since it is only
|
||||
# being replaced with /bin/false anyway, it doesn't need to be part of the task
|
||||
# hash
|
||||
do_install_ptest[vardepsexclude] += "UNINATIVE_LOADER"
|
||||
|
||||
pkg_postinst:${PN} () {
|
||||
grep -q "^${base_bindir}/bash$" $D${sysconfdir}/shells || echo ${base_bindir}/bash >> $D${sysconfdir}/shells
|
||||
}
|
||||
|
||||
pkg_postrm:${PN} () {
|
||||
printf "$(grep -v "^${base_bindir}/bash$" $D${sysconfdir}/shells)\n" > $D${sysconfdir}/shells
|
||||
}
|
||||
|
||||
PACKAGES += "${PN}-bashbug"
|
||||
FILES:${PN} = "${bindir}/bash ${base_bindir}/bash.bash"
|
||||
FILES:${PN}-bashbug = "${bindir}/bashbug"
|
||||
|
||||
PACKAGE_BEFORE_PN += "${PN}-loadable"
|
||||
RDEPENDS:${PN}-loadable += "${PN}"
|
||||
FILES:${PN}-loadable += "${libdir}/bash/*"
|
||||
|
||||
RPROVIDES:${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', '/bin/sh /bin/bash', '', d)}"
|
||||
@@ -0,0 +1,60 @@
|
||||
From 318b762837c2ad25319caeaf0320eff613b64daf Mon Sep 17 00:00:00 2001
|
||||
From: Anders Roxell <anders.roxell@enea.com>
|
||||
Date: Wed, 19 Dec 2012 17:18:31 +0100
|
||||
Subject: [PATCH] Add 'ptest' target to Makefile, to run tests without checking
|
||||
dependencies.
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Anders Roxell <anders.roxell@enea.com>
|
||||
|
||||
Rebase to 5.0
|
||||
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
|
||||
---
|
||||
Makefile.in | 24 +++++++++++++++++++-----
|
||||
1 file changed, 19 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/Makefile.in b/Makefile.in
|
||||
index bc97049..937ce39 100644
|
||||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -943,20 +943,34 @@ maybe-clean:
|
||||
fi
|
||||
|
||||
recho$(EXEEXT): $(SUPPORT_SRC)recho.c
|
||||
- @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) ${LDFLAGS_FOR_BUILD} -o $@ $(SUPPORT_SRC)recho.c ${LIBS_FOR_BUILD}
|
||||
+ @$(CC) $(CCFLAGS) ${LDFLAGS} -o $@ $<
|
||||
|
||||
zecho$(EXEEXT): $(SUPPORT_SRC)zecho.c
|
||||
- @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) ${LDFLAGS_FOR_BUILD} -o $@ $(SUPPORT_SRC)zecho.c ${LIBS_FOR_BUILD}
|
||||
+ @$(CC) $(CCFLAGS) ${LDFLAGS} -o $@ $<
|
||||
|
||||
printenv$(EXEEXT): $(SUPPORT_SRC)printenv.c
|
||||
- @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) ${LDFLAGS_FOR_BUILD} -o $@ $(SUPPORT_SRC)printenv.c ${LIBS_FOR_BUILD}
|
||||
+ @$(CC) $(CCFLAGS) ${LDFLAGS} -o $@ $<
|
||||
|
||||
xcase$(EXEEXT): $(SUPPORT_SRC)xcase.c
|
||||
- @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) ${LDFLAGS_FOR_BUILD} -o $@ $(SUPPORT_SRC)xcase.c ${LIBS_FOR_BUILD}
|
||||
+ @$(CC) $(CCFLAGS) ${LDFLAGS} -o $@ $<
|
||||
|
||||
-test tests check: force $(Program) $(TESTS_SUPPORT)
|
||||
+test tests check:
|
||||
+ @$(MAKE) install-test
|
||||
+ @$(MAKE) runtest
|
||||
+
|
||||
+install-test: buildtest
|
||||
+ifeq ($(origin INSTALL_TEST_DIR), undefined)
|
||||
@-test -d tests || mkdir tests
|
||||
@cp $(TESTS_SUPPORT) tests
|
||||
+else
|
||||
+ @-test -d $(INSTALL_TEST_DIR) || mkdir -p $(INSTALL_TEST_DIR)
|
||||
+ @cp -r $(srcdir)/tests/* $(INSTALL_TEST_DIR)/
|
||||
+ @cp $(TESTS_SUPPORT) $(INSTALL_TEST_DIR)
|
||||
+endif
|
||||
+
|
||||
+buildtest: force $(Program) $(TESTS_SUPPORT)
|
||||
+
|
||||
+runtest:
|
||||
@( cd $(srcdir)/tests && \
|
||||
BUILD_DIR=$(BUILD_DIR) PATH=$(BUILD_DIR)/tests:$$PATH THIS_SH=$(THIS_SH) $(SHELL) ${TESTSCRIPT} )
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
From 0c4cab9594c96c2dc435a8d9724605824bcbf917 Mon Sep 17 00:00:00 2001
|
||||
From: Dengke Du <dengke.du@windriver.com>
|
||||
Date: Tue, 19 Apr 2016 02:57:45 -0400
|
||||
Subject: [PATCH] fix run-builtins failed
|
||||
|
||||
FAIL: run-builtins
|
||||
1. redirect the stderr output of command exec with -l option in
|
||||
builtins.tests to /dev/null
|
||||
2. ensure the system contain the locales "en_US.UTF-8"
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Dengke Du <dengke.du@windriver.com>
|
||||
---
|
||||
tests/builtins.tests | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/builtins.tests b/tests/builtins.tests
|
||||
index 9d77520..63f3af8 100644
|
||||
--- a/tests/builtins.tests
|
||||
+++ b/tests/builtins.tests
|
||||
@@ -109,7 +109,7 @@ esac
|
||||
|
||||
# test options to exec
|
||||
(exec -a specialname ${THIS_SH} -c 'echo $0' )
|
||||
-(exec -l -a specialname ${THIS_SH} -c 'echo $0' )
|
||||
+(exec -l -a specialname ${THIS_SH} -c 'echo $0' ) 2> /dev/null
|
||||
# test `clean' environment. if /bin/sh is bash, and the script version of
|
||||
# printenv is run, there will be variables in the environment that bash
|
||||
# sets on startup. Also test code that prefixes argv[0] with a dash.
|
||||
--
|
||||
2.8.1
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
On hosts with FORTIFY_SOURCES, stringize support is required, as it's used by
|
||||
the macros to wrap functions (e.g. read and open in unistd.h). Those wrappers
|
||||
use the STRING() macro from unistd.h. A header in the bash sources overrides
|
||||
the unistd.h macro to 'x' when HAVE_STRINGIZE is not defined, causing the
|
||||
wrappers to generate calls to 'xread' and 'xopen', which do not exist,
|
||||
resulting in a failure to link.
|
||||
|
||||
Assume we have stringize support when cross-compiling, which works around the
|
||||
issue.
|
||||
|
||||
It may be best for upstream to either give up on supporting compilers without
|
||||
stringize support, or to not define STRING() at all when FORTIFY_SOURCES is
|
||||
defined, letting the unistd.h one be used, instead.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
--- bash-4.2.orig/builtins/mkbuiltins.c
|
||||
+++ bash-4.2/builtins/mkbuiltins.c
|
||||
@@ -28,6 +28,7 @@
|
||||
# define HAVE_STDLIB_H
|
||||
|
||||
# define HAVE_RENAME
|
||||
+# define HAVE_STRINGIZE
|
||||
#endif /* CROSS_COMPILING */
|
||||
|
||||
#if defined (HAVE_UNISTD_H)
|
||||
@@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
cd "$(dirname "$0")"
|
||||
make -k THIS_SH=/bin/bash BUILD_DIR=`pwd` srcdir=`pwd` runtest
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
#!/bin/sh
|
||||
|
||||
en_US=`locale -a | grep en_US*`
|
||||
fr_FR=`locale -a | grep fr_FR*`
|
||||
de_DE=`locale -a | grep de_DE*`
|
||||
|
||||
if [ -z "$en_US" ]
|
||||
then
|
||||
echo "Warning: The en_US* locales is needed to run the intl.tests, please add it."
|
||||
fi
|
||||
|
||||
if [ -z "$fr_FR" ]
|
||||
then
|
||||
echo "Warning: The fr_FR* locales is needed to run the intl.tests, please add it."
|
||||
fi
|
||||
|
||||
if [ -z "$de_DE" ]
|
||||
then
|
||||
echo "Warning: The de_DE* locales is needed to run the intl.tests, please add it."
|
||||
fi
|
||||
|
||||
useradd bashtest
|
||||
chown -R bashtest:bashtest tests
|
||||
setpriv --reuid bashtest --rgid bashtest --clear-groups --reset-env $(dirname "$0")/run-bash-ptests
|
||||
chown -R root:root tests
|
||||
userdel -r bashtest
|
||||
@@ -0,0 +1,42 @@
|
||||
From 28eb06047ebd2deaa8c7cd2bf6655ef6a469dc14 Mon Sep 17 00:00:00 2001
|
||||
From: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
Date: Tue, 15 Aug 2017 10:01:56 +0800
|
||||
Subject: [PATCH 1/2] Add FAIL/PASS output to test output.
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Signed-off-by: Björn Stenberg <bjst@enea.com>
|
||||
Upstream-Status: Pending
|
||||
|
||||
Rebase to 4.4
|
||||
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
---
|
||||
tests/run-all | 11 ++++++++++-
|
||||
1 file changed, 10 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/run-all b/tests/run-all
|
||||
index 2882fe0..e21d026 100644
|
||||
--- a/tests/run-all
|
||||
+++ b/tests/run-all
|
||||
@@ -33,7 +33,16 @@ do
|
||||
case $x in
|
||||
$0|run-minimal|run-gprof) ;;
|
||||
*.orig|*~) ;;
|
||||
- *) echo $x ; sh $x ; rm -f ${BASH_TSTOUT} ;;
|
||||
+ *) echo $x
|
||||
+ output=`sh $x`
|
||||
+ if [ -n "$output" ]; then
|
||||
+ echo "$output"
|
||||
+ echo "FAIL: $x"
|
||||
+ else
|
||||
+ echo "PASS: $x"
|
||||
+ fi
|
||||
+ rm -f ${BASH_TSTOUT}
|
||||
+ ;;
|
||||
esac
|
||||
done
|
||||
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
From d1bf23817afffd5917b74da6946e0c3b7e63e336 Mon Sep 17 00:00:00 2001
|
||||
From: Alexander Kanavin <alex.kanavin@gmail.com>
|
||||
Date: Mon, 28 Dec 2020 21:04:27 +0100
|
||||
Subject: [PATCH] bash: update 5.0 -> 5.1
|
||||
|
||||
Including m4 files directly like this confuses autotools.bbclass, remove
|
||||
the references and rely upon aclocal to collect the m4 files together
|
||||
as needed instead making it work like other autotools based projects.
|
||||
|
||||
Upstream-Status: Inappropriate [OE configuration specific]
|
||||
RP 2021/1/20
|
||||
|
||||
---
|
||||
configure.ac | 43 -------------------------------------------
|
||||
1 file changed, 43 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 50a6e20..a3b5bd7 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -710,49 +710,6 @@ if test x$SIZE = x; then
|
||||
fi
|
||||
AC_SUBST(SIZE)
|
||||
|
||||
-m4_include([m4/stat-time.m4])
|
||||
-m4_include([m4/timespec.m4])
|
||||
-
|
||||
-m4_include([m4/strtoimax.m4])
|
||||
-
|
||||
-dnl include files for gettext
|
||||
-
|
||||
-m4_include([m4/codeset.m4])
|
||||
-m4_include([m4/extern-inline.m4])
|
||||
-m4_include([m4/fcntl-o.m4])
|
||||
-m4_include([m4/gettext.m4])
|
||||
-m4_include([m4/glibc2.m4])
|
||||
-m4_include([m4/glibc21.m4])
|
||||
-m4_include([m4/host-cpu-c-abi.m4])
|
||||
-m4_include([m4/iconv.m4])
|
||||
-m4_include([m4/intdiv0.m4])
|
||||
-m4_include([m4/intl.m4])
|
||||
-m4_include([m4/intlmacosx.m4])
|
||||
-m4_include([m4/intl-thread-locale.m4])
|
||||
-m4_include([m4/intmax.m4])
|
||||
-m4_include([m4/inttypes-pri.m4])
|
||||
-m4_include([m4/inttypes.m4])
|
||||
-m4_include([m4/inttypes_h.m4])
|
||||
-m4_include([m4/lcmessage.m4])
|
||||
-m4_include([m4/lib-ld.m4])
|
||||
-m4_include([m4/lib-link.m4])
|
||||
-m4_include([m4/lib-prefix.m4])
|
||||
-m4_include([m4/lock.m4])
|
||||
-m4_include([m4/nls.m4])
|
||||
-m4_include([m4/po.m4])
|
||||
-m4_include([m4/printf-posix.m4])
|
||||
-m4_include([m4/progtest.m4])
|
||||
-m4_include([m4/pthread_rwlock_rdlock.m4])
|
||||
-m4_include([m4/size_max.m4])
|
||||
-m4_include([m4/stdint_h.m4])
|
||||
-m4_include([m4/threadlib.m4])
|
||||
-m4_include([m4/uintmax_t.m4])
|
||||
-m4_include([m4/ulonglong.m4])
|
||||
-m4_include([m4/visibility.m4])
|
||||
-m4_include([m4/wchar_t.m4])
|
||||
-m4_include([m4/wint_t.m4])
|
||||
-m4_include([m4/xsize.m4])
|
||||
-
|
||||
dnl C compiler characteristics
|
||||
AC_C_CONST
|
||||
AC_C_INLINE
|
||||
@@ -0,0 +1,22 @@
|
||||
require bash.inc
|
||||
|
||||
# GPL-2.0-or-later (< 4.0), GPL-3.0-or-later (>= 4.0)
|
||||
LICENSE = "GPL-3.0-or-later"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
|
||||
|
||||
SRC_URI = "${GNU_MIRROR}/bash/${BP}.tar.gz;name=tarball \
|
||||
file://mkbuiltins_have_stringize.patch \
|
||||
file://build-tests.patch \
|
||||
file://test-output.patch \
|
||||
file://run-ptest \
|
||||
file://run-bash-ptests \
|
||||
file://fix-run-builtins.patch \
|
||||
file://use_aclocal.patch \
|
||||
"
|
||||
|
||||
SRC_URI[tarball.sha256sum] = "13720965b5f4fc3a0d4b61dd37e7565c741da9a5be24edc2ae00182fc1b3588c"
|
||||
|
||||
DEBUG_OPTIMIZATION:append:armv4 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}"
|
||||
DEBUG_OPTIMIZATION:append:armv5 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}"
|
||||
|
||||
BBCLASSEXTEND = "nativesdk"
|
||||
Reference in New Issue
Block a user