1New features with AN-2018-09-04: 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 *** Due to the fact that schily-tools 2014-01-26 introduced 37 *** optimizations for the Schily version of SunPro Make, you 38 *** need at least the dmake version from 2018/01/11 with support 39 *** for the "export" directive to compile with this makefile system. 40 41 42 WARNING: the new version of the isoinfo program makes use of the 43 *at() series of functions that have been introduced by Sun 44 in August 2001 and added to POSIX.1-2008. For older platforms, 45 libschily now includes emulations for these functions but 46 these emulations have not yet been tested thoroughly. 47 Please report problems! 48 49 The new smake version mentioned above is smake-1.2.4 50 51 52- libschily: Fixed the behavior of the umask/chmod perm parser for the 53 case where "who" was not specified and the operator is '='. POSIX 54 requires here to first clear all bits in the old value before adding 55 new bits. The old implementation did clear only the bits retrieved 56 from umask(2). 57 58- libschily: The umask/chmod perm parser now returns -1 for the mode 59 string "u", since the operator is missing. Before, it just printed an 60 error message but did not return -1. 61 62- libschily: astoul() and astoull() now by default permit to prefix 63 the unsigned number by a "-". This is required by POSIX for strtoul() 64 and strtoull() and our implementation needs to be compatible to POSIX 65 to make the printf(1) implementation in the Bourne Shell POSIX 66 compatible on older platforms. 67 68 Thanks to Robert Elz for reporting 69 70- libschily: floating point conversion in printf: avoid a GCC bug 71 that converts 72 73 while (*s) 74 *s++ = toupper(*s); 75 into 76 77 while (*s++) 78 *s = toupper(*s); 79 80- libschily: floating point conversion in printf: No longer use the 81 UNOS derived "(Infinity)" and "(NaN)" but "inf" and "nan". 82 83- libschily: floating point conversion in printf: Now print -inf for 84 a negative infinity value. 85 86- libschily: fconv.c added new functions 87 _ftoes()/_ftofs()/_qftoes()/_qftofs() to be able to add a new parameter 88 without changing the interface for ftoes()/ftofs()/qftoes()/qftofs() 89 90- libschily: added a new file format.h to share interface definitions 91 between format.c and fconv.c 92 93- libschily: The new flag UPPERFLG is now implemented in fconv.c. 94 95- libschily: some manpages did not expand the %e% keyword, therefore 96 SCCS has been told to expand it now. 97 98- libfind: The "-perm +mode" feature before has been recognised if the 99 + sign appeared before any character from the set "ugoa", but since 100 the string "+u" represents a POSIXly valid "permcopy" operation, the 101 new version of libfind only accepts this specific feature if the 102 mode string starts with a "a". Since (with find) the start value of 103 the perm parser is 0, any valid mode string may be prefixed by "a+," 104 without changing the resulting value, the feature is usable with 105 "-perm +a+,mode". 106 107- libfind: The phrase "-perm /mode" has been added as an alias for 108 "-perm +mode", but since "/" is not permitted in a POSIX mode string, 109 this methos does not require to prefix the mode string with "a+," to 110 work. "-perm /mode" also helps to give comptibility with GNU find. 111 112- libfind: "-chmod mode" no longer causes a wrong treatment in some 113 cases as the special treatment for "-perm +mode" no longer applies 114 to -chmod too. 115 116- libfind: new function find_strvers() returns the version string. 117 118- libfind: version bumped to 1.7 119 120- libstreamarchive: the man page now correctly explains that in 121 BINARY mode, the values for uname/gname/path/linkpath are not 122 coded in UTF-8. 123 124- sfind: the man page now reflects the changes in libfind. 125 126- bsh/Bourne Shell/star: a very long path name could cause a core dump 127 with a "chdir()" operation in some cases, as there was no check for 128 pointer != NULL when restoring the '/' character while hopping over 129 parts of the path name. 130 131 Thanks to Heiko Ei�feldt for reporting. 132 133- Bourne Shell: conformance tests: The printf tests that depend on 134 'od' now use a better sed filter to prevent differences caused 135 by different amount of space in the od output at the beginning 136 of a line. 137 138 Thanks to Robert Elz for reporting 139 140- Bourne Shell: conformance tests: printf tests for negative 141 integer numbers have been added. This is important as POSIX 142 requires "unsigned numbers" that start with a '-' sign to be 143 parsed as if they were signed numbers. 144 145 Thanks to Robert Elz for reporting 146 147- Bourne Shell: conformance tests: the regression test "bug01" now 148 sets PS4='+ ' to avoid wrong test results in case the calling shell 149 exports a different PS4 value. 150 151 Thanks to Robert Elz for reporting 152 153- Bourne Shell: The man page now mentions the default $HOME/.shrc 154 together with first mentioning $ENV. 155 156- star: "star -c H=exustar -pax-o binary" now correctly results in 157 unencoded strings for uname/gname/path/linkpath. There was preliminary 158 code for the -copy mode but the final changes for this binary mode 159 have been forgotten. This was caused by a change of a variable name 160 from "copyflag" to "binflag" in May 2018. 161 162 WARNING: If you created archives during the past three months using the 163 option "-pax-o binary", you definitely need to recreate the archives 164 in case there are non-ascii characters in values for the named 165 keywords. 166 167- star: The code to set the time stamp for extracted files has been 168 changed to correctly deal with symbolic links. 169 170 In former times, time stamps for symlinks have not been set at all 171 as there was n way to do that. 172 173 Later, with the availability if utimensat() This could be done for 174 symlinks as well, if the target systen supports utimensat(). 175 176 Recently, the code was rearranged to always use utimensat(), but 177 to use an emulation on older systems. This resulted in sometimes 178 setting the timestamp of the symlink target instead of the 179 symlink, depending on how the emulation could be implemented. 180 181 The new code knows how the emulation is done and avoids to set 182 the times for the symlink targets on older platforms where the 183 emulation does not (cannot) support to set the time of symlinks. 184 185 Thanks to Stephane Chazelas for reporting. 186 187- star: star -x -to-stdout no longer tries to set the "not extracted" 188 file to Jan 1 1970 in case of an extraction error. 189 190- star: The option -secure-links has been made the default except when 191 extracting dumps with the -restore option. 192 193 The reason for that change is that a handcrafted tar archive could 194 first include a symlink with absolute target name, e.g. x -> /etc 195 and then include a file x/passwd that would be extracted using 196 the 'x' link to result in /etc/passwd. 197 198 Our solution with -secure-links is the same since 20 years: do not 199 extract the problematic symlink and as a result, the later file 200 will be extracted into the local directory tree. 201 202- star: a new option -no-secure-links allows to disable the secure 203 default behavior. 204 205- star: Added a new help output to the error statistics in case that 206 a file has been skipped because it contains /../ or when a symbolic 207 link has been skipped because it points to an absolute path or 208 because the symlink target contains /../. This help-text mentions 209 the options -.. and -secure-links respectively. 210 211- star: the archive format man page now correctly explains that in 212 BINRAY mode, the values for uname/gname/path/linkpath are not 213 coded in UTF-8. 214 215- ved: If the .vedtmp.* file contains a position < 0, this is now seen 216 as something illegal and the cursor position is set to 0. This avoids 217 a core dump in this case. 218 219- ved: the binding now contains a new set of functions that is used 220 in case that the current character is outside the previous range 0..255. 221 This is a preparation for multi-byte support in ved. 222 223- ved: Some Cstyle fixes have been applied. 224 225- ved: Some of the file IO functions have been changed to use void * 226 instzead of Uchar * buffers. 227 228 229 230- Bourne Shell Missing features for POSIX compliance: 231 232 - Support for $'...' quoting (this is not needed for the current 233 version of POSIX but for the next POSIX 234 version that will be named SUSv8). 235 The development of SUSv8 will start in 236 late 2016. 237 238 We are now expecting the Bourne Shell to be fully POSIX compliant. 239 240- Bourne Shell further TODO list: 241 242 - Finish loadable builtin support. 243 244 - POSIX does not allow us to implement ". -h", so we will 245 add a "source" builtin to be able to implement "source -h" 246 247- The following builtins (that are available in bsh) are still missing in 248 the Bourne Shell: 249 250 err echo with output going to stderr 251 glob echo with '\0' instead of ' ' between args 252 env a builtin version of /usr/bin/env 253 254 The following bsh intrinsics are still missing in the Bourne Shell: 255 256 - the restricted bsh has restriction features that 257 are missing in the Bourne shell. 258 259 - source -h read file into history but do not execute 260 261 and probably more features not yet identified to be bsh unique. 262 263 264 265Author: 266 267Joerg Schilling 268D-13353 Berlin 269Germany 270 271Email: joerg@schily.net, js@cs.tu-berlin.de 272 joerg.schilling@fokus.fraunhofer.de 273 274Please mail bugs and suggestions to me. 275