New features with AN-2016-08-08: This is the first localization step for the schily source consolidation. Many programs now (hopefully) call gettext() for all strings that need localization. - The next step will include dgettext() calls for the libraries and the missing programs - The following step will include the extracted strings - The last step will include German translations and install support for the resulting binary message object files. ----------> Please test and report compilation problems! <--------- ***** NOTE: As mentioned since 2004, frontends to the tools should ***** ***** call all programs in the "C" locale ***** ***** by e.g. calling: LC_ALL=C cdrecord .... ***** ***** unless these frontends support localized strings ***** ***** used by the cdrtools with NLS support. ***** *** WARNING *** *** Need new smake *** *** Due to the fact that schily-tools 2014-04-03 introduced to use new macro *** expansions and a related bug fix in smake, you need a new smake *** to compile this source. To ensure this, call: cd ./psmake ./MAKE-all cd .. psmake/smake psmake/smake install WARNING: the new version of the isoinfo program makes use of the *at() series of functions that have been introduced by Sun in August 2001 and added to POSIX.1-2008. For older platforms, libschily now includes emulations for these functions but these emulations have not yet been tested thoroughly. Please report problems! The new smake version mentioned above is smake-1.2.4 - ved: clear out a FILE * variable in storage.c after calling fclose(). This is to avoid a double fclose() that causes a core dump on Linux. - ved: bump version to 1.7-final - Bourne Shell: This version of the Bourne Shell has been successfully used as system shell (/bin/sh) on Gentoo Linux. To be able to use the shell as the Gentoo system shell, you need to compile the sources using "smake COPTX=-DDO_POSIX_SH" to let it auto-select 100% POSIX- mode when the last path component in argv[0] is "sh". Note that we cannot make this behavior the default as on genetic UNIX versions such as OpenSolaris, there may be scripts that would fail if /bin/sh did follow some of the incompatible changes introduced by POSIX. The problems are mainly expected with "test -t" without argument to the -t operator. Note: ksh93 supports "test -t" without argument as well and thus is not 100% POSIX. - Bourne Shell: Fixed another typo in Makefile - Bourne Shell: New control: NO_PIPE_PARENT to manually switch to the old pipe behavior. This helps to compile a shell with traditional pipe setup in case there are problems that may be caused by the new pipe setup. - Bourne Shell: The optimized pipe set up introduced in December 2015 caused a hang with the following command: echo 1 | while read a; do :; done | cat because "read" continued to read from "stdin" after an EOF on the pipe has been observed. The fixed code avoids to move back the saved stdin from file descriptor #10 after EOF was seen. Thanks to Martin Väth for reporting. - Bourne Shell: a new test for the pipe problem mentioned above has been added to the test suite. - Bourne Shell: An error message for a failing dup() from 2016-08-01 has been reverted as this can happen with non-problematic scripts as well. Thanks to Martin Väth for reporting. - Bourne Shell: The rewrite of the "test" command from 2016-07-25 caused a side-effect bug while trying to support the SVr4 "test -t" without further argument. This caused bosh to print "FAIL" with: echo 1 | bosh -c '[ a = a -a -t 0 ] && echo FAIL' In case of the bug, the "-t 0" part was not executed because the arg index was incorrectly incremented as an unwanted side effect. Thanks to Martin Väth for reporting. - Bourne Shell: The test for POSIX_BOSH_PATH has been modified to permit to have symlinks as the path string used by POSIX_BOSH_PATH. - Bourne Shell: A new #define DO_POSIX_SH allows to do "set -o posix" by default in case the last path name component from argv[0] of the shell is "sh". This is recommended on Linux in case bosh is used as /bin/sh. - Bourne Shell: The automated "set -o posix" value is now remembered and used for subshells that execute scripts. - Bourne Shell: The "trap" command now permits to set handlers for SIGSEGV. Since bosh was rewritten to be malloc()-based in April 2012, there is no need to treat SIGSEGV special anymore and POSIX does not allow to do so. - Bourne Shell: test suite now calls "pwd" before using $PWD to make sure PWD was initialized correctly. - libschily: searchinpath.c was enhanced to support a search for symlinks to support the Bourne Shell POSIX_BOSH_PATH feature. - Bourne Shell: Do not list functions when calling "set" with no arguments in case that "set -o posix" is active. Note that this POSIX requirement is seen as a POSIX bug as long as there is no POSIX command to list function definitions. NOTE that there is a related POSIX bug: http://austingroupbugs.net/view.php?id=1025 The new Bourne Shell behavior to depend on set -o posix is similar to what "bash" does. - Bourne Shell: The "type" builtin now has a new option -F to print all currently defined functions. - Bourne Shell Missing features for POSIX compliance: - Support for $'...' quoting (this is not needed for the current version of POSIX but for the next POSIX version that will be named SUSv8). The development of SUSv8 will start in late 2016. We are now expecting the Bourne Shell to be fully POSIX compliant. - Bourne Shell further TODO list: - Try to make lastline= while read line do lastline=$line done < /etc/passwd echo "lastline=$lastline" print the last line of /etc/passwd without the exec "trick" that is documented in the man page. - Finish loadable builtin support. - POSIX does not allow us to implement ". -h", so we will add a "source" builtin to be able to implement "source -h" - The following builtins (that are available in bsh) are still missing in the Bourne Shell: err echo with output going to stderr glob echo with '\0' instead of ' ' between args env a builtin version of /usr/bin/env The following bsh intrinsics are still missing in the Bourne Shell: - the restricted bsh has restriction features that are missing in the Bourne shell. - source -h read file into history but do not execute and probably more features not yet identified to be bsh unique. Author: Joerg Schilling D-13353 Berlin Germany Email: joerg@schily.net, js@cs.tu-berlin.de joerg.schilling@fokus.fraunhofer.de Please mail bugs and suggestions to me.