1New features with AN-2018-12-21: 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- include/schily/stdint.h & include/schily/utypes.h: added a workarounf for a 53 Solaris _CHAR_IS_SIGNED / _CHAR_IS_UNSIGNED Bug 54 55- Bourne Shell: make it exit the whole shell with set -e after a command 56 substitution failed on the right side of a variable assignment 57 that has no command. This is required by POSIX. 58 59- Bourne Shell: added a unit tests for the above case. 60 61- Bourne Shell: New version date set to 2018-12-08 the this change. 62 63- sdd: added a new message in retry mode. Sdd now prints the offset of a 64 failed big read before retrying to read it in 512 byte block size. 65 This helps to see where a disk has problems that always fails with 66 big reads but never fails with the retries. 67 68- sdd: added a new option seczize= that allows to specify a sector 69 size != 512 bytes and makes sdd ready for recovering disks with larger 70 sector sizes. 71 72- SCCS the prs man page now tries to make the table less wide. 73 74- SCCS: libcomobj::bulkprepare() the current working directory inside the 75 project home directory tree now gets an appendet "/" before "SCCS" is 76 appended. 77 78- SCCS: sccs: now has better comment in the function makefile() that 79 usually prepends simple file names by "SCCS/s." before passing them 80 to the low level programs. This is the main place where future versions 81 of sccs.c need to be modified to be able to use the new -N option 82 from the low level programs. The -N option however is needed for 83 "off tree" repositories. 84 85- SCCS: sccs now checks for SCCS/s. in the function makefile(). This 86 results in attempts to check for SCCS/SCCS/s.x.file, but previous 87 versions complained: "SCCS/x.file not an SCCS file" which is not 88 better. In order to prepare the future use of -NSCCS, the new method 89 is needed. 90 91- SCCS: sccs now has a new variable "NewMode" that is set if the directory 92 ".sccs" is seen in the project set home directory. This is the upcomming 93 switch between the old mode where "sccs" translates g-file names into 94 s.file names before calling the SCCS low level programs and the new mode 95 where g-files + the option -NSCCS are used as argument for the low level 96 SCCS prrograms. 97 98 This can be controlled via the environment "SCCS_NMODE". If present and 99 set to "FALSE", "NewMode" is disabled regardless of the presence of 100 ".sccs" and otherwise "NewMode" is enabled regardless of the presence of 101 ".sccs". 102 103 WARNING: currently you need to set the environment SCCS_NMODE=TRUE to 104 enable this test mode since there is a need to change a lot in the code 105 to make it work again this way. 106 107- SCCS: sccs: Now using strdup() instead of malloc(strlen(buf) + 1) + strcpy() 108 109- SCCS: sccs now has a new subcommand "root" that prints the project 110 set home directory in case it has been initialized via "sccs init". 111 112- SCCS: libcomobj: the get(1) implementation from admin(1) has been 113 moved to libcomobj::doget() 114 115- SCCS: libcomojb::doget() now calls sclose() and sfree(). 116 117- SCCS: libcomojb::parseN() now recognizes a space character as a 118 placeholder for a flag that is ignored. This allows to make sccs.c 119 simpler as it is now able to modify the behavor of called low level 120 programs, e.g. to use "-N SCCS" to get a vanilla delta(1) or to use 121 "-N+SCCS" to get the behavior of "sccs delget". 122 123- SCCS: delta now supports new options -k and -N+... This permits 124 do do a "delget" operation with only using delta(1). 125 126- SCCS: a test for the new implicit get(1) in dalta(1) with -N+SCCS 127 has been added. 128 129- SCCS: sccsdiff shell script is now able to deal with a -N option that 130 contains space characters. This needs the use of IFS= and $Nflag as 131 "$Nflag" would otherwise result in an unwanted empty argument. 132 133- SCCS: all programs: added some more gettext() calls e.g. for the 134 -version option. 135 136- SCCS: sccslog: added support for setlocale()/gettext() 137 138- SCCS: sccsfile man page now contains an overview of all files used by 139 all SCCS commands. 140 141- SCCS: man pages now contain a hint on where to download the sourcecode. 142 143- SCCS: sccslog man page fixed a bug with a typo that used .PD 0 instead of 144 just .PD 145 146- SCCS: The version has been bumped to 5.09 with date 2018/12/18. 147 148 149 150- SCCS TODO: 151 152 - Convert sccs.c to use -NSCCS in the back end programs instead 153 of converting g-file names from the command line into s.file 154 names in the frontend in order to forward s.file names to the 155 backend programs. Doing it this way allows us to have the SCCS 156 history files "off tree" in a separate directory tree starting 157 with ".sccs/" at the "project root" directory, as the related 158 code to convert path names is in libcomobj::bulkprepare(). 159 160 - Add code to admin(1) and delta(1) to retrieve the list of 161 new or modified files in order to have all important code 162 for a "sccs commit" in a single program that does not need to 163 deal with ARG_MAX limitations. 164 165 - Add code to admin(1), delta(1) and get(1) to maintain/understand 166 the changeset file. 167 168 - Add code to libcomobj to understand the changeset file, 169 which is needed in order to e.g. know the file names and file 170 specific SIDs/state that correspond to a project global SID. 171 172 - Add code to all programs to maintain a lock (for the file 173 $PROJECTHOME/.sccs/SCCS/s.changeset, that would be in the file 174 $PROJECTHOME/.sccs/SCCS/z.changeset) to maintain a project 175 global lock. 176 177 - Find/verify a complete transactional model that allows to repair 178 complex changes to the set of files for a project that have 179 been aborted in the middle. The current idea is to create the 180 file $PROJECTHOME/.sccs/changeset with the deltas to the 181 changeset during a complex update operation. 182 183 - Find a way to decide when to use SCCS v6 type history files. 184 For the project mode, this is needed in order to prevent 185 historic SCCS implementations to believe they could modify 186 files without knowing about project global locks. 187 188 189 190 191 192- Bourne Shell Missing features for POSIX compliance: 193 194 - Support for $'...' quoting (this is not needed for the current 195 version of POSIX but for the next POSIX 196 version that will be named SUSv8). 197 The development of SUSv8 will start in 198 late 2016. 199 200 We are now expecting the Bourne Shell to be fully POSIX compliant. 201 202- Bourne Shell further TODO list: 203 204 - Finish loadable builtin support. 205 206 - POSIX does not allow us to implement ". -h", so we will 207 add a "source" builtin to be able to implement "source -h" 208 209- The following builtins (that are available in bsh) are still missing in 210 the Bourne Shell: 211 212 err echo with output going to stderr 213 glob echo with '\0' instead of ' ' between args 214 env a builtin version of /usr/bin/env 215 216 The following bsh intrinsics are still missing in the Bourne Shell: 217 218 - the restricted bsh has restriction features that 219 are missing in the Bourne shell. 220 221 - source -h read file into history but do not execute 222 223 and probably more features not yet identified to be bsh unique. 224 225 226 227Author: 228 229Joerg Schilling 230D-13353 Berlin 231Germany 232 233Email: joerg@schily.net, joerg.schilling@fokus.fraunhofer.de 234 235Please mail bugs and suggestions to me. 236