diff --git a/ports/bash/build.sh b/ports/bash/build.sh new file mode 100755 index 00000000..0b625946 --- /dev/null +++ b/ports/bash/build.sh @@ -0,0 +1,21 @@ +#!/bin/bash ../install.sh + +NAME='bash' +VERSION='5.2.37' +DOWNLOAD_URL="https://ftp.gnu.org/gnu/bash/bash-$VERSION.tar.gz#9599b22ecd1d5787ad7d3b7bf0c59f312b3396d1e281175dd1f8a4014da621ff" +DEPENDENCIES=('ncurses') +CONFIGURE_OPTIONS=( + '--disable-nls' + '--without-bash-malloc' + '--with-curses' + 'bash_cv_unusable_rtsigs=no' + 'bash_cv_signal_vintage=posix' + 'CFLAGS=-std=c17' + 'CFLAGS_FOR_BUILD=-std=c17' +) + +post_install() { + if [ ! -L $BANAN_SYSROOT/usr/bin/sh ]; then + ln -s bash $BANAN_SYSROOT/usr/bin/sh + fi +} diff --git a/ports/bash/patches/0001-Add-banan_os-target.patch b/ports/bash/patches/0001-Add-banan_os-target.patch new file mode 100644 index 00000000..2cab57bd --- /dev/null +++ b/ports/bash/patches/0001-Add-banan_os-target.patch @@ -0,0 +1,12 @@ +diff -ruN bash-5.2.37/support/config.sub bash-5.2.37-banan_os/support/config.sub +--- bash-5.2.37/support/config.sub 2022-01-11 21:38:29.000000000 +0200 ++++ bash-5.2.37-banan_os/support/config.sub 2024-12-07 05:43:54.697086738 +0200 +@@ -1754,7 +1754,7 @@ + | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ + | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ + | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \ +- | fiwix* ) ++ | fiwix* | banan_os* ) + ;; + # This one is extra strict with allowed versions + sco3.2v2 | sco3.2v[4-9]* | sco5v6*) diff --git a/ports/bash/patches/0002-Fix-non-multibyte-compilation.patch b/ports/bash/patches/0002-Fix-non-multibyte-compilation.patch new file mode 100644 index 00000000..29d28abf --- /dev/null +++ b/ports/bash/patches/0002-Fix-non-multibyte-compilation.patch @@ -0,0 +1,19 @@ +diff -ruN bash-5.2.37/parse.y bash-5.2.37-banan_os/parse.y +--- bash-5.2.37/parse.y 2024-09-24 00:24:01.000000000 +0300 ++++ bash-5.2.37-banan_os/parse.y 2024-12-07 06:49:40.322734826 +0200 +@@ -2640,6 +2640,7 @@ + parser_state |= PST_ENDALIAS; + /* We need to do this to make sure last_shell_getc_is_singlebyte returns + true, since we are returning a single-byte space. */ ++#if defined (HANDLE_MULTIBYTE) + if (shell_input_line_index == shell_input_line_len && last_shell_getc_is_singlebyte == 0) + { + #if 0 +@@ -2653,6 +2654,7 @@ + shell_input_line_property[shell_input_line_index - 1] = 1; + #endif + } ++#endif /* HANDLE_MULTIBYTE */ + return ' '; /* END_ALIAS */ + } + #endif diff --git a/ports/bash/patches/0003-remove-cut-and-getconf-builtins.patch b/ports/bash/patches/0003-remove-cut-and-getconf-builtins.patch new file mode 100644 index 00000000..db92aa4b --- /dev/null +++ b/ports/bash/patches/0003-remove-cut-and-getconf-builtins.patch @@ -0,0 +1,12 @@ +diff -ruN bash-5.2.37/examples/loadables/Makefile.in bash-5.2.37-banan_os/examples/loadables/Makefile.in +--- bash-5.2.37/examples/loadables/Makefile.in 2022-08-19 23:33:30.000000000 +0300 ++++ bash-5.2.37-banan_os/examples/loadables/Makefile.in 2025-01-26 02:43:36.121801845 +0200 +@@ -104,7 +104,7 @@ + ALLPROG = print truefalse sleep finfo logname basename dirname fdflags \ + tty pathchk tee head mkdir rmdir mkfifo mktemp printenv id whoami \ + uname sync push ln unlink realpath strftime mypid setpgid seq rm \ +- accept csv dsv cut stat getconf ++ accept csv dsv stat + OTHERPROG = necho hello cat pushd asort + + all: $(SHOBJ_STATUS)