New features with AN-2015-06-99: 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 - include/schily/signal.h now includes siginfo.h to make sure it compiles even on very old Solaris versions where signal.h did not yet include siginfo.h. - include/schily/wait.h add a missing closing bracket for Haiku - include/schily/wait.h added CLD_* macros and the enum idtype_t in case they are missing. This allows to implement a waitid() emulation. - include/schily/wait.h now includes schily/signal.h in case that the local /usrinclude/sys/wait.h is non-POSIX and does not define siginfo_t. This is e.g. the case on FreeBSD. - The configure tests now include test that correctly identify Mac OS X as non-POSIX with respect to waitid(). This prevents potential users of waitid() from the unusable implementation on Mac OS X. The rule for accepting an existing waitid() is the following: - si.si_pid is set to be equal to the awaited pid - si.si_code == CLD_EXITED for a chilt terminated by exit(2) - si.si_status contains at least 16 bits from the exit(2) code. This is still not POSIX but better than what we would get from a historical wait*() call. - The configure tests now check for the new FreeBSD wait6() and for idtype_t. - A new symlink for x86_64-cygwin32_nt-gcc.rul was added - The hdump man page now mentions that the program also implements the od(1) comand line interface. - Install an "od" man(1) page as an alias to the "hdump" man page. - A "new" program "scut" was added to schilytools - A "new" program "spaste" was added to schilytools - Bsh now again uses our own wait3() implementation on Solaris and thus is again able to report more than just the times for the command status. Compilation now can also be controlled manually using: COPTX=-DFORCE_OWN_WAIT3 and COPTX=-DNO_OWN_WAIT3 - Bourne Shell: New timestamp for the shell version. - Bourne Shell: The builtin "times" no longer rounds up the seconds. This has become nonsense since we added milliseconds in May 2012. - Bourne Shell: the builtin "true" now causes the shell to exit in case that set -e was used. The wrong behavior was introduced in May 2014 when trus and false did become builtin commands. - Bourne Shell: is now using waitid() instead of waitpid(). - Bourne Shell: now implements a waitid() emulation based on waitpid(). This is needed on many non-POSIX platforms such as FreeBSD and Mac OS X. While newer FreeBSD include a working waitid() emulation, Mac OS X offers a waitid() that is completely unusable even though it claims to have a POSIX certification. - Bourne Shell: now implements a new function code2str() to convert the values from struct siginfo .si_code into a string. - Bourne Shell: added a new function wait_id() for backtick expansion that allows to get the whole 32 bits from the exit(2) parameter. - Bourne Shell: smake COPTX=-DNO_WAITID allows to enforce the waitid() emulation via waitpid() to enforce the old behavior where the exit code is limited to 8 bits. - Bourne Shell: a new structure "excode" and new excode variables "ex" and "retex" will be used for enhanced status reporting in the future. They currently only work correctly for non-builtin commands where the status can be retrieved from waitid(). - Bourne Shell: A new function sitos() allows to convert negative integers correctly. This is mainly needed in order to be able to print the full signed int exitcode retrieved via waitid(). - Bourne Shell: exit(1) now allows to use negative parameters. This reflects the fact that exit(2) has a signed integer as parameter. - Bourne Shell: New readonly status variables have been added. These variables are not the final state but a discussion base for a POSIX enhancement: $excode The numerical value of siginfo_t.si_code. Note that there is not yet a special value that flags "exit values" that do not come from a child process but from the shell itself. $excodename The name for $excode, created by stripping off the initial "CLD_" prefix. Currently the following names are possible: EXITED Program exited nomally, $exstatus has the exit(2) parameter. KILLED Program was killed by a signal $exstatus has signal number. DUMPED Program was killed by a signal and dumped core. $exstatus has signal number. TRAPPED Traced child has stopped STOPPED Program was stopped by a signal $exstatus has signal number. CONTINUED Program was continued. $exstatus The numerical value of siginfo_t.si_status. $extermsig The value from siginfo_t.si_status converted into a signal name using the kill(1) rules (stipping off "SIG"). This conversion always takes place, not just when the program was terminated by a signal. $exsigno The numerical value that caused the action. For now, this only affects waitid() and thus always contains SIGCHLD. Later versions of the shell will set this variable to the causing signal when a trap(1) command is executed. $exsigname The signal name for $signo $expid The pid of the process that was waited on. - Bourne Shell: If $exstatus is != 0 and $? is == 0, $? is assigned the special value 128. This helps to avoid that a script incorrectly believes that a program exited with a zero exit code just because exitcode & 0xFF == 0. - The SVr4 package meta data information for the CSW packets has been made up to date: - od is now delivered as link to hdump - cstyle is included - mdigest is included - scut and spaste are included - osh (the portable unfixed version of the OpenSolaris Bourne Shell) is included - The new libschily man pages are included - The man pages sccs-log(1), sccs-cvt(1) and sccschangeset(4) have been added - Various new include files from include/schily have been added. - various directories that are created by the package CSWcommon no longer include permission and owner information 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.