1New features with AN-2019-03-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. If your smake is too old and aborts, ensure this
28	*** 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 2014-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 to Linux distributions as they
53		usually do not forward these bug reports upstream and as the
54		Linux distributions typically do not let skilled people check
55		the bugs. We did not hear about a FIFO problem in star for a
56		long time and since the problem that (on Linux) occurred once
57		every 6000-10000 tries did not happen on Solaris after
58		10 million tries, it was not known otherwise.
59
60-	The AN-2018-* files have been moved to the directory ANNOUNCEMENTS/
61	to give more order in the tp level directory.
62
63-	autoconf/configure: Added a workaround for a Mac OS X linker bug.
64	configure now always uses "rm -rf conftest*" instead of just
65	"rm -f conftest*" to avoid error messages from the stray *.dSYM
66	and sometimes persistent directories created by the Apple linker.
67
68-	Makefile system: The rules for creating HTML files from man pages
69	now set the troff variable "h" to 1. This is used by the SCCS
70	man pages (e.g sccs-prs.1) to be able to let a wide table start
71	at column 1 without letting man2html(1) result this in making the
72	table entries a header (big letters).
73
74-	Makefile system: "make tests" now implies a "make all".
75
76	Thanks to Heiko Ei�feldt for reporting.
77
78-	Makefile system: The files sccs/tests/Makefile, sh/tests/Makefile
79	and obosh/tests/Makefile now have a "tests" target initially in the
80	Makefile and no longer let the target "all" have the same commands
81	as "tests", since this caused the tests to be run twice with
82	the change from above.
83
84-	Makefile system: README.compile now explains how to run unit tests
85	and how to avoid lengthy random tests by calling:
86
87		NO_RANDOM=TRUE smake tests
88
89-	libschily: The gethostname() emulation no longer returns ENOSYS
90	if namelen is < 0. The error code now is EINVAL.
91
92-	libschily: the lutimens() emulation no longer returns ENOSYS in case
93	that the lstat() call fails, since this error code may e.g. be
94	ENAMETOOLONG and used as an important indicator for long path name
95	handling.
96
97	This bug caused incorrect behavior when star extracted long pathnames
98	on a platform without utimensat().
99
100-	Bourne Shell: local(1), export(1) and readonly(1) now all support to
101	expand the '~' character in environment variables like e.g. PATH.
102
103-	Bourne Shell: Added unit tests for the tilde expansion and the related
104	changes.
105
106-	star: The code restructuring to openat() from Summer 2018 did not
107	only cause a noticeable speed up even when not using -find, it at
108	the same time resulted in a wrong error message when a file type
109	was seen that is not archivable (e.g. a socket while using the USTAR
110	format). The correct message was something like "Unsupported filetype",
111	while the bug caused a "file not found " message. This has been fixed
112	by adding a new parameter "fd" to the function stat_to_info().
113
114-	star: header.c::get_xhtype() we did forgot to initialize:
115
116		finfo.f_devminorbits
117	and
118		finfo.f_xflags
119
120	This is now done.
121
122-	star: The USTAR format now is able to create base-256 values in
123	the field "t_devmajor". "t_devminor" did already support base-256.
124
125-	star: The GNU tar format now is able to create base-256 values in
126	the fields "t_devmajor" and "t_devminor".
127
128-	star: The man page star.4 now mentions which fileds may have
129	base-256 numbers.
130
131-	star: The man page star.4 now longer contains the doubled "field field"
132	in the explanation of the added UID/GID number for ACLs.
133
134-	star: The man page star.4 now has a better description for the additional
135	numeric fields in the ACL entries to prevent GNU tar from continuing
136	with it's incompatible ACL implementation.
137
138-	star: New ACL reference archives for the ultra compact format, that has
139	been defined together with the libachive people, have been added to the
140	directory testscripts/:
141
142	acl-nfsv4-compact-test.tar.gz
143	acl-nfsv4-compact-test2.tar.gz
144	acl-nfsv4-compact-test3.tar.gz
145	acl-nfsv4-compact-test4.tar.gz
146	acl-nfsv4-compact-test5.tar.gz
147
148-	star: Linux now uses the new <linux/fs.h> instead of <ext2/ext2_fs.h>
149	to retrieve file flags.
150
151	Thanks to a hint from Martin Matuska <martin@matuska.org> from the
152	libarchive team.
153
154-	star: Support for the following new BSD Flags:
155
156		compressed hidden offline rdonly reparse sparse system
157
158	has been added.
159
160	Thanks to a hint from Martin Matuska <martin@matuska.org> from the
161	libarchive team.
162
163-	star: Support for the following new Linux flags:
164
165		dirsync nocow notail projinherit topdir
166
167	has been added.
168
169	Thanks to a hint from Martin Matuska <martin@matuska.org> from the
170	libarchive team.
171
172-	star: Support for reading non-comliant libarchive tarballs that use
173
174		"securedeletion" or "journal"
175
176	instead of the documented text has been added. This was used by
177	libarchive until March 20, when libarchive has been fixed. We introduce
178	the above names for compatibility with old TARs created by libarchive.
179
180-	star: When an "old star" archive is read and this archive is from a system
181	like FreeBSD with non-continous minor bits, star no longer warns unless
182	there is a device file in the archive.
183
184-	star: unit tests: the scripts now contain
185
186		LC_ALL=C export LC_ALL
187
188	instead of just LC_ALL=C to make the environment exported.
189
190-	star/libstrar: The case where iconv() returns -1 and sets errno to E2BIG
191	is now handled correctly.
192
193-	star: The testscripts/ directory now contains the tar test archives
194	from the portability tests from Michal G�rny. Check
195
196		http://cdrtools.sourceforge.net/private/portability-of-tar-features.html
197
198	for an updated (to match star-1.6) variant of the results from the portability
199	tests from Michal G�rny.
200
201-	star: older versions of star did not print the messages:
202
203		"WARNING: Archive is 'xxx' compressed, trying to use the -xxx option.\n"
204
205	in case that the option -print-artype was in use. Later versions that
206	added support for more than "gzip" and "bzip2" forgot to add the same
207	exception for the new compression methods. We now ommit this message
208	for all compression types.
209
210-	star: older versions of star did not print the messages:
211
212		"WARNING: Archive is 'xxx' compressed, trying to use the -xxx option.\n"
213
214	in case that an expplicit decompression option was in use. Later
215	versions that added support for more than "gzip" and "bzip2" forgot to
216	add the same exception for the new compression methods. We now ommit
217	this message for all compression types.
218
219-	star: Support for the "lzma" compression has been added.
220
221-	star: Support for the "freeze2" compression has been added.
222
223-	star: The compression method name list did not include the text "zstd".
224	We added the missing text.
225
226-	star: The hint messages that are printed when a compressed input archive
227	is not seekable did forgot to mention "lzip" and "zstd". We added the
228	forgotten messages.
229
230-	star: New unit tests check whether star is able to auto-detect and auto
231	decompress various compression formats.
232
233-	star: The unit tests now include the portability tests from Michal G�rny
234
235-	A new option cli=name (must be argv[1]) allows to select all
236	supported command line interfaces (star, suntar, gnutar,
237	pax, cpio) when called as star.
238
239	This is needed to be able to test all command line interfaces from
240	out unit tests since star is not installed in this case and a selection
241	from argv[0] would not work.
242
243-	star: The version date is now "2019/03/20"
244
245-	star: Updated version 1.6 (not yet published in separate tarball)
246
247	Short overview for what changed since the last "stable" version:
248
249	-	Support for "infinitely" long path names has been added.
250
251	-	Support for base-256 numbers in timestams and uid/gid
252		has been added. This has been planned in the 1990s already,
253		when star invented the base-256 coding, but it has been
254		forgotten in favor of the POSIX.1-2001 enhanded archive
255		headers.
256
257	-	Support for comparing timestamps with nanosecond granularity
258
259	-	-secure-links has been made the default when extracting
260		archived (except when doing an incremental restore).
261
262	-	Added Support for NFSv4 ACLs on FreeBSD. Solaris has been
263		supported since 2013.
264
265	-	Added Support to archive SELinix attributes.
266
267	-	Allow to configure whether "star -fsync" is the default in
268		order to support filesystems that are slow with granted
269		transactions (like ZFS) or platforms that are genrally
270		slow with fsync() (like Linux).
271
272	-	Full UNICODE support has been added for tar headers.
273
274	-	A new option cli=name (must be argv[1]) allows to select all
275		supported command line interfaces (star, suntar, gnutar,
276		pax, cpio) when called as star.
277
278	-	Support for -zstd compression has been added.
279
280	-	Support for -lzma compression has been added.
281
282	-	Support for -freeze compression has been added.
283
284	-	Some rare FIFO problems have been fixed.
285		Note that we did recently run more than a billion tests to
286		verify the FIFO after we identified a method to trigger the
287		problem on Linux.
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