Commit Graph

124 Commits

Author SHA1 Message Date
Martin Jansa
6cf96bd710 bash: use -std=gnu17 also for native CFLAGS
* fixes builds on host with gcc-15:
  http://errors.yoctoproject.org/Errors/Details/853016/

../../bash-5.2.37/builtins/mkbuiltins.c:268:29: error: too many arguments to function ‘xmalloc’; expected 0, have 1
  268 |           error_directory = xmalloc (2 + strlen (argv[arg_index]));
      |                             ^~~~~~~  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

(From OE-Core rev: 663a79bbf2f2e113992e457244964b7582d9caaf)

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-04-29 09:55:31 +01:00
Khem Raj
a34e57a2d1 bash: Stick to C17 std
GCC 15 defaults to C23 and bash is not yet ready for that
so keep using C17 like GCC 14 for now

(From OE-Core rev: aa9ac09aa7b8d4bd4427dbb26ae595b97b60da2f)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-03-19 09:48:14 +00:00
Ross Burton
ac564b5bac bash: remove aclocal workarounds
Instead of patching configure.ac to not load m4 directly and working
around what aclocal and the autotools class do, just exclude the running
of aclocal entirely.

This stops the class removing the existing aclocal.m4 and autoreconf
running aclocal.

(From OE-Core rev: 399918026e3240d6f0829f9fb0da6946a498108e)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-12-20 12:47:19 +00:00
Wang Mingyu
e461ded95a bash: upgrade 5.2.32 -> 5.2.37
0001-fix-c99.patch
refreshed for 5.2.37

(From OE-Core rev: fa9289b26b9b3fe7e79c7fa01f6a57b072d8fdcd)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-10-29 11:19:57 +00:00
Alexander Kanavin
5fc9579940 bash: upgrade 5.2.21 -> 5.2.32
(From OE-Core rev: f70eebdf5b60d0ee7b1bbcdff1135801b2654a08)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-08-23 09:12:37 +01:00
Ross Burton
d5e42cf9b6 bash: fix configure checks that fail with GCC 14.1
These configure checks cause compiler errors with GCC 14.1, so they always
fail.  Backport fixes from upstream to solve this.

(From OE-Core rev: 921479032720707f4817e3398e516724bc48b33c)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-06-24 12:43:41 +01:00
Richard Purdie
71c6db8e65 recipes: Start WORKDIR -> UNPACKDIR transition
Replace references of WORKDIR with UNPACKDIR where it makes sense to do
so in preparation for changing the default value of UNPACKDIR.

(From OE-Core rev: 1f18b9a512800860d5153d89eb82b56388efad6f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 12:08:04 +01:00
Alexander Kanavin
87f28339cc bash: mark build-tests.patch as Inappropriate
(From OE-Core rev: 3d82d44ed6822b7a276df355311e384c02d36c43)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:10:15 +01:00
Zev Weiss
1b28f949c6 bash: Fix file-substitution error-handling bug
This is part of a patch that's been upstream for a while but hasn't yet
been released.  The bug is causing some downstream difficulties, so a
local patch to tide us over until the next release makes things a bit
easier.

(From OE-Core rev: bf384d6618780dea2df24adac88ba4364cb65b9b)

Signed-off-by: Zev Weiss <zev@bewilderbeest.net>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Oleh Matiusha
e96918f49e bash: improve reproducibility
nativesdk-bash package contains host references in output packages.
remove them.

(From OE-Core rev: 9d749f0a67ce72952e7a731fe5081ae5f432dfdb)

Signed-off-by: Oleh Matiusha <omatiush@cisco.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-04 14:05:03 +01:00
Richard Purdie
54441215bd bash/flex: Ensure BUILD_FLAGS doesn't leak onto target
The ptest packages were leaking BUILD_LDFLAGS into the Makefile used
on target. Remove these values instead.

(From OE-Core rev: 599132c7794a1192ddd257669798a3ec6d1191bb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-03-19 15:25:12 +00:00
Xiangyu Chen
468e550692 bash: rebase the patch to fix ptest failure
This fix commit oe-core: 1b69769b -- bash: changes to SIGINT handler while waiting for a child

Due to the patch adjust and drop some codes to be applicable the tree,
the line number has been changed, that cause test case "run-type" fail.

(From OE-Core rev: ecb698ca5b4f76937dd3bee927465b17866d50be)

Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-20 11:39:45 +00:00
Maanya Goenka
9382d731bd bash: nativesdk-bash does not provide /bin/bash so don't claim to
The package nativesdk-sdk-provides-dummy already provides /bin/sh and /bin/bash and
nativesdk-bash does not provide them, it provides them in ${nativesdk_bindir}. Tweak
the definition to class-target only to avoid this.

[RP: Tweaked wording to clarify]

(From OE-Core rev: 4362867cc21a0b8ec6a780258859ce8b7c13ae02)

Signed-off-by: Maanya Goenka <maanyagoenka@microsoft.com>
Signed-off-by : Alejandro Hernandez Samaniego <alhe@linux.microsoft.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-15 15:15:05 +00:00
Xiangyu Chen
b0e7eda54f bash: changes to SIGINT handler while waiting for a child
It rarely observes the problem while running shell script aborting
test repeatedly, at the problem, the test shell script never returns
to shell

Steps to reproduce:
1. Run test script and ctrl-c repeatedly
2. Observe whether returns to shell after ctrl-c

(From OE-Core rev: 1b69769b52c888d74c0ba258b7450e05a6c82a5a)

Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-12-04 11:23:37 +00:00
Wang Mingyu
0206ba7fd7 bash: upgrade 5.2.15 -> 5.2.21
(From OE-Core rev: e941260ce996d8582f877e91c6fd9e45264d8e28)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-11-20 15:30:52 +00:00
Alexander Kanavin
be76c36ec4 bash: upgrade 5.2.9 -> 5.2.15
(From OE-Core rev: 74a0f6408b46b195c3c248bbabb4b2ba5954885f)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-01-06 12:03:48 +00:00
Alexander Kanavin
e8a9e74903 bash: update 5.1.16 -> 5.2.9
Remove patches:
execute_cmd.patch
(purpose of patch unclear)
makerace.patch/makerace2.patch
(merged upstream)

(From OE-Core rev: 9a12d977cb4a9a5369eebd6b47ffe35c2cb4fca8)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-11-15 09:38:37 +00:00
Alexander Kanavin
59a94a7f1b bash: submit patch upstream
(From OE-Core rev: 424f1c24c569afd245463b02ca10c40dad3f8a0c)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-05-27 23:50:47 +01:00
Peter Kjellerstedt
83766c9fff meta, meta-selftest: Replace more non-SPDX license identifiers
In commit ceda3238 (meta/meta-selftest/meta-skeleton: Update LICENSE
variable to use SPDX license identifiers) all LICENSE variables were
updated to only use SPDX license identifiers.

This does the same for comments and other variables where it is
appropriate to use the official SPDX license identifiers. There are
still references to, e.g., "GPLv3", but they are then typically in
descriptive text where they refer to the license in a generic sense.

(From OE-Core rev: 165759dced7fbe73b1db2ede67047896071dc6d0)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-01 23:44:59 +00:00
Richard Purdie
b0130fcf91 meta/meta-selftest/meta-skeleton: Update LICENSE variable to use SPDX license identifiers
An automated conversion using scripts/contrib/convert-spdx-licenses.py to
convert to use the standard SPDX license identifiers. Two recipes in meta-selftest
were not converted as they're that way specifically for testing. A change in
linux-firmware was also skipped and may need a more manual tweak.

(From OE-Core rev: ceda3238cdbf1beb216ae9ddb242470d5dfc25e0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-20 16:45:25 +00:00
wangmy
7a3ac0aead bash: upgrade 5.1.8 -> 5.1.16
Changelog:
=========
1. New Features in Bash

a. 'bind -x' now supports different bindings for different editing modes and
   keymaps.

b. Bash attempts to optimize the number of times it forks when executing
   commands in subshells and from 'bash -c'.

c. Here documents and here strings now use pipes for the expanded document if
   it's smaller than the pipe buffer size, reverting to temporary files if it's
   larger.

d. There are new loadable builtins: mktemp, accept, mkfifo, csv, cut/lcut

e. In posix mode, 'trap -p' now displays signals whose disposition is SIG_DFL
   and those that were SIG_IGN when the shell starts.

f. The shell now expands the history number (e.g., in PS1) even if it is not
   currently saving commands to the history list.

g. 'read -e' may now be used with arbitrary file descriptors ('read -u N').

h. The 'select' builtin now runs traps if its internal call to the read builtin
   is interrupted by a signal.

i. SRANDOM: a new variable that expands to a 32-bit random number that is not
   produced by an LCRNG, and uses getrandom/getentropy, falling back to
   /dev/urandom or arc4random if available. There is a fallback generator if
   none of these are available.

j. shell-transpose-words: a new bindable readline command that uses the same
   definition of word as shell-forward-word, etc.

k. The shell now adds default bindings for shell-forward-word,
   shell-backward-word, shell-transpose-words, and shell-kill-word.

l. Bash now allows ARGV0 appearing in the initial shell environment to set $0.

m. If 'unset' is executed without option arguments, bash tries to unset a shell
   function if a name argument cannot be a shell variable name because it's not
   an identifier.

n. The 'test -N' operator uses nanosecond timestamp granularity if it's
   available.

o. Bash posix mode now treats assignment statements preceding shell function
   definitions the same as in its default mode, since POSIX has changed and
   no longer requires those assignments to persist after the function returns
   (POSIX interp 654).

p. BASH_REMATCH is no longer readonly.

q. wait: has a new -p VARNAME option, which stores the PID returned by 'wait -n'
   or 'wait' without arguments.

r. Sorting the results of pathname expansion now uses byte-by-byte comparisons
   if two strings collate equally to impose a total order; the result of a
   POSIX interpretation.

s. Bash now allows SIGINT trap handlers to execute recursively.

t. Bash now saves and restores state around setting and unsetting posix mode,
   instead of having unsetting posix mode set a known state.

u. Process substitution is now available in posix mode.

v. READLINE_MARK: a new variable available while executing commands bound with
   'bind -x', contains the value of the mark.

w. Bash removes SIGCHLD from the set of blocked signals if it's blocked at shell
   startup.

x. 'test -v N' can now test whether or not positional parameter N is set.

y. 'local' now honors the '-p' option to display all local variables at the
    current context.

z. The '@a' variable transformation now prints attributes for unset array
   variables.

aa. The '@A' variable transformation now prints a declare command that sets a
    variable's attributes if the variable has attributes but is unset.

bb. 'declare' and 'local' now have a -I option that inherits attributes and
    value from a variable with the same name at a previous scope.

cc. When run from a -c command, 'jobs' now reports the status of completed jobs.

dd. New 'U', 'u', and 'L' parameter transformations to convert to uppercase,
    convert first character to uppercase, and convert to lowercase,
    respectively.

ee. PROMPT_COMMAND: can now be an  array variable, each element of which can
    contain a command to be executed like a string PROMPT_COMMAND variable.

ff. 'ulimit' has a -R option to report and set the RLIMIT_RTTIME resource.

gg. Associative arrays may be assigned using a list of key-value pairs within
    a compound assignment. Compound assignments where the words are not of
    the form [key]=value are assumed to be key-value assignments. A missing or
    empty key is an error; a missing value is treated as NULL. Assignments may
    not mix the two forms.

hh. New 'K' parameter transformation to display associative arrays as key-
    value pairs.

ii. Writing history to syslog now handles messages longer than the syslog max
    length by writing multiple messages with a sequence number.

jj. SECONDS and RANDOM may now be assigned using arithmetic expressions, since
    they are nominally integer variables. LINENO is not an integer variable.

kk. Bash temporarily suppresses the verbose option when running the DEBUG trap
    while running a command from the 'fc' builtin.

ll. 'wait -n' now accepts a list of job specifications as arguments and will
    wait for the first one in the list to change state.

mm. The associative array implementation can now dynamically increase the
    size of the hash table based on insertion patterns.

nn. HISTFILE is now readonly in a restricted shell.

oo. The bash malloc now returns memory that is 16-byte aligned on 64-bit
    systems.

pp. If the hash builtin is listing hashed filenames portably, don't print
   anything if the table is empty.

qq. GLOBIGNORE now ignores '.' and '..' as a terminal pathname component.

rr. Bash attempts to optimize away forks in the last command in a function body
    under appropriate circumstances.

ss. The globbing code now uses fnmatch(3) to check collation elements (if
    available) even in cases without multibyte characters.

tt. The 'fg' and 'bg' builtins now return an error in a command substitution
    when asked to restart a job inherited from the parent shell.

uu. The shell now attempts to unlink all FIFOs on exit, whether a consuming
    process has finished with them or not.

vv. There is a new contributed loadable builtin: asort.

2. New Features in Readline

a. If a second consecutive completion attempt produces matches where the first
   did not, treat it as a new completion attempt and insert a match as
   appropriate.

b. Bracketed paste mode works in more places: incremental search strings, vi
   overstrike mode, character search, and reading numeric arguments.

c. Readline automatically switches to horizontal scrolling if the terminal has
   only one line.

d. Unbinding all key sequences bound to a particular readline function now
   descends into keymaps for multi-key sequences.

e. rl-clear-display: new bindable command that clears the screen and, if
   possible, the scrollback buffer (bound to emacs mode M-C-l by default).

f. New active mark and face feature: when enabled, it will highlight the text
   inserted by a bracketed paste (the 'active region') and the text found by
   incremental and non-incremental history searches. This is tied to bracketed
   paste and can be disabled by turning off bracketed paste.

g. Readline sets the mark in several additional commands.

h. Bracketed paste mode is enabled by default.

i. Readline tries to take advantage of the more regular structure of UTF-8
   characters to identify the beginning and end of characters when moving
   through the line buffer.

j. The bindable operate-and-get-next command (and its default bindings) are
   now part of readline instead of a bash-specific addition.

k. The signal cleanup code now blocks SIGINT while processing after a SIGINT.

(From OE-Core rev: 842edd425e82c983ca0b1a7b733baf41cb689a69)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-11 15:48:10 +00:00
Richard Purdie
0256b7dac4 bash: Ensure deterministic build
Bash keeps a count of the number of times make was invoked on a directory
and changes the output versioning accordingly. We want deterministic output
so disable this behaviour.

(From OE-Core rev: 13a039e03195a47c750d5901e96fe81cf523481f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-16 09:50:34 +01:00
Richard Purdie
bb6ddc3691 Convert to new override syntax
This is the result of automated script conversion:

scripts/contrib/convert-overrides.py <oe-core directory>

converting the metadata to use ":" as the override character instead of "_".

(From OE-Core rev: 42344347be29f0997cc2f7636d9603b1fe1875ae)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-08-02 15:44:10 +01:00
Richard Purdie
68a4cbb7b2 bash: Fix a rare make race build failure
There is a rare make race that occurs in bash due to the way it constructs
certain headers and a build tool. Restructure the creation to remove
the race.

[YOCTO #14227]

(From OE-Core rev: 6f683cf21630142e82cc37d79f3d797d179d8d12)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-07-02 07:24:21 +01:00
Alexander Kanavin
8897e63ab9 bash: update 5.1 -> 5.1.8
(From OE-Core rev: 65ccd5fb231b8628374aac5eadae57d8179490ec)

(From OE-Core rev: 713860c05ba9a11a20c3a983dd45fc06f19cddc0)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-06-26 11:27:16 +01:00
Khem Raj
0a5079681e bash: Include files needed for run-heredoc ptest
These files are used by this ptest case

103,108d102
< cat: ../y.tab.c: No such file or directory
< cmp: ../y.tab.c: No such file or directory
< cat: /usr/lib/bash/ptest/config.h: No such file or directory
< cmp: /usr/lib/bash/ptest/config.h: No such file or directory
< cat: /usr/lib/bash/ptest/version.h: No such file or directory
< cmp: /usr/lib/bash/ptest/version.h: No such file or directory
FAIL: run-heredoc

(From OE-Core rev: 0672a3dae14462e590959e966fef22b6e2a2ad09)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-02 23:21:42 +01:00
Dorinda
76e7ccfc30 meta/recipes-extended: Add HOMEPAGE / DESCRIPTION
Added HOMEPAGE and DESCRIPTION for recipes with missing decriptions or homepage

[YOCTO #13471]

(From OE-Core rev: cc6c7af900ae0196a62b7fa1375c55bbcd8e68b4)

Signed-off-by: Dorinda Bassey <dorindabassey@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-06 22:39:04 +00:00
Joshua Watt
071f23ad79 bash: Disable bracketed input by default
Bash 5.1 enabled bracketed input mode by default, but this causes a lot
of problems with automated testing as it can inject a lot of control
sequences into non-interactive output. Disable it to cleanup the output
an preserve the pre-5.1 behavior

(From OE-Core rev: 6c1cb7e274050f1ccb817b8ee34d0f61f34c95e3)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-06 09:03:00 +00:00
Richard Purdie
21a045090d bash: Add makefile race workaround
There is a race between two make invocations in 5.1. It has been
reported upstream, in the meantime add a work around patch (which
upstream may yet even apply). The autobuilder found two instances
of this race in a single build.

(From OE-Core rev: 62b8580cea567f2d9b7a900fc4302d6bc5a785b2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-01-20 22:46:17 +00:00
Richard Purdie
0c738cad8e bash: Set HEREDOC_PIPESIZE deterministically
We had reproducibility issues where the pipe size appears to vary on some build
hosts between 65535 and 4096. It should be the former on Linux in general so
standarise on that. Easiest way is to pass in CFLAGS.

(From OE-Core rev: 6de2152693c31ee1181e9eacc32b90dd63d4e0a9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-01-20 22:46:17 +00:00
Alexander Kanavin
657bc00c4c bash: update 5.0 -> 5.1
[RP: Add aclocal support and patch m4 handling to adapt to OE]
(From OE-Core rev: ab4406dfdbd5e21f6fff0865228ebf5da1274505)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-01-20 22:46:17 +00:00
zangrc
3a69732b87 bash: Rename patch name
Because the name of CVE patch is wrong, cve-check-tool cannot get the correct CVE result. Rename the patch name.

(From OE-Core rev: 422f9af7d0f7de7a2e933154853e7a281f98ab93)

Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-18 22:52:24 +00:00
De Huo
8a3ec97652 bash: fix CVE-2019-18276
An issue was discovered in disable_priv_mode in shell.c in GNU Bash
through 5.0 patch 11. By default, if Bash is run with its effective UID
not equal to its real UID, it will drop privileges by setting its
effective UID to its real UID. However, it does so incorrectly. On Linux
and other systems that support "saved UID" functionality, the saved UID
is not dropped. An attacker with command execution in the shell can use
"enable -f" for runtime loading of a new builtin, which can be a shared
object that calls setuid() and therefore regains privileges. However,
binaries running with an effective UID of 0 are unaffected.

Get the patch from [1] to fix the issue.

[1] https://git.savannah.gnu.org/cgit/bash.git/commit/?h=devel&id=951bdaa

(From OE-Core rev: 6f01acae9c279e0a580f46d1ba4c015caa3f8c2c)

Signed-off-by: De Huo <De.Huo@windriver.com>
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-24 22:32:49 +01:00
Chee Yang Lee
0c741099cc bash : include patch 17 & 18
patch 17 :-
https://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-017
There were cases where patch 16 reaped process substitution file
descriptors (or FIFOs) and processes to early. This is a better
fix for the problem that bash50-016 attempted to solve.

path 18 :-
https://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-018
In certain cases, bash does not perform quoted null removal on
patterns that are used as part of word expansions such as
${parameter##pattern}, so empty patterns are treated as non-empty.

(From OE-Core rev: 08f8580b1ad2a478538f6974e79cb79e726b6efa)

Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-21 23:54:39 +01:00
Lee Chee Yang
bb6ceda3bc bash: include patch 12-16
(From OE-Core rev: 10907c6ea3665e0cacb05e7120c8726ed5790a3c)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-15 10:26:42 +00:00
Lee Chee Yang
43d9e2d030 bash: include patch 8-11
(From OE-Core rev: 61c3449b87e5d627134a580bb5298338f389beb1)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-04 15:56:29 +00:00
Adrian Bunk
f52451b719 bash: Don't DEPEND on virtual/libc-locale
For ptest only RDEPENDS is needed, and packaging glibc-locale
slowed down builds with ptest disabled.

(From OE-Core rev: 53f61ca73e69508bff6ea75da666d6873b5384f5)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-09 12:00:43 +00:00
Joshua Watt
65e5b33a25 bash: Remove .build files for reproducible builds
Bash has an internal "build number" that it tracks and automatically
increments ever time a given builds is made from the same sandbox.
However, this can make builds non-reproducible in the event that a build
directory is reused multiple times.

Remove the .build files after every build if reproducible builds have
been requested which will reset the build build number for the next
build.

(From OE-Core rev: 9754be5c22de877bd53226908d03d2eef5751808)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-24 10:36:28 +01:00
Randy MacLeod
b56fb24f03 bash: use setpriv, sed.sed to run ptests
The execscript test in bash fails when run with ptest-runner calling
'su', with the error:
   bash: cannot set terminal process group (16036): Inappropriate ioctl for device
Even with ptest-runner fixed to make a child process use the right
process group, 'su' still results in the warning above. Use 'setpriv'
instead. 'runuser' was considered and works but depends on pam so it's
ruled out.

Now that all bash tests are run as a user, the patch:
   fix-run-coproc-run-heredoc-run-execscript-run-test-f.patch
can be removed.  Also to create the account 'bashtest' in the
'run-ptest' script the bash-ptest must depend on 'shadow'. Also,
in 'run-ptest', ensure that the bash ptests are owned by the 'bashtest' user.

Add 'sed' as a dependency for ptests since tests/exp8.sub runs:
    var=$'x\001y\177z'
    declare -p var | sed -n l
and that results in:
    sed.busybox: ""
    sed.sed: declare -- var="x\001y\177z"$
This appears to be a feature that busybox sed has not implemented.

With this series of changes, bash-ptest for qemux86-64 passes
79 of 81 tests. The remaining failures are:

1. run-read:
  # cat tests/read6.sub
  # test read with a timeout of 0 -- input polling
  # sleep with fractional seconds argument is not universal
  echo abcde | { sleep 0.25 2>/dev/null ; read -t 0; }
  echo $?

  read -t 0 < $0
  echo $?

  read -t 0
  echo $? <-- returns 1, when 0 is expected.

I can reproduce this on my workstation but only when using ptest-runner
and initially logging into the console as root. That's a little odd and
seems like I need to continue to improve ptest-runner.

2. run-trap:
  # cat tests/trap3.sub
  PS4='+[$LINENO] '
  trap 'echo trap: $LINENO' ERR

  set -x

  echo 1
  echo 2
  echo 3 | cat | false <--- error
  echo 4

This is a scheduler behaviour difference between the common case
on a workstation and the common case in qemu. The test case does
warn about the completion order not being deterministic so I plan
to ignore it.

>From tests/run-trap:
  UNIX versions number signals and schedule processes differently.
  If output differing only in line numbers is produced, please
  do not consider this a test failure.

Still, it's notable and slightly odd that the common case output
is different.

(From OE-Core rev: 81e3f01867cf114b728ab5a417c29426c9bf8122)

Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-18 11:23:48 +01:00
Joshua Watt
1095ee1f62 bash: Replace uninative loader path in ptest
The Makefile used for bash-ptest can pick up the path to the uninative
loader through BUILD_LDFLAGS. This includes the full path to the
uninative loader, which is not reproducible. Replace it with /bin/false.
It doesn't appear as if these native programs are used in the test
suites and if there are likely to be other problems related to building
them using the BUILD_* flags.

(From OE-Core rev: 1208ff934a2bb6378aa8b219345110a0d56bf767)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-07 09:11:49 +01:00
Sakib Sajal
1233755420 bash: run bash ptest as non-root user
new-exp ptest fails as it expects non-root user.

>From the failed ptest log:
   < new-exp.tests: the test suite should not be run as root
   628c627
   < argv[1] = <host(2)[5.0]# >
   ---
   > argv[1] = <host(2)[5.0]$ >
   FAIL: run-new-exp

Many of the ptests declare that they should not be run as root
and a few fail since the expected result strings are for a
user shell.

When ptests are run as bash_user (non-root) the glob test
fails with error:
    run-glob-test
    59,60d58
    < touch: cannot touch 'a?': Permission denied
    < touch: cannot touch 'aa': Permission denied

So ensure that the bash/ptest/tests directory is owned by the
bash_user while the tests are being run and return it to root
owner afterwards.

(From OE-Core rev: c125609886b36048cfde6e694eee7fb47f197241)

Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
Signed-off-by: Randy Macleod <randy.macleod@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-01 11:27:07 +01:00
Sakib Sajal
56ccaa3b8d bash: add big5hkscs gconv RDEPENDS needed by bash-ptest.
glob-test failed beacuse it could not convert big5hkscs
encoding to perform comparison.

(From OE-Core rev: 8e147863c4c0fdc22da92e2e5e35502906eac916)

Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
Signed-off-by: Randy Macleod <randy.macleod@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-01 11:27:07 +01:00
Sakib Sajal
124ac408d4 bash: add iso8859-1 gconv RDEPENDS needed by bash-ptest.
One of the ptests failed for internationalization.
>From the failed ptest log:
   run-intl
   fr_FR.ISO8859-1: Error Encoding U+00000080 to  [ "$'\200'" != "\\u0080" ]
   (125 similar errors related to same encoding)
The test was unable to convert iso8859-1 encoding to perform comparison.

(From OE-Core rev: ec1849d7a5964bef53462b9d4763e22433f9d246)

Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
Signed-off-by: Randy Macleod <randy.macleod@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-29 12:54:12 +01:00
Richard Purdie
b91b4f43c9 bash: Fix bash-ptest dependencies
Bash's ptest needs glibc-utils (for locale), some extra locales for various tests
it uses options busybox doesn't support for some tools, hence coreutils and also runs
perl for some tests.

(From OE-Core rev: 7ce6f69e56ef7ccc0187722cd78728a6505073b7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22 07:24:52 +01:00
Hongxu Jia
777b33a77c bash: upgrade 4.4.18 -> 5.0
- Rebase build-tests.patch and execute_cmd.patch to 5.0

- Drop 0001-help-fix-printf-format-security-warning.patch
  and pathexp-dep.patch, upstream has fixed them in commit
  [d233b48 bash-5.0 distribution sources and documentation]

(From OE-Core rev: db044235e72a1519a081c4f6541f7d7cfe70d49f)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-12 17:55:11 +01:00
Jeroen Hofstee
9f87210a98 bash: 4.4.18 -> 4.4.23
Apply point release patches from upstream which includes a fix for
indefinitely spinning process and a zombie by a simple $() statement
in a long running script.

(From OE-Core rev: eb39670fb2fe9735a1a0434c63b64ec66599f850)

Signed-off-by: Jeroen Hofstee <jhofstee@victronenergy.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-27 23:41:41 +01:00
Martin Jansa
3f43492390 bash: add -fomit-frame-pointer to DEBUG_OPTIMIZATION for armv[45] with thumb enabled
with thumb and debug enabled bash gets stuck forever when building for qemuarm.

bash/4.4.18-r0/build/builtins$ arm-webos-linux-gnueabi-gcc  -march=armv5te -mthumb -fstack-protector-strong   --sysroot=bash/4.4.18-r0/recipe-sysroot -c  -DHAVE_CONFIG_H -DSHELL  -I. -I..  -I../../bash-4.4.18 -I../../bash-4.4.18/include -I../../bash-4.4.18/lib -I../../bash-4.4.18/builtins    -O -fno-omit-frame-pointer -g -DNON_INTERACTIVE_LOGIN_SHELLS read.c

when -mthumb, -fstack-protector-strong, -fno-omit-frame-pointer appear
together, removing one of them is enough for successful build.

similar to:
http://lists.openembedded.org/pipermail/openembedded-core/2018-May/150654.html
but in this case the build gets stuck instead of failure

(From OE-Core rev: ae41e1f263d20d5d83b2a7ca95dc955840d793e1)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-08 10:52:00 +01:00
Rui Wang
566e2de017 bash: fix wrong exit status offset
In Linux,8 bits of the return code and 8 bits of the number of
the killing signal are mixed into a single value on the exit code,
so the exit status offset should be 8. But the autoconf checker
can not determine it while cross compiling, and then it is set to
the default value 0, which will cause generating the wrong exit
code if program exit with an error code.

(From OE-Core rev: e2dea46607a24620d6d2c250efc9b2e95bfd5ad8)

Signed-off-by: Rui Wang <rui.wang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-07-18 10:18:42 +01:00
Hongxu Jia
5e161f4266 bash: 4.4.12 -> 4.4.18
- Drop bash-memleak-bug-fix-for-builtin-command-read.patch which has
  been accepted since 4.4.17

(From OE-Core rev: ec6da604012b54769db3371a8ed9ac0be4c9d0e6)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-04 13:28:01 +01:00
Ross Burton
3dc8a2bef3 bash: refresh patches
The patch tool will apply patches by default with "fuzz", which is where if the
hunk context isn't present but what is there is close enough, it will force the
patch in.

Whilst this is useful when there's just whitespace changes, when applied to
source it is possible for a patch applied with fuzz to produce broken code which
still compiles (see #10450).  This is obviously bad.

We'd like to eventually have do_patch() rejecting any fuzz on these grounds. For
that to be realistic the existing patches with fuzz need to be rebased and
reviewed.

(From OE-Core rev: 33dadb98c10fdf04d9ed9b6ba57de6257873bcea)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-09 09:17:03 -08:00