summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2012-12-31 05:04:42 +0400
committerIgor Pashev <pashev.igor@gmail.com>2012-12-31 05:04:42 +0400
commit71dc8760ff4de5f365330d1bc571d934deb54af9 (patch)
tree7346d42a282562a3937d82307012b5857d642ce6 /doc
downloadcdrkit-71dc8760ff4de5f365330d1bc571d934deb54af9.tar.gz
Imported Upstream version 1.1.11upstream/1.1.11upstream
Diffstat (limited to 'doc')
-rw-r--r--doc/ANNOUNCEMENTs/AN-2.01607
-rw-r--r--doc/ANNOUNCEMENTs/AN-2.011496
-rw-r--r--doc/ANNOUNCEMENTs/AN-2.01.01a0191
-rw-r--r--doc/ANNOUNCEMENTs/AN-2.01.01a03150
-rw-r--r--doc/ANNOUNCEMENTs/AN-2.01.01a04164
-rw-r--r--doc/ANNOUNCEMENTs/AN-2.01.01a05143
-rw-r--r--doc/ANNOUNCEMENTs/AN-2.01.01a06141
-rw-r--r--doc/ANNOUNCEMENTs/AN-2.01.01a0796
-rw-r--r--doc/ANNOUNCEMENTs/AN-2.01.01a0896
-rw-r--r--doc/DOC-OVERVIEW35
-rw-r--r--doc/PORTABILITY34
-rw-r--r--doc/READMEs/README.ATAPI589
-rw-r--r--doc/READMEs/README.ATAPI.setup87
-rw-r--r--doc/READMEs/README.audio50
-rw-r--r--doc/READMEs/README.cdplus85
-rw-r--r--doc/READMEs/README.cdtext65
-rw-r--r--doc/READMEs/README.copy53
-rw-r--r--doc/READMEs/README.multi209
-rw-r--r--doc/READMEs/README.netscsid145
-rw-r--r--doc/READMEs/README.sony31
-rw-r--r--doc/READMEs/README.suidroot29
-rw-r--r--doc/READMEs/README.verify75
-rw-r--r--doc/WHY26
-rw-r--r--doc/genisoimage/README26
-rw-r--r--doc/genisoimage/README.alphaboot28
-rw-r--r--doc/genisoimage/README.compression17
-rw-r--r--doc/genisoimage/README.eltorito101
-rw-r--r--doc/genisoimage/README.graft_dirs151
-rw-r--r--doc/genisoimage/README.hfs_boot76
-rw-r--r--doc/genisoimage/README.hfs_magic69
-rw-r--r--doc/genisoimage/README.hide208
-rw-r--r--doc/genisoimage/README.hppaboot38
-rw-r--r--doc/genisoimage/README.joliet53
-rw-r--r--doc/genisoimage/README.macosx43
-rw-r--r--doc/genisoimage/README.mipsboot26
-rw-r--r--doc/genisoimage/README.mipselboot29
-rw-r--r--doc/genisoimage/README.mkhybrid145
-rw-r--r--doc/genisoimage/README.prep_boot45
-rw-r--r--doc/genisoimage/README.releasenotes154
-rw-r--r--doc/genisoimage/README.rootinfo90
-rw-r--r--doc/genisoimage/README.session53
-rw-r--r--doc/genisoimage/README.sort102
-rw-r--r--doc/genisoimage/README.sparcboot77
-rw-r--r--doc/genisoimage/README.sunx86boot77
-rw-r--r--doc/icedax/FAQ296
-rw-r--r--doc/icedax/Frontends34
-rw-r--r--doc/icedax/HOWTOUSE101
-rw-r--r--doc/icedax/NEEDED10
-rw-r--r--doc/icedax/OtherProgs2
-rw-r--r--doc/icedax/README549
-rw-r--r--doc/icedax/THANKS36
-rw-r--r--doc/icedax/TODO41
-rw-r--r--doc/icedax/cdda_links4
-rwxr-xr-xdoc/icedax/tracknames.pl245
-rw-r--r--doc/icedax/tracknames.txt34
-rw-r--r--doc/plattforms/README.aix5l16
-rw-r--r--doc/plattforms/README.freebsd31
-rw-r--r--doc/plattforms/README.linux46
-rw-r--r--doc/plattforms/README.parallel59
-rw-r--r--doc/plattforms/README.sunos10
-rw-r--r--doc/plattforms/README.win3231
-rw-r--r--doc/wodim/README.DiskT@267
-rw-r--r--doc/wodim/README.WORM10
-rw-r--r--doc/wodim/README.cdrw17
-rw-r--r--doc/wodim/README.clone27
-rw-r--r--doc/wodim/README.raw71
66 files changed, 8842 insertions, 0 deletions
diff --git a/doc/ANNOUNCEMENTs/AN-2.0 b/doc/ANNOUNCEMENTs/AN-2.0
new file mode 100644
index 0000000..c504298
--- /dev/null
+++ b/doc/ANNOUNCEMENTs/AN-2.0
@@ -0,0 +1,1607 @@
+NEW features of cdrtools-2.0:
+
+Please have a look at the German open Source Center BerliOS at www.berlios.de
+BerliOS will continue to support free hosting of cryptography projects even
+when US laws change and don't allow to host cryptography projects in the USA.
+Also look at sourcewell.berlios.de, the first Open Source announcement service
+that itself is implemented as Open Source project.
+
+***************** Important news ****************************
+
+For the 'Slottable Source Plugin Module' SSPM Features read README.SSPM
+
+***************** Please Test *********************************
+
+All:
+
+- Now using the "Slottable Source" feature of the makefile system.
+ This is the fist modular reusable portable makefile standard
+ in the open source world.
+
+ To see a new feature call: "make tinfo"
+
+- config.sub now recognises "parisc-unknown-linux-gnu"
+
+- Circumvent some problems with GCC-3.0 on Linux
+
+- Removed printf() definitions from schily.h to avoid type clashes
+
+- Support for SCO (Caldera) OpenUNIX (aka. UnixWare 8)
+
+- Better support for Darwin-1.3 and 1.4
+
+ This is:
+
+ - enhanced makefile system
+
+ - type casts needed for unusual types used on Darwin
+ (e.g. sizeof() returns long!)
+
+- Schily support includefiles rearranged to make portability even
+ easier.
+
+- mconfig.h now defines IS_SCHILY to signal users of the
+ Schily makefilesystem, that the Schily portability environment
+ is being used.
+
+- now includes the forgotten mkdep-sco.sh that helps to better
+ work around the SCO C-compiler.
+
+- timedefs.h modified. Now the last schily portability support include
+ file hast been reworked to make portability even much easier.
+
+- schily.h & standard.h have been modified to hopefully finally solve
+ all type clash problems with size_t & spawn*()
+
+- Compile support for QNX Neutrino
+
+- Now we hopefully have floating point support for _all_ platforms
+ even those without *cvt() and without __dtoa(). Thanks to a hint
+ from Thomas Langer <Langer.Thomas@gmx.net> we now use strtod.c
+ to gert a fallback __dtoa()
+
+- Added an autoconf test for rcmd() so cdrtools now should compile
+ again on BeOS and AmigaOS where no rcmd() is present.
+
+- fixed fexec.c to make it compile ion QNX
+
+- Now the complete libschily is included although it it not needed
+ for cdrtools. There are two reasons for doing this:
+
+ - Cdrtools is _the_ program that is heavily tested on
+ many different platforms, so I will get reports for
+ compile problems this way.
+
+ - cdrtools becomes a base docking platform for the SSPM
+ system this way. Now any of the Schily tools may be included
+ and compiled inside the base portability platform 'cdrtools'.
+
+- New supported architctures:
+ s390-linux-cc.rul parisc-linux-cc.rul parisc64-linux-cc.rul
+
+- Large File support for IRIX-6.2 (added autoconf test for -n32 cc option)
+
+- Large File support for IRIX-6.5 now everything works correctly if the
+ OS supports Large Files by default in 32 bit mode (uses fseeko()/ftello()
+ if present. This could only be done by massively changing the autoconf code
+ stolen from GNUtar.
+
+- Support for SGI IRIX platform ip17-irix
+
+- Support for SGI IRIX-6.5
+
+- Try to support recent BeOS (again)
+
+ - Workaround in libschily/comerr.c for the nonstandard
+ big negative errno values on BeOS
+
+- libschily now includes floating point printf() for BeOS
+
+- fileluopen.c from libschily now compiles on BeOS (without O_NDELAY)
+
+- workaround for the nonstandard negative errno values on BeOS
+
+- Schily makefile RULES for AmigaOS added
+
+- getpagesize() emulation for BeOS to make cdda2wav compile on BeOS
+
+- New rule allows automatic fallback to GCC if the configured
+ default compiler could not be found.
+
+- statdefs.h enhanced
+
+- Many corrections to give less warnings on SCO Openserver
+
+- Support for NT-5.1 (WIN XP) added os-cygwin_nt-5.1.id
+
+- VMS script build_all.com now includes astoll.c so compilation
+ on VMS should work again.
+
+- New macros for max/min values of int*_t in utypes.h
+
+- Limit the different handling of packed bitfields for AIX to AIX CC.
+
+- Unfortunately fragementation of cdrecord has begun.
+ I noticed this fact recently when people started to ask me
+ senseless things which turned out to be a result of
+ a modified cdrtools source that I have not ben aware of.
+
+ One main goal of cdrtools is to provide a platform indepenant
+ user interface which cannot be achieved if people change important
+ parts os the user interface.
+ For this reason, I changed the license in hope that this will
+ help at least to keep the user interface the same on all
+ platforms and on all distributions.
+
+ Please keep in mind that fragmentation in many cases increases
+ my workload. There is no real reason for a modification,
+ and (even worse) the people who create modifications do not help
+ to keep my workload low in order to help me (and Heiko and James)
+ with the cdrtools project. People should rather contribute to
+ the project. Cdrtools should be free and actively mantained
+ in future. With increasing workload, I don't know how to do this.
+
+
+- Add hints that compiling on unknown platforms wil only work if
+ "smake" is used.
+
+- Autoconf code for Large file support now handles Linux system include
+ file bugs that prevented correct behavior on 64 Bit Linux systems.
+
+
+- Better autoconf code for the problems with mlock() & HP-UX-10.20
+
+- Better autocheck code for available C-compilers on HP-UX
+ Now even a fallback from GCC to CC works.
+
+- Some changes to make compilation on 64 bit systems more correct
+
+- Added support for GNU Hurd to the Schily Makefilesystem
+
+- Cast pointerdiffs to int for printf() %.*s format and/or include
+ workarounds for 64 bit problems in this area.
+
+- Several modifications to make OS/2 work again
+ (e.g. -lsocket added)
+
+- fexec.c now uses a configurable PATH environment separator
+ to allow PATH lookup on OS/2
+
+- A 20 year old extension has been removed from format.c
+ This caused printf() to interpret %X as %lX. This caused noticable
+ problems on IA-64. It should have created problems on True64
+ and on 64 bit Sparc programs too but was not directly visible
+ due to a different stack content.
+
+- remove #elif to avoid a GCC-3.x warning
+
+- config.sub now knows about IA64 architecture
+
+- Makefilesystem now spports compiler specific optimization flags
+
+- Align_test.c now creates a better include file (using more () to
+ make sure the compiler created correct code).
+
+- Makefilesystem changed $(MAKE) to "$(MAKE)" to allow spaces
+ in pathnames
+
+- Correct autoconf test for broken OS like MAC OS X that do not
+ allow local malloc() implementations due to linker bugs.
+
+- Add autoconf test for strange clock_t definition method on Linux
+
+- README.ATAPI enhanced for all platforms
+
+- README.ATAPI now contains a hint on how to use ATAPI drives on HP-UX-11.x
+
+- Support for FreeBSD on Ultrasparc added to the makefile system
+
+- *roff'd man pages in .../doc dir re-created
+
+- Try to work around a bug in OpenBSD.
+ OpenBSD defines EOF in ctype.h but POSIX only mentions an EOF definition
+ for stdio.h. If we include ctype.h bfore schily.h on OpenBSD while
+ stdio.h has not been included, this will fail.
+
+/*--------------------------------------------------------------------------*/
+
+Libparanoia (Ported by Jörg Schilling, originated by Monty xiphmont@mit.edu):
+
+- The paranoia code from cdparanoia (written by Monty xiphmont@mit.edu)
+ has been converted into a portable library.
+
+/*--------------------------------------------------------------------------*/
+
+Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de):
+
+- Changed to allow compilation on K&R compilers too
+
+- Speedup by 300%
+ The speedup is nearly processor independant.
+
+ Pentium-233 2443 sectors/s 32x
+ 333Mhz-UltraSparc-IIi 6402 sectors/s 85x
+ 900Mhz-UltraSparc-III+ 22813 sectors/s 304x
+ Athlon-1000 24378 sectors/s 325x
+ Athlon-1700 40168 sectors/s 535x
+
+ Depending on the speed of gettimeofday(), these numbers may be up to 5%
+ too low.
+
+- Code is now put under GPL.
+
+/*--------------------------------------------------------------------------*/
+
+Libscg:
+
+- Trying to add a workaround for just another bug in the
+ sg driver in the Linux kernel. If a TIMEOUT occurs,
+ the error code does not indicate a TIMEOUT.
+
+- Better scg_open() error messages when trying to do scanbus on Linux
+ and no /dev/sg* or /dev/pg* could be opened.
+
+- Output Request Sense buffer with -debug when the USCSI interface is
+ used on Solaris.
+
+- First attempt for support for the new IOKit SCSI interface on MaxOS X
+ Darwin-1.4 and newer with much much help from
+ Constantine Sapuntzakis <csapuntz@Stanford.EDU>
+
+ Unfortunately there is not yet support for SCSI devices nor
+ is there support for standard Bus,Target,Lun device namings.
+ I hope that bot may be added in the future.
+
+ Volunteers who like to help with the libscg interface stuff
+ for Darwin-1.4 are welcome.
+
+- Try to make scsi-beos.c compile on new BeOS version 5
+
+- First attempt to integrate the AmigaOS SCSI transport interface code
+ from Thomas Langer <Langer.Thomas@gmx.net>
+
+- Massive modicifation of the support code for SCO OpenServer 5.x
+
+ As the kernel implementation contains several bugs,
+ the new code will by default not check for hard disks in scan mode.
+
+ The code checks the following environment variables:
+
+ "LIBSCG_SCAN_ALL" To force scanning for all SCSI targets.
+ "LIBSCG_SCSIUSERCMD" use old SCSIUSERCMD ioctl()
+ "LIBSCG_MAX_DMA" override MAX_DMA value, value must be number in kB
+ "LIBSCG_ENABLE_USB" enable access of USB devices
+
+- Version -> 0.6
+
+- Adding support for the CDROM_SEND_PACKET ioctl() from cdrom.c
+
+ Thanks to Alexander Kern <alex.kern@gmx.de> for the idea and first
+ code fragments for supporting the CDROM_SEND_PACKET ioctl() from
+ the cdrom.c kernel driver. Please note that this interface in principle
+ is completely unneeded but the Linux kernel is just a cluster of
+ code and does not support planned orthogonal interface systems.
+ For this reason we need CDROM_SEND_PACKET in order to work around a
+ bug in the linux kernel that prevents to use PCATA drives because
+ the kernel panics if you try to put ide-scsi on top of the PCATA
+ driver.
+
+ The code is currently in "status nascendi" but usable with some trade offs.
+
+ To use: call e.g.
+
+ cdrecord -scanbus dev=ATAPI:
+
+ cdrecord -dao -v speed=24 dev=ATAPI:0,0 ....
+
+ Be careful! This code is only needed in order to be able to use
+ PCATA CD-writers on notebooks because there is a severe kernel bug.
+ Unfortunately, this bug causes the kernel to hang (and force you
+ to reboot) if you try to call:
+
+ cdrecord -scanbus
+
+ without the dev=ATAPI: option.
+
+ In this case cdrecord will hang infintely and unkillable
+ in open("/dev/sg1", 2) => you need to reboot :-(
+
+ Repeat by: Insert a PCATA CD-Writer in a Sony VAIO notebook and run
+ cdrecord -scanbus.
+
+- Enhanced list of SCSI Error texts from SCSI standard from 29.5.2001
+
+- New callback function to allow execption handling to be done after
+ the current SCSI command did finish.
+
+- scsi-aix.c now uses UIntptr_t in alignement macro.
+
+- Some 64 bit casts in the USCSI code from scsi-sun.c
+
+ For hints on the Linux Packet code in ide-cdrom.c read README.ATAPI
+
+- Introduce a workaround for a conceptional Bug in the Linux kernel
+ SCSI implementation.
+
+ Linux is unable to distinct between a target selection timeut (e.g. switched
+ off target) and a command timeout (e.g. command needs more time than expected).
+
+ If the detected command time is < 1 second, libscg will now assume a dead target.
+
+- Fix a bug with ATAPI in scsi-vms.c - now the SCSI status byte is OK
+ Thanks To Eberhard Heuser
+
+- Allow up to 26 IDE controlers in scsi-vms.c - Thanks to Chip Dancy
+
+- Do not open all /dev/scg* devices on Solaris if not in Scanbus mode
+
+- Handle ENXIO in Solaris USCSI interface code as indicator for a
+ switched off device.
+
+- Max DMA size for Linux ATAPI Packet interface code corrected.
+ Max DMA is 128k-1 and not 128k.
+
+- Support for recently defined new SCSI target types found in SCSI
+ standard.
+
+- New help system that lists all SCSI low level transports for a specific
+ platform together with their properties.
+
+- Allow consistent usage of alternate SCSI transport layers.
+
+ Now the Solaris USCSI implementation and the (SuSE) Linux ATA implementation
+ behave similar and both allow dev=<Transport> as well as dev=<Transport>:
+ for -scanbus, e.g.
+
+ cdrecord dev=USCSI -scanbus
+ cdrecord dev=USCSI: -scanbus
+ cdrecord dev=ATAPI -scanbus
+ cdrecord dev=ATAPI: -scanbus
+
+ all work the same way.
+
+- Small change for Linux device initialization by request of Linus Torvalds
+
+ The purpose of this change is to support a new SCSI transport interface
+ for ATAPI in Linux that came up with the latest developer Linux kernels
+ (e.g. Linux-2.5.43). This interface allows to send SCSI commands directly
+ to ATAPI drives without using ide-scsi and sg, but it has several pitfalls.
+
+ While Linux allows to use DMA when using ide-scsi and sg if the
+ sector size is 2048 and the transfer buffer starts page aligned, the new
+ direct interface never uses DMA (acording to Linus Torvalds). So if you
+ write audio CDs or data CDs in RAW mode, there is no difference. If you
+ write data CDs in TAO or DAO mode, using ide-scsi and sg allows much
+ higher write speed. Note that this may change in future....
+
+ Notes for use:
+
+ - You need to specify something like dev=/dev/hdc
+ Note that this is unsupported by libscg.
+
+ - As long as there is no safe way for libscg to find out early that
+ this new interface is used, libscg may hang a bit on open.
+ This is caused by the fact that libscg is forced to read
+ from the open filedscriptor to clean up old Linux sg driver
+ interfaces. This was never a problem with /dev/sg*, but
+ when doing the same thing, this causes libscg to read content
+ from /dev/hd*
+
+ - There is (currently) no way for cdrecord to scan for ATAPI
+ devices when using this interface.
+
+ As long as this is true, you may want to prefer to use
+
+ cdrecord dev=ATAPI: -scanbus
+ and
+ cdrecord dev=ATAPI:0,0 ...
+ instead.
+
+- Fix scsi-unixware.c to allow multiple opens.
+
+- Fixed several typo's.
+
+- Avoid to read from the media (when using the new experimental
+ Linux ATAPI transport) while trying to clear old sg driver status.
+
+- Woraround for Linux kernel design bug: CDROM_SEND_PACKET sets errno
+ to EINVAL in case SCSI sense key is "Invalid command".
+
+/*--------------------------------------------------------------------------*/
+
+Rscsi:
+
+- RSCSI now works if the target is a Win32 system.
+ This is not done by changing rscsi.c but by fixing a bug
+ in Cygwin!
+
+ The fix to Cygwin's rshd is posted in
+
+ http://sources.redhat.com/ml/cygwin-apps/2001-05/msg00000.html
+
+ Thanks to egor duda <deo@logos-m.ru>
+
+ NOTE that in a few weeks this patch will be integrated into Cygwin
+ and cdrecord/RSCSI will work out of the box on a recent Cygwin release.
+
+- Now prints user ID & user Name into DEBUG file
+
+- Now using signal safe read/write functions.
+
+- Code now checks for HAVE_NETDB_H (added by request of
+ "Thomas" <Langer.Thomas@gmx.de> to help with AmigaOS port)
+ This should indicate whether there is support for rcmd()
+ in the OS.
+
+- Make it compile on BeOS
+
+- changed because GNU Hurd has no MAXHOSTNAMELEN
+
+- Return "PIPE" for hostname comparison if called from e.g. 'sshd'.
+
+/*--------------------------------------------------------------------------*/
+
+Cdrecord:
+
+- New option -overburn
+
+ This option has been added as many people seem to be unabe to understand
+ that they are going to write more than the official disk capacity from
+ reading cdrecord's output. Oveburnung now is no more done by default!
+
+ NOTE that there even are some drives that prevent you from writing
+ exactly the official size and stop several hundreds of sectors before.
+
+- Do not print a warning for writing more than 90 minutes if the media is
+ a DVD
+
+- Fix for a problem with setting high priority on Win32 systems.
+ Thanks to egor duda <deo@logos-m.ru>
+
+- Sony MMC drives now work in -multi session mode.
+ There was a bug in cdrecord that was accepted by all other drives.
+ The bug did cause a temporary bad setup to the drive.
+
+- I hope that the 90 minute CD capacity warning now will finally
+ disappear for DVD writers.
+
+- Old test code removed that prevented cdrecord from being able
+ to write manually configured indices. Note that the index lists
+ from the *.inf files with using the -useinfo option alway worked.
+
+- -force will force cdrecord to ingnore any failed forced OPC.
+ currently this is only done if the drive does not support
+ forced OPC.
+
+- Do forced OPC before blanking a CD-RW
+
+- Driveropts "burnproof" renamed to "burnfree".
+ This has been done as this technology now appears in the MMC standard.
+
+- Cdrecord now shows whether BURN-Free is active. This makes
+ sense as Ricoh's "Just-Link" is enabled by default.
+ Unfortunately, the way "Just-link" is implemented is not compliant
+ with the MMC standard. We will have to wait until I get the needed
+ information from Ricoh.
+
+- Support for MMC RAW mode writing.
+
+ This allows to do disk at once recording on Philips drives that
+ do not support SAO.
+
+ You may write audio tracks in RAW mode. There are some new
+ and most likely transient options:
+
+ -raw16 Write 2352 Bytes sectors + P+Q Subchannel
+
+ -raw96r Write 2352 Bytes sectors + P+W Subchannel (R-W in raw mode)
+
+ -raw96p Write 2352 Bytes sectors + P+W Subchannel (R-W in packed mode)
+
+ Indices are fully supported in RAW mode.
+
+ MCN & ISRC are not yet suported in RAW mode, they are silently discarded.
+
+ I know that cdrecord currently does not work in RAW/R96P mode.
+ It is not clear whether this is a bug in cdrecord or in the Plextor
+ firmware as I did not yet found another drive that claimes to support
+ RAW7R96P.
+
+ If you find other problems in RAW mode or if you find
+ new bugs introduced in old write modes, please send a bug report.
+
+- Cdrecord now checks the properties of the writer. If a specific write
+ mode is not supported by the writer, cdrecord warns you and makes
+ a suggestion for a similar alternate write mode.
+
+ With the curent structure of cdrecord, it is not possible to silently
+ e.g. change the write mode from -dao to -raw96r
+
+- MMC compliant drives are automatically scanned for supported write modes.
+ This should help to make cdrecord work without manual static configuration.
+ My hope is still to have no need to know all drive properties in
+ advance, so new drives will continue to work as long as they
+ are standard comliant enough for cdrecord.
+
+ NOTE for GUI implementors:
+
+ the line starting with the text:
+
+ "Checking possible write modes:"
+
+ will go away in the near future.
+
+ The line starting with:
+
+ "Supported modes:"
+
+ will remain and should be checked for possible write modes.
+
+- Fixed a bug in the option checking that prevented to write
+ data CD's at all.
+
+ Now only "RAW data" CD's are flagged as expected.
+
+- Fixed a bug in the Firmware bug recognition system.
+ This bug did prevent cdrecord to work with Philips drives
+ when writing in RAW mode.
+
+- New options -copy & -nocopy to allow to modify the 'copy' bit
+ in audio subchannel data.
+
+- -scms option added to the man page and online help.
+
+- New model to compute SCSI transfersizes
+
+- -xa1 -xa2 sector typedefinitions changed.
+
+- Debug messages while checking possible write modes of MMC
+ compliant made optional.
+
+- RAW writing scatter sector function made more general
+
+- New functions to convert between 2448 and 2368 byte sectors
+
+ NOTE: Read README.raw
+
+- add a forgotten if (xdebug) in drv_mmc.c.
+ This caused a superfluous write mode debug message to be printed
+
+- do installation of exit handlers (to reset SCSI state) earlier
+
+- Cdrecord now does not exit with 0 anymore when interrupted with ^C
+ during the waittime before starting to write.
+
+- First CD-Text support (can only copy CD-Text information from master
+ disk)
+
+ Writing of CD-Text is supported for all drives that support
+ CD-Text in SAO write mode and for all drives that support
+ to write in RAW/RAW96R mode (use -raw96r in this case).
+
+ NOTE: Read README.cdtext
+
+- Circumvent a bug in the system include files from Linux that
+ makes printf() a macro and prevented compilation with GCC-3.0
+
+- Added some #include <stdio.h> to substitute missing printf() definitions
+
+- SAO/R16 mode removed from tests, it may never occur.
+
+- Changed some .min defines in structs to .pmin to avoid K&R complier
+ problems
+
+- better FIFO debug messages
+
+- New driver config table for Taiyo Yuden EW-50.
+ This dive is like a Philips CDD-521 but has been reported to
+ swab audio data.
+
+- rscsi client code now uses buffered read to speed up on Cygwin
+
+- rscsi client code now uses signal safe read/write functions
+
+- Cdrecod now does not open/close the tray anymore if the disk
+ is going to be erased.
+
+- modify -version output if Clone writing support is present
+
+- A new driver has been added that first checks the media if the drive
+ supports to write CD & DVD.
+
+- Behaviour of the function that reads fs= tsize= and similar
+ corrected.
+
+- Modified driver interface for better DVD support
+
+- FIFO Code now checks for HAVE_FORK (added by request of
+ "Thomas" <Langer.Thomas@gmx.de> to help with AmigaOS port)
+
+- Better messages when trying to write more than the amount of data
+ that fits on a DVD.
+
+- The DVD driver now reports a DVD media back to the high level code.
+
+- correctly use the buffer capacity code from the driver instead
+ of the MMC-2 read buffer cap code directly
+
+- Support for the unusual not ready error code of the CyberDrive CW038D
+
+- CD-Text Code now also accepts Text File without 4 byte Size header
+
+- CD-Text file read code now is able to do CRC error correction
+ Note that only songle bit errors per 18 byte pack.
+
+- CD-text Autoring support:
+
+ CD-text may now be based on fields found in the *.inf files
+ created by cdda2wav.
+
+ To create a CD with CD-Text based on information from freedb.org
+ call:
+
+ 1) cdda2wav -B -v255 -L
+ 2) cdrecord {-dao!-raw96r} -v -useinfo -text *.wav
+
+ CD-text TODO:
+
+ - Check whether the *.inf files are all from the same CD
+ and clear some CD-text fields that are only valid if
+ they relate to one CD only.
+
+ - Add some more fields (mainly a dficiency of cdda2wav)
+
+ - Support multi language text
+
+ - Support character coding other than ISO-9959-1
+
+ CD-text may be based on fields found in the *.inf files
+ created by cdda2wav.
+
+ NOTE: Read README.cdtext
+
+- better messages for CD manufacturer codes that are not in the
+ latest free Orange forum table.
+
+- Default usage code is now only 6 lines so the error message
+ does no longer scroll out the screen. If yu like to get the old
+ long usage information, call cdrecord -help
+
+- move 'dd' like number conversion stuff into getnum.c
+
+- Allow the /etc/default/cdrecord parsing code to be used by
+ readcd too (as documented in the man page)
+
+- First support for Plextor's VariRec feature in the PX-W4012
+ I am not sure about the final user interface.
+ For now, call e.g. cdrecord speed=4 driveropts=varirec=-1
+ for all audio CDs. Allowed varirec parameters are -2, -1, 0, 1, 2
+ VariRec only works at write speed 4.
+
+- Print the actual current write speed in verbose mode.
+
+- DVD-R code (undisclosed) now supports:
+ Vendor_info : 'MATSHITA'
+ Identifikation : 'DVD-RAM LF-D310 '
+ Revision : 'A116'
+
+- Support for SCMS from *.inf files
+ Note that you need to use cdda2wav/cdrecord that have fitting versions
+ because of this change. Otherwise cdrecord may add SCMS copy
+ protection.
+
+- RAW mode now honors COPY bit and SCMS coding.
+
+- Avoid coredump with "cdrecord textfile= non/existant ..."
+
+- Corrected printf() formats for verbose printing to hold enough
+ space for media > 1 GB (DVD)
+
+- Corrected printf() formats to make the write speed non-jumping.
+
+- If called from a GUI, cdrecord now reads from "stderr" if
+ the CD-input-data is from "stdin".
+ If it turns out that stderr is not open for reading, cdrecord
+ waits to receive a SIGUSR1
+
+- Better printouts for the DISC-ids covered by the orange forum embargo.
+
+- DVD structure structure definition enhanced to reflect
+ current standard.
+
+- new option gracetime=
+
+- Try to abort DAO recording with a flush_buffer() if ^C is hit.
+
+- Try to make cdrecord behave more polite for platforms (like Cygwin)
+ that don't support large files when the DVD data to be written
+ is read from stdin.
+
+ mkisofs ... | cdrecord ... -
+
+ will now work for DVDs on non large file OS
+
+- Call flush buffer in silent mode to avoid error messages with
+ cdrecord -toc called on a CD-ROM drive.
+
+- Avoid core dump is a single .inf file is missing and -text
+ option is used.
+
+- Data structures modified to allow new features in the future.
+
+- Fixed a bug that caused cdrecord to ignore escaped file type
+ args if they looked like a valid option (e.g.):
+
+ cdrecord dev=0,0 -dao -v -- speed=8
+
+ "speed=8" should be handled as if it was a filename but was
+ skipped.
+
+- Print write mode when starting to write.
+ I hope that this helps me to understand incorrect "bug reports"
+ from lazy people who do not include their cdrecord command line.
+
+- Printing ATIP information is now caused by a separate (internal) flag
+ and not ny a hack.
+
+- Do not allow to write to ultra low speed RW media if the drive
+ is not able to write at 2x or 1x. This may be circumvented
+ with -force.
+
+- Do not allow to write to high speed RW media if the drive is not
+ a high speed RW drive. This may be circumvented with -force.
+
+- Data structures modified to allow new features in the future.
+
+ Trying to make driver interface simpler and cleaner. This resulted
+ in a major rewrite of the driver interface.
+
+ - please test if multi session with TEAC CDR-50/CDR-55
+ still works.
+
+ As a lot has been changed in the driver interface, please test
+ if bugs have been introduced!
+
+- New test that prevents to write CD-RW media too slow
+
+- Display of current DVD write speed now correct and no more based on
+ single speed CD but on single speed DVD.
+
+- Moving SAO/RAW start code from cdrecord.c into drv_mmc.c
+ allows clean DVD-R/RW driver interface code.
+ Now cdrecord -dao will work correctly (as expected) even for DVDs
+
+- speed= option no longer defaults to speed=1
+ Each driver now includes a default speed and a maximum speed.
+ If the maximum speed in the driver is wrong, use -force to overwrite.
+
+ Please send feedback if my assumptions on write speed are wrong:
+
+ - No drive using the Philips CDD-521 command set is faster
+ or slower than 2x
+
+ - No drive using the Yamaha CDR-100 driver is faster than 4x
+ No drive using the Yamaha CDR-100 driver is slower than 2x
+
+ - The Tayo Yuden CW-50 is 2x
+
+ - The Kodak PCD-600 is 6x
+
+- Abort when the last track # of a multi session disk would be > 99
+
+- Data structures modified to allow new features in the future.
+
+- Better bessages for CD-RW where the speed ofthe media does not match
+ the properties of the writer.
+
+- Avoid to reload media in -dummy RAW mode.
+
+- Correctly abort if there was a problem when writing CD-Text in the LEAD-IN.
+
+- Again: Data structures modified to allow new features in the future.
+
+ This release uses the new data structurec to allow to write ISRC/MCN
+ in RAW mode.
+
+- Fixed a bug that caused cdrecord to write a wrong relative time
+ into the subchannel data when writing audio CDs in RAW mode.
+ This affected the pregap sectors if pregap size was != 0.
+
+- Allow cdrecord to write ISRC & MCN even in RAW mode.
+
+- Allow Simulation driver cdr_simul and dvd_simul to simulate any write
+ mode.
+
+- Simulation driver cdr_simul and dvd_simul changed so no reload on the
+ real background drive occurs.
+
+- Since last release , the new data structures allow to write
+ ISRC/MCN in RAW mode. This now makes RAW mode fully usable for
+ audio CDs. NOTE: if you find any problems with CDs written in SAO
+ mode, first try to write the same CD in RAW mode if your
+ drive supports to write in RAW mode. Tere are a lot of drives
+ that have rotten firmware and create broken CDs in DAO mode.
+
+- Support for Yahama Audio Master Quality Recording.
+
+ This support is switched on via driveropts=audiomaster
+
+ I am sorry, but I had to do major changes in the MMC
+ driver in order to be able to support Audio Master.
+ This may have affected all other driveropts=
+ too. Please test and keep in mind that I like to have
+ the mext major release in a few weeks.
+
+ When audiomaster has been specified, BURN-Free recording
+ is disabled and - as the visible size of the medium
+ decreases - a second disk size check is done after
+ Audio Master has been turned on.
+
+- man page enhanced according to new features
+
+- Short Usage funtion now includes a hint on how to
+ obtain the list of possible driveropts= parameters
+
+- Include the tags
+
+ "VARIREC ", "AUDIOMASTER ", "FORCESPEED "
+
+ In the "Driver flags" line that is visible with
+
+ cdrecord -checkdrive.
+
+- cdrecord driveropts=help now includes
+
+ "varirec=" and "audiomaster"
+
+
+- Support for writing data sectors in RAW mode has been added
+ to the GPL#ed version of cdrecord.
+ Note that writing data sectors in RAW mode is a highly CPU
+ intense task. For this reason, cdrecord first checks whether
+ it would be possible to do the requested job reliably.
+ If it is questionable whether the job could be done in the
+ desired speed, cdrecord aborts with a related message.
+
+ The max theoretical speed (not including the writing load)
+ is printed in a new line starting with: "Encoding speed :".
+ Cdrecord allows half of this speed.
+
+- Allow RAW writing of data sectors to work correctly without
+ the need of specifying -data
+
+- Allow spaces as delimiters between different tags in a single
+ line in the file /etc/default/cdrecord
+
+- Support for Ricoh (and others) Just Link
+
+ This support is switched on via driveropts=burnfree
+
+ Note that Just Link is by default swichted on in the drive
+ but as Just Link may create CDs that are no 100% OK,
+ cdrecord now by default switches it off. Now you definitely
+ need to specify driveropts=burnfree to switch Just Link on
+ again.
+
+ If you call cdrecord dev=... -checkdrive you will see
+ the TAG "BURNFREE" as a hint that either Burn-Proof or
+ Just Link is supported.
+
+- "Turning .... " messages for drive special functiions are
+ now printed to stdout
+
+- Limited display (once every 1 MB) of the drives internal buffer
+ RAM fill ratio.
+
+- Display the minimal drive buffer fill ratio a the end of the write
+ process.
+
+- Display number of predicted drive buffer underruns based on the
+ fill ratio of the drive buffer (incremented if fill ratio is < 5%).
+
+- Display average write speed at the end of the write process.
+ In dao mode, this includes the time needed to write the lead in and
+ thus is not 100& correct (value is too low).
+
+- Display of the number of times the Buffer underrun protection
+ has been active for drives where the manufacturer send me the needed
+ information (Ricoh, Yamaha, Aopen). It may work for other drives too
+ but there is no guarantee.
+
+- Fixed a bug in the driveropts= parsing routine.
+
+- New driveropts= option "forcespeed". Use with extreme care as this
+ will force several drives ((Ricoh, Yamaha, Aopen, ...) to write with
+ the selected high speed although the mediaum is too bad for this
+ operation.
+
+- New driveropts= option "tattooinfo". Use together with -checkrive
+ to retrieve the information about the picture size that will fit.
+
+ The result will be someting like:
+
+ DiskT@2 inner r: 265
+ DiskT@2 outer r: 583
+ DiskT@2 image size: 3744 x 318 pixel.
+
+- New driveropts= option "tattoofile=". Use together with -checkrive
+ to write an image of the right size to disk.
+
+ Read README.DiskT@2
+
+- Rearrange the order of the new statistics printing
+
+- Allow several of the new statistics to be printed even if cdrecord
+ aborts due to an error.
+
+- Let the old Philips drive use the common CD media 'reload' function.
+
+- Try to find out if a drive is MMC, MMC-2 or MMC-3 compliant.
+ - see cdrecord -checkdrive
+
+- Suppress printing oof the average write speed if the size of the
+ tracks is not known prior to start CD writing
+
+- ATIP printing (cdrecord -atip) enhanced to support Ultra high speed
+ CD-RW media.
+
+- Check whether somebody likes to write a Ultra high speed CD-RW on
+ an improper writer
+
+- Print MMC conformance level of the drive based on content of
+ SCSI mode page 2A.
+
+- Print more information for MMC-2 & MMC-3 drives with cdrecord -prcap
+
+- The new true CAV Plexwriter 482448 is now supported.
+
+ Please note that it is not easy to write at 48x. You definitely need
+ a correct DMA setup to optimal values.
+
+ Also note switching on Burn-Proof will reduce the max speed to 40x
+ so it may be that you don't need Burn-Proof if you simply reduce speed
+ to 40x manually
+
+- make sure that using both -copy and -useinfo will not result in unclear state
+ Instead the content of the *.inf files will be used
+
+- Simulation driver (cdr_simul / dvd_simul) now uses correct speed ratio
+ for DVDs
+
+- Simulation driver now supports fake "Next writable address" function.
+
+- On Linux usleep() is very unacurate, meter the real sleep time
+ and cumulate a correction value. This allows the simulation driver
+ to simulate the correct write speed.
+
+- Added a note to Heiko Eißfeldt's libedc when printing RAW encoding speed
+
+- Limit gracetime to 999 seconds and make output correct even for
+ times > 9 seconds.
+
+- Corrected a bug in the MMC driver that caused cdrecord to use the
+ wrong place for current speed when doing MMC/MMC-3 dependant stuff
+
+- cdrecord -prcap will now use the same format for MMC & MMC-3 drives
+ rsulting in a better readability.
+
+- Don't print write time statistics if writing did not yet start
+
+- Try to handle drives that don't support to write at speed 1 but
+ will fail if you try to call cdrecord speed=1 ...
+
+- New option -immed tells cdrecord to set the SCSI "IMMED" flag in certain
+ commands.
+
+ This option is not needed if your PC has been configured correctly.
+ However, ATAPI drives usually cannnot do disconnect/reconnect.
+ As a result, the PC may hang with long lasting commands if the CD-writer
+ has been connected to the same IDE cable as the harddisk. A correct
+ solution would be to set up a correct cabling but there seem to be
+ notebooks around that have been set up the wrong way by the manufacturer.
+ As it is impossible to fix this problem in notebooks, -immed has been
+ added. Use this option with care and do not expect cdrecord to work
+ correctly if it has been called with -immed.
+
+- -force will not completely removeany speed restrictions for writing in RAW
+ mode. Instead, only the speed that a single CPU allows will be permitted
+ by cdrecord. This still has a high potential for a buffer underrun.
+ By default cdrecord still is limited to half the encoding speed that
+ a single CPU allows. Even this may result in a buffer underrun on Linux
+ as Linux does not use DMA for IDE when the sector size is != 2048 bytes
+ which is true in RAW write mode.
+
+- If the environment variable "CDR_FORCERAWSPEED" is set, this will have
+ the same results for RAW speed as using -force. However, -force has more
+ general effects and should be avoided.
+
+- Fixed a bug in fifo.c introduced with the driver interface change.
+ Now cdrecord compiles again on VMS (without FIFO).
+ Thanks to Eberhard Heuser.
+
+- Allow cdrecord to compile without libedc
+ Thanks to Eberhard Heuser.
+
+- Run read buffer capacity in silent mode.
+ This is needed because drives with buggy firmware like the CW-7585
+ did cause hundreds of "command sequence erorrs" to be emmited when
+ trying to read the current drive buffer fill ratio.
+
+- Fixed man page to correctly call SAO mode SAO and not DAO.
+
+- Encoding speed is contend dependant. Initalize test buffer
+ before doing a libedc speed test to make the result independant
+ from grabage on the stack.
+
+- Support for libscg help system
+
+- Warn to use cdrecord blank=all if a drive rejects cdrecord blank=fast
+
+- Fixed a bug that became obvious with Yamaha AudioMaster mode and CD-Text
+ The problem was caused by the fact that cdrecord did not allow to overwrite
+ the lead in start time in cdrecord's internal data structures.
+
+- Fixed a bug with recognition of complete disks that came up after cdrecord
+ did allow to deal with >= 90 minute CD's.
+
+- Changed Text "BURN-Free was not used" to "BURN-Free was never needed" because
+ people did believe that the old text means that Burn-Proof has been disabled.
+
+- Man page now includes a hint that padsize is always using 2048 as sector size.
+
+- Fixed a bug with padsize=xxx if sector size was not 2048 bytes.
+ Cdrecord in this case did just divide the number of pad bytes by the
+ number of bytes in an output sized sector (e.g. 2448 or 2352 bytes).
+ This did result in a too low number of padding sectors.
+ The fix caused a complete rewrite of the pad size handling.
+
+- Treat packet mode similar to normal writing: Print Drive buffer fill ratio
+ and current write speed.
+
+- Treat padding similar to normal writing: Print Drive buffer fill ratio and
+ current write speed.
+
+- Make verbose printing consistent and non-jumping
+
+- A new experimental feature of the -immed flag is to
+ tell cdrecord to try to wait short times wile writing
+ to the media. This is expected to free the IDE bus if
+ the CD/DVD writer and the data source are connected to
+ the same IDE cable. In this case, the CD/DVD writer
+ would otherwise usually block the IDE bus for nearly
+ all the time making it impossible to fetch data from
+ the source drive.
+
+ As this is an experimental feature, I would like to get feedback.
+
+
+- #ifdef _POSIX_MEMLOCK/_POSIX_PRIORITY_SCHEDULING Tests now
+ POSIX 2001 compliant
+
+- Do not try to close fd if running on an OS that does not use an fd
+ to mmap() chared memory from anonymous pages.
+
+- Print Orange Forum embargo warning only if ATIP minutes == 97
+ because some DVD writer return junk with read ATIP
+
+- New option minbuf= to choose the mininum drive buffer fill ratio
+ for the ATAPI wait option that is intended to forcibly free the
+ IDE bus to avoid buffer underruns with bad HW configurations.
+ The permitted range is 25..95 for 25%..95% buffer fill ratio.
+
+- minbuf= may switch on the ATAPI wait option without enabling
+ the SCSI Immed option.
+
+- Forcibly switch on -v for now if the ATAPI wait option has been
+ selected. This is needed because due to a bug, this option will
+ not work without -v
+
+- Make FIFO code work on AmigaOS
+
+
+For Yamaha Disk Tatoo features read README.DiskT@2
+
+/*--------------------------------------------------------------------------*/
+
+Cdda2wav (By Heiko Eißfeldt heiko@hexco.de):
+
+- Changes to make cdda2wav compile better on Alpha/True64
+
+- Restructured to better use the schily makefile portability structures.
+
+- Changed handling of Table of contents. Now the more informative
+ methods of Read full toc are being used in favor to the old SCSI readtoc
+ command. For Sony methods, the fallback is the old method.
+ The new methods are available on MMC drives and modern drives with
+ Sony command sets. It should enhance access to very weird multi session
+ cds.
+
+ **************
+ NOTE: If your drive still has problems to copy such non-CD's, there
+ is a simple hack to allow the disk to be copied on all drives:
+
+ Use a (black) whiteboard pen (non-permanent) and paint on the
+ space directly outside the visible ring that is in the middle
+ of the non-CD. This is the space where the broken TOC from the
+ second session is located.
+
+ After doing the copy please return the disk to the dealer and
+ tell the dealer that this is broken goods. This is the only way
+ to stop the big groups to defraud the customers.
+ *************
+
+- Temporary hack to fix a bug in the ISRC code that caused the ISRC
+ string to be shortened by one character.
+
+- fixed ioctl handling of toc entries
+
+- checked ISRC retrieval (MMC + Plextor)
+
+- more checking for weird CDs with wrong track types
+
+- bugfix in setuid.c
+
+- read full toc method extended to a data track in the second
+ session for cd-extra/enhanced cd recognition
+
+- if the tracks in the TOC are labelled as data, this is checked
+ and corrected if untrue
+
+- show cd text disc identification, if one exist
+
+- a new perl script to generate a binary cdtext file for use with
+ cdrecord. This is currently very simple, but it enables you to
+ create cd-text enriched copies from non cd-text originals.
+ For a hint how to use the new perl script see the CD-text usage
+ notes above.
+
+
+- New option -L to ask freedb.freedb.org for CDDB information.
+ This alllows to automatically create CD-Text CDs.
+
+- correct TOC endianess for FreeBSD ioctl interface.
+
+- Fixed a bug that caused cdda2wav to dump core with certain
+ CD-Text data.
+
+- new option -L changed. Now a numerical parameter (0 or 1)
+ defines the handling of multiple cddbp entries.
+ 0 enters user interactive mode.
+ 1 take the first entry unconditionally.
+ I still need a reasonable way for gui interaction in this case!
+ Proposals are welcome.
+
+- made cddbp handling for mixed mode cds more robust.
+ It is unclear yet, if data tracks have to be included in the
+ query. Anybody knows the definitive answer?
+
+- Better TOC ADDR/CRTL (red book) handling
+
+- Better method to scan for indices.
+
+- Support for SCMS in *.inf files
+
+- Better SUID/SGID handling
+
+- new script cddda2ogg
+
+- bugfix deemphasizing (thanks to Klaus Wolterec)
+
+- bugfix rounding error (creation of info files)
+
+- added AlbumPerformer entry in info files
+
+- integration of Monty's libparanoia
+
+- switch to Jörgs getargs option handling
+
+- Fix some bugs with option parsing introduced with the new option
+ parsing using getargs()
+
+- New option -version to make cdrtools behave similar
+
+- New option paraopts=opts for paranoia options.
+
+- Print Paranoia statistics result at end of every track.
+
+- prepare for better recording of discs with illegal TOCs
+
+- prepare for non-english cd_text languages
+
+- rewrite of the TOC handling code (now multisession capable
+ and much more robust)
+
+- add a fallback method (shmat()) for failed mmap()
+
+- linux bug workaround: open() sound device does block when device is busy.
+
+- several code cleanups, some 64-bit portability bugfixes
+
+- Fixed shell script 'cdda2mp3.new' to correctly use "#!/bin/sh"
+
+- Fixed a bug (introduced while converting to getargs()) that caused
+ cdda2wav to dump core on OS that implement read only text
+ correctly like Solaris does) if compled with gcc or Sun CC COPTX=-xstrconst
+
+- Remove old unused getopt() code.
+
+- Check DMA residual count
+
+- FreeBSD cooked ioctl() Byte swapping now finally OK?
+
+- Fixed a bug that caused cdda2wav to return wrong byteorder
+ on Big endian machines if -paranoia has been specified
+
+- fix several CDDB query bugs
+- support CDDBP protocol 5
+
+- customizable CDDBP server and port settings.
+
+- Fixed a bug in the paranoia calling code that caused
+ cdda2wav to try to access one sector too far on the media
+ if in paranoia mode.
+
+- Allow again compilation on FreeBSD
+
+- bugfix for CD Extra, when copyright messages were present
+
+- patch from Kyle to make CD extra handling more robust
+
+- bugfix for wrong warning message 'no generation of info files'
+ due to incomplete length
+
+- new verbose suboptions. Strings will finally replace the
+ tedious binary masks. For script compatibility the special
+ form of -v255 will be recognized for some releases.
+ -vhelp will show the new strings.
+- reworked the toc display code to make it more orthogonal.
+
+- changed option 'speed-select' to 'speed' for better interoperability
+
+- Temporary added -v<number> for compatibility with old GUI programs.
+ Note: -v<number> is outdated and will be removed soon.
+
+- Implement a temporary compatibility bug for the -v option.
+
+- Support for libscg help system
+
+- Man page fixed
+
+- Fix for an uninitialized variable
+
+- New exit codes for xcdroast
+
+- Fix for a CDDB bug: need to use lead out start for play time
+
+- Fix for a CDDB bug: Allow whitepsace in Genre
+
+- Fix for a CDDB bug: need to count data tracks too
+
+/*--------------------------------------------------------------------------*/
+
+Readcd:
+
+- better error recovery with -noerror
+
+- error handling increased
+
+- Handle signals and other aborts by restoring old drive state
+
+- Set PF bit with mode select.
+
+- New option -quiet to suppress primary SCSI error messages
+ in read CD error handling
+ This are the messages that are printed before entering the
+ retry mode.
+
+- Secondary SCSI error messages are now suppressed by default,
+ they may be turned on again with -verbose
+ This are the messages that are printed in -noerror
+ retry mode.
+
+- Better handling of C2 scans on unreadable data disks.
+
+- use comerrno() instead of comerr() if the drive is not ready
+ as errno is not valid after that test.
+
+- Enhanced output for C2 error scan.
+
+- Now use /etc/default/cdrecord as documented in the man page.
+
+- Better behavior with extreme badly readable media.
+
+- List number of completely unreadable sectors in addition to
+ the C2 error count.
+
+- Man page updated to contain all options
+
+- New option speed= to allow reading at slower speed and avoid read error
+ caused by vibrations of the media.
+
+- added new option -overhead to meter SCSI command execution overhead.
+
+/*--------------------------------------------------------------------------*/
+
+Scgcheck:
+
+- Fixed Makefile so scgcheck now compiles on FreeBSD
+
+/*--------------------------------------------------------------------------*/
+
+Mkisofs (By Jörg Schilling and James Pearson j.pearson@ge.ucl.ac.uk):
+
+- Man page updated and corrected.
+
+- Try to avoid the C-compiler warnings for getopt.c that are caused
+ by the non-confirming way of hacking used by FSF people
+
+- isoinfo now corectly displays file with filesize > 1 GB
+
+- isoinfo now implements a new option -s that displays the size
+ of the files in multiples of the sector size (2048 Bytes)
+
+- libhfs_iso reworked to use timedefs.h from schily portability support.
+
+- Better error messages for ISO and Rock Ridge directory sort problems
+
+- Preserves HFS file dates for AppleDouble, AppleSingle and NetaTalk files
+
+- Fixed a problem from an uninitialized variable in desktop.c
+ that caused random effects in Apple CD's
+
+- better documentation for README.sort/README.hide from James Pearson
+
+- Fixed a bug in sort code that caused the compare function to behave
+ symmetric when called c(a,b) vs. c(b,a)
+
+- First UDF support via -udf option - thanks to Ben Rudiak-Gould.
+
+ Note that the UDF support is not what you might indend. It is currently
+ wired to the Joliet tree which is a bad idea. It also does not yet
+ support Symbolic Links, user ID's and similar.
+
+- Write messages with more correct size names for the floppy eltorito
+ boot images
+
+- Added a missing prototype in getopt.c
+
+- isodump.c isoinfo.c isovfy.c:
+ Correctly handle symlinks
+ use offsetof(struct iso_directory_record, name[0]) instead of
+ sizeof(struct iso_directory_record) - sizeof(idr->name)
+
+- Fixed a check in the Apple HFS code that used strcmp for
+ data that could contain null bytes.
+
+- Introduced many casts to enhance portability.
+ This was needed for GNU fnmatch.c and the HFS support lib libhfs_iso
+
+- Use Protoyped function definitions for hash.c to allow old UNIX variants
+ where sizeof(dev_t) is < sizeof(int)
+
+- Fixed a check in the Apple HFS code that used strcmp for
+ data that could contain null bytes.
+
+- Introduced many casts to enhance portability.
+ This was needed for GNU fnmatch.c and the HFS support lib libhfs_iso
+
+- Use Protoyped function definitions for hash.c to allow old UNIX variants
+ where sizeof(dev_t) is < sizeof(int)
+
+- Support generic boot code if session does not start at sector 0.
+
+- Fixed a minor bug with HFS labels & multi-session
+ Thanks to James Pearson
+
+- Only print a short Usage if mkisofs detected a usage error.
+
+- -z option now working to create CDs in a format with Linux proprietary
+ Rock Ridge extensions for transparent compression.
+
+ This is a patch from H.P. Anvin. It makes only sense with Linux-2.4.14
+ or later.
+
+- New option -debug
+
+- Correctly use stat()/lstat() with graft points
+
+- Fixed a bug with escape character handling in graft point handling.
+
+- Make the graft point a directory if the file it should point to
+ is a directory.
+
+- Correctly handle non-canonical filenames with graft points.
+
+ .////././///test=OBJ/sparc-sunos5-cc/ will now work correctly
+ and not result in a corrupted ISO-Filesystem.
+
+- Canonicalize graft points so commands like:
+
+ mkisofs -graft-points /a/b/././//=some_dir
+ and
+ mkisofs -graft-points /a/b/../c/=some_dir
+
+ will not cause broken ISO images anymore.
+
+- Avoid unwanted information in debug information on disk.
+
+- Allow the -sort option to work with the Eltorito Boot Catalogue
+
+- Allow '-' to be part of the ISO-9660 filename if -no-iso-translate
+ has been specified.
+ Thanks for this hint from Georgy Salnikov (sge@nmr.nioch.nsc.ru)
+ from Novosibirsk, Russia.
+
+- Try to avoid an integer overflow with the -C option and DVDs
+
+- Try to fix (very old) rotten code in various files that did cause
+ integer overflows for files > 2 GB - 2kB.
+
+ Inconsistent use of (always diferent) hand crufted code using
+ 2048, 2047, ... instead of SECTOR_SIZE, ISO_ROUND_UP(), ...
+
+ Note that this is not only of interest for DVDs as mkisofs could
+ believe that > 2 GB of data would fit on a CD.
+
+- New code to print file type names.
+
+- Some more changes to reduce the probability of integer overflows
+ in size computations.
+
+- Fixed a bug in the code that removes sensitive information from
+ the command line.
+
+- Add text strings with descritpive text to the output_fragment structures
+
+- verbose > 1 (use -v) writes debug info for output fragments.
+ This uses the new strings introduced with the last version.
+
+- isoinfo now uses getargs() and includes -version and -help
+ options.
+
+- isoinfo now is able to find out that Joliet information is
+ present if the disk contains illegal Joliet UNICODE escape code.
+ This seem to happen with disks written with Adaptecs programs.
+
+- isoinfo has new option -debug that prints more information
+ from the Primary volume descriptor.
+
+- Support for Apple HFS on Mac OS X Thanks to James Pearson.
+
+- Support for more then 65535 directories as only the parent entries
+ need to fit into the path tables.
+
+- Full DVD-Video support thanks to Olaf Beck - olaf_sc@yahoo.com
+
+- Avoid a C-compler warning caused by mkisofs.h
+
+- Fixed a bug in the DEBUG code from the DVD-Video enhancements
+
+- Allow symlink targets to be up to 1024 bytes
+
+- devdump/isodump/isovfy now use getallargs() and implement -help/-version
+
+- If UDF but no Joliet is used, UDF filenames may be 255 chars long.
+ Note that this is still hack.
+
+- From James: New option -joliet-long to allow 103 UNICODE characters with
+ Joliet. This is not Joliet compliant but several other programs
+ also create long Joliet names.
+
+- Fixed a minor C non-compliance in ifo_read.c
+
+- Allow symlink targets to be up to 1024 bytes
+
+- devdump/isodump/isovfy now use getallargs() and implement -help/-version
+
+- If UDF but no Joliet is used, UDF filenames may be 255 chars long.
+ Note that this is still hack.
+
+- From James: New option -joliet-long to allow 103 UNICODE characters with
+ Joliet. This is not Joliet compliant but several other programs
+ also create long Joliet names.
+
+- Correct a minor problem with K&R compilers for the programs
+ in mkisofs/diag/
+
+- Make fire PATH_MAX is defined in isoinfo.c too.
+
+- Make sure UDF directory permissions include 'execute permission'.
+
+- A patch from James that make mkisofs able to create a HFS volume < 4 GB.
+
+- Support for MS code page 1250 (Slavic/Central Europe) added.
+ Thanks to Petr Balas petr@balas.cz
+
+- A patch from James that make mkisofs able to create a HFS volume > 4 GB.
+
+- A new option -hfs-parms for better HFS support for HFS volumes > 4 GB
+ from James Pearson
+
+- Fixed several typos in the man page and the source
+
+- Belly based speudo fix for a problem with mkisofs -f (follow)
+ and symlinks to directories where directory content was
+ missing with the old version. The new version is most likely better
+ and we (James and I) could not find problems with the new version.
+
+- Make "HFS_TYPE" and "HFS_CREATOR" work as documented in ~/.mkisofsrc
+
+- Fixed a small typo in isofinfo.c
+
+- As mkisofs -f has bugs that cannot be fixed for this release, I decided
+ to mark the '-f' Option as non-functional. People who use it will be warned
+ that it does not work correctly.
+
+- Sort VIDEO_TS.IFO to be the first entry in VIDEO_TS/ woth -dvd-video
+
+- Disable Joliet if -dvd-video has been specified. This needs to be done to
+ allow the change above.
+
+- Correctly handle files > 1GB on the UDF filesystem.
+ Thanks to Wei DING <ding@memory-tech.co.jp> for the patch.
+
+- Add support for Code Page 1251
+
+- Koi8-u added to libunls
+
+- Fix a nasty bug in the UDF handling part that caused mkisofs to
+ create completely broken filesystem images if directories have been
+ nested deeper than 8 and -D has not been specified.
+
+- Include a new piece of code that causes mkisofs to abort with an
+ error message if it turns out that the block numbers estimated
+ during the sizing phase do not match the block numbers in the
+ write phase.
+
+- Enabled a piece of code that has been introduced 2 years ago and that
+ causes mkisofs to prevent deep directory relocation if Rock Ridge
+ has not been spacified.
+
+ If you like mkisofs not to omit the part of the directory tree that
+ is nested too deep, specify either -R, -r or -D.
+
+
+TODO:
+ - read Joliet filenames with multi-session if no TRANS.TBL
+ or RR is present. I am looking for a volouteer for this task:
+ Peter Berendi <berendi2@webdesign.hu> announced that he likes
+ to be the volounteer for this task.
+
+ Unfortunately, I did no hear again from him, but I got
+ a proposal from
+ "Krisztian Gede" <nameless@mail.datanet.hu>
+ who also likes to do the job.
+
+ Note that this can never be 100% correct as there is no relation
+ between the names on the master (UNIX) filesystem, the ISO-9660
+ names and the Joliet names. Only the Rock Ridge names are
+ untranslated with respect to the original files on the
+ master (UNIX) filesystem.
+
+ - implement Yellow book compliant XA extended dir attributes
+
+ - add libecc/edc for CDI and similar.
+ This may not be needed if we ise VCDimager and recent
+ cdrecord versions.
+
+
+CYGWIN NT-4.0 NOTES:
+
+To compile on Cygwin32, get Cygwin and install it.
+For more information read README.win32
+
+The files are located on:
+
+ftp://ftp.berlios.de/pub/cdrecord/alpha ...
+
+NOTE: These tar archives are 100% ansi compatible. Solaris 2.x tar and GNU
+ tar may get some minor trouble.
+
+WARNING: Do not use 'mc' to extract the tar file!
+ All mc versions before 4.0.14 cannot extract symbolic links correctly.
+
+WARNING: Do not use 'winzip' to extract the tar file!
+ Winzip cannot extract symbolic links correctly.
+
+Joerg
diff --git a/doc/ANNOUNCEMENTs/AN-2.01 b/doc/ANNOUNCEMENTs/AN-2.01
new file mode 100644
index 0000000..3268bbb
--- /dev/null
+++ b/doc/ANNOUNCEMENTs/AN-2.01
@@ -0,0 +1,1496 @@
+Please have a look at the German open Source Center BerliOS at www.berlios.de
+BerliOS will continue to support free hosting of cryptography projects even
+when US laws change and don't allow to host cryptography projects in the USA.
+Also look at sourcewell.berlios.de, the first Open Source announcement service
+that itself is implemented as Open Source project.
+
+***************** Important news ****************************
+
+For the 'Slottable Source Plugin Module' SSPM Features read README.SSPM
+
+***************** Please Test *********************************
+
+NEW features of cdrtools-2.01:
+
+
+All:
+
+- Support for the ELF format in BSDi 4.x
+
+- Allow floating point printing on OS/2. This has been possible
+ since 11/2001 but OS/2 has been forgotten.
+
+- Correct OS/2 ranlib handling
+
+- New architecture 9000-831-hp
+
+- Include +DAportable in HP-UX cc options
+
+- README.hpux enhanced to include hints on how to compile 64 bit
+ binaries.
+
+- Support for NetBSD on PPC (macppc-netbsd-cc)
+
+- portable getdomainname() replacement now supports to get the domainname
+ from /etc/resolv.conf. This allows usage even on OS/2
+
+- Typo in DEFAULTS files fixed
+
+- New generic target for symlinks
+
+- New file rename.c for portability part of libschily
+
+- Better Next STep support:
+
+ - Some workarounds for broken unistd.h
+
+ - -lkvm removed from Next Step config.
+
+ - waitdefs.h fixed for very old BSD based systems (~ 1980)
+ like Next STep
+
+ - strdup() moved into portability part of libschily
+
+ - fixed typo in fctldefs.h R_RDONLY -> O_RDONLY
+
+ - New file ttydefs.h includes portability phrases from ved and bsh.
+
+ - Added an autoconf test for buggy termios.h in Next Step.
+ Next STep provides fully functional termios.h but tcgetattt(), ...
+ is missing in libc.
+
+ - Test for clock_t changed to deal with a bug in Next STep.
+ Next Step illegally needs sys/time.h for clock_t
+
+
+- Make recently introduced symlink install use relative symlinks instead
+ of absolute symlinks.
+
+- Change autoconf/statdefs.h to support nanosecond support for SCO
+ UnixWare and FreeBSD
+
+- Call conf/mkdep-sco.sh via sh to be independent from 'x' bit.
+
+- libschily/rename.c fixed for SCO Openserver fo avoid warning
+ for redefinition of MAXPATHNAME
+
+- libschily/usleep.c fixed to avoid SCO Openserver warning about
+ non matchin prototype in system include files
+
+- Better Portability for SCO UnixWare
+
+ - New platforms i486, i586, Pentium III, Pentium Pro
+
+ - Let strdefs.h also include strings.h for strcasecmp()
+
+ - Support for missing struct sockaddr_storage
+
+ - Support for broken wait3() (returns wrong timings)
+
+ - Changed broken portability Prototype support in libfile
+ to use 'makefiles / prototype.h' based system
+
+ - Changed fileopen() and filereopen() to avoid fdopen()
+ provlems (does not accept mode string that does not
+ match fd flags)
+
+- Catch the case where somebody tries to compile on Solaris with
+ /usr/ucb in PATH before /opt/SUNWspro/bin and when calling 'cc'
+ results in:
+ /usr/ucb/cc: language optional software package not installed
+
+- Trying to make the source get accepted by 'cstyle'.
+
+- Changes in the general topic 'Stack Scanning' and the software signal
+ system handlecond()/raisecond() that make the software signal system
+ now usable on all platforms.
+
+- Trying to support DOS with the DJGPP compilation environment
+ Thanks to Alex Kopylov <reanimatolog@yandex.ru> for the first version
+ of the port and further helping.
+
+ Note that in order to compile cdrtools on DOS/DJGPP you need smake-1.2a20 or newer.
+ GNU make does not seem to work for a DOS compilation.
+
+- New File README.msdos
+
+- New RULES for DOS/DJGPP
+
+- Make some vars in align_test.c static because Mac OS X creates unneeded
+ name space pollution.
+
+- DJGPP has no SIGBUS, use #ifdef in avoffset.c and align_test.c
+
+- Several changes with casting Null pointer constants to Null Pointers
+ if they are used as parameters in var arg lists (see below).
+
+- New gethostname() fallback emulation using uname(2).
+
+- Better rename(2) emulation for Platforms that don't have rename().
+
+- niread()/niwrite()/nixread()/nixwrite() in libschily now resets errno
+ to the old value in case EINTR did occur.
+
+- README.msdos has been corrected according to a hint from Alex Kopylov
+
+- New macros to platform independently set up integers in little endian
+ format. This is needed to e.g. write PC disk labels from big endian
+ platforms.
+
+- Rules extended to support volume management libs
+
+- The install-sh script not takes care about UNIX variants like SCO UnixWare
+ and SCO OpenServer that allow to give away files via chown.
+
+ If this works and /tmp has the sticky bit set, the root test was unable
+ to remove the test files later. For this reason, now a subdirectory
+ in /tmp is used.
+
+
+- Support for the special .PHONY: target ---> needs smake-1.2a21 or newer
+
+ This helps to deal with files like INSTALL operating systems
+ like Win32 and Mac OS that don't honor file name case and prevents
+ the file named INSTALL to get into trouble with 'make install'
+
+
+- 'make install' now works on operating systems that require a '.exe'
+ suffix for executable binaries
+
+- Updated the file README.ATAPI
+
+ Updated information for Linux, SCO-OpenServer, SCO-UnixWare, Win32
+ and DOS
+
+- mconfig.h now supports make COPTX=-DNO_FORK & COPTX=-DNO_VFORK
+
+- snprintf() from libschily now correctly follows POSIX.1-2001 for maxlength == 0
+
+- Workaround for a bug in the C-compiler from SCO-OpenServer. It
+ is not very probable that this causes problems with cdrecord. The
+ function getfp() did not return the correct Frame Pointer when called
+ as first function in another function as the compiler sdoes set up the
+ new stack frame after getfp() has been called.
+
+- New function filemopen(char *name, char *omode, mode_t mode) with additional
+ mode_t parameter.
+
+- update recent getargs() version from repository. This has been forgotten.
+
+- Add a workaround for a SCO OpenServer C-compiler bug.
+ The bug causes the first function in a function to be called
+ before the new stack frame has been established and did cause
+ scanning the stack frame to fail.
+
+- Make snprintf() POSIX compliant.
+
+- Many typos in the READMEs fixed, thanks to a hint from Stefano Allrath
+
+- New global method to handle PATH environment delimiters (":" on
+ POSIX systems and ";" on DOS).
+
+- New README.msdos reflecting new features of smake-1.2a23 on DOS/DJGPP
+
+- Some minor enhancements to the makefilesystem
+
+- Some minor changes for better compilation in SGI IRIX
+
+- Trying to start adding support for Win32/Mingw32
+
+- New global #define NEED_O_BINARY to make using setmode() easier
+
+- New autoconf test for struct stat.st_fstype
+
+- New autoconf test for fnmatch()
+
+- New autoconf test for blksize_t/blkcnt_t
+
+- libscgily/stdio/io.h renamed to schilyio.h to avoid conflicts with
+ DOS.
+
+- Added a Note to README.linux:
+
+ NOTE for all Linux 2.5.x versions and all Linux versions before 2.6.8:
+
+ Linux did ship with defective kernel include files starting
+ with 2.5.x. These defective kernel include files did prevent
+ compilation. If you have problems compiling software and see
+ error messages related to include/scsi/scsi.h & include/scsi/sg.h
+ either upgrade to Linux-2.6.8 or newer or remove /usr/src/linux
+
+- Support added to the makefile system that allows compilation on
+ AMD x86_64 using non automake aware make programs like GNU make.
+ Note that smake ftp://ftp.berlios.de/pub/smake/alpha/ is able to compile
+ things even on unknown platforms as it includes auto make features.
+
+
+Libparanoia (Ported by Jörg Schilling, originated by Monty xiphmont@mit.edu):
+
+- Included a bug fix from the libparanoia Author.
+ Correctly allocate some arrays. Note: on 32 Bit machines, this patch does
+ not result in a different binary but the code is now really correct.
+
+- New indentation is better conforming to 'cstyle'
+
+- Fixed a bug in libparanoia that prevented the statistics to show up
+ the number of 'skips' (the number of exhausted read retries) when
+ SKIP verification has been turned off.
+
+- modified to avoid GCCs shadowed variable warnings.
+
+- Try to use page aligned transfer buffers if possible.
+
+- Avoid buffer size problems wit non page aligned transfers on FreeBSD.
+
+- Avoid freeing pointers that are not from malloc() by copying the data
+ to a second allocated chunk of free()able space. This has been a bug
+ introduced while trying to handle buffer size problems with non page aligned
+ transfers on FreeBSD.
+
+
+Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de):
+
+
+Libscg:
+
+- Reordered and restructured scsi-remote.c code to allow compilation on OS/2
+ and hopefully other OS like BeOS
+
+- First attempt to support QNX.
+ Note that the sourcecode comes from QNX and it looks as if it
+ is buggy for commands that cause SCSI commands that result in
+ a Check Condition status. From looking at the source, the stack
+ gets overwritten in this case.
+
+- SCSI adaptation layer for SCO UnixWare rewritten to support
+ multiple opens and to better follow the libscg interface standard.
+
+- Second attempt to support QNX.
+ Make it compile
+
+- Check kernel level error return codes on SCO-UnixWare
+
+- Starting to support SCSI reset on SCO-UnixWare
+
+- Extensions to libscg related include files to support DVD+RW formatting
+
+- Make libscg work on SCO UnixWare if an application like cdrecord
+ has been installed suid root.
+
+ Before, the called administration programs did not work if euid!=uid
+
+- Fixed a problem with possible garbage in the SCSI error string.
+ Thanks to Stefano Di Paola <stefano.dipaola1@tin.it> for reporting.
+
+- Fixed another printf buffer vulnerability in scsi-remote.c
+
+- New version of scsi-amigaos.c from Thomas Langer
+
+- Added a work around for a Solaris 9 x86 bug:
+ DKIOCINFO returns a max DMA size of 256 kB but only 68 kB will work.
+ Check max DMA size for a IDE disk to get a correct value....
+
+ For more information read the updated file README.solaris and the
+ new files README.solaris-x86-ata-DMA and README.solaris-x86-ATAPI-DMA
+
+- Changed scsi-os2.c to allow 'cdrecord -scanbus' to find targets with
+ target ids > 7.
+
+- Librscg now uses correct casting to a Null Pointer for execlp() as
+ NULL is a Null Pointer Constant but no Null Pointer. This could
+ make problems with some 64 bit architectures.
+
+- New driver scsi-dos.c acting as 16 bit DOS ASPI interface
+ Thanks to Alex Kopylov <reanimatolog@yandex.ru> for the first version
+ of the driver.
+
+ Check his Web Page: http://bootcd.narod.ru/index_e.htm
+ it contains precompiled DOS binaries.
+
+- The driver scsi-dos.c has already been verified with 'scgcheck'.
+
+- scsi-os2.c and scsi-wnt.c now correctly return 0 from scg_send() if
+ the target is not valid.
+
+- scsi-wnt.c does now support multiple SCSI opens.
+
+- scsi-wnt.c does now correctly return SCG_NO_ERROR in case a SCSI command
+ returned CHECK CONDITION.
+
+- scg__open() now prints a warning if it has not compiled with the results
+ from a certified autoconf environment.
+
+- Introduced a fix to avoid the need for a #define ident prod_ident
+ for SCSI Inquiry data. This #define did cause problems with the
+ latest Sun Studio 8, C compilers
+
+- First attempt to support running cdrecord while the volume management is
+ active.
+
+- Increased version number to 0.8
+
+- First attempt to work around the problems for suid programs introduced by
+ Sun with Solaris 9. Programs that like to issue a USCSI ioctl() need to be
+ root or get EPERM. Cdrecord did does up root privilleges eraly to avoid
+ security problems.
+
+ libscg now selectively runs the USCSI ioctl() as root if the program is installed
+ suid root.
+
+- Fixed a bug in scsi-mac-iokit.c in scgo_havebus() that caused pxupgrade not
+ to work on MacOS X.
+
+- First attempt to support the SPTI Ioctl interface on Windows NT.
+ see also http://www.ste-home.de/cdrtools-spti/
+ Thanks to Richard Stemmer, Jay A. Key and thomas podkanski
+
+ This allows to use cdrtools on NT without the need to install ASPI in case
+ you are administrator when yu run a program.
+
+ Please note that the use of SPTI is default. If you like to force using
+ ASPI, use dev=ASPI:b,t,l or dev=ASPI (in the -scanbus case).
+ If you like to force STPI, use dev=SPTI:b,t,l or dev=SPTI.
+
+ Currently, the interface does not yet fully matches the scg interface standard.
+
+- Try to support the half hearted and badly designed /dev/hd* interface
+ from Linux-2.6 in a more usable way.
+
+ The only reason for adding this kind of support is that the Linux kernel
+ hackers reject to fix the known DMA bugs in the already existing SCSI
+ transport interfaces in the Linux kernel. Using /dev/hd* is unfortunately
+ the only way to get DMA with sector size being 2352, 2448 or similar.
+
+ Use cdrecord -scanbus dev=ATA and
+ cdrecord dev=ATA:1,0,0
+
+ Note: The Bus mapping function inside the kernel for this interface is
+ a dummy. For this reason, we need to do the mapping ourselves.
+ Busnumber is ("/dev/hd*"[7] - 'a') / 2
+ Target is ("/dev/hd*"[7] - 'a') % 2
+
+ Also note that creating this interface in the Linux kernel was a waste of
+ time. It did need a lot of effort to be created. Instead of first adding
+ a new interface with a new broken DMA implementation and later fixing
+ the DMA bugs, it would have been better to just fix the DMA bugs
+ in ide-scsi.c
+
+ Adding SCSI transport to something like /dev/hd* on an OS that includes
+ a generic SCSI transport driver is disregarding SCSI protocol layering.
+ A clean way to implement ATAPI on Linux would be to rather introduce a
+ SCSI hostadaptor driver that sends the SCSI commands via the
+ ATA hardware.
+
+ Linux users should think about buying a CD writer for Linus Torvalds.
+ Maybe this could help to get better SCSI support in the Linux. Currently
+ Linus doesn't know anything about the CD-writing problems on Linux and
+ his contributions to CD-writing related issues in discussions are just
+ guesses that are not related to own experiences and understanding for
+ the matter :-(
+
+ It seems that the Linux way of dealing with bugs is to implement a new
+ incompatible interface instead of fixing the known bugs from
+ old interfaces :-(
+
+- Allow cdrecord -scanbus dev=ASPI and cdrecord -scanbus dev=SPTI to work
+ on win32.
+
+- Correct a bug in the Win32 version analyze function that is needed to
+ use the correct SPTI interface. Unfortunately, the interface did
+ change with a NT-4.0 service pack. It is unclear whether the currently
+ used interface type is correct for all possible NT-4.0 variants.
+
+- For Win32, default to STPI only if on NT-5.x as there is a bug in some
+ UDMA implementations that causes blue screens.
+
+- The Mac OS X SCSI low level transport now roughly meets the interface standard.
+ For this reason, the file scsi-mac-iokit.c now is marked with Author "schily"
+
+- Indented according to the cstyle standard.
+
+- For win32, dev=ASPI:1,0 and dev=SPTI:1,0 work again
+
+- Trying to add a workaround for the Linux problem with USB where the
+ kernel issues a request sense even when there was only a DMA underrun
+ and the drive replies as expected with no-sense. Our problem in this
+ case is that we needed to ad another workaround because sometimes
+ Linux clears the status byte and we did assume a CHECK CONDITION in case
+ sense[0] was != 0.
+
+- Enhanced max # of SCSI busses to 256 for the Linux sg driver.
+ This was needed because of the (compared to Solaris) suboptimal
+ way of dealing with instance numbers on Linuux.
+
+ While Solaris keeps a data base with instance numbers, disconnecting and
+ reconnecting a USB drive results in the USB device getting the same
+ SCSI address as before.
+
+ As Linux does not have such a data base, disconnecting/reconnecting
+ a USB device has the unfortunate side effect of assigning a new and
+ different SCSI address with every USB connect. This also creates problems
+ when software likes to manage access rights to devices for non-root
+ users.
+
+- Win32 SPTI interface now also supports controllers with more than one
+ SCSI Bus. Thanks to Richard Stemmer
+
+- Fixed a bug in the Win32 SPTI/ASPI interface introduced with 2.01a28
+ that caused core dumps because it did try to access data behind the end of the
+ sense data array in the ASPI cmd structure.
+
+- Scan /dev/hda../dev/hdz instead of /dev/hda../dev/hdt for dev=ATAPI on Linux.
+
+- Trying to write a better warning message for the dev=ATAPI: interface
+ on Linux (the related kernel interface is unmaintained and does
+ not support DMA at all).
+
+- Fixed a bug in Win-NT Version string handling in scsi-wnt.c
+ Thanks to Alex Kopylov <reanimatolog@yandex.ru>
+ This caused that libscg did not properly recognize NT-4.x with service pack 4
+ to be equivalent to NT-5.0 (Win2k).
+
+- Trying to avoid using the WinNT-SPTI interface for NT-4.0
+
+- Fixed a security bug in scsi-remote.c (the RSCSI client).
+
+
+Rscsi:
+
+- Support for IPv6
+
+- Workaround for missing struct sockaddr_storage on SCO UnixWare
+
+- Security update. Forbid to write arbitrary debug files, only allow
+ a debug file name that has been configured in /etc/rscsi.conf.
+ Writing arbitrary files with a siud root program could be used to become
+ root on a local machine if you are already logged into that local machine.
+
+- README.rscsi typo's corrected.
+
+
+Cdrecord:
+
+- Use correct set_mode_params() return value in deflt_writemodes_mmc()
+
+- Correct a debug printing to go to stderr instead of stdout.
+
+- Workaround for broken Firmware for LG (Lucky Goldstar) drives.
+ These drives have been unable to write Audio in TAO mode because
+ they have an illegal audio pause length default.
+
+ Thanks to a hint from: Mark Vytlacil <markvyt@comcast.net>
+
+- Man page now correctly describes the data formats used with -xa1 & -xa2
+
+- Use Prototypes for functions with enum parameter in fifo.c to avoid
+ warnings on SCO UnixWare
+
+- Trying to catch SIGHUP to avoid hung recorders after people
+ close X windows by accident (This in most cases happens because
+ some newer GUIs try try copy bad ideas from Microsoft like the 'x'
+ button on the top bar in the window.
+
+- Trying to print hints if the SCSI error core looks like a buffer
+ underrun occurred.
+
+- First (still mostly empty) driver for the Matsushita CW-7501
+
+- First TAO writing support for the Matsushita CW-7501
+
+- New option -setdropts to allow cdrecord to set driver specific
+ parameters and exit.
+
+- Added support to disable/enable the Plextor PowerRec feature.
+ Use driveropts=forcespeed
+ Be very careful as this will cause in badly readable disks.
+ The only senseful reason to use this feature is to run tests in
+ -dummy mode to check whether the system would be able to record
+ fast enough and to later buy High-Speed Media.
+ Note that documentation for the related SCSI command is not
+ oficially available and thus the information has been "guessed".
+
+- Added support to enable/disable the Plextor SpeedRead feature.
+ Use driveropts=speedread
+ to allow the drive to read CDs faster than 40x.
+ Be very careful as this may cause the media to break in the drive
+ while reading, resulting in a destroyed media and drive!
+ Note that documentation for the related SCSI command is not
+ oficially available and thus the information has been "guessed".
+
+- Added support to enable/disable the Plextor SingleSession feature.
+ Use driveropts=singlesession
+ This allows to read defective (illegal) media with extremely
+ non-standard additional TOC entries. You need to enable Single Session
+ mode before you insert the defective disk!
+ Note that documentation for the related SCSI command is not
+ oficially available and thus the information has been "guessed".
+
+- Added support to enable/disable the Plextor Hide CD-R feature.
+ Use driveropts=hidecdr
+ This allows to make CD-Rs look like CD-ROMs and applications believe
+ that the media in the drive is not a CD-R.
+ Note that documentation for the related SCSI command is not
+ oficially available and thus the information has been "guessed".
+
+- Added reading out "real" Burn-Proof counter for Plextor drives.
+ Note that documentation for the related SCSI command is not
+ oficially available and thus the information has been "guessed".
+
+- Try to do a more correct job when doing Buffer Underrun estimation
+ counts.
+
+- Make the explicit Buffer underrun error checking work for
+ Plextor drives too.
+
+- Fixed the command line parser for driveropts= parameters.
+ Before the fix, driveropts=noburnfree,hidecdr would result
+ in assuming: driveropts=noburnfree,nohidecdr
+
+- Now also supporting SAO/DAO write mode for the CW-7501
+
+- New option -lock (similar to -load) that loads the media but leaves
+ the drive in locked status.
+
+- New driver interface to allow SAO recording for the CW-7501
+ Simplified: "dummy" and "multi" Parameter information has been
+ moved into the track structure.
+
+- Removed the internal implication that -packet is a TAO write mode.
+ Please test! It may be that this did introduce bugs.
+
+- Try to avoid ANSI C arithmetic conformance change warnings from
+ SCO C-compiler by introducing proper casting.
+
+- Driver interface restructured to support aborting SAO recording
+ with the Sony CDU-948
+
+- "Driver flags" printing corrected
+
+- Better behavior with CADDY drives and -load option
+
+- Fixed a bug that caused cdrecord not to abort if Tracks with unknown
+ length are present in RAW write mode.
+
+- Print extended Power Rec Speed information for Plextor drives.
+
+- CUE Sheet handling generalized to allow to implement SAO writing
+ for more drives.
+
+- Start supporting the Sony CDU-948 in SAO mode. Currently not yet working:
+
+ - Multi-session
+
+ - MCN/ISRC
+
+- Grace time handling restructured. The grate time waiting is now done
+ even before the forced blanking and it is made sure that the waiting
+ is done only once.
+
+- Several changes in the open source part are visible as a result of the
+ new DVD+RW / DVD+R support.
+
+- cdrecord-ProDVD now includes first DVD+RW and DVD+R support.
+ Check ftp://ftp.berlios.de/pub/cdrecord/ProDVD/
+ on Thursday 24.4.2002 for the first binaries
+
+- Do not try to lower the possible number of open files in raise_fdlim()
+ anymore.
+
+- Check return code of driver's init function.
+
+- Better error messages from main write loop.
+
+- Write a hint that a user may have used a "preformatted" CD-RW if
+ read_next_writable_address fails for the "invisible" track
+ and tell him to run cdrecord blank=....
+
+- Fixed a bug that caused cdrecord to prevent a 3rd session on a
+ multi session disk. This bug was introduced with the driver
+ restructuring a few releases before.
+
+- Better driver text strings for the driver IDs in the CD MMC drivers.
+
+- Move Plextor PowerRec speed info completely to the statistics _past_
+ the recording activities.
+
+- Allow more nonstandard Cue sheets to be accepted by the Sony CDU-924
+ and CDU-948.
+
+- Implement MMC-3 DVD+ Drive/Media recognition to avoid that cdrecord starts
+ to treat a DVD+ as a CD-R because the DVD+ drive identifies as CD-R/RW + DVD-ROM
+ with "no DVD media installed" from a MMC-2 viewpoint.
+
+- Added a note to the cdrecord man page how to use mkisofs
+ to allow cdrecord to knoe about track sizes in SAO or RAW mode.
+
+- Fixed a multi session bug that has been introduced with the DVD+R/RW
+ restructuring with cdrecord-2.01a11. This bug caused cdrecord to be unable
+ to start a track from a sector number != 0 in TAO mode.
+
+- Fixed a problem with cdrecord -msinfo introduced with the the DVD+R/RW
+ restructuring with cdrecord-2.01a11. The unwanted verbose printing has been
+ removed with this version.
+
+- New option -xa to create CD-ROM XA mode 2 form 1 sectors with 2048 bytes
+ of user data
+
+- New option -xamix to create mixed CD-ROM XA mode 2 form 1/2 sectors
+ with 2332 bytes of user supplied data.
+
+- Restructured sector types to make them usable:
+
+ -mode2 CD-ROM data mode 2 - 2336 bytes
+ -xa CD-ROM XA mode 2 form 1 - 2048 bytes
+ -xa1 CD-ROM XA mode 2 form 1 - 2056 bytes
+ -xa2 CD-ROM XA mode 2 form 2 - 2324 bytes
+ -xamix CD-ROM XA mode 2 form 1/2 - 2332 bytes
+
+ To write conforming CD-ROM XA multisession disks use cdrecord -multi -xa1
+ together with mkisofs -XA -sectype xa1
+
+- -cdi is now implemented how it should be: as a flat to change
+ the TOC type of a CD and not as a sector mode.
+
+- Track parsing completely restructured to allow new features.
+ One of the features is to write audio CDs from a pipe,
+ other features will follow.
+
+- Cdrecord now resets euid to the uid of the caller (if called suid root)
+ before it opens data files.
+
+- Fixed a bug that caused cdrecord to insert two grace wait periods
+ if a disk was blanked and rewritten in one call.
+
+- Allow cdrecord to copy audio CDs from a pipe from cdda2wav
+ without using an intermediate file on disk.
+
+ To copy an audio CD from a pipe (without intermediate
+ files), first run
+
+ cdda2wav dev=1,0 -vall cddb=0 -info-only
+
+ and then run
+
+ cdda2wav dev=1,0 -no-infofile -B -Oraw - | \
+ cdrecord dev=2,0 -v -dao -audio -useinfo -text *.inf
+
+ This will get all information (including track size info)
+ from the *.inf files and then read the audio data from
+ stdin.
+
+ If you like to write from stdin, make sure that cdrecord
+ is called with a large enough fifo size (e.g. fs=128m),
+ reduce the write speed to a value below the read speed of
+ the source drive (e.g. speed=12), and switch the burn-
+ free option for the recording drive on by adding
+ driveropts=burnfree.
+
+- New option -abort allows you to send a write abort sequence to a drive.
+ This may help if other software did leave the drive in an unusable
+ condition.
+
+- New 'xio' module allows to open a file virtually more than once to
+ support CDRWIN CUE sheets in cdrecord.
+
+- Run Plextor Speedinfo SCSI command in silent mode as old Plextor drives
+ do not support this command.
+
+- Workaround for a Plextor (Premium only???) firmware bug that may result
+ in a B0 pointer A5:A5:A5 instead of FF:FF:FF.
+
+ This made it impossible to blank a freshly written CD-RW witout reloading
+ the media. Now cdrecord does not check the disk size anymore if the number
+ of tracks to be written is 0.
+
+- First CDRWIN CUE sheet support.
+
+ Cdrecord currently supports what is in the CUE sheet description in
+ the CDRWIN documentation (with a few exceptions). Note that the
+ examples in the rest of the CDRWIN man page are mostly illegal
+ if you compare them against the CDRWIN CUE sheet syntax documentation.
+
+ These exceptions are currently in effect:
+
+ - Only one FILE Line per CUE sheet file (This is compliant to the
+ CUE shet format documentation although the examples show CUE
+ files with more than one FILE line). NOTE that the CUE syntax has
+ been ill defined so that it would not make sense to e.g. use
+ more than one FILE line for audio CDs.
+
+ - The AIFF File type is not implemented (because I have no documentation
+ for this audio file format).
+
+ - The MP3 File type is not yet implemented.
+
+ - The CDG data type keyword will not yet work
+
+ - The CDI data type keyword will not yet work
+
+ - Only a sector size of 2048 will work with MODE1
+
+ - Sectors with sector size 2336 will not yet work
+
+ - POSTGAP will not yet work.
+
+ Note that the CDRWIN CUE documentation is bad and it is unclear how
+ formless (non XA) MODE 2 sectors should be made.
+
+ CDI is not a sector/track property but a disk property.
+
+ The File type BINARY vs. MOTOROLA is unclear.
+
+ To use the cue sheet feature call:
+
+ cdrecord dev=.... -v -dao cuefile=xx.cue
+
+ The main reason for implementing CUE sheet support was to allow to
+ write VCD/SVCD with cdrecord. It has currently tested with the
+ test SVCD from ftp://ftp.vcdimager.org/pub/vcdimager/examples/test_svcd/
+
+ Cdrecord should allow to write audio type CUE sheet based CDs also.
+
+
+- Modified the notes close to the Copyright printing code in cdrecord.c
+ to make clear that this note is not a deviation from the GPL but just
+ a memorandum on how to understand the GPL.
+
+- Fixed a bug in file descriptor handling that caused cdrecord not
+ to continue at offset xxx in the file after a new track did start.
+
+- Added a forgotten feature in the CUE Sheet parser so it will now know that
+ WAVE files use swapped (intel) byte order.
+
+- Restructured the main program of cdrecord so that cdrecord overall
+ behaves similar to before when cue sheets are used.
+ e.g. cdrecord -eject cuefile=xxx did only eject the disk instead of
+ first writing and then ejecting.
+
+- Added some hints to the man page to make speed= handling clearer
+
+- Fixed some typos in the man page
+
+- Added the -format option to the man page
+
+- CD-Text handling reworked:
+
+ CD-Text from textfile= or from CUE CDTEXTFILE wins over CD-Text
+ from *.inf files and over CUE SONGRITER.
+
+- CD-Text from CUE file (either CDTEXTFILE or SONGRITER) now needs
+ -text in addition in order to be not ignored.
+
+- Fixed a bug in the recognition for cdda2wav | cdrecord *.inf
+ that caused a message
+ WARNING: Stdin is connected to a terminal.
+ if not writing from a pipe.
+
+- Small fix in auinfo.c to again allow compilation on K&R systems
+
+- Typo fixes for the cdrecord man page
+
+- The clone write code is now part of the GPL'd source
+ Note that this part of the code is now more than 2 years old but previously
+ has been excluded from the publically visible part of the source.
+
+ To understand how to use the clone mode read README.clone
+
+- New option ts= to set the SCSI transfer buffer size
+
+- Man page corrected to correctly mention current format for /etc/default/cdrecord
+
+- call setmode(fileno, O_BINARY) for DOS/DJGPP also
+
+- Better check if we use the FIFO to avoid core dumps with too small FIFO sizes.
+
+- Switch off FIFO of fifo size is < 2 * SCSI transferbuffer
+
+- Fixed a small bug in the man page (..sp instead of .sp). Thanks to Eric Raymond
+ for reporting!
+
+- Work around for a problem in the Plextor 708 firmware (at least 1.01..1.02)
+ that caused cdrecord to be unable to recognize that a DVD medium is present instead
+ of a CD medium.
+
+- Changed the GPL clarifications text in a way so Debian people still
+ agree with me that cdrecord is free software. The clarifications are
+ needed in order to tell people/companies (like Mr. Rosenkranzer,
+ RedHat & SuSE) who create broken branches from cdrecord that they are
+ not legally publishing their branches because they violate the
+ GPL § 2 Paragraph c) and GPL Preamble Section 6).
+
+ If would be better if the named persons/companies would rather stay
+ in contact to the Authors, discuss things and contribute to the
+ community instead of creating useless/broken changes and in case
+ of SuSE Linux even creating hacks that introduce security risks.
+
+ Note that now, RedHat Linux (enterprise server) or the SuSE Linux
+ are even more expensive than e.g. Solaris x86, see:
+
+ http://www.osnews.com/story.php?news_id=5416&page=5
+ Small Correction to this web page: Solaris x86 is free again for
+ personal use.
+
+- Extended the man page to make it more clear that all CD/DVD-writers
+ ever made use only SCSI commands.
+
+- Another change to the man page according to a hint from
+ Eric Raimond in order to get better compliance for troff -> "*ml"
+ converters.
+
+- Allow people who cannot provide an e-mail address or who
+ don't like to support their modifications to modify cdrecord
+
+- Some CUE sheet modifications in drv_mmc.c now made it into
+ the official SCCS history file.
+
+- Several fixes to avoid the need for a #define ident prod_ident
+ for SCSI Inquiry data. This #define did cause problems with the
+ latest Sun Studio 8, C compilers
+
+- Hack to work around a POSIX real time priotity design bug that
+ causes us to become root again on e.g. Linux in order to be able
+ to lower the priority of the FIFO background process.
+
+- Better documentation and EXAMPLE for -setdropts driveropts=
+ in the man page.
+
+- print a help message to direct the user to use -raw96r in case
+ the drive does not accept the cue sheet with -dao.
+
+- Mark all drives that cannot be accessed because the volume management is
+ running and no media is in the drive with '?' instead of '*', so they
+ may be distinct from non existing drives.
+
+ Read README.volmgt for more information
+
+- Now works again suid root on Solaris 9
+
+- Fixed a bug introduced in 2.01alpha by a source consolidation.
+ cdrecord -toc did not work anymore for CD-ROM readers
+
+- Updated README.audio
+
+- Make the CUE Sheet handling search for a file name from a FILE statement
+ also in the directory where the CUE sheet is found (in case there is no
+ slash (/) in the file name from 'FILE').
+
+- Avoid coredumps when cdrecord is called with -xd and there is no known
+ driver for the current drive.
+
+- New option -tao is now needed if you like to write in TAO mode.
+ Cdrecord now does no longer writes if no write mode has been specified.
+
+- New option -sao as alias for -dao. As the official name for the write mode
+ is SAO, -sao is more correct than -dao.
+
+- Fixes for minor typos in cdrecord.1
+
+- Fixed a bug with pad=xxx and pad sizes > 2 GB.
+
+- Trying to fix a bug introduced lately with the check for specified
+ write mode options. As a result, only TAO mode writing did work.
+
+- Better man page & online help for the ts= option.
+
+- Fixed a typo in the man page.
+
+- Better error messages when audio size is < 300 Sectors or needs padding.
+ Thanks to a hint from Stefano Allrath
+
+- cdrecord -scanbus now checks for 256 SCSI busses
+
+- cdrecord -scanbus now checks for 256 SCSI busses
+ This has already been announced for 2.01a28 but forgotten to include
+
+- Some Man Page Fixes trying to avoid coding problems for non 7-bit ACSII
+
+- Several typos in the man page fixed
+
+- Man page enhanced to include a better documentation for the driver=
+ option.
+
+- Several other enhancements to the man page
+
+- modified to avoid GCCs shadowed variable warnings.
+
+- Cdrecord now tolerates the OPC "error code" "Power calibration area almost full"
+ to not a real error.
+
+- Fix for a bug that caused cdrecord to be unable
+ to reload the media for some drives.
+ The fix helps with the following problem:
+
+ Trying to clear drive status.
+ cdrecord: Drive needs to reload the media to return to proper status.
+ cdrecord: Cannot load media with this drive!
+ cdrecord: Try to load media by hand.
+ cdrecord: Cannot load media.
+
+- man page enhanced
+
+- Print the "Make sure you are root" only if root privilleges are missing.
+
+- Avoid warning for not working nice() on DOS
+ Thanks to Alex Kopylov <reanimatolog@yandex.ru>
+
+- -clone option documented in the man page. This has been forgotten before.
+
+- Several typos in the man page fixed
+
+- Do not try to call nice() on DOS/DJGPP
+
+- cdrecord now tries to check the DMA speed if the drive supports to read the
+ drive buffer. If the DMA speed is not sufficient, then cdrecord requires
+ that burnfree is activated. If the environment variable "CDR_FORCESPEED"
+ is set or -force has been specified, then cdrecord does not try to enforce
+ that the available DMA speed is 2x the expected write speed.
+
+- Make some symbols static to avoid problem with a badly designed libc on
+ OpenBSD that violates POSIX by pulluting the namespace with symbols
+ like 'pl'.
+
+
+Cdda2wav (By Heiko Eißfeldt heiko@hexco.de):
+
+- fixed typo in cdda2ogg.1
+
+- Do not use uname() but gethostname() for portability.
+
+- include unistd.h for abs()
+
+- old Toshiba's usable again
+
+- Multisession Non-CD-Extra disks now work again
+ Now also a lot more broken disks are readable again.
+
+- not using ioctl in signalhandler any more
+
+- trying to support sound on Win32
+
+- Several changes (mostly OS/2 related) for more ask Heiko
+
+- bugfix add cdda2ogg manpage,and script and makefile install target
+
+- support BeOS shared memory and FIFO
+
+- support soundcard output under QNX
+
+- windows-users! Cygwin has fixed the bug introduced with 1.3.18. Please
+ upgrade to the new 1.5.3-1 release.
+
+- call setmode(fileno, O_BINARY) for DOS/DJGPP also
+
+- Now using the major() macro for some Linux duties.
+
+ WARNING to creators of Linux distributions:
+
+ It has _always_ been wrong to compile software only once for different
+ kernel versions (e.g. for compile Linux-2.4 and later install a
+ 2.2 kernel on the so created system).
+
+ Now that Linux-2.6 introduces incompatible changes to kernel/user
+ interfaces, the resulting binaries will not work correctly anymore.
+
+- Made CD-Text handling reentrant to overcome a problem triggered by XCDRoast
+
+- Now works again suid root on Solaris 9
+
+- Fix for a Bug that prevents paranoia statistics from being printed
+ because the paranoia statistics for the forked version has not been
+ inside the shared memory.
+
+- New paranoia sub option paraopts=overlap=xx
+
+ This is mainly a bug fix for cdda2wav. Cdda2wav previously _always_ did
+ completely deactivate the dynamic overlapping from libparanoia. Instead,
+ it did set the overlapping to the statical value 0.
+
+ If you omit paraopts=overlap=xx, cdda2wav will now use dynamic overlapping
+ with -paranoia.
+
+ If you like the old behavior, use: paraopts=overlap=0
+
+- New paranoia sub option paraopts=minoverlap=xx
+ This sets the minimum dynamic overlap
+
+- New paranoia sub option paraopts=maxoverlap=xx
+ This sets the maximum dynamic overlap
+
+- Better paranoia statistics output
+
+- Fixed a Problem with some Linux sound card drivers that caused cdda2wav to be
+ unable to output to the soundcard.
+
+- cdda2wav now checks /etc/default/cdrecord and accepts dev=plextor as
+ cdrecord does.
+
+- Trying to add verbose output that estimates the read quality with -paranoia
+
+- Trying to convert non-ascii characters in user & host names into '_'
+ for better cddb compatibility.
+
+- Some Man Page Fixes trying to avoid coding problems for non 7-bit ACSII
+
+- New option -scanbus
+
+- Removed some "historical junk" that caused cdda2wav to define a
+ compile time default input device. This conflicts with cdda2wav -scanbus
+ and is superfluous and contra productive since cdda2wav reads
+ /etc/default/cdrecord
+
+- cdda2wav has signed bitfields of size 1 :-(
+
+- Fixed a typo in cdda2ogg.1
+
+- Bug fix from Heiko for index lists that contain offset values of -1 in the middle
+
+- Trying to handle interface setup more carefully if SCSI Generic is not
+ used.
+
+- Better Debug Code in setuid.c
+
+- Trying to fix a bug in UID handling on FreeBSD
+ Thanks to the bugs reports and help from Fabian Keil <fk@fabiankeil.de>
+
+- Try to workaround a bug in GCC that caused incorrect warnings
+ for "strict-aliasing rules"
+
+
+Readcd:
+
+- First (hacky) implementation of a way to meter the read speed
+ as a function of the disk location modeled after a idea from
+ Markus Plail <cdrecord@gitteundmarkus.de>
+
+ Call:
+ readcd dev=b,t,l meshpoints=1000 > outfile
+ then
+ gnuplot
+ gnuplot> plot "outfile" w l
+
+ or
+
+ gnuplot> replot "outfile" w l
+
+ if you like to overlay graphs.
+
+- New option fs=# (same syntax as with cdrecord fs=#) to allow the
+ user to set the maximum transfer size even in non-interactive mode.
+ This may help is the OS (as it has been the case for Solaris 9 x86)
+ reports a wrong maximum DMA size or there is a bug in libscg.
+
+- Speed printing with meshpoints=# now is based on 1000 bytes == 1 kb
+ as documented in the SCSI standard.
+
+- Stop reading if the OS replies with a DMA residual count != 0
+
+- New option -factor will cause the read speed values to be printed
+ be based on the single speed of the current medium. This is only
+ possible if readcd is able to find out the current medium type.
+
+- The clone read code is now part of the GPL'd source
+ Note that this part of the code is now more than 2 years old but previously
+ has been excluded from the publically visible part of the source.
+
+ Clone writing has been designed to allow to copy complex structured media
+ like e.g. SVCDs without the need to first do a sector by sector analysis
+ on the source media.
+
+ To understand how to use the clone mode read README.clone
+
+- New option ts= to set the SCSI transfer buffer size
+
+- call setmode(fileno, O_BINARY) for DOS/DJGPP also
+
+- Now works again suid root on Solaris 9
+
+- Better man page & online help for the ts= option.
+
+- New option -scanbus
+
+- Fixed a bug with -scanbus (did not work correctly if /etc/default/cdrecord
+ exists).
+
+- Added an allocated list of defective sectors, that is printed to the end of
+ a read operation.
+
+
+Scgcheck:
+
+- Trying to check if multiple scg_open() requests result in
+ usable interfaces.
+
+- Send more outout to stdout instead of stderr.
+
+- More correct test for max sense count.
+
+- Eject CD _after_ asking for it.
+
+- Abor further DMA residual tests if a basic DMA residual test fails.
+
+- Second open test enhanced.
+
+- A small fix to prevent a core dump caused by a problem on Mac OS X.
+
+
+Scgskeleton:
+
+- New Skeleton program as sample and template for programs that like to
+ use libscg.
+
+ This template has been included to help people like the Author of the
+ BTC firmware flash program to write simple portable applications that
+ send arbitrary SCSI commands to arbitrary drives.
+
+
+Mkisofs (By Jörg Schilling and James Pearson j.pearson@ge.ucl.ac.uk):
+
+- First attempt to support ISO-9660:1999 (Version 2) via -iso-level 4
+ This allows 207 chars in filenames if Rock Ridge is not used
+ ans 197 207 chars in filenames if Rock Ridge is used.
+
+ Note that this as an absolutely nontrivial change. Problems may
+ even occur when not using -iso-level 4. Please test and report
+ problems.
+
+ It is not clear whether mkisofs should characters in the range
+ outside 7-Bit ASCII. Currently, mkisofs allows any 7-Bit ASCII
+ character except '\0' and '/'.
+
+- Second attempt to support ISO-9660:1999 (Version 2) via -iso-level 4
+ This allows 207 chars in filenames if Rock Ridge is not used
+ and 197 207 chars in filenames if Rock Ridge is used.
+
+ In version 2.01a01 the extended VD used the wrong signature 1.
+ This has been corrected.
+
+- isoinfo is now able to recognize ISO-9660:1999
+
+- Enhanced the filename length for graft points to 2x PATH_MAX
+
+- Abort with a warning message if the total size of the image data
+ created by mkisofs would differ from the size printed by -print-size
+
+- udf.c indented according to hints from the program 'cstyle'
+
+- UDF now uses the same 'now' timestamp as the ISO-9660 part of the FS.
+
+- New Stream File feature and new options:
+
+ -stream-file-name
+ -stream-media-size
+
+ This feature has been implemented after an idea from M.H. Voase.
+ Mkisofs had to be heavily modified to allow this feature.
+
+ A typical usage would look like this:
+
+ star -c . | mkisofs -stream-media-size 333000 | cdrecord dev=b,t,l -dao tsize=333000s -
+
+ The maximum size of the tar archive is 332800 sectors.
+ Note that only plain vanilla ISO-9660 is possible in this mode.
+
+
+- The final padding that is added by default is now 150 sectors
+ which is the required size of the track post gap on a CD.
+
+- Inter partition padding is now only chosen to make the next partition
+ start on a sector number that is a multiple of 16.
+
+- isoinfo now also prints root directory extent # in debug mode
+
+- First step to allow mkisofs to support Kodak Photo CD and
+ Kodak Picture CD format:
+
+ Try to correctly support associated files in multi-session mode.
+
+
+- Diagnostic programs modified to use ttydefs.h and to have better
+ portability for the built in "stty" features.
+
+- isoinfo now prints the ISO-9660 directory flags.
+
+- Make mkhybrid a symlink to mkisofs instead of a hardlink
+
+
+- getopt.h/fnmatch.h changed to use 'makefiles / prototype.h' based
+ system instead FSD junk system
+
+- Removed FSF junk from getopt.c that either created problems
+ with SCO Unixware or did not compile on AIX
+
+- Prototype for DVDOpenFile() to avoid warning on SCO UnixWare
+ related to enum function parameter
+
+- Fixed a bug with split symbolic links found by Klaus Kopper
+ with the new debug messages introduced with mkisofs-2.01a04
+
+- Changed #if __STDC__ to #ifdef PROTOTYPES for better portability
+
+- Now using character code translation for 8 Bit characters that
+ are used with -iso-level 4 (ISO-9660-1999).
+
+- Fixed a typo in the on-line Usage information for isoinfo
+
+- New options -XA & -xa
+
+ -XA Generate XA iso-directory attributes with original owner
+ and mode information.
+
+ -xa Generate XA iso-directory attributes with rationalized owner
+ and mode information (user/group == 0).
+
+ In the first phase of the implementation you need to specify -R in
+ addition.
+
+- Try to support files >= 2 GB.
+ Note that mkisofs is not yet written cleanly so there may be problems
+ if files >= are used. In such a case, please report.
+
+- Create XA "CD-XA001" signature in PVD with -XA or -xa
+
+ In the first phase of the implementation you need to specify -R in
+ addition to -XA or -xa or no XA signatures will be written.
+
+- Removed a debug statement that has been introduced to implement
+ support for filees >= 2GB.
+
+- This version of mkisofs allows to create sectors with 2056 bytes if the
+ option -XA or -xa has been used together with -sectype xa1.
+ This is 2048 bytes + sub-header.
+
+- -apple does no longer include -R or -r.
+ If you like to use -apple, you need to use -R/-r or -XA/-xa in addition.
+
+- New option -sectype SECTYPE / -s SECTYPE
+
+ Possible parameters are:
+
+ data 2048 bytes per sector - the old and current default
+
+ xa1 2056 bytes per sector - this is what you need for a conforming
+ CD-ROM XA multi session CD. Use -sectype xa1 together with -XA
+
+- Fixed a bug in the Rock Ridge symlink handling with Continuation records
+ triggered by '/../' filename components.
+ Thanks to jmmikkel@bbn.com (Joanne M Mikkelson)
+ for the fix.
+
+- man page corrected
+
+- Moved Eltorito PVD before ISO-9660:1999 enhanced PCD to allow
+ bootable CD with ISO-9660:1999
+
+- -sort file handling fixed: mkisofs now looks for SPACE/TAB whatever
+ comes last (as documented in the man page).
+
+- Better error message in case of a stat(2) buffer overflow (too long
+ filename). This release now prints the file name that caused the problem.
+
+- call setmode(fileno, O_BINARY) for DOS/DJGPP also
+
+- Added a NOTE regarding the SILO boot program for Linux sparc to the
+ man page.
+
+- Added support for Solaris x86 boot CDs.
+ This includes the following new options:
+
+ - -sunx86-boot to create a fdisk & SVr4 partition table
+
+ - -sunx86-label to set the "disk label" name for the
+ SVr4 partition table.
+
+- New file README.sunx86boot
+
+- The file README.sunx86boot has been reworked to make it more correct
+ and contain less typos.
+
+- Fixed a Rock-Ridge length handling bug in update_nlink()/increment_nlink() (tree.c)
+ that may have caused an endless loop.
+
+- "Total extents including sparc boot" Message is now correctly
+ "Total extents including %s boot" sparc/sunx86
+
+- mkisofs now checks /etc/default/cdrecord and allows e.g.
+ "mkisofs -C 0,1234 dev=plextor ...." as cdrecord does
+
+- Unclean message ....extents written (%d Mb) changed to
+ ....extents written (%d MB) to avoid "MegaBit" confusion.
+
+- Minor change for old UNIX versions like SCO OpenServer to get
+ smooth compilation on system where mode_t is a short.
+
+- Fix for a bug in RockRidge name handling for long file names
+ that need to be split into more than one sector.
+ Thanks to Patrick Ohly <Patrick.Ohly@gmx.de>
+
+- Trying to fix a bug in the multi session time stamp comparing
+ functions. CE records have not been handled correctly here.
+
+- Support for PowerPC CHRP Boot added, thanks to
+ "Leigh Brown" <leigh@solinno.co.uk>
+
+- Support for -uid/-gid for UDF Filesystems added
+
+- isoinfo now is able to list ElTorito Boot information with -d
+
+- isoinfo now correctly shows long RR filenames from CE Extension records.
+
+- Fixed a bug in the PowerPC CHRP Boot, thanks to
+ "Leigh Brown" <leigh@solinno.co.uk>
+
+- New options -root & -old-root from Patrick Ohly
+ This allows mkisofs to be used for "incremental backups" where
+ each backup is put into a separate directory tree on the CD.
+
+- Default to System ID "UNIX" for unknown platforms instead of
+ uning LINUX.
+
+- Support System ID "SCO-OPENSERVER" and "SCO-UNIXWARE"
+
+- Better error message when a user tries to create a multi session image
+ out of a multi-volume image.
+
+- When doing malloc(), include Null Byte at end of TRANS_TBL data to
+ avoid memory size conflicts.
+
+- Fix for a core dump caused by a double free() when doing:
+ echo bar >/tmp/bar
+ echo foo/bar=/tmp/bar > /tmp/pathlist
+ env LD_PRELOAD=libumem.so.1 UMEM_DEBUG=default UMEM_LOGGING=transaction \
+ mkisofs -hfs -graft-points -o /tmp/foo.raw -path-list=/tmp/pathlist
+
+ Thanks to Jürgen Keil jk@tools.de
+
+- Fixed a typo in write.c "Padbock" -> "Padblock"
+ Thanks to Richard Dawe <rich@phekda.gotadsl.co.uk>
+
+- Trying to fix a problem with comparing relaxed ISO-9660 file names
+ that contain a ';' which normally is a separator for the ISO-9660
+ version number. The fix is in hash.c, please test!
+
+- Avoid GCCs shadowed variable warnings.
+
+- Added a comment is in hope to prevent silly people from
+ e.g. SuSE (who did not yet learn C but believe that
+ they need to patch other peoples code) from changing a
+ valid cast into an illegal lhs cast expression.
+ The cast in the unodified version of write.c is the correct way to
+ handle the problem.
+
+ It would save a lot of time if people from companies like SuSE
+ would remember the Open Source software development model and
+ contact the Author for help rather than introducing proprietary
+ changes that result in worse and incompatible software variants.
+
+ The way, companies like SuSE deal with Open Source software just
+ proves that Jonathan Schwartz from Sun is not wrong when he calls
+ SuSE and RedHat proprietary software companies. Users from Open Source
+ software expect that companies like SuSE and RedHat are in close
+ contact with the software developers but they unfortunately are not.
+ They prefer to create proprietary variants that are usually much
+ worse than the original software. The only explanation I have for this
+ behaviour is that SuSE likes to deviate from RedHat and RedHat likes
+ to deviate from SuSE in hope to get customer retention this way.
+ While the last 150 years did prove that this proprietary method to
+ tie up customers works for a limited time, it did always fail after
+ some time.
+
+- Removed verbose output for Eltorito boot method when called with -quiet
+
+- The Eltorito boot catalog and the Eltorito boot files are now by default
+ sorted to the beginning of the filesystem image as sime BIOS versions don't
+ boot from locations beyond 512 MB.
+
+- All programs from mkisofs/diag now support libscg so you may now
+ use e.g. isoinfo to list end extract from CDs directly on platforms
+ that do not support a usual driver interface (like on Win32).
+
+- Set default SYSID to "DOS" for DJGPP
+ Thanks to Alex Kopylov <reanimatolog@yandex.ru>
+
+- devdump isodebug isodump isoinfo isovfy
+ now include libscg and allow to use SCSI devices as input
+
+- devdump isodebug isodump isoinfo isovfy
+ now implement a new option dev= to force to use the SCSI
+ interface from libscg.
+
+- isoinfo now correctly sets the filemode of stdout to O_BINARY
+ on DOS alike Platforms like Win32 & DJGPP
+ This affects the '-x pathname' option
+ Thanks to Alex Kopylov <reanimatolog@yandex.ru>
+
+- The options -H/-L/-P from mkisofs have been marked "outdated"
+ as they are reserved by POSIX.1-2001 for other purposes.
+
+ Mkisofs-2.02 will start to implement the POSIX.1-2001 semantics for
+ these options.
+
+- The max. length for the strings in the Primary volume descriptor
+ is now also documented in the options section of the man page.
+
+- Speed up by 30% in the case that a directory contains many (> 5000)
+ pathological file name entries (that _all_ do not differ in 8.3).
+
+- A minor speed up in devdump & isodump was made by no longer calling
+ strlen() in the end condition of a for loop (this still was old
+ code from Eric).
+
+- fixed a bug with -dvd-video
+ The bug caused mkisofs not to find the IFO file when VIDEO_TS was not
+ the first entry in the unsorted source directory.
+ Thanks to a hint from Johan Borg borg@morth.org
+
+- The option -volset-size does no longer accept numbers > 1
+
+ This change was needed because Eric Youngdale did completely
+ missunderstand the ISO-9660 standard with respect to Volume Set
+ Sizes.
+
+ A Volume Set is not a numbered set of CDs but a set of CDs that
+ contains a coherent directory tree that would not fit on a single
+ volume.
+
+- Fixed a typo in the mkisofs man page
+
+- man page enhanced to make clear that the options
+ -no-split-symlink-fields & -no-split-symlink-components
+ are most likely not needed as they have been introduced by Eric Youngdale
+ when serious bugs have been in mkisofs.
+
+- Changelog updated
+
+- Try to workaround a bug in GCC that caused incorrect warnings
+ for "strict-aliasing rules"
+
+TODO:
+ - read Joliet filenames with multi-session if no TRANS.TBL
+ or RR is present. I am looking for a volunteer for this task!
+
+ Note that this can never be 100% correct as there is no relation
+ between the names on the master (UNIX) filesystem, the ISO-9660
+ names and the Joliet names. Only the Rock Ridge names are
+ untranslated with respect to the original files on the
+ master (UNIX) filesystem.
+
+ - add libecc/edc for CDI and similar.
+
+
+CYGWIN NT-4.0 NOTES:
+
+To compile on Cygwin32, get Cygwin and install it.
+For more information read README.win32
+
+The files are located on:
+
+ftp://ftp.berlios.de/pub/cdrecord/alpha ...
+
+NOTE: These tar archives are 100% POSIX compatible. GNU tar may get some
+ minor trouble. If you like a 100% POSIX compliant tar, get star from
+ ftp://ftp.berlios.de/pub/star/
+
+WARNING: Do not use 'winzip' to extract the tar file!
+ Winzip cannot extract symbolic links correctly.
+
+Joerg
diff --git a/doc/ANNOUNCEMENTs/AN-2.01.01a01 b/doc/ANNOUNCEMENTs/AN-2.01.01a01
new file mode 100644
index 0000000..2d3a1eb
--- /dev/null
+++ b/doc/ANNOUNCEMENTs/AN-2.01.01a01
@@ -0,0 +1,91 @@
+Please have a look at the German open Source Center BerliOS at www.berlios.de
+BerliOS will continue to support free hosting of cryptography projects even
+when US laws change and don't allow to host cryptography projects in the USA.
+Also look at sourcewell.berlios.de, the first Open Source announcement service
+that itself is implemented as Open Source project.
+
+***************** Important news ****************************
+
+For the 'Slottable Source Plugin Module' SSPM Features read README.SSPM
+
+***************** Please Test *********************************
+
+NEW features of cdrtools-2.01.01a01:
+
+*******
+NOTE: this is _not_ a release that starts a new aplha/beta series of dirtibutions.
+ The only reason is to add certain new CD/DVD features that are important.
+
+ So _please_ do not send any patches except when you like to fix extreme bugs.
+ I am currently mainly working on stable incremental restore featurs for star-1.5-final.
+ Once star-1.5-final is out, cdrtools will start a new developent cycle.
+*******
+
+All:
+
+- Better lint make rules
+
+- Better autoconf rrules for ACLs
+
+- Better support for Linux on IBM-390
+
+- Better support for Linux on AMD x86-64
+
+- Better conforming to lint warnings.
+
+Libparanoia (Ported by Jörg Schilling, originated by Monty xiphmont@mit.edu):
+
+Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de):
+
+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.
+
+Rscsi:
+
+Cdrecord:
+
+- Support for the Plextor GigaRec feature.
+ Use driveropts=gigarec=1.2 to increase CD capacity by 20%.
+
+Cdda2wav (By Heiko Eißfeldt heiko@hexco.de):
+
+Readcd:
+
+Scgcheck:
+
+Scgskeleton:
+
+Mkisofs (By Jörg Schilling and James Pearson j.pearson@ge.ucl.ac.uk):
+
+TODO:
+ - read Joliet filenames with multi-session if no TRANS.TBL
+ or RR is present. I am looking for a volouteer for this task!
+
+ Note that this can never be 100% correct as there is no relation
+ between the names on the master (UNIX) filesystem, the ISO-9660
+ names and the Joliet names. Only the Rock Ridge names are
+ untranslated with respect to the original files on the
+ master (UNIX) filesystem.
+
+ - add libecc/edc for CDI and similar.
+
+
+CYGWIN NT-4.0 NOTES:
+
+To compile on Cygwin32, get Cygwin and install it.
+For more information read README.win32
+
+The files are located on:
+
+ftp://ftp.berlios.de/pub/cdrecord/alpha ...
+
+NOTE: These tar archives are 100% POSIX compatible. GNU tar may get some
+ minor trouble. If you like a 100% POSIX compliant tar, get star from
+ ftp://ftp.berlios.de/pub/star/
+
+WARNING: Do not use 'winzip' to extract the tar file!
+ Winzip cannot extract symbolic links correctly.
+
+Joerg
diff --git a/doc/ANNOUNCEMENTs/AN-2.01.01a03 b/doc/ANNOUNCEMENTs/AN-2.01.01a03
new file mode 100644
index 0000000..e7819a2
--- /dev/null
+++ b/doc/ANNOUNCEMENTs/AN-2.01.01a03
@@ -0,0 +1,150 @@
+Please have a look at the German open Source Center BerliOS at www.berlios.de
+BerliOS will continue to support free hosting of cryptography projects even
+when US laws change and don't allow to host cryptography projects in the USA.
+Also look at sourcewell.berlios.de, the first Open Source announcement service
+that itself is implemented as Open Source project.
+
+***************** Important news ****************************
+
+For the 'Slottable Source Plugin Module' SSPM Features read README.SSPM
+
+***************** Please Test *********************************
+
+NEW features of cdrtools-2.01.01a02:
+
+*******
+NOTE: this is _not_ a release that starts a new aplha/beta series of dirtibutions.
+ The only reason is to add certain new CD/DVD features that are important.
+
+ So _please_ do not send any patches except when you like to fix extreme bugs.
+ I am currently mainly working on stable incremental restore featurs for star-1.5-final.
+ Once star-1.5-final is out, cdrtools will start a new developent cycle.
+*******
+
+All:
+
+- Now using "makefiles-1.5"
+
+- Compilation on OS/ should work again (-Zexe -> -o xxx.$(EXEEXT)
+
+- Sleeptime to allow reading Gmake warning 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
+
+- libunls reworked
+
+- New autoconf tests for broken <linux/ext2_fs.h>, <scsi/scsi.h> & <scsi/sg.h>
+ on various Linux systems
+
+
+Libparanoia (Ported by Jörg Schilling, originated by Monty xiphmont@mit.edu):
+
+Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de):
+
+Libscg:
+
+- Trying to introduce a workaround for broken <scsi/scsi.h> & <scsi/sg.h>
+ 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 adption 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
+
+Rscsi:
+
+Cdrecord:
+
+- 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é).
+
+
+Cdda2wav (By Heiko Eißfeldt heiko@hexco.de):
+
+Readcd:
+
+Scgcheck:
+
+Scgskeleton:
+
+Mkisofs (By Jörg Schilling and James Pearson j.pearson@ge.ucl.ac.uk):
+
+- Better error messages with wrong Eltorito boot options
+
+- Man page is now more explicit about requirements for DVD-video
+ directory trees.
+
+- Better warning text for missing Rock Ridge in multi.c
+
+- Bugs in README.sunx86boot corrected
+
+- Multi Volume code for reading old image now gives different
+ error messages on read errors and short reads.
+
+- Diagnostic programs isodump, isoinfo, ... no longer dump core
+ when called with dev=<SCSI addr> parameters.
+
+TODO:
+ - read Joliet filenames with multi-session if no TRANS.TBL
+ or RR is present. I am looking for a volouteer for this task!
+
+ Note that this can never be 100% correct as there is no relation
+ between the names on the master (UNIX) filesystem, the ISO-9660
+ names and the Joliet names. Only the Rock Ridge names are
+ untranslated with respect to the original files on the
+ master (UNIX) filesystem.
+
+ - add libecc/edc for CDI and similar.
+
+
+CYGWIN NT-4.0 NOTES:
+
+To compile on Cygwin32, get Cygwin and install it.
+For more information read README.win32
+
+The files are located on:
+
+ftp://ftp.berlios.de/pub/cdrecord/alpha ...
+
+NOTE: These tar archives are 100% POSIX compatible. GNU tar may get some
+ minor trouble. If you like a 100% POSIX compliant tar, get star from
+ ftp://ftp.berlios.de/pub/star/
+
+WARNING: Do not use 'winzip' to extract the tar file!
+ Winzip cannot extract symbolic links correctly.
+
+Joerg
diff --git a/doc/ANNOUNCEMENTs/AN-2.01.01a04 b/doc/ANNOUNCEMENTs/AN-2.01.01a04
new file mode 100644
index 0000000..7acaf29
--- /dev/null
+++ b/doc/ANNOUNCEMENTs/AN-2.01.01a04
@@ -0,0 +1,164 @@
+Please have a look at the German open Source Center BerliOS at www.berlios.de
+BerliOS will continue to support free hosting of cryptography projects even
+when US laws change and don't allow to host cryptography projects in the USA.
+Also look at sourcewell.berlios.de, the first Open Source announcement service
+that itself is implemented as Open Source project.
+
+***************** Important news ****************************
+
+For the 'Slottable Source Plugin Module' SSPM Features read README.SSPM
+
+***************** Please Test *********************************
+
+NEW features of cdrtools-2.01.01a04:
+
+*******
+NOTE: this is _not_ a release that starts a new aplha/beta series of dirtibutions.
+ The only reason is to add certain new CD/DVD features that are important.
+
+ So _please_ do not send any patches except when you like to fix extreme bugs.
+ I am currently mainly working on stable incremental restore featurs for star-1.5-final.
+ Once star-1.5-final is out, cdrtools will start a new developent cycle.
+*******
+
+All:
+
+- astoull*() new in schily.h
+
+- utypes.h now has MAX_ and MIN_ value definitions for all basic
+ system types.
+
+- Using Makefiles-1.5a02
+
+- 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 ion 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 compiles using shared libraries only and to properly
+ hide inofficial interfaces on Solaris (using ls)
+ Note that this feature is not available with GNU ld
+
+
+Libparanoia (Ported by Jörg Schilling, originated by Monty xiphmont@mit.edu):
+
+Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de):
+
+Libscg:
+
+- 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)
+
+Rscsi:
+
+Cdrecord:
+
+- 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
+
+
+Cdda2wav (By Heiko Eißfeldt heiko@hexco.de):
+
+- Added a workaround for the _POSIX_PRIORITY_SCHEDULING behavior
+ on MacosX: defined but not supported#
+ Thanks to: Emanuele Giaquinta <e.giaquinta@glauco.it>
+
+- Bugfix: cdda2wav did previously chose to ignore the result of realloc(3)
+ This prevents core-dumps.
+
+Readcd:
+
+Scgcheck:
+
+Scgskeleton:
+
+Mkisofs (By Jörg Schilling and James Pearson j.pearson@ge.ucl.ac.uk):
+
+- mkisofs now detects if a file grows or shrinks while being
+ read by mkisofs.
+
+
+TODO:
+ - read Joliet filenames with multi-session if no TRANS.TBL
+ or RR is present. I am looking for a volouteer for this task!
+
+ Note that this can never be 100% correct as there is no relation
+ between the names on the master (UNIX) filesystem, the ISO-9660
+ names and the Joliet names. Only the Rock Ridge names are
+ untranslated with respect to the original files on the
+ master (UNIX) filesystem.
+
+ - add libecc/edc for CDI and similar.
+
+
+CYGWIN NT-4.0 NOTES:
+
+To compile on Cygwin32, get Cygwin and install it.
+For more information read README.win32
+
+The files are located on:
+
+ftp://ftp.berlios.de/pub/cdrecord/alpha ...
+
+NOTE: These tar archives are 100% POSIX compatible. GNU tar may get some
+ minor trouble. If you like a 100% POSIX compliant tar, get star from
+ ftp://ftp.berlios.de/pub/star/
+
+WARNING: Do not use 'winzip' to extract the tar file!
+ Winzip cannot extract symbolic links correctly.
+
+Joerg
diff --git a/doc/ANNOUNCEMENTs/AN-2.01.01a05 b/doc/ANNOUNCEMENTs/AN-2.01.01a05
new file mode 100644
index 0000000..f52ab26
--- /dev/null
+++ b/doc/ANNOUNCEMENTs/AN-2.01.01a05
@@ -0,0 +1,143 @@
+Please have a look at the German open Source Center BerliOS at www.berlios.de
+BerliOS will continue to support free hosting of cryptography projects even
+when US laws change and don't allow to host cryptography projects in the USA.
+Also look at sourcewell.berlios.de, the first Open Source announcement service
+that itself is implemented as Open Source project.
+
+***************** Important news ****************************
+
+For the 'Slottable Source Plugin Module' SSPM Features read README.SSPM
+
+***************** Please Test *********************************
+
+NEW features of cdrtools-2.01.01a05:
+
+*******
+NOTE: this is _not_ a release that starts a new aplha/beta series of dirtibutions.
+ The only reason is to add certain new CD/DVD features that are important.
+
+ So _please_ do not send any patches except when you like to fix extreme bugs.
+ I am currently mainly working on stable incremental restore featurs for star-1.5-final.
+ Once star-1.5-final is out, cdrtools will start a new developent cycle.
+*******
+
+All:
+
+- Support for DragonFly BSD added, thanks to joerg@britannica.bec.de
+
+- Default Cygwin install uid/group adapted to use available ids.
+
+- Updated the (forgotten) autoconf to include the tests needed for Solaris
+ fine grained privileges.
+
+- New program btcflash added. Thanks to David Huang <khym@azeotrope.org>
+
+-
+ 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 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)
+
+
+Libparanoia (Ported by Jörg Schilling, originated by Monty xiphmont@mit.edu):
+
+Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de):
+
+Libscg:
+
+- 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.
+
+Rscsi:
+
+Cdrecord:
+
+- 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.
+
+
+Cdda2wav (By Heiko Eißfeldt heiko@hexco.de):
+
+- Explicit fine grained privileges support for Solaris.
+ Cdda2wav now switches off all privs that are no longer needed.
+
+Readcd:
+
+- Allow readcd to work correctly in -scanbus mode
+ Thanks to Fabian Keil <fk@fabiankeil.de> for reporting.
+
+- Explicit fine grained privileges support for Solaris.
+ readcd now switches off all privs that are no longer needed.
+
+Scgcheck:
+
+Scgskeleton:
+
+- Allow readcd to work correctly in -scanbus mode
+ Thanks to Fabian Keil <fk@fabiankeil.de> for reporting.
+
+- Explicit fine grained privileges support for Solaris.
+ Scgskeleton now switches off all privs that are no longer needed.
+
+Mkisofs (By Jörg Schilling and James Pearson j.pearson@ge.ucl.ac.uk):
+
+
+TODO:
+ - read Joliet filenames with multi-session if no TRANS.TBL
+ or RR is present. I am looking for a volouteer for this task!
+
+ Note that this can never be 100% correct as there is no relation
+ between the names on the master (UNIX) filesystem, the ISO-9660
+ names and the Joliet names. Only the Rock Ridge names are
+ untranslated with respect to the original files on the
+ master (UNIX) filesystem.
+
+ - add libecc/edc for CDI and similar.
+
+
+CYGWIN NT-4.0 NOTES:
+
+To compile on Cygwin32, get Cygwin and install it.
+For more information read README.win32
+
+The files are located on:
+
+ftp://ftp.berlios.de/pub/cdrecord/alpha ...
+
+NOTE: These tar archives are 100% POSIX compatible. GNU tar may get some
+ minor trouble. If you like a 100% POSIX compliant tar, get star from
+ ftp://ftp.berlios.de/pub/star/
+
+WARNING: Do not use 'winzip' to extract the tar file!
+ Winzip cannot extract symbolic links correctly.
+
+Joerg
diff --git a/doc/ANNOUNCEMENTs/AN-2.01.01a06 b/doc/ANNOUNCEMENTs/AN-2.01.01a06
new file mode 100644
index 0000000..8a4f3e6
--- /dev/null
+++ b/doc/ANNOUNCEMENTs/AN-2.01.01a06
@@ -0,0 +1,141 @@
+Please have a look at the German open Source Center BerliOS at www.berlios.de
+BerliOS will continue to support free hosting of cryptography projects even
+when US laws change and don't allow to host cryptography projects in the USA.
+Also look at sourcewell.berlios.de, the first Open Source announcement service
+that itself is implemented as Open Source project.
+
+***************** Important news ****************************
+
+For the 'Slottable Source Plugin Module' SSPM Features read README.SSPM
+
+***************** Please Test *********************************
+
+NEW features of cdrtools-2.01.01a06:
+
+*******
+NOTE: this is _not_ a release that starts a new aplha/beta series of dirtibutions.
+ The only reason is to add certain new CD/DVD features that are important.
+
+ So _please_ do not send any patches except when you like to fix extreme bugs.
+ I am currently mainly working on stable incremental restore featurs for star-1.5-final.
+ Once star-1.5-final is out, cdrtools will start a new developent cycle.
+*******
+
+All:
+
+- Better support for BeOS/Zeta in the makefile system
+
+- Support for armv5teb-linux-cc was added to the makefile system
+
+-
+ 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
+
+ Also edit /etc/security/prof_attr
+
+ CD RW:::CD-R/RW Recording Authorizations:auths=solaris.device.cdrw
+
+ 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)
+
+
+Libparanoia (Ported by Jörg Schilling, originated by Monty xiphmont@mit.edu):
+
+Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de):
+
+Libscg:
+
+- BeOS/Zeta libscg low level adoption code fixed.
+ The code now is passing a "scgcheck" test.
+
+Rscsi:
+
+Cdrecord:
+
+- 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.
+
+Cdda2wav (By Heiko Eißfeldt heiko@hexco.de):
+
+Readcd:
+
+- Support for BeOS/Zeta shared memory was added
+
+- -scanbus behavior corrected
+
+Scgcheck:
+
+- Fixed DMA overrun test. BeOS/Zeta did pass the test but
+ scgcheck did complain before.
+
+Scgskeleton:
+
+- -scanbus behavior corrected
+
+Btcflash:
+
+- -scanbus behavior corrected
+
+- man page added
+
+Mkisofs (By Jörg Schilling and James Pearson j.pearson@ge.ucl.ac.uk):
+
+- try to work around a GCC trigraph problem
+
+- man pages for diag commands added
+
+TODO:
+ - read Joliet filenames with multi-session if no TRANS.TBL
+ or RR is present. I am looking for a volouteer for this task!
+
+ Note that this can never be 100% correct as there is no relation
+ between the names on the master (UNIX) filesystem, the ISO-9660
+ names and the Joliet names. Only the Rock Ridge names are
+ untranslated with respect to the original files on the
+ master (UNIX) filesystem.
+
+ - add libecc/edc for CDI and similar.
+
+
+CYGWIN NT-4.0 NOTES:
+
+To compile on Cygwin32, get Cygwin and install it.
+For more information read README.win32
+
+The files are located on:
+
+ftp://ftp.berlios.de/pub/cdrecord/alpha ...
+
+NOTE: These tar archives are 100% POSIX compatible. GNU tar may get some
+ minor trouble. If you like a 100% POSIX compliant tar, get star from
+ ftp://ftp.berlios.de/pub/star/
+
+WARNING: Do not use 'winzip' to extract the tar file!
+ Winzip cannot extract symbolic links correctly.
+
+Joerg
diff --git a/doc/ANNOUNCEMENTs/AN-2.01.01a07 b/doc/ANNOUNCEMENTs/AN-2.01.01a07
new file mode 100644
index 0000000..2bac2f6
--- /dev/null
+++ b/doc/ANNOUNCEMENTs/AN-2.01.01a07
@@ -0,0 +1,96 @@
+Please have a look at the German open Source Center BerliOS at www.berlios.de
+BerliOS will continue to support free hosting of cryptography projects even
+when US laws change and don't allow to host cryptography projects in the USA.
+Also look at sourcewell.berlios.de, the first Open Source announcement service
+that itself is implemented as Open Source project.
+
+***************** Important news ****************************
+
+For the 'Slottable Source Plugin Module' SSPM Features read README.SSPM
+
+***************** Please Test *********************************
+
+NEW features of cdrtools-2.01.01a07:
+
+*******
+NOTE: this is _not_ a release that starts a new aplha/beta series of dirtibutions.
+ The only reason is to add certain new CD/DVD features that are important.
+
+ So _please_ do not send any patches except when you like to fix extreme bugs.
+ I am currently mainly working on stable incremental restore featurs for star-1.5-final.
+ Once star-1.5-final is out, cdrtools will start a new developent cycle.
+*******
+
+All:
+
+- Autoconf script added to 'conf' directory
+
+Libparanoia (Ported by Jörg Schilling, originated by Monty xiphmont@mit.edu):
+
+Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de):
+
+Libscg:
+
+Rscsi:
+
+Cdrecord:
+
+- Fixed a bug caused by an uninitalized variable when handling
+ CDR_MAXFIFOSIZE= and no file /etc/default/cdrecord exists
+
+Cdda2wav (By Heiko Eißfeldt heiko@hexco.de):
+
+- Write correct error info in case that BeOS/Zeta *_area() calls
+ fail.
+
+- As Heiko did not work on cdda2wav during the past 2.5 years,
+ Heiko did hand over the SCCS history for cdda2wav.
+
+- Autoconf test for <sys/cdio.h> added (FreeBSD)
+
+- Some FreeBSD related changes from Heiko done in 2004
+
+ IMPORTANT: I need testers for FreeBSD and DragonFly BSD as
+ a result of the merge with the complex changes
+ from Heiko.
+
+Readcd:
+
+Scgcheck:
+
+Scgskeleton:
+
+Btcflash:
+
+Mkisofs (By Jörg Schilling and James Pearson j.pearson@ge.ucl.ac.uk):
+
+TODO:
+ - read Joliet filenames with multi-session if no TRANS.TBL
+ or RR is present. I am looking for a volouteer for this task!
+
+ Note that this can never be 100% correct as there is no relation
+ between the names on the master (UNIX) filesystem, the ISO-9660
+ names and the Joliet names. Only the Rock Ridge names are
+ untranslated with respect to the original files on the
+ master (UNIX) filesystem.
+
+ - add libecc/edc for CDI and similar.
+
+
+CYGWIN NT-4.0 NOTES:
+
+To compile on Cygwin32, get Cygwin and install it.
+For more information read README.win32
+
+The files are located on:
+
+ftp://ftp.berlios.de/pub/cdrecord/alpha ...
+
+NOTE: These tar archives are 100% POSIX compatible. GNU tar may get some
+ minor trouble. If you like a 100% POSIX compliant tar, get star from
+ ftp://ftp.berlios.de/pub/star/
+
+WARNING: Do not use 'winzip' to extract the tar file!
+ Winzip cannot extract symbolic links correctly.
+
+Joerg
diff --git a/doc/ANNOUNCEMENTs/AN-2.01.01a08 b/doc/ANNOUNCEMENTs/AN-2.01.01a08
new file mode 100644
index 0000000..b45988c
--- /dev/null
+++ b/doc/ANNOUNCEMENTs/AN-2.01.01a08
@@ -0,0 +1,96 @@
+Please have a look at the German open Source Center BerliOS at www.berlios.de
+BerliOS will continue to support free hosting of cryptography projects even
+when US laws change and don't allow to host cryptography projects in the USA.
+Also look at sourcewell.berlios.de, the first Open Source announcement service
+that itself is implemented as Open Source project.
+
+***************** Important news ****************************
+
+For the 'Slottable Source Plugin Module' SSPM Features read README.SSPM
+
+***************** Please Test *********************************
+
+NEW features of cdrtools-2.01.01a08:
+
+*******
+NOTE: this is _not_ a release that starts a new aplha/beta series of dirtibutions.
+ The only reason is to add certain new CD/DVD features that are important.
+
+ So _please_ do not send any patches except when you like to fix extreme bugs.
+ I am currently mainly working on stable incremental restore featurs for star-1.5-final.
+ Once star-1.5-final is out, cdrtools will start a new developent cycle.
+*******
+
+All:
+
+Libparanoia (Ported by Jörg Schilling, originated by Monty xiphmont@mit.edu):
+
+Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de):
+
+Libscg:
+
+Rscsi:
+
+Cdrecord:
+
+Cdda2wav (By Heiko Eißfeldt heiko@hexco.de):
+
+- Started to make cdda2wav Cstyle compliant.
+
+- Avoid to shutdown the whole system when kill(getppid(), SKGINT)
+ would result in kill -INT 1 because the parent cdda2wav is
+ dead and the child is orphaned and cdda2wav has been called by root.
+
+- __FreeBSD_version >= 600021 have devmajor == 0 for all devices.
+ Thanks to Marius Strobl <marius@alchemy.franken.de> for reporting.
+
+- General #ifdef structure related to FreeBSD in mycdrom.h now
+ corrected, thanks to Marius Strobl.
+
+- Try to fix some FreeBSD/DragonFly related problems that have been
+ introduced with a06 when Heiko's changes from 2004 have been integrated
+
+ IMPORTANT: I need testers for FreeBSD and DragonFly BSD as
+ a result of the merge with the complex changes
+ from Heiko.
+
+Readcd:
+
+Scgcheck:
+
+Scgskeleton:
+
+Btcflash:
+
+Mkisofs (By Jörg Schilling and James Pearson j.pearson@ge.ucl.ac.uk):
+
+TODO:
+ - read Joliet filenames with multi-session if no TRANS.TBL
+ or RR is present. I am looking for a volouteer for this task!
+
+ Note that this can never be 100% correct as there is no relation
+ between the names on the master (UNIX) filesystem, the ISO-9660
+ names and the Joliet names. Only the Rock Ridge names are
+ untranslated with respect to the original files on the
+ master (UNIX) filesystem.
+
+ - add libecc/edc for CDI and similar.
+
+
+CYGWIN NT-4.0 NOTES:
+
+To compile on Cygwin32, get Cygwin and install it.
+For more information read README.win32
+
+The files are located on:
+
+ftp://ftp.berlios.de/pub/cdrecord/alpha ...
+
+NOTE: These tar archives are 100% POSIX compatible. GNU tar may get some
+ minor trouble. If you like a 100% POSIX compliant tar, get star from
+ ftp://ftp.berlios.de/pub/star/
+
+WARNING: Do not use 'winzip' to extract the tar file!
+ Winzip cannot extract symbolic links correctly.
+
+Joerg
diff --git a/doc/DOC-OVERVIEW b/doc/DOC-OVERVIEW
new file mode 100644
index 0000000..d40ff6c
--- /dev/null
+++ b/doc/DOC-OVERVIEW
@@ -0,0 +1,35 @@
+This is the documentation collection of the cdrkit package
+
+It has been derived from the cdrtools package maintained by
+Joerg Schilling. However, other maintainers work on this
+spinoff of the documentation.
+
+Keep in mind that cdrkit is not cdrtools when you read the
+documentation. Some details may be void in context of
+cdrkit.
+
+Contents:
+
+ANNOUNCEMENTs : directory containing AN* files with release
+ notes from old cdrtools releases
+
+READMEs : contains HOWTOs and instructions relevant to
+ various tasks, especially such where multiple
+ programs are involved
+
+wodim : contains README files relevant for the work with the
+ wodim application (writing data) and details specific
+ to its usage
+
+genisoimage : documentation for work with genisoimage program, a
+ ISO9660 filesystem creator. See genisoimage/README for
+ details.
+
+icedax : contains documentation for the CD audio
+ extraction utility icedax. See icedax/README for
+ details.
+
+platforms : contains notes about portability to different
+ platforms
+
+
diff --git a/doc/PORTABILITY b/doc/PORTABILITY
new file mode 100644
index 0000000..c694a22
--- /dev/null
+++ b/doc/PORTABILITY
@@ -0,0 +1,34 @@
+You may have heard from a certain person that cdrkit is not portable and you
+may need some help to decide whether you shall believe him/her or not. It is,
+as usual, recommended to make your own opinion before adopting someone elses
+which may be biased.
+
+What is portability? Portability is the ability for being compiled and
+deployed on a platform that an application supports. It is obvious that nobody
+can promise the unlimited portability especially not to operating systems to do
+not exist yet or that are long dead (dead like in: unsupported, unmaintained for
+many years, needing hardware which is not available in stores for many years).
+And there could always undocumented bugs which means that real life tests
+should be done on the target platform(s) again and again.
+
+Therefore, unlimited portability is pure utopia. It is required to define a
+certain degree of portability to meet the needs of the target user base.
+
+How does that work in scope of cdrkit? Main target are mainstream platforms.
+Currently, it supports Linux, FreeBSD, Cygwin (Win32), SunOS and AIX5l. This
+set should cover the majority of general purpose computer systems in the wild.
+
+Cdrkit sets some requirements on the targeted operating systems. However, most
+modern unix-like OS should be able to fullfill them. Those requirements
+include:
+
+ - an ANSI-C compiler, or a GCC port
+ - GNU make port
+ - Large File Support
+ - sane libc library
+ - some prerequisites to bootstrap CMake
+
+This cuts off support for really old operating systems, but... do you care? Do
+you need it? Or do you want to believe the tales of superiority through (just
+claimed) portability?
+
diff --git a/doc/READMEs/README.ATAPI b/doc/READMEs/README.ATAPI
new file mode 100644
index 0000000..8b2e601
--- /dev/null
+++ b/doc/READMEs/README.ATAPI
@@ -0,0 +1,589 @@
+
+The file attached below provides a short explanation about the nature of ATAPI
+and the support for it on various platforms. However, it was written for an
+old version of cdrtools by Joerg Schilling and completed with even older guides
+supplied by other authors, therefore parts of the content are no longer true or
+are not applicable anymore. Read and interpret with care!
+
+See README.ATAPI.setup for a quick setup guide for Linux.
+
+Eduard Bloch, 2006
+
+# @(#)README.ATAPI 1.3 04/05/20 Copyright 1997-2004 J. Schilling
+
+People (with a Linux only background) often ask me why do you depend on
+"ATAPI-SCSI emulation", why don't you support generic IDE?
+
+ Well first a statement: There is no single IDE burner out!
+ Even a CD-ROM cannot be used decently if you use only IDE commands.
+ Opening/closing the door, playing audio and similar things
+ cannot be done using vanilla IDE commands - you will need SCSI commands
+ to do this. But how do we do this with a drive that uses an IDE
+ interface?
+
+ ATAPI stands for ATA Packet Interface
+
+ The ATAPI standard describes method of sending SCSI commands over IDE
+ transport with some small limitations to the "real" SCSI standard.
+ SCSI commands are send via IDE transport using the 'ATA packet'
+ command. There is no SCSI emulation - ATAPI drives include native
+ SCSI command support. For this reason, sending SCSI commands to ATAPI
+ drives is the native method of supporting ATAPI devices. Just imagine
+ that IDE is one of many SCSI low level transport mechanisms.
+
+ This is a list of some known SCSI transports:
+
+ - Good old Parallel SCSI 50/68 pin (what most people call SCSI)
+ - SCSI over fiber optics (e.g. FACL - there are others too)
+ - SCSI over a copper variant of FCAL (used in modern servers)
+ - SCSI over IEEE 1394 (Fire Wire)
+ - SCSI over USB
+ - SCSI over IDE (ATAPI)
+
+ As you now see, the use of the naming convention "ATAPI-SCSI emulation"
+ is a little bit misleading. It should rather be called:
+ "IDE-SCSI host adapter emulation"
+
+Some naming explanations:
+
+ ATA Attachment Adapter
+ IDE Integrated Drive Electronics (A Drive that includes ATA)
+ ATAPI ATA Packet Interface
+
+When wodim has problems with ATAPI drives on Linux this usually is a Linux
+kernel problem. The Linux kernel maintainers unfortunately refuse to correct
+their current IDE driver system setup which does not support ATAPI by default.
+ATAPI _is_ SCSI over IDE transport. It is hard to understand why Linux still
+uses a default driver setup that is designed for IDE CD-ROM drives made
+before 1994 (using a IDE compat mode that only allows to use the drive
+read-only) and does not handle to send SCSI commands to ATAPI drives by
+default. This makes it hard for people who just started with Linux to do
+CD-writing on Linux if they own an ATAPI drive. Both Linus Torvalds and
+Alan Cox admit that they don't own a CD/DVD writer, how should they know about
+the problems?
+
+There are bugs with the DMA implementation that are known for many years
+but they don't get fixed.
+
+/*--------------------------------------------------------------------------*/
+Which Operating systems support ATAPI
+
+- AIX: Status unknown! Please report your experience...
+
+- Apple Mac OS X (Darwin): Supported
+
+- BeOS (libscg maps ATAPI to SCSI bus # >= 8
+
+- BSD/OS: Status unknown! Please report your experience...
+
+- FreeBSD:
+ - YES for the latest default kernel.
+ It includes finally ATAPI-Cam
+
+ - NO for the older kernels.
+ Yes, if you install a kernel patch from
+ Thomas Quinot <thomas@cuivre.fr.eu.org>
+ See http://www.cuivre.fr.eu.org/~thomas/atapicam/
+ and README.FreeBSD
+
+- HP-UX: It looks like ATAPI does not work correctly due to kernel bugs.
+
+ New information:
+ HP supports a HP A7853A B/C class machine (s700_800) with HP-UX-11.x
+ You need to install a patch:
+
+ Patch Name: PHKL_27224 Patch Description: s700_800 11.00 IDE/ATAPI
+ cumulative patch
+
+
+- Linux (unfortunately not in the default configuration)
+
+ - It works more or less if you include ide-scsi
+
+ - Linux-2.4.xx includes a CDROM Packet interface in the
+ IDE CD driver. For this driver libscg now includes
+ support in pre-alpha status. Use wodim dev=ATAPI -scanbus
+ to check for drives and e.g. wodim dev=ATAPI:0,0 ....
+ for writing. Note that this interface is not integrated into
+ the standard libscg device naming scheme. Support for
+ this interface has been included because it is the only
+ way to use a PCCARD/PCMCIA writer - trying to use ide-scsi
+ on a PCATA interface will cause a Linux kernel panic
+ or will block all ATAPI drives.
+
+ - Starting with Linux-2.5.45, there is a new experimental
+ ATAPI interface initiated by Linus Torvalds. Unfortunately,
+ this interface does not fit well into the rest of the Linux
+ SCSI kernel transport naming scheme. Wodim allows to
+ use this interface by calling e.g. wodim dev=ATA:1,0,0 ...
+
+ All Linux ATAPI transport implementations do not support DMA.
+ Current exceptions are:
+
+ - ide-scsi with block size 2048 and if DMA has been enabled
+
+ - The new experimental ATAPI interface starting with Linux-2.5.45
+ allows DMA if DMA has been enabled and the sector size is a
+ multiple of 4. This allows to use DMA for audio CDs and
+ when writing any type of CD in RAW mode.
+
+ Note that is a bad idea to first implement a new kernel
+ interface that also implements the named DMA implementation
+ bugs and later fix the DMA bug _only_ for this new
+ interface. It looks like the Linux kernel folks are not
+ very cooperative :-(
+
+ RAW mode is needed for many new and cheap drives that have bugs when
+ writing in cooked mode. If there is no DMA, you cannot write faster
+ than approx 16x.
+
+
+- NetBSD (releases 1.3 and newer)
+
+- NeXT: Status unknown! Please report your experience...
+
+- OpenBSD: (release 2.6 and newer)
+
+- OS/2 (you need to fetch and install ATAPI support first)
+ see: http://www.leo.org/pub/comp/os/os2/leo/drivers/dasd/daniatapi.zip/
+
+- OSF-1 / True64 Status unknown! Please report your experience...
+
+- SCO-OpenServer: Supported with 5.0.6 and non-public patch or with
+ 5.0.7. I don't know whether you need a patch for 5.0.7
+
+- SCO-UnixWare: partial support with UnixWare 7.1.3 - some SCSI commands
+ that are needed for cdda2wav and DVD writing are blocked.
+ 7.1.4 will have full ATAPI support.
+
+- SGI/IRIX: Status unknown! Please report your experience...
+
+- Solaris (you may need to use the USCSI transport interface to address
+ ATAPI if the IDE hostadapter idriver implementation does not follow
+ Sun's internal standards).
+
+ ATAPI works fine on Solaris 7 sparc and on Solaris 7/8 intel.
+
+ On Solaris 8 (intel) and newer, the ATAPI/SCSI subsystem is integrated
+ correctly according to Sun's SCSA white paper, so the 'scg' driver works.
+ This is not true for Solaris on sparc where the ATAPI driver do not conform
+ to Sun's internal structuring rules. You need to use the USCSI interface
+ on for ATAPI drives on Solaris sparc for this reason.
+
+ Solaris 8 sparc has a ATA DMA bug that prevents wodim from working at all.
+ There is a fix from Sun available: the patch 108974-16
+ Solaris 9 sparc works again, it has the fix for the ATA DMA bug included.
+
+ Newer versions of Solaris 9 disable DMA for CD-ROM drives on IDE.
+ Read README.solaris-x86-ATAPI-DMA to learn how this may be circumvented.
+
+- VMS: works on recent versions!
+
+- Win32 using a recent ASPI Layer supports ATAPI
+ You nay need to exclude mini port drivers (see README.win32).
+
+ Newer wodim versions also support the SPTI (SCSI Pass through ioctl).
+ Libscg uses SPTI by default if you are running NT-5.x or newer and are
+ administrator. With NT-4.x it may be possible to run wodim dev=SPTI:1,0.0 ...
+ But there are reports for blue screens (kernel crashes).
+
+- DOS DOS-7 from win98 includes a ATAPI aware aspi
+ For other versions have a look at README.msdos and use e.g. "oakaspi".
+
+/*--------------------------------------------------------------------------*/
+General hints:
+
+***********************
+NOTE: IDE/ATAPI doesn't have disconnect/reconnect! you cannot expect the needed
+ performance for CD-writing if you connect source and destination drive
+ to the same IDE cable.
+***********************
+
+If you never like to directly write a CD from CD-ROM source, this configuration
+seems to be the best:
+
+IDE 0 MSTR -> HD1
+IDE 0 SLAV -> HD2
+
+IDE 1 MSTR -> CD-writer
+IDE 1 SLAV -> CD-ROM
+
+If you like to write from both HD source and CD-ROM source, you should have
+the following configuration:
+
+IDE 0 MSTR -> HD1 (does _not_ hold CD mastering data)
+IDE 0 SLAV -> CD-Writer
+
+IDE 1 MSTR -> HD2 (holds CD mastering data)
+IDE 1 SLAV -> CD-ROM
+
+If cou cannot set up a decent cabling (e.g. because you use a notebook)
+you may try to use wodim -immed ...
+It runs slow commands in quick (immediate) return background mode and
+tries to wait between the write commands to allow to free the IDE cable
+so the wodim read process may fill the FIFO from the other drive
+on the same IDE cable.
+
+/*--------------------------------------------------------------------------*/
+The rest of this file is only valid for Linux!
+
+This was taken out of mails from From: Dave Cohen <dcohen@richmond.infi.net>
+and From: Gadi Oxman <gadio@netvision.net.il>
+(slightly modified marked ***JS *** except typo corrects)
+
+As all current Linux versions have ATAPI support for wodim,
+I removed the patch section. If you are running a Linux version
+that does not support ATAPI<->SCSI command transport, please upgrade.
+
+The basic driver design in Solaris would also allow to use ATAPI
+drives but unfortunately, Sun made a mistake in the mid-level design.
+If you want to use ATAPI drives with Solaris, ask Sun why they don't
+support SCSI passthrough to IDE although they are using a common driver
+concept.
+
+Please use cdrecord-1.6 final or later (if available), it includes the
+modifications needed for ATAPI drives and is still working with other
+SCSI drives. Older revisions of cdrecord do not support ATAPI drives.
+
+If you are using Linux Kernel version prior to 2.1.73 or prior to
+2.0.35, please upgrade before you try to compile and use wodim.
+
+In any case, you need to configure a kernel with ATAPI/SCSI hostadapter
+emulation. Read carefully the following instructions:
+
+In any case, you need to disable generic IDE/ATAPI CDROM support in
+order to make ATAPI SCSI emulation working.
+
+Many people ask why I use ATAPI-SCSI emulation.
+
+ The use of the naming convention "ATAPI-SCSI emulation" is a
+ little bit misleading. It should rather be called:
+ "SCSI host adapter emulation"
+
+ The ATAPI standard describes method of sending SCSI commands over IDE
+ with some small limitations to the "real" SCSI standard.
+ For this reason ATAPI-SCSI emulation is the native method of
+ supporting ATAPI devices.
+
+If you have problems to talk to the device when it is jumpered as "slave"
+try to use it as "master". If you connect a hard disk to the same IDE
+cable as the CD writer or if you try to read/write data from another drive
+that is connected to the same IDE cable as the CD writer you may get
+problems too.
+
+NOTICE:
+
+With the newer 2.1.x or 2.2.x kernels it seems to be possible to run
+SCSI/ATAPI hostadapter emulation and generic IDE at the same time by
+selectively telling the kernel what to use for which drive. However,
+this would not be needed if the Linux SCSI CD-ROM driver would be more
+up to date and supports standard conforming drives.
+
+Jörg Schilling <schilling@fokus.fhg.de>
+
+--------------------------------------------------
+Here is a hint from Alan Brown <alanb@manawatu.gen.nz>:
+
+To allow ATAPI cd and ide-scsi support on the same machine, add
+`hd<x>=ide-scsi` to the lilo.conf append entry, or use
+`hd<x>=ide-scsi` at the bootup lilo prompt.
+
+I have my HP-7200 RW drive as the primary drive on the second IDE
+bus, so the statement used is "hdc=ide-scsi"
+
+--------------------------------------------------
+
+Hope that the following is helpful to you.
+
+I recently purchased a HP-7110i CD-RW, which is the U.S. only version of
+what you have. The HP 7100 and 7110 CD rewritables use the ATAPI
+standard. Originally, the drives were not supported under Linux (due to
+some inconsistencies with SCSI translations between the kernel and the
+CD), but that problem has just recently been fixed. There are some kernel
+and wodim patches that have been made to support this device that have
+yet to be officially incorporated into cdwrite and the kernel. In order to
+get your drive supported under Linux, you will have to do the following:
+
+1. Get the proper version of cdrecord.
+
+As of this writing, I am just getting ready to test Joerg's new cdrecord.
+I am currently operational on cdrecord-1.5, so I know that works, and I
+have attached patches for that version.
+
+If you are in a hurry, you can download ver. 1.5, apply patches, and
+rock-n-roll. You may want to wait, though. Up to you ;). The version with
+ATAPI support is cdrecord-1.6alpha5. I'm not sure if the current kernel
+patches are valid for this version, but i'll know soon enough.
+**** They are valid **** JS
+
+BTW, the new version of xcdroast now supports cdrecord - this version
+is in beta testing, too (currently uses cdrecord-1.5 but cdrecord-1.6a5
+should work with the current xcdroast too).
+
+2. Upgrade to kernel version 2.0.31
+
+IDE/SCSI translation was first added in this kernel. Because your CD-RW is
+an ATAPI device, it will support SCSI command sets. The translation
+allows you to map the device as a SCSI generic device. This will allow
+cdrecord to recognize it as a SCSI device.
+**** 2.0.31 still needs patches, get 2.0.35 or later **** JS
+
+3. Get the patches and apply them
+
+Attached find kernel patches for kernel sources ide.h and ide-scsi.c, and
+cdrecord source scsi_cdr.c (version 1.5 only).
+**** Get cdrecord-1.6 or later **** JS
+
+3. Recompile kernel with SCSI emulation support
+
+If you do a "make menuconfig" or "make xconfig", select SCSI emulation
+under the category "Floppy, IDE, and other block devices".
+
+WARNING:
+Do not install SCSI support as a module - there is a bug in the makefile
+structure that will cause the compile to fail. Compile directly into the
+kernel.
+
+4. WARNING: Disable generic IDE/ATAPI CDROM support *** JS ***
+
+If you don't do this, the SCSI emulation will not work *** JS ***
+
+5. This is important too:
+You also need to enable SCSI and SCSI generic support *** JS ***
+
+6. Make sure that /dev/sg* exists.
+If they are missing, create them.
+
+Dave Cohen
+dcohen@richmond.infi.net
+(Patch instructions below)
+
+-----------------------------------------------------------------
+From: Danilo Fiorenzano <shade@juliet.gppsd.ab.ca>
+
+Anyway, here's what I did, using kernel version 2.0.33 I believe this
+is the proper way to get an HP-7100i to work (and as far as I can tell,
+any other IDE CD-writer unit):
+
+1) patch the kernel as described by README.ATAPI
+
+2) save your current kernel config to an alternate file, then run
+ "make mrproper"
+
+3) run 'make menuconfig' or 'make xconfig', then choose "load config
+ from alternate file" to restore the original configuration
+
+4) In "Floppy, IDE and other block devices", disable "IDE/ATAPI CD-ROM
+ support" and enable instead "scsi emulation"
+
+5) in "SCSI support" enable "SCSI support", "SCSI CD-ROM support" and
+ "SCSI generic support", everything directly in the kernel.
+
+6) compile, install kernel/modules, reboot. Now, if everything went
+ fine, your CDROM units should show up with a message like:
+ "hdb: HP CD-Writer+ 7100, ATAPI CDROM drive - enabling SCSI emulation"
+
+7) run "wodim -scanbus" to make sure wodim can see the unit and
+ talk to it. The end.
+
+Don't forget that now -all- of your CD drives are seen as -SCSI- units
+by all programs (/dev/scd0 etc.), so you might want to relink
+/dev/cdrom to the proper scd<n> in order to get xcdplay or whatever to
+work again.
+
+
+-------------------------------------------------------------------------------
+NOTE:
+
+1) Current wodim releases support ATAPI
+
+2) Linux 2.0.35 or Linux 2.1.73 or later include ATAPI support
+-------------------------------------------------------------------------------
+From whampton@staffnet.com Fri Jan 14 05:21:34 2000
+From: "W. Wade, Hampton IV" <whampton@staffnet.com>
+
+You may wish to include/append these notes to your ATAPI notes....
+
+I have my 4X Acer CD-R/RW ATAPI drive working with Linux. My platform
+is
+RedHat 6.1 with kernel 2.2.14. My first ATAPI CD device is a DVD with
+the second
+the CD-R. I made the following changes:
+
+Steps:
+
+1. Identify which device is the CD-R -- in my case the fourth ATAPI
+device, /dev/hdd.
+
+2. Compile the kernel to include ATAPI CDROM and SCSI emulation:
+
+ Under the block devices menu:
+ Y or M Include IDE/ATAPI CDROM support
+ Y or M SCSI emulation
+
+3. Build and install the upgraded kernel.
+
+4. If you selected modules, add them to the /etc/conf.modules file.
+
+5. In the /etc/lilo.conf file add an append line for ide-scsi, in my
+case:
+ append = "hdc=ide-scsi hdd=ide-scsi"
+
+6. Reboot to the new kernel and make sure the ide-scsi module is loaded
+
+ /sbin/lsmod | grep ide-scsi
+
+7. Make a link from the proper SCSI device to a symbolic, e.g.,
+/dev/cdrom:
+ In my case the DVD is the first CD, hence appears as /dev/scd0 to
+scd7
+ (cat /proc/scsi/scsi to get a full list of devices -- the first
+CD-ROM will
+ appear as scd0, etc.) With the current ATAPI-SCSI module, each CD
+
+ device appears as 8 SCSI devices (different logical units). If
+you have
+ two devices, like I do, you may have to make a node for the second
+device.
+ In my case I had to make scd8:
+
+ cd /dev
+ mknod scd8 b 11 8
+
+ Then make links, in my case:
+
+ ln -s scd0 cdrom
+ ln -s scd8 cdr
+
+ Note, many CD-ROM player programs expect the audio CD drive to
+ be located at /dev/cdrom (xplaycd, etc.), hence this link is
+recommended.
+
+ If you try to use /dev/hdc (or wherever your CD or CD-R is)
+after loading
+ the ide-scsi module, you may not be able to mount CD's or play
+audio
+ discs -- you have to use the new SCSI names for the device.
+
+8. Fix your /etc/fstab file to mount the /dev/cdrom and /dev/cdr
+
+
+/*--------------------------------------------------------------------------*/
+From: Eduard Bloch <edi@gmx.de>
+
+Situation:
+ Linux: Kernel 2.2.15 (Debian package kernel-image-2.2.15)
+ Distribution: Debian Potato (deep freeze), i386
+ Devices: one CDRW-Writer, one CDROM-drive, both ATAPI
+
+1. Become root, try "grep hd.: /var/log/kern.log" to find out where your
+ ATAPI-devices are connected to (hd?-names).
+2. Edit your boot configuration file, eg. /etc/lilo.conf if you use
+ lilo or the batch-file if you boot via loadlin.
+3. Find a line where you can append additional kernel parameters, eg.
+ "append=" in lilo.conf or the loadlin-line in the batch file.
+4. Append sth. like this: "hdb=ide-scsi hdc=ide-scsi max_scsi_luns=1"
+ The hdX-parameters defines devices that should be mapped to SCSI
+ latter. You may do it with non-writers too, since the emulation layer
+ is almost complete, or let them out so the devices will use their
+ native drivers.
+5. Save the file, reinstall the bootloader (ie. running "/sbin/lilo")
+6. Call "modconf", load "sg" and "ide-scsi" from the SCSI-section
+7. Reboot Debian, watch while booting, you should see a line like this
+ "Detected scsi CD-ROM sr0 at scsi0, channel 0, id 0, lun 0".
+ Your old ATAPI devices virtually don't exist any longer, use the
+ SCSI equivalents instead.
+8. Become root, setup devices:
+ cd /dev
+ MAKEDEV sg scd
+ ln -s scd0 cdrom # NOTE: or cdrw, first check which drive is here
+ ln -s scd1 cdrw # NOTE: see above, maybe cdrom
+ Check the new SCSI settings:
+ wodim -scanbus
+ Setup wodim's environment - edit /etc/wodim.conf:
+ CDR_DEVICE=cdrw
+ cdrw=1,0,0 4 8m
+ cdrom=1,2,0 0 0m
+ Input the right values, the fields are described in the manpage
+ of wodim. Alternatively, you may use this values as
+ wodim-parameter or take a frontend with an own configuration
+ scheme, then you don't need to modify /etc/wodim.conf.
+9. It's done! Insert a CD and try "wodim -v -toc"
+/*--------------------------------------------------------------------------*/
+He had constant buffer underrun problems:
+
+From: "Trenton D. Adams" <trenton.adams@telusplanet.net>
+
+I enabled DMA, and 32-bit mode on the CD-Writer using "hdparm".
+This fixed the writing problem.
+
+/*--------------------------------------------------------------------------*/
+From: "Mario Moder" <clay-man@freenet.de>
+-----
+TEAC CD-W54E
+
+I recently installed a TEAC CD-W54E (an ATAPI CD-RW-Recorder) and I had
+problems with buffer underruns and other errors when burning a CD (with
+Linux and Windows 2000). My system has an old ASUS P/I-P55T2P4 Pentium
+mainboard with Intel PCI-Bus-Master-IDE (I think the chipset is an Intel
+430HX and the IDE controller is an 82371SB). The harddisk is the master on
+the primary IDE channel, and the CD-Recorder is the master on the secondary
+IDE channel.
+
+After turning off DMA for the CD-Recorder AND the harddisk, the drive had no
+longer problems with burning a CD. You can try the following things to make
+it work, if you have similar problems with a similar hardware configuration:
+
+For Linux (Kernel 2.2.19):
+Turn off "Enable DMA by default" in the kernel (and then compile a new
+kernel), if you had it turned on or use "hdparm" to turn of DMA for both the
+CD-Recorder and the harddisk
+
+For Windows 2000:
+In the Device Manager go to "IDE ATA/ATAPI-Controller" and open the
+properties for the first and second IDE channel. There you change the mode
+of the devices from DMA to PIO.
+-----
+
+/*--------------------------------------------------------------------------*/
+
+Hints for the Linux Packet code in ide-cdrom.c:
+
+ WARNING! It seems that this driver does not allow to send all
+ SCSI commands. A command that definitely fails is READ FULL TOC.
+ For this reason, you cannot read those 'defective' audio CDs
+ with broken TOC when you use this interface.
+
+ Thanks to Alexander Kern <alex.kern@gmx.de> for the idea and first
+ code fragments for supporting the CDROM_SEND_PACKET ioctl() from
+ the cdrom.c kernel driver. Please note that this interface in principle
+ is completely unneeded but the Linux kernel is just a cluster of
+ code and does not support planned orthogonal interface systems.
+ For this reason we need CDROM_SEND_PACKET in order to work around a
+ bug in the linux kernel that prevents to use PCATA drives because
+ the kernel panics if you try to put ide-scsi on top of the PCATA
+ driver.
+
+ The code is currently in "status nascendi" but usable with some trade offs.
+
+ To use: call e.g.
+
+ wodim -scanbus dev=ATAPI:
+
+ wodim -dao -v speed=24 dev=ATAPI:0,0 ....
+
+ Be careful! This code is only needed in order to be able to use
+ PCATA CD-writers on notebooks because there is a severe kernel bug.
+ Unfortunately, this bug causes the kernel to hang (and force you
+ to reboot) if you try to call:
+
+ wodim -scanbus
+
+ without the dev=ATAPI: option.
+
+ In this case wodim will hang infintely and unkillable
+ in open("/dev/sg1", 2) => you need to reboot :-(
+
+ Repeat by: Insert a PCATA CD-Writer in a Sony VAIO notebook and run
+ wodim -scanbus.
+
diff --git a/doc/READMEs/README.ATAPI.setup b/doc/READMEs/README.ATAPI.setup
new file mode 100644
index 0000000..e283342
--- /dev/null
+++ b/doc/READMEs/README.ATAPI.setup
@@ -0,0 +1,87 @@
+Howto setup an ATAPI CD-RW/DVD+-RW recorder on Debian/Ubuntu
+============================================================
+
+This guide should be applicable to most kernel 2.6 using distributions of
+GNU/Linux. For installations with kernel 2.4, continue reading below.
+
+Kernel 2.6.*
+============
+
+If you have just one CD writer in your computer, CD-writing should work out of
+the box. There should be a symbolic link /dev/cdrw which points to your actual
+CD-Writer's device (e. g. /dev/hdb). If the link is not present (eg. the
+system is not using udev/devfs) or if you want to use a different device as
+default, you can configure the device in /etc/wodim.conf:
+
+ CDR_DEVICE=/dev/hdd
+
+would configure the default device to be /dev/hdd, i. e. the slave
+device on the secondary IDE bus.
+
+You can always override this default setting with wodim's "dev"
+option:
+
+ wodim dev=/dev/hdc ...
+
+Only users part of the system group "cdrom" are able to write CDs.
+If you wish to allow non-root users to write CDs then add your users to the
+cdrom group ("adduser user cdrom") and let the user completely logout and
+re-login.
+Note: with certain kernel versions wodim can fail with this message:
+"wodim: Operation not permitted. Cannot send SCSI cmd via ioctl"
+In this case it still does need the suid bit - please send patches if you have
+identified the reason of that problem.
+
+Kernel 2.4.* (for 2.5/2.6, see above)
+=====================================
+
+Where we start:
+ Linux: Kernel 2.4.20-bf2.4 (Debian package kernel-image-2.4.20-bf2.4)
+ Distribution: Debian Woody 3.0r2, i386
+ Devices: one CDRW-Writer, one CDROM-drive, both ATAPI
+
+1. Become root, try "grep hd.: /var/log/kern.log" to find out where your
+ ATAPI-devices are connected to (hd?-names).
+2. Edit your boot configuration file, eg. /etc/lilo.conf if you use
+ lilo or the batch-file if you boot via loadlin.
+3. Find a line where you can append additional kernel parameters, eg.
+ "append=" in lilo.conf or the loadlin-line in the batch file.
+4. Append sth. like this: "hdb=ide-scsi hdc=ide-scsi max_scsi_luns=1"
+ The hdX-parameters defines devices that should be mapped to SCSI
+ latter. You may do it with non-writers too, since the emulation layer
+ is almost complete. Or omit some so the devices will use their
+ native drivers (eg. ide-cd).
+5. Save the file, reinstall the bootloader (ie. running "/sbin/lilo")
+6. Call "modconf" in a console or xterm, enter the section
+ "kernel/drivers/scsi", load "sg" and "ide-scsi"
+7. Reboot Debian, watch while booting, you should see a line like this:
+ "Detected scsi CD-ROM sr0 at scsi0, channel 0, id 0, lun 0".
+ Your old ATAPI devices virtually don't exist any longer, you cannot refer to
+ /dev/hd* as CDROM drives. Use the SCSI equivalents instead, /dev/sr*.
+8. Become root, setup devices:
+ cd /dev
+ MAKEDEV sg scd
+ ln -s scd0 cdrom # NOTE: or cdrw, first check which drive is here
+ ln -s scd1 cdrw # NOTE: see above, maybe cdrom
+ Check the new SCSI settings:
+ wodim -scanbus
+ Setup wodim's environment - edit /etc/wodim.conf:
+ CDR_DEVICE=cdrw
+ cdrw=1,0,0 4 8m
+ cdrom=1,2,0 0 0m
+ Insert the right values, the fields are described in the manpage
+ of wodim. Alternatively, you may use these values as
+ wodim-parameter or take a frontend with an own configuration
+ scheme, then you don't need to modify /etc/wodim.conf.
+ The columns must be separated by tabs.
+9. It's done! Insert a CD and try "wodim -v -toc". To create your first CD-ROM, try:
+
+ mkisofs -v -r -J /directory/to/be/written | wodim -v -dummy -
+
+ (read wodim(1), "man 1 wodim", for details)
+
+10. If you wish to allow non-root users to write CDs, you must give them
+ permissions to do so. Set suid-root permissions on the executable,
+ then add your users to the cdrom group ("adduser user cdrom") and
+ let the user completely logout and re-login.
+
diff --git a/doc/READMEs/README.audio b/doc/READMEs/README.audio
new file mode 100644
index 0000000..7e2d7c9
--- /dev/null
+++ b/doc/READMEs/README.audio
@@ -0,0 +1,50 @@
+Why do I hear only noise from my first audio CD?
+
+You may have a byte swapping problem, try wodim -swab
+but note that is is most unlikely that you need to use the -swab
+option from wodim unless your input files are broken.
+It makes more sense to find out why the inout files are not OK.
+
+wodim assumes Motorola/Network byte order (big-endian) on input
+regardless of the byte order of the CD-Recorder. If wodim
+encounters a .wav file, byte order is corrected to match the byte order
+of the .wav file.
+
+wodim by default uses Track at once. This always gives 2 seconds
+pause between two audio tracks and loweres the audio quality.
+
+For best audio CD quality, use wodim -dao (to write in Session At Once)
+ot wodim -raw (to write in RAW mode). Note that there are a lot of drives
+notably from Lite-ON that have defective firmware and will write defective
+CDs if you use either TAO or SAO mode. In RAW mode, wodim has the
+full control over the complete CD and the chance that the CD is OK
+is much higher.
+
+The 2 seconds pause between two audio tracks is the CD ***standard***
+
+The standard says:
+ Each track starts with 2 seconds of silence
+ followed by at least 4 seconds of audio data.
+
+For that reason the 2 second pause is generated by the CD-R drive in
+Track at once (TAO) mode.
+
+CD's that have no pause between two tracks are illegal (compared to RED BOOK).
+These illegal disks may be made with Disk At Once (DAO) only.
+In DAO mode the writing software needs to send the 2 seconds pause as
+binary zeroes and therefore is able to create illegal disks by
+sending audio data instead.
+
+Some drives don't accept to write illegal disks even in SAO mode.
+In this case, use the RAW mode. In RAW mode, the drive does not even
+"know" what is going on and thus cannot prevent you from writing such
+a disk.
+
+This audio data (the last two seconds of a track in this case)
+however are part of the next track from viewing the TOC of the disk.
+Digital Audio Extraction programs that work correctly (as intended by the
+CD standard) split the content of a CD into files by including the
+pre-gap (usually holding 2 seconds of pause) at the end of the previous
+track.
+
+Eduard Bloch, based on documentation from Joerg Schilling
diff --git a/doc/READMEs/README.cdplus b/doc/READMEs/README.cdplus
new file mode 100644
index 0000000..24deb0d
--- /dev/null
+++ b/doc/READMEs/README.cdplus
@@ -0,0 +1,85 @@
+Wodim and genisoimage allow you to create multi-session CD's with all
+supported drives.
+
+According to www.cd-info.com, a CD+ is a CD with two sessions.
+The first session is an audio session, the second session a data
+session.
+
+Creating a CD+ is first writing an audio session in
+multi session mode and then writing a data session.
+
+If you like to append a filesystem to a audio CD, first extract the
+CD by calling:
+
+ icedax -B -vall
+
+This first audio session may be written in TAO mode with the command
+
+ wodim -multi -audio file1 ....
+
+or in DAO mode with the command
+
+ wodim -dao -multi -useinfo -audio file1 ....
+
+To add the second session that contains the data track, you need
+to create an ISO-9660 file system that starts not at sector 0.
+
+With the current genisoimage, you must use the following method:
+
+- First call wodim -msinfo for your prepared multi-session audio CD.
+
+ you will get something like 0,12345
+
+- Now call genisoimage:
+
+ genisoimage -o fs.raw -C 0,12345 root_directory_for_new_cd
+
+ replace 0,12345 with your actual wodim -msinfo output.
+
+the image in fs.raw may now be written with wodim as second session.
+
+See my README.multi for more info on how to create multi session CD's
+
+
+The procedure again in short form:
+
+ icedax -vall -B
+
+ wodim -multi -audio audio_tracks ....
+or
+ wodim -dao -useinfo -multi -audio audio_tracks ....
+
+ wodim -msinfo ....
+ (output is e.g. 0,12345)
+
+ genisoimage -R -o cd_plus.raw -C 0,12345 root_dir_of_fs
+
+ wodim -data cd_plus.raw
+or
+ wodim -multi cd_plus.raw
+
+
+Note: If you want to create an HFS hybrid as the data track, then you must
+use the '-part' option to genisoimage. Otherwise, the data track will be mounted
+as an ISO9660/Joliet CD when used on a Mac.
+
+Jörg
+
+Edited for cdrkit by Christian Fromme <kaner@strace.org> and Eduard Bloch
+
+This describes the programs as shipped with cdrkit, a spinoff from the
+cdrtools project. However, the cdrtools developers are no longer
+involved in the development of this spinoff and therefore shall not
+be made responsible for any problem caused by it. Do not try to get
+support for this program by contacting the original authors.
+
+If you have support questions, send them to
+
+debburn-devel@lists.alioth.debian.org
+
+If you have definitely found a bug, send a mail to this list or to
+
+submit@bugs.debian.org
+
+writing at least a short description into the Subject and "Package: cdrkit"
+into the first line of the mail body.
diff --git a/doc/READMEs/README.cdtext b/doc/READMEs/README.cdtext
new file mode 100644
index 0000000..33df110
--- /dev/null
+++ b/doc/READMEs/README.cdtext
@@ -0,0 +1,65 @@
+CD-Text Usage (to copy CD-Text from master CD):
+
+ icedax -D 6,0 -vall -B # To extract audio information
+ wodim dev=6,0 -vv -toc # To extract CD-Text information
+
+ and then
+
+ wodim dev=6,0 -v -dao textfile=cdtext.dat -useinfo *.wav
+ or
+ wodim dev=6,0 -v -raw96r textfile=cdtext.dat -useinfo *.wav
+
+ If the CD-Text information contains more CRC errors than
+ wodim can correct, you need to reload the CD and to
+ re-read the CD-Text information from the master disk.
+
+ Writing of CD-Text is supported for all drives that support
+ CD-Text in SAO write mode and for all drives that support
+ to write in RAW/RAW96R mode (use -raw96r in this case).
+
+ NOTE: not all writers that support MMC SAO mode support
+ to write CD-Text in this write mode.
+ If you have a drive that does not support CD-Text
+ but supports RAW/RAW96R mode use this mode as
+ in RAW/RAW96R mode the drive does not need to know
+ about CD-Text. This way even old drives like the
+ Plextor PX-R 412C will write CD-Text.
+
+ NOTE that icedax will read CD-Text and fill in the
+ CD-Text fields in the *.inf files if vou use -vall.
+
+ The new icedax option cddb= allows you to tell icedax to
+ retrieve CDDB information from freedb.freedb.org.
+ cddb=0 means ask if ambiguous, cddb=1 means take first entry.
+ The information in this case is filled into the fields
+ in the *.inf files.
+
+Creating a CD with CD-Text based on CDDB information from freedb.freedb.org:
+
+ Tell icedax to fetch data from freedb.freedb.org, call
+
+ icedax -D 6,0 -vall -B cddb=1 # To extract audio information/fetch CDDB data
+
+ and then call
+
+ wodim dev=6,0 -v -dao -text -useinfo *.wav
+ or
+ wodim dev=6,0 -v -raw96r -text -useinfo *.wav
+
+
+If you like to create your own CD-text data for a CD use the
+following method:
+
+ First extract all tracks with icedax -vall (see above),
+
+ then edit the *.inf Files and add album and song titles.
+
+ Now call wodim as if the *.nf files contain CD-Text
+ information.
+
+ Note that it is recommended to use less that 160 characters
+ for a single string.
+
+Source: README.cdtext from cdrtools package
+Edited for cdrkit by Christian Fromme <kaner@strace.org> and Eduard Bloch
+
diff --git a/doc/READMEs/README.copy b/doc/READMEs/README.copy
new file mode 100644
index 0000000..dc78169
--- /dev/null
+++ b/doc/READMEs/README.copy
@@ -0,0 +1,53 @@
+Ho to copy CD's and CD-R/CD-RW's
+
+Copying audio CD's:
+
+If you want to copy audio CD's, look for 'icedax'.
+
+Copying data CD's:
+
+The best way to copy a data disk is to copy the raw data on the master CD.
+This may be done by reading the data from the raw device by using 'readom'.
+
+
+NOTE: All CD-R's written in Track At Once mode end in two unreadable
+ run-out sectors. If the disk has been written with a Yamaha CD-R100
+ or with a Yamaha CD-R102, there are even more run-out sectors.
+
+For this reason, you will not be able to read such a CD correctly with 'dd'.
+
+I recommend to write all disks in Disk at Once mode if your drive
+is supported in DAO mode with wodim. In addition, you may wish to
+add padding (see wodim / genisoimage man pages).
+
+If you want to copy such a CD directly with wodim, you may call:
+
+ wodim -v dev=... -isosize /dev/cdrw
+
+But this may fail if the master gives read errors. To copy such a CD to a file
+you may use the program 'readom' from this package
+
+Call 'readom [target] [lun] [scsibusno]' and select function 11.
+Or call readom -help to get alternate usage.
+To prevent readom from reading the run-out sectors, reduce the
+number of sectors to copy by 2.
+
+Recent readom versions may be called: readom dev=b,t,l f=outfile
+To reduce the numbers of sectors to copy you may use the sectors= option.
+
+If the master disk is made of several partitions (like a Solaris boot CD),
+the best way to copy a CD is to use the program 'readom'. It ignores
+the partition info and does raw SCSI reads.
+
+If you like to copy audio CD's in a way that preserves as much accuracy as
+possible, use:
+
+icedax -vall -D... -B
+wodim -v dev=... -dao -useinfo *.wav
+
+This will preserve pre-gap sizes, indices ...
+
+
+Source: README.copy from cdrtools package, version 2.01.01a08
+Edited for cdrkit by Christian Fromme <kaner@strace.org> and Eduard Bloch <blade@debian.org>
+
diff --git a/doc/READMEs/README.multi b/doc/READMEs/README.multi
new file mode 100644
index 0000000..d7d3457
--- /dev/null
+++ b/doc/READMEs/README.multi
@@ -0,0 +1,209 @@
+Creating multi-session CDs/DVDs Mini Howto FAQ
+
+Multi-session filesystems are a trick that comes from the Kodak photo CD.
+The OS mounts the last session that contains the sum of the current session
+and all previous sessions.
+
+To test (with Linux):
+
+ - create a iso-9660 filesystem image with genisoimage.
+ - genisoimage is included in the cdrkit release.
+ - use the -R flag to add Rock Ridge extensions (this is important).
+
+Assuming that the CD-R drive is connected to target 2 on the SCSI bus.
+
+Write the first session with:
+
+wodim -v speed=2 dev=2,0 -eject -multi isoimage.raw
+
+Note that all Sony drives do no support XA2 disks in firmware - read README.sony
+for more information.
+
+This must be a iso9660 image with Rock Ridge extensions (see above)
+
+Note the number of sectors written and check the disk, it should be mountable.
+
+Next step is to check if wodim is able to retrieve the following data:
+
+ 1) The first block (sector) number in the first track of the last session
+ This must be '0' in our case.
+
+ 2) The next writable address in the unwritten session following the current.
+ This should be the number of sectors written in the first
+ run + ~ 11400 sectors for about 22MB lead out/in
+
+ For the first additional session this is 11250 sectors lead-out/lead-in
+ overhead + 150 sectors for the pre-gap of the first track after the
+ lead-in = 11400 sectors.
+
+ For all further session this is 6750 sectors lead-out/lead-in
+ overhead + 150 sectors for the pre-gap of the first track after the
+ lead-in = 6900 sectors.
+
+To get this information type:
+
+wodim -msinfo dev=2,0
+
+The output should be two numbers separated by a comma.
+
+ e.g.: 0,204562
+
+The first number is (1), the second number is (2).
+
+2nd session:
+You should create a directory that contains a second directory with data in it
+for this purpose.
+
+ e.g.:
+ first_dir/
+ second_dir/
+ file_1
+ file_2
+ ...
+
+call:
+
+On Linux:
+genisoimage -o isoimage_2.raw -R -C xx,yy -M /dev/cdwriter_blk_dev first_dir
+
+On SunOS:
+genisoimage -o isoimage_2.raw -R -C xx,yy -M target,lun first_dir
+
+Note that the name "first_dir" is not important.
+
+If you still keep the old raw image of the first session and there is only
+one previous session on the CD you may also call:
+
+genisoimage -o isoimage_2.raw -R -C xx,yy -M isoimage.raw first_dir
+
+
+The argument of -C is the output of wodim -msinfo
+- On Linux, the argument of -M is a device that would allow you to mount
+ the current CD in the CD-writer
+- On SunOS, target and lun refer to the SCSI target and lun of the
+ CD-R device with the same notation as for wodim dev=xxx,yyy .
+
+Note that you can also use the -msifile=... option of wodim to store this data
+in a reliable way. This is usefull for scripting.
+
+If you want to check, whether genisoimage make everything right, you should create
+another image by using the following command line.
+
+On Linux:
+genisoimage -o isoimage_2.raw -R -C xx,0 -M /dev/cdwriter_blk_dev first_dir
+
+On SunOS:
+genisoimage -o isoimage_2.raw -R -C xx,0 -M target,lun first_dir
+
+Where xx is the first number of the pair returned by wodim -msinfo
+
+You may check ***this** image by mounting it with my "fbk" on Solaris
+or the loopback driver on Linux.
+
+On Linux type:
+ mount isoimage_2.raw -r -t iso9660 -o loop /mnt
+
+On SunOS type:
+ mount -r -F fbk -o type=hsfs /dev/fbk0:isoimage_3.raw /mnt
+
+For Solaris 8 and later you may also use the Sun lofi driver (see README.sun-lofi)
+
+If you list /mnt, you should see all directories that have been in the first
+session and the directory "second_dir". If you try to read a file from the
+first session, you will get an I/O error or bad data (depending on the
+block address), don't worry about that. If you try to read a file from
+the second session, you will see everything correctly.
+
+To write the second session to CD, call:
+
+wodim -v speed=2 dev=2,0 -eject -multi isoimage_2.raw
+
+If you mount this CD, you should see the first session and the second directory
+from 2nd session added to the root directory of the CD.
+
+
+Additional check:
+
+call:
+
+wodim -msinfo dev=2,0
+
+The first number should be the first writable address which was retrieved by the
+first call to wodim -msinfo after creating the first session.
+The second number should be the first number + number of sectors of the second session
++ ~ 11400 sectors.
+
+Note: The first lead-out is 1:30 (6750 sectors) the lead-in is 1:00 (4500 sectors)
+All following sessions need only 0:30 for lead-out (2250 sectors), the lead-in
+is also 1:00. So in theory, the can be 44 sessions on s 74 minute disk if you
+take into account that the minimum track size is 4 seconds.
+
+The total amount of the overhead is 11250 + 150 sectors for the first additional
+session and 6750 + 150 sectors for all subsequent sessions.
+The 150 additional sectors are the pre-gap sectors for the first track after
+the current session.
+
+Some notes on multi-session CD's that contain only Joliet but no Rock Ridge:
+
+Joliet is a really bad idea in general:
+
+- There is no way to find a relation between a ISO-9660 name and a Joliet
+ name. If the file has a size, you may try to match the starting sector #
+ but if the size in 0 it's impossible.
+
+
+- Joliet does not allow long filenames (it limits names to 64 chars).
+
+- Joliet does not allow all (usually used) characters in filenames.
+
+ All code points between (00)(00) and (00)(1F), inclusive. (Control Characters)
+ (00)(2A) '*'(Asterisk)
+ (00)(2F) '/' (Forward Slash)
+ (00)(3A) ':' (Colon)
+ (00)(3B) ';' (Semicolon)
+ (00)(3F) '?' (Question Mark)
+ (00)(5C) '\' (Backslash)
+
+ While '/' is not a real problem ;-) other characters may cause trouble.
+
+All notes above prevent you from doing reliable multi-session if the CD does
+only contain Joliet but des not contain Rock Ridge attributes.
+
+In addition, please read README.joliet in the genisoimage directory.
+
+This is the answer to a commonly asked question is why can't I continue a
+multisession CD that has been started on a Microsoft system using genisoimage.
+
+
+Note: It is not possible to create a multi-session HFS CD. If you create
+a multi-session CD using any of the HFS options, then each new HFS
+session will ignore HFS files from any previous sessions. A warning will
+be printed if you attempt this. However, if you use the '-part' option to
+genisoimage for each session you create, then each session will appear as
+separate volumes when mounted on a Mac. In this case, it is worth using the
+'-V' or '-hfs-volid' option to give each session a unique volume name,
+otherwise each "volume" will appear on the Desktop with the same name.
+
+
+Joerg Schilling
+
+Edited for cdrkit by Christian Fromme <kaner@strace.org> and Eduard Bloch
+
+
+This describes the programs as shipped with cdrkit, a spinoff from the
+cdrtools project. However, the cdrtools developers are no longer
+involved in the development of this spinoff and therefore shall not
+be made responsible for any problem caused by it. Do not try to get
+support for this program by contacting the original authors.
+
+If you have support questions, send them to
+
+debburn-devel@lists.alioth.debian.org
+
+If you have definitely found a bug, send a mail to this list or to
+
+submit@bugs.debian.org
+
+writing at least a short description into the Subject and "Package: cdrkit"
+
+
diff --git a/doc/READMEs/README.netscsid b/doc/READMEs/README.netscsid
new file mode 100644
index 0000000..07c3672
--- /dev/null
+++ b/doc/READMEs/README.netscsid
@@ -0,0 +1,145 @@
+The Remote-SCSI protocol gives you SCSI-Anywhere features.
+
+The protocol used by netscsid is based on rscsi from the cdrtools, developed by
+Joerg Schilling. However, no guarantee for the compatibility or reliability can
+be made. This documentation is based on rscsi documentation from Joerg
+Schilling, but is not identical to the original.
+
+There are three possible ways to control access to the remote users:
+
+ - Let the remote scsi lib log in as a standard user.
+ In this case netscsid will be called via sh -c netscsid /usr/sbin/netscsid
+ NOTE: In this case, netscsid must be installed suid root.
+ --- This would need to allow any valid local user to access SCSI ----
+ It could be a security problem.
+
+ - Log in as root and call netscsid via sh -c netscsid
+ NOTE that this will fore you to allow remote logins as root
+ which is considered to be a security hole.
+
+ - Create one or more special user(s) that have netscsid
+ as login shell with their own home directory.
+ You then may create special .rhosts files for each user.
+ NOTE: In this case, netscsid must be installed suid root.
+ **** This is the preferred method ****
+
+To enable remote SCSI via the login shell method you should do the following:
+
+ - Install netscsid into /usr/sbin. It can be set suid-root if neccessary, see
+ security section below.
+
+ - Install a file /etc/netscsid.conf and define access rights.
+ Without this file, netscsid will not work at all.
+ The template for this file is: netscsid/netscsid.dfl
+
+ - For the special user method, create a user account. This can be done with a
+ frontend like adduser or useradd, if available. The user should have /usr/sbin/netscsid as the login shell.
+ If there is no frontend tool, try this:
+
+ + Add an entry to /etc/passwd in the form:
+
+ netscsid:x:1999:1000:Tape:/home/netscsid:/usr/sbin/netscsid
+
+ (modify this according to your OS). And don't forget to
+ modify /etc/shadow the way it needs to be on your OS.
+
+ + Create the home directory for this user, adapt the user/group ownership
+ on this directory.
+
+ - if you use SSH as the login shell (via appropriate RSH environment variable
+ or a symlink to "rsh" which is the case for many Linux distribution),
+ consult the ssh documentation for details.
+ Note that SSH requires sufficiently powered client/server systems to
+ encrypt/decrypt data in realtime.
+
+ - if you use traditional rsh, add a .rhosts file to this directory to allow
+ access to all users you like (see rsh documentation)
+
+NETSCSID Security:
+
+- When netscsid starts, it checks if /etc/netscsid.conf exists.
+ If not, it dies.
+
+- If netscsid is not called by a user listed in /etc/netscsid.conf
+ it dies.
+
+- To access a SCSI target there must be an entry that lists the user
+ rcsi hast been started from, the hostname and the SCSI target.
+
+ netscsid compares the hostname field in /etc/netscsid.conf
+ to the peername retrived from STDIN:
+
+ - legal host name IP connection
+ - "ILLEGAL_SOCKET" Not an IP socket
+ - "NOT_IP" Not a socket
+
+NETSCSID Security hints:
+
+- Do not generally allow other users to see your boot disk via NETSCSID.
+ All people who see this disk may edit your passwd file. This especially
+ applies to suid-root usage. For non-suid-root, check the access permissions.
+
+- If you are in doubt, only export CD-ROM drives, scanners and similar
+ devices that are not directly security sensitive.
+
+If anybody sees a security hole in my security precautions, please send me a mail!
+
+NETSCSID usage:
+
+- To use remote SCSI devices you need to know how to access a specific remote
+ SCSI target.
+
+ - dev=REMOTE:host: or dev=REMOTE:host
+ will allow you to do SCSI bus scanning while you log in as yourself
+
+ - dev=REMOTE:user@host: or dev=REMOTE:user@host
+ will allow you to do SCSI bus scanning while you log in as "user"
+
+ If you use the setup described above, you should use:
+
+ dev=REMOTE:netscsid@babbel:
+
+ to do SCSI Bus scanning on host babbel
+
+ - To access a specific SCSI device, you must specify
+ dev=REMOTE:host:<target spec> or dev=REMOTE:user@host:<target spec>
+ <target spec> is the SCSI target specification as it is needed
+ on the remote host
+
+ dev=REMOTE:netscsid@babbel:1,3,0
+
+ Will let you log in as netscsid on host babbel and open Target 3 lun 0
+ on SCSI bus #1
+
+ - If you use wodim -vv ...., wodim will on startup print some
+ information about the remote libscg version used for the connection.
+
+- To be able to use the remote SCSI client code from win32 you need to create
+ a file /etc/passwd with a correct entry for the user you are on win32.
+ Call 'id' to get the right user id.
+ Note that remote SCSI has not yet been tested on Win32.
+
+NETSCSID speed:
+
+- On a Ultra-10 running Solaris 8, the command overhead time is 400 usec.
+ You may achieve up to 9900 kB/s via a 100MB/s ethernet connection
+ between two of such machines.
+
+- With 100 MB/s, 12x recording should be no problem.
+
+- With 10 MB/s, 4x recording is the maximum. Do tests before!
+
+- Logging into a remote machine and running wodim on the remote machine
+ causes the buffer cache on that machine to be trashed. The main user
+ is disturbed.
+
+- Doing cdrecording via Remote SCSI causes only the netscsid command with less
+ than 200kB to be needed on the remote machine hosting the CD recorder.
+ The main user on that machine is not disturbed.
+ The buffer cache of the machine running wodim is trashed.
+
+- It is desirable to use a Burn-Proof recorder to make sure that network
+ load will not cause buffer underruns.
+
+
+- USER= test and test for hostname are using a pattern matcher.
diff --git a/doc/READMEs/README.sony b/doc/READMEs/README.sony
new file mode 100644
index 0000000..3ee6da6
--- /dev/null
+++ b/doc/READMEs/README.sony
@@ -0,0 +1,31 @@
+The Sony CDU-924 was the first drive that has no hardware support
+for CDROM XA2 mode 1. If you want to create a multi session disk,
+you need to switch back to -data (plain CD-ROM)
+
+If you have a Sony drive that gives you problems with multi session disks,
+please always check the following:
+
+ For some Sony drives you may need to call wodim -multi -data
+ if you like to create multi-session CD's.
+
+ Some Sony drives do not allow to write XA2 tracks with
+ hardware support of the drive.
+
+There is currently a bug in the Sony code (for _old_ non MMC drives)
+of wodim that does not allow you to have different track types
+in one session.
+
+All Sony drives that have CDUxxx type names are _old_ non MMC drives.
+ Here I expect that no XA support is in the firmware.
+
+All Sony drives that have CRXxxx type names are MMC compliant.
+ These drives should support XA-mode2-form1 as it is mandatory with MMC.
+
+NOTE: many HP CD-writers are nased on Sony OEM drives.
+
+
+NOTE: As for 18.5.2001, a fix was introduced that prevented wodim
+ to do multi session with new MMC compliant Sony drives.
+
+---
+Eduard Bloch, based on documentation from Joerg Schilling, cdrtools package 2.01.01a08
diff --git a/doc/READMEs/README.suidroot b/doc/READMEs/README.suidroot
new file mode 100644
index 0000000..b1198d6
--- /dev/null
+++ b/doc/READMEs/README.suidroot
@@ -0,0 +1,29 @@
+
+This is an example of how to install wodim and other cdrkit applications to get
+the root permissions in a safer way.
+
+Usually it is not a good idea to run the applications as root or to
+give users the means to run wodim as root. This gives them an easy way
+to fetch sensitive data by writing it to the disk, or pass arbitrary
+SCSI commands, e.g. formatting a SCSI disk.
+
+This also applies to root-mode wrappers like sudo, they should be used with
+the most possible care.
+
+The alternative way is installing wodim as suid-root application. In this
+mode, wodim checks permission of the device access by comparing the ownership
+of the device node user/group attributes for the real UID/GID of the calling
+user.
+
+To give all user access to use wodim, enter:
+
+ chown root /usr/local/bin/wodim
+ chmod 4711 /usr/local/bin/wodim
+
+To give a restricted group of users access to wodim, add a group
+"cdburners" to your system and add the trusted users to this group.
+Then enter:
+
+ chown root:cdburners /usr/local/bin/wodim
+ chmod 4710 /usr/local/bin/wodim
+
diff --git a/doc/READMEs/README.verify b/doc/READMEs/README.verify
new file mode 100644
index 0000000..28227b7
--- /dev/null
+++ b/doc/READMEs/README.verify
@@ -0,0 +1,75 @@
+Mini-Howto for verifying a selfmade CD
+
+1) verifying the data layer
+
+ To verify if all data on the disk can be read,
+ use SCSI verify. This can be done with the
+ sformat utility.
+
+ use: sformat -verify [target] [lun] [scsibus]
+
+ If the CD-R device is connected to target 2 on SCSI bus 0
+ sformat -verify 2 0
+
+ sformat can be found on ftp://ftp.berlios.de/pub/sformat
+
+ NOTE: Not all CD-ROm drives support verifying
+ NOTE: All TAO tracks end in 2 unreadable run-out sectors
+
+2) verifying the filesystem layer
+
+ A quick check is to mount the CD and to use star to read
+ all files on the filesystem.
+
+ mount -r /dev/cdrom /cdrom (modify for your OS)
+ cd /cdrom
+ star -cPM . >/dev/null
+
+ If no errors can be found, all files are readable.
+
+ star can be found on ftp://ftp.berlios.de/pub/star
+
+
+ You also may want to compare the filesystem on the CD
+ with the original data. This can be done with star too.
+
+
+ (cd /master_for_cd; star -cPM .)|(cd /cdrom; star -diff -v)
+
+2a) verifying the iso image before creating the CD
+
+ You may check the filesystem image by mounting it with my
+ "fbk" on Solaris or the loopback driver on Linux.
+
+ On Linux type:
+ mount isoimage.raw -r -t iso9660 -o loop /mnt
+
+ On SunOS type:
+ mount -r -F fbk -o type=hsfs /dev/fbk0:isoimage.raw /mnt
+
+For Solaris 8 and later you may also use the Sun lofi driver (see README.sun-lofi)
+
+ The check the filesystem with:
+
+ (cd /master_for_cd; star -cPM .)|(cd /mnt; star -diff -v)
+
+
+Solaris has a bug with hardlinks. It generates different inode numbers
+for the hardlinks to a file. This makes it impossible for star to
+check hard links. Use
+
+(cd /master_for_cd; star -cPM .)|(cd /cdrom; star -diff -v diffopts=!hardlink)
+
+in this case.
+
+NOTE: Some operating systems have a read ahead bug that causes I/O errors for
+the last file(s) on a CD. This seems at least to be true for all Linux versions
+and for Solaris 7 FCS. For Solaris 7 there is a patch (107465-02) that you should
+install. This I/O error problem does not occur with DAO disks and with TAO disks
+that have been written with wodim -pad.
+
+Joerg Schilling
+
+Source: README.verify from cdrtools package
+Edited for cdrkit by Christian Fromme <kaner@strace.org> and Eduard Bloch
+
diff --git a/doc/WHY b/doc/WHY
new file mode 100644
index 0000000..e1a8ba1
--- /dev/null
+++ b/doc/WHY
@@ -0,0 +1,26 @@
+Why cdrkit? Why wodim? Why genisoimage? Because:
+
+ - it won't tell you that you have no /dev/pg* device file thing foo, that you
+ have never seen and you will never need
+
+ - it won't require to be executed as root, fail with obscure messages without
+ such permissions
+
+ - it won't force you to wait 3 seconds every time you want to start, no matter
+ what you specify as gracetime=
+
+ - it won't kill another burning process when you do -scanbus in another shell
+
+ - it will let you specify your device directly in the way you know it, rather
+ than forcing some weird TARGET,BUS,LUN syntax with weird numbers
+
+ - it will not wreak random havoc if you used spaces and not tabs in the config file
+
+ - genisoimage won't stop accepting the well known option -L in the near future
+
+ - genisoimage will stop on 2.1GiB large files rather than just "forgetting"
+ them and let you burn crap
+
+ - users are respected and not used as pinballs between us and the OS kernel
+ developers
+
diff --git a/doc/genisoimage/README b/doc/genisoimage/README
new file mode 100644
index 0000000..708bae5
--- /dev/null
+++ b/doc/genisoimage/README
@@ -0,0 +1,26 @@
+Cdrkit carries a fork of the mkisofs program called genisoimage.
+
+The acompanying documentation consists of the manual page genisoimage.8 and
+README files found in the following locations (shell globing used):
+
+doc/:
+
+README.multi: documentation and examples for creating
+ multi-session CDs and DVDs
+
+README.cdplus: documentation and examples for creating
+ CD-plus (aka CD-extra) disks
+
+doc/genisoimage:
+
+README.releasenotes: release notes for old mkisofs releases
+
+README.*boot: documentation for various boot loader related
+ extensions for different architectures
+
+README.hfs*: hints and usage for HFS related features
+
+README.*: additional docs for special features
+
+Eduard Bloch -- Mon, 11 Sep 2006 23:05:29 +0200
+
diff --git a/doc/genisoimage/README.alphaboot b/doc/genisoimage/README.alphaboot
new file mode 100644
index 0000000..4bd10e1
--- /dev/null
+++ b/doc/genisoimage/README.alphaboot
@@ -0,0 +1,28 @@
+# README.alphaboot Steve McIntyre <steve@einval.com> 2004/07/19
+
+The alpha boot support allows you to create a bootable CD which will
+work with DEC/Compaq/HP Alpha machines, for example bootable
+installation media.
+
+The method used for this is the same as in aboot, the bootloader for
+Linux on Alpha, and works with SRM firmware. See the SRM Firmware
+HOWTO at http://www.alphalinux.org/faq/SRM-HOWTO/ for more details
+about SRM.
+
+In common with many Unix systems, the SRM code reads the first
+512-byte "sector" off a disk and parses information in that
+sector. The information in question is the location (start "sector")
+and length of the first stage boot loader. On a Linux system, this
+file will normally be called bootlx.
+
+SRM will load and execute the first stage boot loader, and from that
+point the system should be able to find the normal OS kernel and start
+up fully.
+
+To use the Alpha boot support code in genisoimage, simply specify the
+location of the first stage boot loader (relative to the CD root)
+using the -alpha-boot command line switch:
+
+genisoimage ... -alpha-boot boot/bootlx -o alpha.iso files
+
+
diff --git a/doc/genisoimage/README.compression b/doc/genisoimage/README.compression
new file mode 100644
index 0000000..4c8d425
--- /dev/null
+++ b/doc/genisoimage/README.compression
@@ -0,0 +1,17 @@
+Transparent decompression (-z option) is available on Linux kernels
+using kernel version 2.4.14 or 2.4.9-ac14 or later.
+
+You also need the zisofs-tools package, containing the mkzftree
+utility, to create the compressed files; this package is available at:
+
+ftp://ftp.kernel.org/pub/linux/utils/fs/zisofs/
+
+The mkzftree utility can also be used to read compressed CD-ROMs on
+systems which do not support transparent decompression.
+
+The use of a separate utility allows compression to be controlled on a
+per-file basis. A file which is not compressed can be read on any
+system.
+
+Transparent decompression is implemented as an extension to Rock
+Ridge, so Rock Ridge needs to be enabled (-R or -r options.)
diff --git a/doc/genisoimage/README.eltorito b/doc/genisoimage/README.eltorito
new file mode 100644
index 0000000..5c94cdc
--- /dev/null
+++ b/doc/genisoimage/README.eltorito
@@ -0,0 +1,101 @@
+
+What is El Torito?
+------------------
+Simply put, El Torito is a specification that says how a cdrom should
+be formatted such that you can directly boot from it.
+
+The "El Torito" spec says that ANY cdrom drive should work (scsi/eide)
+as long as the BIOS supports El Torito. So far this has only been
+tested with EIDE drives because none of the scsi controllers that has
+been tested so far appears to support El Torito. The motherboard
+definately has to support El Torito. The ones that do let you choose
+booting from HD, Floppy, Network or CDROM.
+
+How To Make Bootable CDs
+------------------------
+
+For the x86 platform, many BIOS's have begun to support bootable CDs.
+The standard my patches for genisoimage is based on is called "El Torito".
+
+The "El Torito" standard works by making the CD drive appear, through BIOS
+calls, to be a normal floppy drive. This way you simply put an floppy
+size image (exactly 1440k for a 1.44 meg floppy) somewhere in the
+iso fs. In the headers of the iso fs you place a pointer to this image.
+The BIOS will then grab this image from the CD and for all purposes it
+acts as if it were booting from the floppy drive. This allows a working
+LILO boot disk, for example, to simply be used as is.
+
+It is simple then to make a bootable CD. First create a file, say "boot.img"
+which is an exact image of the boot floppu currently in use. There is
+at least one HOWTO on making bootable floppies. If you have a bootable
+floppy handy, you can make a boot image with the command
+
+dd if=/dev/fd0 of=boot.img bs=10k count=144
+
+assuming the floppy is in the A: drive.
+
+Place this image somewhere in the hierarchy which will be the source
+for the iso9660 filesystem. It is a good idea to put all boot related
+files in their own directory ("boot/" under the root of the iso9660 fs,
+for example), but this is not necessary.
+
+One caveat - Your boot floppy MUST load any initial ramdisk via LILO,
+not the kernel ramdisk driver! This is because once the linux kernel
+starts up, the BIOS emulation of the CD as a floppy disk is circumvented
+and will fail miserably. LILO will load the initial ramdisk using BIOS
+disk calls, so the emulation works as designed.
+
+The "El Torito" specification requires a "boot catalog" to be created as
+ll.
+This is a 2048 byte file which is of no interest except it is required.
+My patches to genisoimage will cause it to automatically create the
+boot catalog. You must specify where the boot catalog will go in the
+iso9660 filesystem. Usually it is a good idea to put it the same place
+as the boot image, and a name like "boot.catalog" seems appropriate.
+
+
+So we have our boot image in the file "boot.image", and we are going to
+put it in the directory "boot/" under the root of the iso9660 filesystem.
+We will have the boot catalog go in the same directory with the name
+"boot.catalog". The command to create the iso9660 fs in the file
+bootcd.iso is then
+
+genisoimage -b boot/boot.img -c boot/boot.catalog -o bootcd.iso .
+
+The -b option specifies the boot image to be used (note the path is
+relative to the root of the iso9660 disc), and the -c option is
+for the boot catalog file.
+
+Now burn the CD and its ready to boot!
+
+CAVEATS
+-------
+
+I don't think this will work with multisession CDs.
+
+If your bootable floppy image needs to access the boot floppy, it has
+to do so through BIOS calls. This is because if your O/S tries to talk to
+the floppy directly it will bypass the "floppy emulation" the El Torito spec
+creates through BIOS. For example, under Linux it is possible to
+have an initial RAM disk loaded when the kernel starts up. If you let the
+kernel try to read in the initial RAM disk from floppy, it will fail
+miserably because Linux is not using BIOS calls to access the floppy drive.
+Instead of seeing the floppy image on the CD, Linux will be looking at
+the actually floppy drive.
+
+The solution is to have the initial boot loader, called LILO, load your
+initial RAM disk for you. LILO uses BIOS calls entirely for these
+operations, so it can grab it from the emulated floppy image.
+
+I don't think making a CD bootable renders it unreadable by non-El Torito
+machines. The El Torito spec uses parts of the iso9660 filesystem which
+were reserved for future use, so no existing code should care what it does.
+
+Genisoimage currently stores identification records in the iso9660 filesystem
+saying that the system is a x86 system. The El Torito spec also allows
+one to write PowerPC or Mac id's instead. If you look at the code in write.c
+you could figure out how to change what is written.
+
+/* @(#)README.eltorito 1.2 00/03/18 eric */
+/* Edited for name change by Eduard Bloch, mkisofs -> genisoimage */
+
diff --git a/doc/genisoimage/README.graft_dirs b/doc/genisoimage/README.graft_dirs
new file mode 100644
index 0000000..da05e29
--- /dev/null
+++ b/doc/genisoimage/README.graft_dirs
@@ -0,0 +1,151 @@
+This is from "Eduardo M. A. M. Mendes" <mendes@mgconecta.com.br>
+
+Creating multi-session CD's with dir=/ feature Micro Howto
+
+This mini-howto was written as guide to help me to create multi-session CD's
+with the possibility of determining the location of files. I hope
+that this guide helps you too.
+
+In order to use wodim it is first necessary to define to which scsi bus
+the cd-writer is connected. In my case the setup is dev=0,3,0. It is also
+interesting to have a separate directory in which all image files can
+be dumped: /home/cdsource is the directory I chose for dumping the images.
+
+The best way to understand how to create multi-session cds is to read
+README.multi. Most of what is going to be said here is based on that
+README file and on the help of several wodim users.
+
+This Micro Howto is divided into two parts as follows:
+
+Example a) A dir/=/dir1/dir2 example
+
+Example b) A dir1/dir2/=/dir3/dir4 and dir1/dir2a=/dir5/dir6 example
+
+
+We are now ready to start.
+
+Example a) An dir/=/dir1/dir2 example
+
+A simple example will demonstrate that we can create multi-session cds
+with the dir_feature of the type dir/=/dir1/dir2
+
+Objetive: Saving root directories of Redhat 6.1 and Col 2.3 on a single CD.
+
+Observation: Redhat installation is mounted on COL 2.3 at /mnt/redhat
+
+First image - RedHat 6.1 - /mnt/redhat/root
+
+genisoimage -D -l -r -f -m core -L -o image1.raw redhat/=/mnt/redhat/root
+
+This will create a redhat directory on the cd. The option -D should be
+used with care. The other options used in the above command are just
+to demonstrate the use of genisoimage. Please
+refer to man genisoimage if you want to know more.
+
+
+To see if the image is created as expected, we need to mount image1.raw using
+the option -o loop (Linux only! for information on Solaris read README.verify)
+as follows:
+
+mount -t iso9660 image1.raw /mnt/image -o loop
+
+To see the contents type:
+
+ls -l /mnt/image/redhat
+
+Does it look ok? Great! Unmount /mnt/image. Now the burning process itself:
+
+wodim -v -dev=0,3,0 -multi -eject image1.raw
+
+To check the burned image we need to mount the cd; something like
+
+mount -t iso9660 /dev/scd0 /mnt/cdroms
+
+/mnt/cdroms is the device file for the cdrom I use.
+
+
+Second image - Caldera 2.3 - /root
+
+
+To create the second image on our cd, we need get information
+about sectors related to the first track. To do that, issue the command
+
+wodim -v -dev=0,3,0 -msinfo
+
+wodim returns the following number
+
+0,135563
+
+This number is the format XX,YY discussed on README.multi. XX would be used
+for testing the images as well as burning the new track.
+
+genisoimage -D -l -r -f -m core -L -C 0,135563 -M /dev/scd0 -o image2.raw caldera/=/root
+
+Now we need to check of image2.raw is ok. The following command creates exactly what we
+need. Plese note that -C option. Only the first number changes in this case. The second one
+is always zero. In our case the first number is zero due to wodim -msinfo. When
+more tracks are added to the cd this number will change.
+
+genisoimage -D -l -r -f -m core -L -C 0,0 -M /dev/scd0 -o image2_test.raw caldera/=/root
+
+mount -t iso9660 image2_test.raw /mnt/image -o loop
+
+ls -l /mnt/image shows that there are two directories: redhat and caldera, just the way
+we wanted.
+
+Now let us burn image2.raw (not image2_test.raw)
+
+wodim -v -dev=0,3,0 -multi -eject image2.raw
+
+We can mount the CD again to see that the two directories are there. We can carry on
+doing this until we decide to close the CD. If this is the case, don't use -multi when
+burning the last session.
+
+b) A dir1/dir2/=/dir3/dir4 and dir1/dir2a=/dir5/dir6 example
+
+The above example seems a bit silly, one could argue. Why did I create a single directory
+called root and within two sub-directories: redhat and caldera?
+
+Using the procedure described above we would do as follows:
+
+genisoimage -D -l -r -f -m core -L -o image1.raw etc/redhat/=/mnt/redhat/etc
+
+wodim -v -dev=0,3,0 -multi -eject image1.raw
+
+To check the burned image we need to mount the cd; something like
+
+mount -t iso9660 /dev/scd0 /mnt/cdroms
+
+wodim -v -dev0,3,0 -msinfo
+
+wodim returns the following number
+
+0,14391
+
+The second image can be created using
+
+genisoimage -l -r -f -m core -L -C 0,14391 -M /dev/scd0 -o image2.raw etc/caldera/=/etc
+
+Creating a test image2
+
+genisoimage -l -r -f -m core -L -C 0,0 -M /dev/scd0 -o image2_test.raw etc/caldera/=/etc
+
+mount -t iso9660 image2_test.raw /mnt/image1 -o loop
+
+It works!! That is great!!!
+
+Now the burning process itself.
+
+wodim -v -dev=0,3,0 -multi -eject image2.raw
+
+and we're done !!!!
+
+To add more tracks just do as indicated above.
+
+Good luxk!!!
+
+Eduardo Mendes - 11/23/99
+
+Source: README.graft_dirs from cdrtools package
+Edited for cdrkit by Christian Fromme <kaner@strace.org> and Eduard Bloch
+
diff --git a/doc/genisoimage/README.hfs_boot b/doc/genisoimage/README.hfs_boot
new file mode 100644
index 0000000..378bb95
--- /dev/null
+++ b/doc/genisoimage/README.hfs_boot
@@ -0,0 +1,76 @@
+Making HFS bootable CDs
+
+*******
+The HFS boot code in genisoimage/mkhybrid is now very out of date ...
+it does not support booting from IDE CDROMS, and probably won't work on
+"newer" Macs.
+
+The HFS boot code will be updated at some point in the future
+*******
+
+It *may* be possible to make the hybrid CD bootable on a Mac. As I do not
+have easy access to a CD-R (nor a Mac) at the moment, I have not actually
+created and written a bootable hybrid to CD - however, I *think* it will work!
+
+A bootable HFS CD requires an Apple CD-ROM (or compatible) driver, a bootable
+HFS partition and the necessary System, Finder, etc. files.
+
+A driver can be obtained from any other Mac bootable CD-ROM using the
+"apple_driver" utility (to make, type "make apple_driver"). This file can
+then be used with the -boot-hfs-file option. See below for usage.
+
+The HFS partition (i.e. the hybrid disk in our case) must contain a
+suitable System Folder, again from another CD-ROM or disk.
+
+For a partition to be bootable, it must have it's "boot block" set. The boot
+block is in the first two blocks of a partition. For a non-bootable partition
+the boot block is full of zeros. Normally, when a System file is copied to
+partition on a Mac disk, the boot block is filled with a number of required
+settings - unfortunately I don't know the full spec for the boot block ...
+
+I'm guessing that this will work OK ...
+
+Therefore, the utility "apple_driver" also extracts the boot block from the
+first HFS partition it finds on the given CD-ROM and this is used for the
+HFS partition created by mkhybrid.
+
+To extract the driver and boot block:
+
+apple_driver CDROM_device > HFS_driver_file
+
+where CDROM_device is the device name used by the CD-ROM (e.g. /dev/cdrom)
+
+The format of the HFS driver file is:
+
+ HFS CD Label Block 512 bytes
+ Driver Partition Map (for 2048 byte blocks) 512 bytes
+ Driver Partition Map (for 512 byte blocks) 512 bytes
+ Empty 512 bytes
+ Driver Partition N x 2048 bytes
+ HFS Partition Boot Block 1024 bytes
+
+The Perl script "hdisk.pl" can be used to give a listing of what's on
+a Mac CD. hdisk.pl is part of hfsutils.
+
+A hybrid CD is made using the option "-boot-hfs-file" e.g.
+
+mkhybrid -boot-hfs-file HFS_driver_file -o hfs.raw src_files/
+
+The -boot-hfs-file implies the -hfs option.
+
+PLEASE NOTE:
+
+By using a driver from an Apple CD and copying Apple software to your CD,
+you become liable to obey Apple Computer, Inc. Software License Agreements.
+
+The driver code (both extracting the driver and creating partitions etc.
+is based on code from "mkisofs 1.05 PLUS" by Andy Polyakov
+<appro@fy.chalmers.se> (see http://fy.chalmers.se/~appro/mkisofs_plus.html)
+
+
+Any comments, bug reports/fixes to the address below
+
+James Pearson (j.pearson@ge.ucl.ac.uk)
+19-Jul-2000
+
+Edited for program name change by Eduard Bloch, 2006
diff --git a/doc/genisoimage/README.hfs_magic b/doc/genisoimage/README.hfs_magic
new file mode 100644
index 0000000..814d59e
--- /dev/null
+++ b/doc/genisoimage/README.hfs_magic
@@ -0,0 +1,69 @@
+
+Find file types by using a modified "magic" file
+
+Based on file v3.22 by Ian F. Darwin (see libfile/LEGAL.NOTICE and
+libfile/README.dist - File v3.22 can be found at many archive sites)
+
+For each entry in the magic file, the "message" for the initial offset MUST
+be 4 characters for the CREATOR and 4 characters for the TYPE - white space is
+optional between them. Any other characters on this line are ignored.
+Continuation lines (starting with a '>') are also ignored i.e. only the initial
+offset lines are used.
+
+e.g magic entry for a GIF file:
+
+# off type test message
+#
+# GIF image
+0 string GIF8 8BIM GIFf
+>4 string 7a \b, version 8%s,
+>4 string 9a \b, version 8%s,
+>6 leshort >0 %hd x
+>8 leshort >0 %hd,
+#>10 byte &0x80 color mapped,
+#>10 byte&0x07 =0x00 2 colors
+#>10 byte&0x07 =0x01 4 colors
+#>10 byte&0x07 =0x02 8 colors
+#>10 byte&0x07 =0x03 16 colors
+#>10 byte&0x07 =0x04 32 colors
+#>10 byte&0x07 =0x05 64 colors
+#>10 byte&0x07 =0x06 128 colors
+#>10 byte&0x07 =0x07 256 colors
+
+Just the "8BIM" "GIFf" will be used whatever the type of GIF file it is.
+The continuation lines are used by the "file" command, but ignored by
+mkhybrid. They could be left out completely.
+
+The complete format of the magic file is given in the magic man page (magic.5).
+
+See the file "magic" for other examples
+
+Use with the -magic magic_file option, where magic_file is a file
+described above.
+
+The magic file can be used with the mapping file (option -map) - the order
+these options appear on the command line is important. mkhybrid will try to
+detect if the file is one of the Unix/Mac files (e.g. a CAP or Netatalk
+file) first. If that fails, it will then use the magic and/or mapping
+file e.g:
+
+mkhybrid -o output.raw -map mapping -magic magic src_dir
+
+The above will check filename extensions first, if that fails to set the
+CREATOR/TYPE, the magic file will be used. To check the magic file
+before the filename extensions, use:
+
+mkhybrid -o output.raw -magic magic -map mapping src_dir
+
+
+Using just a magic file - filename extensions will not be checked e.g:
+
+mkhybrid -o output.raw -magic magic src_dir
+
+For the magic method to work, each file must be opened and read twice
+(once to find it's CREATOR/TYPE, and a second time to actually copy the
+file to the CD image). Therefore the -magic option may significantly
+increase processing time.
+
+If a file's CREATOR/TYPE is not set via the magic and mapping matches,
+then the file is given the default CREATOR/TYPE.
diff --git a/doc/genisoimage/README.hide b/doc/genisoimage/README.hide
new file mode 100644
index 0000000..ae8521b
--- /dev/null
+++ b/doc/genisoimage/README.hide
@@ -0,0 +1,208 @@
+Hiding files on a CD
+=====================
+
+This document attempts to show how to hide files from being seen by an
+operating system accessing a CD as an ISO9660/Rock Ridge, Joliet or HFS
+CD. It also highlights some of the limitations ...
+
+Note: this document is about the various -hide options - not be confused with
+the -hidden options.
+
+The -hidden options set the 'EXISTENCE' bit in the directory entry which
+means the file or directory will be invisible - unless some special option
+is used to mount or view the CD - Linux has the 'unhide' mount option to
+make these files visible. i.e. the directory entry exists on the CD.
+
+With hindsight, to avoid confusion with the -hidden option, it would have
+been better to chose an option name like '-omit' instead of '-hide'...
+
+The various -hide options actually exclude the relevant directory entry
+from the directory tree. Therefore, it is not possible to access a file
+or directory that has be hidden with the -hide option when the ISO9600/Rock
+Ridge directory is mounted - because the directory entry does not exist on the
+CD (but the file data does). You would probably be able to access this file
+or directory when mounted as a Joliet or HFS CD (depending on other options
+used). Similarly, a directory entry hidden with the -hide-joliet option
+will not be accessible when mounted as an Joliet CD. Similarly for -hide-hfs
+etc.
+
+If you don't want a file or directory to appear on the CD at all, then use the
+-exclude options, not the -hide options (genisoimage completely ignores any
+file/directory excluded with the -exclude options).
+
+
+Using the hide options
+======================
+
+There are 6 hide options:
+
+-hide Hide a file/directory from the ISO9660/Rock Ridge directory
+-hide-list As above, but read file names from a file
+-hide-joliet Hide a file/directory from the Joliet directory
+-hide-joliet-list As above, but read file names from a file
+-hide-hfs Hide a file/directory from the HFS directory
+-hide-hfs-list As above, but read file names from a file
+
+You can use the -hide, -hide-joliet and/or -hide-hfs options as many times
+as you like on the command line, but if you have many files to hide, then
+it may be better to put your file names in a file (one per line) and use
+the corresponding 'list' option. You can also use the three -hide-list options
+as many times as you want.
+
+The arguments to the -hide options are either the 'basename' or the 'whole
+path name' of a file. That is, if you use the option:
+
+% genisoimage -hide ABC [-other-options] CD_directory
+
+then any file with the name ABC will be hidden. If you want to be more
+specific, then use the whole name - as seen by genisoimage e.g.:
+
+% genisoimage -hide CD_directory/XYZ/ABC [-other-options] CD_directory
+
+will hide just the file 'CD_directory/XYZ/ABC' - not any other file called
+'ABC' that might exist under 'CD_directory'. However, if your command line
+is like:
+
+% genisoimage -hide CD_directory/XYZ/ABC [-other-options] ./CD_directory
+
+Then the file 'CD_directory/XYZ/ABC' will not be hidden because as far as
+genisoimage is concerned. Its whole path is actually './CD_directory/XYZ/ABC'.
+
+You can use wild cards in the -hide arguments.
+
+If the file name to be hidden is a directory, then the directory and all
+its contents are hidden.
+
+The main use of the hide options is on a multi platform (hybrid CD) to hide
+various files/directories that are operating system specific from been seen
+on the CD when mounted on another OS. i.e. You may want to hide Macintosh
+executables from being seen when the CD is mounted as a Joliet CD on a PC etc.
+
+For example, say we want to create a ISO9660/Rock Ridge, Joliet, HFS hybrid
+CD from files/directories in the directory called 'cd_dir' - which are:
+
+MAC/
+MAC/app
+MAC/data/
+MAC/data/file1
+PC/
+PC/app
+PC/data/
+PC/data/file1
+UNIX/
+UNIX/app
+UNIX/data
+UNIX/data/file1
+COMMON/
+COMMON/some_files
+
+We could use the command line:
+
+% genisoimage -r -J -hfs -hide MAC -hide PC -hide-joliet MAC \
+ -hide-joliet UNIX -hide-hfs PC -hide-hfs UNIX -o cd.iso cd_dir
+
+This will give a CD that when mounted as a Rock Ridge CD, you will only
+see the directories UNIX and COMMON, as a Joliet CD the directories
+PC and COMMON, and as an HFS CD the directories MAC and COMMON.
+
+If you also had the three files in the current directory called README.hfs,
+README.joliet and README.unix - but you wanted to have each of these
+files appear as just 'README' when mounted, then you could use the above
+command line with the following:
+
+% genisoimage -r -J -hfs -graft-points -hide MAC -hide PC -hide-joliet MAC \
+ -hide-joliet UNIX -hide-hfs PC -hide-hfs UNIX \
+ -hide README.hfs -hide README.joliet -hide-joliet README.hfs \
+ -hide-joliet README.uni -hide-hfs README.joliet -hide-hfs README.unix \
+ README=README.hfs README=README.joliet README=README.unix \
+ -o cd.iso cd_dir
+
+Note: we've used the -graft-points option as we're using the '=' syntax
+to insert the files called README.hfs, README.joliet and README.unix as
+'README'
+
+The resulting CD when mounted as a Rock Ridge CD, will have the directories
+UNIX and COMMON - with the file called README - which was originally
+called README.unix.
+
+However, in most circumstances, it would be better to have the contents
+of each of the OS specific directories (plus the contents of the COMMON
+directory) to appear at the top level of the CD. i.e. when the CD is mounted
+(as ISO9660/Rock Ridge, Joliet or HFS) it has the contents:
+
+README
+app
+data/file1
+some_files
+
+Unfortunately, this is not as straight forward as it may seem - i.e. doing
+the following may seem OK, but it won't work - for reasons I'll explain
+later:
+
+It gets a bit messy using the -graft-points syntax above, so we'll assume
+each of the MAC, UNIX and PC directories contain the correct README, We'll
+also change to the 'cd_dir' directory and use the command:
+
+genisoimage -r -J -hfs -hide MAC -hide PC -hide-joliet MAC \
+ -hide-joliet UNIX -hide-hfs PC -hide-hfs UNIX \
+ -o cd.iso MAC PC UNIX COMMON
+
+You will get errors like:
+
+genisoimage: Error: UNIX/README and MAC/README have the same Rock Ridge name
+...
+genisoimage: Unable to sort directory
+
+This is because you can not hide "pathspecs" that are directories ("pathspecs"
+are file names given on the command line, or in a path-list file). This a
+"feature" of genisoimage. In this case nothing is actually hidden at all.
+
+So you might think that the following may work:
+
+genisoimage -r -J -hfs -hide "MAC/*" -hide "PC/*" -hide-joliet "MAC/*" \
+ -hide-joliet "UNIX/*" -hide-hfs "PC/*" -hide-hfs "UNIX/*" \
+ -o cd.iso MAC PC UNIX COMMON
+
+which may appear to work - but when the CD is mounted as an ISO9660/Rock Ridge
+or Joliet CD, then the directory "data" is missing.
+
+Again this is a feature of genisoimage - the directories PC/data and UNIX/data
+are mapped by genisoimage to the same output directory called "/data" - the
+various "hide" flags are stored with this directory info - in this case as
+the output directory "/data" is first hidden from the ISO9660/Rock Ridge and
+then the Joliet directory, the net result is that "/data" gets hidden from
+both directories ... the way genisoimage hides HFS directories is slightly
+different, so in this case the directory "data" exists on the HFS volume
+and contains the correct contents.
+
+However, it is possible to obtain the required result, but we have to be
+careful about hiding multiple input directories that map to a single output
+directory.
+
+To do this we have to hide just the files in these directories (or more
+accurately, all the non-directories). This is best done by using lists of
+files to hide for example:
+
+find PC -type f -print > pc.list
+find UNIX -type f -print > unix.list
+find MAC -type f -print > mac.list
+
+genisoimage -r -J -hfs -hide-list pc.list -hide-list mac.list \
+ -hide-joliet-list unix.list -hide-joliet-list mac.list \
+ -hide-hfs-list pc.list -hide-hfs-list unix.list \
+ -o cd.iso MAC PC UNIX COMMON
+
+i.e. instead of trying to hide a directory and letting genisoimage hide its
+contents, we explicitly hide all the files in the directory, but not the
+directory and any of its sub-directories.
+
+This will work for the above input files, but if your directory trees contain
+symbolic links and/or directories that will not get merged, then the hide lists
+will have to be tailored to get the required result.
+
+
+James Pearson 22-Nov-2001
+
+Any comments/problems to j.pearson@ge.ucl.ac.uk
+
+Modified for cdrkit/genisoimage by Eduard Bloch, Wed, 27 Dec 2006
diff --git a/doc/genisoimage/README.hppaboot b/doc/genisoimage/README.hppaboot
new file mode 100644
index 0000000..a7a7549
--- /dev/null
+++ b/doc/genisoimage/README.hppaboot
@@ -0,0 +1,38 @@
+# README.hppaboot Steve McIntyre <steve@einval.com> 2004/07/19
+
+The hppa boot support allows you to create a bootable CD which will
+work with HP PA/RISC machines, for example bootable installation
+media.
+
+The method used for this is the same as in palo, the bootloader for
+Linux on hppa. See the palo README for more details about supported
+hardware etc.
+
+The HPPA firmware reads the first 2048-byte sector off a disk and
+parses information in that sector. The information in question is the
+location (start sector) and length of various files:
+
+ * a 32-bit kernel image
+ * a 64-bit kernel image
+ * first stage bootloader (iplboot)
+ * (optional) ramdisk
+
+and also the system command line to use, e.g.
+
+ "5/vmlinux HOME=/ TERM=linux console=tty"
+
+The firmware will load and execute the first stage boot loader, and
+that should be able to find the (32- or 64-bit) kernel and boot
+normally. Whether you need a 32- or 64-bit kernel depends on your
+hardware; some will even support both.
+
+To use the hppa boot support code in genisoimage, simply specify the boot
+command line and file locations (relative to the CD root) as follows:
+
+genisoimage ... -hppa-cmdline <cmdline, parts separated by spaces or commas> \
+ -hppa-kernel-32 <32-bit kernel> \
+ -hppa-kernel-64 <64-bit kernel> \
+ -hppa-bootloader <bootloader> \
+ -hppa-ramdisk <ramdisk file> \
+ -o hppa.iso hppa-files
+
diff --git a/doc/genisoimage/README.joliet b/doc/genisoimage/README.joliet
new file mode 100644
index 0000000..ab9bf5d
--- /dev/null
+++ b/doc/genisoimage/README.joliet
@@ -0,0 +1,53 @@
+Some thoughts on Joliet - why it is a dumb idea to have a CD
+with Joliet enhancements but without Rock Ridge.
+It also helps you to understand why it it not possible to append
+a new session to a multi-session Joliet CD when Rock Ridge is
+missing.
+
+- Joliet is not an accepted independant international standard
+ like ISO-9660 or Rock Ridge (IEEE-P1282).
+ Joliet has been created in 1995 - Rock Ridge in 1990.
+ Rock Ridge became a IEEE standard around 1992.
+
+Joliet is an unjustified addition to ISO-9660.
+
+- The Joliet tree has no relation to the
+ ISO-9660 tree. Files from the ISO-9660 tree and from the
+ Joliet tree only share content. In general, it is not
+ possible to find the ISO-9660 name from a Joliet name
+ and vice versa if you check both trees on a CD.
+
+ Rock Ridge extensions are located at the end of each
+ ISO-9660 directory record. This makes the Rock Ridge
+ tree closely coupled to the ISO-9660 tree.
+
+- Joliet does not allow all characters too, so the
+ Joliet filenames are not identical to the filenames
+ on disk.
+
+ As the ISO-9660 tree is the standard reference tree
+ on a CD and the ISO-9660 filenames don't allow all
+ characters and there is a length limitation, the
+ ISO-9660 names cannot be mapped to the filenames on the
+ OS reference tree on disk for doing multi-session.
+
+ Due to different limitations, the short ISO-9660 name
+ is in most cases not equal to the Joliet name or the
+ Rock Ridge name.
+
+- Joliet has a filename length limitation of 64 chars (independent
+ from the character coding and type e.g. European vs. Japanese)
+ This is annoying as modern filesystems all allow 255 chars
+ per path name component.
+
+ Joliet uses UTF-16 coding while Rock Ridge uses ISO-8859 or
+ UTF-16 based chars and allows 255 octets. Using UTF-8,
+ Rock Ridge allows 85 Japanese characers or 255 US-ASCII chars.
+
+Other than slightly longer filenames, Joliet offers no new properties
+over plain ISO 9660. Rock Ridge is an open extendable standard and
+there is no filesystem property on Win32 that could not be implemented
+using Rock Ridge.
+
+Except Linux and FreeBSD, there is no POSIX-like like OS that supports
+Joliet. Never create Joliet only CD's for that reason.
diff --git a/doc/genisoimage/README.macosx b/doc/genisoimage/README.macosx
new file mode 100644
index 0000000..e082bfc
--- /dev/null
+++ b/doc/genisoimage/README.macosx
@@ -0,0 +1,43 @@
+Notes on using the --osx-hfs option when running genisoimage on MacOS X
+
+genisoimage does not use any of the MacOS APIs to access files - it uses
+standard (POSIX style) library calls. Under normal circumstances, all
+genisoimage will 'see' is the data fork of files on an HFS (or HFS+) file system.
+
+However, Apple have provided a way for POSIX style applications to
+access the resource fork - using the following syntax:
+
+If a file exists on an HFS volume with the name 'foo', then the resource fork
+can be accessed using the file name 'foo/rsrc' or foo/..namedfork/rsrc'
+(the data fork can also be accessed using 'foo/..namedfork/data').
+
+These 'pseudo' file names are not normally visible in a directory - unless
+you access them directly (e.g. 'ls -l */rsrc etc).
+
+To access the finder information, Apple have provided an undocumented library
+function called getattrlist(). Fortunately there are example of its usage
+in the Darwin (MacOS kernel) source code.
+
+
+Although MacOS X can use HFS(+) as its file system, Apple have decided to
+move away from using HFS to store finder info and resource data - for
+example, the TYPE of a file may be based on its file name extension and the
+TYPE field in the finder info empty.
+
+genisoimage knows nothing about these file name extension mappings, so if the
+--osx-hfs option is used and the source files are on MacOS X HFS(+) volumes,
+by the fact that they are HFS files, they will get identified as 'MacOS X HFS'
+and the resulting file on the output CD image will have empty TYPE and CREATOR
+fields.
+
+Therefore, if the input finderinfo is blank and the the resource fork is
+empty, genisoimage will assume the input file is not a 'real' HFS file - which
+means the TYPE and CREATOR may then be set using the file's magic number or
+genisoimage' file name extension mapping.
+
+The only real benefit of using the --osx-hfs option is when the source files
+are on an OS9 or earlier HFS or HFS+ volume e.g. an existing HFS CD.
+
+James Pearson 3-Jul-2002
+Edited for program name change by Eduard Bloch, 2006
+
diff --git a/doc/genisoimage/README.mipsboot b/doc/genisoimage/README.mipsboot
new file mode 100644
index 0000000..1e5227a
--- /dev/null
+++ b/doc/genisoimage/README.mipsboot
@@ -0,0 +1,26 @@
+# README.mipsboot Steve McIntyre <steve@einval.com> 2004/07/19
+
+The mips/SGI boot support allows you to create a bootable CD which
+will work with big-endian mips SGI machines, for example bootable
+installation media.
+
+The method used for this is the same as in genisovh, a tool to make
+CDs bootable for Linux on SGI.
+
+The SGI firmware reads the first 512-byte "sector" off a disk and
+parses information from a volume descriptor header in that sector. The
+information in question is the location (start sector) and length of
+bootable kernel images; up to 15 are supported.
+
+The firmware will load and execute kernels listed. (I'm not sure what
+it will do if more than one kernel is listed - it may display a boot
+menu).
+
+To use the SGI boot support code in genisoimage, simply specify the kernel
+file locations (relative to the CD root) as follows:
+
+genisoimage ... -mips-boot <kernel file #1> \
+ ...
+ -mips-boot <kernel file #n> \
+ -o mips.iso mips-files
+
diff --git a/doc/genisoimage/README.mipselboot b/doc/genisoimage/README.mipselboot
new file mode 100644
index 0000000..af3979b
--- /dev/null
+++ b/doc/genisoimage/README.mipselboot
@@ -0,0 +1,29 @@
+# README.mipselboot Steve McIntyre <steve@einval.com> 2004/07/19
+
+The mips/DEC boot support allows you to create a bootable CD which
+will work with little-endian mips DEC machines (e.g. older
+DECstations), for example bootable installation media.
+
+The method used for this is the same as in delo, the Linux-on-mipsel
+bootloader. See the delo README for more information about how to
+configure the DECstation's firmware to find and boot the CDROM.
+
+The DEC firmware reads the first 512-byte "sector" off a disk and
+parses information from that sector. The information in question is
+the location (start sector) and length of the first stage boot
+loader.
+
+(On Linux, this boot loader is in ELF format and the firmware does not
+know how to deal with ELF directly, we have to parse the ELF headers
+and find the raw binary data needed inside it. Pointers to the start
+and length of that raw binary are what is stored in the boot sector.)
+
+The firmware will load and execute the first stage boot loader, and
+from that point the system should be able to find the normal OS kernel
+and start up fully.
+
+To use the DEC boot support code in genisoimage, simply specify the kernel
+file location (relative to the CD root) as follows:
+
+genisoimage ... -mipsel-boot <kernel file> -o mipsel.iso mipsel-files
+
diff --git a/doc/genisoimage/README.mkhybrid b/doc/genisoimage/README.mkhybrid
new file mode 100644
index 0000000..49036a1
--- /dev/null
+++ b/doc/genisoimage/README.mkhybrid
@@ -0,0 +1,145 @@
+
+mkhybrid v1.13 has merged with mkisofs which was forked to genisoimage later
+
+HFS hybrid code Copyright (C) James Pearson 1997, 1998, 1999, 2000
+libhfs code Copyright (C) 1996, 1997 Robert Leslie
+libfile code Copyright (c) Ian F. Darwin 1986, 1987, 1989,
+ 1990, 1991, 1992, 1994, 1995
+mkisofs code Copyright 1993 Yggdrasil Computing, Incorporated
+
+*** NEWS ***
+
+Macs can now read Joliet CDs - see http://www.tempel.org/joliet/
+
+***
+
+*** IMPORTANT ***
+
+The meaning of some of the HFS command line options has changed since
+version 1.12b5.2. This change is to make the way genisoimage decodes the
+various Apple/Unix file formats (CAP, AppleDouble, MacBinary etc.) less
+confusing and more logical. To decode one or more of the Apple/Unix files,
+then the corresponding "double dash" option must be given (i.e. --cap,
+--double, --macbin etc.) genisoimage can search for all known Apple/Unix files
+by using the -probe option.
+
+The options that have changed are:
+
+Option old meaning new meaning
+====== =========== ===========
+
+-hfs Create an HFS hybrid CD Create an HFS hybrid CD.
+ and attempt to decode all Any Apple/Unix file is only
+ Apple/Unix files (except decoded if one or more of
+ MacBinary and AppleSingle) the "double dash" options are
+ given
+
+-apple Create an ISO9660 with Create an ISO9660 with
+ Apple extensions CD and Apple extensions CD. Any
+ attempt to decode all Apple/Unix file is only decoded
+ Apple/Unix files (except if one or more of the
+ MacBinary and AppleSingle) "double dash" options are given
+
+-no-mac-files Do not attempt to decode No longer used
+ any Apple/Unix file
+
+-probe Attempt to decode Attempt to decode all
+ MacBinary and AppleSingle Apple/Unix files
+ as well as the other
+ Apple/Unix files
+
+***
+
+Most of the HFS features work fine, however, some are not fully tested.
+These are marked as "Alpha" in the man page.
+
+See "ChangeLog.mkhybrid" for any minor changes/bug fixes
+
+If you are using SunOS 4.1.[34], then you need the following patches
+to read CDs with associated files:
+
+SunOS 4.1.3: Patch 101832-05
+SunOS 4.1.3_U1: Patch 101833-02
+SunOS 4.1.4: Patch 102583-02
+
+
+EXAMPLES
+
+To create a HFS hybrid CD with the Joliet and Rock Ridge extensions of
+the source directory cd_dir:
+
+% genisoimage -o cd.iso -r -J -hfs cd_dir
+
+To create a HFS hybrid CD from the source directory cd_dir that contains
+Netatalk Apple/Unix files:
+
+% genisoimage -o cd.iso --netatalk cd_dir
+
+To create a HFS hybrid CD from the source directory cd_dir, giving all files
+CREATOR and TYPES based on just their filename extensions listed in the file
+"mapping".:
+
+% genisoimage -o cd.iso -map mapping cd_dir
+
+To create a CD with the 'Apple Extensions to ISO9660', from the source
+direcories cd_dir and another_dir. Files in all the known Apple/Unix format
+are decoded and any other files are given CREATOR and TYPE based on their
+magic number given in the file "magic":
+
+% genisoimage -o cd.iso -apple -magic magic -probe cd_dir another_dir
+
+The following example puts different files on the CD that all have
+the name README, but have different contents when seen as a
+ISO9660/RockRidge, Joliet or HFS CD.
+
+Current directory contains:
+
+% ls -F
+README.hfs README.joliet README.unix cd_dir/
+
+The following command puts the contents of the directory "cd_dir" on the
+CD along with the three README files - but only one will be seen from
+each of the three filesystems:
+
+% genisoimage -o cd.iso -hfs -J -r \
+ -hide README.hfs -hide README.joliet \
+ -hide-joliet README.hfs -hide-joliet README.unix \
+ -hide-hfs README.joliet -hide-hfs README.unix \
+ README=README.hfs README=README.joliet README=README.unix \
+ cd_dir
+
+i.e. the file README.hfs will be seen as README on the HFS CD and the
+other two README files will be hidden. Similarly for the Joliet and
+ISO9660/RockRidge CD.
+
+There are probably all sorts of stange results possible with
+combinations of the hide options ...
+
+
+Any comments, bug reports/fixes about the HFS parts of genisoimage to the
+address below.
+
+Please state the version, platform and command line used when submitting
+a bug report - the output from "-log-file -v" would help.
+
+Original author: James Pearson (j.pearson@ge.ucl.ac.uk)
+
+This describes the program as shipped with cdrkit, a spinoff from the
+cdrtools project. However, the cdrtools developers are no longer
+involved in the development of this spinoff and therefore shall not
+be made responsible for any problem caused by it. Do not try to get
+support for this program by contacting the original authors.
+
+If you have support questions, send them to
+
+debburn-devel@lists.alioth.debian.org
+
+If you have definitely found a bug, send a mail to this list or to
+
+submit@bugs.debian.org
+
+writing at least a short description into the Subject and "Package: cdrkit"
+
+Source: README.mkhybrid from cdrtools package
+Edited for cdrkit by Christian Fromme <kaner@strace.org> and Eduard Bloch
+
diff --git a/doc/genisoimage/README.prep_boot b/doc/genisoimage/README.prep_boot
new file mode 100644
index 0000000..f406735
--- /dev/null
+++ b/doc/genisoimage/README.prep_boot
@@ -0,0 +1,45 @@
+I have extended mkhybrid to create a CD that is bootable via PPCbug
+on a PowerPC Reference Platform compliant machine (referred to as
+PReP).
+
+This includes a number of IBM RS-6000 clones, along with most of
+Motorola's embedded PowerPC boards, such as the MTX and MVME
+boards. (The motorola boards are sometimes referred to as PowerPlus)
+
+To build a bootable CD, you will first need a kernel image for your
+machine. Put the image somewhere in the filesystem you want
+to generate and ISO9660 image from.
+
+The '-B' or '-prep-boot' flags are used to specify the image file
+to use. The path must be relative to the root of the CD filesytem,
+NOT from the current directory.
+
+For example: to make an image of /tmp/cd and use the image file
+/tmp/cd/zImage, (with rock ridge extensions) use:
+
+mkhybrid -r -B zImage /tmp/cd -o cd.img
+
+Since there are four entries for bootable 'partitions', I have
+allowed up to 4 different images to be used. This might be
+usefull if one has need of different kernel images for different
+machines on the same CD.
+
+The first image will be in the first partition entry, so if one
+uses:
+
+mkhybrid -r -B zImage1 -B zImage2 -B zImage3 -B zImage4 /tmp/cd
+
+This will result in 4 bootable images. To boot off the first image
+from PPCbug, use 'pboot 0 41' from the ppcbug> prompt.
+(assuming the CDROM is at SCSI ID 4.. replace the 4 with the SCSI
+ID of the CDROM if not.) The second image is at 'pboot 0 42', etc.
+
+There should not be any conflicts with any of the HFS or hybrid
+functions, since the space used by the PReP partition maps is
+unused by anything else. If fact, the goal is to make a CD
+bootable on both Mac's and PReP machines ;)
+
+For any questions contact me at one of the following addresses:
+troy@microux.com
+troy@blacklablinux.com
+hozer@drgw.net
diff --git a/doc/genisoimage/README.releasenotes b/doc/genisoimage/README.releasenotes
new file mode 100644
index 0000000..d4f3898
--- /dev/null
+++ b/doc/genisoimage/README.releasenotes
@@ -0,0 +1,154 @@
+# @(#)README 1.7 99/11/23 joerg
+# 06/09/11 christian
+
+This describes the program as shipped with cdrkit, a spinoff from the
+cdrtools project. However, the cdrtools developers are no longer
+involved in the development of this spinoff and therefore shall not
+be made responsible for any problem caused by it. Do not try to get
+support for this program by contacting the original authors.
+
+Note:
+
+ This program requires a lot of virtual memory to run since it
+builds all of the directories in memory. The exact requirements
+depend upon a lot of things, but for Rock Ridge discs 12Mb would not
+be unreasonable. Without RockRidge and without the translation
+tables, the requirements would be considerably less.
+
+
+*****************************
+Notes for version 1.12
+
+ Joliet support is now complete. See the -J option.
+
+ The file scanning code is much improved - mkisofs can use multiple
+ sources of input files and merge them together to form the output
+ image. In addition, each source can be grafted at any point in the
+ iso9660 image.
+
+ The image writing code has been cleaned up to make it much easier
+ to add custom extensions.
+
+ The ADD_FILES feature has been removed as it didn't work well,
+and it was hard to figure out. The recent rearrangements in the
+file scanning code would tend to solve these issues.
+
+*****************************
+Notes for version 1.11
+
+ There is a feature which can be optionally compiled into
+mkisofs that allows you to merge arbitrary directory trees into the
+image you are creating. You need to compile with -DADD_FILES for my
+changes to take effect. Thanks to Ross Biro biro@yggdrasil.com.
+
+*****************************
+Notes for version 1.10b1
+
+ Big news is that multi-session capability is very close to being
+ done. There is still a missing interface to cdwrite that is
+ used to determine the next writable address and the sector number
+ of the last existing session. Until we get the interface to cdwrite
+ done, this is a beta version.
+
+ Bug involving DST fixed (dates are always calculated, since some
+ files may be DST and other ones would not be).
+
+ Unfortunately the notes on some of the small patches got lost.
+
+*****************************
+Notes for version 1.06
+
+ Jan-Piet Mens <jpm@mens.de> added support for the '-m' switch. This
+ allows exclusion of shell-style globs from the CDROM.
+ See manual mkisofs.8 for more information.
+
+*****************************
+Notes for version 1.05
+
+ Added support for '-r' switch. This is very similar to -R for
+Rock Ridge, but echos of the development environment are removed
+(i.e. uid/gid set to 0, and permissions of the files are canonicalized).
+Useful in applications where a distribution medium is being produced.
+
+*****************************
+Notes for version 1.04
+
+ No notes for 1.04.
+
+*****************************
+Notes for version 1.03
+
+ No notes for 1.03.
+
+*****************************
+Notes for version 1.02.
+
+ Minor bugfixes here and there. Support for compiled in
+defaults for many of the text fields in the volume header are now
+present, and there is also support for a file ".mkisofsrc" that can
+also read settings for these parameters.
+
+ A short script "Configure" was added to allow us to set up special
+compile options that depend upon the system that we are running on.
+This should help stamp out the sphaghetti-isms that were starting to grow
+up in various places in the code.
+
+ You should get more meaningful error messages if you run out of
+memory.
+
+*****************************
+Notes for version 1.1.
+
+ The big news is that SUSP CE entries are now generated for
+extremely long filenames and symlink names. This virtually guarantees
+that there is no limit (OK, well, about 600Mb) for file name lengths.
+I have tested this as well as I can, and it seems to work with linux.
+This would only be used very rarely I suspect.
+
+ Also, I believe that support for VMS is done. You must be
+careful, because only Stream-LF and FIxed length record files can be
+recorded. The rest are rejected with error messages. Perhaps I am
+being too severe here.
+
+ There is a bugfix in the sorting of entries on the disc - we
+need to stop comparing once we reach the ';' character.
+
+ There are four new options -z -d -D -l -V. Some of these tell
+mkisofs to relax some of the iso9660 restrictions, and many systems
+apparently do not really seem to mind. Use these with caution.
+
+ Some diagnostic programs to scan disc images are in the diag
+directory. These are not as portable as mkisofs, and may have some
+bugs. Still they are useful because they can check for bugs that I might
+have introduced as I add new features.
+
+*****************************
+Notes for version 1.0.
+
+ In version 1.0, the date fields in the TF fields were fixed -
+previously I was storing st_ctime as the file creation time instead of
+the file attribute change time. Thanks to Peter van der Veen for
+pointing this out. I have one slight concern with this change,
+however. The Young Minds software is definitely supplying 3 dates
+(creation, modification and access), and I would strongly suspect that
+they are incorrectly putting the file attribute change time in the
+file creation slot. I would be curious to see how the different RRIP
+filesystems treat this. Anyway, this is something to keep in the back
+of your mind.
+
+ The symlink handling was not quite correct in 0.99 - this is
+now fixed. Only some systems seemed to have been affected by this bug.
+
+ A command line option is now present to allow you to
+specifically exclude certain files from the distribution.
+
+ The case where you do not have permissions to read a directory
+is now handled better by mkisofs. The directory that cannot be opened
+is converted into a zero-length file, and processing continues normally.
+
+ A few portability things have been fixed (hopefully).
+
+
+Source: README from cdrtools package
+Edited for cdrkit by Christian Fromme <kaner@strace.org>
+
diff --git a/doc/genisoimage/README.rootinfo b/doc/genisoimage/README.rootinfo
new file mode 100644
index 0000000..b3bc447
--- /dev/null
+++ b/doc/genisoimage/README.rootinfo
@@ -0,0 +1,90 @@
+The -icon-position option will attempt to preserve folder window positions,
+scroll bars, views etc. for Apple/Unix file formats that support this
+information (see below for which Apple/Unix encoding are supported).
+
+This information is stored in the 'FinderInfo' part of a Apple/Unix directory.
+For example, in a CAP directory structure a directory called 'dirA' will
+have the necessary FinderInfo stored in file '.finderinfo/dirA'. This file
+stores information including, the folder's location and size on screen,
+its scroll positions, folder View (view as Icons, Small Icons, etc.).
+
+However, the similar FinderInfo data for the 'root' folder is a special case.
+For example, if a directory called '/some/dir/macfiles' is a CAP volume that
+is mounted on a Mac as 'macfiles', then the FinderInfo for this directory
+is stored in the file '/some/dir/.finderinfo/macfiles' - which is outside
+the CAP directory structure.
+
+To get round this, an extra option, '-root-info' is used that takes as its
+argument the name of the file that stores the root folder's FinderInfo.
+
+Using the above example, the command file options will be something like:
+
+% mkhybrid --cap -root-info /some/dir/.finderinfo/macfiles /some/dir/macfiles
+
+The format of the root FinderInfo file must be the same as the 'double-dash'
+option(s) given on the command line.
+
+The Apple/Unix encodings that mkhybrid can decode the root FinderInfo are:
+
+CAP:
+ CAP directory: /some/dir/macfiles
+ Root FinderInfo file: /some/dir/.finderinfo/macfiles
+
+Netatalk:
+ Netatalk directory: /some/dir/macfiles
+ Root FinderInfo file: /some/dir/.AppleDouble/RootInfo
+
+EtherShare:
+ EtherShare directory: /some/dir/macfiles
+ Root FinderInfo file: /some/dir/.rsrc/macfiles
+
+If an HFS disk is mounted on a Linux platform, then the root FinderInfo
+files are:
+
+Option 'fork=cap':
+ Root FinderInfo file: /mountpoint/.rootinfo
+
+Option 'fork=double':
+ Root FinderInfo file: /mountpoint/%RootInfo
+
+Option 'fork=netatalk':
+ Root FinderInfo file: /mountpoint/.AppleDouble/RootInfo
+
+
+The '-root-info' option implies the '-icon-position' option. Future releases
+of mkhybrid may automatically find the root FinderInfo file.
+
+The volume name is not set from the root FinderInfo file. Use the -V or
+-hfs-volid options to set the volume name.
+
+Currently UShare, SGI/XINET, PC Exchange and SFM Apple/Unix root FinderInfo
+files are not supported by mkhybrid - more information about these formats
+is required in order to supoort them.
+
+AppleSingle and MacBinary are file only formats - they don't support folders
+or volumes.
+
+Using this option, it is now possible to make a nearly true representation
+of a Mac folder layout on a Unix/Linux platform.
+
+Original author: James Pearson 26-Apr-2000
+
+This describes the program as shipped with cdrkit, a spinoff from the
+cdrtools project. However, the cdrtools developers are no longer
+involved in the development of this spinoff and therefore shall not
+be made responsible for any problem caused by it. Do not try to get
+support for this program by contacting the original authors.
+
+If you have support questions, send them to
+
+debburn-devel@lists.alioth.debian.org
+
+If you have definitely found a bug, send a mail to this list or to
+
+submit@bugs.debian.org
+
+writing at least a short description into the Subject and "Package: cdrkit"
+
+Source: README.rootinfo from cdrtools package
+Edited for cdrkit by Christian Fromme <kaner@strace.org>
+
diff --git a/doc/genisoimage/README.session b/doc/genisoimage/README.session
new file mode 100644
index 0000000..a4126fb
--- /dev/null
+++ b/doc/genisoimage/README.session
@@ -0,0 +1,53 @@
+/* @(#)README.session 1.3 99/03/02 eric */
+
+ This release of genisoimage has basic support completed for
+multiple sessions. However, we still need some interaction
+between wodim and genisoimage for this to work correctly. This is needed as
+only wodim knows the different ways to gather these numbers for all
+different drives. It may be that future versions of genisoimage will include
+the needed support for MMC compliant drives.
+
+ There are a few new options to genisoimage to allow for this.
+The first one is "-M /dev/scd0", and is used so that genisoimage can examine
+the entirety of the previous image so that it can figure out what additional
+files need to be written in the new session. Note that there are operating
+systems that don't allow to read from CD drives with a sector size
+of 2048 bytes per sector. To use genisoimage on such an operating system, you
+will need a version of genisoimage that includes the SCSI transport library
+from wodim. Simply use the dev= syntax from wodim with -M in
+such a case. It will tell genisoimage to use the SCSI transport library to
+read from the CD instead of using the standard read() OS interface.
+
+ There is also a temporary hack in genisoimage in the form of a '-C' option.
+The -C option takes two numbers as input, which are delimited by commas.
+For example, you could specify "-C 1000,1020", but you should never just
+make up numbers to use here. These numbers are determined from wodim.
+
+ Note that if you use -C and omit -M, it effectively means that
+you are writing a new session, starting at a non-zero block number,
+and you are effectively ignoring all of the previous session contents.
+When this session is sent to the writer, the new session effectively
+"erases" the previous session.
+
+ In practice you should be able to do something like:
+
+genisoimage [other options] -C `wodim dev=b,t,l -msinfo` \
+ -M /dev/cdblkdev
+
+Replace 'b,t,l' by the aproriate numbers for SCSIbus, target and lun
+of your drive.
+
+Note: As of the 1.12b5 release, the multi-session technology has
+matured quite significantly. It is entirely possible that bugs
+exists, or that further tweaks will be required somewhere along the
+way to get things working correctly. The data gathering mode of
+wodim has been tested, and I believe it works correctly. Caveat
+Emptor.
+
+[Mar 1, 1999].
+
+
+Source: README.session from cdrtools package
+Edited for cdrkit by Christian Fromme <kaner@strace.org> and
+Eduard Bloch <blade@debian.org>
+
diff --git a/doc/genisoimage/README.sort b/doc/genisoimage/README.sort
new file mode 100644
index 0000000..1e377bc
--- /dev/null
+++ b/doc/genisoimage/README.sort
@@ -0,0 +1,102 @@
+Sort the order of file data on the CD
+=====================================
+
+Note: this option does not sort the order of the file names that appear
+in the ISO9660 directory. It sorts the order in which the file data is
+written to the CD image.
+
+This option is useful in order to optimize the data layout on a CD.
+
+To use, type something like:
+
+genisoimage -o cdimage.iso -sort sort_file [other_options] cd_dir
+
+The file 'sort_file' contains two columns of:
+
+filename weight
+
+where filename is the whole name of a file/directory as genisoimage will see it
+and weight is a whole number between +/- 2147483647
+
+The files will be sorted with the highest weights first and lowest last.
+The default weight is zero.
+
+If the filename is a directory name, then all the files in that directory (and
+sub-directories) will use its weight as their default weight.
+
+e.g.
+
+If the directory 'cd_dir' contains two directories called 'dir1' and 'dir2'
+with files 'A', 'B' and 'C' in dir1 and 'X', 'Y' and 'Z', the the file
+'sort_file' could look something like:
+
+cd_dir/dir2 1000
+cd_dir/dir2/Y 2000
+cd_dir/dir1/B -2000
+cd_dir/dir1/A -8000
+
+Note: There must be only one space or tab character between the filename and
+the weight and the weight must be the last characters on a line. The filename
+is taken to include all the characters from the first in a line, up to, but
+not including the last space or tab character on a line. This is to allow
+for space characters to be in, or at the end of a filename.
+
+
+The command:
+
+genisoimage -o cdimage.iso -sort sort_file cd_dir
+
+will sort the above file data as:
+
+cd_dir/dir2/Y
+cd_dir/dir2/X
+cd_dir/dir2/Z
+cd_dir/dir1/C
+cd_dir/dir1/B
+cd_dir/dir1/A
+
+Note: files 'X' and 'Z' both have the weight 1000 - their sort order will then
+be the normal ISO9660 sort order (i.e. alphabetical in this case).
+
+File C will have the default weight of 0
+
+Warning: the filenames in the sort list MUST match the whole path as seen by
+genisoimage. i.e. in the above case, if the command line was:
+
+genisoimage -o cdimage.iso -sort sort_file ./cd_dir
+
+then the sort_file filename will have to changed as accordingly.
+
+Notes
+=====
+
+CDs are written from the middle outwards. High weighted files will be nearer
+the inside of the CD.
+
+Wildcards in the filename list should work.
+
+If a file appears more than once in the source directory tree, then the file
+is only added once to the CD image - i.e. a hard linked file, or symbolic
+link if using the -f option. The file will be sorted according to the
+highest weighting given to any of the linked files.
+
+Zero length files are not sorted - the 'start extent' *may* appear to be in
+the middle of another file after sorting. This is because zero length files
+are given the start extent after the last file added to the CD at that time.
+This address is not changed by the sorting, so it may appear that the file
+address is in another file - however as they are zero length, this will
+not matter!
+
+Directories are not sorted by this flag - directories HAVE to be in the
+ISO9660 sort order - however, the files the directory entry points to, can be
+anywhere on the CD.
+
+Existing files from any previous sessions will not be sorted - they already
+exist on the CD and can not be moved!
+
+I have no idea if this is really useful ...
+
+
+James Pearson 22-Nov-2001
+
+Any comments/problems to j.pearson@ge.ucl.ac.uk
diff --git a/doc/genisoimage/README.sparcboot b/doc/genisoimage/README.sparcboot
new file mode 100644
index 0000000..b9bcbf2
--- /dev/null
+++ b/doc/genisoimage/README.sparcboot
@@ -0,0 +1,77 @@
+# @(#)README.sparcboot 1.1 99/12/12 joerg
+# Edited for program name change by Eduard Bloch, 2006
+
+The sparc boot feature does allow you to create your own Sun sparc boot disk.
+This will allow you to create modified Solaris install disks or to create
+installation CD's for other OS that run on sparc systems.
+
+A CD that is bootable on a Sun sparc system has a Sun disk label on sector 0
+and some Sun sparc disk partitions behind the ISO-9660 filesystem image.
+
+The layout of a sparc boot CD:
+
+----------------------------------------------------------------------------------------------------
+|Sun disk label| Iso 9660 filesystem |Generic sun4 boot|sun4c boot|sun4m boot|sun4d boot|sun4e boot|
+----------------------------------------------------------------------------------------------------
+
+On older system CD's all boot partition contain a full UFS miniroot filesystem.
+On newer CD's the images on slice 2 and above only contain boot redirects to
+slice 1.
+
+To create a CD that is bootable on Sun sparc systems you need to have the
+boot images for the apropriate sparc architecture.
+
+A boot image file usually is a UFS filesystem image that contains the
+primary boot image at byte offset 512 ... 8191.
+
+You may get such boot images by extracting partitions 1..5 from a Sun Solaris install CD,
+but any bootable image should work.
+
+Here is an expample how to do this with the Solaris 7 install CD.
+
+dd if=/vol/dev/dsk/c0t6/sol_7_sparc_sun_srvr/s1 of=sun4
+dd if=/vol/dev/dsk/c0t6/sol_7_sparc_sun_srvr/s2 of=sun4c
+dd if=/vol/dev/dsk/c0t6/sol_7_sparc_sun_srvr/s3 of=sun4m
+dd if=/vol/dev/dsk/c0t6/sol_7_sparc_sun_srvr/s4 of=sun4d
+dd if=/vol/dev/dsk/c0t6/sol_7_sparc_sun_srvr/s5 of=sun4e
+
+
+genisoimage -R -sparc-boot sun4,sun4c,sun4m,sun4d,sun4e -o boot.img /mnt/install
+
+Will create the bootable image in boot.img.
+
+If you like to make the boot images smaller, you may call 'fstyp -v'
+on the images and use the 'size' value to get the needed minimal
+boot image size in kB.
+
+The result for the S7 boot CD is:
+
+ufs
+magic 11954 format dynamic time Wed Oct 7 00:00:30 1998
+sblkno 8 cblkno 12 iblkno 16 dblkno 252
+sbsize 2048 cgsize 2048 cgoffset 20 cgmask 0xfffffff0
+ncg 7 size 25704 blocks 23987
+ ^^^^^
+ This is the number of interest.
+bsize 8192 shift 13 mask 0xffffe000
+fsize 2048 shift 11 mask 0xfffff800
+frag 4 shift 2 fsbtodb 2
+minfree 10% maxbpg 2048 optim time
+maxcontig 256 rotdelay 0ms rps 90
+csaddr 252 cssize 2048 shift 9 mask 0xfffffe00
+ntrak 14 nsect 72 spc 1008 ncyl 102
+cpg 16 bpg 1008 fpg 4032 ipg 3776
+nindir 2048 inopb 64 nspf 4
+nbfree 1768 ndir 667 nifree 24329 nffree 9
+cgrotor 2 fmod 0 ronly 0
+
+So you should call:
+
+dd if=/vol/dev/dsk/c0t6/sol_7_sparc_sun_srvr/s1 of=sun4 bs=1k count=25704
+
+To modify this filesystem, you can mount it using the fbk driver:
+
+chmod +t ./sun4 # Need to do this to avoid vm cache aliasing problems
+
+mount -F fbk -o rw,type=ufs /dev/fbk0:sun4 /mnt
+
diff --git a/doc/genisoimage/README.sunx86boot b/doc/genisoimage/README.sunx86boot
new file mode 100644
index 0000000..2286a57
--- /dev/null
+++ b/doc/genisoimage/README.sunx86boot
@@ -0,0 +1,77 @@
+# @(#)README.sunx86boot 1.3 05/02/25 Copyright 2003 J. Schilling
+# Edited for program name change by Eduard Bloch, 2006
+
+A Solaris x86 Boot CD looks the like this:
+
+- A PC type fdisk partition map is in CD sector 0 at offset 0
+ This fdisk partition map contains a single Solaris 0x82 type
+ partition starting at CD sector 0 at offset 512.
+
+- A SVr4 disk partition label is at CD sector 0 at offset 1024.
+ This equates the usual 512 byte offset to the primary partition
+ used by SVr4.
+
+ This SVr4 partition label defines:
+
+ - Partition 0 to contain a usually UFS type boot filesystem
+
+ - Partition 1 to map the ISO-9660 filesystem.
+
+ This seems to be a conceptual bug from Sun, as it is
+ impossible to mount this partition because this partition
+ would point outside the primary fdisk partition type 0x82
+
+ - Partition 2 maps the whole CD.
+
+
+A boot CD created by Sun contains a master boot record in CD sector 0 offset 0.
+The size if this MBR is 0x1BE (446 decimal) as usual on PCs.
+
+At CD sector 0 offset 512, there is a "primary boot sector". The MBR assumes
+that is always gets loaded together with the ""primary boot sector".
+
+The El-Torito map for this CD defines a "no-emulation" boot sitting at CD sector 0
+and being 4 512 byte sectors in size. This covers the 1024 bytes of above
+boot code. Note that genisoimage will not put the no-emulation boot at sector 0
+as it keeps the boot inside the area used for other file content data.
+
+At CD sector 1..15, there is a secondary boot code that understands UFS and tries
+to boot from UFS slice 0. If you like to boot from different filesystem types,
+you need to replace this boot code. The real size used by the secondary boot
+is 31 x 512 bytes == 15872 bytes.
+
+To get hold of the three boot files, do the following with e.g. a Solaris 10
+boot CD:
+
+readcd dev=1,0 f=CD.out sectors=0-32
+
+Replace dev=1,0 with the apropriate values for your system (see readcd -scanbus).
+
+sdd if=CD.out bs=446 count=1 of=mboot
+sdd if=CD.out count=1 iseek=512 of=pboot
+sdd if=CD.out count=60 iseek=2048 of=bootblk
+
+To create the needed files for the misofs command line example below, do the
+following:
+
+sdd if=mboot -fill of=eltoritoboot
+cat pboot >> eltoritoboot
+
+sdd -inull bs=2k count=1 of=genboot
+cat bootblk >> genboot
+
+If you like the CD to look more similar to the original Sun CDs, use:
+
+cp eltoritoboot genboot
+sdd -inull bs=1k count=1 >> genboot
+cat bootblk >> genboot
+
+If you like to create a CD similar to the Solaris 10 boot CD, do the following:
+
+mkdir isodir
+star -cPM -C /vol/dev/dsk/c1t1d0/multi_icd_sol_10_x86/s2 . | star -xp -xdot -C isodir
+cp eltoritoboot isodir/.bootimage
+
+genisoimage -G genboot -no-emul-boot -b .bootimage -c .catalog -R -o bootcd.iso -sunx86-boot /vol/dev/dsk/c1t1d0/multi_icd_sol_10_x86/s0 isodir/
+
+
diff --git a/doc/icedax/FAQ b/doc/icedax/FAQ
new file mode 100644
index 0000000..815f579
--- /dev/null
+++ b/doc/icedax/FAQ
@@ -0,0 +1,296 @@
+Frequently Asked Questions
+
+Status
+======
+
+
+Q: What is the copyright status of icedax?
+
+A: icedax is software copyrighted by Heiko Eissfeldt and others, and
+ released under the General Public License from the Free Software
+ Foundation (see file GPL).
+
+Compilation
+===========
+
+
+Q: What are the requirements to run icedax?
+
+A: All operating systems that are supported by wodim should also be able to
+ run icedax. Currently DOS and Windows are not covered.
+ Requirements of previous versions of icedax have been cut down for the
+ sake of portability. Features like fork(), realtime scheduling, or shared
+ memory are all optional now. You need Cmake and its dependencies, an
+ ANSI C compiler and a C library to build icedax
+ on a supported operating system. To run icedax, a SCSI transport
+ implementation for the os, a cdrom or cd burner device to read from, and
+ at least say 65K of memory for buffers are needed.
+
+
+Q: Why does it not compile under Linux, although I am using the newest kernel?
+
+A: There have been changes in the generic driver by Douglas Gilbert, that are
+ in its first release not compatible with the scsi library from Joerg
+ Schilling. We are working on this problem...
+ In the meantime better do not use this variant, use the older one instead.
+
+
+Q: Why does it not compile using standard make?
+
+A: Like wodim, icedax uses the cmake system, which requires a
+ sophisticated make program like GNU make.
+ Pure posix make functionality is not enough.
+
+Setting Up (for now Linux only)
+===============================
+
+
+Q: Should I use scsi emulation or the eide driver for my ATAPI cdrom drive?
+
+A: Scsi emulation is preferred, since it enables icedax to use more commands
+ and is often the only way to get special information like track titles with
+ cd-text. The emulation module is called ide-scsi, the eide module is called
+ ide-cd.
+
+
+Q: How can I use my parallel-port-connected cdrom with icedax?
+
+A: Under Linux there is a driver, that makes this device under SCSI
+ emulation available. For more information see the wodim documentation.
+
+
+Q: How do I check, if the current Linux kernel does support generic SCSI?
+
+A: run 'cat /proc/devices | grep "21 sg"' and see, if a line with 'sg' appears.
+ If it does not appear, the current kernel is not able to use the generic_scsi
+ interface. If you have generic SCSI support compiled as a module, see next
+ question, otherwise you need to recompile the kernel and enable generic SCSI.
+ You might try to use the 'cooked_ioctl' interface as a last resort, but then
+ you need to supply a cdrom device with -D (like -D/dev/cdrom). In this case
+ icedax completely relies on the cdda reading methods from the kernel
+ driver, so it might not work (due to unsupported).
+
+
+Q: How do I load the generic SCSI module by hand?
+
+A: run 'insmod sg' and check the result (see above).
+
+
+Q: How do I find the device setting for my drive?
+
+A: Under Linux use the script scan_scsi.Linux. It prints the available devices
+ and their respective device option to be used.
+ Be aware of the fact that the generic device naming may change whenever the
+ devices on the SCSI bus change (present or not present).
+
+General usage (sampling)
+========================
+
+
+Q: How do I record the whole cd, each track in a seperate file?
+
+A: Use the '-B' option. This will automagically create a file for each track.
+
+
+Q: How do I record the whole cd into one file?
+
+A: Just extend the default recording time from one track to a big enough
+ time in seconds to cover the whole cd (like -d99999).
+
+
+Q: How do I record successive tracks (a track range) into seperate files?
+
+A: Use the '-B' option and -t<first tracknumber>+<last track number>.
+
+
+Q: How do I record successive tracks (a track range) into one file?
+
+A: Use -t<first tracknumber>+<last track number>.
+
+
+Q: How do I record different tracks into seperate files with individual file
+ names?
+
+A: Use the supplied script 'readmult'. For usage see the comments at the
+ beginning of the script.
+
+
+Q: How can I get the highest speed out of icedax?
+
+A: See the file README. There is a section about performance and what is
+ influencing it.
+
+
+Q: How can I burn audio cds with icedax and wodim on-the-fly?
+
+A: This has not been tested very well, so caveat emptor. It is possible to
+ use icedax and wodim with pipes, _but_ there are several issues.
+ 1.: The cd drive may become too slow to keep wodim's buffer happy, when
+ a scratch on the audio cd is encountered, and several retries take place.
+ 2.: Currently there is no way to carry individual track information from
+ icedax to wodim. Several information bits are available very late
+ but are needed in advance from wodim.
+ 3.: Some operating systems have limitations in multiple SCSI accesses and
+ other resources (shared memory). icedax and wodim may block each
+ other, or might fight over limited resources.
+ For these reasons it is not recommended to burn on-the-fly with icedax.
+
+Frontends
+=========
+
+
+Q: Which frontends for icedax are available?
+
+A: See the file 'Frontends'. There are command line and graphical frontends.
+
+Album and track titles
+======================
+
+
+Q: Does icedax support titles from cd extra (aka cd plus aka enhanced cd)?
+
+A: In general, yes. In order to get this information, icedax needs to read
+ a data sector from the second session of the cd. This requires multisession
+ support and the capability to read XA sectors. The titles are printed on the
+ screen and written into the inf files, then.
+
+
+Q: Does icedax support titles from cd-text?
+
+A: Newer versions support the most important features of cd-text like titles
+ and creators. Non-supported are currently 16-bit characters, so asian
+ titles etc. are currently not available.
+
+
+Q: Does icedax support CDDB ids?
+
+A: Yes, while it does not make CDDB lookups itself, it supplies an cddb file
+ with the table of contents and the cddb id. For cddb lookups see the
+ perl script tracknames.pl and tracknames.txt. If the titles are known to
+ icedax, it fills the titles itself in the cddb file.
+
+
+Q: What is the MCN?
+
+A: The media catalog number is an unique id for the audio cd release. It is
+ similar to the ISBN for books, but unfortunately it is included only on
+ some audio cds.
+
+
+Q: What is the ISRC?
+
+A: The International Standard Record Code is an unique id for a track. Like the
+ MCN (see above) it is an optional item.
+
+MP3 coding
+==========
+
+
+Q: Does icedax support on-the-fly mp3-coding?
+
+A: Yes. As of version 1.9alpha I integrated the LAME encoding engine as a new
+ output format.
+ To support external encoders, I added two scripts. The trick
+ is to avoid big temporary files. There are three versions (cdda2mp3.file,
+ cdda2mp3.pipe, and cdda2mp3.fifo), the first using files, the second uses
+ pipes, and the last uses a named pipe (also called fifo). The examples
+ use the Fraunhofer encoder 'l3enc', which is a commercial product and has
+ to be purchased seperately. Other encoders should be usable in a similar way.
+
+Conversions
+===========
+
+
+Q: How do I create a file suitable for cd burning?
+
+A: If you are using wodim, you can produce cdr or wav files. To select
+ cdr files, use -Ocdr, to select wav files use -Owav (the default).
+ Audio files that have been recorded with a length not a multiple of the
+ audio sector size 2352 bytes, should be used with wodim's -pad option.
+
+
+Q: How do I convert a wav file into a cdr file (my other cd burning program
+ does not accept wav format)?
+
+A: Use 'dd if=wavfile of=cdrfile conv=swab ibs=44 skip=1 obs=2352'
+
+
+Q: How to convert cdr to wav?
+
+A: Use sox, the sound utility. It supports other formats as well.
+
+Specials
+========
+
+
+Q: Does icedax support the pre-emphasis bit?
+
+A: If the table of contents marks a track as pre-emphasized, the corresponding
+ inf file will have this information, too. That enables a cd burning program
+ to retain the state of the track.
+
+
+Q: Can icedax undo the pre-emphasis effect in the samples?
+
+A: Yes, if the -T option is given (and cd quality is selected),
+ icedax filters the samples with the reverse emphasis on-the-fly. This has
+ been checked with a sine sweep from a pre-emphasized test cd.
+
+
+Q: My cdrom delivers the stereo channels swapped. How can I undo this?
+
+A: Use the -cs option.
+
+
+Q: Does icedax support indices?
+
+A: Yes, but since there are positioning problems with a lot of drives,
+ information might be inaccurate. A start index can be specified with the
+ -i option. To get all indices, use the -v7 option.
+
+
+Q: Can icedax avoid including the pre-gap region at the end of the track?
+
+A: Currently not. This might be added later, but is not easily done.
+
+
+Q: How can I get all information about the cd without writing files?
+
+A: Use the -J option, which switches analysis to the max, and aborts after
+ the report.
+
+
+Q: Can icedax display/save the graphics on my CD+graphics disc?
+
+A: No, this is not planned. A seperate X11 program could do that probably
+ better.
+
+
+Q: Can icedax read the audio portion from my CD-I/Video-CD/DVD mpeg streams?
+
+A: No, these are special formats, which require much more effort.
+
+User support/feedback
+=====================
+
+
+Q: icedax is great. How can I support you to encourage further development?
+
+A: Look into the file NEEDED. Also constructive criticism and feedback is
+ appreciated.
+
+
+Q: I want to port cdrkit (wodim/genisoimage/icedax) to a new platform (like
+ DJGPP,cygwin,os/2). How should I proceed?
+
+A: It would be convenient to have a unix like environment (like cygwin provides)
+ A shell, and a make program would be needed to first create smake (in order
+ to make the makefile system working). Another critical component is autoconf.
+ Once that is running, os dependent interfaces and the SCSI library should be
+ adjusted. For the makefile system and the scsi library please contact Joerg
+ Schilling.
+
+
+Q: icedax sucks. Are there other alternatives available?
+
+A: Yes, for Linux you might try 'cdparanoia' from Monty (see README file).
diff --git a/doc/icedax/Frontends b/doc/icedax/Frontends
new file mode 100644
index 0000000..779af6e
--- /dev/null
+++ b/doc/icedax/Frontends
@@ -0,0 +1,34 @@
+This file lists additional free frontend software to be combined with icedax:
+
+graphical frontends
+===================
+
+BurnIT (http://sunsite.auc.dk/BurnIT/)
+ by Jesper Petersen
+ a Java based frontend for cdrecord and icedax/cdparanoia
+
+Grip (http://www.ling.ed.ac.uk/~oliphant/grip)
+ by Mike Oliphant
+ a GTK+ Frontend for audio extraction and MPEG 1 Layer 3 conversion
+ (incl. CDDB support)
+ requires libcdaudio (also by Mike Oliphant)
+
+Krabber (http://members.tripod.com/~fehlfarben/download.html)
+ by Adrian Schroeter
+ a KDE frontend for cdparanoia and MPEG 1 Layer 3 conversion
+ (incl. CDDB support)
+
+script frontends
+================
+
+Cdr Create/Duplicate/Rip (ftp://ftp.burdell.org/pub/)
+ by David Cantrell
+ a ncurses based Perl script for CDDA to MPEG 1 Layer 3 conversion
+ (incl. CDDB support)
+ requires xmcd
+
+Ripenc rip encoder (http://www.asde.com/~mjparme/index.htm)
+ by Michael J. Parmeley
+ a shell script frontend for CDDA extraction and MPEG 1 Layer 3
+ conversion
+ (incl. CDDB support)
diff --git a/doc/icedax/HOWTOUSE b/doc/icedax/HOWTOUSE
new file mode 100644
index 0000000..1ab9d77
--- /dev/null
+++ b/doc/icedax/HOWTOUSE
@@ -0,0 +1,101 @@
+Icedax User guide
+=================
+
+NOTE: expressions in angle braces have to be substituted with
+ the corresponding numerical values.
+ For example: <delay in seconds> has to be substituted
+ with the numerical value to be used.
+
+Common tasks
+============
+NOTE: The examples used here depend on proper default settings for interface
+method and devices as specified in the Makefile. They can be overriden with
+command line parameters, but here I choose to focus on simple examples.
+
+Copy complete audio CDs
+
+1. Copy an audio CD into wav files one per track.
+
+ icedax -B
+
+ will produce the sample wav files (one per track)
+ audio_01.wav
+ audio_02.wav
+ ...
+
+ and the corresponding description files
+ audio_01.inf
+ audio_02.inf
+ ...
+
+2. Same as above but include MD-5 type signatures
+
+ icedax -B -M<length>
+
+
+3. Same as above but use other file name ('party_cd.wav')
+
+ icedax -B -M<length> party_cd.wav
+
+
+Copy single tracks
+
+1. Copy one track (eg track 6) into a wav file.
+
+ icedax -t6
+
+ will produce a wav file including track 6
+
+ audio.wav
+
+ and
+
+ audio.inf
+
+
+Copy parts of tracks
+
+1. Copy from given start time to end of track
+
+ icedax -t6 -o<delay in 1/75 seconds>
+
+ will record track 6 starting at track time <delay>/75 seconds
+ from track beginning upto the end of track.
+
+2. Copy from given start time and record for a given time
+
+ icedax -t6 -o<delay in 1/75 seconds> -d<time to record in seconds>
+
+ will record track 6 starting at track time <delay>/75 seconds
+ from track beginning for <time to record in seconds> seconds.
+
+
+
+Copy tracks into a pipe
+
+ icedax -t6 -Oraw - | audio_compressor
+
+ will feed the audio samples (in big endian format) of track 6
+ into a secondary program audio_compressor.
+(See also script cdda2mp3(.new) for a suggestion, how to process all tracks of
+an audio cd with a MPEG-Layer3 encoder (not included here).)
+
+
+Miscellaneous
+
+1. Use icedax as a cd player
+
+ icedax -eN -t6
+
+ will copy the audio samples into a sound card (if sound card support
+ is compiled in) and will not write any file.
+
+
+
+2. Get complete information on the cd
+
+ icedax -v63 -Nd0.01
+
+ will try to find out a media catalog number and track related
+ information (ISRCs) in addition to indices. For CD-Extra discs
+ limited support exists to retrieve additional information.
diff --git a/doc/icedax/NEEDED b/doc/icedax/NEEDED
new file mode 100644
index 0000000..361cc29
--- /dev/null
+++ b/doc/icedax/NEEDED
@@ -0,0 +1,10 @@
+Here I list some things, which would be very helpful for the further
+development of cdrtools/icedax, but I currently have no access to.
+User support for the acquisition of these items is appreciated :-)
+
+Access to all 'coloured books' from Philips/Sony
+(Red/Yellow/Green/Orange/White/Blue,...).
+
+CD-extra discs with a lot of features/entries in the data sectors (SUB_INFO*).
+
+CD-text discs with a lot of features/entries.
diff --git a/doc/icedax/OtherProgs b/doc/icedax/OtherProgs
new file mode 100644
index 0000000..8c6fa41
--- /dev/null
+++ b/doc/icedax/OtherProgs
@@ -0,0 +1,2 @@
+dagrab works with ioctls, includes cddb lookups
+cdparanoia has sophisticated jitter correction
diff --git a/doc/icedax/README b/doc/icedax/README
new file mode 100644
index 0000000..4b65532
--- /dev/null
+++ b/doc/icedax/README
@@ -0,0 +1,549 @@
+Hi dear cdrom drive users,
+
+This README describes hardware related matters as well as the installation of
+icedax, the sampling utility.
+
+This icedax utility comes with the Cdrkit project. Cdrkit is a spinoff from
+cdrtools. However, the cdrtools developers are not involved in the
+development of this spinoff and therefore shall not be made responsible for
+any problem caused by it. Please do not try to get support for this program by
+contacting the original authors.
+
+Requirements
+============
+
+For SCSI cdroms and CD-writers, as well as SCSI-emulated ATAPIS and parallel
+ port drives
+1s. kernel support for SCSI, the host adapter, SCSI cdroms and the
+ generic SCSI interface (if under Linux). You need to have the proper device
+ descriptors (get them under Linux with the MAKEDEV script from /dev).
+
+For ATAPI cdroms under Linux
+1a. kernel support for the ATAPI cdrom driver or alternatively ide-scsi
+ emulation. You need to have the proper device descriptors (get them
+ with the MAKEDEV script from /dev).
+
+For parallel port cdroms under Linux
+ With newer kernels icedax uses the same parallel port access
+ as does wodim. Please refer additionally to the wodim documentation.
+ There are generally two drivers to access the cdrom through the parallel
+ port: the ATAPI cd emulation (called pcd), and the SCSI device emulation
+ (called pg). The pcd driver does NOT support cdda reading (kernel 2.2.12),
+ while the pg driver has no restriction. So you have to use pg for that.
+
+
+For cdrom drives with proprietary busses under Linux
+1p. Please check the CDROM-HOWTO for features of the respective
+ drivers. The sbpcd driver is very demanding due to the lack of
+ interrupts.
+
+optionally currently for Solaris and all platforms running 4fronts
+OpenSoundSystems:
+2. kernel sound card support.
+
+
+Recommendations for higher throughput on Linux SCSI systems
+===========================================================
+
+Higher throughput will give better chances for non-interrupted
+sampling. This should avoid typical interruption errors (cracklings
+at buffer boundaries).
+
+1. Increase SG_BIG_BUFF to (128*1024) in /usr/src/linux/include/scsi/sg.h
+ (and recompile your kernel and boot it :-).
+NOTE: Some kernel configurations will lead to 'out of kernel memory' errors.
+ If you encounter this message regularly, better leave SG_BIG_BUFF at
+ 32768.
+
+1a.There is a patch for multiple sg device access under Linux. It uses
+ up to 128 K buffer for each device. See here:
+ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/alpha/sg*
+
+2. Ensure your harddisk has write cache enabled (For SCSI hard disks I
+ switched it on with the scsiinfo program from tsx-11.mit.edu), but
+ enable this only if it is correctly working ;-)
+
+This has boosted the throughput of icedax considerably.
+
+
+Supported interfaces
+====================
+
+Non SCSI drives (Linux only):
+ ATAPI:
+ The greatest group nowadays are ATAPI (EIDE) cdrom drives.
+ Support is only limited by the drive. Kernel and icedax
+ are ready for them (unless the drive uses a very uncommon method).
+
+ Newer kernels can do an scsi emulation for ATAPI devices.
+ This interface is supported.
+
+ Parallel port interface:
+ There is a driver that maps the parallel port driver to an generic
+ scsi like driver. Should work with newer kernels.
+
+ Proprietary interfaces:
+ Older drives with proprietary interfaces are supported only
+ if the kernel driver allows reading cdda audio data via ioctl().
+ Currently only Eberhard Moenkeberg's sbpcd and Corey Minyard's
+ cdu31a driver do allow this. The sbpcd driver of kernels earlier than
+ 2.0.30 and 2.1.57 needs a patch before satisfying output can be
+ obtained (see README.sbpcd).
+
+SCSI drives:
+ For these drives the SCSI library from Joerg Schilling is used.
+ Thus we need kernel support (compiled-in or as a module) for it.
+ The generic SCSI interface allows multi sector transfers (max. 128 KB)
+ which lowers cpu load considerably.
+
+ ** NEW **
+ I added a script 'scsi_scan.linux' to find the generic devices for all
+ SCSI CDROM- or WORM-type drives.
+
+Configuration
+=============
+
+There are some adjustable parameters in the beginning of the Makefile
+(which is called local.cnf.in) . They describe default settings of icedax:
+
+INTERFACE: How the cdrom is accessed. Choose one method for INTERFACE.
+DEVICE: The default cdrom device is set in DEF_DEVICE.
+
+SOUND FILE FORMAT DEFAULTS:
+The default format can be 'wav', 'sun pcm au', 'aiff', 'aifc', or
+'raw bigendian samples'.
+It is determined by the Makefile variable DEF_TYPE.
+
+AUDIO FILENAME:
+The default filename is given by DEF_FILE. Unless 'cdr' format is being used,
+this name is appended with '.wav', '.au', '.aiff' or '.aifc'.
+
+RATE: the default rate is given by setting DEF_UNDERSAMPLING to the divisor
+for the audio cd sampling frequency (44100 Hz).
+
+ RATE = 44100 Hz / DEF_UNDERSAMPLING
+
+DEF_UNDERSAMPLING can be any multiple of a half greater than one half.
+
+DYNAMIC: The default dynamic range of one sample in one channel is defined in
+DEF_BITS which can be one of 8, 12 or 16.
+
+CHANNELS: set DEF_CHANNELS to 1 for mono and 2 for stereo.
+
+RECORDING TIME: set DEF_TIME to the amount of seconds to record (or 0 for
+the whole track).
+
+SOUND DEVICE: set SOUND_DEVICE to the device name of your sound card.
+ The line containing HAVESOUND should be
+ uncommented also, if you want the option to hear
+ what you record.
+
+All of those values can be overridden by command line parameters.
+
+
+Compiling icedax
+==================
+
+Adjust the Makefile (named local.cnf.in) for your cdrom interface and
+device setting first.
+
+Then type
+ make
+and as root
+ make install
+
+This will compile icedax and copy the binary to /usr/local/bin and the
+man page to /usr/local/man/man1 (defaults).
+
+
+Privileges
+==========
+
+You can setgid the binary, if you want to allow access to a CDROM's
+scsi_generic interface for icedax but not for arbitrary programs.
+Giving away permissions to send SCSI commands directly to a device is
+not something you want to do lightly on a multi-user server system.
+The setgid privileges will only be used to access the scsi generic
+interface; for cooked_ioctl, the setgid privileges are not necessary
+and they are simply dropped.
+
+Previous versions of icedax had to be setuid to root. Such privileges
+are no longer necessary and will be dropped if present.
+
+Select device
+=============
+
+By default icedax uses the generic SCSI interface and a device tripel for
+SCSI bus, id, and lun.
+This setting can be overridden by specifying '-Iinterface' and
+'-D cdromdevice'.
+The following command line example uses the generic_scsi interface and the
+SCSI device with bus 1, id 2 and lun 3:
+icedax -Igeneric_scsi -D1,2,3
+
+The shell script 'scan_scsi.linux' will report the generic devices for
+all SCSI cdrom drives.
+
+If you need to use another interface, check the device setting also as they
+need to fit together.
+Here is an example for an ATAPI cdrom using the cooked_ioctl interface and
+the cdrom device /dev/hdb:
+icedax -Icooked_ioctl -D/dev/hdb
+
+
+Features
+========
+
+I added an optional on-the-fly correction for pre-emphasized samples
+(available for original CDDA format only).
+If the -T option is given, the samples will be filtered before they
+are written to disk. The samples then have a linear frequency response again.
+
+When recording in mono, both channels are summed with halved amplitude.
+
+Undersampling is done by summing several samples with reduced amplitude to
+prevent overflows. This damps higher freqencies as well. Compared to
+exact resampling icedax does not use a very sophisticated (expensive)
+filter algorithm. It currently uses quadratic interpolation for
+noninteger subsampling factors.
+
+Sampling can be aborted by pressing the Interrupt-Key (eg control-C)
+at anytime. Unless streaming to a pipe, the wav header will be updated
+to contain the actual length of the sample. The same will happen, if
+disk space becomes exhausted.
+
+Fast options
+============
+
+The options can also influence the performance greatly.
+The fastest case is given when the samples don't need to be changed from
+their original form or analysed, that is the output format uses the same
+parameters as the drive: 16-bit samples, stereo at 44100 Hz sample rate
+AND with the same endianess (-Cbig and -Ebig, or -Clittle and -Elittle).
+To be sure all parameters can be given explicitly on the command line.
+This avoids an analysis of icedax.
+
+icedax -P0 -q -S<maximum speed>
+run as root will read with maximum speed and copy its output into the
+wav file, taking advantage of realtime scheduling as well.
+
+For throughput testing the additional option -N can be used. Write
+operations will be suppressed then.
+
+Options that slow down initially
+================================
+-v<level> needs some time for analysis before the actual sampling starts
+
+Options that slow down during sampling
+======================================
+-P1 causes overlap reading, the slowdown depends on the amount of jitter
+-e synchronous output to a sound card slows down to onefold speed
+
+Options that need more cpu power
+================================
+-p<rate> resamples the output send to the sound card
+-M<count> calculates checksums
+-T on-the-fly preemphasis filtering
+-F checking for extremal samples
+-G checking for differences in both channels
+-C<endianess> if a conversion is required (see below)
+-E<endianess> if a conversion is required (see below)
+-Oaudiotype if a conversion is required (see below)
+-c 1
+-c s
+-m
+-b 8
+-b 12
+-a <not 1>
+-r <not 44100>
+
+When are one or two endianess (byte order) conversions required?
+================================================================
+There are three stages where the endianess matters:
+1.) on the input side the cd drive can deliver in two flavors (called F1).
+ When the flavor is unknown, icedax needs to find out the endianess.
+ A simple voting method is used. Successive samples are compared in both
+ flavors and the flavor with the statistically smaller changes is taken.
+ The flavor can be defined with the -C option, avoiding the analysis.
+2.) For any calculation with samples (and echoing to the sound card),
+ the samples are needed in the byte order of the machine (in this case
+ I set 'need_host_order' to yes). The flavor of the machine endianess
+ is called F2.
+3.) Finally, there are two flavors of output sound formats (called F3):
+ wav uses little endian samples
+ cdr and au use big endian samples
+ If the samples currently in memory have the wrong endianess a
+ (possibly second) conversion is required.
+
+This gives the following table:
+F1 F2 need_host_order F3 conversions
+little little no little 0
+little little yes little 0
+little little no big 1
+little little yes big 1
+little big no little 0
+little big yes little 2
+little big no big 1
+little big yes big 1
+big little no little 1
+big little yes little 1
+big little no big 0
+big little yes big 2
+big big no little 1
+big big yes little 1
+big big no big 0
+big big yes big 0
+
+
+Known problems
+==============
+
+1. Sound quality
+
+Audible errors caused by hesitations:
+
+When recording the same audio track twice, recordings can slightly differ.
+Furthermore depending on the firmware in the cdrom drive, positioning
+errors can be so severe that they cannot be easily corrected by icedax.
+This will unfortunately lead to audible errors.
+
+In this case some overlap or even underlap between successive portions
+is introduced from the cdrom drive.
+Here is this case demonstrated graphically:
+
+Sec 1 ... Sec n
+|----------------------| first read delivered
+ |------------------------| second read wanted
+ |------------------------| second read delivered
+ |-| extra bogus bytes
+ |-| missing bytes
+
+This is due to synchronisation problems between sectors inside the cdrom
+drive. When the drive has been forced to wait, these problems arise.
+
+Audio cds are lacking sector headers, so it's a difficult job to do the
+positioning right (in the firmware). The frequency of these errors is
+reduced when the reading process can continue undisturbed for longer periods.
+So, a high throughput is essential.
+
+You may want to fine-tune your update daemon to use shorter intervals
+(see 'man 8 update'). Shorter intervals are better because the update
+interruptions are shorter when not so much write requests can pile up.
+
+The plextor 4plexplus drive (PX-4XCE) and newer models, newer pioneer
+models as well as CD-writers with large buffers don't suffer from this
+errors. Here the default is to switch off overlap reading.
+
+If you cannot get good samples from your drives you might consider an
+alternative program. Monty's cdparanoia program goes to great lengths
+in order to seperate the good bits from the bad ones.
+
+2. The index scanner has caused timeouts on my toshiba 3401 due to fast
+ random accesses.
+
+3. Retrieval of media catalog numbers and International Standard Recording
+ Codes may fail due to firmware bugs.
+
+Audio Format Conversion
+=======================
+Currently wav, sun (au-pcm), Apple/SGI aiff/aifc, and raw formats are supported.
+
+I try to write correct wav files (little endian samples), but some
+cd-writers might swap them, which would result in sort of white noise
+instead of the original sounds. icedax has an endianness detector
+for these cases, but as for all automatics, it might fail on bizarre samples.
+
+Hint: icedax can be forced to use a given input endianness with the
+-C option (arguments are 'little', 'big' or 'guess').
+
+The sun format is a pcm variant, and uses big endian samples.
+The other more common sun format with logarithmically scaled samples (au)
+is not supported but can be obtained from sox's conversion.
+
+The raw format is like the sun format except it has no header. I
+changed the endianness to big endian samples in order to comply
+with popular cd burning software like the wodim program.
+
+The sound converter 'sox' can be used to obtain other sound formats.
+(Note however, that the current sox player and a newer sound driver do not
+harmonize well, use the player from the wavplay package instead (available
+at sunsite)).
+
+
+Feedback
+========
+
+Tested patches, any hardware information regarding drives as well as success/
+failure reports are always welcome at heiko@colossus.escape.de.
+
+
+known cdda capable drives
+=========================
+Check out these web pages for uptodate information:
+
+<http://www.tardis.ed.ac.uk/~psyche/pc/cdrom/CDDA.html>
+
+and
+
+<http://www.anime.net/~goemon/linux-cd/cdda-list.html>
+
+From a news posting from Björn Wiberg
+
+> The following table was generated using the CDROM.CFG file from Nero
+> v3.0.4.2.
+>
+> It shows different CD-ROM models and what speeds they can do DAE at. I
+> guess the values are "safe ones"; i.e. the speeds at which each drive
+> can perform DAE reliably.
+>
+> A value of "0x" means the drive doesn't support DAE.
+>
+> For your convenience, the maximum data transfer speed of the drives
+> (for reading conventional files and data from the CD-ROM) are also
+> included.
+>
+> Hopefully, this will help some of you who are looking for a good
+> CD-ROM drive to choose a model which seems fast enough both for data
+> and DAE.
+>
+> The models which support DAE:
+> (Sorted by DAE speed, data speed and model)
+>
+> CD-ROM model DAE Data Interface
+> ---------------------------------------------------------
+> PLEXTOR CD-ROM PX-32TS 16x 16x SCSI
+> TEAC CD-524E 14x 24x IDE
+> CREATIVE CD620E 12x 5x IDE
+> MITSUMI CD-ROM FX320S !B 12x 32x IDE
+> TEAC CD-532E 12x 32x IDE
+> HITACHI CDR-8335 12x 24x IDE
+> PIONEER CD-ROM DR-A02S 12x 24x IDE
+> TEAC CD-ROM CD-532S 12x 14x SCSI
+> PIONEER CD-ROM DR-A12X 12x 12x IDE
+> PIONEER CD-ROM DR-U06S 12x 12x SCSI
+> PLEXTOR CD-ROM PX-20TS 12x 12x SCSI
+> MITSUMI CD-ROM FX120T !B 11x 12x IDE
+> PIONEER CD-ROM DR-A04S 11x 32x IDE
+> PIONEER CD-ROM DR-U12X 10x 12x SCSI
+> HITACHI CDR-8330 9x 24x IDE
+> SONY CD-ROM CDU711 9x 14x IDE
+> MATSHITA CD-ROM CR-584 9x 12x IDE
+> MATSHITA CD-ROM CR-586 8x 32x IDE
+> CDM-T531 Ver1.041 8x 18x IDE
+> TEAC CD-516E 8x 16x IDE
+> TOSHIBA CD-ROM XM-6201TA 8x 16x SCSI
+> PLEXTOR CD-ROM PX-12CS 8x 12x SCSI
+> PLEXTOR CD-ROM PX-12TS 8x 12x SCSI
+> PIONEER CD-ROM DR-U10X 8x 10x SCSI
+> SONY CD-ROM CDU611 8x 10x IDE
+> FUNAI E285X 8x 8x IDE
+> MITSUMI CD-ROM FX810T4!B 8x 8x IDE
+> SONY CD-ROM CDU511 8x 8x IDE
+> SONY CD-ROM CDU571-Q 8x 8x IDE
+> TEAC CD-C68E 8x 8x IDE
+> MITSUMI CD-ROM FX400E !B 8x 4x IDE
+> HITACHI CDR-8130 7x 16x IDE
+> MATSHITA CD-ROM CR-585 6x 24x IDE
+> CREATIVE CD2422E MC102 6x 12x IDE
+> MATSHITA CD-ROM CR-508 6x 12x SCSI
+> IBM PD-1 LF-1195 6x 6x IDE
+> PLEXTOR CD-ROM PX-6XCS 6x 6x SCSI
+> LITEON CD-ROM LTN301 5x 32x IDE
+> LITEON CD-ROM LTN242F 5x 24x IDE
+> HITACHI CDR-7930 5x 8x IDE
+> ASUS CD-S340 4x 34x IDE
+> E-IDE CD-ROM 32X/AKU 4x 32x IDE
+> ATAPI CDROM 4x 24x IDE
+> LITEON CD-ROM LTN244 4x 24x IDE
+> PHILIPS PCA248CD 4x 24x IDE
+> TEAC CD-524EA 4x 24x IDE
+> LITEON CD-ROM LTN202 4x 21x IDE
+> ATAPI CD-ROM DRIVE-24X 4x 20x IDE
+> CREATIVE CD2423E NC101 4x 20x IDE
+> SAMSUNG CD-ROM SCR-2431 4x 20x IDE
+> TAE IL CD-ROM CDD-7240J 4x 20x IDE
+> TEAC CD-220E 4x 20x IDE
+> CREATIVE CD1620E SL970404 4x 16x IDE
+> LITEON CD-ROM LTN262 4x 16x IDE
+> TEAC CD-ROM CD-516S 4x 16x SCSI
+> ATAPI CD-ROM DRIVE 4x 15x IDE
+> BCD 16XA CD-ROM 4x 10x IDE
+> MATSHITA CD-ROM CR-506 4x 8x SCSI
+> SONY CD-ROM CDU311 4x 8x IDE
+> MATSHITA CD-ROM CR-504-J 4x 4x SCSI
+> MITSBISH CDRW226 4x 4x SCSI
+> SONY CD-ROM CDU625-S 4x 4x SCSI
+> SONY CD-ROM CDU-76S 4x 4x SCSI
+> SONY CD-ROM CDU77E 4x 4x IDE
+> PLEXTOR CD-ROM PX-4XCE 4x 4x SCSI
+> SONY CD-ROM CDU55E 4x 2x IDE
+> PIONEER CD-ROM DR-U24X 3x 24x SCSI
+> LITEON CD-ROM LTN204 3x 21x IDE
+> PIONEER CD-ROM DR-A01S 3x 20x IDE
+> PIONEER CD-ROM DR-A24X 3x 20x IDE
+> FUNAI E295X 3x 16x IDE
+> PIONEER CD-ROM DR-U03S 3x 12x SCSI
+> BTC 24X CD-ROM SLL24 3x 10x IDE
+> PLEXTOR CD-ROM PX-8XCS 3x 4x SCSI
+> CyberDrv CD-ROM TW240S 3x 3x SCSI
+> COMPAQ CRD-8320B 2x 32x IDE
+> LG CD-ROM CRD-8320B 2x 32x IDE
+> TOSHIBA CD-ROM XM-6202B 2x 32x IDE
+> CREATIVE DVD-ROM DVD2240E 2x 24x IDE
+> TOSHIBA CD-ROM XM-6102D 2x 24x IDE
+> BTC 16X CD-ROM SLL16 1x 10x IDE
+> NEC CD-ROM DRIVE:282 2x 8x IDE
+> HITACHI GD-2000 2x 4x IDE
+> MATSHITA CD-ROM CR-581 2x 4x IDE
+> NEC CD-ROM DRIVE:222 2x 4x SCSI
+> MATSHITA CD-ROM CR-8004 2x 2x SCSI
+> GoldStar CD-ROM CRD-8240B 1x 24x IDE
+> TOSHIBA CD-ROM XM-6102B 1x 24x IDE
+> CyberDrv IDE CD-ROM 120D 1x 12x IDE
+> I DE CD-ROM TW120D 1x 12x IDE
+> NEC CD-ROM DRIVE:464 1x 12x SCSI
+> TORiSAN CD-ROM CDR_U112 1x 12x IDE
+> TOSHIBA CD-ROM XM-5701TA 1x 12x SCSI
+> TOSHIBA CD-ROM XM-5702B 1x 12x IDE
+> CyberDrv SCSI CD-ROM 120S 1x 10x IDE
+> NEC CD-ROM DRIVE:463 1x 10x SCSI
+> COMPAQ DVD-ROM SD-M1002 1x 8x IDE
+> MATSHITA CD-ROM CR-583 1x 8x IDE
+> NEC CD-ROM DRIVE:462 1x 8x SCSI
+> TEAC CD-58E 1x 8x IDE
+> OPTICS_S 8622 SCSI 1x 8x SCSI
+> TOSHIBA CD-ROM XM-5602B 1x 8x IDE
+> TOSHIBA CD-ROM XM-3801TA 1x 7x SCSI
+> NEC CD-ROM DRIVE:461 1x 6x SCSI
+> IBM CDRM00203 1x 6x SCSI
+> TEAC CD-46E 1x 6x IDE
+> TEAC CD-56E 1x 6x IDE
+> TEAC CD-ROM CD-56S 1x 6x SCSI
+> TOSHIBA CD-ROM XM-5502TA 1x 6x IDE
+> TOSHIBA CD-ROM XM-3701TA 1x 6x SCSI
+> NEC CD-ROM DRIVE:502 1x 4x SCSI
+> TOSHIBA CD-ROM XM-1502BN 1x 4x IDE
+> TOSHIBA CD-ROM XM-5302TA 1x 4x IDE
+> TOSHIBA CD-ROM XM-5401TA 1x 4x SCSI
+> TOSHIBA CD-ROM XM-5402TA 1x 4x IDE
+> TOSHIBA CD-ROM XM-1502B 1x 4x IDE
+> TOSHIBA CD-ROM XM-3501TA 1x 4x SCSI
+> TOSHIBA CD-ROM XM-5301TA 1x 4x SCSI
+> TOSHIBA CD-ROM XM-5201TA 1x 2x SCSI
+
+known cdda uncapable drives
+===========================
+
+Pioneer DRM-602X, DRM-604X
+Teac CD-55A (panasonic bus)
+Philips CM206/10 serial RS-422
+ CM207
+ CM226/10 serial RS-422
+ CDD462/01 serial RS-422
+Orchid CDS3110
+
+Additions to the tables above are welcome.
+
+and now catch your sounds,
+Heiko heiko@colossus.escape.de (Original author)
+Changes for the Cdrkit project by Christian Fromme <kaner@strace.org>, Eduard Bloch
diff --git a/doc/icedax/THANKS b/doc/icedax/THANKS
new file mode 100644
index 0000000..801f7df
--- /dev/null
+++ b/doc/icedax/THANKS
@@ -0,0 +1,36 @@
+Cdda2wav development has been funded by
+
+Project MODE
+http://www.mode.net/
+
+and
+
+Fraunhofer Institut für integrierte Schaltungen (FhG-IIS)
+http://www.iis.fhg.de/
+
+Code for extraction of ISRC and MCN codes as well as MD5 signatures
+has been made possible by their contributions, thanks very much.
+
+Thanks to Rik Swusten of Plextor Europe for supplying a cd burner
+for development.
+
+Thanks to Ricoh for supplying a cd burner for development.
+
+Thanks to Sanyo for supplying a Burn-Proof cd burner with documentaion
+for development.
+
+More thanks goto
+Joerg Schilling (helped a lot to integrate his SCSI library)
+Aaron Newsome (which created an account on his machine for me to do testing)
+Christopher Montgomery (aka Monty, for his work on jitter correction)
+Zygo Blaxell (a lot of code improvements)
+Thomas Niederreiter (extensions for cd-writers)
+Piercarlo Grandi (rewrote of cdda2wav's man page)
+Stewart Addison (suggestions and a fine web page on cdda)
+Leland Olds (the cdda2wav debian maintainer)
+Francesco Chemolli (getopt_long patches)
+
+Thanks to all testers and finally Jim McLaughlin for supplying
+the first cdda-reader source code (that got me started).
+
+Heiko Eißfeldt
diff --git a/doc/icedax/TODO b/doc/icedax/TODO
new file mode 100644
index 0000000..5fb1fdd
--- /dev/null
+++ b/doc/icedax/TODO
@@ -0,0 +1,41 @@
+improved Indexscan without playing sectors
+use C2 pointers to reduce speed
+Solaris handling with volumed
+SunOS/Solaris and 512 byte sectors??
+setuid.c group ids on WinXP??
+
+stabilization:
+check all exit codes (exit with error if sync failed)
+new ioctl support for Solaris, FreeBSD-3.x, FreeBSD-4.x
+find cause of ringbuffer assertions (resource temporarily unavailable)
+
+new features:
+enable hidden (audio) track recording
+thread support
+more sound support
+CDIndex, CDDB lookups
+prepare for MP3 inclusion (lame)
+cut off silence at start and end of track
+interpolation for massive read errors
+
+internal:
+get cache setting/set cache to zero/reset cache size at the end...
+maybe add something for pioneer cd drives (spin up problems)
+develop a new transport to read cdda sectors with complete subchannels
+use index0 optionally to cut off the pregap portion
+detect type of hidden track (data/audio)
+implement capability to add a global shift
+enhance cd text:
+ increase buffer size
+ add tab semantics
+ support 16-bit characters
+ try fallback read text info from program area
+
+structural:
+plug-in infrastructure
+
+BeOS: cddbp support, sound support
+QNX: realtime support RR-scheduler message, sound support in lconfig Makefiles
+OS/2: sound support
+cygwin: sound support
+
diff --git a/doc/icedax/cdda_links b/doc/icedax/cdda_links
new file mode 100644
index 0000000..0371896
--- /dev/null
+++ b/doc/icedax/cdda_links
@@ -0,0 +1,4 @@
+http://www.escape.de/icedax/icedax.html
+http://www.geocities.com/SiliconValley/Bay/6893/multi.htm
+http://www.mp3.com/cdrom.html
+http://www.emi.u-bordeaux.fr/~morel/
diff --git a/doc/icedax/tracknames.pl b/doc/icedax/tracknames.pl
new file mode 100755
index 0000000..09f0fcf
--- /dev/null
+++ b/doc/icedax/tracknames.pl
@@ -0,0 +1,245 @@
+#!/usr/local/bin/perl
+# A quick perl hack to get rename files pulled in with icedax.
+# by billo@billo.com
+#
+use Socket;
+use IO::Handle;
+use Env qw(USER);
+use strict;
+no strict 'subs'; # can't get it to stop complaining about SOCK
+
+my $state = "header";
+
+my $global_album = "Artist / Title";
+my $global_title = "Title";
+my $global_artist = "Artist";
+my @global_tracks = ("") x 100;
+my $global_ntracks = 0;
+
+my @track_offsets = ();
+my $disc_id = 0;
+my $disc_time = 0;
+
+
+if ($#ARGV != 1)
+{
+ print "usage: cddbhack.pl CDDBHOST PORT < audio.cddb\n";
+ exit 0;
+}
+
+while (<STDIN>)
+{
+ if ($state eq "header")
+ {
+ if (/#\s[\s]*(\d[\d]*)$/)
+ {
+ push @track_offsets, $1;
+ } elsif (/#\s[\s]*Disc length:\s(\d[\d]*)/) {
+ $disc_time = $1;
+ $state = "discid";
+ }
+ } elsif ($state eq "discid")
+ {
+ if (/DISCID=(\w[\w]*)/)
+ {
+ $disc_id = $1;
+ last;
+ }
+ }
+}
+
+my $query_string = "cddb query $disc_id " . ($#track_offsets + 1);
+foreach my $offset (@track_offsets)
+{
+ $query_string .= " $offset";
+}
+$query_string .= " $disc_time";
+
+print "$query_string\n";
+
+my $host = $ARGV[0];
+my $port = $ARGV[1];
+
+my $iaddr = inet_aton($host);
+my $paddr = sockaddr_in($port, $iaddr);
+
+
+socket(SOCK, AF_INET, SOCK_STREAM, getprotobyname('tcp')) or die "socket: $!";
+
+connect(SOCK, $paddr) or die "connect: $!";
+
+autoflush SOCK 1;
+
+print "Connected.\n";
+
+my ($status, $result) = &resp(\*SOCK);
+
+if (int($status) != 201)
+{
+ print "Unexpected status.\n";
+ close(\*SOCK);
+ exit 0;
+}
+
+$host = `hostname`;
+
+$host =~ s/\n//g;
+
+&cmd(\*SOCK, "cddb hello $USER $host billo-scan 0.1");
+($status, $result) = &resp(\*SOCK);
+if (int($status) != 200)
+{
+ print "Unexpected status.\n";
+ close(\*SOCK);
+ exit 0;
+}
+
+&cmd(\*SOCK, "$query_string");
+($status, $result) = &resp(\*SOCK);
+if (int($status) != 200)
+{
+ print "Unexpected status.\n";
+ close(\*SOCK);
+ exit 0;
+}
+
+my ($ignore, $cat, $id, @rest) = split (" ", $result);
+
+
+
+my $read_string = "cddb read $cat $id";
+
+&cmd(\*SOCK, $read_string);
+&resp(\*SOCK);
+while (<SOCK>)
+{
+ if (/^\./)
+ {
+ # print $_;
+ # print "last line\n";
+ last;
+ } else {
+ &process($_);
+ # print $_;
+ }
+}
+
+&cmd(\*SOCK, "quit");
+&resp(\*SOCK);
+
+close(\*SOCK);
+
+&rename;
+
+exit 0;
+
+sub cmd
+{
+ my ($S, $cmd) = @_;
+
+ print "$cmd\n";
+ print $S "$cmd\r\n";
+}
+
+sub resp
+{
+ my ($S) = @_;
+ my ($code, $message);
+ while (<$S>)
+ {
+ if (/^(\d[\d]*)\s.*/)
+ {
+ # print "\n$1\n";
+ print "$_\n";
+ $code = $1;
+ $message = $_;
+ last;
+ }
+ sleep(1);
+ }
+ my @return_array = ($code, $message);
+ return @return_array;
+}
+
+sub process
+{
+ my ($line) = @_;
+
+ $_ = $line;
+ if (/^DTITLE=(.*)$/)
+ {
+ $global_album = $1;
+ $_ = $global_album;
+ if (m/([^\/][^\/]*)\s\/\s([^\/][^\/\n\r]*)/)
+ {
+ $global_artist = $1;
+ $global_title = $2;
+ }
+ print "$global_album\n";
+ print "$global_title\n";
+ print "$global_artist\n";
+ return;
+ }
+ if (/^TTITLE(\d[\d]*)=(.*)$/)
+ {
+ my $track = $1 + 1;
+ if ($track > $global_ntracks)
+ {
+ $global_ntracks = $track;
+ }
+ $global_tracks[$track] = sprintf ("%s-%02d-%s", $global_title,
+ $track, $2);
+ $global_tracks[$track] =~ s/\s$//g;
+ $global_tracks[$track] =~ s/'//g;
+ $global_tracks[$track] =~ s/\s/_/g;
+ $global_tracks[$track] =~ s/:/_/g;
+ $global_tracks[$track] =~ s/\?//g;
+ $global_tracks[$track] =~ s/\*//g;
+ $global_tracks[$track] =~ s/\\/_/g;
+ $global_tracks[$track] =~ s/\s/_/g;
+ $global_tracks[$track] =~ s/\//_/g;
+ print "Track match " . $global_tracks[$track] . "\n";
+ }
+}
+
+sub rename
+{
+ my $i = 1;
+
+ for ($i = 1; $i <= $global_ntracks; $i++)
+ {
+ my $track_name = $global_tracks[$i];
+ if ($track_name ne "")
+ {
+ my $file_name = sprintf("audio_%02d.wav", $i);
+ my $new_file_name = sprintf("$track_name.wav", $i);
+
+ my $mv_cmd = "mv '" . $file_name . "' '"
+ . $new_file_name . "'";
+ print "$mv_cmd\n";
+ `echo $mv_cmd >> rename.sh`;
+ }
+ }
+}
+
+sub unrename
+{
+ my $i = 1;
+
+ for ($i = 1; $i <= $global_ntracks; $i++)
+ {
+ my $track_name = $global_tracks[$i];
+ if ($track_name ne "")
+ {
+ my $file_name = sprintf("$track_name.wav", $i);
+ my $new_file_name = sprintf("audio_%02d.wav", $i);
+
+ my $mv_cmd = "mv '" . $file_name . "' '"
+ . $new_file_name . "'";
+ print "$mv_cmd\n";
+ `echo $mv_cmd >> unrename.sh`;
+ }
+ }
+}
+
+
diff --git a/doc/icedax/tracknames.txt b/doc/icedax/tracknames.txt
new file mode 100644
index 0000000..9a94e66
--- /dev/null
+++ b/doc/icedax/tracknames.txt
@@ -0,0 +1,34 @@
+Date: Fri, 2 Oct 1998 16:58:15 -0400
+From: Bill O'Donnell <billo@billo.com>
+To: heiko@colossus.escape.de
+Subject: CDDB/icedax quick lookup utility
+
+
+Hello, I just started using icedax to capture CD audio on Linux.
+It's working great on my 2.0.22 kernel with NEC CD-ROM DRIVE:273 (ATAPI).
+
+Anyway, I noticed that you're dumping out cddb query info, but not
+doing the query yet, so I hacked a quick perl program to do it.
+
+If you run with a default extraction like this:
+
+ icedax -B -D /dev/hda
+
+then run the program included something like this:
+
+ cddbhack.pl ma.us.cddb.com 8880 < audio.cddb
+
+It looks up the names, and creates a file "rename.sh" which can be
+used to rename all the audio_XX.wav files to a nice name.
+
+Anyway, thought you might find it useful, feel free to include in your
+next beta distribution or not. Sorry if I made any stupid perl
+mistakes, I only just learned it last week. I would have done it in C
+or python but I need to learn perl for another job...
+
+Cheers,
+
+-billo
+
+Bill O'Donnell Independent Software Developer
+billo@billo.com http://www.billo.com
diff --git a/doc/plattforms/README.aix5l b/doc/plattforms/README.aix5l
new file mode 100644
index 0000000..8c697d7
--- /dev/null
+++ b/doc/plattforms/README.aix5l
@@ -0,0 +1,16 @@
+Cdrkit can be built on AIX 5 using the following instructions. Note that the
+SCSI transport has not been tested yet because of missing hardware.
+
+ - install cmake either from source or from binaries downloadable on cmake.org.
+ Make sure the cmake is in your PATH and it can find its modules.
+ - GCC compiler (available on gcc.org) is recommended, however the native xlc
+ compiler should work as well.
+
+Follow instructions from the INSTALL file.
+
+If you installed a local version of GNU libiconv and ld is confused and spews
+linking errors related to .libiconv, check the linker paths with
+"cmake -LA build | grep lib". Probably your local path is not listed there and
+you may need to set LDFLAGS make variable. See INSTALL file for details.
+
+ -- Eduard Bloch -- Sun, 26 Nov 2006 23:06:25 +0100
diff --git a/doc/plattforms/README.freebsd b/doc/plattforms/README.freebsd
new file mode 100644
index 0000000..6e51a30
--- /dev/null
+++ b/doc/plattforms/README.freebsd
@@ -0,0 +1,31 @@
+These instructions have been tested with FreeBSD 6.2-PRERELEASE, but
+should work on any 6.x release. If you're having trouble (with any
+release, not just 6.x), please let us know.
+
+Building
+========
+
+You need to have cmake installed. It is available in the ports
+collection or from cmake.org. You also need GNU make. It is also in the
+ports collection, and can be alternatively obtained from gnu.org.
+
+Most users have libiconv installed under /usr/local. If you wish to add
+support for it (used by genisoimage, and recommended), build with
+
+ gmake CFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib
+
+instead of just plain
+
+ gmake
+
+Short note on using wodim
+=========================
+
+If you want to use wodim with ATAPI drives, make sure you load the
+atapicam module before using wodim. Not even "wodim -scanbus" works
+usually if this is not done. The command for loading the atapicam
+module is (for root)
+
+ /sbin/kldload atapicam
+
+ -- Lorenz Minder -- Mon Nov 27 23:23:01 CET 2006
diff --git a/doc/plattforms/README.linux b/doc/plattforms/README.linux
new file mode 100644
index 0000000..da8f759
--- /dev/null
+++ b/doc/plattforms/README.linux
@@ -0,0 +1,46 @@
+
+Requirements of cdrkit on Linux:
+
+ - Linux kernel 2.4 or newer
+ - Glibc 2.2 or newer
+ - libcap library package is required, with development files (headers)
+ - kernel headers useable with the combination of glibc and kernel, as approved
+ by the distribution. Do not blindly use random kernel headers, do not
+ symlink them to /usr/include/linux or /usr/include/asm*.
+
+Notes about support on Linux:
+
+ - Linux kernel versions between 2.6.8 and 2.6.11 are known to have invasive
+ SCSI command filtering which makes the use of wodim almost inpossible or
+ complicated for non-root users. Avoid those kernel versions, unless they
+ have been patched to disable that filtering.
+
+ - support of generic scsi was limited on 2.4, ie. not available directly with
+ IDE/ATAPI devices. The ide-scsi driver could be used map ATAPI devices to
+ SCSI ids, however this driver had other problems. See README.ATAPI for
+ details. Note that there also the ATAPI:... device access method which uses
+ deprecated funtionality of kernel 2.4. Don't use it unless it is really
+ neccessary. The support for it may be removed in future versions of cdrkit.
+
+ - the DMA transfer size is limited with some device controllers and the Linux
+ kernel 2.6.x (2.6.19 currently) provides no method to retrieve it for
+ exactly one device. Wodim scans sysfs to retrieve this information, but it
+ needs to be mounted. Use the ts= option of wodim to limit the transfer size
+ on problems.
+
+
+Additional comments moved from the wodim.1 manpage (originaly cdrecord.1):
+
+The sg driver on Linux has several severe bugs:
+
+ - It cannot see if a SCSI command could not be sent at all.
+ - It cannot get the SCSI status byte. wodim for that reason cannot report
+ failing SCSI commands in some situations.
+ - It cannot get real DMA count of transfer. wodim cannot tell you if there is
+ an DMA residual count.
+ - It cannot get number of bytes valid in auto sense data. wodim cannot tell
+ you if device transfers no sense data at all.
+ - It fetches too few data in auto request sense (CCS/SCSI-2/SCSI-3 needs
+ >= 18).
+
+ -- Reviewed by Eduard Bloch -- 12/2006
diff --git a/doc/plattforms/README.parallel b/doc/plattforms/README.parallel
new file mode 100644
index 0000000..22b9e09
--- /dev/null
+++ b/doc/plattforms/README.parallel
@@ -0,0 +1,59 @@
+This file is intended to help with ATAPI <-> Parallel Port devices on Linux
+
+Before you start, read
+
+ http://www.torque.net/parport/paride.html
+
+Make sure that your parallel port device is set up to EPP mode
+from within the BIOS. In many cases it is best to set the PP delay to 0.
+
+Here is a short explanation how to make the FreeCom Traveller work
+in 4x speed on a notebook:
+
+1.) Set BIOS for parallel port to 'EPP'.
+
+2.) Load drivers in default mode:
+
+ # modprobe paride
+ # modprobe <driver for parallel port adaptor>
+ # modprobe pg
+
+in case of a FreeCom Traveller this is:
+
+ # modprobe paride
+ # modprobe friq
+ # modprobe pg
+
+3.) Check kernel log for paride messages:
+
+ # dmesg
+ ...
+ paride: version 1.04 installed
+ paride: friq registered as protocol 0
+ ...
+ parport0: PC-style at 0x378 [SPP,PS2,EPP]
+ parport0: no IEEE-1284 device present.
+ ...
+ pg: pg version 1.02, major 97
+ pg0: Sharing parport0 at 0x378
+ pg0: friq 1.01, Freecom IQ ASIC-2 adapter at 0x378, mode 4 (EPP-32), delay 1
+ pg0: CD-R/RW RW8040A, master
+ ...
+
+4.) load module again but use different parameters:
+ 'drive0=IO-Port,Protocol,Unit,Mode,Master/Slave,Delay drive1=...'
+ if you have only one drive at the parallel port
+ 'drive0=IO-Port,0,0,-1,-1,Delay' e.g. for Delay = 0:
+
+ # modprobe -r pg
+ # modprobe pg drive0=0x378,0,0,-1,-1,0
+
+5.) Check for optimum delay using for maximum speed using wodim -dummy
+
+6.) Use the file rc.pp and modify for your needs
+
+7.) Your CD drive now appears as /dev/pcd?
+
+Source: README.cdtext from cdrtools package
+Edited for cdrkit by Christian Fromme <kaner@strace.org>
+
diff --git a/doc/plattforms/README.sunos b/doc/plattforms/README.sunos
new file mode 100644
index 0000000..6fc3a0d
--- /dev/null
+++ b/doc/plattforms/README.sunos
@@ -0,0 +1,10 @@
+
+Cdrkit have been built and partially tested on SunOS 5.8.
+
+To compile, run "gmake". CMake must be installed (with its modules), the cmake
+binary must available in your path. Installing GNU libiconv is also recommended.
+
+On linking problems with 3rd-party libraries involved, make sure that you have
+matching configuration of CFLAGS and LDFLAGS vars.
+
+ -- Eduard Bloch -- Tue, 28 Nov 2006 00:01:47 +0100
diff --git a/doc/plattforms/README.win32 b/doc/plattforms/README.win32
new file mode 100644
index 0000000..1714ed6
--- /dev/null
+++ b/doc/plattforms/README.win32
@@ -0,0 +1,31 @@
+
+Cdrkit suite can be compiled on Windows XP (Service Pack 2) using cygwin
+environment and tools set, available on:
+
+ http://sources.redhat.com/cygwin/
+
+and many mirrors.
+
+To compile on Cygwin, execute setup.exe to install it. You will need to select
+cmake, make, libiconv and gcc compiler in the package selection. Also choose
+subversion if you wish to fetch the latest development version.
+
+When done, you can start the Cygwin Shell by the new icon in the Start menu or
+on the desktop. Visit cdrkit.org and download a tarball of a recent version and store it under <cygwin_directory>\home\your_user_name.
+
+Untar the package with tar -z -x -f <tarball>, go into this directory and run
+"make", followed by "make install". Ignore messages about clock skew etc.
+
+NOTE: with some versions of Cygwin or cmake shipped with it, the installation
+fails for unknown reason. In this case, you can browse trough the build/
+directory, pick up the .exe files there and read the manpage files in
+application directories with the man command ("man wodim/wodim.1").
+
+Windows drives are available in paths like /cygdrive/c/, /cygdrive/d/. The
+drive IDs can be detected using "wodim -scanbus". See wodim's manpage for
+details.
+
+STANDARD WARNING: test in dummy mode before you really write data to the disks.
+Report trouble to Cdrkit maintainers.
+
+ -- Eduard Bloch <blade@debian.org> -- Tue, 12 Sep 2006 10:06:34 +0200
diff --git a/doc/wodim/README.DiskT@2 b/doc/wodim/README.DiskT@2
new file mode 100644
index 0000000..f94e124
--- /dev/null
+++ b/doc/wodim/README.DiskT@2
@@ -0,0 +1,67 @@
+New driveropts= option "tattoofile=". Use together with -checkdrive
+to write an image of the right size to disk.
+
+ DiskT@2 hints:
+
+ In order to have "DISKTATTOO" listed in the "Driver flags",
+ the disk currently inserted must be usable for the DiskT@2 feature.
+ This means that there needs to be enough space on it.
+
+ You need an B&W image with 3744 pixels per line
+
+ Best start with a 3744 x 320 pixel image.
+ The correct size may be retrieved with
+ wodim driveropts=tattooinfo -checkdrive
+
+ To get RAW image data:
+
+ - Take 'xv' and save the image in PBM/PGM/PPM (raw) mode
+
+ - use a binary aware (must support unlimited linelength)
+ editor such as 'ved' and remove the header lines.
+ These lines look like:
+
+ P5
+ # CREATOR: XV Version 3.10a Rev: 12/29/94 (PNG patch 1.2)
+ # CREATOR: XV Version 3.10a Rev: 12/29/94 (PNG patch 1.2)
+ 3744 144
+ 255
+
+ Now you should have (in case of the file above) a file that
+ has exactly 539136 Bytes.
+
+ - Note that the tattoo image must be left to right flipped
+ (a mirror image).
+
+From a hint from "E. Robert Bogusta" <rob23@tmr.com>:
+
+Take an image, and do:
+
+ djpeg myface.jpg | ppmtopgm | pnmflip -lr |
+ pnmscale -xsi 3744 -ysi 320 | sed '1,/255/d' >myface.tattoo
+
+So:
+ djpeg extracts ppm from a jpeg. Use your favorite other way of getting
+this far is you wish.
+
+ ppmtopgm changes color to grey scale
+
+ pnmflip -lr flips left to right, the small image is faster
+
+ pnmscale makes it 3644x320 regardless of starting size. This may make it
+look really odd on the CD if it doesn't start off the right size. More on
+this after I try it.
+
+ sed strips from the first line to the line containing 255, which is the
+last header line.
+
+Note that it would be better to use the actual height of the applicable image instead
+of the maximum value of 320 and it would be even more correct to create an
+image that has the right width/height ratio for the target on CD in order
+get an undistorted view of the image on CD.
+
+For best visibility, use black text on light background.
+
+Source: README.cdtext from cdrtools package
+Edited for cdrkit by Christian Fromme <kaner@strace.org>
+
diff --git a/doc/wodim/README.WORM b/doc/wodim/README.WORM
new file mode 100644
index 0000000..d3e2ace
--- /dev/null
+++ b/doc/wodim/README.WORM
@@ -0,0 +1,10 @@
+CD-R drives are anything but WORM drives, but older drives identify themselves
+as WORM drives.
+A Worm drive is able to write each sector once at any time without preparation.
+A CD-R drives is not and never will be able to do this.
+However some old drives identify as WORM drives.
+
+For this reason the SCSI-3 standard tells CD-R drives simply CD drives
+with multi media extensions.
+
+
diff --git a/doc/wodim/README.cdrw b/doc/wodim/README.cdrw
new file mode 100644
index 0000000..cda86e9
--- /dev/null
+++ b/doc/wodim/README.cdrw
@@ -0,0 +1,17 @@
+Using CD-RW media Mini Howto FAQ
+
+CD-RW drives usually support packet writing, but as there
+is currently no usable UDF filesystem support you may only use
+the simple wodim approach.
+
+wodim writes to CD-RW media in exactly the same way as it
+does with CD-R.
+
+You may erase a complete disk in preparation to reuse it.
+Check the man page entry for the blank= option of wodim.
+Not all drives support all blanking modes. Usually
+blank=fast or blank=full are working.
+
+Source: README.cdtext from cdrtools package
+Edited for cdrkit by Christian Fromme <kaner@strace.org>
+
diff --git a/doc/wodim/README.clone b/doc/wodim/README.clone
new file mode 100644
index 0000000..4964730
--- /dev/null
+++ b/doc/wodim/README.clone
@@ -0,0 +1,27 @@
+Hints for how to copy a CD using the clone method:
+
+Step 1 (read master CD):
+
+ Call "readcd dev=b,t,l -clone f=somefile" and the files
+
+ somefile
+ and
+ somefile.toc
+
+ will be generated.
+
+ If the disk contains many sectors that are unreadable by intention,
+ call "readcd dev=b,t,l -clone -nocorr f=somefile"
+
+
+Step 2 (write copy):
+
+ Call "wodim dev=b,t,l -raw96r -clone -v somefile"
+
+If wodim complains that your drive does not support -raw96r, but the
+drive is able to do clone writing at all, then wodim will propose you
+a different write mode that works with the drive.
+
+Source: README.clone from cdrtools package
+Edited for cdrkit by Christian Fromme <kaner@strace.org>
+
diff --git a/doc/wodim/README.raw b/doc/wodim/README.raw
new file mode 100644
index 0000000..4629f66
--- /dev/null
+++ b/doc/wodim/README.raw
@@ -0,0 +1,71 @@
+Tips for MMC RAW mode writing.
+
+ This allows to do disk at once recording on Philips drives that
+ do not support SAO.
+
+ You may write audio tracks in RAW mode. There are some new
+ and most likely transient options:
+
+ -raw16 Write 2352 Bytes sectors + P+Q Subchannel
+
+ -raw96r Write 2352 Bytes sectors + P+W Subchannel (R-W in raw mode)
+
+ -raw96p Write 2352 Bytes sectors + P+W Subchannel (R-W in packed mode)
+
+ NOTE that the MMC standard does not allow -dummy in RAW mode.
+ There may be drives which allow it but don't bother if it does not work.
+
+ Indices are fully supported in RAW mode.
+
+ MCN & ISRC are not yet supported in RAW mode, they are silently discarded.
+
+ If you find other problems in RAW mode or if you find
+ new bugs introduced in old write modes, please send a bug report.
+
+ wodim now checks the properties of the writer. If a specific write
+ mode is not supported by the writer, wodim warns you and makes
+ a suggestion for a similar alternate write mode.
+
+ With the curent structure of wodim, it is not possible to silently
+ e.g. change the write mode from -dao to -raw96r
+
+ MMC compliant drives are automatically scanned for supported write modes.
+ This should help to make wodim work without manual static configuration.
+ My hope is still to have no need to know all drive properties in
+ advance, so new drives will continue to work as long as they
+ are standard compliant enough for wodim.
+
+EXAMPLES:
+
+ wodim dev=1,0 -v -raw96r *.wav
+
+ will write a audio CD in raw mode using (computed) 2448 byte sectors
+ with raw P-W subchannels. This works e.g. with Plextor drives.
+
+
+ wodim dev=1,0 -v -raw16 *.wav
+
+ will write a audio CD in raw mode using (computed) 2368 byte sectors
+ with raw P+Q subchannels. This works e.g. with Philips drives.
+
+
+ NOTE: The input sector size always is 2352 bytes for audio.
+
+IMPORTANT:
+
+ - if the drive supports RAW/R96R among with other raw write modes,
+ use -raw96r
+
+ - if the drive does _only_ supports RAW/R16, use -raw16
+
+ - ... else if the drive supports RAW/R96P, use -raw96p
+
+ The packed raw mode (RAW/R96P) is buggy in Plextor drives and
+ the RAW/R16 mode is buggy in TEAC drives. Plextor creates
+ unreadable disks and TEAC hangs the drive.
+
+ For this reason, it is important to select the raw writing
+ mode accoding to the notes above.
+
+Source: README.raw from cdrtools package
+Edited for cdrkit by Christian Fromme <kaner@strace.org>