1New features with AN-2011-11-09:
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-	libschily::comerr() now maps exit codes that would fold to '0' to
23	EX_CLASH which is -64
24
25-	libschily::gettimeofday() now maps to time() in case that there
26	is neither a system gettimeofday() nor GetSystemTimeAsFileTime()
27
28-	libschily/mkgmtime.c is now faster then previous release.
29	Make it also correct when tm_month < 0 or > 11.
30
31-	libschily now includes strstr() and wcsstr() for platforms where it is
32	missing.
33
34-	New files libschily/mkdirs.c and libschily/resolvepath.c
35
36-	libschily::abspath() is now based on resolvepath() and thus more correct
37	in case symlinks are part of the path.
38
39-	New libschily::fgetaline() and libschily::getaline() implement the
40	functionality of the POSIX violating "getline()" from POSIX.1-2008.
41
42-	libfind/walk.c now uses POSIX.1-2008 O_SEARCH to open directories.
43
44-	include/schily/sigset.h added new macros: blocked_sigs(),
45	block_sigs()
46
47-	patch(1) now avoids to exit(0) in case that the number of failures
48	is dividable by 256.
49
50-	patch(1) now also installs as /usr/ccs/bin/sccspatch
51
52-	patch(1) now uses mkdirs() from libschily instead of an own
53	implementation.
54
55-	Some cleanup in bsh/alloc.c
56
57-	readcd(1): Better algorithm for -edc-corr
58
59-	cdrecord man page corrected some small typos in the EXAMPLES section.
60
61-	star/longnames.c adds more workarounds against wrong buffer overflow
62	aborts from gcc.
63
64-	star/extract.c now uses access(name, F_OK) instead of access(name, 0)
65
66-	The SCCS val program no longer limits command line args to 50 files
67
68-	SCCS val now includes a new option -h to check SID specific checksums
69	from SCCS v6
70
71-	SCCS sccscvt new program to convert between SCCS v4 and SCCS v6 history
72	file format.
73
74-	SCCS sccslog now understands the enhanced time format from the
75	SCCS v6 history file format.
76
77-	The "sccs" command now also supports "sccs cvt" for the command "sccscvt"
78
79-	The SEE ALSO section of most man pages has been reworked
80
81-	SCCS admin now computes a checksum for the file content when called
82	as admin -ifile s.file.
83
84-	SCCS admin now prints full path names in warnings when a file does not
85	end in a newline or includes a line that starts qith ^A in V6 mode.
86
87-	A POSIX compliance bug that also caused a deviation from all known
88	SCCS documentation ever published for prs(1) has been fixed:
89
90		prs -d:DI: s.file
91
92	Now prints again "//" in the standard case.
93	The related bug most likely has been introduced by AT&T around 1984
94	by replacing:
95
96		printf("%s",iline);
97		putchar('/');
98		printf("%s",xline);
99		putchar('/');
100		printf("%s",gline);
101	with:
102		printf("%s",iline);
103		if (length(xline))
104			printf("/%s",xline);
105		if (length(gline))
106			printf("/%s",gline);
107
108	The related bug has been discussed in the POSIX standard committee
109	and the decision was to require the documented old behavior.
110
111-	The automated testing scripts related to the bug mentioned above
112	have been fixed to require/accept the correct POSIX compliant behavior.
113	Note that SCCS fom Sun/Orcale as found on Solaris as well as GNU CSSC
114	will no longer pass the tests.
115
116-	SCCS delta no longer reads the new file two times before adding the delta.
117
118-	SCCS delta is now more correct when checking whether a file includes
119	SCCS keywords to expand.
120
121-	SCCS delta now computes a checksum for the new SID specific content of
122	the file.
123
124-	New SCCS SID specific history file extension "^AS ..."
125
126-	New error code "co27" allows to distinguish a general chescksum error from
127	a SID specific checksum error.
128
129-	SCCS prs -d supports :SX: to print SID specific history file extension
130
131-	SCCS prt now prints SID specific history file extensions
132
133-	SCCS val now does not print a format error message when
134	SID specific history file extensions are seen in a SCCS v6 history file
135
136-	libcomobj/date_ab.c now uses a specialized and speed up version of gN()
137	for date_ab().
138
139-	libcomobj/getline.c now uses a completely new algorithm to compute
140	the checksum with better performance.
141
142-	libcomobj/putline.c now tries to avoid to compute the checksum
143	when in copy mode.
144
145-	libcomobj/sidext_ab.c and libcomobj/sidext_ba.c new files to deal with
146	SID specific extensions.
147
148-	libcomobj/dometa.c and libcomobj/putmeta.c new files to deal with
149	SCCS v6 extensions (such as preparing to permit file renames).
150
151-	mpwlib::fixpath() now contains a warning against the limited
152	features.
153
154-	mpwlib::efatal() new function printf errno information in addition
155
156-	mpwlib/sethome.c new file with code to discover the project set home
157	directory.
158
159-	mpwlib/urandom.c new file with code that creates meta data to be used
160	in order to allow file renames.
161
162
163SCCS-5.05 is now 20% faster than SCCS-5.03.
164
165SCCS-5.05 is 2.5x faster than Sun SCCS and consumes 4.7x less CPU time than Sun SCCS.
166SCCS-5.05 is 6x faster than RCS-5.8 and consumes 7x less CPU time than RCS-5.8.
167	  For RCS files > 256 kB, add factor of 2x to CPU times when you use RCS-5.8.
168
169-	SCCS help now includes one line help for all options
170
171-	The SCCS sccsfile.4 man page now mentions the new SID specific checksum.
172
173-	The SCCS rmdel command now implements a new option -d to fully
174	discard the delta that is going to be removed. By default, the file
175	delta is removed but the related meta data from the delta is kept in
176	the delta table.
177
178-	The SCCS convert program (sccs cvt) now correctly removes the SID
179	specific extensions (like SID specific checksums) from the history
180	file if called with "-V4 -d".
181
182-	SCCS help now gives a better message when calling "sccs help" with no
183	parameters
184
185-	SCCS help now includes one line help for all options for all SCCS commands
186
187-	The SCCS help command now gives an sccs command overview if you
188	call: "sccs help" and enter an empty line (hit RETURN) when it
189	asks: "Enter the message number or SCCS command name:"
190
191-	New program "rcs2sccs" to convert RCS history files into SCCS history
192	files. This program has been originally written by someone called
193	"kenc". It was enhanced for robustness, to support dates past 1999
194	and it now supports binary files also.
195
196-	New SCCS subcommand "istext" allows to check whether a file may
197	be archived as pure text file or whether encoding is needed.
198
199-	The SCCS convert program (sccs cvt) now correctly converts time stamps
200	from different timezones.
201
202	For converting RCS timestamps (in GMT format) that have been converted
203	into SCCS via the script "rcs2sccs" and that still are relative to GMT
204	call the following:
205
206		sccs rcs2sccs
207		TZ=GMT sccs cvt -V6 SCCS
208		sccs cvt -V4 -d SCCS
209
210	This results in SCCS v4 history files, that are in local time.
211
212	-	The first command converts all RCS history files into a SCCS v4
213		history file under the assumption that local time is GMT
214
215	-	The second command converts all SCCS v4 history files in SCCS/
216		into SCCS v6 history file
217
218-	SCCS sact now supports a -s option to suppress the error meesage in
219	case a file is not under SCCS control.
220
221-	The command "sccs fix" now supports to forward the -d option to the
222	SCCS rmdel command.
223
224-	The command "sccs unedit" now supports a -o option to get the
225	unedited file under the timestamp that is the timestamp of the delta.
226
227-	A new command "sccs editor" was implemented to allow to automatically
228	call "sccs edit" from a hook when calling the preferred editor. This
229	permits to edit SCCS controlled files in an apparent transparent way.
230
231	If your preferred editor is "ved", call:
232
233	SCCS_EDITOR=ved
234	export SCCS_EDITOR
235	alias ved='sccs editor'
236
237	Then call: ved file
238
239-	Mention the -C option in the manpages for get(1) and delta(1)
240
241-	SCCS admin now supports to automatically rename the original file
242	to ,file (as with "sccs create") when doing bulk enters via admin -N
243
244-	The SCCS admin command now always uses resolvepath() as there now is
245	a portable user space implementaion in libschily and we no longer
246	depend on the availability of the Solaris syscall resolvepath().
247
248This new version of SCCS implements new fundamental basic features and
249meta data that is needed in order to implement changesets. The new SCCS v6
250specific metadata tags "urandom" and "path" allow futute SCCS versions to deal
251with renames and with removing of files. To check the new feature:
252
253	-	create a .sccs directory in the project set home directory.
254	-	In a directory below call admin -V6 s.xx
255	-	Check the content for s.xx
256
257-	The CSW packaging definitions in the schily makefilesystem was
258	enhanced to permit referencing files in the package definition directory
259
260-	The SCCS delta command now correctly locks the s.file _before_ opening
261	it and thus prevents that the s.file may be replaced in a way that
262	results in a possible lost delta.
263
264-	A previous limitation in SCCS vc(1) to a length of max 9 characters
265	for keywords has been removed.
266
267-	A previous limitation in SCCS vc(1) to max 40 keywords has been removed.
268
269-	A previous limitation in SCCS vc(1) to a line length of max 1024 characters
270	has been removed.
271
272-	The central library function auxf() that computes derived file names
273	from a s.filename has been rewritten to become safe against buffer
274	overflows.
275
276-	The handling of programmer names in the delta table has been made safe
277	against buffer overflows.
278
279-	The SCCS help text for error "co2" now also mentions the SCCS v6 file
280	header
281
282-	The SCCS default help no longer gives a complete "sccs" subcommand list
283	but a subcommand overview.
284
285-	The SCCS sccsfile man page now mentions the undocumented "z" flag
286	in the s.file.
287
288-	The libraries comobj/cassi/mpwlib have been restructured to allow
289	shared libaries on Mac OS X with it's limited dynamic linker.
290
291	-	In future, these libraries will be pooled to a single "libsccs"
292		in order to work around the problems from the Mac OS dynamic
293		linker that is unable to support full C semantics and thus does
294		not support to link a library against calling entities.
295
296	-	Shared variable definitions have been moved from the programs
297		to the libs as the Mac OS dynamic linker is unable to link
298		program variable to be usable from a dynamic library.
299
300	-	s. file specific shared variables have been moved to
301		struct packet whereever possible.
302
303	-	s. file specific shared variables have been moved into
304		struct packet to make the library reentrant.
305
306	-	The global "clean up" callback function for fatal() that is used
307		with global context is installed via set_clean_up(function).
308
309	-	Callback functions that are used with s. file specific context
310		are now function pointers in struct packet.
311
312	The pooling of libcomobj, libcassi and libmpw to a new library "libsccs"
313	will be delayed to the time when the library interface is stable enough
314	for SCCS v6. After that time, libsccs can be made a dynamic library.
315
316The Mac OS X static linker is too silly to link in .o files from static libs
317if only a variable is referenced. The elegant workaround for this bug (using
318common variables) triggers a different bug in the dynamic linker from Mac OS
319that is unable to link common variables. This forces us to introduce funcs
320that need to be called from central places to enforce to link in the vars.
321
322
323-	The function libcassi::error() was renamed to cmrerror() in order to avoid
324	a name conflict with the older error() function from libschily.
325
326-	For operating systems with no mem*() functions, these functions are now
327	mapped to *bytes() functions from libschily.
328
329-	libschily::gettimeofday() now maps to time() in case that there
330	is neither a system gettimeofday() nor GetSystemTimeAsFileTime()
331
332-	libschily now includes an emulation for openat().
333
334-	include/schily/fcntl.h now includes O_SEARCH for POSIX.1-2008 compliance.
335
336
337
338
339
340Author:
341
342Joerg Schilling
343D-13353 Berlin
344Germany
345
346Email: 	joerg@schily.isdn.cs.tu-berlin.de, js@cs.tu-berlin.de
347	joerg.schilling@fokus.fraunhofer.de
348
349Please mail bugs and suggestions to me.
350