1New features with AN-2020-06-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 *** 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 BUG WARNING: GNU make release 4.3 starts too early with parallel 61 execution (when reading Makefiles and evaluating rules for 62 "include" statements already). Since GNU make does not 63 support a concept for correct ordering of such actions, 64 you need to be prepared to see gmake-4.3 fail in parallel 65 mode. If you are interested in reliable parallel execution, 66 it is recommended to use the included "dmake" program with 67 a command line like: 68 69 dmake -j10 -f SMakefile 70 71 from the top level directory 72 73 74 75- Schily Makefilesystem: When configured not to compile project internal 76 libraries into shared libraries, an informational message has been 77 changed from: 78 79 " ==> NO shared libs on this platform (yet)" 80 81 to: 82 83 " ==> MAKING no shared libs on this platform (LINKMODE=static)" 84 85 This is expected to be less confusing. 86 87- libboshcmd: For unknown reasons, an update from August 2018 has not 88 been published yet. 89 90 The update contains the support to the -call feature in the loadable 91 builtin find command. 92 93- hdump/od: The starting address specification on the commandline did 94 not work for strings like 0xaaa but only for xaaa. This was caused 95 by the fact of not incrementing the input string by 2 charatcers 96 since the string->int conversion accepts a 0x prefix only with 97 expected "radix" 0. 98 99- spax: the man page now includes the text for point 1 .. 5 related 100 to the "listformat" option. 101 102- star: A new option -one-file has been added that causes star to exit 103 after a single file has been extracted as a result from a pattern match 104 or command line argument match. 105 106- star: The FIFO error message "Sync pipe read error..." is no longer 107 printed in case that one side of the FIFO did intentionally set 108 the exit flag before reading/consuming the complete input. 109 110 This permits to avoid this message when star exits 111 (e.g. via -one-file) without reading the whole FIFO data. 112 113 This also prevents the same confusing message when listing or 114 extracting some cpio typed archives where the reader reads less than 115 the cpio block size (5 kB) . 116 117- star: A new option iskip=# has been introduced. The argument is the 118 number of bytes to skip before looking for the first archive header 119 in the first tape block read after star started. 120 121 The value must be less than the tape block size. 122 123 The purpose of this option is to permit to read tapes from a different 124 offset than the beginning, after e.g. a "mt fsr xxx" command has been 125 issued. 126 127- star: A new option mtskip=# has been introduced. This option causes 128 star to issue a "mt fsr xxx" equivalent on a tape archive. 129 130 The argument is the number of 512 byte blocks to skip from the 131 beginning of the archive. 132 133 This option is a complement to the block number printed from 134 135 star -c -v -block-number ... 136 137 and if the argument to mtskip= is given the number from the 138 -block-number output, it fast forwards the archive to the position 139 where the related file starts in the archive. 140 141 If the archive is a plain file, this is done via lseek(). 142 143 If the archive is a tape archive, this is done by first positioning 144 the tape via mtioctl(MTFSR) and then to do an implicit iskip=# for 145 the computed remainder of bytes resulting from the mtskip= argument. 146 147 Note that star must be called with the correct tape block size if 148 the archive is on a tape. Otherwise, this option does not work 149 correctly. 150 151- SCCS: libcomobj::bulk.c now avoids double slashes when generating 152 the path to the off-tree history files. 153 154- SCCS: libcomobj::bulk.c now has a new mode that allows to to translate 155 the a directory path in the source tree into a directory path within 156 the SCCS history tree. This is needed in case the repository is a 157 NewMode repository with an off-tree history. 158 159- SCCS: sccs.c the SCCS_NMODE= environment now has a new meaning for 160 future feature debugging: 161 162 - SCCS_NMODE=TRUE New Mode is forced to be active 163 164 - SCCS_NMODE=FALSE New Mode is forced to be disabled 165 166 - SCCS_NMODE= New Mode depends on $PROJECTHOME/.sccs/ 167 168 - SCCS_NMODE=i New Mode depends on $PROJECTHOME/.sccs/ 169 with intentional intree handling 170 171 - SCCS_NMODE=o New Mode depends on $PROJECTHOME/.sccs/ 172 with intentional offtree handling 173 174 See below for the changes in SCCS admin about the consequences of 175 using this environment. 176 177- SCCS: sccs: the simple forwarding to SCCS base low level commands 178 now always works in NewMode. 179 180- SCCS: "sccs print" now supports the options -a -A -n -r to give 181 better annotation using new annotation features from get(1) related 182 to the option -A. 183 184- SCCS: "sccs delget" and "sccs deledit" now work in NewMode since 185 getNsid() now uses bulkprepare() to get the path name for the p. 186 file when in NewMode. 187 188- SCCS: "sccs enter" and "sccs create" now work in NewMode 189 190- SCCS: "sccs init" now rescans the tree after the .sccs directory has 191 been created in order to get correct values in the sethome structures. 192 193 This is e.g. needed in orer to be able to compute the path for the 194 SCCS changeset file. 195 196- SCCS: "sccs unedit" now works in NewMode 197 198- SCCS: "sccs diffs" now works in NewMode 199 200- SCCS: "sccs tell" now works in NewMode - however not yet in -R mode 201 202- SCCS: "sccs help" no longer prints 203 204 "Unrecognized locale... setting to English\n" 205 206 but rather 207 208 "No help for locale '%s' ... setting to English.\n" 209 210 in hope that people no longer believe that the current locale 211 is incorrect but just a translation for the current locale is not yet 212 available. 213 214- SCCS: The help text for "ad15" has been enhanced to mention a possible 215 usage problem. Calling: 216 217 admin -i xxx.c s.xxx.c 218 219 Now prints: 220 221 ad15: 222 "more than one file" 223 You are trying to create more than one SCCS file, and you supplied 224 the 'i' keyletter. You can only create one file when you supply 225 the 'i' keyletter. A possible reason for the problem is that you 226 have a space between the 'i' keyletter and the input filename. 227 228 and helps people to understand the superfluous space between -i 229 and xxx.c 230 231- SCCS: "sccs help" added a new error message "cm20" 232 233 "non directory specified as argument" 234 235 It been introduced to support the enhanced "sccs tell" command. 236 237- SCCS: various typos in the help texts have been fixed. 238 239- SCCS: sccs: several strdup() calls with error check have been changed 240 to use a new function xstrdup() for unified handling. 241 242- SCCS: sccs: an unclean malloc handling in "sccs unedit" has been 243 reworked. 244 245- SCCS: sccsdiff now uses "$@" instead of $@ in order to support 246 arguments with spaces inside. 247 248- SCCS: sccsdiff now sets IFS= on a separate line to make it work. The 249 old command: 250 251 IFS= get .... 252 253 unfortunately first expands the macros in argument list and then 254 processes the IFS= instruction. So it does not work for our purpose. 255 256- SCCS: sccsdiff now works in sccs(1) NewMode, when the file arguments 257 are not in SCCS/s.* form. 258 259- SCCS: get now reinitalizes the programmer hash table to avoid a core 260 dump from corrupt memory caused by e.g. calling "get" with three file 261 arguments like: 262 263 get -p -A -m -n -r1.10 file1 file2 file3 264 265 with: 266 267 - First file OK 268 269 - Second file e.g. causes "invalid sid (co8)" 270 271 - Third file OK, but causes core dump 272 273- SCCS: admin has a new default for deciding whether new a SCCS history 274 file is created as V4 or V6 file. 275 276 If there is a correctly populated directory .sccs in the project home 277 directory and "admin" is called with the option -N, it creates new 278 SCCS history files ac SCCSv6 files. 279 280 If you do nothing, this is not enabled yet, but if you set up the 281 enviromnent SCCS_NMODE (see above), sccs(1) calls SCCS low level 282 commands with the -N option and causes admin to create V6 history 283 files if "projecthome/.sccs" exists. 284 285 To already use a SCCSv6 based history and the off-tree repository, 286 do the following: 287 288 - call "sccs init -s" in the project home directory to 289 mark this directory as a NewMode repository with single 290 files (no project mode yet). 291 292 - Setup your environment: 293 294 SCCS_NMODE=o 295 export SCCS_NMODE 296 297 This tells sccs to manage an off-tree repository. If you setup 298 SCCS_NMODE=i, you have a SCCSv6 based history in in-tree mode as 299 it is in use with sccs(1) since 1980. 300 301 Be careful and report problems... 302 303- SCCS: the admin(1) man page now mentions the option -V4 and the new 304 default that may be SCCSv6, see above. 305 306- SCCS: admin and comb in bulk mode now call sclose()/sfree()/ffreeall() 307 between files and in error case. 308 309- SCCS: libcomobj::ffree() now is a bit more conservative about 310 managing active malloc()ed pointers. 311 312- SCCS: The unit tests now contain a special collection for the 313 "sccs" frontend that checks various commands in three different 314 ways: 315 316 - traditional mode 317 318 - NewMode with in-tree SCCS history 319 320 - NewMode with off-tree SCCS history 321 322 This helps to verify correctness for the NewMode that is needed for 323 the upcomming project mode. 324 325- sdd: The option sectorsize= is now only needed together with -noerror. 326 This fixed a bug introduced in 2018 when sectorsize has been introduced. 327 328 329 330- SCCS TODO: 331 332 - Convert sccs.c to use -NSCCS in the back end programs instead 333 of converting g-file names from the command line into s.file 334 names in the frontend in order to forward s.file names to the 335 backend programs. Doing it this way allows us to have the SCCS 336 history files "off tree" in a separate directory tree starting 337 with ".sccs/" at the "project root" directory, as the related 338 code to convert path names is in libcomobj::bulkprepare(). 339 340 *** This is mostly done for now *** 341 342 - Add code to admin(1) and delta(1) to retrieve the list of 343 new or modified files in order to have all important code 344 for a "sccs commit" in a single program that does not need to 345 deal with ARG_MAX limitations. 346 347 - Add code to admin(1), delta(1) and get(1) to maintain/understand 348 the changeset file. 349 350 - sccs -R tell does not yet work in NewMode 351 352 - Add code to libcomobj to understand the changeset file, 353 which is needed in order to e.g. know the file names and file 354 specific SIDs/state that correspond to a project global SID. 355 356 - Add code to all programs to maintain a lock (for the file 357 $PROJECTHOME/.sccs/SCCS/s.changeset, that would be in the file 358 $PROJECTHOME/.sccs/SCCS/z.changeset) to maintain a project 359 global lock. 360 361 - Find/verify a complete transactional model that allows to repair 362 complex changes to the set of files for a project that have 363 been aborted in the middle. The current idea is to create the 364 file $PROJECTHOME/.sccs/changeset with the deltas to the 365 changeset during a complex update operation. 366 367 - Find a way to decide when to use SCCS V6 type history files. 368 369 For the project mode, this is needed in order to prevent 370 historic SCCS implementations to believe they could modify 371 files without knowing about project global locks. 372 373 Currently, SCCS V6 needs to be usable manually for every 374 history file using "admin". 375 376 377 378 379 380- Bourne Shell Missing features for POSIX compliance: 381 382 - Support for $'...' quoting (this is not needed for the current 383 version of POSIX but for the next POSIX 384 version that will be named SUSv8). 385 The development of SUSv8 will start in 386 late 2016. 387 388 We are now expecting the Bourne Shell to be fully POSIX compliant. 389 390- Bourne Shell further TODO list: 391 392 - Finish loadable builtin support. 393 394 - POSIX does not allow us to implement ". -h", so we will 395 add a "source" builtin to be able to implement "source -h" 396 397- The following builtins (that are available in bsh) are still missing in 398 the Bourne Shell: 399 400 err echo with output going to stderr 401 glob echo with '\0' instead of ' ' between args 402 env a builtin version of /usr/bin/env 403 404 The following bsh intrinsics are still missing in the Bourne Shell: 405 406 - the restricted bsh has restriction features that 407 are missing in the Bourne shell. 408 409 - source -h read file into history but do not execute 410 411 and probably more features not yet identified to be bsh unique. 412 413 414 415Author: 416 417Joerg Schilling 418D-13353 Berlin 419Germany 420 421Email: joerg@schily.net, joerg.schilling@fokus.fraunhofer.de 422 423Please mail bugs and suggestions to me. 424