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