New features with AN-2018-04-17: 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. If your smake is too old and aborts, ensure this *** by calling: cd ./psmake ./MAKE-all cd .. psmake/smake psmake/smake install *** Due to the fact that schily-tools 2014-01-26 introduced *** optimizations for the Schily version of SunPro Make, you *** need at least the dmake version from 2018/01/11 with support *** for the "export" directive to compile with this makefile system. 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 - Schily Makefilesystem: Shared libraries now may have different numbers than "1" as part of the file name if the related Makefile includes definitions for SHL_MAJOR and SHL_MINOR. Plenty of RULES files have been updated to make this change effective. This is needed as we needed to introduce a binary incompatible libfind. See libfind below. All libs used to be hardwired to the filename "libxxx.so.1". Adding a SHL_MAJOR=2 to the shared library makefile (see libfind/shlfind.mk) ressults in a "libfind.so.2". - Schily Makefilesystem: Shared libraries for HP-UX are no longer only *.sl files but *.sl.$(SHL_MAJOR) with a symlink from *.sl to *.sl.$(SHL_MAJOR). - Schily Makefilesystem: Before the locale envorinment is set to "C", we now keep saved versions with the original content under OLD_LC_* - inc/ & libschily: getfp.c no longer contains the function ___fpoff() in order to prevent gcc from understanding what it does. This avoids warnings while compiling avoffset.c - libschily: The floating point 'E' / 'F' / 'G' format now result in an uppercase INF/NAN. - libfind: Arguments containing a '=' character did result in the related argument to become incremented inside the input arg vector. This caused problems with a free() loop on the arg vector. ********** Warning: the fix causes a binary incompatibility as the struct finda_t changed it's size. As a result, we now install libfind.so.2 and changed the map file in order to require newer versions of the interface functions that are affected by the finda_t size change. ********** Thanks to Heiko Eißfeldt for reporting. - bsh: Avoid a coredump from expressions like "$2222222222222222222" that cause an integer overflow while converting the number. Thanks to Heiko Eißfeldt for reporting. - Bourne Shell: Fixed a bug in the gmatch() shell pattern matcher that was related to backslash escape handling. The commands: :>b echo ["a-c"] did incorrectly result in the string "b" even though the string "[a-c]" is expected. - Bourne Shell: Added a new #ifdef to use with "make COPTX=-DCASE_XPRINT" that allows to see better debugging messages for case statements together with "set -x". - patch: Fix for CVE-2018-1000156 An "ed" append command could fail if the address is wrong. In such a case, the editor stays in command mode and this allows to bypass the patch security filter for shell escapes. We now use "red" instead of "ed" to forbid shell escapes. - star: We now better check for the results of an ignored SIGTTIN Thanks to Robert Clausecker for reporting. - SunPro Make: Removed two useless instructions that caused warnings and that prevented a compilation with a recent C++-17 clang version. Thanks to Heiko Eißfeldt for reporting. - SunPro Make: The man page now mentions the construct ":shell=" in addition to ":sh=", as ":shell=" behaves different and expands make macros in the shell output before assigning the value. - SunPro Make: SunPro Make converts all strings into wchar_t type strings for internal processing. This concept will only work if converting any kind of pathname into a wchar_t typed string works. *********** Warning: Linux libc bug *********** On Sun/Oracle Solaris (using the IBM based i18n code) and as well on FreeBSD, there is no problem with converting any pathname using mbstowcs() in case the program in in the "C" locale. on Linux, this unfortunately fails and this is in violation with the POSIX standard that says: In the POSIX locale an [EILSEQ] error cannot occur since all byte values are valid characters. We now implement a workaround for this bug related to directory scanning by "make". Note that this workaround may not be sufficient for all cases that are affected by the Linux bug. Please report in case you observe another similar failure. - SunPro Make: The man page now mentions that the warning: "The string `%s' is not valid in current locale" is related to a failing wide string conversion and that the "C" locale may be used to work around the problem. - 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: - 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.