New features with AN-2018-06-11:

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

-	include/schily/jmpdefs.h: Added a fallback definition for sigjmp_buf

-	libschily::breakline() fixed a bug that caused the return code to be
	larger than the number of array elements in some cases.

	Thanks to Heiko Eifeldt for reporting

-	libschily: Some open() calls now use O_DIRECTORY

-	libschily: added a waitid() emulation based on waitpid()

-	librmt: a new function rmtrsh() has been added to set up a different
	method to initiate a remote connection. This allows to tell librmt
	to make connections with "ssh" instead of using "rcmd()" or "rsh".

	Thanks to a hint from Kristna Streitov <kstreitova@suse.com>

-	librmt: a new function rmtrmt() has been added to set up a different
	path to the remote rmt server program. This allows to tell librmt
	to make connections to servers that are on a path other than "/etc/rmt".

-	librmt: The man pages have been enhanced.

-	libfind: Some open() calls now use O_DIRECTORY

-	libfind: walk.c now uses fchdir() on platforms that support dirfd(DIR*)
	and by this change, libfind is now aprox. 30% faster than before and
	makes libfind faster than other find implementations.

-	libfind: walk.c: "!isdot" has been renamed to "need_cd" for better
	readability of the code.

-	libfind: WALK_STRIPLDOT now strips even multiple occurences of "./" 
	and if there is no text after that, it replaces the empty string by ".".

-	libfind: new functions wstat() and wlstat() have been added (both are
	based on fstatat()).

-	libfind: treewalk() now works even without fa.walkflags |= WALK_CHDIR

-	sfind: enhanced the man page to mention -chown, -chgrp and -chmod but
	with a note that this only works for libfind.

-	star: add $(LIB_ICONV) to the Makefile

-	star: man pages no longer have star(4/5) in the SEE ALSO section but
	star(4), so the automatic links from man2html(1) work.

-	star: the function has_dotdot() that checks for dangerous filenames
	that contain ../../ which has been written 15 years ago (as the first
	tar archiver to make this security check), now also checks for ..\..
	attacks on Cygwin and other DOS based platforms.

-	star: added a check for the exit code from the compress rogram. This
	helps to detect certain problems and to make star exit != 0 in such a
	case. The current code is based on siginfo_t. This is a "new" feature
	that has been introduced by SVr4 in 1989 and that has been standardized
	by SUSv1 in 1995. So it needs an OS platform that is actively
	maintained after the period 1989/1995.

	Thanks to a hint from Kristna Streitov <kstreitova@suse.com>

-	star: A hard EOF on the input now causes star to exit with a non-zero
	exit code. This is a fallback method to grant a non-zero exit code
	on platforms with an unmaintained kernel (such as Linux) where still
	no working waitid()/siginfo_t exists even though the feature has been
	introduced in 1989 (29 years ago).

-	star: The Makefile now contains a #define "USE_SSH" to compile in
	a new default to make remote tape connections using the ssh protocol
	by default instead of the previous "rsh".

	Thanks to a hint from Kristna Streitov <kstreitova@suse.com>

-	star: A new option rsh=path has been added to specify a different
	remote login program on the command line.

	WARNING: since the new default for star is to use "ssh", users that
	rely on the speed of a rcmd() connection need to either put an empty
	RSH= variable into the environment or need to specify rsh='' on the
	star command line.

-	star: A new option rmt=path has been added to specify a different
	path to the remote tape server program on the command line.

	Since star defaults to the UNIX default path "/etc/rmt", for the server
	at the remote side, and since most /etc/rmt implementations are
	dangerous in case that the OS on server and client differ, it is
	recommended to put "RMT=/opt/schily/sbin/rmt" into the environment or
	to specify "rmt=/opt/schily/sbin/rmt" on the star command line.

-	star: The environment STAR_FSYNC=N may establish a default in star
	that enables -no-fifo by default in order to prevent star from being
	slow on a platform with inefficient buffer cache (like Linux) or on
	transactional copy on write filesystem like ZFS.

	Note that on Solaris with UFS, the performance degradation from using
	the reliable mode (and issuing fsync()) is much less than 10%, while on
	Linux with the UFS clone EXT4, the performance degradation is 400%.

	If this fsync()-less default is enabled, star is always faster than other
	archivers that never had such a check, but may no longer detect whether a
	file could not be extracted correctly, since not all problems can be
	flagged in the close() return code.
	

-	star: The entry STAR_FSYNC=N in /etc/default/star may establish a 
	default in star were -no-fifo is enabled by default.

-	star: A new option -do-fifo may reverse the default from the
	STAR_FSYNC=N environment or from /etc/default/star.

-	rmt: the man page has been enhanced.

-	rmt: the comment in the program has been enhanced.

-	tartest: Some warnings that have been printed to stderr are now on stdout
	to make them all appear in the same file.

-	star_sym: added the O_DIRECTORY openflag

-	strar: add $(LIB_ICONV) to the Makefile

-	Bourne Shell: error.c needs #include <schily/wait.h> for DJGPP

-	Bourne Shell: enhance man page to mention that %n$ formats are not
	required by POSIX

-	calc::xbreakline() fixed a bug that caused the return code to be
	larger than the number of array elements in some cases.

	Thanks to Heiko Eifeldt for reporting

-	calc: now casting signed ints to unsigned ints before left shifting
	as the compilers insist in making this "undefined behavior" even though
	POSIX did require POSIX hardware to be twos complement based years ago.

	Thanks to Heiko Eifeldt for reporting

-	ved: Worked around a problem with signal handling on Linux.
	Linux is not POSIX XSI compliant and thus does not restore the signal
	mask after a longjmp() from within a signal handler. Linux needs
	sigsetjmp()/siglongjmp() instead.

-	bsh: now restoring the signal mask for SIGINT in case we did a longjmp()
	from a SIGINT handler.

-	calltree: A possible buffer overflow in the lexer is now prevented.

	Thanks to Heiko Eifeldt for reporting



-	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.
