1New features with AN-2015-03-16:
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 thouroughly.
41		Please report problems!
42
43	The new smake version mentioned above is smake-1.2.4
44
45-	libschily new functions strlcatl() and wcslcatl()
46
47-	libschily::linkat.c now manually null-terminates the result from
48	resolvepath() as the Solaris syscall implementation does not
49	null-terminate it in all cases.
50
51-	libschily::resolvepath.c comment added to remind on the fact that
52	in contrary to out implementation the Solaris resolvepath() syscall
53	does not null-terminate the buffer.
54
55-	SCCS admin changes some line buffer sizes from BUFSIZ -> MAXLINE
56
57-	SCCS admin changes cat() (no length check) to strlcatl() when processing
58	a -fl... argument.
59
60-	SCCS admin changes cat() to strlcatl() in bulkprepare()
61
62-	SCCS admin changes copy() to strlcpy() in bulkprepare()
63
64-	SCCS admin fixed a bug that could cause admin in -V6 mode to assume
65	that a file that has a null byte past a newline but before any other
66	newline in a file to be non-binary. This caused such files not to be
67	uuencoded and thus not restorable.
68
69-	SCCS admin now supports a bulk-creation of many files using the new
70	off-tree repository mode. In the off-tree mode, the SCCS history files
71	are not on a subdirectory SCCS in the same directory as the sources but
72	in a SCCS directory inside a shadow tree that starts in the directory
73	".sccs/data" in the project set home directory.
74
75-	SCCS admin now manually null-terminates all buffers from resolvepath()
76
77-	SCCS sccs now manually null-terminates all buffers from resolvepath()
78	calls.
79
80-	SCCS sccs when reading filenames from stdin for "sccs <subcmd> -"
81	sccs(1) now uses a more efficient way to append the next argument to the
82	list. This speeds up "find . -type f | sccs add -" by a factor os 200.
83
84-	SCCS bulkprepare() and related functions have been moved to libcomobj to
85	allow to use them in other SCCS commands as well.
86
87-	SCCS get now also supports the -N bulk names option. Note that get -l
88	does not yet work as expected together with -N
89
90-	SCCS delta now also supports the -N bulk names option.
91
92-	Heiko Ei�feldt has checked smake with a test system that tries to push
93	programs into unusual code paths. This is why we discovered a lot
94	of bugs that did not hit during the past 30 years. The name of the
95	test program is "american fuzzy lop".
96
97-	smake: several typos in the comment and in strings have been fixed.
98
99-	smake: With help from Heiko Ei�feldt, we fixed two more places where
100	smake did not correctly realign local pointers into the string stack.
101	Note that the related coredumps did not happen on Solaris due to a
102	different environment length and did not happen with Makefiles of
103	usual langth. In both cases, the buffer relocation takes place at
104	different places in the code and thus does not trigger a core dump.
105
106-	smake: Heiko Ei�feldt discovered that one has to be careful even with
107	strlcpy() as it expects a null-terminated from-string. This was not the
108	case for some cases in the parser when a token was read-in and the buffer
109	had to be expanded. Smake not first temporarily null-terminates the
110	current buffer before using strlcpy() to copy the old content to the
111	new grown buffer.
112
113-	smake: Heiko Ei�feldt discovered that under rare conditions, the
114	functions extr_filenames() and extr_dirnames() could overwrite the
115	growable string stack. These functions now check and grow (if needed)
116	the string stack before appending another iteration of text.
117
118-	smake: Heiko Ei�feldt discovered that cvtvpath() could overwrite
119	the intermediate buffer.
120
121-	smake: Heiko Ei�feldt presented a makefile that contains the character
122	'\377' at offset 2048 and thus triggered a long known bug in mygetc()
123	that made it impossible to distinct '\377' from EOF. The problem is
124	now fixed
125
126-	smake: Heiko Ei�feldt presented a makefile that triggered a object
127	dereference from a warning where only the null object was present.
128	Smake now prints "<empty>" instead of dumping core.
129
130-	smake: Heiko Ei�feldt discovered a problem with a not correctly inialized
131	sub_ptr from getshvar() that caused problens in dosh() -> sub_c_put()
132
133-	smake: Heiko Ei�feldt discovered a problem with blown up memory
134	from a direct recusive dependency. This was so far detected in the
135	interpreter but not in the parser already. A new check in the parser
136	prevents smake from allocating infinite amounts of memory.
137
138-	smake: Heiko Ei�feldt discovered a problem in
139	getobjname() getname() getln() and getcmd(): growgbuf() needs probably
140	be called before the null-byte is added to the string.
141
142-	smake: Heiko Ei�feldt discovered a problem resulting from a bug in
143	update.c::patr_src() where a name pointer was erreneously repeatedly
144	incremented instead of adding an offset to the the base name when doing
145	a second iteration. This could cause core dumps with some makefiles.
146
147
148
149Author:
150
151Joerg Schilling
152D-13353 Berlin
153Germany
154
155Email: 	joerg@schily.net, js@cs.tu-berlin.de
156	joerg.schilling@fokus.fraunhofer.de
157
158Please mail bugs and suggestions to me.
159