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