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 make-
file 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  Dar-
win                 (e.g. sizeof() returns long!)

-       Schily support includefiles rearranged to make portabili-
ty even         easier.

-       mconfig.h now defines IS_SCHILY to signal  users  of  the
        Schily  makefilesystem, that the Schily portability envi-
ronment         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 sup-
port  include         file hast been reworked to make portability
even much easier.

-       schily.h & standard.h have been modified to hopefully fi-
nally  solve          all  type  clash  problems  with  size_t  &
spawn*()

-       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 re-
ports 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 cor-
rectly 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 nonstan-
dard                 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 config-
ured         default compiler could not be found.

-       statdefs.h enhanced

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  inde-
penant          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 in-
creases         my workload. There is no real reason for a  modi-
fication,          and (even worse) the people who create modifi-
cations 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 in-
creasing 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 separa-
tor         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 prob-
lems  on  True64         and on 64 bit Sparc programs too but was
not directly visible         due to a  different  stack  content.
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 de-
fines  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 Jrg Schilling, originated by Monty xiph-
mont@mit.edu):

-       The paranoia code from cdparanoia (written by Monty xiph-
mont@mit.edu)         has been converted into a portable library.

/*--------------------------------------------------------------------------*/

Libedc  (Optimized  by Jrg Schilling, originated by Heiko Eifeldt
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.

/*--------------------------------------------------------------------------*/
face  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 in-
terface 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 envi-
ronment 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 complete-
ly   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  pre-
vents  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:


        Repeat by: Insert a PCATA CD-Writer in a Sony VAIO  note-
book 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 Lin-
ux 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  cor-
rected.          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 lay-
ers.

        Now the Solaris USCSI implementation and the (SuSE) Linux

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  ...                  in-
stead.

-       Fix scsi-unixware.c to allow multiple opens.

-       Fixed several typo's.

-       Avoid to read from the media (when using the new  experi-
mental          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".

/*--------------------------------------------------------------------------*/
        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 un-
abe to understand         that they are going to write more  than
the  official  disk capacity from         reading cdrecord's out-
put. 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 oth-
er 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
        Unfortunately,  the way "Just-link" is implemented is not
compliant         with the MMC standard. We will have to wait un-
til 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 sup-
ported 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         ad-
vance,  so  new  drives  will  continue  to  work as long as they
        are standard comliant enough for cdrecord.

        NOTE for GUI implementors:

        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  sec-
tors

        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 interrupt-
ed 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  sup-
port          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.
tions

-       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 simi-
lar         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  Cy-
berDrive 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  cor-
rection          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:

        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  mes-
sage          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'                 Iden-
tifikation  : '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.

-       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 fu-
ture.

-       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 com-
mand 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  cir-
cumvented         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 fu-
ture.

        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

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 fu-
ture.

-       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 rela-
tive 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  simu-
late 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

        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         in-
tense  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  mes-
sage.

        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 with-
out         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 def-
initely         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
-       Display  of  the number of times the Buffer underrun pro-
tection         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 al-
though 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 compli-
ant.          - 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

rect speed ratio         for DVDs

-       Simulation driver now supports fake  "Next  writable  ad-
dress" 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 Eifeldt'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 dis-
connect/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  prob-
lem  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 de-
fault  cdrecord  still is limited to half the encoding speed that
        a single CPU allows. Even this may result in a buffer un-
derrun  on  Linux          as Linux does not use DMA for IDE when
the sector size is != 2048 bytes         which  is  true  in  RAW
write mode.
needed because  drives  with  buggy  firmware  like  the  CW-7585
        did cause hundreds of "command sequence erorrs" to be em-
mited 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 re-
sult 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 com-
plete 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

== 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 en-
abling         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 Eifeldt heiko@hexco.de):

-       Changes to make cdda2wav compile better on Alpha/True64

-       Restructured to better use the schily makefile portabili-
ty structures.

-       Changed handling of Table of contents. Now the  more  in-
formative          methods of Read full toc are being used in fa-
vor 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  com-
mand  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 cus-
tomers.          *************

-       Temporary hack to fix a bug in the ISRC code that  caused
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 informa-
tion.          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 cer-
tain         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 Jrgs getargs option handling

-       Fix some bugs with option parsing introduced with the new
option         parsing using getargs()


-       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 byte-
order         on Big endian machines if -paranoia has been speci-
fied

-       fix  several CDDB query bugs -       support CDDBP proto-
col 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 spe-
cial         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  in-
teroperability

-       Temporary added -v<number> for compatibility with old GUI
-       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 de-
fault,          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  execu-
tion overhead.

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  porta-
bility 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 desk-
top.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 flop-
py 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

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  er-
ror.

-       -z option now working to create CDs in a format with Lin-
ux proprietary         Rock Ridge extensions for transparent com-
pression.

        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 cor-
rectly         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

overflows         in size computations.

-       Fixed a bug in the code that removes  sensitive  informa-
tion from         the command line.

-       Add  text  strings  with  descritpive  text  to  the out-
put_fragment structures

-       verbose > 1 (use -v) writes debug info for  output  frag-
ments.           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  informa-
tion         from the Primary volume descriptor.

-       Support  for  Apple HFS on Mac OS X Thanks to James Pear-
son.

-       Support for more then 65535 directories as only the  par-
ent entries         need to fit into the path tables.

-       Full  DVD-Video support thanks to Olaf Beck - olaf_sc@ya-
hoo.com

-       Avoid a C-compler warning caused by mkisofs.h

-       Fixed a bug in the DEBUG code from the DVD-Video enhance-
ments

-       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
-       Make fire PATH_MAX is defined in isoinfo.c too.

-       Make sure UDF directory permissions include 'execute per-
mission'.

-       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 con-
tent 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  re-
lease, I decided         to mark the '-f' Option as non-function-
al. 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 mk-
isofs to         create completely broken  filesystem  images  if
directories have been         nested deeper than 8 and -D has not


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 <beren-
di2@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                 un-
translated  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  in-
formation 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






Man(1) output converted with man2html