New features with AN-2018-08-24: 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 - configure: Gentoo comes with a so called "ccache" environment that prevents configure from detecting a /path/to/gcc <-> /path/to/cpp relation and as a result, the localized linker map file was created empty because the CPP fallback "GCC -E filename" was used. Background: GCC is buggy since a long time and does not accept abitrary file names with gcc -E, while gcc's cpp does correctly. Since Gentoo virtually comes with an incomplete gcc installation, the result from "configure" was not useful. We now check whether "gcc -E - < filename" works and use a related command in case that this works while a gcc related "CPP" could not be found. This is implemented by a new Makefile variable $(CPPX_IN) that contains "- <" In case that "gcc -E - < filename" works. Thanks to Matin Väth for reporting. - configure: rules.cnf.in now has better comment inside. - COPYING: added pbosh and the license name for patch - Makefile system: The smake specific rules in RULES have been modified in order to make then behave closer to the related rules for gmake and SunPro Make. We no longer depend on the auto-OBJECTDIR property of smake but rather explicitely specify the object directory in the path names. - Makefile system: the programs in the directory "inc" no longer depend on the time stamp of the object directory. This avoids to recompile several sources because e.g. incs/*/align.h has been remade as a result of this unneeded dependence. - Makefile system: the localized man pages are now created together with the main programs already. This avoids to delay this task to the time when "make install" is called where "make" may need to run with root privileges. If you do not like to create the localized man pages with a normal compilation, call: smake MAN= - Makefile system: a new target "localize" allows to tell the make file system to make the localized versions of scripts. - Makefile system: The internal macros CFLAGS & CPPFLAGS have been renamed to C_FLAGS and CPP_FLAGS. This makes CFLAGS and CPPFLAGS free and results in a lower probability that people who set e.g. CFLAGS while compiling will end up with a completely failing Makefile system. - README.compile: Typo correction. Thanks to Leonard König for reporting. - libschily: Several functions have been missing from the linker map file because they are fallback implementations and because they have been forgotten. As a result, dynamic linking did not work anymore on Linux since library versioning has been made working and the fallback implementation for e.g. strlcat() from libschily was not visible anymore. - libfind: A set of new primiary operators has been added: -newerat -newerct -newermt These primaries allow to check whether a file is newer than a time stamp description in it's argument. The argument to this primary is a date and time description that is similar to ISO 8601. The time description may look like: yyyy-mm-ddThh:mm:ss.nnnnnnnnn+-zzzz for a time with timezone or yyyy-mm-ddThh:mm:ss.nnnnnnnnnZ for GMT based time or yyyy-mm-ddThh:mm:ss.nnnnnnnnn for local time. The 'T' may be replaced by a space. The description may be shortened from the right side, in this case the missing fields are assumed to have the maximum value. It can be shortened from the left side and in that case, the missing fields are substituted by the current date. The call find . -newermt 2017 will find all files with a modification time with the start of 2018 or newer. The call find . -mewermt T will check for files that have a modification time of the start of tomorrow or newer. - libstreamar: The man page now explains the "status" keyword. - libstreamar: return -2 with strar_send() to signal that a non-plain file was seen in non-meta data mode. - star: The star archive format man page has been updated to match the current state. - star: The archive format detection for the XUSTAR format now also checks for base 256 numbers in atime/ctime. - strar: when called as strar -c -nometa, a better message is now printed when a non-file is seen. - cdda2wav: the scripts cdda2ogg und cdda2mp3 are now automatically localized when calling "make all". - Bourne Shell: smake COPTX=-DNO_SIGPROF allows to run the shell with gprof. - Bourne Shell: the compile variant "osh" has been renamed to "obosh". The reason for doing this is that in UNIX version 7, the Thompson Shell has been available under the name "osh" and we like to avoid a confusion with this shell. - Bourne Shell: bumped the version to allow to find whether the shell supports find -newermt. - p: While in UTF-8 mode and displaying a file with ISO-8859-1 chars, EOF no longer results in an endless loop in case that less than MB_CUR_MAX chars are in the buffer. - p: While in UTF-8 mode, displaying a file with ISO-8859-1 chars no longer displays "?"s for the 8-bit chars but the ISO-8859-1 chars. - ved: screen.c: Typo corrections in the comment. - ved: starting to convert ved to be able to support multi byte characters. This first set of changes is not dangerous as it just cleans ups the current unsigned char support. - ved: ved.h: a new type eint_t has been introduced that is the single/multi byte abstraction from wint_t - ved: the ISO-8859-1 and Unicode character 0xFF is no longer displayed as ~^? but as ij ligature (sometimes called y diaresis). Note that VED was 8 bit clean in 1980 already, but until the end of the 1980s, the character 0xFF was used as another DEL character. - ved: the binding function tables now have 256 instead of just 128 entries. This allows to implement the character 0xFF as plain character but also makes the 8-bit control characters beep (for an error) instead of replicating the function of the related 7-bit control charactes. - 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.