1New features with AN-2017-06-29:
2
3This is the first localization step for the schily source consolidation. Many
4programs now (hopefully) call gettext() for all strings that need localization.
5
6-	The next step will include dgettext() calls for the libraries and the
7	missing programs
8
9-	The following step will include the extracted strings
10
11-	The last step will include German translations and install support
12	for the resulting binary message object files.
13
14----------> Please test and report compilation problems! <---------
15
16***** NOTE: As mentioned since 2004, frontends to the tools should *****
17*****		call all programs in the "C" locale		   *****
18*****		by e.g. calling: LC_ALL=C cdrecord ....		   *****
19*****		unless these frontends support localized strings   *****
20*****		used by the cdrtools with NLS support.		   *****
21
22		*** WARNING        ***
23		*** Need new smake ***
24
25	*** Due to the fact that schily-tools 2014-04-03 introduced to use new macro
26	*** expansions and a related bug fix in smake, you need a new smake
27	*** to compile this source. To ensure this, call:
28
29	cd ./psmake
30	./MAKE-all
31	cd ..
32	psmake/smake
33	psmake/smake install
34
35
36	WARNING: the new version of the isoinfo program makes use of the
37		*at() series of functions that have been introduced by Sun
38		in August 2001 and added to POSIX.1-2008. For older platforms,
39		libschily now includes emulations for these functions but
40		these emulations have not yet been tested thoroughly.
41		Please report problems!
42
43	The new smake version mentioned above is smake-1.2.4
44
45
46-	configure: The tests for -lsocket and for -lnsl/-lnetwork
47	have been better separated to correctly recognize -lnetwork
48	on Haiku.
49
50	Thanks to a report from Heiko Ei�feldt
51
52-	configure: the vfork() test has been enhanced to check whether
53	a modification in the data segment of the child affects the
54	parent as well. This feature is used (needed) by the Bourne Shell
55	to signal a ENOEXEC case for shell scripts to the parent and in
56	general to report the reason for a failed execve() call back
57	to the parent.
58
59	Note that vfork() in Haiku does not share data and thus canot
60	be used by the Bourne Shell.
61
62-	configure: a new test AC_STAT_FILES has been written to replace
63	AC_CHECK_FILES. AC_CHECK_FILES does not work on Haiku due to
64	a bug in "bash" that makes "test -r /dev/stdin" to report an exit
65	code of 0 even though the file /dev/stdin does not exist.
66
67-	Schily Makefilesystem: RULES/rules.loc and RULES/rules.man have been
68	made safe against a parallel make program like SunPro Make.
69
70	Thanks to a report from Heiko Ei�feldt
71
72-	Schily Makefilesystem: SunPro Make does not understand ".PHONY:".
73	Use the AT&T method "FRC" as well to make the .PHONY targets always
74	out of date.
75
76	Thanks to a report from Heiko Ei�feldt
77
78-	Schily Makefilesystem: added a new target "uninstall" that removes
79	all non-directory type files that previously may have been installed via
80	the "install" target.
81
82	Thanks to a report from Michael Siegel
83
84-	smake fixed some GCC warnings for unused variables.
85
86-	smake: include some BSD and Mac OS related include files earlier
87	in the file archconf.c in order to get HW_MODEL #defined earlier.
88
89-	cpp: Added a workaround to "Makefile" for a bug in SunPro Make
90	that results in not checking for a new file in VPATH.
91
92-	tartest fixed some GCC warnings for unused variables.
93
94-	p: The pager now supports UTF-8 characters. The pattern matcher
95	has not yet been enhanced to match any multi byte character by a '?'.
96
97-	Bourne Shell: the behavior for exiting with command substitutions
98	has been changed to match general rules for the POSIX shell.
99
100	This causes:
101
102		bosh -c '(set -e; echo ERR `false`; echo ERR); echo OK'
103
104	to print:
105
106		ERR
107		ERR
108		OK
109
110	Thanks to a report from Robert Elz
111
112-	Bourne Shell: A command substitution no longer sets "retval"
113	for $? to make shure, exit/return without parameter use the
114	exit value from the last regular command and not the exit code
115	from the last command substitution.
116
117	Thanks to a report from Robert Elz
118
119-	Bourne Shell: A compliance test has been added for above bug.
120
121-	Bourne Shell: "Y=${X=b} Z=$X; echo $Z" now again prints "b"
122	instead of the incorrect "Y=b". This fixes a bug introduced
123	2012-04-11 while trying to make the shell be correct even
124	when the string stack is relocated as a result from a realloc()
125	call.
126
127-	Bourne Shell: A compliance test has been added for above bug.
128
129-	Bourne Shell: There now may be further options between
130	-c and "commandstring" as required by POSIX.
131
132		bosh -c -x 'echo foo'
133
134	and
135
136		bosh -c -o time 'echo foo'
137
138	or
139
140		bosh -c +o time 'echo foo'
141
142	now work. Before, only bosh -c 'command' did work, as 'command'
143	was implemented as an option argument for -c.
144
145-	Bourne Shell: When parsing numbers, additional chars after
146	digits are now flagged as an error. This prevents the shell
147	from silently accepting "shift 0x12" as "shift 0".
148
149	Thanks to a report from Robert Elz
150
151-	Bourne Shell: The parameter expansion ${var-word} now
152	processes "word" for IFS field splitting.
153
154	Thanks to a report from Robert Elz
155
156-	Bourne Shell: A compliance test has been added for above bug.
157
158-	Bourne Shell fixed some GCC warnings for unused variables.
159
160-	Bourne Shell: non-existent 2> /dev/null did not redirect the error
161	message while /non/existent 2> /dev/null did redirect. This is a
162	very old Bourne Shell bug from ~ 1977.
163
164	Thanks to a report from Heiko Ei�feldt
165
166-	Bourne Shell: a compliance test was added for above bug.
167
168-	Bourne Shell: The management code in the Bourne Shell used hard links
169	to ensure that a shell /tmp File (e.g. representing a here document)
170	lives at least as long as the processes that need the file. Hardlinks
171	on Haiku are not implemented even though link() exists. We therefore
172	now copy the /tmp/ file content to a new /tmp file if errno from
173	link() is any other then EEXIST.
174
175	Thanks to a report from Heiko Ei�feldt
176
177-	Bourne Shell: a compliance test was added for above bug.
178
179-	Bourne Shell: A bug introduced March 15 2017 was fixed. At that
180	time, the expansion for $PS4 was modified to use _macro() instead of
181	macro() but _macro() does not reset the "stack top" and thus left
182	active text on the stack that was later included while expanding
183	e.g. the argument "/dev/null" for "> /dev/null". As a result,
184	bosh in -x mode could complain about:
185
186		'+ /dev/null' cannot open
187
188-	Bourne Shell: a compliance test was added for above bug.
189
190-	Bourne Shell: Compliance test sh/tests/shelltests/here/here02.sh
191	Test "here24" added a workaround for a ksh93/bash/mksh POSIX
192	non-compliance bug. These shells illegally expand "\E" to the ESC
193	character when using the built in "echo" command. We changed
194	"\EOF" -> "\FIN" in the test "here24" to avoid the problem.
195
196-	Bourne Shell: Compliance test sh/tests/shelltests/error/error.sh
197	Tests "error117" ... "error132" have been disabled for Haiku to
198	prevent an OS bug to make our test fail. Haiku illegally permits:
199
200		: > /
201
202	as opening the root directory does not fail.
203
204-	Bourne Shell: The shell now passes all compliance tests on Hailu,
205	except for the tests named above that fail due to a Haiku OS bug.
206
207-	Bourne Shell: The compliance tests "conf" and "bugs" have been moved
208	to the beginning to reduce the test time by making "conf" start first
209	and to run the regression tests for fixed bugs first.
210
211-	Bourne Shell: The compliance test "trap03" has been fixed as the old
212	PATH detection code for the external "echo" command did not work.
213
214-	SCCS: sccs admin/delta, ... could write nanoseconds to the timestamp
215	into the history file even when in SCCSv4 mode and the time stamp is
216	from before 1968 or past 2037. This is no longer possible as the
217	nanosecods are now cleared in that case.
218
219-	SCCS: val now checks whether a SCCSv4 history file contains SCCSv6
220	elements in the delta line. The checks in the schilytools development
221	area did not discover the problem, so it seems that our bug was only
222	triggered on Haiku due to a time_t implementation bug in the Haiku libc.
223
224-	SCCS: sccs/man/Makefile if now a normal serial Makefile using "rules.mks"
225	in order to make all localizations and the directory OBJ/<arch-dir>/man
226	which "make all" already. This avoids that OBJ/<arch-dir>/man is created
227	late by root when running "make install" as root after a "make all" call
228	from a normal user.
229
230	Thanks to a report from Heiko Ei�feldt
231
232-	SunPro Make: The path to the file with internal rules now
233	is corrctly constructed even when the binary is in .../xpg4/bin/make
234	where we need to use "../../share/..." instead of "../share/...".
235
236-	SunPro Make: Install path detection now works on Haiku as well.
237	findinpath() only works when the binariy was located via PATH search.
238	Use the absolute path in other cases.
239
240	Thanks to a report from Heiko Ei�feldt
241
242-	SunPro Make now has been verified to compile and work correctly on
243	Haiku.
244
245	If you like to test SunPro Make with the schilytools, call e.g.
246
247		dmake -f SMakefile
248
249	in the top level directory to prevent the automated redirection to
250	smake.
251
252
253
254
255-	Bourne Shell Missing features for POSIX compliance:
256
257	- Support for $'...' quoting (this is not needed for the current
258					version of POSIX but for the next POSIX
259					version that will be named SUSv8).
260					The development of SUSv8 will start in
261					late 2016.
262
263	We are now expecting the Bourne Shell to be fully POSIX compliant.
264
265
266-	Bourne Shell further TODO list:
267
268	-	Finish loadable builtin support.
269
270	-	POSIX does not allow us to implement ". -h", so we will
271		add a "source" builtin to be able to implement "source -h"
272
273-	The following builtins (that are available in bsh) are still missing in
274	the Bourne Shell:
275
276	err			echo with output going to stderr
277	glob			echo with '\0' instead of ' ' between args
278	env			a builtin version of /usr/bin/env
279
280	The following bsh intrinsics are still missing in the Bourne Shell:
281
282	-			the restricted bsh has restriction features that
283				are missing in the Bourne shell.
284
285	-	source -h	read file into history but do not execute
286
287	and probably more features not yet identified to be bsh unique.
288
289
290
291Author:
292
293Joerg Schilling
294D-13353 Berlin
295Germany
296
297Email: 	joerg@schily.net, js@cs.tu-berlin.de
298	joerg.schilling@fokus.fraunhofer.de
299
300Please mail bugs and suggestions to me.
301