New features with AN-2014-09-17: This is the first localization step for the schily source consolidation. Many programs now (hopefully) call gettext() for all strings that need localization. - The next step will include dgettext() calls for the libraries and the missing programs - The following step will include the extracted strings - The last step will include German translations and install support for the resulting binary message object files. ----------> Please test and report compilation problems! <--------- ***** NOTE: As mentioned since 2004, frontends to the tools should ***** ***** call all programs in the "C" locale ***** ***** by e.g. calling: LC_ALL=C cdrecord .... ***** ***** unless these frontends support localized strings ***** ***** used by the cdrtools with NLS support. ***** *** WARNING *** *** Need new smake *** *** Due to the fact that schily-tools 2014-04-03 introduced to use new macro *** expansions and a related bug fix in smake, you need a new smake *** to compile this source. To ensure this, call: cd ./psmake ./MAKE-all cd .. psmake/smake psmake/smake install WARNING: the new version of the isoinfo program makes use of the *at() series of functions that have been introduced by Sun in August 2001 and added to POSIX.1-2008. For older platforms, libschily now includes emulations for these functions but these emulations have not yet been tested thouroughly. Please report problems! The new smake version mentioned above is smake-1.2.4 - include/schily/unistd.h now extends some exceptions to work around problems with the MS C-compiler to MinGW32. - Fixed a bug in mkisofs: -eltorito-platform Mac no longer uses the constant EL_TORITO_ARCH_PPC but EL_TORITO_ARCH_MAC as expected. Thanks to Ady for reporting. - Fixed an option parsing bug in mkisofs that was a result from option names that are beginning substrings of others. Mkisofs did try to fix this in 2006, but it seems that one option was missed in 2006. Now -hide-hfs was fixed, thanks to: - Flush stderr before a question in cdda2wav. This is a workaround for a Linux libc bug (stderr must be unbuffered acording to the standard). - The builtin type(1) from bsh now uses an exit code of 1 in case that a parameter is not related to an existing executable object. - sccs/man/sccsfile.4 better wording - sccs/man/sccsfile.4 man page now mentiones which sccs programs write or modify s.files. - sccs/man/changeset.4 enhanced content - sccs/man/* Now mention AUTHORS - sccs/man/*.1 The SYNOPSIS section of all man pages was converted to conform to man(5) style rules. - sccs/man/*.1 now mention the option -q that enables NSE specific extensions. The NSE extensions in SCCS are still partially present but have been undocumented until now. - sccs/man/*.1 now mention the option -z that enables CMF specific extensions for MR number handling. The CMF extensions in SCCS are still partially present but have been undocumented until now. - sccs/man/*.1 now correctly document options that do not allow a space between the option letter and the argument. - sccs/man/*.1 mentioning the new environment variable: SCCS_NO_HELP that switches off automated sccs help output for error messages that obviously contain a SCCS error code covered by "sccs help ". - sccs/man/sccs-admin.1 mentioning the new environment variable: SCCS_V6 that causes SCCSv6 history files to be created by default. - sccs/man/sccs-admin.1 now mentionns the 'z' flag that was introduced by Sun for the CMF extensions from NSE. - sccs/man/sccs-delta.1 better documentation for the -g option. - sccs/man/sccs-delta.1 now mentions a bug with SCCSv6 and delta -g - sccs/man/sccs-delta.1 now documents the NSE specific options -f / -h - sccs/man/sccs-get.1 now documents the format of the p.file. - sccs/man/sccs-get.1 now documents the Sun specific option -w<%W%-string> - sccs/man/sccs-prs.1 now documents the CMF specific keyword extensions - sccs/sccs/hdr/defines.h was enhanced due to lib comobj changes - sethome.c (a new file for SCCSv6 changeset support) was moved from mpwlib to comobj as mpwlib is the former libPW (Programmers Workbench) from AT&T that is not related to SCCS but contains code of general interest. Lib comobj on the other side is the generic SCCS support library. - The code to create the initial path for a file for the SCCSv6 meta data was moved from admin.c to lib comobj/src/setinitpath.c. - A bug in SCCS mpwlib/src/urandom.c was fixed. The bug caused all microsecond values from gettimeofday() to be replaced by a random value in case gettimeofday() did never deliver tv_usec == 0 before. As this was done using an uninitialized random generator, the values have always been taken from the same set and thus havebeen predictable. - mpwlib/src/urandom.c now always implements and exports the functions: tv2urand() and urand2tv() to allow to convert urandom values back to timevals (based on the epoche "2004 Jan 10 13:37:04 UTC") and vice versa. - A bug in admin.c that caused admin(1) to corrupt SCCSv6 history files in case that the -t option was used has been fixed. - A bug in admin.c that caused admin(1) partially write a wrong SID specific checksum in SCCSv6 history files when an empty file was created has been fixed. - The SCCS admin program now by default creates SCCSv6 history files in case that the environment variable "SCCS_V6" is present. - The SCCS get program now implements a new option -F that enforces to retrieve a g-file even if there was a SCCSv6 SID specific checksum missmatch. - The SCCS get program now disables to check the SID specific SCCSv6 checksum in case that the -i or -x option habe been used. - The SCCS prs program now correctly reads SCCSv6 history files even in case that the keyword :FD: was used. - The SCCS val program now correctly reads SCCSv6 history files even in case that the options -y / -m have been used. - The SCCS val program had a bug that was caused by a forgotten change from the test version to the final version and offered to check SCCSv6 SID specific checksums with -h, but internally expected an option -S. This is now coherent and -h works. - All SCCS programs now by default try to analyze the error messages and when an error message ends in a parenthesized SCCS error mesage, the SCCS help code is executed as library version. If this behavior is not desired, the user should put SCCS_NO_HELP into his environment. - The SCCS help command moved the relevant code into libcomobj and now uses the same library version of the code as all other SCCS programs use to write the new extended error messages. - The SCCS help output for "sccs_subcmds" and basic sub-commands (intro) now delivers the subcommands in alphabetic order. - The SCCS help output for "delta" now documents the NSE specific options -f / -h - The SCCS help output for "get" now mentions -F - The SCCS help output for "get" now mentions the Sun Option -w%W%-string - The SCCS help output for "val" now mentions -h - The SCCS help output for "prs "now mentions the CMF specific keyword extensions - The SCCS help output now mentions the option -V for all apropriate programs - The SCCS help output now mentions the option -q (NSE) for all apropriate programs - The SCCS help output now mentions the option -z that enables CMF specific extensions for MR number handling. - The command "sccs enter/create ..." now accepts the -V6 flag to enforce to create a SCCS v6 history file. - tests/bin/echo_nnl has been rewritten to allow sh -ce ". echo_nnl" to work (do not test $? but the command result directly). - sccs/tests/README was updated - sccs/tests/sccstests/common/real-thing now checks whether the SCCS implementation under test supports the SCCS V6 history format and sets TESTING_SCCS_V6=true on success. - sccs/tests/Makefile has been rewritten to allow to check SCCS in V4 and V6 mode. - sccs/tests/sccstests/binary/basic.sh now also supports SCCS V6 - Mention in sccs/tests/cssctests/README that this is the original README from the imported unit tests from the CSSC project. - sccs/tests/cssctests/README_ORIGIN now mentions that the tests in cssctests are bases on CSSC version 1.3.1 Important note: The program delta(1) is currently buggy with respect to a SCCS v6 history file when "delta -g s.file" is called. This is because the SID specific checksum is computed from the current file content, but "delta -g..." tells get(1) to extract something different than what we checked in. The following modifications have been applied to the test suite in the directory sccs/tests/cssctests/ in order to support SCCS_v6 as well: - $TESTING_SCCS_V6 This variable has been added in order to deal with different behavior of SCCS in case that SCCSv6 history files are used. - Test c3 in admin/admin-hz.sh This test intentionally destroys the SCCS checsum in line 1 of the history file. The original code also destroys the V6 header and results in "V3" instead of "V6". The new code reverts this accidental effect. - Text C2 in admin/comment.sh This tests checks the date/time format in the delta table. As the SCCSv6 history format always uses a 4-digit year format, the test needs to check a different format whether in v4 or v6 mode. - binary/auto.sh Several tests are related to auto-uu- encoding of files in case that there is content that is unsupported by SCCSv4. As SCCSv6 treats everything as test files as long as there is no NUL character present, these tests need to be different for SCCSv6 history files. - binary/seeking.sh This script contains more corner cases for text vs. binary files that behave different vor SCCS v4 and v6. - get/excl_ig_2.sh Warns on a SCCSv6 bug with delta -gsid Author: Joerg Schilling D-13353 Berlin Germany Email: joerg@schily.net, js@cs.tu-berlin.de joerg.schilling@fokus.fraunhofer.de Please mail bugs and suggestions to me.