New features with AN-2018-05-25: 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 - README.compile: Added a hint on how do disable C++ compilation via make make C++BUILD=off - 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. The new rules affect localized scripts. - psmake/MAKE-sh: added -D_GNU_SOURCE for Linux compilation. Thanks to Jan Engelhardt for reporting - libschily: updated the mail addresses in the man pages. - libfind: removed blank line in the linker map file - libfind: the id cache (uid/gid <->name mapping) now helps star to find whether a user name or group name is not completely 7 bit ASCII and thus needs a locale conversion in star POSIX.1-2001 extended headers. - smake: Added a new section "SOURCE DOWNLOAD" to the man pages. - star: user name, group name, path and linkpath are now automatically added to the POSIX.1-2001 extended header in case that they include non-ASCII characters (outside the 7-bit range). - star: if mtime is negative, mtime is too large for a POSIX.1-1988 TAR header or if nanoseconds are non-null and the archive format supports POSIX.1-2001 extended headers, the times are now always recorded in an extended header. This is a requirement from newer POSIX versions. - star: Since the probability for creating POSIX.1-2001 x-headers did raise, we cannot make assumptions anymore just from the existence of an x-header. While doing archive format detection, star is no longer happy with a 'x' or 'g' header to decide that an archive is in "exustar" format but requires a SCHILY.archtype keyword. - star: The fifo is now using a better autoconfiguration in order to prevent it to try to use shmget() on DOS. This makes star compile with DJGPP. - star: a new option (-pax-o) has been added. This currently only implelents the flag "binary" that tells star to add a field hdrcharset=BINARY to the extended headers. - star: better comment in Makefile - star: fixed an ununitialized finfo.f_flags in flush_link() Thanks to Martin Liska from Suse for reporting - star: updated the mail addresses in the man pages. - mt: updated the mail addresses in the man pages. - rmt: updated the mail addresses in the man pages. - rscsi: updated the mail addresses in the man pages. - sfind: updated the mail addresses in the man pages. - ved: A better algorithm to reuse outdated slots in the .vedtmp file has been introduced. This prevents the .vedtmp file from growing too fast. - ved: the .vedtmp file reserves 13 chars for the "dot" offset but it did not yet check whether the actual offset overflows 13 chars and thus makes the size of the entries non-unified. We now make sure that longer offsets are not written. Note that 10**13 is aprox. 2*44, which gives a lot of room for the future. Since the same limitation applies to the time_t value, we are still able to use this method in aprox. a million years. - SCCS::admin Renamed a variable "unlock" because of name space pollution on DJGPP. - sformat: The man page used .cs that dos not work with GNU troff because of a GNU troff bug. We no longer use this command for nroff. Note that the GNU troff bug still applies if you try to print the man page. - sformat: History and Download sections have been added to the man page - Bourne Shell: Fixed a problem with vfork() support. Calling: no/file | more caused the vfork()ed child to set "exitcode" in the parent to 127 as a result of the shared memory, so this variable also needs a reset in the parent. The bug caused the shell not to reset the tty process group and this caused the shell to either stop with SIGTTIN (Solaris) or to exit (Linux). - Bourne Shell: bltin.c needs #include in case that the platform does not support the POSIX standard waitid() and CLD_EXITED. This is e.g. true for DJGPP - Bourne Shell: service.c DJGPP does not have ETXTBSY, so use #ifdef - Bourne Shell: macro.c needed an additional flag XEC_ALLOCJOB for Command Substitition since the reworked perser/interpreter that uses vfork() and optimized pipes otherwise would overwrite the existing job slot and as a result causing trouble with commands like: sccs diffs `sccs tell ` | more as this would not restore the shell tty procress group anymore. - Bourne Shell: Implemented a better workaround for incomplete/buggy waitid()/waitpid() implementations as on AIX, Linux, Mac OS X or NetBSD. Since in these platfoms, wait*() always reaps childs, we cannot call getpgid(pid) after we did wait and as a result, jobcontrol is affected with the following command: dosh 'nroff -u1 -Tlp -man $@ | col -x' | more and this causes the shell to suspend because of a SIGTTIN or to die because of an EIO from read(0, ... In the better workaround, we call getpgid(pid) before we call waitid() and use the result instread of guessing the process group id. - Bourne Shell: better comment in jobs.c::allocjob() - Bourne Shell: The job printing function now converts strings like \a\b\c to 'abc' to get better readable output for the "jobs" command. - mkisofs: tree.c now casts a constant to off_t - cdrtools: Added a new section "SOURCE DOWNLOAD" to the man pages. - p: wcslen() needs #include for size_t - 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.