New features with AN-2018-10-30: 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 The new smake version mentioned above is smake-1.2.4 The recent smake version is smake-1.3 *** 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! - Fixed a bug in the OS400 support that caused the linker flags for shared libraries to be cleared. We now use LDOPTDYN= -shared instead of the GCC default -shared -Wl,-soname,$(TARGET) as the linker on OS400 does not support -Wl,-soname - include/schily/walk.h: Added new flags to struct WALK that allow to signal that owner/group, modes or times have been changed in struct stat: #define WALK_WF_CHOWN 4096 /* changed st_uid or st_gid */ #define WALK_WF_CHMOD 8192 /* changed st_mode */ #define WALK_WF_CHTIME 16384 /* changed st_mtime or st_ctime */ - psmake: added ovstrcpy.c to "lnfiles". "cpfiles", "rmlinks" and "MAKE-sh". See ovstrcpy.c move to libschily below. - libschily: ovstrcpy() from various programs has been moved to libschily. This affects smake, mkisofs, patch, ved, count, sformat - libfind: walkcwd() no longer tries to call dirfd() unless it exists or DIR->dd_fd exists. This should make it compile with DJGPP again. - libfind: the time parser now supports the new time spec "now" for the current time. - libfind: The new primaries -chatime, -chctime, -chmtime allow to set the time stamps in struct stat to arbitrary values. - libfind: A new primaries -chfile allows to set the modified struct stat values from -chown, -chgrp, -chmod, -chatime, -chctime, -chmtime to the file. On platforms where chmod() is not possible on a symbolic link, symbolic links are skipped with that change. On platforms where it is not possible to set times on symbolic links, symbolic linkes are skipped with that change. - libxtermcap: static ovstrcpy() has been moved to libschily. - sfind: new primaries -chatime, -chctime, -chmtime - sfind: The new primary -chfile allows to set the modified struct stat values from -chown, -chgrp, -chmod, -chatime, -chctime, -chmtime to the file. - sfind: the primaries -chown, -chgrp, -chmod are now available in the program variant as well since we now have -chfile that makes them useful in the generic case as well. - sfind: documented the new primaries -chatime, -chctime, -chmtime - sfind: documented the new primary -chfile - count: fixed some minor bugs in multi byte character handling for illegal character sequences. - ved: the central character input routine now may be compiled to convert multi byte characters to wide characters. - Bourne Shell: disable a check for /usr/lib/locale if we are not on Solaris. This is needed in order to make sure setlocale() is called on NetBSD. This disables our check that is intended to avoid a "bad locale" message when in single user mode with a split root filesystem when /usr is not yet mounted. Thanks to Michael Bäuerle for reporting - Bourne Shell: calling "repeat -test" did result in 4 Usage messages. A missing exit from a loop has been added. - Bourne Shell: new primaries -chatime, -chctime, -chmtime, -chown, -chgrp, -chmod, -chfile in the built in find(1) - star: changed the members of struct dumpdates to have the prefix dd_ in all members. - star: Enhanced the comment in fifo.c and fifo.h - star: Added "volatile" to a selection of struct members in struct m_head. This should help to avoid specific optimization from newer compilers that could cause problems with the synchronization of the fifo. - star: added new flag members (eflags & pflags) to struct m_head to make sure that the probability of changing too much with &= and |= operators in only a single flag word is reduced. We added: eflags for flags that are only used in preparation of an exit pflags for flags that are modified only by the put side of the FIFO when doing changes at unpredictive time slots. - star: make sure that "star -c" results in a non-zero exit code if it is interupted by ^C. Note that star catches ^C in order to avoid to create defective tar archives (similar to a GNU tar bug) in such a case, but previously behaved like SunOS tar that finishes with the current file, writes a correct EOF record to the archive and then exits with 0. The star exit code in case of a ^C with star -c is -4. - star: Added new code to allow to debug a hanging FIFO. If the FIFO hangs, use "ps -efc| grep star" to find the two process IDs for the two star processes and then call: kill -RTMAX kill -RTMAX and report the output that appears after sending this signal to both processes. - star: the path name length and the link name length are now set from the POSIX 2001 extended tar headers in case that a name appears in that extended meta data. This may speed up thigs that need to know the path name length. - star: Star now retrieves the current working directory in extract mode. If this fails, it is not seen as a severe error and star continues to work. - star: the behavior for links in the default case (with -secure-links active) has been made more user friendly. Star now only flags links that point outside the current working directory. This makes all tar extractions in default mode safe as long as they are done inside an empty diretory. - star: various Cstyle changes - star: documented the new primaries -chatime, -chctime, -chmtime These primaries allow to archive files with aribitrary time stamps. If you e.g. like to archive all files with the current time, use: star -c -find . -chmtime now - mkisofs: documented the new -find primaries -chatime, -chctime, -chmtime - p: The pager no longer reduces the output width by one in case that the terminal has the "am" and the "xn" property set. This in special allows to write up to the end of a line in "xterm". Note that we still reduce the output width by one in case that the terminal has no termcap entry and in case that the terminal has "am" but not "xn". If we did not reduce the output width in that case, this would cause the output files from script(1) to become hard to read. Thanks to Steffen Nurpmeso for helping to find the related problem. - termcap: The termcap program now has a nw option "-oneline" that causes the termcap entries to be always written as a single line. This helps to use grep to check for terminals with specific features in the termcap data base. - 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, joerg.schilling@fokus.fraunhofer.de Please mail bugs and suggestions to me.