1New features with AN-2019-10-25:
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 newer smake
27	*** to compile this source. If your smake is too old and aborts, ensure to
28	*** use the recent smake by calling:
29
30	cd ./psmake
31	./MAKE-all
32	cd ..
33	psmake/smake
34	psmake/smake install
35
36	The new smake version mentioned above is smake-1.2.4
37	The recent smake version is smake-1.3
38
39	*** Due to the fact that schily-tools 2018-01-26 introduced
40	*** optimizations for the Schily version of SunPro Make, you
41	*** need at least the dmake version from 2018/01/11 with support
42	*** for the "export" directive to compile with this makefile system.
43
44
45	WARNING: the new version of the isoinfo program makes use of the
46		*at() series of functions that have been introduced by Sun
47		in August 2001 and added to POSIX.1-2008. For older platforms,
48		libschily now includes emulations for these functions but
49		these emulations have not yet been tested thoroughly.
50		Please report problems!
51
52	BUG WARNING: Please never report bugs only to Linux distributions as
53		they usually do not forward these bug reports upstream and as
54		the Linux distributions typically do not let skilled people
55		check the bugs. We did not hear about a FIFO problem in star
56		for a long time. Then a problem on Linux occurred once
57		every 6000-10000 tries but it did not happen on Solaris after
58		even 10 million tries, so it was not known besides Linux.
59
60
61-	All: Next step with Ultrix porting.
62
63	We are nearly done with the achievable tasts.
64
65	Compilation of all C code works without manual quirks and the resulting
66	programs are usable. This however currenlty only works using GCC since
67	the Ultrix C compiler dumps core with some of our source files.
68
69	The Ultrix compiler on the supplied test machine does not support C++,
70	so it is questionable, whether it would make sense to try to make the
71	C-code compile on Ultrix.
72
73	If you have problems with the scripts to automatically detect that
74	we should use GCC as the default compiler (as configured in the file
75	DEFAULTS/Defaults.ultrix), remove the file:
76
77		incs/Dcc.risc-ultrix
78
79	and then run:
80
81		smake CCOM=gcc
82
83	But GCC on Ultrix is buggy as well and comes with broken include
84	fixes. There are partially correct ones, one set works with C and
85	the other set works with C++. This requires a hand crafted
86	copilation for the SunPro Make that is written in C++.
87
88	You may compile a non parallel (serial only) version of
89	SunPro Make by calling:
90
91	cd sunpro
92	smake -i CPPOPTX=-I/usr/local/lib/gcc-lib/mips-dec-ultrix4.4/2.7.2/include/cxx/
93
94	You may need to use a different path for that hack, if your GCC installation
95	uses a different install path or is a different version.
96
97	This results in a POSIX compliant make for Ultrix...
98
99	NOTE that yopu need to use -i because there is currently no method
100	in the Schily Makefile system that allows to disable the creation of
101	shared libraries on platforms that do not support shared libs.
102
103	Also note that you cannot use "dmake" (SunPro Make) on Ultrix yet
104	to compile projects in the Schily Makefilesystem, as there is a bug
105	in Ultrix sed(1) that causes the command:
106
107	sed 'y%ABCDEFGHIJKLMNOPQRSTUVWXYZ, /\\()"%abcdefghijklmnopqrstuvwxyz,------%'
108
109	to fail with the message "gabled command". If you did remove one of the
110	backslashes, it would work...
111
112	Thanks to Martin Neitzel for giving access to an Ultrix machine
113
114-	configure: A new test for fgetws() has been added to serve the needs
115	for SunPro Make on Ultrix. fgetws() is missing on Ultrix.
116
117-	configure: Added new tests for wcstol() wcstoul() wcstoul() wcstoull()
118	These interfaces are missing on Ultrix and we need to support a
119	replacement in libschily for SunPro Make portability.
120
121-	conf/makeinc: converted some eval... into (eval ...) to support
122	the Bourne Shell from SVr2 used on Ultrix. This was needed since
123	we still got some "illegal io" error messages from the pre-SVr2 Bourne
124	Shell on Ultrix.
125
126-	RULES/risc-ultrix-gcc.rul: mkdir on Ultrix supports -p
127
128-	RULES/risc-ultrix-cc.rul: new file
129
130-	RULES/cc-ultrix.rul: new file
131
132-	include/schily/wchar.h: Some fallback definitions for
133	mbsinit() mbrtowc() wcrtomb() have been moved to make them always
134	visible and not only in case that <wchar.h> exists.
135
136-	include/schily/wchar.h: Before, we checked for HAVE_ISWPRINT to catch
137	the HP-UX-10.20 case where wchar_t is in stdlib.h. Now we check
138	(SIZEOF_WCHAR == 0 || SIZEOF_WCHAR_T == 0) as this works on Ultrix as
139	well.
140
141-	include/schily/wait.h: We need to fiddle a bit more with WAIT_T in order
142	to be able to work around the buggy sys/wait.h from Ultrix.
143
144-	include/schily/schily.h: removed a superfluous \ that caused
145	warnings with the Ultrix cc.
146
147-	include/schily/libport.h: addeed vsnprintf() prototype
148
149-	include/schily/libport.h: addeed wcstol() prototype
150
151-	libschily: The argument types of the K&R function snprintf() are now
152	identical to the ANSI C variant.
153
154-	libschily: A vsnprintf() implementaton has been added since this is
155	needed by SunPro Make and missing on Ultrix.
156
157-	libschily: A new source wcastoi.c has been added. This is to
158	support wcstol() that is missing in Ultrix and needed by SunPro Make
159
160-	libgetopt: The getopt() function now supports options in the form:
161
162		+o, ++long-option or +long-option
163
164	if the optstring starts with a '+'. A new exported variable
165	"optflags" has the bit "OPT_PLUS" set, in case that an actual option
166	starts with '+'.
167
168	If more than one of the flag characters ':', '+' or "()" are used,
169	"()" must be last.
170
171-	libfind: The recent changes to support "find dir/name -name name"
172	did not work with -depth because the name base index needs a reset
173	after processing the directory content.
174
175	Thanks to Tavian Barnes for reporting.
176
177-	libstreamar: Added new keywords "fsdevmajor" and "fsdevminor" as
178	there are too many incompatible st_dev binary formats.
179
180	These keywords are not yet created, but they are understood.
181	This permits to switch to the new format (fade out "dev") later.
182
183-	star: Added new keywords "SCHILY.fsdevmajor" and "SCHILY.fsdevminor"
184	as there are too many incompatible st_dev binary formats.
185
186	These keywords are not yet created, but they are understood.
187	This permits to switch to the new format (fade out "SCHILY.dev") later.
188
189-	star: The amount of shared mamory used by default has been reduced to
190	1 MB on Ultrix. These are old small machines, that do not support
191	8 MB.
192
193-	cdrecord: The amount of shared mamory used by default has been reduced
194	to 1 MB on Ultrix. These are old small machines, that do not support
195	4 MB.
196
197-	Bourne Shell: The testsuite no longer tries to check ISO-8859-1 strings
198	as we cannot set this up reliably on all platforms and as Mac OS does
199	not allow to create the related filenames.
200
201-	Bourne Shell: The getopts(1) builtin command now supports options in
202	the form:
203
204		+o, ++long-option or +long-option
205
206	if the optstring starts with a '+'. The shell variable "$NAME" has
207	a leading '+' in case that an actual option starts with '+'.
208
209	Note that this makes getopts(1) in the Bourne Shell compatible at
210	shell script level to the extensions in the getopts(1) implementation
211	in ksh93 for:
212
213		-o/+o	Short options with either a leading - or +
214
215		--long	GNU style long options as aliases to short -o options
216
217		++long	GNU style long options as aliases to short +o options
218
219	Our enhancements to support:
220
221		-long	UNIX style long options as aliases to short -o options
222
223		+long	UNIX style long options as aliases to short +o options
224
225		-	Long options the have no related short option
226
227	Are not supported by ksh93.
228
229-	ved: The recognition for argv[0] == "ved-e" did previously use strrchr()
230	and did not work correctly when e.g. trying to call a binary like
231	OBJ/i386-sunos5-cc/ved. We now check only to the right of the first '-'
232	after the last '/'
233
234-	ved: the code that writes the .vedtmp file did not work on Ultrix.
235	Existing slots have not been overwritten (refreshed) but rather a copy
236	has been appended to the end of the file. This happened when switching
237	from read mode into write mode for the open file ".vedtmp.*".
238
239	We now first retrieve the old file offset before calling fflush().
240
241-	SunPro Make: If we are on old platforms like Ultrix, we need the
242	wcs*() functions from libschily, as these functions are missing
243	from libc. To use them with C++ we need the prototypes from
244	include/schily/libport.h.
245
246	The file sunpro/Make/include/mksh/defs.h now includes <schily/libport.h>
247	for that purpose, even in case a specific source does not like to
248	include <schily/schily.h>
249
250-	SunPro Make: sunpro/Make/include/mksh/defs.h now includes missing libc
251	prototypes (needed for Ultrix) in order to prevent C++ to abort
252	compilation on Ultrix.
253
254-	SunPro Make: Various sources now use schily/wait.h and WAIT_T in order
255	to avoid "int"/"union wait" problems e.g. on Ultrix.
256
257-	SunPro Make: We need to use if (*(int *)&status == 0) as e.g. Ultrix
258	has union wait.
259
260-	SunPro Make: We now support select() as a fallback if poll() is not
261	available.
262
263-	SunPro Make: sunpro/Make/include/mksh/defs.h now calls #undef PMAKE
264	if HAVE_SEMAPHORE_H is missing, e.g. on Ultrix. This prevents to
265	support "dmake -j...", but it make SunPro Make usable on Ultrx at
266	all.
267
268-	SunPro Make: sunpro/Make/include/mksh/defs.h now calls #undef PMAKE
269	if NO_PMAKE is missing
270
271-	SunPro Make: parallel.cc moved an #if defined(PMAKE) past the
272	#include defs.h to be able to disable the paralle make features in
273	case that POSIX semaphore support is missing.
274
275-	SunPro Make: changed putwchar() to putchar() since these calls
276	are close to a normal printf() call and since they are only used to
277	print the non-wide characters space and slash, which are not converted
278	multi byte characters anyway.
279
280-	SunPro Make: Added a fgetws() emulation to the file
281	sunpro/Make/bin/make/common/rep.cc, based on fgets() and mbtowcs()
282	to serve the needs of Ultrix in that source file.
283
284-	SunPro Make: Added a workaround for a missing readlink() prototype
285	on Ultrix to the file sunpro/Make/lib/vroot/src/readlink.cc
286
287-	SunPro Make: new version date
288
289
290
291-	SCCS TODO:
292
293	-	Convert sccs.c to use -NSCCS in the back end programs instead
294		of converting g-file names from the command line into s.file
295		names in the frontend in order to forward s.file names to the
296		backend programs. Doing it this way allows us to have the SCCS
297		history files "off tree" in a separate directory tree starting
298		with ".sccs/" at the "project root" directory, as the related
299		code to convert path names is in libcomobj::bulkprepare().
300
301	-	Add code to admin(1) and delta(1) to retrieve the list of
302		new or modified files in order to have all important code
303		for a "sccs commit" in a single program that does not need to
304		deal with ARG_MAX limitations.
305
306	-	Add code to admin(1), delta(1) and get(1) to maintain/understand
307		the changeset file.
308
309	-	Add code to libcomobj to understand the changeset file,
310		which is needed in order to e.g. know the file names and file
311		specific SIDs/state that correspond to a project global SID.
312
313	-	Add code to all programs to maintain a lock (for the file
314		$PROJECTHOME/.sccs/SCCS/s.changeset, that would be in the file
315		$PROJECTHOME/.sccs/SCCS/z.changeset) to maintain a project
316		global lock.
317
318	-	Find/verify a complete transactional model that allows to repair
319		complex changes to the set of files for a project that have
320		been aborted in the middle. The current idea is to create the
321		file $PROJECTHOME/.sccs/changeset with the deltas to the
322		changeset during a complex update operation.
323
324	-	Find a way to decide when to use SCCS v6 type history files.
325		For the project mode, this is needed in order to prevent
326		historic SCCS implementations to believe they could modify
327		files without knowing about project global locks.
328
329
330
331
332
333-	Bourne Shell Missing features for POSIX compliance:
334
335	- Support for $'...' quoting (this is not needed for the current
336					version of POSIX but for the next POSIX
337					version that will be named SUSv8).
338					The development of SUSv8 will start in
339					late 2016.
340
341	We are now expecting the Bourne Shell to be fully POSIX compliant.
342
343-	Bourne Shell further TODO list:
344
345	-	Finish loadable builtin support.
346
347	-	POSIX does not allow us to implement ". -h", so we will
348		add a "source" builtin to be able to implement "source -h"
349
350-	The following builtins (that are available in bsh) are still missing in
351	the Bourne Shell:
352
353	err			echo with output going to stderr
354	glob			echo with '\0' instead of ' ' between args
355	env			a builtin version of /usr/bin/env
356
357	The following bsh intrinsics are still missing in the Bourne Shell:
358
359	-			the restricted bsh has restriction features that
360				are missing in the Bourne shell.
361
362	-	source -h	read file into history but do not execute
363
364	and probably more features not yet identified to be bsh unique.
365
366
367
368Author:
369
370Joerg Schilling
371D-13353 Berlin
372Germany
373
374Email: 	joerg@schily.net, joerg.schilling@fokus.fraunhofer.de
375
376Please mail bugs and suggestions to me.
377