Initial commit

This commit is contained in:
Your Name
2026-04-23 17:07:55 +08:00
commit b7e39e063b
16725 changed files with 1625565 additions and 0 deletions
+131
View File
@@ -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"