Link [ pkgsrc | NetBSD | pkgsrc git mirror | PR fulltext-search | netbsd commit viewer ]


   
        usage: [branch:branch] [user:user] [path[@revision]] keyword [... [-excludekeyword [...]]] (e.g. branch:MAIN pkgtools/pkg)




switch to index mode

recent branches: MAIN (1h)  pkgsrc-2024Q1 (6d)  pkgsrc-2023Q4 (53d)  pkgsrc-2023Q2 (85d)  pkgsrc-2023Q3 (165d) 

2024-05-23 18:20:02 UTC Now

2020-05-12 09:06:39 UTC MAIN commitmail json YAML

pbosh: Update to 2020-05-11

tbl of NetBSD does not work, install man page with unprocessed tables as
workaround.

Changes from AN-2020-03-11:
- configure: The autoconfiguration now has an enhanced test for waitid()
that was needed since Mac OS is still not POSIX compliant and returns 0
instead of the signal number for a process that has been killed by a
signal. MacOS did pass the POSIX certification as a result of a missing
test for that problem.

Since every vertified OS needs to run an annual refresh the
certification with recent versions of the test, I guess that
Mac OS (Catalina updates) may become more compliant witin a year.

- psmake: The portable bootstrap compile environment for smake missed
a symlink for unsetenv.c to libschily since the related code has been
moved to libschily in 2018. This prevented compilation on IRIX.

Thanks to Kazuo Kuroi for reporting

- libshedit: mystdio.h now calls #undef sprintf and #undef snprintf
before redefining the names. This avoids clang warnings on MacOS.

- Bourne Shell: set -m now works in scripts as well. Before, bosh did
never call startjobs() when the shell startup was done with a shell
script.

- Bourne Shell: The shell now supports the alternate ;& switch
command limiter in addition to ;; where ;& implements a fallthrough
to the next command list regardless on thether there is a match or not.

- Bourne Shell: The file xec.c has been reindented for the "case" support
code in the interpreter. The indentation is now one tab less so code
becomes more readable.

- ved/bsh/bosh: map.c now includes better command for the routines that
implement fallback to some basic mapping when no user defined mapping
has been set up.

Changes from AN-2020-03-27:
- Bourne Shell: The case statement now supports the alternate end case
symbol ";;&" that has been introduced by bash. If ";;&" is used instead
of ";;", the next pattern list is evaluated and if there is a match,
the related command list is executed.

Changes from AN-2020-04-18:
- Bourne Shell: IRIX has ls(1) installed as /sbin/ls and this caused
some of our unit tests to fail. We now only check for "bin/ls" and
no longer for "/bin/ls" in "type" return messages.

- Bourne Shell/bsh: signames.c has been modified to work correctly if the
number of statically defined realtime signals is odd. This applies to
NetBSD and caused the shells to miss RTMIN+15 on NetBSD.

Thanks to Robert Elz for reporting

- Bourne Shell: A new trap code "ERR" as been introduced. This is modeled
after a feature from ksh88. "trap cmd ERR" causes "cmd" to be called
whenever a command causes a non-zero exit code. The "cmd" is not called
in case that with "set -e" the shell would not exit.

This is not required by POSIX but helpful.

- Bourne Shell: A new set of unit tests for the ERR trap has been added.

- Bourne Shell: An attempt to fix the POSIX behavior for set -e from
October 2018 has been identified to be wrong. If we kept that change,
a list with "set -e; ..." and a failing command would not exit as
expected.

- Bourne Shell: A new piece of code has been added to handle set -e
for function calls.

- Bourne Shell: The man page now better explains the behavior, if in
set -e mode.

- Bourne Shell: print.c::prs_cntl() could cause a buffer overflow with
"unprintable" multi byte UNICODE characters that are printed as list
of octal escape sequences. the buffer overflow happened because there
was only redzone space for one such octal escape sequence.

Thanks to Heiko Ei�feldt for reporting

Changes from AN-2020-05-11:
- Makefile system: A new version of the BSD make (bmake) program fixed
a bug in pattern macro substitution, so we are now able to detect
BSD make and to read BSD make program specific rules.

This could in theory allow us to support BSD make in the future,
but...

Note that we on the other side discovered a new bug with pattern
macro substitution in bsd make: The substitution:

$(FOO:%=bar/%)

is replaced by "bar/" with an empty "FOO", but of course, with an
empty FOO, the substitution should be empty as well.

This second bug (above) was fixed on May 6th, but we do not yet have
all needed make rules and we do not know whether other bugs may still
prevent the usability of BSD make. Supporting BSD make will be hard
as BSD make does not support pattern matching default rules and this
is important for placing the .o files into a sub-directory.

Also note that the portable program source for "bmake" from "pkgsrc"
is 2 years old and thus currently cannot be supported at all. If
you like to experiment on your own, you need to get this version:

http://crufty.net/help/sjg/bmake.html

see

http://www.crufty.net/ftp/pub/sjg/bmake.tar.gz

and replace the newer files from the netbsd.org CVS tree by hand in
order to fix the first and second mentioned pattern macro substitution
bug.

- Makefile system: RULES/MKLINKS was enhanced to create a new symlink
RULES/r-bsdmake.tag that points to RULES/r-make.tag

- Makefile system: The archive makefiles.tar.bz2 has been added to the
schilytools tree to allow easy reuse of the makefile system for own
projects.

- Bourne Shell: The unit tests for the new ERR trap did not work on
Solaris because /bin/false on Solaris causes an exit code of 255.
We now only check for an exit code != 0.

- Bourne Shell: Some of the unit tests for the trap command are now only
run in case that the SUT is "bosh".

- Bourne Shell: set -- now checks the '\0' character at the end of
the string "--". This fixes strange behavior with argument strings that
start with "--".

- Bourne Shell: Added a new flag XEC_INFUNC to the xflag parameter to mark
the fact when inside a function.

- Bourne Shell: set -e no longer causes commands with nonzero exit code
to abort inside a function in case that the return code of that function
is evaluated by e.g. an "if" statement.

Thanks to Koichi Nakashima for reporting

- Bourne Shell: A unit test for the above bug has been added.

- Bourne Shell: $- may no longer be partially wrong (and miss the state
of the -e flag).

Thanks to Koichi Nakashima for reporting

- Bourne Shell: under some rare conditions, the syntax tree -> cmdline
converter could omit a command delimiter. This was the result of the
fact that a helper variable "didnl" (used for codeoutput beautifying)
was not reset in func.c and thus could cause

printf a ; printf b

to print "aprintf b" instead of "ab"

Thanks to Koichi Nakashima for reporting

- Bourne Shell: A unit test for the above bug has been added.

- Bourne Shell: A command like:

command | while read name; do loopcmd; done

did stop after the first loop because "read" did then read from stdin
instead of using the pipe file descriptor. This happened only of
"loopcmd" was not a shell builtin.

Thanks to Koichi Nakashima for reporting

- Bourne Shell: A unit test for the above bug has been added.

- Bourne Shell: When we added support for ${var+value with spaces}
4 years ago, we forgot to enhance the lexer the same way for things
like "${var+value with spaces}" and "${var+"value with spaces"}".
This has been forgotten, because a different part of the lexer is
used to parse that kind of quoted strings. The lexer now supports
looking for closing '}' in quoted text as well.

Thanks to Koichi Nakashima for reporting

- Bourne Shell: A unit test for the above bug has been added.

- Bourne Shell: The expression "${var1#"$var2"}" has been introduced by
ksh88 with strange rules for the way the double quotes past # are
handled. We now support them....

Thanks to Koichi Nakashima for reporting

- Bourne Shell: A unit test for the above bug has been added.

- Bourne Shell: Some unit tests from "mksh" (that previously have been
disabled) have been enabled, since the two changes above now make
the Bourne Shell behave like "mksh" for these 6 additional tests.

(micha)