New features with AN-2017-05-16: 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 - autoconf/config.guess now groks Cygwin with amd64 on NT-10. Thanks to Thomas Plank for reporting. - autoconf got a new test for closefrom(). This helps to close all files from a certain fd on Solaris and recent BSDs. - RULES/rules.top: we now clear the macro COMPILE.cc= from SunPro make as well, in order to get our definition from the Schily Makefilesystem. Before, when using SunPro Make, C++ code was compiled without enabling the optimizer, as the SunPro Make default rule definition was used. - RULES/: Since SunPro Make from Schilytools now supports multiple includes with a single include directive, we added a new configuration for a SunPro Make that itself identifies now as "sunpro" via MAKE_NAME. - SunPro Make: removed an "auto" keyword in lin/bsd/src/bsd.cc as g++ 6.3 uses a new incompatible definition for "auto". The new incompatible definitin for "auto" was introduced by the new C++ standard. Thanks to Heiko Eißfeldt for reporting. - SunPro Make: Our version now identifies itself by setting the macro: MAKE_NAME=sunpro This helps to identify that a SunPro Make version supports to include more than a single file with a single include directive. - SunPro Make: Fixed a bug in the "include" parser that caused dmake with (note the 2 spaces): "include \n" to try to include a file with a name that equals the first word on the next line, regardless to whether the next line starts with a '#'. Dmake now silently ignores include directives with no filename argument which is aligned with the behavior from "smake" and "gmake". - SunPro Make: The sequence: FOO= include $(FOO) no longer complains about trying to include an empty file name but just ignores empty include lists. This makes SunPro Make better aligned as it now behaves like "smake" and "gmake". - SunPro Make: the include directive is now able to include more than a single file. This makes SunPro Make now compatible to "smake" and "gmake" and thus massively enhances the usability. - SunPro Make: HOST_MACH and TARGET_MACH now call "uname -m" if not on Solaris - SunPro Make: The option -R (do not run in parallel) has been enabled. - SunPro Make: A manpage for "dmake" has been created. - SunPro Make: The make.1s manpage now mentions the dmake.1 manpage - SunPro Make: The make.1s manpage now better explains the Special-Purpose Macros HOST_ARCH, HOST_MACH, TARGET_ARCH, TARGET_MACH - SunPro Make: Cygwin does neither have ulimit.h nor ulimit() Thanks for Thomas Plank for reporting - SunPro Make: On Solaris 10, sem_post() is not in libc. On solaris, sem_post() is not in libpthread but in librt, so we need to fix the Makefile. Because of Linux, we need to link against $(LIB_RT) _and_ $(LIB_PTHREAD). Thanks to Dennis Clarke for reporting. - SunPro Make: The source has been converted to use an external #define TEXT_DOMAIN for the textdomain() call. This is to make it compatible to the OpenSolaris-ON makefile system. - SunPro Make: No longer set NLSPATH with a string that ends in ".cat" as we no longer use catgets(). - SunPro Make: Allow to interpret the "USE_SVID" and "USE_SVR4_MAKE" environment on Linux the same way as on Solaris. - SunPro Make: Added a warning to main.cc that mentions that the automatic selection of the POSIX behavior is only possible in case that /usr/bin/make and /usr/xpg4/bin/make must be hardlinked. For this reason, /usr/bin/make and /usr/xpg4/bin/make definitely must be installed hard linked or as two separate copies on OpenSolaris. - SunPro Make: changed the #ifdefs to select between atexit() and on_exit() to be based on HAVE_ATEXIT. - SunPro Make: changed #ifdefs to make "exit_status" always available. This makes the code more readable and is not a great problem as most systems support atexit() anyway. - SunPro Make: avoid a close(i) loop if closefrom() is available. - SunPro Make: Avoid to address parts of the target strings before the start of the target string when trying to find a pattern match. - SunPro Make state: - It compiles on Solaris, Linux, FreeBSD, NetBSD, HP-UX, Cygwin (if g++ is not broken), Mac OS X. - We need feedback for AIX, OpenBSD, DragonFlyBSD, HAIKU, IRIX, SCO - Bourne Shell: kill -l now no longer lists "bad sig" for nameless signals, but rather the signal number. - Bourne Shell: conformance testsuite: some missing "\" chars have been added before $(( in order to make sure that arithmetic expressions are evaluated by the shell under test. Thanks to Robert Elz for reporting. - strar: Not yet ready, the current status is: This command is usable for basic work already The following features are currently missing: - A method to descend directory trees, e.g. libfind - A noclobber flag - A method to avoid to replace files that are more recent on disk than in the archive. - Set the file permissions - Set the original file time stamps - Set the original file owners. These features will be implemented in a future version. - 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: - Try to make lastline= while read line do lastline=$line done < /etc/passwd echo "lastline=$lastline" print the last line of /etc/passwd without the exec "trick" that is documented in the man page. - 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.