Imported Upstream version 1.1.11
[platform/upstream/cdrkit.git] / doc / ANNOUNCEMENTs / AN-2.0
1 NEW features of cdrtools-2.0:
2
3 Please have a look at the German open Source Center BerliOS at www.berlios.de
4 BerliOS will continue to support free hosting of cryptography projects even
5 when US laws change and don't allow to host cryptography projects in the USA.
6 Also look at sourcewell.berlios.de, the first Open Source announcement service
7 that itself is implemented as Open Source project.
8
9 ***************** Important news ****************************
10
11 For the 'Slottable Source Plugin Module' SSPM Features read README.SSPM
12
13 ***************** Please Test *********************************
14
15 All:
16
17 -       Now using the "Slottable Source" feature of the makefile system.
18         This is the fist modular reusable portable makefile standard
19         in the open source world.
20
21         To see a new feature call: "make tinfo"
22
23 -       config.sub now recognises "parisc-unknown-linux-gnu"
24
25 -       Circumvent some problems with GCC-3.0 on Linux
26
27 -       Removed printf() definitions from schily.h to avoid type clashes
28
29 -       Support for SCO (Caldera) OpenUNIX (aka. UnixWare 8)
30
31 -       Better support for Darwin-1.3 and 1.4
32
33         This is:
34
35         -       enhanced makefile system
36
37         -       type casts needed for unusual types used on Darwin
38                 (e.g. sizeof() returns long!)
39
40 -       Schily support includefiles rearranged to make portability even 
41         easier.
42
43 -       mconfig.h now defines IS_SCHILY to signal users of the
44         Schily makefilesystem, that the Schily portability environment
45         is being used.
46
47 -       now includes the forgotten mkdep-sco.sh that helps to better
48         work around the SCO C-compiler.
49         
50 -       timedefs.h modified. Now the last schily portability support include
51         file hast been reworked to make portability even much easier.
52
53 -       schily.h & standard.h have been modified to hopefully finally solve
54         all type clash problems with size_t & spawn*()
55
56 -       Compile support for QNX Neutrino
57
58 -       Now we hopefully have floating point support for _all_ platforms
59         even those without *cvt() and without __dtoa(). Thanks to a hint
60         from Thomas Langer <Langer.Thomas@gmx.net> we now use strtod.c
61         to gert a fallback __dtoa()
62
63 -       Added an autoconf test for rcmd() so cdrtools now should compile 
64         again on BeOS and AmigaOS where no rcmd() is present.
65
66 -       fixed fexec.c to make it compile ion QNX
67
68 -       Now the complete libschily is included although it it not needed
69         for cdrtools. There are two reasons for doing this:
70
71         -       Cdrtools is _the_ program that is heavily tested on
72                 many different platforms, so I will get reports for
73                 compile problems this way.
74
75         -       cdrtools becomes a base docking platform for the SSPM
76                 system this way. Now any of the Schily tools may be included
77                 and compiled inside the base portability platform 'cdrtools'.
78
79 -       New supported architctures:
80                 s390-linux-cc.rul parisc-linux-cc.rul parisc64-linux-cc.rul
81
82 -       Large File support for IRIX-6.2 (added autoconf test for -n32 cc option)
83
84 -       Large File support for IRIX-6.5 now everything works correctly if the
85         OS supports Large Files by default in 32 bit mode (uses fseeko()/ftello()
86         if present. This could only be done by massively changing the autoconf code
87         stolen from GNUtar.
88
89 -       Support for SGI IRIX platform ip17-irix
90
91 -       Support for SGI IRIX-6.5
92
93 -       Try to support recent BeOS (again)
94
95         -       Workaround in libschily/comerr.c for the nonstandard 
96                 big negative errno values on BeOS
97
98 -       libschily now includes floating point printf() for BeOS 
99
100 -       fileluopen.c from libschily now compiles on BeOS (without O_NDELAY)
101
102 -       workaround for the nonstandard negative errno values on BeOS
103
104 -       Schily makefile RULES for AmigaOS added
105
106 -       getpagesize() emulation for BeOS to make cdda2wav compile on BeOS
107
108 -       New rule allows automatic fallback to GCC if the configured
109         default compiler could not be found.
110
111 -       statdefs.h enhanced
112
113 -       Many corrections to give less warnings on SCO Openserver
114
115 -       Support for NT-5.1 (WIN XP) added os-cygwin_nt-5.1.id
116
117 -       VMS script build_all.com now includes astoll.c so compilation
118         on VMS should work again.
119
120 -       New macros for max/min values of int*_t in utypes.h
121
122 -       Limit the different handling of packed bitfields for AIX to AIX CC.
123
124 -       Unfortunately fragementation of cdrecord has begun.
125         I noticed this fact recently when people started to ask me
126         senseless things which turned out to be a result of
127         a modified cdrtools source that I have not ben aware of.
128
129         One main goal of cdrtools is to provide a platform indepenant
130         user interface which cannot be achieved if people change important
131         parts os the user interface. 
132         For this reason, I changed the license in hope that this will
133         help at least to keep the user interface the same on all
134         platforms and on all distributions.
135
136         Please keep in mind that fragmentation in many cases increases
137         my workload. There is no real reason for a modification,
138         and (even worse) the people who create modifications do not help
139         to keep my workload low in order to help me (and Heiko and James)
140         with the cdrtools project. People should rather contribute to
141         the project. Cdrtools should be free and actively mantained
142         in future. With increasing workload, I don't know how to do this.
143
144
145 -       Add hints that compiling on unknown platforms wil only work if
146         "smake" is used.
147
148 -       Autoconf code for Large file support now handles Linux system include
149         file bugs that prevented correct behavior on 64 Bit Linux systems.
150
151
152 -       Better autoconf code for the problems with mlock() & HP-UX-10.20 
153
154 -       Better autocheck code for available C-compilers on HP-UX
155         Now even a fallback from GCC to CC works.
156
157 -       Some changes to make compilation on 64 bit systems more correct
158
159 -       Added support for GNU Hurd to the Schily Makefilesystem
160
161 -       Cast pointerdiffs to int for printf() %.*s format and/or include
162         workarounds for 64 bit problems in this area.
163         
164 -       Several modifications to make OS/2 work again
165         (e.g. -lsocket added)
166
167 -       fexec.c now uses a configurable PATH environment separator
168         to allow PATH lookup on OS/2
169
170 -       A 20 year old extension has been removed from format.c
171         This caused printf() to interpret %X as %lX. This caused noticable
172         problems on IA-64. It should have created problems on True64
173         and on 64 bit Sparc programs too but was not directly visible
174         due to a different stack content.
175         
176 -       remove #elif to avoid a GCC-3.x warning
177
178 -       config.sub now knows about IA64 architecture
179
180 -       Makefilesystem now spports compiler specific optimization flags
181
182 -       Align_test.c now creates a better include file (using more () to
183         make sure the compiler created correct code).
184
185 -       Makefilesystem changed $(MAKE) to "$(MAKE)" to allow spaces
186         in pathnames
187
188 -       Correct autoconf test for broken OS like MAC OS X that do not
189         allow local malloc() implementations due to linker bugs.
190
191 -       Add autoconf test for strange clock_t definition method on Linux
192
193 -       README.ATAPI enhanced for all platforms
194
195 -       README.ATAPI now contains a hint on how to use ATAPI drives on HP-UX-11.x
196
197 -       Support for FreeBSD on Ultrasparc added to the makefile system
198
199 -       *roff'd man pages in .../doc dir re-created
200
201 -       Try to work around a bug in OpenBSD.
202         OpenBSD defines EOF in ctype.h but POSIX only mentions an EOF definition
203         for stdio.h. If we include ctype.h bfore schily.h on OpenBSD while
204         stdio.h has not been included, this will fail.
205
206 /*--------------------------------------------------------------------------*/
207
208 Libparanoia (Ported by Jörg Schilling, originated by Monty xiphmont@mit.edu):
209
210 -       The paranoia code from cdparanoia (written by Monty xiphmont@mit.edu)
211         has been converted into a portable library.
212
213 /*--------------------------------------------------------------------------*/
214
215 Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de):
216
217 -       Changed to allow compilation on K&R compilers too
218
219 -       Speedup by 300%
220         The speedup is nearly processor independant.
221
222         Pentium-233             2443 sectors/s   32x
223         333Mhz-UltraSparc-IIi   6402 sectors/s   85x
224         900Mhz-UltraSparc-III+  22813 sectors/s 304x
225         Athlon-1000             24378 sectors/s 325x
226         Athlon-1700             40168 sectors/s 535x
227
228         Depending on the speed of gettimeofday(), these numbers may be up to 5%
229         too low.
230
231 -       Code is now put under GPL.
232
233 /*--------------------------------------------------------------------------*/
234
235 Libscg:
236
237 -       Trying to add a workaround for just another bug in the
238         sg driver in the Linux kernel. If a TIMEOUT occurs, 
239         the error code does not indicate a TIMEOUT.
240
241 -       Better scg_open() error messages when trying to do scanbus on Linux
242         and no /dev/sg* or /dev/pg* could be opened.
243
244 -       Output Request Sense buffer with -debug when the USCSI interface is
245         used on Solaris.
246
247 -       First attempt for support for the new IOKit SCSI interface on MaxOS X
248         Darwin-1.4 and newer with much much help from
249         Constantine Sapuntzakis  <csapuntz@Stanford.EDU>
250
251         Unfortunately there is not yet support for SCSI devices nor
252         is there support for standard Bus,Target,Lun device namings.
253         I hope that bot may be added in the future.
254
255         Volunteers who like to help with the libscg interface stuff
256         for Darwin-1.4 are welcome.
257
258 -       Try to make scsi-beos.c compile on new BeOS version 5
259
260 -       First attempt to integrate the AmigaOS SCSI transport interface code
261         from Thomas Langer <Langer.Thomas@gmx.net>
262
263 -       Massive modicifation of the support code for SCO OpenServer 5.x
264
265         As the kernel implementation contains several bugs, 
266         the new code will by default not check for hard disks in scan mode.
267         
268         The code checks the following environment variables:
269
270         "LIBSCG_SCAN_ALL"       To force scanning for all SCSI targets.
271         "LIBSCG_SCSIUSERCMD"    use old SCSIUSERCMD ioctl()
272         "LIBSCG_MAX_DMA"        override MAX_DMA value, value must be number in kB
273         "LIBSCG_ENABLE_USB"     enable access of USB devices
274
275 -       Version -> 0.6
276
277 -       Adding support for the CDROM_SEND_PACKET ioctl() from cdrom.c
278
279         Thanks to Alexander Kern <alex.kern@gmx.de> for the idea and first 
280         code fragments for supporting the CDROM_SEND_PACKET ioctl() from 
281         the cdrom.c kernel driver. Please note that this interface in principle 
282         is completely unneeded but the Linux kernel is just a cluster of 
283         code and does not support planned orthogonal interface systems. 
284         For this reason we need CDROM_SEND_PACKET in order to work around a 
285         bug in the linux kernel that prevents to use PCATA drives because 
286         the kernel panics if you try to put ide-scsi on top of the PCATA 
287         driver. 
288
289         The code is currently in "status nascendi" but usable with some trade offs.
290
291         To use: call e.g.
292
293                 cdrecord -scanbus dev=ATAPI:
294
295                 cdrecord -dao -v speed=24 dev=ATAPI:0,0 ....
296
297         Be careful! This code is only needed in order to be able to use
298         PCATA CD-writers on notebooks because there is a severe kernel bug.
299         Unfortunately, this bug causes the kernel to hang (and force you
300         to reboot) if you try to call:
301
302                 cdrecord -scanbus
303
304         without the dev=ATAPI: option. 
305
306         In this case cdrecord will hang infintely and unkillable 
307         in open("/dev/sg1", 2) => you need to reboot :-(
308
309         Repeat by: Insert a PCATA CD-Writer in a Sony VAIO notebook and run
310                         cdrecord -scanbus. 
311
312 -       Enhanced list of SCSI Error texts from SCSI standard from 29.5.2001
313
314 -       New callback function to allow execption handling to be done after
315         the current SCSI command did finish.
316
317 -       scsi-aix.c now uses UIntptr_t in alignement macro.
318
319 -       Some 64 bit casts in the USCSI code from scsi-sun.c
320
321         For hints on the Linux Packet code in ide-cdrom.c read README.ATAPI
322
323 -       Introduce a workaround for a conceptional Bug in the Linux kernel 
324         SCSI implementation.
325
326         Linux is unable to distinct between a target selection timeut (e.g. switched
327         off target) and a command timeout (e.g. command needs more time than expected).
328
329         If the detected command time is < 1 second, libscg will now assume a dead target.
330
331 -       Fix a bug with ATAPI in scsi-vms.c - now the SCSI status byte is OK
332         Thanks To Eberhard Heuser
333
334 -       Allow up to 26 IDE controlers in scsi-vms.c - Thanks to Chip Dancy
335
336 -       Do not open all /dev/scg* devices on Solaris if not in Scanbus mode
337
338 -       Handle ENXIO in Solaris USCSI interface code as indicator for a 
339         switched off device.
340
341 -       Max DMA size for Linux ATAPI Packet interface code corrected.
342         Max DMA is 128k-1 and not 128k.
343
344 -       Support for recently defined new SCSI target types found in SCSI
345         standard.
346
347 -       New help system that lists all SCSI low level transports for a specific
348         platform together with their properties.
349
350 -       Allow consistent usage of alternate SCSI transport layers.
351
352         Now the Solaris USCSI implementation and the (SuSE) Linux ATA implementation
353         behave similar and both allow dev=<Transport> as well as dev=<Transport>:
354         for -scanbus, e.g.
355
356         cdrecord dev=USCSI -scanbus
357         cdrecord dev=USCSI: -scanbus
358         cdrecord dev=ATAPI -scanbus
359         cdrecord dev=ATAPI: -scanbus
360
361         all work the same way.
362
363 -       Small change for Linux device initialization by request of Linus Torvalds
364
365         The purpose of this change is to support a new SCSI transport interface
366         for ATAPI in Linux that came up with the latest developer Linux kernels
367         (e.g. Linux-2.5.43). This interface allows to send SCSI commands directly
368         to ATAPI drives without using ide-scsi and sg, but it has several pitfalls.
369
370         While Linux allows to use DMA when using ide-scsi and sg if the
371         sector size is 2048 and the transfer buffer starts page aligned, the new
372         direct interface never uses DMA (acording to Linus Torvalds). So if you 
373         write audio CDs or data CDs in RAW mode, there is no difference. If you
374         write data CDs in TAO or DAO mode, using ide-scsi and sg allows much
375         higher write speed. Note that this may change in future....
376
377         Notes for use:
378
379         -       You need to specify something like dev=/dev/hdc
380                 Note that this is unsupported by libscg.
381
382         -       As long as there is no safe way for libscg to find out early that
383                 this new interface is used, libscg may hang a bit on open.
384                 This is caused by the fact that libscg is forced to read 
385                 from the open filedscriptor to clean up old Linux sg driver
386                 interfaces. This was never a problem with /dev/sg*, but 
387                 when doing the same thing, this causes libscg to read content
388                 from /dev/hd*
389
390         -       There is (currently) no way for cdrecord to scan for ATAPI
391                 devices when using this interface.
392
393                 As long as this is true, you may want to prefer to use
394
395                 cdrecord dev=ATAPI: -scanbus
396                 and
397                 cdrecord dev=ATAPI:0,0 ...
398                 instead.
399
400 -       Fix scsi-unixware.c to allow multiple opens.
401
402 -       Fixed several typo's.
403
404 -       Avoid to read from the media (when using the new experimental
405         Linux ATAPI transport) while trying to clear old sg driver status.
406
407 -       Woraround for Linux kernel design bug: CDROM_SEND_PACKET sets errno 
408         to EINVAL in case SCSI sense key is "Invalid command".
409
410 /*--------------------------------------------------------------------------*/
411
412 Rscsi:
413
414 -       RSCSI now works if the target is a Win32 system.
415         This is not done by changing rscsi.c but by fixing a bug
416         in Cygwin!
417
418         The fix to Cygwin's rshd is posted in
419
420                 http://sources.redhat.com/ml/cygwin-apps/2001-05/msg00000.html 
421
422         Thanks to  egor duda <deo@logos-m.ru>
423
424         NOTE that in a few weeks this patch will be integrated into Cygwin
425         and cdrecord/RSCSI will work out of the box on a recent Cygwin release.
426
427 -       Now prints user ID & user Name into DEBUG file
428
429 -       Now using signal safe read/write functions.
430
431 -       Code now checks for HAVE_NETDB_H (added by request of
432         "Thomas" <Langer.Thomas@gmx.de> to help with AmigaOS port)
433         This should indicate whether there is support for rcmd()
434         in the OS.
435
436 -       Make it compile on BeOS
437
438 -       changed because GNU Hurd has no MAXHOSTNAMELEN
439
440 -       Return "PIPE" for hostname comparison if called from e.g. 'sshd'.
441
442 /*--------------------------------------------------------------------------*/
443
444 Cdrecord:
445
446 -       New option -overburn
447
448         This option has been added as many people seem to be unabe to understand
449         that they are going to write more than the official disk capacity from
450         reading cdrecord's output. Oveburnung now is no more done by default!
451
452         NOTE that there even are some drives that prevent you from writing
453         exactly the official size and stop several hundreds of sectors before.
454
455 -       Do not print a warning for writing more than 90 minutes if the media is
456         a DVD
457
458 -       Fix for a problem with setting high priority on Win32 systems.
459         Thanks to  egor duda <deo@logos-m.ru>
460
461 -       Sony MMC drives now work in -multi session mode.
462         There was a bug in cdrecord that was accepted by all other drives.
463         The bug did cause a temporary bad setup to the drive.
464
465 -       I hope that the 90 minute CD capacity warning now will finally
466         disappear for DVD writers.
467
468 -       Old test code removed that prevented cdrecord from being able
469         to write manually configured indices. Note that the index lists
470         from the *.inf files with using the -useinfo option alway worked.
471
472 -       -force will force cdrecord to ingnore any failed forced OPC.
473         currently this is only done if the drive does not support 
474         forced OPC.
475
476 -       Do forced OPC before blanking a CD-RW
477
478 -       Driveropts "burnproof" renamed to "burnfree".
479         This  has been done as this technology now appears in the MMC standard.
480
481 -       Cdrecord now shows whether BURN-Free is active. This makes
482         sense as Ricoh's "Just-Link" is enabled by default.
483         Unfortunately, the way "Just-link" is implemented is not compliant
484         with the MMC standard. We will have to wait until I get the needed
485         information from Ricoh.
486
487 -       Support for MMC RAW mode writing.
488
489         This allows to do disk at once recording on Philips drives that
490         do not support SAO.
491
492         You may write audio tracks in RAW mode. There are some new
493         and most likely transient options:
494
495         -raw16          Write 2352 Bytes sectors + P+Q Subchannel
496
497         -raw96r         Write 2352 Bytes sectors + P+W Subchannel (R-W in raw mode)
498
499         -raw96p         Write 2352 Bytes sectors + P+W Subchannel (R-W in packed mode)
500
501         Indices are fully supported in RAW mode.
502
503         MCN & ISRC are not yet suported in RAW mode, they are silently discarded.
504
505         I know that cdrecord currently does not work in RAW/R96P mode.
506         It is not clear whether this is a bug in cdrecord or in the Plextor
507         firmware as I did not yet found another drive that claimes to support
508         RAW7R96P.
509
510         If you find other problems in RAW mode or if you find
511         new bugs introduced in old write modes, please send a bug report.
512
513 -       Cdrecord now checks the properties of the writer. If a specific write
514         mode is not supported by the writer, cdrecord warns you and makes
515         a suggestion for a similar alternate write mode.
516
517         With the curent structure of cdrecord, it is not possible to silently
518         e.g. change the write mode from -dao to -raw96r
519
520 -       MMC compliant drives are automatically scanned for supported write modes.
521         This should help to make cdrecord work without manual static configuration.
522         My hope is still to have no need to know all drive properties in 
523         advance, so new drives will continue to work as long as they
524         are standard comliant enough for cdrecord.
525
526         NOTE for GUI implementors:
527
528         the line starting with the text:
529
530                 "Checking possible write modes:"
531
532         will go away in the near future.
533
534         The line starting with:
535
536                 "Supported modes:"
537
538         will remain and should be checked for possible write modes.
539         
540 -       Fixed a bug in the option checking that prevented to write
541         data CD's at all.
542
543         Now only "RAW data" CD's are flagged as expected.
544
545 -       Fixed a bug in the Firmware bug recognition system.
546         This bug did prevent cdrecord to work with Philips drives
547         when writing in RAW mode.
548
549 -       New options -copy & -nocopy to allow to modify the 'copy' bit
550         in audio subchannel data.
551
552 -       -scms option added to the man page and online help.
553
554 -       New model to compute SCSI transfersizes
555
556 -       -xa1 -xa2 sector typedefinitions changed.
557
558 -       Debug messages while checking possible write modes of MMC
559         compliant made optional.
560
561 -       RAW writing scatter sector function made more general
562
563 -       New functions to convert between 2448 and 2368 byte sectors
564
565         NOTE: Read README.raw
566
567 -       add a forgotten if (xdebug) in drv_mmc.c.
568         This caused a superfluous write mode debug message to be printed
569
570 -       do installation of exit handlers (to reset SCSI state) earlier
571
572 -       Cdrecord now does not exit with 0 anymore when interrupted with ^C
573         during the waittime before starting to write.
574
575 -       First CD-Text support (can only copy CD-Text information from master
576         disk)
577
578         Writing of CD-Text is supported for all drives that support
579         CD-Text in SAO write mode and for all drives that support
580         to write in RAW/RAW96R mode (use -raw96r in this case).
581
582         NOTE: Read README.cdtext
583
584 -       Circumvent a bug in the system include files from Linux that
585         makes printf() a macro and prevented compilation with GCC-3.0
586
587 -       Added some #include <stdio.h> to substitute missing printf() definitions
588
589 -       SAO/R16 mode removed from tests, it may never occur.
590
591 -       Changed some .min defines in structs to .pmin to avoid K&R complier
592         problems
593
594 -       better FIFO debug messages
595
596 -       New driver config table for Taiyo Yuden EW-50.
597         This dive is like a Philips CDD-521 but has been reported to
598         swab audio data.
599
600 -       rscsi client code now uses buffered read to speed up on Cygwin
601
602 -       rscsi client code now uses signal safe read/write functions
603
604 -       Cdrecod now does not open/close the tray anymore if the disk
605         is going to be erased.
606
607 -       modify -version output if Clone writing support is present
608
609 -       A new driver has been added that first checks the media if the drive
610         supports to write CD & DVD.
611
612 -       Behaviour of the function that reads fs= tsize= and similar
613         corrected.
614
615 -       Modified driver interface for better DVD support
616
617 -       FIFO Code now checks for HAVE_FORK (added by request of
618         "Thomas" <Langer.Thomas@gmx.de> to help with AmigaOS port)
619
620 -       Better messages when trying to write more than the amount of data
621         that fits on a DVD.
622
623 -       The DVD driver now reports a DVD media back to the high level code.
624
625 -       correctly use the buffer capacity code from the driver instead
626         of the MMC-2 read buffer cap code directly
627
628 -       Support for the unusual not ready error code of the CyberDrive CW038D
629
630 -       CD-Text Code now also accepts Text File without 4 byte Size header
631
632 -       CD-Text file read code now is able to do CRC error correction
633         Note that only songle bit errors per 18 byte pack.
634
635 -       CD-text Autoring support:
636
637         CD-text may now be based on fields found in the *.inf files
638         created by cdda2wav.
639
640         To create a CD with CD-Text based on information from freedb.org
641         call:
642
643         1)      cdda2wav -B -v255 -L
644         2)      cdrecord {-dao!-raw96r} -v -useinfo -text *.wav
645
646         CD-text TODO:
647
648         -       Check whether the *.inf files are all from the same CD
649                 and clear some CD-text fields that are only valid if
650                 they relate to one CD only.
651
652         -       Add some more fields (mainly a dficiency of cdda2wav)
653
654         -       Support multi language text
655
656         -       Support character coding other than ISO-9959-1
657
658         CD-text may be based on fields found in the *.inf files
659         created by cdda2wav.
660
661         NOTE: Read README.cdtext
662
663 -       better messages for CD manufacturer codes that are not in the
664         latest free Orange forum table.
665
666 -       Default usage code is now only 6 lines so the error message
667         does no longer scroll out the screen. If yu like to get the old
668         long usage information, call cdrecord -help
669
670 -       move 'dd' like number conversion stuff into getnum.c
671
672 -       Allow the /etc/default/cdrecord parsing code to be used by
673         readcd too (as documented in the man page)
674
675 -       First support for Plextor's VariRec feature in the PX-W4012
676         I am not sure about the final user interface.
677         For now, call e.g. cdrecord speed=4 driveropts=varirec=-1
678         for all audio CDs. Allowed varirec parameters are -2, -1, 0, 1, 2
679         VariRec only works at write speed 4.
680
681 -       Print the actual current write speed in verbose mode.
682
683 -       DVD-R code (undisclosed) now supports:
684                 Vendor_info    : 'MATSHITA' 
685                 Identifikation : 'DVD-RAM LF-D310 ' 
686                 Revision       : 'A116' 
687
688 -       Support for SCMS from *.inf files
689         Note that you need to use cdda2wav/cdrecord that have fitting versions
690         because of this change. Otherwise cdrecord may add SCMS copy 
691         protection.
692
693 -       RAW mode now honors COPY bit and SCMS coding.
694
695 -       Avoid coredump with "cdrecord textfile= non/existant ..."
696
697 -       Corrected printf() formats for verbose printing to hold enough
698         space for media > 1 GB (DVD)
699
700 -       Corrected printf() formats to make the write speed non-jumping.
701
702 -       If called from a GUI, cdrecord now reads from "stderr" if
703         the CD-input-data is from "stdin".
704         If it turns out that stderr is not open for reading, cdrecord
705         waits to receive a SIGUSR1
706
707 -       Better printouts for the DISC-ids covered by the orange forum embargo.
708
709 -       DVD structure structure definition enhanced to reflect
710         current standard.
711
712 -       new option gracetime=
713
714 -       Try to abort DAO recording with a flush_buffer() if ^C is hit.
715
716 -       Try to make cdrecord behave more polite for platforms (like Cygwin)
717         that don't support large files when the DVD data to be written
718         is read from stdin.
719
720         mkisofs ... | cdrecord ... - 
721
722         will now work for DVDs on non large file OS
723
724 -       Call flush buffer in silent mode to avoid error messages with
725         cdrecord -toc called on a CD-ROM drive.
726
727 -       Avoid core dump is a single .inf file is missing and -text
728         option is used.
729
730 -       Data structures modified to allow new features in the future.
731
732 -       Fixed a bug that caused cdrecord to ignore escaped file type
733         args if they looked like a valid option (e.g.):
734
735                 cdrecord dev=0,0 -dao -v -- speed=8
736
737         "speed=8" should be handled as if it was a filename but was
738         skipped.
739
740 -       Print write mode when starting to write.
741         I hope that this helps me to understand incorrect "bug reports"
742         from lazy people who do not include their cdrecord command line.
743
744 -       Printing ATIP information is now caused by a separate (internal) flag
745         and not ny a hack.
746
747 -       Do not allow to write to ultra low speed RW media if the drive
748         is not able to write at 2x or 1x. This may be circumvented
749         with -force.
750
751 -       Do not allow to write to high speed RW media if the drive is not
752         a high speed RW drive. This may be circumvented with -force.
753
754 -       Data structures modified to allow new features in the future.
755
756         Trying to make driver interface simpler and cleaner. This resulted
757         in a major rewrite of the driver interface.
758
759         -       please test if multi session with TEAC CDR-50/CDR-55
760                 still works.
761
762         As a lot has been changed in the driver interface, please test
763         if bugs have been introduced!
764
765 -       New test that prevents to write CD-RW media too slow
766
767 -       Display of current DVD write speed now correct and no more based on
768         single speed CD but on single speed DVD.
769
770 -       Moving SAO/RAW start code from cdrecord.c into drv_mmc.c
771         allows clean DVD-R/RW driver interface code.
772         Now cdrecord -dao will work correctly (as expected) even for DVDs
773
774 -       speed= option no longer defaults to speed=1
775         Each driver now includes a default speed and a maximum speed.
776         If the maximum speed in the driver is wrong, use -force to overwrite.
777
778         Please send feedback if my assumptions on write speed are wrong:
779
780         -       No drive using the Philips CDD-521 command set is faster
781                 or slower than 2x
782
783         -       No drive using the Yamaha CDR-100 driver is faster than 4x
784                 No drive using the Yamaha CDR-100 driver is slower than 2x
785
786         -       The Tayo Yuden CW-50 is 2x
787
788         -       The Kodak PCD-600 is 6x
789
790 -       Abort when the last track # of a multi session disk would be > 99
791
792 -       Data structures modified to allow new features in the future.
793
794 -       Better bessages for CD-RW where the speed ofthe media does not match
795         the properties of the writer.
796
797 -       Avoid to reload media in -dummy RAW mode.
798
799 -       Correctly abort if there was a problem when writing CD-Text in the LEAD-IN.
800
801 -       Again: Data structures modified to allow new features in the future.
802
803         This release uses the new data structurec to allow to write ISRC/MCN
804         in RAW mode.
805
806 -       Fixed a bug that caused cdrecord to write a wrong relative time
807         into the subchannel data when writing audio CDs in RAW mode.
808         This affected the pregap sectors if pregap size was != 0.
809
810 -       Allow cdrecord to write ISRC & MCN even in RAW mode.
811
812 -       Allow Simulation driver cdr_simul and dvd_simul to simulate any write
813         mode.
814
815 -       Simulation driver cdr_simul and dvd_simul changed so no reload on the
816         real background drive occurs.
817
818 -       Since last release , the new data structures allow to write
819         ISRC/MCN in RAW mode. This now makes RAW mode fully usable for
820         audio CDs. NOTE: if you find any problems with CDs written in SAO
821         mode, first try to write the same CD in RAW mode if your
822         drive supports to write in RAW mode. Tere are a lot of drives
823         that have rotten firmware and create broken CDs in DAO mode.
824
825 -       Support for Yahama Audio Master Quality Recording.
826
827         This support is switched on via driveropts=audiomaster
828
829         I am sorry, but I had to do major changes in the MMC
830         driver in order to be able to support Audio Master.
831         This may have affected all other driveropts= 
832         too. Please test and keep in mind that I like to have 
833         the mext major release in a few weeks.
834
835         When audiomaster has been specified, BURN-Free recording
836         is disabled and - as the visible size of the medium 
837         decreases - a second disk size check is done after 
838         Audio Master has been turned on.
839
840 -       man page enhanced according to new features
841
842 -       Short Usage funtion now includes a hint on how to
843         obtain the list of possible driveropts= parameters
844
845 -       Include the tags 
846
847                 "VARIREC ", "AUDIOMASTER ", "FORCESPEED "
848
849         In the "Driver flags" line that is visible with
850
851                 cdrecord -checkdrive.
852
853 -       cdrecord driveropts=help now includes 
854
855         "varirec=" and "audiomaster"
856
857
858 -       Support for writing data sectors in RAW mode has been added
859         to the GPL#ed version of cdrecord.
860         Note that writing data sectors in RAW mode is a highly CPU
861         intense task. For this reason, cdrecord first checks whether
862         it would be possible to do the requested job reliably.
863         If it is questionable whether the job could be done in the
864         desired speed, cdrecord aborts with a related message.
865
866         The max theoretical speed (not including the writing load)
867         is printed in a new line starting with: "Encoding speed :".
868         Cdrecord allows half of this speed.
869
870 -       Allow RAW writing of data sectors to work correctly without
871         the need of specifying -data
872
873 -       Allow spaces as delimiters between different tags in a single
874         line in the file /etc/default/cdrecord
875
876 -       Support for Ricoh (and others) Just Link
877
878         This support is switched on via driveropts=burnfree
879
880         Note that Just Link is by default swichted on in the drive
881         but as Just Link may create CDs that are no 100% OK,
882         cdrecord now by default switches it off. Now you definitely
883         need to specify driveropts=burnfree to switch Just Link on
884         again.
885
886         If you call cdrecord dev=... -checkdrive you will see
887         the TAG "BURNFREE" as a hint that either Burn-Proof or
888         Just Link is supported.
889
890 -       "Turning .... " messages for drive special functiions are
891         now printed to stdout
892
893 -       Limited display (once every 1 MB) of the drives internal buffer
894         RAM fill ratio.
895
896 -       Display the minimal drive buffer fill ratio a the end of the write
897         process.
898
899 -       Display number of predicted drive buffer underruns based on the
900         fill ratio of the drive buffer (incremented if fill ratio is < 5%).
901
902 -       Display average write speed at the end of the write process.
903         In dao mode, this includes the time needed to write the lead in and
904         thus is not 100& correct (value is too low).
905
906 -       Display of the number of times the Buffer underrun protection
907         has been active for drives where the manufacturer send me the needed
908         information (Ricoh, Yamaha, Aopen). It may work for other drives too
909         but there is no guarantee.
910
911 -       Fixed a bug in the driveropts= parsing routine.
912
913 -       New driveropts= option "forcespeed". Use with extreme care as this
914         will force several drives ((Ricoh, Yamaha, Aopen, ...) to write with
915         the selected high speed although the mediaum is too bad for this
916         operation.
917
918 -       New driveropts= option "tattooinfo". Use together with -checkrive 
919         to retrieve the information about the picture size that will fit.
920
921         The result will be someting like:
922
923         DiskT@2 inner r: 265
924         DiskT@2 outer r: 583
925         DiskT@2 image size: 3744 x 318 pixel.
926
927 -       New driveropts= option "tattoofile=". Use together with -checkrive 
928         to write an image of the right size to disk.
929
930         Read README.DiskT@2
931
932 -       Rearrange the order of the new statistics printing
933
934 -       Allow several of the new statistics to be printed even if cdrecord
935         aborts due to an error.
936
937 -       Let the old Philips drive use the common CD media 'reload' function.
938
939 -       Try to find out if a drive is MMC, MMC-2 or MMC-3 compliant.
940         - see cdrecord -checkdrive
941
942 -       Suppress printing oof the average write speed if the size of the
943         tracks is not known prior to start CD writing
944
945 -       ATIP printing (cdrecord -atip) enhanced to support Ultra high speed
946         CD-RW media.
947
948 -       Check whether somebody likes to write a Ultra high speed CD-RW on
949         an improper writer
950
951 -       Print MMC conformance level of the drive based on content of
952         SCSI mode page 2A.
953
954 -       Print more information for MMC-2 & MMC-3 drives with cdrecord -prcap
955
956 -       The new true CAV Plexwriter 482448 is now supported.
957
958         Please note that it is not easy to write at 48x. You definitely need 
959         a correct DMA setup to optimal values.
960
961         Also note switching on Burn-Proof will reduce the max speed to 40x
962         so it may be that you don't need Burn-Proof if you simply reduce speed
963         to 40x manually
964
965 -       make sure that using both -copy and -useinfo will not result in unclear state
966         Instead the content of the *.inf files will be used
967
968 -       Simulation driver (cdr_simul / dvd_simul) now uses correct speed ratio
969         for DVDs
970
971 -       Simulation driver now supports fake "Next writable address" function.
972
973 -       On Linux usleep() is very unacurate, meter the real sleep time
974         and cumulate a correction value. This allows the simulation driver
975         to simulate the correct write speed.
976
977 -       Added a note to Heiko Eißfeldt's libedc when printing RAW encoding speed
978
979 -       Limit gracetime to 999 seconds and make output correct even for
980         times > 9 seconds.
981
982 -       Corrected a bug in the MMC driver that caused cdrecord to use the 
983         wrong place for current speed when doing MMC/MMC-3 dependant stuff
984
985 -       cdrecord -prcap will now use the same format for MMC & MMC-3 drives
986         rsulting in a better readability.
987
988 -       Don't print write time statistics if writing did not yet start
989
990 -       Try to handle drives that don't support to write at speed 1 but
991         will fail if you try to call cdrecord speed=1 ...
992
993 -       New option -immed tells cdrecord to set the SCSI "IMMED" flag in certain
994         commands.
995
996         This option is not needed if your PC has been configured correctly.
997         However, ATAPI drives usually cannnot do disconnect/reconnect.
998         As a result, the PC may hang with long lasting commands if the CD-writer
999         has been connected to the same IDE cable as the harddisk. A correct
1000         solution would be to set up a correct cabling but there seem to be 
1001         notebooks around that have been set up the wrong way by the manufacturer.
1002         As it is impossible to fix this problem in notebooks, -immed has been
1003         added. Use this option with care and do not expect cdrecord to work
1004         correctly if it has been called with -immed.
1005
1006 -       -force will not completely removeany speed restrictions for writing in RAW
1007         mode. Instead, only the speed that a single CPU allows will be permitted
1008         by cdrecord. This still has a high potential for a buffer underrun.
1009         By default cdrecord still is limited to half the encoding speed that
1010         a single CPU allows. Even this may result in a buffer underrun on Linux
1011         as Linux does not use DMA for IDE when the sector size is != 2048 bytes
1012         which is true in RAW write mode.
1013
1014 -       If the environment variable "CDR_FORCERAWSPEED" is set, this will have
1015         the same results for RAW speed as using -force. However, -force has more
1016         general effects and should be avoided.
1017
1018 -       Fixed a bug in fifo.c introduced with the driver interface change.
1019         Now cdrecord compiles again on VMS (without FIFO).
1020         Thanks to Eberhard Heuser.
1021
1022 -       Allow cdrecord to compile without libedc
1023         Thanks to Eberhard Heuser.
1024
1025 -       Run read buffer capacity in silent mode.
1026         This is needed because drives with buggy firmware like the CW-7585
1027         did cause hundreds of "command sequence erorrs" to be emmited when 
1028         trying to read the current drive buffer fill ratio.
1029         
1030 -       Fixed man page to correctly call SAO mode SAO and not DAO.
1031
1032 -       Encoding speed is contend dependant. Initalize test buffer
1033         before doing a libedc speed test to make the result independant
1034         from grabage on the stack.
1035
1036 -       Support for libscg help system
1037
1038 -       Warn to use cdrecord blank=all if a drive rejects cdrecord blank=fast
1039
1040 -       Fixed a bug that became obvious with Yamaha AudioMaster mode and CD-Text
1041         The problem was caused by the fact that cdrecord did not allow to overwrite
1042         the lead in start time in cdrecord's internal data structures.
1043
1044 -       Fixed a bug with recognition of complete disks that came up after cdrecord
1045         did allow to deal with >= 90 minute CD's.
1046
1047 -       Changed Text "BURN-Free was not used" to "BURN-Free was never needed" because
1048         people did believe that the old text means that Burn-Proof has been disabled.
1049
1050 -       Man page now includes a hint that padsize is always using 2048 as sector size.
1051
1052 -       Fixed a bug with padsize=xxx if sector size was not 2048 bytes.
1053         Cdrecord in this case did just divide the number of pad bytes by the
1054         number of bytes in an output sized sector (e.g. 2448 or 2352 bytes).
1055         This did result in a too low number of padding sectors.
1056         The fix caused a complete rewrite of the pad size handling.
1057
1058 -       Treat packet mode similar to normal writing: Print Drive buffer fill ratio 
1059         and current write speed.
1060
1061 -       Treat padding similar to normal writing: Print Drive buffer fill ratio and 
1062         current write speed.
1063
1064 -       Make verbose printing consistent and non-jumping
1065
1066 -       A new experimental feature of the -immed flag is  to
1067         tell  cdrecord  to try to wait short times wile writing
1068         to the media. This is expected to free the IDE  bus  if
1069         the  CD/DVD writer and the data source are connected to
1070         the same IDE cable. In this  case,  the  CD/DVD  writer
1071         would  otherwise  usually  block the IDE bus for nearly
1072         all the time making it impossible to  fetch  data  from
1073         the source drive.
1074
1075         As this is an experimental feature, I would like to get feedback.
1076
1077
1078 -       #ifdef _POSIX_MEMLOCK/_POSIX_PRIORITY_SCHEDULING Tests now 
1079         POSIX 2001 compliant
1080
1081 -       Do not try to close fd if running on an OS that does not use an fd
1082         to mmap() chared memory from anonymous pages.
1083
1084 -       Print Orange Forum embargo warning only if ATIP minutes == 97
1085         because some DVD writer return junk with read ATIP
1086
1087 -       New option minbuf= to choose the mininum drive buffer fill ratio
1088         for the ATAPI wait option that is intended to forcibly free the
1089         IDE bus to avoid buffer underruns with bad HW configurations.
1090         The permitted range is 25..95 for 25%..95% buffer fill ratio.
1091
1092 -       minbuf= may switch on the ATAPI wait option without enabling
1093         the SCSI Immed option.
1094
1095 -       Forcibly switch on -v for now if the ATAPI wait option has been
1096         selected. This is needed because due to a bug, this option will
1097         not work without -v
1098
1099 -       Make FIFO code work on AmigaOS
1100
1101
1102 For Yamaha Disk Tatoo features read README.DiskT@2
1103
1104 /*--------------------------------------------------------------------------*/
1105
1106 Cdda2wav (By Heiko Eißfeldt heiko@hexco.de):
1107
1108 -       Changes to make cdda2wav compile better on Alpha/True64
1109
1110 -       Restructured to better use the schily makefile portability structures.
1111
1112 -       Changed handling of Table of contents. Now the more informative
1113         methods of Read full toc are being used in favor to the old SCSI readtoc
1114         command. For Sony methods, the fallback is the old method.
1115         The new methods are available on MMC drives and modern drives with
1116         Sony command sets. It should enhance access to very weird multi session
1117         cds.
1118
1119         **************
1120         NOTE: If your drive still has problems to copy such non-CD's, there
1121         is a simple hack to allow the disk to be copied on all drives:
1122
1123         Use a (black) whiteboard pen (non-permanent) and paint on the
1124         space directly outside the visible ring that is in the middle 
1125         of the non-CD. This is the space where the broken TOC from the
1126         second session is located.
1127
1128         After doing the copy please return the disk to the dealer and
1129         tell the dealer that this is broken goods. This is the only way
1130         to stop the big groups to defraud the customers.
1131         *************
1132
1133 -       Temporary hack to fix a bug in the ISRC code that caused the ISRC
1134         string to be shortened by one character.
1135
1136 -       fixed ioctl handling of toc entries
1137
1138 -       checked ISRC retrieval (MMC + Plextor)
1139
1140 -       more checking for weird CDs with wrong track types
1141
1142 -       bugfix in setuid.c
1143
1144 -       read full toc method extended to a data track in the second
1145         session for cd-extra/enhanced cd recognition
1146
1147 -       if the tracks in the TOC are labelled as data, this is checked
1148         and corrected if untrue
1149
1150 -       show cd text disc identification, if one exist
1151
1152 -       a new perl script to generate a binary cdtext file for use with
1153         cdrecord. This is currently very simple, but it enables you to
1154         create cd-text enriched copies from non cd-text originals.
1155         For a hint how to use the new perl script see the CD-text usage 
1156         notes above.
1157
1158
1159 -       New option -L to ask freedb.freedb.org for CDDB information.
1160         This alllows to automatically create CD-Text CDs.
1161
1162 -       correct TOC endianess for FreeBSD ioctl interface.
1163
1164 -       Fixed a bug that caused cdda2wav to dump core with certain
1165         CD-Text data.
1166
1167 -       new option -L changed. Now a numerical parameter (0 or 1)
1168         defines the handling of multiple cddbp entries.
1169         0 enters user interactive mode.
1170         1 take the first entry unconditionally.
1171         I still need a reasonable way for gui interaction in this case!
1172         Proposals are welcome.
1173
1174 -       made cddbp handling for mixed mode cds more robust.
1175         It is unclear yet, if data tracks have to be included in the
1176         query. Anybody knows the definitive answer?
1177
1178 -       Better TOC ADDR/CRTL (red book) handling
1179
1180 -       Better method to scan for indices.
1181
1182 -       Support for SCMS in *.inf files
1183
1184 -       Better SUID/SGID handling
1185
1186 -       new script cddda2ogg
1187
1188 -       bugfix deemphasizing (thanks to Klaus Wolterec)
1189
1190 -       bugfix rounding error (creation of info files)
1191
1192 -       added AlbumPerformer entry in info files
1193
1194 -       integration of Monty's libparanoia
1195
1196 -       switch to Jörgs getargs option handling
1197
1198 -       Fix some bugs with option parsing introduced with the new option
1199         parsing using getargs()
1200
1201 -       New option -version to make cdrtools behave similar
1202
1203 -       New option paraopts=opts for paranoia options.
1204
1205 -       Print Paranoia statistics result at end of every track.
1206
1207 -       prepare for better recording of discs with illegal TOCs
1208
1209 -       prepare for non-english cd_text languages
1210
1211 -       rewrite of the TOC handling code (now multisession capable
1212         and much more robust)
1213
1214 -       add a fallback method (shmat()) for failed mmap()
1215
1216 -       linux bug workaround: open() sound device does block when device is busy.
1217
1218 -       several code cleanups, some 64-bit portability bugfixes
1219
1220 -       Fixed shell script 'cdda2mp3.new' to correctly use "#!/bin/sh"
1221
1222 -       Fixed a bug (introduced while converting to getargs()) that caused
1223         cdda2wav to dump core on OS that implement read only text
1224         correctly like Solaris does) if compled with gcc or Sun CC COPTX=-xstrconst
1225
1226 -       Remove old unused getopt() code.
1227
1228 -       Check DMA residual count
1229
1230 -       FreeBSD cooked ioctl() Byte swapping now finally OK?
1231
1232 -       Fixed a bug that caused cdda2wav to return wrong byteorder
1233         on Big endian machines if -paranoia has been specified
1234
1235 -       fix several CDDB query bugs
1236 -       support CDDBP protocol 5
1237
1238 -       customizable CDDBP server and port settings.
1239
1240 -       Fixed a bug in the paranoia calling code that caused
1241         cdda2wav to try to access one sector too far on the media
1242         if in paranoia mode.
1243
1244 -       Allow again compilation on FreeBSD
1245
1246 -       bugfix for CD Extra, when copyright messages were present
1247
1248 -       patch from Kyle to make CD extra handling more robust
1249
1250 -       bugfix for wrong warning message 'no generation of info files'
1251         due to incomplete length
1252
1253 -       new verbose suboptions. Strings will finally replace the
1254         tedious binary masks. For script compatibility the special
1255         form of -v255 will be recognized for some releases.
1256         -vhelp will show the new strings.
1257 -       reworked the toc display code to make it more orthogonal.
1258
1259 -       changed option 'speed-select' to 'speed' for better interoperability
1260
1261 -       Temporary added -v<number> for compatibility with old GUI programs.
1262         Note: -v<number> is outdated and will be removed soon.
1263
1264 -       Implement a temporary compatibility bug for the -v option.
1265
1266 -       Support for libscg help system
1267
1268 -       Man page fixed
1269
1270 -       Fix for an uninitialized variable
1271
1272 -       New exit codes for xcdroast
1273
1274 -       Fix for a CDDB bug: need to use lead out start for play time
1275
1276 -       Fix for a CDDB bug: Allow whitepsace in Genre
1277
1278 -       Fix for a CDDB bug: need to count data tracks too
1279
1280 /*--------------------------------------------------------------------------*/
1281
1282 Readcd:
1283
1284 -       better error recovery with -noerror
1285
1286 -       error handling increased
1287
1288 -       Handle signals and other aborts by restoring old drive state
1289
1290 -       Set PF bit with mode select.
1291
1292 -       New option -quiet to suppress primary SCSI error messages
1293         in read CD error handling
1294         This are the messages that are printed before entering the
1295         retry mode.
1296
1297 -       Secondary SCSI error messages are now suppressed by default,
1298         they may be turned on again with -verbose 
1299         This are the messages that are printed in -noerror
1300         retry mode.
1301
1302 -       Better handling of C2 scans on unreadable data disks.
1303
1304 -       use comerrno() instead of comerr() if the drive is not ready
1305         as errno is not valid after that test.
1306
1307 -       Enhanced output for C2 error scan.
1308
1309 -       Now use /etc/default/cdrecord as documented in the man page.
1310
1311 -       Better behavior with extreme badly readable media.
1312
1313 -       List number of completely unreadable sectors in addition to
1314         the C2 error count.
1315
1316 -       Man page updated to contain all options
1317
1318 -       New option speed= to allow reading at slower speed and avoid read error
1319         caused by vibrations of the media.
1320
1321 -       added new option -overhead to meter SCSI command execution overhead.
1322
1323 /*--------------------------------------------------------------------------*/
1324
1325 Scgcheck:
1326
1327 -       Fixed Makefile so scgcheck now compiles on FreeBSD
1328
1329 /*--------------------------------------------------------------------------*/
1330
1331 Mkisofs (By Jörg Schilling and James Pearson j.pearson@ge.ucl.ac.uk):
1332
1333 -       Man page updated and corrected.
1334
1335 -       Try to avoid the C-compiler warnings for getopt.c that are caused
1336         by the non-confirming way of hacking used by FSF people
1337
1338 -       isoinfo now corectly displays file with filesize > 1 GB
1339
1340 -       isoinfo now implements a new option -s that displays the size
1341         of the files in multiples of the sector size (2048 Bytes)
1342
1343 -       libhfs_iso reworked to use timedefs.h from schily portability support.
1344
1345 -       Better error messages for ISO and Rock Ridge directory sort problems
1346
1347 -       Preserves HFS file dates for AppleDouble, AppleSingle and NetaTalk files
1348
1349 -       Fixed a problem from an uninitialized variable in desktop.c
1350         that caused random effects in Apple CD's
1351
1352 -       better documentation for README.sort/README.hide from James Pearson
1353
1354 -       Fixed a bug in sort code that caused the compare function to behave
1355         symmetric when called c(a,b) vs. c(b,a)
1356
1357 -       First UDF support via -udf option - thanks to Ben Rudiak-Gould.
1358
1359         Note that the UDF support is not what you might indend. It is currently
1360         wired to the Joliet tree which is a bad idea. It also does not yet
1361         support Symbolic Links, user ID's and similar.
1362
1363 -       Write messages with more correct size names for the floppy eltorito 
1364         boot images
1365
1366 -       Added a missing prototype in getopt.c
1367
1368 -       isodump.c isoinfo.c isovfy.c:
1369         Correctly handle symlinks
1370         use offsetof(struct iso_directory_record, name[0]) instead of
1371         sizeof(struct iso_directory_record) - sizeof(idr->name)
1372
1373 -       Fixed a check in the Apple HFS code that used strcmp for
1374         data that could contain null bytes.
1375
1376 -       Introduced many casts to enhance portability.
1377         This was needed for GNU fnmatch.c and the HFS support lib libhfs_iso
1378
1379 -       Use Protoyped function definitions for hash.c to allow old UNIX variants
1380         where sizeof(dev_t) is < sizeof(int)
1381
1382 -       Fixed a check in the Apple HFS code that used strcmp for
1383         data that could contain null bytes.
1384
1385 -       Introduced many casts to enhance portability.
1386         This was needed for GNU fnmatch.c and the HFS support lib libhfs_iso
1387
1388 -       Use Protoyped function definitions for hash.c to allow old UNIX variants
1389         where sizeof(dev_t) is < sizeof(int)
1390
1391 -       Support generic boot code if session does not start at sector 0.
1392
1393 -       Fixed a minor bug with HFS labels & multi-session
1394         Thanks to James Pearson
1395
1396 -       Only print a short Usage if mkisofs detected a usage error.
1397
1398 -       -z option now working to create CDs in a format with Linux proprietary
1399         Rock Ridge extensions for transparent compression.
1400
1401         This is a patch from H.P. Anvin. It makes only sense with Linux-2.4.14
1402         or later.
1403
1404 -       New option -debug
1405
1406 -       Correctly use stat()/lstat() with graft points
1407
1408 -       Fixed a bug with escape character handling in graft point handling.
1409
1410 -       Make the graft point a directory if the file it should point to
1411         is a directory.
1412
1413 -       Correctly handle non-canonical filenames with graft points.
1414
1415         .////././///test=OBJ/sparc-sunos5-cc/ will now work correctly
1416         and not result in a corrupted ISO-Filesystem.
1417
1418 -       Canonicalize graft points so commands like:
1419
1420                 mkisofs -graft-points /a/b/././//=some_dir
1421         and
1422                 mkisofs -graft-points /a/b/../c/=some_dir
1423
1424         will not cause broken ISO images anymore.
1425
1426 -       Avoid unwanted information in debug information on disk.
1427
1428 -       Allow the -sort option to work with the Eltorito Boot Catalogue
1429
1430 -       Allow '-' to be part of the ISO-9660 filename if -no-iso-translate
1431         has been specified. 
1432         Thanks for this hint from Georgy Salnikov (sge@nmr.nioch.nsc.ru)
1433         from Novosibirsk, Russia.
1434
1435 -       Try to avoid an integer overflow with the -C option and DVDs
1436
1437 -       Try to fix (very old) rotten code in various files that did cause
1438         integer overflows for files > 2 GB - 2kB.
1439
1440         Inconsistent use of (always diferent) hand crufted code using
1441         2048, 2047, ... instead of SECTOR_SIZE, ISO_ROUND_UP(), ...
1442
1443         Note that this is not only of interest for DVDs as mkisofs could
1444         believe that > 2 GB of data would fit on a CD.
1445
1446 -       New code to print file type names.
1447
1448 -       Some more changes to reduce the probability of integer overflows
1449         in size computations.
1450
1451 -       Fixed a bug in the code that removes sensitive information from
1452         the command line.
1453
1454 -       Add text strings with descritpive text to the output_fragment structures
1455
1456 -       verbose > 1 (use -v) writes debug info for output fragments.
1457         This uses the new strings introduced with the last version.
1458
1459 -       isoinfo now uses getargs() and includes -version and -help
1460         options.
1461
1462 -       isoinfo now is able to find out that Joliet information is
1463         present if the disk contains illegal Joliet UNICODE escape code.
1464         This seem to happen with disks written with Adaptecs programs.
1465
1466 -       isoinfo has new option -debug that prints more information
1467         from the Primary volume descriptor.
1468
1469 -       Support for Apple HFS on Mac OS X Thanks to James Pearson.
1470
1471 -       Support for more then 65535 directories as only the parent entries
1472         need to fit into the path tables.
1473
1474 -       Full DVD-Video support thanks to Olaf Beck - olaf_sc@yahoo.com
1475
1476 -       Avoid a C-compler warning caused by mkisofs.h
1477
1478 -       Fixed a bug in the DEBUG code from the DVD-Video enhancements
1479
1480 -       Allow symlink targets to be up to 1024 bytes
1481
1482 -       devdump/isodump/isovfy now use getallargs() and implement -help/-version
1483
1484 -       If UDF but no Joliet is used, UDF filenames may be 255 chars long.
1485         Note that this is still hack.
1486
1487 -       From James: New option -joliet-long to allow 103 UNICODE characters with
1488         Joliet. This is not Joliet compliant but several other programs
1489         also create long Joliet names.
1490
1491 -       Fixed a minor C non-compliance in ifo_read.c
1492
1493 -       Allow symlink targets to be up to 1024 bytes
1494
1495 -       devdump/isodump/isovfy now use getallargs() and implement -help/-version
1496
1497 -       If UDF but no Joliet is used, UDF filenames may be 255 chars long.
1498         Note that this is still hack.
1499
1500 -       From James: New option -joliet-long to allow 103 UNICODE characters with
1501         Joliet. This is not Joliet compliant but several other programs
1502         also create long Joliet names.
1503
1504 -       Correct a minor problem with K&R compilers for the programs
1505         in mkisofs/diag/
1506
1507 -       Make fire PATH_MAX is defined in isoinfo.c too.
1508
1509 -       Make sure UDF directory permissions include 'execute permission'.
1510
1511 -       A patch from James that make mkisofs able to create a HFS volume < 4 GB.
1512
1513 -       Support for MS code page 1250 (Slavic/Central Europe) added.
1514         Thanks to Petr Balas petr@balas.cz
1515
1516 -       A patch from James that make mkisofs able to create a HFS volume > 4 GB.
1517
1518 -       A new option -hfs-parms for better HFS support for HFS volumes > 4 GB
1519         from James Pearson
1520
1521 -       Fixed several typos in the man page and the source
1522
1523 -       Belly based speudo fix for a problem with mkisofs -f (follow)
1524         and symlinks to directories where directory content was 
1525         missing with the old version. The new version is most likely better
1526         and we (James and I) could not find problems with the new version.
1527
1528 -       Make "HFS_TYPE" and "HFS_CREATOR" work as documented in ~/.mkisofsrc
1529
1530 -       Fixed a small typo in isofinfo.c
1531
1532 -       As mkisofs -f has bugs that cannot be fixed for this release, I decided
1533         to mark the '-f' Option as non-functional. People who use it will be warned
1534         that it does not work correctly.
1535
1536 -       Sort VIDEO_TS.IFO to be the first entry in VIDEO_TS/ woth -dvd-video
1537
1538 -       Disable Joliet if -dvd-video has been specified. This needs to be done to
1539         allow the change above.
1540
1541 -       Correctly handle files > 1GB on the UDF filesystem.
1542         Thanks to Wei DING <ding@memory-tech.co.jp> for the patch.
1543
1544 -       Add support for Code Page 1251
1545
1546 -       Koi8-u added to libunls
1547
1548 -       Fix a nasty bug in the UDF handling part that caused mkisofs to
1549         create completely broken filesystem images if directories have been
1550         nested deeper than 8 and -D has not been specified.
1551
1552 -       Include a new piece of code that causes mkisofs to abort with an
1553         error message if it turns out that the block numbers estimated
1554         during the sizing phase do not match the block numbers in the
1555         write phase.
1556
1557 -       Enabled a piece of code that has been introduced 2 years ago and that
1558         causes mkisofs to prevent deep directory relocation if Rock Ridge
1559         has not been spacified.
1560
1561         If you like mkisofs not to omit the part of the directory tree that
1562         is nested too deep, specify either -R, -r or -D.
1563
1564
1565 TODO:
1566         -       read Joliet filenames with multi-session if no TRANS.TBL
1567                 or RR is present. I am looking for a volouteer for this task:
1568                 Peter Berendi <berendi2@webdesign.hu> announced that he likes
1569                 to be the volounteer for this task.
1570
1571                 Unfortunately, I did no hear again from him, but I got
1572                 a proposal from
1573                 "Krisztian Gede" <nameless@mail.datanet.hu>
1574                 who also likes to do the job.
1575
1576                 Note that this can never be 100% correct as there is no relation
1577                 between the names on the master (UNIX) filesystem, the ISO-9660
1578                 names and the Joliet names. Only the Rock Ridge names are
1579                 untranslated with respect to the original files on the
1580                 master (UNIX) filesystem.
1581
1582         -       implement Yellow book compliant XA extended dir attributes
1583
1584         -       add libecc/edc for CDI and similar.
1585                 This may not be needed if we ise VCDimager and recent
1586                 cdrecord versions.
1587
1588
1589 CYGWIN NT-4.0 NOTES:
1590
1591 To compile on Cygwin32, get Cygwin and install it.
1592 For more information read README.win32
1593
1594 The files are located on:
1595
1596 ftp://ftp.berlios.de/pub/cdrecord/alpha ...
1597
1598 NOTE:   These tar archives are 100% ansi compatible. Solaris 2.x tar and GNU
1599         tar may get some minor trouble.
1600
1601 WARNING: Do not use 'mc' to extract the tar file!
1602         All mc versions before 4.0.14 cannot extract symbolic links correctly.
1603
1604 WARNING: Do not use 'winzip' to extract the tar file!
1605         Winzip cannot extract symbolic links correctly.
1606
1607 Joerg