1New features with AN-2019-11-11: 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 61- include/schily/wchar.h: The new oder of definitions introduced for 62 Ultrix support caused WEOF to be missing on Ultrix and as a result, 63 diff did not compile anymore. 64 65- A new method has been introduced to disable the compilation of 66 shared libraries on platforms (like Ultrix) where support for 67 shared libraries is mising. 68 69- The files DEFAULTS/Defaults.ultrix and DEFAULTS_ENG/Defaults.ultrix 70 now contain a line: 71 72 SHLIB_BUILD= $(NUMBER_SIGN) 73 74 to switch off compilation for shared libraries on Ultrix. 75 76 to compile on Ultrix, call: 77 78 smake 79 cd sunpro 80 smake CPPOPTX=-I/usr/local/lib/gcc-lib/mips-dec-ultrix4.4/2.7.2/include/cxx/ 81 82 You may need to call psmake/smake if you did not yet compile and install 83 schilytools on Ultrix. 84 85- libschily: the new functions wcastoi wcastol wcastolb that have been 86 added with the previous release have been forgotten in the linker map 87 file. 88 89- libschily: The man pages for the getargs() option parser that has been 90 modeled after a concept Fom UNOS from Charles River Data Systems from 91 1980 have been reworked. This includes new man pages getarginit.3 92 getvargs.3 getvallargs.3 getvfiles.3 getlargs.3 getlallargs.3 93 getlfiles.3 getargerror.3 94 95- libgetopt: The man page has been reworked and now mentions that the 96 long option in the form "-long" first appeared on Multics, then on UNIX 97 and both before th GNU type long options. 98 99 Options in the form "--long" have been unknown before they have been 100 introduced by GNU around 1990. 101 102- libgetopt: The file clip.pdf has been added. It explains that the GNU 103 style function interface "getopt_long()" is not suitable as general 104 interface since it cannot be used together with the shell "getopts(1)" 105 builtin command. The PDF has been written by Joseph Kowalski from Sun 106 Microsystems. It shows how architectural decisions have been made at 107 Sun. 108 109 The concept in this PDF is still not really useful as it claims to 110 enforce POSIX rules but at the same time supports GNU style long 111 options by default. 112 113 Our enhanced version keeps compatibility to the last OpenSolaris 114 version of getopt() but supports what people like. This includes 115 116 - long options without a short equivalent, since long 117 options are used for commands that need more options than 118 possible with short options 119 120 - Multics/UNIX style long options with a single dash that 121 are in use on UNIX since approx. 1980. 122 123 Note that while the current getopt() supports all basic features that 124 are used in modern programs, it is recommended to use the 125 126 getargs()/getfiles() 127 128 type suite from libschily if there is a need to support more than basic 129 features. The getargs()/getfiles() type functions allow to control the 130 behavior more fine grained. 131 132- libgetopt: The function getsubopt() from POSIX has been added 133 134- libgetopt: The man page for getsubopt() has been added 135 136- star: When using star -copy, the default is now -no-secure-links. 137 This is what users like since they are copying their own data that 138 per definition cannot be untrusted external data. 139 140- star: star -diff is now "more smooth" to use, when the archive type 141 is GNU TAR and the "atime" or "ctime" properties are not present 142 for a specific file. Before, Jan 1 1970 was the assumed time in 143 the archive. 144 145- star: star -diff now prints a diff statistics summary. 146 147- star: New version date 148 149- mkisofs: added TODO file update that includes local modifications 150 from up to 2008 151 152- SCCS: fixed a typo in diff.c 153 154 Thanks to Robert Clausecker for reporting 155 156- SCCS: Added a new delta type 'U' that allows to tell get(1) to remove 157 the g-file. Such SCCS history files are going to be used as 158 placeholders for removed files in the upcomming project mode. 159 160 If a file under control is renamed, it's history file is renamed as 161 well. 162 163 If a file under control is removed, it's history file is renamed to the 164 directory $PROJECTHOME/.sccs/dels/SCCS and a new "unlink" type history 165 file is installed under the old name. 166 167 This is important, as it will allow to resync repository copies 168 using tar. This also works for mercurial based repositories but not for 169 git repositories that did run "git gc" before. 170 171- SCCS: admin now has a new option -Xunlink. It can be used together with 172 -n to create special SCCS history files that remove the g-file on 173 extraction if a delta is to be extracted that is of type 'U'. 174 175- SCCS: get now honors delta table entries that use the new 'U' delta 176 type and removed non-writable g-files on extraction. This feature only 177 works if the history file is in SCCS V6 mode. 178 179- SCCS: the help file "cmds" now mentions the new option -Xunlink 180 181- SCCS: The man page for sccsfile.4 now mentions the new Delta Table 182 Type 'U'. 183 184- SCCS: The man page for "changeset.4" has been reworded to increase 185 reeadablility and it fixed a typo that claimed that the changeset 186 file uses six instead of five fields per entry. 187 188- SCCS: conpliance tests: the y2000 test suite now exptects a 32 bit 189 "prs" binary to fail with year 3000. 190 191- SCCS: The makefile changesetman.mk now localizes the content 192 193 .so man4/sccschangeset.4 194 195 To make it .so man5/sccschangeset.5 on Linux. 196 197- SCCS a new option -Xmail=address allows admin(1) and delta(1) to add 198 an email address to the delta meta data. 199 200- SCCS: New version date 201 202- SunPro Make: The Makefile in sunpro/Make now makes use of the 203 new construct $(SHLIB_BUILD)DIRS to exclude libmakestate on 204 Ultrix as Ultrix does not suppport shared libraries. 205 206- SunPro Make: The -C option that has been recently been introduced was 207 processed too late (after ".make.rules" may have been read). 208 209 The -C option is now handled ealier (before searching for .make.rules), 210 to use the correct local default rules in case they exist. 211 212 Thanks to Andy Fiddaman for reporting. 213 214- SunPro Make: The check for -C dir in MAKEFLAGS has been improved. 215 The previous implementation did catch and suppress -C dir but not 216 -Cdir. 217 218 219 220 221- SCCS TODO: 222 223 - Convert sccs.c to use -NSCCS in the back end programs instead 224 of converting g-file names from the command line into s.file 225 names in the frontend in order to forward s.file names to the 226 backend programs. Doing it this way allows us to have the SCCS 227 history files "off tree" in a separate directory tree starting 228 with ".sccs/" at the "project root" directory, as the related 229 code to convert path names is in libcomobj::bulkprepare(). 230 231 - Add code to admin(1) and delta(1) to retrieve the list of 232 new or modified files in order to have all important code 233 for a "sccs commit" in a single program that does not need to 234 deal with ARG_MAX limitations. 235 236 - Add code to admin(1), delta(1) and get(1) to maintain/understand 237 the changeset file. 238 239 - Add code to libcomobj to understand the changeset file, 240 which is needed in order to e.g. know the file names and file 241 specific SIDs/state that correspond to a project global SID. 242 243 - Add code to all programs to maintain a lock (for the file 244 $PROJECTHOME/.sccs/SCCS/s.changeset, that would be in the file 245 $PROJECTHOME/.sccs/SCCS/z.changeset) to maintain a project 246 global lock. 247 248 - Find/verify a complete transactional model that allows to repair 249 complex changes to the set of files for a project that have 250 been aborted in the middle. The current idea is to create the 251 file $PROJECTHOME/.sccs/changeset with the deltas to the 252 changeset during a complex update operation. 253 254 - Find a way to decide when to use SCCS v6 type history files. 255 256 For the project mode, this is needed in order to prevent 257 historic SCCS implementations to believe they could modify 258 files without knowing about project global locks. 259 260 Currently, SCCS V67 needs to be anebale manually for every 261 history file using "admin". 262 263 264 265 266 267- Bourne Shell Missing features for POSIX compliance: 268 269 - Support for $'...' quoting (this is not needed for the current 270 version of POSIX but for the next POSIX 271 version that will be named SUSv8). 272 The development of SUSv8 will start in 273 late 2016. 274 275 We are now expecting the Bourne Shell to be fully POSIX compliant. 276 277- Bourne Shell further TODO list: 278 279 - Finish loadable builtin support. 280 281 - POSIX does not allow us to implement ". -h", so we will 282 add a "source" builtin to be able to implement "source -h" 283 284- The following builtins (that are available in bsh) are still missing in 285 the Bourne Shell: 286 287 err echo with output going to stderr 288 glob echo with '\0' instead of ' ' between args 289 env a builtin version of /usr/bin/env 290 291 The following bsh intrinsics are still missing in the Bourne Shell: 292 293 - the restricted bsh has restriction features that 294 are missing in the Bourne shell. 295 296 - source -h read file into history but do not execute 297 298 and probably more features not yet identified to be bsh unique. 299 300 301 302Author: 303 304Joerg Schilling 305D-13353 Berlin 306Germany 307 308Email: joerg@schily.net, joerg.schilling@fokus.fraunhofer.de 309 310Please mail bugs and suggestions to me. 311