New features with AN-2018-05-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 Makefile system: A new set of rules enforces ordered execution in parallel mode with SunPro make and GNU make without ignoring the correct up to date state. - include/schily/wchar.h & wctype.h: moved wctype() & iswctype() prototypes from wchar.h to wctype.h where they belong. - libschily: checkerr.c added a new error code E_ICONV - libfind: the -newer and -newerXY primaries now compare nanoseconds as well. - libstreamar: Better comment in unicode.c - libstreamar: unicode.c is now based on iconv() to permit other locale encodings than ISO-8859-1 - libstreamar: The POSIX.1-2001 extended header keyword hdrcharset=BINARY now works. - bsh: a premature EOF in a "if" statement could cause a core dump. Thanks to Heiko Eißfeldt for reporting - SunPro Make: The manpage now contains better hints to dmake(1) for special targets that allow to control the behavior in parallel make mode. - smake: For better compatibility with SunPro Make, smake now supports to evaluate nanoseconds in file timestamps. - smake: smake no longer core dumps, when in 64 bit mode and the time is out of range for ctime(). - smake: gcurtime() and gnewtime() now print debug messages when called "smake -dd" or with higher debug level. - smake: Now using TYPE_MAXVAL(time_t) in gnewtime() instead of the method from 1996, to work around a problem with gcc-8.1 and clang-6.0. Thanks to Martin Väth for reporting - smake now should compile and work again on DOS using MinGW to compile. - smake/psmake: added a link to libschily/getnstimeofday.c to make psmake compile after adding nanosecond support - smake: Now using version 1.3 - various files: as a side effect of the new nanosecond resolution in smake and star, many files in this distribution did get an updated CDDL header with an additional URL http://www.opensource.org/licenses/cddl1.txt - copy: is now using utimens() instead of utimes() and thus copies nanoseconds instead of microseconds. - copy: Sparse file copying on platforms without _PC_MIN_HOLE_SIZE did use an uninitialized blocksize. - mkisofs: The link count computation did incorrectly count all directory entries for large (multi extent) files. This resulted in a link count that was "real number" + (sizeof file / 2GB) Thanks to Cezary Sliwa for reporting - mkisofs: multi extent files with -T did cause a core dump on Linux due to a multiple free() that was caused by looking at more than the major directory entry for a multi extent file. Thanks to Cezary Sliwa for reporting - mkisofs: File meta data for UDF directories that refer to a Rock Ridge relocated directory have been emitted as all zeroes. Thanks to Cezary Sliwa for reporting - mkisofs: added a hint to the man page that -udf also implies rationalized Rock Ridge and -r also implies rationalized UDF. Thanks to Cezary Sliwa for reporting - cdrtools: Version bumped to 3.02a10 - star: Since 1985, star by default only extracts files from an archive if they are newer than the file on disk. The check whether files in the archive are newer than in the filesystem has been extended. Star now checks nanoseconds as well when in extract mode in case the archive contains timestamps with sub-second resolution. Warning: since historic tar archives store timestamps only with second resolution, extrating such an archive results in files that have the nanoseconds of the timestamps set to 0. If you later extract another archive with POSIX.1-2001 extenden headers that include nanosecond timestamps, all files on disk are considered to be older than the same files in the archive and thus extracted again. Note that since an incremental back usually takes much longer than a second, star currently still only compares seconds in the timestamps of files when deciding whether a file is put into an incremental backup. Files that have been created with the same second timestamp as the start of the last incremental are included in the next incremental, so no file is lost because of this decision. - star: The nanosecond handling in append mode has been verified and the related comment has been enhanced. - star: "star -c -newer ..." now checks nanoseconds as well. - star: Added a new archive format "epax". This is the same as "pax", but it always includes a POSIX.1-2001 extended header with timestamps with nanosecond resolution. - star: Better comment in unicode.c - star.c: unicode.c is now based on iconv() to permit other locale encodings than ISO-8859-1 - star: The POSIX.1-2001 extended header keyword hdrcharset=BINARY now works. - star: When in copy mode, star now uses hdrcharset=BINARY to avoid charset conversion problems. - star: Now using version 1.5.4 - strar: Now using setlocale() and gettext() - strar: Man page now mentions libstreamar(4) - 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.