1New features with AN-2019-11-11:
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-	include/schily/wchar.h: The new oder of definitions introduced for
62	Ultrix support caused WEOF to be missing on Ultrix and as a result,
63	diff did not compile anymore.
64
65-	A new method has been introduced to disable the compilation of
66	shared libraries on platforms (like Ultrix) where support for
67	shared libraries is mising.
68
69-	The files DEFAULTS/Defaults.ultrix and DEFAULTS_ENG/Defaults.ultrix
70	now contain a line:
71
72		SHLIB_BUILD=    $(NUMBER_SIGN)
73
74	to switch off compilation for shared libraries on Ultrix.
75
76	to compile on Ultrix, call:
77
78	smake
79	cd sunpro
80	smake CPPOPTX=-I/usr/local/lib/gcc-lib/mips-dec-ultrix4.4/2.7.2/include/cxx/
81
82	You may need to call psmake/smake if you did not yet compile and install
83	schilytools on Ultrix.
84
85-	libschily: the new functions wcastoi wcastol wcastolb that have been
86	added with the previous release have been forgotten in the linker map
87	file.
88
89-	libschily: The man pages for the getargs() option parser that has been
90	modeled after a concept Fom UNOS from Charles River Data Systems from
91	1980 have been reworked. This includes new man pages getarginit.3
92	getvargs.3 getvallargs.3 getvfiles.3 getlargs.3 getlallargs.3
93	getlfiles.3 getargerror.3
94
95-	libgetopt: The man page has been reworked and now mentions that the
96	long option in the form "-long" first appeared on Multics, then on UNIX
97	and both before th GNU type long options.
98
99	Options in the form "--long" have been unknown before they have been
100	introduced by GNU around 1990.
101
102-	libgetopt: The file clip.pdf has been added. It explains that the GNU
103	style function interface "getopt_long()" is not suitable as general
104	interface since it cannot be used together with the shell "getopts(1)"
105	builtin command. The PDF has been written by Joseph Kowalski from Sun
106	Microsystems. It shows how architectural decisions have been made at
107	Sun.
108
109	The concept in this PDF is still not really useful as it claims to
110	enforce POSIX rules but at the same time supports GNU style long
111	options by default.
112
113	Our enhanced version keeps compatibility to the last OpenSolaris
114	version of getopt() but supports what people like. This includes
115
116	-	long options without a short equivalent, since long
117		options are used for commands that need more options than
118		possible with short options
119
120	-	Multics/UNIX style long options with a single dash that
121		are in use on UNIX since approx. 1980.
122
123	Note that while the current getopt() supports all basic features that
124	are used in modern programs, it is recommended to use the
125
126		getargs()/getfiles()
127
128	type suite from libschily if there is a need to support more than basic
129	features. The getargs()/getfiles() type functions allow to control the
130	behavior more fine grained.
131
132-	libgetopt: The function getsubopt() from POSIX has been added
133
134-	libgetopt: The man page for getsubopt() has been added
135
136-	star: When using star -copy, the default is now -no-secure-links.
137	This is what users like since they are copying their own data that
138	per definition cannot be untrusted external data.
139
140-	star: star -diff is now "more smooth" to use, when the archive type
141	is GNU TAR and the "atime" or "ctime" properties are not present
142	for a specific file. Before, Jan 1 1970 was the assumed time in
143	the archive.
144
145-	star: star -diff now prints a diff statistics summary.
146
147-	star: New version date
148
149-	mkisofs: added TODO file update that includes local modifications
150	from up to 2008
151
152-	SCCS: fixed a typo in diff.c
153
154	Thanks to Robert Clausecker for reporting
155
156-	SCCS: Added a new delta type 'U' that allows to tell get(1) to remove
157	the g-file. Such SCCS history files are going to be used as
158	placeholders for removed files in the upcomming project mode.
159
160	If a file under control is renamed, it's history file is renamed as
161	well.
162
163	If a file under control is removed, it's history file is renamed to the
164	directory $PROJECTHOME/.sccs/dels/SCCS and a new "unlink" type history
165	file is installed under the old name.
166
167	This is important, as it will allow to resync repository copies
168	using tar. This also works for mercurial based repositories but not for
169	git repositories that did run "git gc" before.
170
171-	SCCS: admin now has a new option -Xunlink. It can be used together with
172	-n to create special SCCS history files that remove the g-file on
173	extraction if a delta is to be extracted that is of type 'U'.
174
175-	SCCS: get now honors delta table entries that use the new 'U' delta
176	type and removed non-writable g-files on extraction. This feature only
177	works if the history file is in SCCS V6 mode.
178
179-	SCCS: the help file "cmds" now mentions the new option -Xunlink
180
181-	SCCS: The man page for sccsfile.4 now mentions the new Delta Table
182	Type 'U'.
183
184-	SCCS: The man page for "changeset.4" has been reworded to increase
185	reeadablility and it fixed a typo that claimed that the changeset
186	file uses six instead of five fields per entry.
187
188-	SCCS: conpliance tests: the y2000 test suite now exptects a 32 bit
189	"prs" binary to fail with year 3000.
190
191-	SCCS: The makefile changesetman.mk now localizes the content
192
193		.so man4/sccschangeset.4
194
195	To make it .so man5/sccschangeset.5 on Linux.
196
197-	SCCS a new option -Xmail=address allows admin(1) and delta(1) to add
198	an email address to the delta meta data.
199
200-	SCCS: New version date
201
202-	SunPro Make: The Makefile in sunpro/Make now makes use of the
203	new construct $(SHLIB_BUILD)DIRS to exclude libmakestate on
204	Ultrix as Ultrix does not suppport shared libraries.
205
206-	SunPro Make: The -C option that has been recently been introduced was
207	processed too late (after ".make.rules" may have been read).
208
209	The -C option is now handled ealier (before searching for .make.rules),
210	to use the correct local default rules in case they exist.
211
212	Thanks to Andy Fiddaman for reporting.
213
214-	SunPro Make: The check for -C dir in MAKEFLAGS has been improved.
215	The previous implementation did catch and suppress -C dir but not
216	-Cdir.
217
218
219
220
221-	SCCS TODO:
222
223	-	Convert sccs.c to use -NSCCS in the back end programs instead
224		of converting g-file names from the command line into s.file
225		names in the frontend in order to forward s.file names to the
226		backend programs. Doing it this way allows us to have the SCCS
227		history files "off tree" in a separate directory tree starting
228		with ".sccs/" at the "project root" directory, as the related
229		code to convert path names is in libcomobj::bulkprepare().
230
231	-	Add code to admin(1) and delta(1) to retrieve the list of
232		new or modified files in order to have all important code
233		for a "sccs commit" in a single program that does not need to
234		deal with ARG_MAX limitations.
235
236	-	Add code to admin(1), delta(1) and get(1) to maintain/understand
237		the changeset file.
238
239	-	Add code to libcomobj to understand the changeset file,
240		which is needed in order to e.g. know the file names and file
241		specific SIDs/state that correspond to a project global SID.
242
243	-	Add code to all programs to maintain a lock (for the file
244		$PROJECTHOME/.sccs/SCCS/s.changeset, that would be in the file
245		$PROJECTHOME/.sccs/SCCS/z.changeset) to maintain a project
246		global lock.
247
248	-	Find/verify a complete transactional model that allows to repair
249		complex changes to the set of files for a project that have
250		been aborted in the middle. The current idea is to create the
251		file $PROJECTHOME/.sccs/changeset with the deltas to the
252		changeset during a complex update operation.
253
254	-	Find a way to decide when to use SCCS v6 type history files.
255
256		For the project mode, this is needed in order to prevent
257		historic SCCS implementations to believe they could modify
258		files without knowing about project global locks.
259
260		Currently, SCCS V67 needs to be anebale manually for every
261		history file using "admin".
262
263
264
265
266
267-	Bourne Shell Missing features for POSIX compliance:
268
269	- Support for $'...' quoting (this is not needed for the current
270					version of POSIX but for the next POSIX
271					version that will be named SUSv8).
272					The development of SUSv8 will start in
273					late 2016.
274
275	We are now expecting the Bourne Shell to be fully POSIX compliant.
276
277-	Bourne Shell further TODO list:
278
279	-	Finish loadable builtin support.
280
281	-	POSIX does not allow us to implement ". -h", so we will
282		add a "source" builtin to be able to implement "source -h"
283
284-	The following builtins (that are available in bsh) are still missing in
285	the Bourne Shell:
286
287	err			echo with output going to stderr
288	glob			echo with '\0' instead of ' ' between args
289	env			a builtin version of /usr/bin/env
290
291	The following bsh intrinsics are still missing in the Bourne Shell:
292
293	-			the restricted bsh has restriction features that
294				are missing in the Bourne shell.
295
296	-	source -h	read file into history but do not execute
297
298	and probably more features not yet identified to be bsh unique.
299
300
301
302Author:
303
304Joerg Schilling
305D-13353 Berlin
306Germany
307
308Email: 	joerg@schily.net, joerg.schilling@fokus.fraunhofer.de
309
310Please mail bugs and suggestions to me.
311