New features with AN-2017-05-03: 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: added a test for atexit() and on_exit() for SunPro Make - autoconf: added a test for sys/loadavg.h for SunPro Make - autoconf: Added a new test for getloadavg() for SunPro Make - autoconf: added a test for ranlib.h for SunPro Make - autoconf: added a test for "libnsl" and $(LIB_NSK) as SunPro Make uses gethostbyname() - autoconf: Added new tests for host2netname() and netname2host() for SunPro Make - autoconf: added a test for the existence of timestruc_t in sys/stat.h - autoconf: Added new tests for atexit() vs. on_exit() - autoconf: Added new tests for vprintf(), vfprintf(), vsprintf(), vsnprintf() for SunPro Make - schily/maxpath.h now supports MAXNAMELEN to help with SunPro Make - schily/unistd.h extern char **environ is now in the cplusplus guard - schily/libport.h no longer uses a formal parameter named "new" in order to avoid problems with C++ - RULES/cc-*.rul: The compiler files without C++ support no longer have a tab after $(NUMBER_SIGN) as this prevents the intended use case. - RULES/9000-725-hp-ux-gcc.rul and RULES/cc-hp.rul now support creating shared libraries by using "ld -b" instead of using the compiler to link. - SunPro Make is now listed in TARGETS/ and thus automatically compiled. As there is not yet any feedback for rare platforms, the compilation has been moved to the end to allow to compile the rest in case of a problem. - SunPro Make general porting work: - Makefiles now contain -DSCHILY_INCLUDES to make sure that the schily inlude files are selected - Converted to use schily/getcwd.h to allow to use both getcwd() and getwd() - The automated switch to POSIX behavior now also appears when xpg4/bin/ is part of the pathname of the make binary. - Use and the #define stat_mnsecs() to access the nanosecs from struct stat in a platform independent way. - Use HAVE_ATEXIT instead of wrong heuristic in order to distinct between atexit() and on_exit() - Reorder the includes to have most includes done by - Make/include/mksh/defs.h - Make/include/vroot/args.h - SunPro Make: ported to FreeBSD: - Changed some variables from int to long as they are used with scanf("%ld"). The reason is: FreeBSD by default compiles 64 bit binaries with int != long - Changed some #includes to be more portable - made some #ifdef's less OS specific but rather specitic to a usecase. - Added $(LIB_INTL) to the link list in the Makefile as FreeBSD needs -lintl for gettext() - Added $(LIB_NSL) to the link list in the Makefile as FreeBSD has no -lnsl but gethostbyname() in libc. - #include removed, it is never used in the non-distributed version we support. - the type timestruc_t is only available on Svr4. We now use a #define to "timespec" in case that timestruc_t is missing. - FreeBSD does not support O_DSYNC, use O_SYNC instead. - Use #include to cover all platforms. - SunPro Make: Ported to HP-UX: - Removed -D_FILE_OFFSET_BITS=64 from Makefiles as we now use the portable -DUSE_LARGEFILES from WARNING: SunPro Make cannot be compiled in largefile mode on HP-UX-10.x as there is a bug in /usr/include/_inttypes.h that prevents C++ programs to use the large file mode. If you do not need the largefile mode, compile with: smake CCOM=gcc C++OPTX=-DNO_LARGEFILES or fix the file /usr/include/_inttypes.h manually. - HP-UX-10.x does not have wctype.h, use #ifdef HAVE_WCTYPE_H and do nit include it - wchar.h includes the neexed definitions on HP-UX-10.x. - Creating shred librawies with HP-UX is now supported - SunPro Make: Ported to MacOS X - Mac OS X needs -lc when creating a shared library - SunPro Make: AIX has not yet been tested... our test machine is waiting for a AC power installation. If you are interested, test and report! - bsh: kill -l now works to list realtime signals with FreeBSD and NetBSD. - Bourne Shell: kill -l now works to list realtime signals with FreeBSD and NetBSD. - 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.