New features of SCCS-5.07: With the upcoming SCCS-6.0 we introduce a new SCCS history file format that intentionally causes historic SCCS implementations to abort (to prevent file corruption) but that can be easily converted back into a SCCS-5.x compliant history file using a conversion program. This conversion does not cause a loss of information as the new information is encoded as special comment that is accepted by all other SCCS implementations except for the current version of GNU "CSSC". Since SCCS-5.04, the first (partial) support for the upcoming SCCS v6 history format has been introduced. See the file TODO_V6 for more information. Please join the discussion mainling list for the development of enhancements on: http://lists.sourceforge.net/lists/listinfo/sccs-devel sccs-devel@lists.sourceforge.de The next task for SCCS is to introduce a changeset file that brackets a group of single file changes into a change set related to a commit. New features included with SCCS-5.07: This new version of SCCS implements new fundamental basic features and meta data that is needed in order to implement changesets. The new SCCS v6 specific metadata tags "urandom" and "path" allow futute SCCS versions to deal with renames and with removing of files. To check the new feature: - create a .sccs directory in the project set home directory. - In a directory below call admin -V6 s.xx - Check the content for s.xx Note that the current version of SCCS does not yet implement changesets, but we are close to that goal. - mpwlib::fixpath() now contains a warning against the limited features. - patch(1) now uses mkdirs() from libschily instead of an own implementation. - The SCCS admin command now always uses resolvepath() as there now is a portable user space implementaion in libschily and we no longer depend on the availability of the Solaris syscall resolvepath(). - All SCCS commands now use the new efatal() funtion to abort in case that printing the error text for errno is related to the actual error. - efatal() no longer prints an error text in case that errno is 0. - All SCCS commands no use the new FLUSH_COPY definition from defines.h instead of own definitions. - Some of the SCCS error messages are now enhanced by errno related text to make debugging easier. This in special includes messages related to lock-file creation. - SCCSv6 now creates at least 13 bytes of hexadecimal urandom data for new files. This results in a constant string length until year 2146. - Added a first version of the changeset.4 man page for SCCSv6 - The man page sccsfile.4 has been rewritten to make it easier to understand. - Include file reordering SCCS defines.h to avoid warnings on older platforms - Include file reordering SCCS delta.c to avoid warnings on older platforms - Include file reordering SCCS xtzset.c to avoid warnings on older platforms - dirname -> dir_name in SCCS fatal.c to avoid a gcc warning - SCCS: sccs diffs now uses "get -o" to extract the old version of the file in order to be able to get correct time stamps with "diff -c" or "diff -u". - SCCS: diff no longer writes nanosecond values in the middle of a "diff -c" timestamp when in German locale. - Fixed the SYNOPSIS line for the man page sccslog.1 - "sccs help ut4" now reminds of a probably missing SCCS directory. - SCCS now is able to add nanosecond time stamps in SCCS V6 history files. - SCCS admin is now able to add nanosecond V6 timestamps with admin -o -i - The SCCS commands "sccs", "get" and "delta" now support to store and retrieve files with nanosecond timestamps when using the SCCS V6 archive format. This is based on the recently introduced *at() syscall emulations in libschily. Please report problems from platforms that do not provide native *at() interfaces. - Some smaller changes in SCCS to avoid warnings from clang. - Two fixes in SCCS libraries from a clang warning that have been introduced to take care of the fact that size_t, the strlen() return is unsigned. - 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 - The SCCS script "sccsdiff" has been changed to call "get -o -Gfile ..." instead of "get -g > file ..." in order to allow diff -u to print useful timestamps for the diffed versions. - The sccs command now also uses vfork() this has been prepared before but the final change fork() -> vfork() was forgotten before. - The sccs command now prints basic help (basic sub-commands) if called without arguments. - The SCCS man pages have been reworked and some more Sun-introduced bugs have been fixed. The troff man page files no longer contain endless long lines and correctly follows the man(5) rules again. - The man page sccs-admin.1 now correclty mentions that: %M% Is expanded to the value of the 'm' flag in the history file. %Q% Is expanded to the value of the 'q' flag in the history file. %Y% Is expanded to the value of the 't' flag in the history file. Before, Sun did destroy the strings %M%, %Q%, %Y% with their conversion from troff to xml and back to troff using defective converters. - Various enhancements have been made to the SCCS manual pages: - \f[BRI] font switching from the buggy Sun troff -> xml -> troff conversion has been mostly converted to man(5) compatible .B .I .R ... - Non-standard hanging tags from the buggy Sun troff -> xml -> troff conversion have been converted to man(5) compaitble .TP tags. - changeset.1 was renamed to sccschangeset.1, changeset.1 now contains a .so statement. - sccsvct.1 was renamed to sccs-cvt.1, sccscvt.1 now contains a .so statement. - sccslog.1 was renamed to sccs-log.1, sccslog.1 now contains a .so statement. - sccs.1 now mentions that this version of SCCS will automatically create the SCCS subdirectory if needed. - Hyphenation is now disabled in the SEE ALSO section. This helps to get working HTML links when using man2html(1). /*--------------------------------------------------------------------------*/ - A workaround for a bug in llvm-gcc-4.2 has been introduced in inc/avoffset.c. The llvm-gcc-4.2 bug caused an endless loop at an unexpected place. - New files libschily::mkdirs.c and libschily::resolvepath.c - libschily::abspath() is now based on resolvepath() and thus more correct in case symlinks are part of the path. - New autoconf tests for getdelim() and strncasecmp() - New functions strcasecmp() and strncasecmp() for libschily. - New functions diropen() dirrdopen() dirclose() for libschily. These functions are needed in order to emulate fchdir() on platforms that do not support fchdir(). - libschily/getperm.c now supports a new flag GP_UMASK in order to support "umask +w" in a POSIX correct way. - Libschily is now linked against $(LIB_INTL) when a shared libschily is created. - Avoid warnings from cl.exe for libschily/gettimeofday.c - libschily/comerr.c now has a new comment for the problems of folding the exit code to 8 bits. - Added a symlink to libschily/stdio/flush.c to get flush() for "echo" into the bootstrap "psmake". - libschily::fexecv() now allows to use the parameter "ac" with the value -1 to indicate that the arg count is to be determined by the NULL pointer at the end of the arg list. - Added #include to libschily/fnmatch.c - New functions getnstimeofday() and setnstimeofday() have been added to libschily. - New files for libschily: at-base.c generic implementation for *at() functions. fchownat.c fchownat() fdopendir.c fdopendir() fstatat.c fstatat() futimens.c futimens() futimesat.c futimesat() Solaris specific old for utimensat() lutimens.c lutimens() linkat.c linkat() mkdirat.c mkdirat() mkfifo.c mkfifo() mkfifoat.c mkfifoat() mknodat.c mknodat() readlinkat.c readlinkat() renameat.c renameat() symlinkat.c symlinkat() unlinkat.c unlinkat() utimens.c utimens() utimensat.c utimensat() at-base.c The base code for all single fd *at() functions. at-base2.c The base code for all double fd *at() functions. contain emulations for system interfaces introduced in summer 2001 by Sun and with POSIX.1-2008. - New functions in libschily: absfpath() resolvefpath() allow to better control the behavior using flags. - The linker map file for libschily now adds some forgotten functions. - libschily/strstr.c and libschily/wcsstr.c now include a CDDL License hint - libschily::format.c (printf) now supports length modifiers like h hh l ll t z for the %n format. - libschily::format.c has been restructured for parsing the field width parameters in a way that would allow to later introduce support for %n$ - New functions xcomerr(), xcomerrno(), fxcomerr(), fxcomerrno() in libschily allow error message and exit with an exit value that differs from errno. - a bug in libschily/format.c that caused %.*s to be printed incorrectly has been fixed. - libschily/format.c has been redesigned to allow the code to be reused for fprformat() via #include. - libschily/fprformat.c New function fprformat() in libschily is implementing the same direct interface as doprnt() from libc and thus allows to implement printf() faster than the printf() from libc on Solaris. - libschily/jsprintf.c For Solaris, jsprintf() now is implemented based on fprformat(). This allows printf() from libschily to be aprox. 33% faster than printf() from libc on Solaris and aprox. 2x as fast as jsprintf() in libschily has been before. This gives another performance boost for printf() bound programs like hdump/od that is used as a OSS replacement for the closed source od(1) on OpenSolaris. This now makes the OSS od(1) on OpenSolaris typically 5x faster then the closed source version. - libschily/getdtablesize.c now treats MinGW the same as when compiling on Win-DOS using cl.exe. - libschily/mkdirat.c and libschily/mkdirs.c now take care of the fact that MinGW has a non standard compliant mkdir() - libschily/mkfifoat.c fixed a type from, cut/paste the file from mkdirat.c - libschily now implements strspn() strcspn() wcsspn() wcscspn() - libschily/format.c (the low level printf() implementation) now implements support for %n$ argument repositioning for the case that "n" is 1..30, or if larger points to an int type arg. - libschily/fprformat.c fixed a bug that would prevent to use stdio macros with newer OpenSolaris versions, making printf() not as fast as expected. - libschily/getargs.c no longer dumps core when boolean flags are combined into a single string and one or more of these flags trigger a callback function. - libschily/sleep.c and libschily/usleep.c have been modified to work with MinGW. - libschily/format.c fixed to compile again with K&R C that does not support "long double". - libschily/fstream.c now supports local flags (for the caller) and pushable streams to keep blocks of pushed text atomically. - libschily/mknodat.c now correctly provides a mknodat() function even when there is no mknod() command. - libschily/futimens.c now is more Sun specific when trying to implement futimens() via utimensat(), as only Solaris supports a f*() interface in case that the path name is a NULL pointer. - libschily/fchmodat.c was added, it has been forgotten when the emulations for the *at() functions have been introdiced. It ne needed for the new enhanced isoinfo command. - libschily/faccessat.c with a faccessat() was added. This has been forgotten when the *at() functions have been implemented. - libschily/eaccess.c no longer calls access() in case the the OS does not implement eaccess() but rather first checks whether uid == euid and gid == egid. - libschily/eaccess.c compiles again in HP-UX using the HP C-compiler - libschily/dlfcn.c new file to emulate dlopen() and friends on Win-DOS and HP-UX - libschily/lchmod.c was added - libschily/fchmodat.c no longer contains lchmod() - The linker mapfile libschily/libschily-mapvers now correctly makes the entry faccessat() depend on HAVE_FACCESSAT - dirname -> dir_name in libfind to avoid a gcc warning - Fixed a filedesrciptor leak in libfind that hits when using -empty on empty directories. - libfind now calls closedir() with -empty even on empty directories. - Added a workaround fot a auto-dependency creation bug in the HP-UX c-compiler that resulted in wrong dependency files for all files in libshcily/stdio/ and for these files prevented an automated recompilation in case that an include file was changed. - Added links for: amd64-freebsd-cc.rul amd64-freebsd-gcc.rul amd64-openbsd-cc.rul amd64-openbsd-gcc.rul x86_64-darwin-cc.rul x86_64-darwin-gcc.rul x86_64-darwin-cc64.rul x86_64-darwin-gcc64.rul x86_64-darwin-cc32.rul x86_64-darwin-gcc32.rul - RULES/rules.loc now makes $(PTARGET) to depend on $(ARCHDIR) to support make -j 2 - The make program specific configuration files for the Schily Makefilesystem RULES/mk-.id (for SunPro make), RULES/mk-smake.id RULES/mk-gmake.id now include definitions for the macros: SPACE A single space character (' ') NUMBER_SIGN The ASCII number sing ('#') Note that the POSIX standard otherwise requires the make program to be unable to have the '#' appear in non-comment sections of Makefiles. - gmake and SunPro make include COMPILE.c with wrong content in their built-in rules. We now clear this macro un RULES/rules.top. It is still possible to provice a modified version from command line or from the environment. - RULES/rules.top now also calls MKLINKS in the directory TEMPLATES - New compiler configuration files: RULES/cc-clang.rul RULES/cc-clang32.rul RULES/cc-clang64.rul - The Mac OS X related rules now support a new macro: LDFRAMEWORKS= that allows to add Apple specific libraries. - Added a new WIN32_LIBS= macro for Win-DOS specific libraries. These libraries have to be specified in the portable -lfoo format for "libfoo" and also work when compiling for MinGW32. When cl.exe is used, -lfoo is converted to foo.lib. - New configuration files: RULES/i386-darwin-clang.rul RULES/i386-darwin-clang32.rul RULES/i386-darwin-clang64.rul - New configuration files: RULES/i386-freebsd-clang.rul RULES/i586-linux-clang.rul RULES/i86pc-sunos5-clang.rul RULES/sun4-sunos5-clang.rul Note that these files have not been tested yet. - RULES/cc-sunpro.rul now also includes rules for RULES/cc-sunpro32.rul and RULES/cc-sunpro64.rul - RULES/cc-gcc.rul now also includes rules for RULES/cc-gcc32.rul and RULES/cc-gcc64.rul - RULES/cc-sunpro32.rul added for orthogonality - RULES/cc-sunpro32.rul and RULES/cc-sunpro64.rul are symlinks to RULES/cc-sunpro.rul and RULES/cc-sunpro.rul uses a macro to include cc-sunpro.rul cc-sunpro32.rul cc-sunpro64.rul as needed - RULES/i86pc-sunos5-cc.rul now also includes rules for RULES/i86pc-sunos5-cc32.rul and RULES/i86pc-sunos5-cc64.rul - RULES/i86pc-sunos5-gcc.rul now also includes rules for RULES/i86pc-sunos5-gcc32.rul and RULES/i86pc-sunos5-gcc64.rul - RULES/sun4-sunos5-cc.rul now also includes rules for RULES/sun4-sunos5-cc32.rul and RULES/sun4-sunos5-cc64.rul - RULES/sun4-sunos5-gcc.rul now also includes rules for RULES/sun4-sunos5-gcc32.rul and RULES/sun4-sunos5-gcc64.rul - RULES/i586-linux-suncc.rul now also includes rules for RULES/i586-linux-suncc32.rul and RULES/i586-linux-suncc64.rul - RULES/9000-725-hp-ux-cc.rul now also includes rules for RULES/9000-725-hp-ux-cc32.rul and RULES/9000-725-hp-ux-cc64.rul - RULES/i486-cygwin32_nt-cc.rul now also includes rules for RULES/i486-cygwin32_nt-cc32.rul and RULES/i486-cygwin32_nt-cc64.rul - RULES/i486-cygwin32_nt-gcc.rul now also includes rules for RULES/i486-cygwin32_nt-gcc32.rul and RULES/i486-cygwin32_nt-gcc64.rul - RULES/ip22-irix-cc.rul now also includes rules for RULES/ip22-irix-cc64.rul - RULES/ip22-irix-gcc.rul now also includes rules for RULES/ip22-irix-gcc64.rul - RULES/power-macintosh-darwin-cc.rul now also includes rules for RULES/power-macintosh-darwin-cc32.rul and RULES/power-macintosh-darwin-cc64.rul - RULES/power-macintosh-darwin-gcc.rul now also includes rules for RULES/power-macintosh-darwin-gcc32.rul and RULES/power-macintosh-darwin-gcc64.rul - conf/makeinc now knows that a compiler name may not follow the "cc*" text rule. This helps to support "clang". - conf/cc-config.sh has been enhanced to detect whether "cc" or "gcc" are emulated via "clang". - New files in TEMPLATES/ related to "clang" - TEMPLATES/ now includes config files for gcc32 and gcc64 - TEMPLATES/ now includes config files for clang, clang32 and clang64 - Add comment to DEFAULTS_CSW/sparc-cc.defs - New symlink RULES/x86_64-linux-clang.rul to support non automake-enabled make programs like gmake. - New include files include/schily/inttypes.h and include/schily/stdint.h - Add support for semi-static (preconfigured) include files for Android: include/schily/armv5tejl-linux-gcc/xconfig.h - New include files include/schily/err_*.h are used to encapsulate #error CPP statements that would otherwise always prevent compilation with K&R compilers. - include/schily/stat.h now contains macros to set the nanoseconds in timestamps in a OS independent way - Fixed a typo in include/schily/stat.h that caused setting nanoseonds in timestamps to be impossible for NetBSD and OpenBSD. Thanks to a hint from Thomas Klausner - include/schily/priv.h now includes sys/capabilitiy.h if available. - WARNING: the include structure of include/schily/*.h and several sources has been restructured to cause less warnings with older OS platforms. If you see any new problem on your personal platform, please report. - New includefiles: schily/poll.h Support poll() schily/stdarg.h An alias to schily/varargs.h (but using the std name) schily/sunos4_proto.h Missing prototypes for SunOS-4.x to make gcc quiet schily/timeb.h Needed for users of ftime() - Many minor bug-fixes for the files include/schily/*.h - Added #include to libdeflt - include/schily/archconf.h now defines __SUNOS5 for easier coding - include/schily/priv.h now defines platform independent fine grained privileges - include/schily/stdio.h now implements #ifndef NO_SCHILY_STDIO_H to avoid including stdio.h from wchar.h - Various Cstyle changes in the include/schily directory. - New include file: include/schily/shedit.h - New include file include/schily/shedit.h - Add forgotten include/schily/err_type.h - include/schily/intcvt.h is now self contained. - Added uname.c and include/schily/windows.h to the files that need to be copied for the smake bootstrap compilation "psmake". Thanks to Wolfram Schmid - include/schily/windows.h now includes the same type workaround for MINGW32 as fir the Microsoft C compiler, as there are the same autoconf detection problems. - include/schily/stdio.h was reordered, as it prevented compilation of the "bsh" on Linux. This was a problem recently introduced, when we added #ifndef NO_SCHILY_STDIO_H - include/schily/stdio.h now finally works to compile libshedit on Linux _and_ to pass the program "hdrchk" from OpenSolaris. - Define DEV_NULL in include/schily/mconfig.h to address the missing /dev/null on DOS - include/schily/stdio.h now implements code that partially unhides the FILE * data structures from the 64 bit Solaris libc. This allows to implement a getc_unlocked() macro even for 64 bit Solaris as done by libc, so libschily is able to achieve similar stdio I/O performance, which is needed to be able to implement a printf() in libschily that is faster than printf() from libc. - include/schily/varargs.h now includes a new type va_lists_t that is a structure that covers va_list. - include/schily/getargs.h now has comment for the arguments and return code of the getargs() callback functions. - include/schily/unistd.h now extends some exceptions to work around problems with the MS C-compiler to MinGW32. - The file include/schily/dlfcn.h now defines HAVE_LOADABLE_LIBS if either POSIX loadable libs, or HP-UX loadable libs or Win-DOS loadable libs are present. The latter two will get a POSIX emulation layer if available. - New autoconf tests for getdelim() and strncasecmp() - autoconf/configure no longer gets confused by the directory "conftest.dSYM" that is created on Mac OS X with cc -g. Previous versions might have assumed that the executable suffix is ":dSYM" and failed as a result of this wrong assumption. - New autoconf tests for sys/capability.h and cap_*() functions from Linux -lcap WARNING: If you do not see this: checking for sys/capability.h... yes ... checking for cap_get_proc in -lcap... yes checking for cap_get_proc... yes checking for cap_set_proc... yes checking for cap_set_flag... yes checking for cap_clear_flag... yes your Linux installation is insecure in case you ever use the command "setcap" to set up file capabilities for executable commands. Note that cdrtools (as any other command) need to be capabylity aware in order to avoid security leaks with enhanced privileges. In most cases, privileges are only needed for a very limited set of operations. If cdrtools (cdrecord, cdda2wav, readcd) are installed suid-root, the functions to control privileges are in the basic set of supported functions and thus there is no problem for any program to control it's privileges - if they have been obtained via suid root, you are on a secure system. If you are however on an incomplete installation, that supports to raise privileges via fcaps but that does not include developer support for caps, the programs get the privileges without being able to know about the additional privileges and thus keep them because they cannot control them. WARNING: If you are on a Linux system that includes support for fcaps (this is seems to be true for all newer systems with Linux >= 2.6.24) and there is no development support for capabilities in the base system, you are on an inherently insecure system that allows to compile and set up programs with enhanced privileges that cannot control them. In such a case, try to educate the security manager for the related Linux distribution. Note that you may turn your private installation into a secure installation by installing development support for libcap. - New autoconf test on whether includes struct timespec - New autoconf tests check whether some functions (such as clock_gettime()) are in libc or need a separate library - New: struct timespec in schily/time.h is granted to exist on all platforms - New autoconf test for issetugid() - New autoconf test for utimens() / lutimens() - Fixed autoconf typo HAVE_MKNODKAT -> HAVE_MKNODAT - A new autoconf test was added to detect the presence of NFSv4 ACL support on Solaris inside libsec. - New autoconf tests for: getc_unlocked getchar_unlocked putc_unlocked putchar_unlocked flockfile funlockfile ftrylockfile - New autoconf tests for strspn() strcspn() wcsspn() wcscspn() - Fixed the autoconf test for #pragma weak, so it will not believe that "clang" supports #pragma weak in a compatible way. This is needed in order to compile libmdigest/sha2.c using clang. - New autoconf tests added for: libexpat libpcsclite / winscard.lib libcrypto / libeay32.lib libssl / ssleay32.lib - New autoconf test for expat.h - The makefile system added the INVERSE_SUBARCHDIR= to allow local autoconfiguration for shared libraries. - Fixed a typo in autoconf/xconfig.h.in that caused the Win-DOS function LoadLibrary() not to be regognised correctly. - The script conf/makeinc is no longer confused by OpenBSD that has man.7 and mandoc.7 and both match on man* - conf/runrmt_android has been enhanced to better deal with the "runrmt -r file-to-test" calling variant. - conf/makeinc now knows that a compiler name may not follow the "cc*" text rule. This helps to support "clang". - conf/cc-config.sh has been enhanced to detect whether "cc" or "gcc" are emulated via "clang". SCCS-5.07 is 2.5x faster than Sun SCCS and consumes 4.7x less CPU time than Sun SCCS. SCCS-5.07 is 2x..50x faster than GNU CSSC and needs 4x..10x less memory than GNU CSSC. SCCS-5.07 is 6x faster than RCS-5.8 and consumes 7x less CPU time than RCS-5.8. For RCS files > 256 kB, add factor of 2x to CPU times when you use RCS-5.8. SCCS now has been tested to compile and work on the following platforms: - SunOS-4.x - SunOS-5.x (Solaris 2.x, 7, 8, 9, 10, 11) - FreeBSD - HP-UX - Linux - Mac OS X - AIX - IRIX - VMS - Cygwin The portability now reached a state that should allow SCCS to compile and run on other platforms too. SCCS compiles and has been verified on all major platforms.