cdrtools Changelog

New in version 3.01 Alpha 22

January 21st, 2014
  • All:
  • 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.
  • The schily makefilesystem now includes a new symlink ppc64le-linux-cc.rul for non-automake aware make implementations such as gmake.
  • New autoconf tests for strspn() strcspn() wcsspn() wcscspn()
  • Libschily:
  • 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.
  • Libsiconv:
  • sic_open() no longer tries to open all characterset names as files in the current directory but only if the name contains a slash.

New in version 3.01 Alpha 21 (January 6th, 2014)

  • All:
  • Define DEV_NULL in include/schily/mconfig.h to address the missing /dev/null on DOS
  • New autoconf tests for: getc_unlocked getchar_unlocked putc_unlocked putchar_unlocked flockfile funlockfile ftrylockfile
  • Symlinks for armv4tl-linux-cc.rul s390x-linux-cc.rul armv5tel-linux-cc.rul new, to support non-automake aware make programs such as gmake.
  • Do not define a gethostname() prototype in schily/hostname.h for MinGW, as MinGW as a wrong prototype is in the non-standard file winsock.h
  • 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.
  • Libschily:
  • 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
  • Cdrecord:
  • cdrecord/cue.c now has a better comment related to cdrtools specific CUE enhancements.
  • Fixed a typo in cdrecord.dfl
  • Cdda2wav (Maintained/enhanced by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de):
  • Avoid a redefined xxx warning for cdda2wav/exitcodes.h
  • Added a #undef interface to cdda2wav/interface.h to make sure that the #define interface from windows.h does not cause problems even when using MinGW
  • Mkisofs:
  • mkisofs/mkisofs.8 fixed illegal troff sequence "\\" to "\e"
  • Try to avoid a direct string "/dev/null" in mkisofs.c to allow it to work on Win-DOS without POSIX layer.

New in version 3.01 Alpha 20 (December 27th, 2013)

  • All:
  • New Schily Makefiles rules for armv7l-linux
  • autoconf/xconfig.h.in now treats MinGW32 the same as when compiling with cl.exe
  • Libschily:
  • 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$
  • Try to take care about the fact that MinGW32 does not support a standard compliant mkdir() function with two parameters. This applies top libschily/mkdirat.c and libschily/mkdirs.c
  • Corrected a typo in libschily/mkfifoat.c that called mkdir() instead of mkfifo()
  • libschily/getdtablesize.c needs the same treatment for MinGW32 as for cl.exe
  • Libparanoia:
  • libparanoia now implements the first stage in C2 error pointer support: it now is able to deal with input data that contains C2 pointers and it implements new callbacks to report C2 statistics back to the caller.
  • libparanoia now supports to control the size of the read ahead buffer. This allows libparanoia to be adopted to the current constraints.

New in version 3.01 Alpha 19 (November 23rd, 2013)

  • This version added different fine-grained privilege handling that keeps root privileges in cases where cdrtools have been called by a privileged program.
  • Libfind now supports "event port" type files.
  • Clashes with an outdated cdda_paranoia.h file in /usr/local/include/ as seen on FreeBSD are now avoided.
  • Emulations for *at() functions have been added to libschily.

New in version 3.01 Alpha 18 (October 18th, 2013)

  • Added rules for non-automake enabled make programs (like gmake) for: ppc64-linux-cc.rul and ppc64-linux-gcc.rul.
  • Added new OS version ID rules for various WIN-DOS versions:
  • os-interix-nt-6.0.id
  • os-interix-nt-6.1.id
  • os-cygwin_nt-6.2-wow64.id
  • os-cygwin_nt-6.2.id
  • os-cygwin_nt-6.3-wow64.id
  • os-cygwin_nt-6.3.id
  • New autoconf test in whether struct timespec is defined.
  • Various Cstyle changes in the include/schily directory.
  • New include file: include/schily/shedit.h.
  • Make sure that include/schily/time.h always includes a struct timespec definition.
  • New functions getnstimeofday() and setnstimeofday().
  • Added defltsect() to the list of exported functions for the shared library version.
  • Fixed a filedesrciptor leak in libfind that hits when using -empty on empty directories.
  • Fixed fine grained privilege handling for Linux. Thanks for Daniel Pielmeier from Gentoo for reporting and testing.

New in version 3.01 Alpha 17 (August 6th, 2013)

  • The Schily Makefilesystem no longer uses CC= for internal tasks.
  • Automatic support has been added for ARMv5 and ARMv6.
  • This makes compilation on the RaspberryPI also possible with the non-automake aware gmake.
  • Allows "static" compilation (compilation that does not use the dynamic defines from the Schily Makefilesystem) on Linux ARMv6 (which is used by RaspberryPI).
  • Many sources have been modified to handle __CYGWIN32__ as __CYGWIN__
  • This is needed as newer Cygwin versions that run in 64-bit mode no longer define __CYGWIN32__ but __CYGWIN__.

New in version 3.01 Alpha 16 (July 11th, 2013)

  • This version fixes a bug in libparanoia that caused too small array initialization.
  • The OpenCSW build environment was updated to the last release.
  • This release allows "static" compilation for Linux x86 for cdrtools library users.
  • The include files from the Schily portability environment have been restructured.

New in version 3.01 Alpha 15 (June 3rd, 2013)

  • On Linux and Solaris, this release will warn you if necessary fine-grained permissions are missing.
  • It works around a FreeBSD 9.1 bug that prevented compilation of cdda2wav.
  • mkisofs compiles without -DUDF and without -DDVD_VIDEO.

New in version 3.01 Alpha 14 (April 23rd, 2013)

  • A typo in include/schily/stat.h related to nanosecond handling on NetBSD and OpenBSD was fixed.
  • suid-root-less installation is now supported on Linux using fcaps (generally available since Linux 2.6.24).
  • -new-dir-mode in mkisofs now just supersedes the effect of -dir-mode on directories that have been "invented" by mkisofs.

New in version 3.01 Alpha 13 (February 27th, 2013)

  • This version supports hard links, named pipes, sockets, character specials, and block specials with UDF, supports all three Unix times with microsecond granularity in UDF, sets the correct user/group/permission for symlinks in UD, and supports S_ISUID, S_ISGID, S_ISVTX (set uid, set gid, sticky) in UDF.

New in version 3.01 Alpha 12 (February 12th, 2013)

  • Two bugs in the UDF metadata have been fixed that caused mkisofs to cause bad file content in case a file > 4 GB was present while the -sort option was used.
  • Cdda2wav no longer prints garbage when asking "load cdrom please and press enter", and a character other than NL was entered.

New in version 3.01 Alpha 11 (January 10th, 2013)

  • This version adds a workaround to support compilation on the recent cygwin release.

New in version 3.01 Alpha 10 (December 18th, 2012)

  • Fixes a problem with DVD-Video padding introduced in 3.01a09 as a result of a false Valgrind warning.
  • Adds support for semi-static (preconfigured) include files for Android: include/schily/armv5tejl-linux-gcc/xconfig.h.

New in version 3.01 Alpha 09 (December 5th, 2012)

  • A 32-bit unsigned int rollover bug in mkisofs with computing sector addresses for Rock Ridge CE Entries was fixed (hits with multi session that starts past 4 GB).
  • All programs from the mkisofs suite now support a new option -ignore-error.
  • Support for a new platform (Pyro) was added.

New in version 3.01 Alpha 06 (September 15th, 2011)

  • This version adds support for compiling with the Microsoft compiler cl.exe, support for cross compilation, and an attempt to support SCSI transport on newer AIX versions.

New in version 3.01 Alpha 05 (June 5th, 2011)

  • Mkisofs now supports El Torito multi boot mode.
  • Mkisofs now supports the ability to set arbitrary boot architectures (e.g. EFI) via the new option -eltorito-platform.
  • Mkisofs now supports the ability to manually set the modification time that is recorded in the Primary Volume Descriptor via the new option -modification-date. This allows you to set arbitrary UUID values for grub.

New in version 3.01 Alpha 04 (April 14th, 2011)

  • Fixed a typographical error that caused cdrecord-3.01a03 to abort before the permitted CD-Text size.

New in version 3.01 Alpha 03 (March 11th, 2011)

  • This version will try to use the actual sense count instead of a standard value for REQUEST SENSE on newer FreeBSD versions.
  • It will try to restore the SCSI status byte and the command error after doing a manual REQUEST SENSE for failed commands on AIX, UnixWare, Apollo Domain, and for Linux Parallel Port SCSI.
  • Cdrecord now warns when someone tries to write more CD-Text than possible for a single language.
  • Several typos have been fixed in the cdda2wav man page.
  • Some forgotten options have been added to the mkisofs man page.

New in version 3.01 Alpha 01 (November 26th, 2010)

  • All:
  • The macros XARCH_GEN & XARCH_OPT are now in RULES/cc-sunpro*.rul
  • The include file include/schily/ccomdefs.h now allows to disable the printf() format checks for GCC with -DNO_PRINTFLIKE This is needed in order to allow star to compile in the Solaris ON cosolidation as GCC id too dumb for the printf() extensions.
  • All include files (even those created by autoconf) are now protected against multiple includion.
  • New autoconf test for pathconf() and fpathconf()
  • New autoconf test for /dev/stdin, /dev/stdout, /dev/stderr, /dev/fd/0, /dev/fd/1, /dev/fd2
  • New autoconf tests for: qecvt() qfcvt() qgcvt() _ldecvt() _ldfcvt() _ldgcvt() _ldecvt_r() _ldfcvt_r() _ldgcvt_r() qeconvert() qfconvert() qgconvert() needed for long double support.
  • New autoconf test for _qecvt() _qfcvt() _qgcvt() and _qecvt_r() _qfcvt_r() _qgcvt_r() on AIX
  • All linker map files have been modified to allow platform dependent #ifdef's
  • include/schily/wchar.h now includes a workyround for platforms that do not have wcwidth().
  • Make NLS the default (i.e. gettext() is called in case that schily/nlsdefs.h was included)
  • Libschily:
  • libschily/?eterrno.c no longer overwrite the _TS_ERRNO definition in order to pass the compile constrints in the Solaris ON consoliation.
  • Several new global symbols in the mapfile for libschily/libschily-mapvers
  • libschily/wcsndup.c had frgotten code and still did internaly implement strndup()
  • libschily now by default renames getline(), fgetline() and fexec*() into js_getline(), js_fgetline() and js_fexec*(). This was needed because the POSIX standard commitee ignored POSIX basic rules not to define functions that are in conflict with existing published functions. The functions from linschily have been in the public since more than 25 years and the functions defined by POSIX.1-2008 even violate POSIX naming rules. The POSIX fexec*() functions would e.g. have to be correctly called fdexec*(). Existing programs can keep the official names getline(), fgetline() and fexec*() as they are by default #defined to the new js_*() names. To disable this convenience, add: #define NO_SCHILY_GETLINE To disable schily getline(), fgetline() #define NO_SCHILY_FEXEC To disable schily fexec*() #define NO_SCHILY_FSPAWN To disable schily fspawn*()
  • Libschily now has new "long double" support functions: qftoes() and qftofs()
  • Libschily now supports a locale dependend decimal point for printing floating point numbers.
  • Libschily now supports to print long double numbers using the format() based portable printf() implementation. If this does not work for your platform or if this does not work correctly for your platform, please report. This was needed for out new "od" implementation.
  • The option parsing implementation getargs()/getfiles() from libschily now supports to combine single character boolean flags even in case the option string mentions to call a callback function if a valid option was found. This was needed for out new "od" implementation.
  • filereopen() from libschily no longer calls open() internally as long as there is no need to create or truncate the file.
  • libschily's findinpath() now includes a new path parameter to allow to use the function from bsh.
  • fnmatch is now always available as js_fnmatch()
  • New autoconf test for _qecvt() _qfcvt() _qgcvt() and _qecvt_r() _qfcvt_r() _qgcvt_r() on AIX
  • smake's searchfileinpath() moved into libschily to allow it to be generally used for searching for program resources.

New in version 3.00 (June 2nd, 2010)

  • All:
  • Better lint make rules
  • Better autoconf rules for ACLs
  • Better support for Linux on IBM-390
  • Better support for Linux on AMD x86-64
  • Better conforming to lint warnings.
  • Now using "makefiles-1.6"
  • Compilation on OS/2 should work again (-Zexe -> -o xxx.$(EXEEXT)
  • The sleeptime to allow reading a GNU mmake related warning was reduced
  • to 2 seconds.
  • I am still waiting for GNU make to fix the bugs I did report in 1999.
  • Support for 'make DESTDIR=xxx install' added
  • Workaround for a Shell Bug on BSDi
  • Install workaround for the fact that BSDI has chown(1) in /usr/sbin/
  • cc-config shell script reworked
  • Better configure tests for procfs include files
  • Configure tests for fchown, chmod, fchmod, lchmod, futimes, lutimes
  • Configure tests for fdopendir
  • Configure tests for broken ext2fs includes files in Linux kernel
  • Better SRCROOT search function in makefiles shell scripts
  • New autoconf tests for broken , &
  • on various Linux systems
  • astoull*() new in schily.h
  • utypes.h now has MAX_ and MIN_ value definitions for all basic
  • system types.
  • Support added to compile in 64 bit mode on Solaris Sparc.
  • Use: smake CCOM=cc64
  • Support added to compile shared libraries with version
  • numbers for interface levels and make inofficial "interfaces"
  • static
  • Prevent gmake to go into an enless loop on Solaris
  • in case that /usr/ucb/tr is before /usr/bin/tr in PATH
  • Better autoconf error message in case that the expected
  • C-compiler could not be found.
  • Mac OS X now installs files as root:wheel
  • Supply linker mapfiles for all libraries. This allows cdrtools
  • to be compiled using shared libraries only and to properly
  • hide inofficial interfaces on Solaris (using ls)
  • Note that this feature is not yet available for GNU ld
  • Support for DragonFly BSD added, thanks to joerg@britannica.bec.de
  • Default Cygwin install uid/group adapted to use available ids.
  • New program btcflash added. Thanks to David Huang
  • If you like all users to be able to call cdrecord root-less, you need
  • Solaris 10 or newer.
  • Edit the file /etc/security/exec_attr and add:
  • All:solaris:cmd:::/opt/schily/bin/cdrecord: privs=file_dac_read,sys_devices,proc_lock_memory,proc_priocntl,net_privaddr
  • All:solaris:cmd:::/opt/schily/bin/readcd: privs=file_dac_read,sys_devices,net_privaddr
  • All:solaris:cmd:::/opt/schily/bin/cdda2wav: privs=file_dac_read,sys_devices,proc_priocntl,net_privaddr
  • If you like to allow only specific user to use cdrecord,
  • use something like:
  • CD RW:solaris:cmd:::/opt/schily/bin/cdrecord: privs=file_dac_read,sys_devices,proc_lock_memory,proc_priocntl,net_privaddr
  • instead and make the related users members of the profile "CD RW"
  • by adding a line like:
  • joerg::::profiles=CD RW
  • into /etc/user_attr
  • Note that you either need to call cdrecord via "pfexec cdrecord ....."
  • or by using a profile aware shell (e.g. /usr/bin/pfksh)
  • Better support for BeOS/Zeta in the makefile system
  • Support for armv5teb-linux-cc was added to the makefile system
  • Autoconf script added to 'conf' directory
  • On May 15th 2006, I happily announced new features and the release of
  • the DVD-code into the OpenSource. After long discussions with various
  • people on OpenSource Licenses and their effects on interproject usage
  • and the effect on the authors themselves, I contacted the authors of
  • included parts in this software suite and got, in most cases their
  • support and grant on selecting the CDDL as the new license. Although
  • this took some time, it was worth reading the different OpenSource
  • licenses completely with some support of people working in that field.
  • Now I know why it took Sun so much time to offer OpenSolaris under
  • an OpenSource license...if you take a license change seriously, it is
  • a real hard job.
  • The file "CONTRIBUTING" has been updated.
  • The makefile system has been completely rewritten to be more reusable
  • and to not replicate code.
  • The makefile system now supports to compile under "Services For Unix",
  • now called "Subsystem for UNIX-based Applications (SUA)",
  • a free POSIX add on from Microsoft (identifies as "Interix").
  • Note that you need the latest 'smake' relase smake-1.2a36 or never
  • from ftp://ftp.berlios.de/pub/smake/alpha/
  • Note that there is smake-1.2.1 available on
  • ftp://ftp.berlios.de/pub/smake/
  • Currently, cdrecord is not able to send SCSI commands from this
  • environment. I am looking for help from experienced users.
  • The makefile system now supports to compile using the Microsoft
  • C-Compiler "cl".
  • Note that you need the latest 'smake' relase smake-1.2a36 or never
  • from ftp://ftp.berlios.de/pub/smake/alpha/
  • This compilation currently may only be cone from a "Cygwin" environment
  • using smake with the Environment variables set up in a way that allows
  • "cl" to work (find it's include files and libraries).
  • Run "smake CCOM=cl" for this kind of compilation.
  • Cdrecord has not yet been verified to compile in this environment.
  • Note that I am interested in feedback for these new compile possibilities.
  • New function strlcpy() for better portability.
  • New function strncpy() for better portability.
  • Enhanced Makefile system for better MSVC support
  • Enhanced Makefile system for C++ support
  • Fixed some typos in dirdefs.h
  • New functions getvallargs()/getvargs()/getvfiles()
  • allow to have a vector based interface to the
  • advanced argument parsing library functions.
  • Currently used by mkisofs.
  • getargs.c is now at up to date again and libschily
  • from cdrtools is 100% complete and may be used
  • as a shared library to be used by e.g. star too.
  • Added a workaround for a core dump problem with
  • running avoffset.c on FreeBSD/sparc64 (gcc)
  • libschily now includes a fallback fnmatch() for better portability
  • This fnmatch() implementation has been taken from th BSD project.
  • Fixed a bug in getvargs() that caused mkisofs -joliet-long to be
  • declared as illegal option.
  • Several small format enhancements for getargs()
  • getavrgs() is now (like getargs()) able to correctly handle
  • combinations of single char boolean flags
  • include file system completely restructured to avoid future name conflicts.
  • The include files now have completely moved to include/schily/.
  • This also allows to make all include files available in /usr/include/schily/
  • in the future.
  • fixed a type in include/schily/termios.h thanks to Steven M. Schweda for
  • reporting.
  • All libraries now include support for compiling the code as shared library.
  • The code has been tested on Solaris but should also work in *BSD and Linux.
  • In order to compile with shared libraries, either call:
  • make LINKMODE=dynamic
  • or change the line
  • DEFLINKMODE= static
  • DEFLINKMODE= dynamic
  • for your OS in DEFAULTS/Defaults.
  • I am interested in feedback for various OS platforms........
  • The order for compiling the libraries has been changed to make the
  • compile process insensitive against old static libraris in the
  • library search path.
  • New Schily autoconf test for gettext() and libintl
  • include/schily/nlsdefs.h now also checks for the existence of HAVE_GETTEXT
  • #undef SIZE_T_MAX in utypes.h for better FreeBSD support
  • make file system restructured: all Schily include files are now located
  • in ..../include/schily/
  • Now using new definitions from Steven M. Schweda in
  • include/schily/xmconfig.h
  • VMS users: in future, you need to specify cc -DUSE_STATIC_CONF
  • in order to get the old static configuration.
  • new file schily/errno.h
  • Fixed some files that did include instead of
  • Trying to make the floating point printf() support functions work
  • on systems that implement C99 only with no fallback.
  • As this change is a result from a report from a person that does not like
  • to cooperate, I was not able to test on the reported AIX-5.x platform.
  • Also note that this change may result in problems on other platforms.
  • Please test and report!
  • The Schily Makefilesystem now includes environment definitions
  • for the Microsoft Studio 8 compiler. If you like to edit these
  • definitions, check the DEFAULTS directory
  • Next step in supporting Microsoft C-compilers: build in environment
  • set up for the MS compilers. To compile with the MS C-Compiler,
  • set up a Cygwin environment and compile a Cygwin 'smake'.
  • Then use this smake to compile with the MS C-compiler by calling:
  • smake CCOM=cl
  • This defaults to VC7. If you like to use VC6, call:
  • smake CCOM=cl VC=6
  • Note that smake itself (if compiled with "cl") will not work, as
  • MS does not implement a reliable way to pass a quoted arg vector
  • to a new program.
  • Note that cdrtools do not yet completely compile with MSVC. This
  • is mostly caused by missing standard compliance in the MS C-compilers.
  • A small restructuring of the include file structure:
  • new file include/schily/xconfig.h
  • include/schily/xmconfig.h now only contains manual static configuration
  • for VMS
  • The Makefilesystem now includes links for sparc64 (Fujitsu-Siemens)
  • Schily includefiles are now installed with "make install".
  • Try to avoid a program exception with a call to access(".", E_OK|F_OK)
  • caused by a libc bug from the Microsoft C-compiler "cl".
  • The makefile system now supports the Winsock library
  • Correctly cast all open(name, oflag, 0666) calls to:
  • open(name, oflag, (mode_t)0666) as open is a vararg function.
  • "libvms" new from Steven M. Schweda sms@antinode.org
  • -I. removed from standard c-compiler include path
  • /usr/src/linux/include is no longer included if it contains
  • broken include files.
  • Please send a bug report to the Linux Kernel maintainers in case
  • that the makefile system reports broken Linux kernel include files.
  • Support for WIN-NT-5.2 (MS-Windows 2003) added to the makefile system
  • No longer using -ztext linker option for creating shared libs with GCC
  • as GCC does not create 100% correct binaries and this would abort
  • the process of creating a shared library.
  • Better setup for the environment variables that are needed for the
  • Microsoft "cl" compiler.
  • NOTE: The current setup is for "english" versions of MS-WIN.
  • You may need to edit the files DEFAULTS/vc6-setup or DEFAULTS/vc7-setup
  • depending on your locale version and the "c"-compiler version you
  • are using.
  • Prevent MSVC ("cl") from creating silly messages
  • like: "... Consider using strerror_s instead."
  • Prevent MSVC ("cl") from complaining about deprecated
  • option "-ofilename"
  • New autoconf tests for POSIX compliant time functions in libc
  • GCC Warning setup no longer includes -Wtraditional
  • Dynamic libraries are now supported for Mac OS X
  • smake CCOM=xx will now result in writing DEFCCOM=xx into incs/Dcc.
  • if this is done on the initial make run.
  • conf/cc-config.sh now has one additional parameter
  • Include $(DEFLTSROOT)/$(DEFLTSDIR)/$(VCSETUP) from
  • DEFAULTS/Defaults.cygwin32_nt already to allow the script
  • conf/cc-config.sh to detect that "cl" is working.
  • DEFAULTS/vc7-setup & DEFAULTS/vc6-setup now set
  • .NOWARN: := to tell smake-1.2a41 or newer not to warn
  • about a nonportable assignment (we do
  • not have a UNIX "make" in Cygwin).
  • smake COPTX=-DNO_LARGEFILES now allows to compile in non-largefile mode
  • New targets "html" and "htmlx" for Manual page makefiles
  • allows to convert man pages using "man2html"
  • New include file schily/wchar.h
  • New include file schily/schilyp.h
  • Typo in schily/param.h fixed
  • schily/jmpdefs.h now includes support for sigsetjmp()
  • configure now checks for ctime cftime ascftime strftime and
  • for libresolv and whether /bin/sh is bash
  • remove libxxx.so link before trying to create it
  • Allow a mixture of static and dynamic libraries to link against
  • a program
  • Now using cdrecord/version.h for the global version number
  • New autoconf test for struct timeval in sys/time.h
  • New autoconf test for struct timezone in sys/time.h
  • Changed include/schily/time.h to depend on the
  • new autoconf #defines HAVE_STRUCT_TIMEVAL and
  • HAVE_STRUCT_TIMEZONE
  • The Schily makefile system is now also passing OS
  • specific #defines to "configure".
  • New Schily makefile system Target "shell" allows to
  • call "make shell" in order to get a shell with exactly
  • the same environment as the compilers will see from
  • the makefile system. This helps testing.
  • New autoconf test checks whether we need to call
  • "xx.exe" on a platform. This is needed in order to
  • be able to call the Microsoft compiler from the
  • SFU (Services for UNIX) environment.
  • It is now possible to call the Microsoft compiler
  • from SFU. In order to do this, call "smake CCOM=cl"
  • If this does not work, you may need to change the
  • file DEFAULTS/vc7-interix-setup
  • Trying to better deal with MS winsock2.h oddities in schily/time.h
  • #undef iswalnum ... in schily//wchar.h before defining non wchar fallbacks.
  • config.guess now knows about i386 Darwin (Mac OS X on Intel)
  • Schily makefilesystem enhanced to check for extended
  • fields in struct utsname as seen e.g. in MS SFU (Interix).
  • New predefined macro OSVERSION in the makefilesystem is needed
  • for SCO OpenServer 6.x support (because this uses a UnixWare
  • kernel
  • Trying to support Compilation on SCO OpenServer 6.x
  • New macro $(CC_OUTPUT_FILTER) allows to filter away the
  • unwanted file name echo from cl.exe.
  • Interix now uses uname -m instead of uname -p for $(OARCH)
  • Makefile support for pentium-4-unixware-cc.rul and
  • pentium-4-unixware-gcc.rul was added.
  • New autoconf test for libiconv
  • The Schily makefilesystem now by default searches in /usr/local/include
  • and /usr/local/lib if on FreeBSD. This is needed in order to find
  • libintl and libiconv.
  • make html and make htmlx now works even on the top level directory
  • and creates html versions of the man pages
  • fixed a typo in the autoconf test for C99 isinf/isnan
  • Support for SunStudio 12 on Linux was added.
  • Call "make CCOM=suncc", but note that you then
  • will not be able to compile Linux specific functions like
  • support for ext2 file flags. This does not work because the
  • related include files are not written in clean C.
  • Note that nearly all programs from cdrtools depend on libscg
  • which uses platform specific code for every OS. As the Linux
  • kernel include files are not written in clean C, you cannot
  • compile libscg using Sun Studio. If someone from the Linux kernel
  • team would rewrite the Linux kernel include files to only use clean
  • C based constructs, cdrecord could be compiled with Sun Studio
  • compilers.
  • Added a workaround to config.guess to get correct
  • platform names from "configure" even though suncc
  • does not #define __ELF__
  • Linux specific autoconf tests are now only executed on Linux
  • based platforms
  • Some make rule definitions for Cygwin restructured to allow
  • compilation with more Cygwin releases. The -D_WIN32_WINNT=
  • definitions are now only in effect if the selected compiler
  • is the Microsoft compiler.
  • New include file schily/ioctl.h
  • Added Support to create Blastwave SVr4 packages.
  • To create a Blastwave package, call:
  • .clean
  • smake -f Mcsw
  • You need the program "fakeroot" and will find the results
  • in packages/
  • Note that this source tree will allow you to create the package
  • CSWcdrtools but not the packages CSWschilybase and CSWschilyutils
  • on which CSWcdrtools depends.
  • WARNING: libsiconv.a and it's character translation tables (located in
  • /opt/*/lib/siconv) are not part of CSWcdrtools but of CSWschilybase.
  • If you do not update CSWschilybase to include the character translation
  • tables used by libsiconv, mkisofs will not work correctly.
  • NOTE: the SVr4 package specific rules are approx. 10 lines of make rules.
  • It should be simple to create rule definitions for other package systems
  • found on platforms other than Solaris. Volunteers who like to help
  • to develop support for other packaging systems are welcome!
  • Added a note to README.compile on how to work around a problem
  • in /usr/include/linux/types.h that prevents to compile cdrtools
  • on Linux using the Sun Studio compiler.
  • A workaround against non autoconf friendly code in Cygwin has been
  • fixed in include/schily/iconv.h (a typo).
  • Compilations with static configuration are now also possible on HP-UX
  • All profiles libraries now have the same name as the non-profiled variants.
  • To create a profiled version of a command, do something like this:
  • cd cdrecord
  • smake clean
  • smake COPTX=-xpg LXOPTX=-xpg LINKMODE=profiled
  • For GCC use:
  • cd cdrecord
  • smake clean
  • smake COPTX=-pg LXOPTX=-pg LINKMODE=profiled
  • More locale related autoconf tests (see mkisofs)
  • Handling non-large file aware systems is now more correct
  • Autoconfiguration documentation changed to make clear that $(LIB_ACL_TEST)
  • is sufficient for "test only" acl applications.
  • New rules ip35-irix-cc.rul/ip35-irix-gcc.rul
  • New rules i586-linux-suncc64.rul x86_64-linux-suncc.rul x86_64-linux-suncc64.rul
  • New autoconf test HAVE_SYS_SIGLIST_DEF checks for sys_siglist[]
  • definition in signal.h Thanks to Tatjana Heuser for reporting
  • Possibly double #defines HAVE_ICONV HAVE_ICONV_OPEN HAVE_ICONV_CLOSE
  • in include/schily/iconv.h fixed. Thanks to Tatjana Heuser for reporting
  • The Schily Makefile system has been enhanced to install
  • the profiled version of the archives in a sub-directory "profiled".
  • This is done via a new macro SUBINSDIR=
  • New autoconf test checks sizeof(time_t)
  • New autoconf test for the existence of stack_t and siginfo_t in signal.h
  • In order to allow better dealing with Solaris linker Mapfiles,
  • a getfp() function (calling abort(3)) is created when it is not
  • possible to implement this function because of compiler constraints.
  • Many other enhancements of the autoconfiguration have been a result
  • of porting the Bourne Shell into the Schily Makefilesystem.
  • added a make rule to automatically create the directory
  • ./incs/
  • A CSWscdrtools Blastwave package may be automatically
  • created from this source. Simply call:
  • smake -f Mcsw
  • and check the directory packages/ for the resulting package.
  • Several fixes for the Blastwave compile (smake -f Mcsw):
  • - CSWcdrtools now depends on CSWpxupgrade, this allows
  • to either use a dummy (source) package for CSWpxupgrade
  • or the binary original package that is under NDA.
  • - smake now compiles without /opt/csw/ string in the binary
  • this makes smake100% relocatable.
  • - The sccs package is now a non-relocatable packet
  • because of /$INS_BASE/ccs/bin/* and because of
  • $INS_BASE/ccs/lib/locale/
  • - RULES/rules.csw now supports to create non-relocatable
  • packets by adding PKG_RELOC=no to the leaf Makefile
  • Added an autoconf test for SIZEOF_FLOAT & SIZEOF_DOUBLE to allow
  • to compile the Bourne shell in 64 bit mode.
  • several modification have been made to fix warning messages from
  • a "coverity" test run.
  • config.guess now supports the "free" Apple Darwin variants
  • New directory autoconf/ contains the complete Schily autoconf system.
  • It is based on GNU autoconf-2.13, the latest GNU autoconf that worked
  • correctly even on older systems.
  • Sources and makefilesystem restructured to allow all needed files to be
  • retrieved from the SCCS repository and to call "make" later. To achieve
  • this, all symlinks have been removed from the tarball.
  • The Schily Makefile System now includes rules to recreate the file
  • "configure" by calling "autoconf". This is needed in order to allow the
  • complete source tree to be extracted from the SCCS repository.
  • Added a workaround for a GNU make design bug that causes the rules
  • to create file "foo" to be evaluated _past_ the "include foo"
  • statement in a Makefile has been evaluated. Note that you still need
  • GNU make 3.81. GNU make 3.80 and before will still fail to compile
  • cdrtools because of other unfixed GNU make bugs.
  • Note that the basic GNU make design bug has been reported to the
  • GNU make maintainers and accepted as bug by the GNU make maintainers
  • in 1998 already. It is still unfixed in GNU make although smake and
  • SunPro make verify that there is no problem to do it right.
  • New autoconf test AC_CHECK_DLIB() checks for lib members while using
  • specified include files. This is a workaround for the autoconf hostile
  • gettext() and iconv() implementations on Linux.
  • The gettext()/iconv() tests have been rewritten to use AC_CHECK_DLIB()
  • The autoconf test AC_FUNC_VFORK from Paul Eggert was not written in
  • clean C and thus failed on a ANSI-C compiler, assuming that vfork()
  • is not available in the ANSI case.
  • README.compile fixed to refer to READMEs/README.gmake instead of
  • README.gmake
  • Symlink support in RULES/MKLINKS added for ia64-hp-ux-cc.rul and
  • ia64-hp-ux-gcc.rul, thanks to a hint from Steven M. Schweda
  • DEFAULTS*/Defaults.dragonfly added
  • Thanks to a hint from Thomas Klausner
  • Added a workaround for a Sun make bug
  • Next attempt wo work around the non-autoconf friendly implementation
  • of GNU gettext and GNU libiconv.
  • A new autoconf test allows to check whether the installed system shell
  • (/bin/sh) properly aborts with failed commands in "sh -ce 'cmd'".
  • If failed simple commands in "sh -ce 'cmd'" do not abort complex
  • commands, "make" will not stop on errors in the build process.
  • Note that this is a definite POSIX incompatibility.
  • The most well known defective shell with respect to this problem is "bash"
  • but /bin/sh on HP-UX-10.x (a Korn Shell modification) does not work
  • correctly either. If your system (Linux, HP-HX, ...) suffers from this
  • problem, I recommend to fetch the Schily Source consolidation from
  • ftp://ftp.berlios.de/pub/schily/
  • Use a version that has been published past September 1st 2008, compile
  • and install the contained Bourne Shell as "/bin/bosh". Then call
  • "./.clean" and compile again. The resulting "smake" will then
  • automatically call "/bin/bosh" instead of "/bin/sh" in order to
  • execute commands.
  • Several Makefiles have been modified to support not only "make all"
  • but also "make install" without calling "make all" before. This was needed
  • after the change that omits the symlinks from the tar archive.
  • Thanks to a report from Klaus Ditze
  • Extended the file COPYING to mention that the GPL used by the "mkisofs project"
  • requires to publish the full source for all parts of mkisofs in case that you
  • publish mkisofs binaries.
  • Added a new Changelog file for the changes since cdrtools-2.01
  • RUlES/rules.prg no longer includes a line with SHELL=/bin/sh.
  • This is needed to allow to implement a workaround for various bash
  • bugs that affect makefiles in case that /bin/sh is linked to bash.
  • If your platform installs bash in /bin/sh (Linux, ....) or in case
  • that your platform offers a broken variant of the Korn Shell in /bin/sh
  • (like HP-UX), fetch the "Schily source consolidation" from
  • ftp://ftp.berlios.de/pub/schily/, compile everything and install the
  • original Bourne Shell, that comes with this packet, into /bin/bosh.
  • If you then call ./.clean and re-compile everything, you get a "smake"
  • that calls /bin/bosh instead of the broken system shell.
  • Added an autoconf test for POSIX violations found in POSIX.1-2008.
  • The official POSIX rule is not to define "new" interfaces that
  • are in conflict with older interfaces of the same name.
  • Our interfaces fexec*() have been defined and published in 1982.
  • The new POSIX interfaces define a different interface and the
  • new POSIX interfaces even use names that are not compatible with
  • POSIX rules. The new POSIX interfaces in question should be called
  • fdexec*() to follow the rules of other similar POSIX functions.
  • Similar problems exist with getline()/fgetline().
  • We try to automatically rename our functions in case that the functions
  • could be found in the local libc.
  • Config.sub now supports NetBSD on AMD64
  • The email addresses in many files have been updated.
  • config.sub and config.guess now support ATARI MiNT
  • All needed definition files for ATARI MiNT are now in RULES/*
  • configure now checks whether shmget() works (needed for ATARI MiNT)
  • The GNU linker on Linux now seems to support -R to set the LD_RUN_PATH
  • Added support for -R
  • Added definitions to allow dynamic linking with the Sun Studio compiler
  • on Linux
  • Added a new #define (NO_ACL) that allowed to disable ACL support via
  • command line when compiling
  • include/schily/libport.h split into include/schily/libport.h and
  • include/schily/hostname.h to allow to avoid to include netdb.h for
  • applications that do not need gethostname() and getdomainname()
  • include/schily/prototype.h now includes the definitions for const...
  • new autoconf test to check whether the Sun Studio compiler needs
  • -xarch=generic64 or -m64 for 64 bit compilation.
  • Default install user changed from "bin" to "root".
  • The install-sh script now complains if an attept was made to install
  • a program suid or sticky and the install user has no root privileges
  • The makefile system has been modified to allow a separate set-up
  • for the install path of the configuration files to e.g. /etc/
  • via the DEFAULTS variable INS_RBASE
  • New autoconf test to distinguish between the free of charge
  • "Bundled" cc on HP-UX and the commercial cc. Only the commercial cc
  • supports ANSI C and the Bundled cc complains when the ANSI Options
  • are used:
  • (Bundled) cc: warning 480: The -A option is available only with the C/ANSI C product; ignored.
  • (Bundled) cc: warning 480: The -O option is available only with the C/ANSI C product; ignored.
  • These warnings are no longer present.
  • schily/schily.h now auto-includes stdio.h in case that the platform
  • supports the new POSIX.1-2008 getline()/fgetline() functions that
  • violate against general POSIX rules and thus overlay our implementation
  • that exists since 1982.
  • schily/stkframe.h now uses Intptr_t for the fr_savp member to make it
  • work correctly on 64bit systems without OS supplied stkframe.h.
  • New autoconf test on whether unistd.h defines extern char ** environ.
  • New file schily/stdio.h to simplify layering.
  • New Make rules for Syllable. Syllable is a fork from AtheOS.
  • New make rules for Haiku
  • New include file schily/sysexits.h is needed for Haiku
  • New autoconf test for sysexits.h
  • Autoconf tests for os2.h and os2me.h moved from cdda2wav to
  • global
  • config.guess and config.sub now have support for Haiku
  • New rule support for linux on "sh3", "sh4" and "sh4a" platforms.
  • autoconf now acts more reliable and more orthogonal with AC_CHECK_TYPE() vs.
  • AC_CHECK_SIZEOF() and carefully includes include files separately based on
  • fine grained tests.
  • Changed schily/dirent.h to correctly set up NAME_MAX on ATARI MiNT
  • Changed schily/maxpath.h to correctly set up NAME_MAX on ATARI MiNT
  • Add -D_GNU_SOURCE to the standard include flags for Linux in order
  • to unhide needed extensions.
  • Trying to add support for compilation on WIN64 using cl and gcc
  • Adding support for NT-6.0 (Win Vista) and NT-6.1 (Win 7)
  • Several typo corrections
  • New include file include/schily/wctype.h
  • New autoconf test that checks for the differences between the original
  • iconv() implementation from Sun and the deviating POSIX standard.
  • This allows to avoid compiler warning messages for mkisofs.
  • Trying to work around nasty Linux distributions that try to fool autoconf
  • function tests and thus may result in incorrect results for the functions
  • fexecl fexecle fexecv fexecve fspawnv fspawnl fspawnv_nowait getline fgetline
  • New include files include/schily/dlfcn.h and include/schily/shcall.h
  • New autoconf tests for dlopen() and similar functions
  • Fixed a typo in include/schily/fnmatch.h that prevented compilation on BeOS
  • Fixed a typo in include/schily/libport.h that prevented compilation on BeOS
  • New makefile "Mocsw" allows to create packages for "opencsw"
  • RULES/rules.csw enhanced to allow to overwrite EMAIL= and HOTLINE= from
  • the make command line.
  • New autoconf test for getprogname()/setprogname()
  • Support for using Microsoft "cl" to compile 64 bit binaries from Cygwin now
  • has been finished
  • Support for 64 bit compilation on mac OS X was added.
  • Call make CCOM=cc64 as on other platforms.
  • $OLIBSDIR is no longer in the RUNPATH
  • New include file include/schily/limits.h
  • Make sure that all include files in include/schily/ include
  • include/schily/mconfig.h
  • wide character support new
  • New makefile "Mocsw" sets defaults for "opencsw" instead of Blastwave.
  • Mcsw for Blastwave of course continues to exist
  • New defaults directory DEFAULTS_CSW includes special defaults that
  • compile e.g. for Sparc-V8 in order to get working binaries for older
  • Sparc non 64 Bit hardware.
  • New autoconf test HAVE_SETBUF and HAVE_SETVBUF
  • Several modification in hope to better support MINGW
  • New include files include/schily/ctype.h, include/schily/pwd.h
  • and include/schily/grp.h
  • All programs are now using schily/stdio.h
  • for orthogonality.
  • Haiku default install dir is now /boot/opt/schily
  • New rules RULES/os-cygwin_nt-6.0-wow64.id and
  • RULES/os-cygwin_nt-6.1-wow64.id support Cygwin on 64bit
  • installations of Win Vista and "Win 7".
  • New rules for compiling 64 Bit binaries on cygwin_nt-wow64
  • NOTE: You need to have a 64 bit aware gcc on Cygwin to use this!
  • TEMPLATES/temp-gcc.rul and TEMPLATES/temp-xcc.rul
  • now correctly include cc-gcc.rul and cc-dumb.rul and thus
  • make the automake feature working again for completely
  • unknown platforms.
  • Fixed RULES/rules.inc to make sure we install xx.h instead of
  • xx.h.exe
  • Workaround an infinite hang in an autoconf test on 64 Bit Vista
  • with Cygwin
  • Include limits.h in schily/hostname.h for Linux
  • Several "%s" formats have been introduced in order to make gcc-4
  • happy even though the original strings have been pointer to constant
  • and well known strings
  • Change the option order in the autoconf test for calling the linker
  • in order to avoid problems with the microsoft linker.
  • include/schily/wait.h now includes process.h on DOS systems
  • include/schily/resource.h new include file
  • include/schily/select.h new include file
  • Now all sources use schily/systeminfo.h instead of sys/systeminfo.h
  • Now all sources use schily/assert.h instead of assert.h
  • Now all sources use schily/priv.h instead of priv.h
  • Now all sources use schily/procfs.h instead of profcs.h
  • Now all sources use schily/syslog.h instead of syslog.h
  • Now all sources use schily/float.h instead of float.h
  • Now all sources use schily/ipc.h instead of sys/ipc.h
  • Now all sources use schily/sem.h instead of sys/sem.h
  • Now all sources use schily/shm.h instead of sys/shm.h
  • New autoconf test for "#pragma weak"
  • The schily makefilesystem now by default sets all locale related environment
  • variables to "C" in order to avoid problems.
  • Make the makefile emulation mode for "non-automake aware" make programs
  • like SunPro Make and GNU make more immune against oddities in the tr(1)
  • program that are seen with a locale that differs from LC_ALL=C
  • Another step to prevent some tr(1) oddities was to replace the call to
  • tr(1) by a call to sed(1).
  • Added GMAKE_NOWARN=true to allow to disable the gmake warning with nested
  • make files
  • Enhanced include/schily/priv.h to distinct Solaris and AIX process privileges
  • New include file include/schily/math.h
  • Try to workaround a problem with GCC on newer AIX versions. It seems that
  • e.g. gcc on AIX is not C99 compliant and does not support isnan().
  • Note that the current solution may compile and run on newer AIX versions
  • but does not seem to be the optimal solution as it cannot check whether
  • a float is a number or not.
  • *BSD comes with a broken sed(1), so we need to go back to tr(1) based
  • code for GNU make in the Schily Makefilesystem.
  • Added support for amd64-netbsd-cc.rul to the Schily Makefilesystem
  • Added support for DragonFly BSD to config.guess and config.sub
  • Added support for 64 bit compilation on HP-HX using "cc".
  • Use make CCOM=cc64 as usual to switch to 64 bit compilation.
  • Prevent a compiler warning when compiling 64 bit binaries on HP-UX
  • using make CCOM=cc64
  • Some files in include/schily/*.h have been enhanced to better support VMS
  • config.guess now knows about OpenVMS
  • Changed bash test to use --version instead of -version as bash on OpenVMS
  • is bash-1.x
  • include/schily/xmconfig.h (containing a "static" configuration for VMS
  • because "configure" does not work on VMS) was enhanced.
  • Trying to add support for OpenVMS to RULES/*
  • New autoconf tests for the type "long double" and a new "max size" type.
  • VMS rules for libraries not create an archive XXX.olb instead of libXXX.a
  • schily/utypes.h enhanced to allow to define maxint_t which is
  • missing on VMS
  • Better autoconf test for union wait vs. int for platforms that
  • define union wait but use int as wait() parameter.
  • schily/vfork.h now includes unistd.h as the related definitions
  • are there on Solaris
  • Fixed a configure bug with opendir() inherited from GNU autoconf
  • Enhanced the vfork() autoconf test to avoid a hang on VMS
  • Support for 64 Bit compilation was added for IRIX.
  • Call smake CCOM=cc64 or smake CCOM=gcc64 as usual.
  • C++ compilation support fior IRIX was added to the makefile system
  • Schily Makefile rules no longer contain Simple Suffix Rules.
  • All default rules are now based on Pattern Matching Rules.
  • This speeds up smake.
  • Added autoconf test to distinct Linux ACLs from IRIX ACLs
  • Added support for Hurd on i686 to the Schily Makefilesystem.
  • Modified conf/mkdir.sh to work around a deviation found in
  • /usr/xpg4/bin/sed on Solaris
  • Modified conf/src-get to include conf/src-get in PATH to make
  • recursive calls to src-get work.
  • include/schily/stat.h now supports nanosecond timestamps in struct stat on AIX.
  • New autoconf test for nanosecond time stamps on AIX.
  • conf/mkdir.sh
  • conf/mkdep-aix.sh was changed to avoid warnings for #pragma weak a = b
  • as the IBM C-compiler calls a non "#pragma weak" cpp when called with -E
  • Added support for DragonFly/x86_64
  • Support for "pcc" on Solaris x86 was added as a first step.
  • The C-Compiler "pcc" http://pcc.ludd.ltu.se/ is based on the
  • Portable C-Compiler from AT&T from the late 1970s. It is
  • under BSDl and thus offers compilation with a really free
  • build environment.
  • Note that due to a pcc bug, the autoconf results for
  • Large File support are incorrect. Unless you edit the file
  • incs/i386-sunos5-pcc/xconfig.h and manually correct the
  • file to contain this:
  • #define _FILE_OFFSET_BITS 64 /* # of bits in off_t if settable */
  • You will not get working large file support.
  • Support for more Operating system will follow after the issues
  • in the compiler have been resolved.
  • New autoconf test checks whether fnmatch() has a working FNM_IGNORECASE
  • New autoconf test for strlcat() wcslcat() strnlen() wcsnlen()
  • Trying to add support for 32 bit compilation on newer Mac OS X
  • version via smake CCOM=cc32
  • This only works if 32 Bit development support is installed on Mac OS X.
  • Trying to add support for 32 bit compilation on newer Linux
  • version via smake CCOM=cc32
  • This only works if 32 Bit development support is installed on Linux.
  • include/schily/wchar.h now includes support for the mbr*() multi-byte
  • character handling routines.
  • include/schily/regex.h added
  • include/schily/libgen.h added
  • New autoconf tests for basename() dirname() strndup() wcsndup()
  • mbsinit() mbrtowc() wcrtomb()
  • New autoconf tests for wctype_t mbstate_t
  • A new make macro STRIPFLAGS allows to install stripped binaries by calling
  • smake STRIPFLAGS=-s install
  • Conf-files in /etc/default are now installed 0644 by default
  • Man pages are now by default installed in $(INS_BASE)/share/man
  • The base directory "share" may be changed by calling
  • smake DEFMANBASE=something
  • README.compile now mentions:
  • INS_RBASE= Set different "root" install path
  • DEFMANBASE= Set different man base directory
  • STRIPFLAGS=-s Strip all binaries with "make install"
  • RUNPATH= Overwrite ELF RUNPATH
  • DEFUMASK= Set different default permissions for
  • creating directories
  • DEFINSUMASK= Set different default permissions for
  • creating directories in the install path
  • Libschily:
  • Fixed a typo in fconv.c that caused problems on IBM AIX5.
  • mem.c moved from libfind/ to libschily/
  • getnum()/getllnum() & gettnum()/getlltnum() have been moved to libschily
  • printf()/fprintf()/sprintf()/snprintf() have been removed from libschily
  • we now use js_*printf() instead via -DSCHILY_PRINT
  • Workaround for a Mac OS X linker bug
  • New set of functions: __jmalloc()/__jrealloc()/__jsavestr()
  • New set of functions: __fjmalloc()/__fjrealloc()/__fjsavestr()
  • New set of functions: fcomerr()/fcomerrno()/ferrmsg()/ferrmsgno()
  • getargs() now allows '+' to appear in strings like "longopt="
  • __fjmalloc()/__jmalloc() now allow to specify JM_EXIT to exit() instead
  • of calling siglongjmp()
  • New function file_getraise() to get the current file "raise value".
  • getargs() enhanced to fully support POSIX Command line rules
  • snprintf() is again compiled into libschily in case that the function
  • is missing on the current platform.
  • Fixed a bug in checkerr.c that was caused by the fact that errflags()
  • did try to modify it's string argument.
  • The schily *printf routines now correctly support the %j format (intmax_t)
  • getargs now first checks whether an argument can be a combination of
  • several single char flags before starting to set values.
  • changed __malloc() -> ___malloc() for the ongoing ATARI Portchanged __realloc() -> ___realloc() for the ongoing ATARI Portchanged __savestr() -> ___savestr() for the ongoing ATARI Port
  • Added sleep.c and gettimeofday.c that emulate sleep() and gettimeofday()
  • when using MSVC
  • Try to rename ecvt()/fcgt()/gcvt() in case that one of these functions
  • does not work and the libc implementation does not allow to overwrite the
  • function.
  • New functions eaccess() and findinpath()
  • Workaround for a GCC warning with make DEFAULTSDIR=DEFAULTS_ENG
  • warning: 'sccsid' defined but not used added
  • format() now supports %z for size_t and %t for ptrdiff_t
  • fexec now correctly works on Haiku and BeOS
  • Code in libschily/fexec.c cleaned up for better readability
  • libschily/checkerr.c now correctly handles the "WARN" directive.
  • wide character support new
  • several str*.c functions new for orthogonality with the new wcs* code.
  • Added a wide character patern matcher with: patwcompile(), patwmatch(), patwlmatch()
  • See files:
  • libschily/matchw.c and libschily/matchwl.c
  • libschily/stdio/*.c fixed to use size_t as length parameter for
  • read*()/write*() operations.
  • libschily now is thread aware and uses the thread specific errno
  • value on Solaris, Linux and FreeBSD.
  • libschily/fconv.c reworked to deal with non-C99 compliant systems and to deal
  • with the constraints found in HP-UX-11.11.
  • libschily/*bytes.c now support 64 bit compilation and use a "ssize_t"
  • typed count parameter instead of "int".
  • libschily/spawn.c now uses vfork()
  • libschily/fexec.c now supports IO redirection on VMS
  • Removed some GCC warnings from libschily/getargs.c
  • Schily fnmatch() now supports FNM_IGNORECASE
  • New files strlcat.c wcslcat.c strnlen.c wcsnlen.c
  • fnmatch.c now supports multi byte characters.
  • New files basename.c and dirname.c
  • New files strndup.c and wcsndup.c
  • A new algorithm in
  • strncat.c strncmp.c strncpy.c strnlen.c wcsncat.c wcsncmp.c wcsncpy.c wcsnlen.c
  • makes the code faster and smaller.
  • Libparanoia (Ported/enhanced by Jörg Schilling, originated by Monty xiphmont@mit.edu):
  • Changed from GPL to LGPL with permission from Monty.
  • paranoia_init() interface change to work around a deficit
  • in the Mac OS X linker.
  • "make install" now also installs the READMEs and other documentation to
  • ..../share/doc/libparanoia/
  • Fixed some minor problems with K&R compilers
  • Set a useful default for the dynamic sector overlap start sector
  • in case that the dynamic sector overlap limits are manually changed
  • Plenty of new comments taken from cdparanoia-III-10.2
  • This doubles the size of the code!
  • Thanks to Monty (xiphmont@mit.edu)
  • i_paranoia_overlap_r() does not longer increment beginA/beginB after the
  • match was found searching backwards. Taken from cdparanoia-III-10.2
  • paranoia_free() now also frees p->cache and p->fragments taken from
  • cdparanoia-III-10.2
  • Some numerical values used in paranoia.c have been replaced by
  • FLAG_* definitions.
  • Workaround for a GCC warning with make DEFAULTSDIR=DEFAULTS_ENG
  • warning: 'sccsid' defined but not used added
  • Some #define inline definitions removed as "inline" is already
  • handled by schily/mconfig.h
  • Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de):
  • Changed from GPL to CDDL with permission from Heiko
  • New Reed Solomon decoder from Heiko allows to repair defective
  • CD-ROM sectors. Note that this code is from ~ Y2000 and note that
  • I did discuss OpenSource activities for the Reed Solomon Decoder
  • and the Cdrecord DVD support code with Heiko at that time.
  • We did agree in 2000 to make both OpenSource at the same time.
  • #define memmove() to movebytes for libedc_dec if memmove is missing.
  • Fixed array index overrun in L1 coder. Thanks to Heiko Eißfeldt.
  • The problem was reported by the coverity test. Note that the L1 coder
  • is not used by cdrtools.
  • Workaround for a GCC warning with make DEFAULTSDIR=DEFAULTS_ENG
  • warning: 'sccsid' defined but not used added
  • Avoid some GCC warnings
  • Libcdrdeflt:
  • This is a new library that has been introduced as many programs like
  • to parse the content of /etc/default/cdrecord
  • Workaround for a GCC warning with make DEFAULTSDIR=DEFAULTS_ENG
  • warning: 'sccsid' defined but not used added
  • Libdeflt:
  • Workaround for a GCC warning with make DEFAULTSDIR=DEFAULTS_ENG
  • warning: 'sccsid' defined but not used added
  • lbdeflt needs to be compiled before libcdrdeflt when creating
  • dynamic libs
  • Libfind:
  • The libfind code (developed as part of the sfind(1) command) has been added
  • in order to support "mkisofs -find ..."
  • libfind no longer uses static global data. This version of libfind
  • is the first real library version that even allows to implement
  • the find(1) program in less than 200 lines of code.
  • -perm now correctly recognises argument parsing errors by
  • dealing with the fact that mode_t is unsigned.
  • Is now quiet on NFSv4 ACLs (ZFS) although it still does not support them.
  • getnum()/getllnum() & gettnum()/getlltnum() have been moved to libschily
  • Using js_*printf() instead of *printf() via -DSCHILY_PRINT
  • Avoid a core dump caused by probably uninitialized data
  • when using -exec ... {} +
  • Workaround for a Mac OS X linker bug
  • find_parser() now does no longer call exit() on errors.
  • New funtion b_find(int argc, char ** argv, vound * dummy)
  • implements the ksh93 builtin function interface
  • b_find() sets the flag WALK_NOEXIT for treewalk to make sure that
  • the complete find implementation does not call exit() anymore.
  • new function walkinitstate()
  • Libfind is now close from the final state
  • Added README file to the directory libfind/ that help to learn how
  • to create a complete find(1) command, a "bsh" find builtin and a
  • ksh93 find builtin using libfind.
  • libfind has been restructured to allow it to be used as builtin function
  • inside shells like e.g. "bsh" and "ksh93".
  • libfind now allows I/O redirection (needed for shell builtins).
  • libfind now may be told to check for abort situations (needed for
  • shell builtins in order to check for abort on ^C).
  • New function find_free()
  • Libfind no longer leaks memory if called with a commandline with
  • syntax errors.
  • find_list.c now #ifdefs names like S_IFLNK
  • -size now understands things like -size +10m
  • the function getperm() has been moved to libschily
  • find_main() now supports to propagate a different environment
  • (e.g. with a different PATH) to fexec())
  • libfind (used by sfind, bsh, star, mkisofs) fixed the -exec {} +
  • implementation. Before the fix, it could core dump if the built-in
  • xargs(1) would exactly fill up args to the size of ARG_MAX.
  • This is the final step to make libfind a "real" library
  • find.h walk.h fetchdir.h idcache.h moved to include/schily/
  • A bug in libfind was fixed that causes
  • find . -size -20k -ls
  • to check for files smaller than 20480 Blocks instead of
  • looking for files smaller than 2084 characters.
  • & before some functions removed
  • Workaround for a GCC warning with make DEFAULTSDIR=DEFAULTS_ENG
  • warning: 'sccsid' defined but not used added
  • libfind now correctly deals with ARG_MAX in case that
  • the bitness of the libfind executable differs from the bitness
  • of the executable called by -exec name {} +
  • Fixed a typo in idcache.c
  • let libfind deal with the differences between Linux ACLs and IRIX ACLs
  • Added $(LIB_ACL_TEST) to the libs for libfind to allow a shared libfind
  • with ACL support on Linux.
  • Fixed a bug in libfind/walk.c (calling strcatl() with last parameter 0
  • instead of (char *)0)
  • New file libfind/find_tok.h to separate the token names from the rest of the implementation.
  • Moved token definitions from find.c to find_tok.h
  • The primary -perm now implements a new feature:
  • -perm +mode will evaluate as true if any of the bits set in mode are set in the
  • permission bits fro a file.
  • New primary operators:
  • -amin deprecated - only for GNU find compatibility
  • -cmin deprecated - only for GNU find compatibility
  • -mmin deprecated - only for GNU find compatibility
  • -empty TRUE zero sized plain file or empty directory
  • -execdir program [argument ...] \\;
  • -fls file list files similar to 'ls -ilds' into 'file' (always TRUE)
  • -fprint file print file names line separated into 'file' (always TRUE)
  • -fprint0 file print file names nul separated into 'file' (always TRUE)
  • -fprintnnl file print file names space separated into 'file' (always TRUE)
  • -ilname glob TRUE if symlink name matches shell glob
  • -ilpat pattern TRUE if symlink name matches pattern
  • -iname glob TRUE if path component matches shell glob
  • -ipat pattern TRUE if path component matches pattern
  • -ipath glob TRUE if full path matches shell glob
  • -ippat pattern TRUE if full path matches pattern
  • -okdir program [argument ...] \\;
  • -print0 print file names nul separated to stdout (always TRUE)
  • -executable TRUE if file is executable by real user id of process
  • -readable TRUE if file is readable by real user id of process
  • -writable TRUE if file is writable by real user id of process
  • Libfind Version is now 1.5
  • Libfile:
  • Workaround for a Mac OS X linker bug
  • Using js_*printf() instead of *printf() via -DSCHILY_PRINT
  • Better portability for strerror() in file.h
  • The license has been changed from a license (similar to a BSDl 4 clause)
  • to a new BSDL 2 clause license with permission from all involved authors.
  • Workaround for a GCC warning with make DEFAULTSDIR=DEFAULTS_ENG
  • warning: 'sccsid' defined but not used added
  • Some changes for better VMS support
  • Libhfs_iso:
  • Workaround for a Mac OS X linker bug
  • Workaround for a GCC warning with make DEFAULTSDIR=DEFAULTS_ENG
  • warning: 'sccsid' defined but not used added
  • Removed a warning from the HP-UX C-compiler about a possible endless loop
  • Libsiconv:
  • New library libsiconv replaces libunls.
  • The new concept for libsiconv saves ~ 130 kB of executable space in
  • mkisofs and allows to use iconv() if it is present on the current
  • platform.
  • sic_open() now allows to be called with a NULL pointer argument
  • sic_list() now returns the number of listed translations
  • Deactivate TAB_SIZE check for K&R compilers. They cannot
  • do complex math in cpp.
  • Changed sic_nls.c to allow compilation on SCO OpenServer-5.x and
  • other compilers that set __STDC__ to 0 and are not at least
  • fully C89 compliant.
  • libsiconv/sic_nls.c modified to allow compilation with older GCC
  • versions.
  • Workaround for a GCC warning with make DEFAULTSDIR=DEFAULTS_ENG
  • warning: 'sccsid' defined but not used added
  • Fixed a copy/paste error from libsiconv. Libsiconv now correctly
  • initializes duplicated data structures to prevent core dumps.
  • Thanks to Jörg Sonnenberger for reporting.
  • Fixed a problem in libsiconv in case that the the locale is specified as
  • "iconv:name".
  • Add the VMS C-compiler to the list of exceptions for not fully C99 compliant
  • compilers to allow compilation.
  • libsiconv now supports sic_close()
  • Libscg:
  • Modified the remote SCSI library stuff that has been changed due
  • to a security problem on order to make it compile again on HP-UX.
  • Trying to introduce a workaround for broken &
  • on various Linux systems.
  • Trying to introduce a workaround for the changed SCSI generic Linux
  • Kernel interface from Linux-2.6.8.1 and newer.
  • Be very careful with testing. The Linux adaption layer for libscg
  • is already full of workarounds for bugs, unstable interfaces and
  • unwillingness of the Linux Kernel maintainers to give access to the
  • needed information for libscg. I am not sure whether this workaround
  • will not have problems. It has been tested on a Pegasus PPC running
  • Linux-2.6.8.1
  • Autoconf test for broken Linux sg.h headers added
  • if libscg is compiles on newer Solaris systems, the warning:
  • "Warning: Volume management is running, medialess managed drives are invisible.\n"
  • is no longer printed.
  • Since Solaris 11 Build 21, vold no longer hides empty drives
  • that are under volume management. This now allows cdrecord to be even
  • used to close the tray while vold is running.
  • The criteria used to decide whether Solaris is "recent enough" is
  • #ifndef SEEK_HOLE
  • The definition SEEK_HOLE has been added with Solaris 11 Build 14
  • while the fixed vold appears in Solaris 11 Build 21.
  • Support for root-less cdrecord using fine-grained privileges.
  • Remote SCSI not tests for PRIV_NET_PRIVADDR instead of (geteuid() == 0)
  • If you like all users to be able to call cdrecord root-less, you need
  • Solaris 10 or newer.
  • Edit the file /etc/security/exec_attr and add:
  • All:solaris:cmd:::/opt/schily/bin/cdrecord: privs=file_dac_read,sys_devices,proc_lock_memory,proc_priocntl,net_privaddr
  • All:solaris:cmd:::/opt/schily/bin/readcd: privs=file_dac_read,sys_devices,net_privaddr
  • All:solaris:cmd:::/opt/schily/bin/cdda2wav: privs=file_dac_read,sys_devices,net_privaddr
  • If you like to allow only specific user to use cdrecord,
  • use something like:
  • CD RW:solaris:cmd:::/opt/schily/bin/cdrecord: privs=file_dac_read,sys_devices,proc_lock_memory,proc_priocntl,net_privaddr
  • instead and make the users members of the profile "CD RW"
  • by adding a line like:
  • joerg::::profiles=CD RW
  • into /etc/user_attr
  • Note that you either need to call cdrecord via "pfexec cdrecord ....."
  • or by using a profile aware shell (e.g. /usr/bin/pfksh)
  • Support for root-less cdrecord using fine-grained privileges.
  • Remote SCSI not tests for PRIV_NET_PRIVADDR instead of (geteuid() == 0)
  • This is now active since the needed autoconf code is out.
  • BeOS/Zeta libscg low level adoption code fixed.
  • The code now is passing a "scgcheck" test.
  • Changed from GPL to CDDL
  • NOTE: The libscg code may only be used together with other
  • code that is under an approved OpenSource license,
  • see http://www.opensource.org/.
  • scsi-apollo.c & scsi-hpux.c indented properly to follow Cstyle
  • scsi-linux-ata.c cast added to avoid strange warning from GCC
  • caused by bad coding style in the Linux kernel.
  • scsi-linux-ata.c trying again to add workarounds for new Linux
  • Kernel self-incompatibilities: Adding the same uid workaround
  • as for scsi-linux-sg.c. Note that I am not sure if this is the
  • only incompatibility that has been added with Linux-2.6.16, it may
  • be that they did also break the behavior of seteuid().
  • Please help me with further testing and debugging.
  • Warn Linux users to prefer dev=ATA: over dev=ATAPI:
  • Print correct error message (using the right errno) in case that
  • libscg tries to open more than one file on Solaris.
  • Bumped libscg version to 0.9
  • Trying to support FreeBSD Kernel under non-FreeBSD (GNU) userland
  • New interface function scg_numbus() returns the number of SCSI busses.
  • Trying to work around a Linux design problem that has been introduced
  • about 3 years ago when Linux stopped to support an orthogonal SCSI
  • Kernel transport for all SCSI devices. Since then, ATAPI drives are
  • handled different from other SCSI devices. The problem is that
  • the linux maintainers intentionally reduce the information that
  • is available in the kernel and this way prevent to allow libscg to
  • only show only unique drives.
  • libscg now tries to map ATAPI drives to SCSI bus numbers >= 1000.
  • cdrecord -scanbus should now show even ATAPI drives. This allows
  • cdrecord/readcd/cdda2wav to implement the auto-target feature even
  • on Linux.
  • Try to deal with broken Linux distributions that do not provide a "HZ" macro
  • in /usr/include/sys/param.h
  • Use USER_HZ in favor of HZ (if available) for computing SCSI timeout values.
  • Disable automatic ATA (dev(hd*) integration and scan on pre-Linux-2.6 systems.
  • Try to skip non-POSIX compliant EROFS error codes when opening /dev/hd*
  • Trying to implement a workaround for a Linux USB DMA size problem by implementing
  • support for a new ioctl proposal from Alan Stern
  • UPDATE: It seems that the final fix in the Linux kernel will take some time
  • and will be incompatible to the current patch. For this reason, I decided to
  • make the intermediate patch available at:
  • ftp://ftp.berlios.de/pub/cdrecord/alpha/Linux-USB-DMA-Size.patch
  • Using js_*printf() instead of *printf() via -DSCHILY_PRINT
  • add the new scg_numbus() to the Solaris linker map file
  • to allow again dynamic linking
  • scg_numbus() function for FreeBSD corrected to make cdrtools work again.
  • Thanks to a hint from Joseph Terner
  • Better help message for Mac OS X with dev=help
  • Detect & correctly handle SCSI send permission problems with USCSI and Solaris
  • scg/scgcmd.h upgraded to be sharable with the "scg" Solaris kernel driver
  • scg/scgio.h upgraded to be sharable with the "scg" Solaris kernel driver
  • Allow libscg to correctly compile in 64 bit mode on amd64 Solaris
  • platforms
  • "make install" now installs the libscg include files into $(INS_BASE)/include/scg/
  • aspi-win32.h and spti-wnt.h now in SCCS
  • Included a patch for the CAM interface from the FreeBSD people.
  • The patch sets up the CAM data structures in a way that allows
  • SCSI bus and target scanning.
  • Unneeded code from libscg/scsierrs.c removed
  • Workaround for a GCC warning with make DEFAULTSDIR=DEFAULTS_ENG
  • warning: 'sccsid' defined but not used added
  • Avoid some GCC warnings
  • New SCSI low level transport for ATARI FreeMiNT has been added.
  • Thanks to Yvan Doyeux
  • A first version of the SCSI adaptation layer for Syllable has been added.
  • Thanks to Kristian Van Der Vliet for the first
  • implementation.
  • Haiku is a BeOS clone and thus uses scsi-beos.c as SCSI adaptation layer.
  • IMPORTANT NOTICE: if you like to compile libscg with some Haiku releases
  • you may first need to copy a file:
  • cd /boot/develop/headers/os
  • cp device/CAM.h drivers/CAM.h
  • CAM.h was at /boot/develop/headers/os/drivers/CAM.h in BeOS and as CAM
  • has no own hardware, it seems to belong into /boot/develop/headers/os/drivers/
  • Added a workaround for the type disaster in the Appls IOKit include files
  • in order to support 64 bit binaries
  • Raised the SCSI Bus-number limit from 256 to 500 for Linux as a workaround
  • for a resource leak bug in the linux kernel. The workaround lets the problem
  • happen much later but cannot completely avoid it. If you are hit by the Linux
  • kernel resource leak bug, you need to reboot.
  • The low level SCSI transport code for Mac OS X has been reworked.
  • The code now supports cdrecord -scanbus
  • The code now supports cdrecord's autotarget mode
  • The code now supports to communicate with BluRay drives
  • The code now prints a longer help text that instructs what to do in order
  • to work against the "diskarbitrationd" program on Mac OS that tries to
  • steal us our hardware.
  • If someone is able and willing to help, please send mail!
  • I like to be able to tell "diskarbitrationd" to give up specific drives
  • and to set up shared access.
  • Added a hack to liscg to allow cdrecord -scanbus to work on NetBSD
  • Added a hack to liscg to allow cdrecord -scanbus to work on OpenBSD
  • libscg now supports -scanbus and cdrecord's autotarget feature on the
  • following platforms:
  • SunOS (SunOS-3.x & SunOS-4.x)
  • Solaris (SunOS-5.x)
  • AmigaOS
  • ATARI MiNT
  • BeOS
  • FreeBSD
  • NetBSD
  • OpenBSD
  • DragonFlyBSD
  • Cygwin on win32
  • Cygwin on win64
  • Max OS X
  • Haiku
  • HP-UX
  • IRIX
  • Linux
  • NextSTep
  • OSF-1 (Digital UNIX)
  • OS/2
  • SCO OpenServer
  • SCO UnixWare
  • VMS
  • Zeta
  • Make libscg deal with the new error code from HP-UX that
  • is returned for a non-existing ATAPI slave.
  • Some minor changes in libscg to make scgcheck report less problems
  • with HP-UX
  • changed a include path in libscg/scsi-mac-iokit.c to allow
  • compilation on "Snow Leopard"
  • Removed some GCC warnings from libscg/scsi-sgi.c
  • Retry to send SCSI commands for the FreeBSD CAM subsystem in case that
  • (ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQUEUE_REQ)
  • Libscgcmd:
  • This is a new SCSI command library
  • Workaround for a GCC warning with make DEFAULTSDIR=DEFAULTS_ENG
  • warning: 'sccsid' defined but not used added
  • Libmdigest:
  • New library
  • Rscsi:
  • Changed from GPL to CDDL
  • New interface function scg_numbus() returns the number of SCSI busses.
  • This is implemented via the new emote function "N".
  • "make install" now also installs the READMEs and other documentation to
  • ..../share/doc/rscsi/
  • Workaround for a GCC warning with make DEFAULTSDIR=DEFAULTS_ENG
  • warning: 'sccsid' defined but not used added
  • Raise the SCSI bus nubmer limit to 1024 to allow the new Linux ATA mapping.
  • the configuration file "rscsi" is now by default installed into
  • /etc/default/rscsi
  • First complete version of a man page for rscsi.
  • Makefile.dfl now detects whether /etc/default/rscsi already exists
  • Cdrecord:
  • Support for the Plextor GigaRec feature.
  • Use driveropts=gigarec=1.2 to increase CD capacity by 20%.
  • Allow the -shorttrack option for RAW mode, thanks to a report
  • from Sebastian Trueg
  • Enhance the minimal grace time from 2 to 3 seconds to make sure
  • that cdrecord will not get out of sync with locks from the
  • Volume management system.
  • Better checks and better error messages for /etc/default/cdrecord
  • Correct verbose print mode for old pre-MMC TEAC drives.
  • Added support for Ultra speed+ CD-RW media recognition and a check
  • whether the drive supports Ultra speed+ CD-RW media.
  • (Thanks to Alexander Noé).
  • Correctly evaluate the write speeds for Ultra speed+ CD-RW media.
  • This prevents wrong warnings that the "drive does not support Ultra speed+"
  • Fixed a typo in the driveropts=help messages
  • Trying to work around a noncompliance (modified interface) present on newer
  • Linux kernels that causes cdrecord to be unable to allocate a SCSI transfer
  • buffer.
  • Newer Linux kernels do not honor a contract from mlockall(MCL_FUTURE)
  • after cdrecord turned off euid == 0 from a suid root installation.
  • Instead of honoring mlockall(MCL_FUTURE), Linux checks each mmap()
  • and compares against getrlimit(RLIMIT_MEMLOCK
  • Explicit fine grained privileges support for Solaris.
  • Cdrecord now switches off all privs that are no longer needed.
  • Adjust some timeouts to prevent that the drive buffer of
  • newer Pioneer DVD writers empties when writing high speed DVD
  • media.
  • Support for BeOS/Zeta shared memory was added
  • New tag CDR_MAXFIFOSIZE= in /etc/default/cdrecord allows to
  • limit the size of the FIFO cdrecord is using. This helps the
  • sysadmin to prevent other people from locking up the system.
  • Fixed a bug caused by an uninitalized variable when handling
  • CDR_MAXFIFOSIZE= and no file /etc/default/cdrecord exists
  • Changed from GPL to CDDL
  • Moved the DVD support code to the OpenSource part.
  • Note that this has been planned in 1998 already. The plan
  • was to make the DVD support code OpenSource at the time when
  • the successor of the DVD becomes ready.
  • In case you do not know the reason why the DVD support
  • code has not been OpenSourced before....Cdrecord is the 3rd
  • program that did start supporting DVD-R. This was in February 1998.
  • A company from the MS-WIN area did steal my libscg code
  • in a way that made it hard if not impossible to sue them.
  • This company did implement DVD support very late (not much
  • more than a year ago) and I did not like to "help" them again.
  • Fixed a typo in defaults.c & scsimmc.h
  • Introduced a better DMA speed test that now hopefully notices
  • all cases when the SCSI read buffer command does not work.
  • Print the physical drive buffer size in addition to the logical
  • drive buffer size when both differ.
  • Added a workaround for a NEC DVD firmwarebug that caused cdrecord
  • to use the CD write speed instead of the DVD write speed.
  • Added a workaround for the fact that some NEC writers return a too
  • small size for half written DVD+RW (use end_lba from GET PERFORMANCE
  • in this case).
  • Better error messages in case of no track options that are called
  • together with file type arguments.
  • Added new Mt.Fuji6 profile texts for HD-DVD and Blu ray writers.
  • Avoid a GCC warning in the code that works around a Linux DMA residual bug.
  • Replace nice(-20) by nice(-NZERO)
  • cdrecord now supports to set the layer break for DVD+R/DL.
  • This reduces the write time but as there is currently no way
  • to specify the layer break by hand, dual layer DVD-Video does
  • not yet work.
  • cdrecord -atip now also prints the rzone info for DVD+ media
  • cdrecord -atip now prints more information for DVD-R/DL media
  • cdrecord now also supports to write to DVD-RAM
  • New test for DVD-R/DL layer jump write capability
  • Starting to implement a new default write mode that is not always TAO
  • but fits best to the current writer and medium.
  • New option driveropts=layerbreak switches DVD-R/DL into layer jump mode
  • New option driveropts=layerbreak=value sets manual layer break
  • cdrecord -prcap now also prints the MMC4 profile list and the feature list
  • SCSI MMC4 print feature codes enhanced
  • SCSI MMC4 print feature now knows more recent feature numbers
  • "gconf" debug code removed - no longer needed
  • print formated capacity values with cdrecord -atip
  • Renamed getdelim() to getworddelim() to avoid a name clash in Cygwin.
  • Note that there is still a name clash on Cygwin with getline(). As this
  • is a hard POSIX violation caused by Cygwin, you need to edit Cygwin's
  • /usr/include/stdio.h and remove the non-conforming Cygwin getline()
  • if you like to compile cdrtools. Please also make a bug report against
  • Cygwin. Tell the Cygwin people that libschily's getline() is compliant
  • to a commercial interface published since 1982. Cygwin needs to use a
  • different name if they don't like to follow the official getline()
  • prototype.
  • Cdrecod now default to the write mode "-sao" in case that no write mode
  • has been specified. Cdrecord -multi continues to default to -tao.
  • If your drive does not support -sao, or if cdrecord does not support -sao
  • for your drive, you should now call cdrecord -tao.#
  • If no dev= option has been specified or of dev= only contains a SCSI transport
  • specifyer but no address, cdrecord now searches the SCSI address space and
  • if exactly one CD-ROM drive is found, this drive is used.
  • Note that this will not work on user unfriendly platforms that do not allow
  • SCSI address scanning or that do not allow to scan for SCSI drives in a single
  • address space (like Linux) this new feature does not work.
  • The two modifications from above now allow dummies to call "cdrecord iso-image"
  • in case they are on a user-friendly OS that allows "cdrecord -scanbus" without
  • any further parameters to find all CD-ROM drives.
  • Calling "cdrecord file file" now works.
  • The atip information now includes enhanced rzone information
  • with dual layer values.
  • struct rzone_info now includes the DVD/DL enhancements from MMC
  • print_diskinfo() enhanced for DVD support
  • New option -minfo/-media-info to print Media information/status
  • prdiskstatus() which is supporting cdrecord -minfo is now a globally implemented
  • function.
  • cdrecord -minfo extended to print TOC related media info.
  • The new option -minfo is now almost complete.
  • cdrecord -scanbus now defaults to scan 1024 SCSI busses in case that the "numbus"
  • function is not yet available on a remote RSCSI server.
  • Make cdrecord -msinfo print the right values for "multi-session" (multi-border)
  • DVD-R and DVD+R.
  • cdrecord -atip output for DVD media enhanced and updated for DVD+R/DL & HD-DVD
  • Enhanced CUE sheet parser to allow writing the new Zeta CD from
  • http://www.zeta-os.com/cms/custom/lcd/indexe.php
  • Supporting -raw/-raw16/-raw96r in CUE sheet mode (with cuefile=).
  • Please test and report as I am not able to test all possible cases.
  • As it seems that this new mode works now properly, it it possible
  • to write SVCDs on Pioneer writers that refuse to write SVCDs in -sao mode
  • because Pioneer implements a silly internal memory management that
  • reserves memory for 99 tracks with not more than 2 indices each.
  • In RAW mode, cdrecord takes care of subchannel data and is able to work
  • around this deficit in Pioneer drives.
  • Correctly reset CDRWIN CUE sheet state at t

New in version 2.01.01a66 (October 12th, 2009)

  • Support for 64 bit compilation on HP-HX using "cc" was added.
  • libschily/fconv.c was reworked to deal with non-C99 compliant systems and to deal with the constraints found in HP-UX-11.11.
  • A problem in libsiconv related to a name "iconv:name" was fixed.
  • The HP-UX adaption layer for libscg was updated to match ATAPI drives.
  • A bug was fixed in the cdrecord workaround code for a firmware bug for DVD+R media in HL-DT-ST drives.
  • Mkisofs, isoinfo, and isodump now deal with the broken Rock Ridge attributes created by the Mac OS X program hdiutil.
  • The man pages have been reworked.

New in version 2.01.01a65 (September 16th, 2009)

  • This release removes sed(1) calls from gmake support, as *BSD comes with a broken sed.
  • It allows cdrecord -scanbus on NetBSD and OpenBSD.

New in version 2.01.01a63 (August 13th, 2009)

  • A new libmdigest library was included.
  • Cdda2wav was converted to use libmdigest.
  • An endless loop in cdda2wav while parsing rotten CD+ extensions is avoided.
  • A problem in readcd's man page that was a result of nroff's inability to correctly deal with characters beyond ASCII was fixed.

New in version 2.01.01a58 (March 9th, 2009)

  • Support for Syllable OS was added. Support for Haiku (BeOS clone) was added.
  • Cdda2wav now correctly behaves with -no-infofile and md5sums.
  • Mkisofs now correctly handles symlink target names with Rock Ridge.

New in version 2.01.01a57 (February 2nd, 2009)

  • The ATARI ST (FreeMiNT) support is now complete.
  • Do not install by overwriting /etc/default/cdrecord in case an earlier file exists. Cdda2wav now correctly deals with longer CD-Text information.
  • Cdda2wav now correctly works in 64 bit mode.

New in version 2.01.01a56 (January 22nd, 2009)

  • Fewer compilation warnings are shown with GCC, HP-UX cc, and Mac OS X cc.
  • cdrecord now has a workaround for a TSST DVD+RW firmware bug.
  • A bug in cdrecord introduced wifh DVD multi-border 18 months ago that prevented CD multi session in SAO mode was fixed.
  • Readcd no longer dumps core when the target FS is full.
  • Mkisofs now fully supports the "ST" Rock Ridge signature.
  • A workaround has been added for a bug in gmake < 3.81.

New in version 2.01.01a55 (December 31st, 2008)

  • This release makes Linux installation more safe: install scripts have been enhanced to make sure that cdrecord will be installed suid root if "make install" is called by root, but cdrecord is not installed suid in case "make install" is not called by root.
  • The new makefile variable INS_RBASE controls the install location of files like /etc/default/cdrecord, while other files may be installed into /opt/schily.

New in version 2.01.01a54 (December 26th, 2008)

  • The Atari MiNT enhancements are ready (except for the libscg code for ATARI).
  • This release can create and link shared cdrtools-libs on Linux.
  • A workround for a nasty gcc warning about sccsid has been introduced.
  • Libfind now correctly deals with ARG_MAX in case libfind bitsize differs from the called program with -exec +.
  • The RSCSI bus numer limit has been raised to 1024 to allow the new Linux ATA mapping.
  • Many new workarounds for drive firmware bugs have been added to cdrecord.
  • The cdrecord default transfer size is again 63k because of Linux and Solaris kernel bugs.

New in version 2.01.01a53 (October 29th, 2008)

  • cdda2wav now implements to compute md5 chechsums for the audio data, and the sums are in the *.inf files.
  • A major code restructuring introduces the new libraries libcdrdeflt and libscgcmd with very old code in order to avoid several symlinks in the source tree.

New in version 2.01.01a52 (October 22nd, 2008)

  • Config.sub now supports NetBSD on AMD64.
  • The email addresses in many files have been updated.
  • The libfile license has been changed from 4-clause BSD to 2-clause BSD with permission from all authors.
  • The MD5 implementation in cdda2wav has been changed to a public domain variant to avoid the RSA advertizing clause.
  • Some small code cleanups were done in libscg.

New in version 2.01.01a51 (October 9th, 2008)

  • cdrecord now includes a workaround for a Lite-ON BluRay firmware problem.
  • The cdrecord default transfer size has been enhanced to 126 kB.
  • A CAM patch from FreeBSD has been added.
  • A workaround has been added for ATARI linker problems with gcvt().
  • A workaround has been added for POSIX incompatibilities in POSIX.1-2008.
  • This release explains how to keep GPL compatibility when publishing mkisofs binaries.

New in version 2.01.01a50 (September 27th, 2008)

  • cdrecord adds support for DVD-R/DVD-RW multi-border (multi-session).
  • mkisofs now allows control characters in UDF file names if Joliet is not also used.

New in version 2.01.01a49 (September 18th, 2008)

  • The first step was made to allow compiling mkisofs without the deprecated Mac OS 9 HFS support.
  • Plenty of comments were added to libparanoia.
  • A fix was made to allow "make install" to be called without calling "make all" beforehand.
  • This was needed since symlinks have been removed from the tar archive.

New in version 2.01.01a48 (September 4th, 2008)

  • A new attempt was made to work around the autoconf unfriendliness with GNU libiconv.
  • Cdrecord now correctly writes DVD+R/DL media with all drives.

New in version 2.01.01a47 (August 29th, 2008)

  • This release fixes mkisofs problems with multisession on multi-extent files (greater than 4GB).