diff options
Diffstat (limited to 'recipes-extended/bash')
8 files changed, 239 insertions, 0 deletions
diff --git a/recipes-extended/bash/bash-3.2.57/build-tests.patch b/recipes-extended/bash/bash-3.2.57/build-tests.patch new file mode 100644 index 0000000..e63457c --- /dev/null +++ b/recipes-extended/bash/bash-3.2.57/build-tests.patch @@ -0,0 +1,44 @@ +Add 'ptest' target to Makefile, to run tests without checking dependencies. + +Signed-off-by: Anders Roxell <anders.roxell@enea.com> +Upstream-Status: Pending +--- +diff -dNaur bash-3.2.48/Makefile.in.orig bash-3.2.48/Makefile.in +--- bash-3.2.48/Makefile.in.orig 2006-08-17 23:03:35.000000000 +0500 ++++ bash-3.2.48/Makefile.in 2013-07-02 20:20:07.512709327 +0500 +@@ -803,17 +803,31 @@ + fi + + recho$(EXEEXT): $(SUPPORT_SRC)recho.c +- @$(CC_FOR_BUILD) $(CCFLAGS_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) -o $@ $(SUPPORT_SRC)zecho.c ${LIBS_FOR_BUILD} ++ @$(CC) $(CCFLAGS) $(LDFLAGS) -o $@ $< + + printenv$(EXEEXT): $(SUPPORT_SRC)printenv.c +- @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)printenv.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 && \ + PATH=$(BUILD_DIR)/tests:$$PATH THIS_SH=$(THIS_SH) $(SHELL) ${TESTSCRIPT} ) + diff --git a/recipes-extended/bash/bash-3.2.57/dont-include-target-CFLAGS-in-host-LDFLAGS.patch b/recipes-extended/bash/bash-3.2.57/dont-include-target-CFLAGS-in-host-LDFLAGS.patch new file mode 100644 index 0000000..ee756dc --- /dev/null +++ b/recipes-extended/bash/bash-3.2.57/dont-include-target-CFLAGS-in-host-LDFLAGS.patch @@ -0,0 +1,33 @@ +From 933bd886af49667e88e2385409449ab598813dab Mon Sep 17 00:00:00 2001 +From: Andre McCurdy <armccurdy@gmail.com> +Date: Wed, 15 Jul 2015 00:54:33 -0700 +Subject: [PATCH] dont include target CFLAGS in host LDFLAGS + +Building the host tool 'mkbuiltins' will fail if the target CFLAGS +contains an option which isn't supported by the host's gcc. To prevent +the issue, define LDFLAGS_FOR_BUILD based on CFLAGS_FOR_BUILD instead +of CFLAGS. + +Upstream-Status: Inappropriate [required for bash 3.2.57 (GPLv2) recipe only] + +Signed-off-by: Andre McCurdy <armccurdy@gmail.com> +--- + builtins/Makefile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/builtins/Makefile.in b/builtins/Makefile.in +index e027f7a..ebfddf3 100644 +--- a/builtins/Makefile.in ++++ b/builtins/Makefile.in +@@ -63,7 +63,7 @@ LOCAL_DEFS = @LOCAL_DEFS@ + + LIBS = @LIBS@ + LDFLAGS = @LDFLAGS@ $(LOCAL_LDFLAGS) $(CFLAGS) +-LDFLAGS_FOR_BUILD = $(LDFLAGS) ++LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ $(LOCAL_LDFLAGS) $(CFLAGS_FOR_BUILD) + LOCAL_LDFLAGS = @LOCAL_LDFLAGS@ + #LIBS_FOR_BUILD = @LIBS_FOR_BUILD@ + LIBS_FOR_BUILD = $(LIBS) +-- +1.9.1 + diff --git a/recipes-extended/bash/bash-3.2.57/mkbuiltins_have_stringize.patch b/recipes-extended/bash/bash-3.2.57/mkbuiltins_have_stringize.patch new file mode 100644 index 0000000..c4229a7 --- /dev/null +++ b/recipes-extended/bash/bash-3.2.57/mkbuiltins_have_stringize.patch @@ -0,0 +1,29 @@ +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 + +Signed-off-by: Christopher Larson <chris_larson@mentor.com> +Signed-off-by: Saul Wold <sgw@linux.intel.com> + +--- 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) diff --git a/recipes-extended/bash/bash-3.2.57/run-ptest b/recipes-extended/bash/bash-3.2.57/run-ptest new file mode 100644 index 0000000..8dd3b99 --- /dev/null +++ b/recipes-extended/bash/bash-3.2.57/run-ptest @@ -0,0 +1,2 @@ +#!/bin/sh +make -k THIS_SH=/bin/bash BUILD_DIR=. runtest diff --git a/recipes-extended/bash/bash-3.2.57/string-format.patch b/recipes-extended/bash/bash-3.2.57/string-format.patch new file mode 100644 index 0000000..eda3964 --- /dev/null +++ b/recipes-extended/bash/bash-3.2.57/string-format.patch @@ -0,0 +1,21 @@ +Fix a string format warning when using security flags: + +| ../bash-3.2.48/print_cmd.c:1152:3: error: format not a string literal and no format arguments [-Werror=format-security] +| cprintf (indentation_string); + +Upstream-Status: Backport +Signed-off-by: Ross Burton <ross.burton@intel.com> + +diff --git a/print_cmd.c b/print_cmd.c +index d1dfd1a..956db53 100644 +--- a/print_cmd.c ++++ b/print_cmd.c +@@ -1149,7 +1149,7 @@ indent (amount) + for (i = 0; amount > 0; amount--) + indentation_string[i++] = ' '; + indentation_string[i] = '\0'; +- cprintf (indentation_string); ++ cprintf ("%s", indentation_string); + } + + static void diff --git a/recipes-extended/bash/bash-3.2.57/test-output.patch b/recipes-extended/bash/bash-3.2.57/test-output.patch new file mode 100644 index 0000000..2b09b7d --- /dev/null +++ b/recipes-extended/bash/bash-3.2.57/test-output.patch @@ -0,0 +1,25 @@ +Add FAIL/PASS output to test output. + +Signed-off-by: Björn Stenberg <bjst@enea.com> +Upstream-Status: Pending +--- +diff -uNr a/tests/run-all b/tests/run-all +--- a/tests/run-all 1999-10-08 17:07:46.000000000 +0200 ++++ b/tests/run-all 2012-10-27 21:04:18.663331887 +0200 +@@ -22,7 +22,15 @@ + case $x in + $0|run-minimal|run-gprof) ;; + *.orig|*~) ;; +- *) echo $x ; sh $x ;; ++ *) echo $x ++ output=`sh $x` ++ if [ -n "$output" ]; then ++ echo "$output" ++ echo "FAIL: $x" ++ else ++ echo "PASS: $x" ++ fi ++ ;; + esac + done + diff --git a/recipes-extended/bash/bash.inc b/recipes-extended/bash/bash.inc new file mode 100644 index 0000000..a05b987 --- /dev/null +++ b/recipes-extended/bash/bash.inc @@ -0,0 +1,67 @@ +SUMMARY = "An sh-compatible command language interpreter" +HOMEPAGE = "http://tiswww.case.edu/php/chet/bash/bashtop.html" +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" + +# 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" + +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" + +USERADD_PACKAGES = "${PN}-ptest" +USERADD_PARAM_${PN}-ptest = "--create-home --user-group test" + +do_configure_prepend () { + if [ ! -e ${S}/acinclude.m4 ]; then + cat ${S}/aclocal.m4 > ${S}/acinclude.m4 + fi +} + +do_compile_ptest () { + oe_runmake buildtest +} + +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 host path in bashbug + sed -i -e "s,--sysroot=${STAGING_DIR_TARGET},,g" \ + -e "s,-I${WORKDIR}/\S* ,,g" ${D}${bindir}/bashbug +} + +do_install_ptest () { + make INSTALL_TEST_DIR=${D}${PTEST_PATH}/tests install-test + cp ${B}/Makefile ${D}${PTEST_PATH} + sed -i -e 's/^Makefile/_Makefile/' -e "s,--sysroot=${STAGING_DIR_TARGET},,g" \ + -e "s,${S},,g" -e "s,${B},,g" -e "s,${STAGING_DIR_NATIVE},,g" ${D}${PTEST_PATH}/Makefile +} + +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 +} diff --git a/recipes-extended/bash/bash_3.2.57.bb b/recipes-extended/bash/bash_3.2.57.bb new file mode 100644 index 0000000..5c288b3 --- /dev/null +++ b/recipes-extended/bash/bash_3.2.57.bb @@ -0,0 +1,18 @@ +require bash.inc + +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=fd5d9bcabd8ed5a54a01ce8d183d592a" + +SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz \ + file://mkbuiltins_have_stringize.patch \ + file://build-tests.patch \ + file://test-output.patch \ + file://run-ptest \ + file://dont-include-target-CFLAGS-in-host-LDFLAGS.patch \ + file://string-format.patch \ + " + +SRC_URI[md5sum] = "237a8767c990b43ae2c89895c2dbc062" +SRC_URI[sha256sum] = "3fa9daf85ebf35068f090ce51283ddeeb3c75eb5bc70b1a4a7cb05868bfe06a4" + +PARALLEL_MAKE = "" |