Imported Upstream version 1.1.11
[platform/upstream/cdrkit.git] / doc / ANNOUNCEMENTs / AN-2.01
1 Please have a look at the German open Source Center BerliOS at www.berlios.de
2 BerliOS will continue to support free hosting of cryptography projects even
3 when US laws change and don't allow to host cryptography projects in the USA.
4 Also look at sourcewell.berlios.de, the first Open Source announcement service
5 that itself is implemented as Open Source project.
6
7 ***************** Important news ****************************
8
9 For the 'Slottable Source Plugin Module' SSPM Features read README.SSPM
10
11 ***************** Please Test *********************************
12
13 NEW features of cdrtools-2.01:
14
15
16 All:
17
18 -       Support for the ELF format in BSDi 4.x
19
20 -       Allow floating point printing on OS/2. This has been possible
21         since 11/2001 but OS/2 has been forgotten.
22
23 -       Correct OS/2 ranlib handling
24
25 -       New architecture 9000-831-hp
26
27 -       Include +DAportable in HP-UX cc options
28
29 -       README.hpux enhanced to include hints on how to compile 64 bit
30         binaries.
31
32 -       Support for NetBSD on PPC (macppc-netbsd-cc)
33
34 -       portable getdomainname() replacement now supports to get the domainname
35         from /etc/resolv.conf. This allows usage even on OS/2
36
37 -       Typo in DEFAULTS files fixed
38
39 -       New generic target for symlinks
40
41 -       New file rename.c for portability part of libschily
42
43 -       Better Next STep support:
44
45         -       Some workarounds for broken unistd.h
46
47         -       -lkvm removed from Next Step config.
48
49         -       waitdefs.h fixed for very old BSD based systems (~ 1980)
50                 like Next STep
51
52         -       strdup() moved into portability part of libschily
53
54         -       fixed typo in fctldefs.h R_RDONLY -> O_RDONLY
55
56         -       New file ttydefs.h includes portability phrases from ved and bsh.
57
58         -       Added an autoconf test for buggy termios.h in Next Step.
59                 Next STep provides fully functional termios.h but tcgetattt(), ...
60                 is missing in libc.
61
62         -       Test for clock_t changed to deal with a bug in Next STep.
63                 Next Step illegally needs sys/time.h for clock_t
64
65
66 -       Make recently introduced symlink install use relative symlinks instead
67         of absolute symlinks.
68
69 -       Change autoconf/statdefs.h to support nanosecond support for SCO
70         UnixWare and FreeBSD
71
72 -       Call conf/mkdep-sco.sh via sh to be independent from 'x' bit.
73
74 -       libschily/rename.c fixed for SCO Openserver fo avoid warning
75         for redefinition of MAXPATHNAME
76
77 -       libschily/usleep.c fixed to avoid SCO Openserver warning about
78         non matchin prototype in system include files
79
80 -       Better Portability for SCO UnixWare
81
82         -       New platforms i486, i586, Pentium III, Pentium Pro
83
84         -       Let strdefs.h also include strings.h for strcasecmp()
85
86         -       Support for missing struct sockaddr_storage
87
88         -       Support for broken wait3() (returns wrong timings)
89
90         -       Changed broken portability Prototype support in libfile
91                 to use 'makefiles / prototype.h' based system
92
93         -       Changed fileopen() and filereopen() to avoid fdopen()
94                 provlems (does not accept mode string that does not
95                 match fd flags)
96
97 -       Catch the case where somebody tries to compile on Solaris with
98         /usr/ucb in PATH before /opt/SUNWspro/bin and when calling 'cc'
99         results in:
100                 /usr/ucb/cc:  language optional software package not installed
101
102 -       Trying to make the source get accepted by 'cstyle'.
103
104 -       Changes in the general topic 'Stack Scanning' and the software signal
105         system handlecond()/raisecond() that make the software signal system
106         now usable on all platforms.
107
108 -       Trying to support DOS with the DJGPP compilation environment
109         Thanks to Alex Kopylov <reanimatolog@yandex.ru> for the first version
110         of the port and further helping.
111
112         Note that in order to compile cdrtools on DOS/DJGPP you need smake-1.2a20 or newer.
113         GNU make does not seem to work for a DOS compilation.
114
115 -       New File README.msdos
116
117 -       New RULES for DOS/DJGPP
118
119 -       Make some vars in align_test.c static because Mac OS X creates unneeded
120         name space pollution.
121
122 -       DJGPP has no SIGBUS, use #ifdef in avoffset.c and align_test.c
123
124 -       Several changes with casting Null pointer constants to Null Pointers
125         if they are used as parameters in var arg lists (see below).
126
127 -       New gethostname() fallback emulation using uname(2).
128
129 -       Better rename(2) emulation for Platforms that don't have rename().
130
131 -       niread()/niwrite()/nixread()/nixwrite() in libschily now resets errno
132         to the old value in case EINTR did occur.
133
134 -       README.msdos has been corrected according to a hint from Alex Kopylov
135
136 -       New macros to platform independently set up integers in little endian
137         format. This is needed to e.g. write PC disk labels from big endian
138         platforms.
139
140 -       Rules extended to support volume management libs
141
142 -       The install-sh script not takes care about UNIX variants like SCO UnixWare
143         and SCO OpenServer that allow to give away files via chown.
144
145         If this works and /tmp has the sticky bit set, the root test was unable
146         to remove the test files later. For this reason, now a subdirectory
147         in /tmp is used.
148
149
150 -       Support for the special .PHONY: target ---> needs smake-1.2a21 or newer
151
152         This helps to deal with files like INSTALL operating systems
153         like Win32 and Mac OS that don't honor file name case and prevents
154         the file named INSTALL to get into trouble with 'make install'
155
156
157 -       'make install' now works on operating systems that require a '.exe'
158         suffix for executable binaries
159
160 -       Updated the file README.ATAPI
161
162         Updated information for Linux, SCO-OpenServer, SCO-UnixWare, Win32
163         and DOS
164
165 -       mconfig.h now supports make COPTX=-DNO_FORK & COPTX=-DNO_VFORK
166
167 -       snprintf() from libschily now correctly follows POSIX.1-2001 for maxlength == 0
168
169 -       Workaround for a bug in the C-compiler from SCO-OpenServer. It
170         is not very probable that this causes problems with cdrecord. The 
171         function getfp() did not return the correct Frame Pointer when called
172         as first function in another function as the compiler sdoes set up the
173         new stack frame after getfp() has been called.
174
175 -       New function filemopen(char *name, char *omode, mode_t mode) with additional
176         mode_t parameter.
177
178 -       update recent getargs() version from repository. This has been forgotten.
179         
180 -       Add a workaround for a SCO OpenServer C-compiler bug.
181         The bug causes the first function in a function to be called
182         before the new stack frame has been established and did cause
183         scanning the stack frame to fail.
184
185 -       Make snprintf() POSIX compliant.
186
187 -       Many typos in the READMEs fixed, thanks to a hint from Stefano Allrath
188
189 -       New global method to handle PATH environment delimiters (":" on
190         POSIX systems and ";" on DOS).
191
192 -       New README.msdos reflecting new features of smake-1.2a23 on DOS/DJGPP
193
194 -       Some minor enhancements to the makefilesystem
195
196 -       Some minor changes for better compilation in SGI IRIX
197
198 -       Trying to start adding support for Win32/Mingw32
199
200 -       New global #define NEED_O_BINARY to make using setmode() easier
201
202 -       New autoconf test for struct stat.st_fstype
203
204 -       New autoconf test for fnmatch()
205
206 -       New autoconf test for blksize_t/blkcnt_t
207
208 -       libscgily/stdio/io.h renamed to schilyio.h to avoid conflicts with
209         DOS.
210
211 -       Added a Note to README.linux:
212
213         NOTE for all Linux 2.5.x versions and all Linux versions before 2.6.8:
214  
215                 Linux did ship with defective kernel include files starting
216                 with 2.5.x. These defective kernel include files did prevent
217                 compilation. If you have problems compiling software and see
218                 error messages related to include/scsi/scsi.h & include/scsi/sg.h
219                 either upgrade to Linux-2.6.8 or newer or remove /usr/src/linux
220
221 -       Support added to the makefile system that allows compilation on
222         AMD x86_64 using non automake aware make programs like GNU make.
223         Note that smake ftp://ftp.berlios.de/pub/smake/alpha/ is able to compile
224         things even on unknown platforms as it includes auto make features.
225
226
227 Libparanoia (Ported by Jörg Schilling, originated by Monty xiphmont@mit.edu):
228
229 -       Included a bug fix from the libparanoia Author.
230         Correctly allocate some arrays. Note: on 32 Bit machines, this patch does
231         not result in a different binary but the code is now really correct.
232
233 -       New indentation is better conforming to 'cstyle'
234
235 -       Fixed a bug in libparanoia that prevented the statistics to show up
236         the number of 'skips' (the number of exhausted read retries) when
237         SKIP verification has been turned off.
238
239 -       modified to avoid GCCs shadowed variable warnings.
240
241 -       Try to use page aligned transfer buffers if possible.
242
243 -       Avoid buffer size problems wit non page aligned transfers on FreeBSD.
244
245 -       Avoid freeing pointers that are not from malloc() by copying the data
246         to a second allocated chunk of free()able space. This has been a bug
247         introduced while trying to handle buffer size problems with non page aligned
248         transfers on FreeBSD.
249
250
251 Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de):
252
253
254 Libscg:
255
256 -       Reordered and restructured scsi-remote.c code to allow compilation on OS/2
257         and hopefully other OS like BeOS
258
259 -       First attempt to support QNX.
260         Note that the sourcecode comes from QNX and it looks as if it 
261         is buggy for commands that cause SCSI commands that result in 
262         a Check Condition status. From looking at the source, the stack
263         gets overwritten in this case.
264
265 -       SCSI adaptation layer for SCO UnixWare rewritten to support
266         multiple opens and to better follow the libscg interface standard.
267
268 -       Second attempt to support QNX.
269         Make it compile
270
271 -       Check kernel level error return codes on SCO-UnixWare
272
273 -       Starting to support SCSI reset on SCO-UnixWare
274
275 -       Extensions to libscg related include files to support DVD+RW formatting
276
277 -       Make libscg work on SCO UnixWare if an application like cdrecord
278         has been installed suid root.
279
280         Before, the called administration programs did not work if euid!=uid
281
282 -       Fixed a problem with possible garbage in the SCSI error string.
283         Thanks to Stefano Di Paola <stefano.dipaola1@tin.it> for reporting.
284
285 -       Fixed another printf buffer vulnerability in scsi-remote.c
286
287 -       New version of scsi-amigaos.c from Thomas Langer
288
289 -       Added a work around for a Solaris 9 x86 bug:
290         DKIOCINFO returns a max DMA size of 256 kB but only 68 kB will work.
291         Check max DMA size for a IDE disk to get a correct value....
292
293         For more information read the updated file README.solaris and the
294         new files README.solaris-x86-ata-DMA and README.solaris-x86-ATAPI-DMA
295
296 -       Changed scsi-os2.c to allow 'cdrecord -scanbus' to find targets with
297         target ids > 7.
298
299 -       Librscg now uses correct casting to a Null Pointer for execlp() as
300         NULL is a Null Pointer Constant but no Null Pointer. This could
301         make problems with some 64 bit architectures.
302
303 -       New driver scsi-dos.c acting as 16 bit DOS ASPI interface
304         Thanks to Alex Kopylov <reanimatolog@yandex.ru> for the first version
305         of the driver.
306
307         Check his Web Page: http://bootcd.narod.ru/index_e.htm
308         it contains precompiled DOS binaries.
309
310 -       The driver scsi-dos.c has already been verified with 'scgcheck'.
311
312 -       scsi-os2.c and scsi-wnt.c now correctly return 0 from scg_send() if
313         the target is not valid.
314
315 -       scsi-wnt.c does now support multiple SCSI opens.
316
317 -       scsi-wnt.c does now correctly return SCG_NO_ERROR in case a SCSI command
318         returned CHECK CONDITION.
319
320 -       scg__open() now prints a warning if it has not compiled with the results
321         from a certified autoconf environment.
322
323 -       Introduced a fix to avoid the need for a #define ident prod_ident
324         for SCSI Inquiry data. This #define did cause problems with the
325         latest Sun Studio 8, C compilers
326
327 -       First attempt to support running cdrecord while the volume management is
328         active.
329
330 -       Increased version number to 0.8
331
332 -       First attempt to work around the problems for suid programs introduced by
333         Sun with Solaris 9. Programs that like to issue a USCSI ioctl() need to be
334         root or get EPERM. Cdrecord did does up root privilleges eraly to avoid
335         security problems.
336
337         libscg now selectively runs the USCSI ioctl() as root if the program is installed
338         suid root.
339
340 -       Fixed a bug in scsi-mac-iokit.c in scgo_havebus() that caused pxupgrade not
341         to work on MacOS X.
342
343 -       First attempt to support the SPTI Ioctl interface on Windows NT.
344         see also http://www.ste-home.de/cdrtools-spti/
345         Thanks to Richard Stemmer, Jay A. Key and thomas podkanski
346
347         This allows to use cdrtools on NT without the need to install ASPI in case
348         you are administrator when yu run a program.
349
350         Please note that the use of SPTI is default. If you like to force using
351         ASPI, use dev=ASPI:b,t,l or dev=ASPI (in the -scanbus case).
352         If you like to force STPI, use dev=SPTI:b,t,l or dev=SPTI.
353
354         Currently, the interface does not yet fully matches the scg interface standard.
355
356 -       Try to support the half hearted and badly designed /dev/hd* interface
357         from Linux-2.6 in a more usable way.
358
359         The only reason for adding this kind of support is that the Linux kernel
360         hackers reject to fix the known DMA bugs in the already existing SCSI
361         transport interfaces in the Linux kernel. Using /dev/hd* is unfortunately
362         the only way to get DMA with sector size being 2352, 2448 or similar.
363
364         Use cdrecord -scanbus dev=ATA and
365         cdrecord dev=ATA:1,0,0
366
367         Note: The Bus mapping function inside the kernel for this interface is
368         a dummy. For this reason, we need to do the mapping ourselves.
369         Busnumber is ("/dev/hd*"[7] - 'a') / 2
370         Target    is ("/dev/hd*"[7] - 'a') % 2
371
372         Also note that creating this interface in the Linux kernel was a waste of
373         time. It did need a lot of effort to be created. Instead of first adding
374         a new interface with a new broken DMA implementation and later fixing
375         the DMA bugs, it would have been better to just fix the DMA bugs
376         in ide-scsi.c
377
378         Adding SCSI transport to something like /dev/hd* on an OS that includes
379         a generic SCSI transport driver is disregarding SCSI protocol layering.
380         A clean way to implement ATAPI on Linux would be to rather introduce a
381         SCSI hostadaptor driver that sends the SCSI commands via the
382         ATA hardware.
383
384         Linux users should think about buying a CD writer for Linus Torvalds.
385         Maybe this could help to get better SCSI support in the Linux. Currently
386         Linus doesn't know anything about the CD-writing problems on Linux and
387         his contributions to CD-writing related issues in discussions are just
388         guesses that are not related to own experiences and understanding for
389         the matter :-(
390
391         It seems that the Linux way of dealing with bugs is to implement a new
392         incompatible interface instead of fixing the known bugs from 
393         old interfaces :-(
394
395 -       Allow cdrecord -scanbus dev=ASPI and cdrecord -scanbus dev=SPTI to work
396         on win32.
397
398 -       Correct a bug in the Win32 version analyze function that is needed to
399         use the correct SPTI interface. Unfortunately, the interface did
400         change with a NT-4.0 service pack. It is unclear whether the currently
401         used interface type is correct for all possible NT-4.0 variants.
402
403 -       For Win32, default to STPI only if on NT-5.x as there is a bug in some
404         UDMA implementations that causes blue screens.
405
406 -       The Mac OS X SCSI low level transport now roughly meets the interface standard.
407         For this reason, the file scsi-mac-iokit.c now is marked with Author "schily"
408
409 -       Indented according to the cstyle standard.
410
411 -       For win32, dev=ASPI:1,0 and dev=SPTI:1,0 work again
412
413 -       Trying to add a workaround for the Linux problem with USB where the
414         kernel issues a request sense even when there was only a DMA underrun
415         and the drive replies as expected with no-sense. Our problem in this
416         case is that we needed to ad another workaround because sometimes
417         Linux clears the status byte and we did assume a CHECK CONDITION in case
418         sense[0] was != 0.
419
420 -       Enhanced max # of SCSI busses to 256 for the Linux sg driver.
421         This was needed because of the (compared to Solaris) suboptimal
422         way of dealing with instance numbers on Linuux.
423
424         While Solaris keeps a data base with instance numbers, disconnecting and
425         reconnecting a USB drive results in the USB device getting the same 
426         SCSI address as before.
427
428         As Linux does not have such a data base, disconnecting/reconnecting
429         a USB device has the unfortunate side effect of assigning a new and
430         different SCSI address with every USB connect. This also creates problems
431         when software likes to manage access rights to devices for non-root
432         users.
433
434 -       Win32 SPTI interface now also supports controllers with more than one
435         SCSI Bus. Thanks to Richard Stemmer
436
437 -       Fixed a bug in the Win32 SPTI/ASPI interface introduced with 2.01a28
438         that caused core dumps because it did try to access data behind the end of the
439         sense data array in the ASPI cmd structure.
440
441 -       Scan /dev/hda../dev/hdz instead of /dev/hda../dev/hdt for dev=ATAPI on Linux.
442
443 -       Trying to write a better warning message for the dev=ATAPI: interface
444         on Linux (the related kernel interface is unmaintained and does
445         not support DMA at all).
446
447 -       Fixed a bug in Win-NT Version string handling in scsi-wnt.c
448         Thanks to Alex Kopylov <reanimatolog@yandex.ru>
449         This caused that libscg did not properly recognize NT-4.x with service pack 4
450         to be equivalent to NT-5.0 (Win2k).
451
452 -       Trying to avoid using the WinNT-SPTI interface for NT-4.0
453
454 -       Fixed a security bug in scsi-remote.c (the RSCSI client).
455
456
457 Rscsi:
458
459 -       Support for IPv6
460
461 -       Workaround for missing struct sockaddr_storage on SCO UnixWare
462
463 -       Security update. Forbid to write arbitrary debug files, only allow
464         a debug file name that has been configured in /etc/rscsi.conf.
465         Writing arbitrary files with a siud root program could be used to become
466         root on a local machine if you are already logged into that local machine.
467
468 -       README.rscsi typo's corrected.
469
470
471 Cdrecord:
472
473 -       Use correct set_mode_params() return value in deflt_writemodes_mmc()
474
475 -       Correct a debug printing to go to stderr instead of stdout.
476
477 -       Workaround for broken Firmware for LG (Lucky Goldstar) drives.
478         These drives have been unable to write Audio in TAO mode because
479         they have an illegal audio pause length default.
480
481         Thanks to a hint from: Mark Vytlacil <markvyt@comcast.net>
482
483 -       Man page now correctly describes the data formats used with -xa1 & -xa2
484
485 -       Use Prototypes for functions with enum parameter in fifo.c to avoid
486         warnings on SCO UnixWare
487
488 -       Trying to catch SIGHUP to avoid hung recorders after people
489         close X windows by accident (This in most cases happens because
490         some newer GUIs try try copy bad ideas from Microsoft like the 'x'
491         button on the top bar in the window.
492
493 -       Trying to print hints if the SCSI error core looks like a buffer
494         underrun occurred.
495
496 -       First (still mostly empty) driver for the Matsushita CW-7501
497
498 -       First TAO writing support for the Matsushita CW-7501
499
500 -       New option -setdropts to allow cdrecord to set driver specific
501         parameters and exit.
502
503 -       Added support to disable/enable the Plextor PowerRec feature.
504         Use driveropts=forcespeed
505         Be very careful as this will cause in badly readable disks.
506         The only senseful reason to use this feature is to run tests in
507         -dummy mode to check whether the system would be able to record
508         fast enough and to later buy High-Speed Media.
509         Note that documentation for the related SCSI command is not
510         oficially available and thus the information has been "guessed".
511
512 -       Added support to enable/disable the Plextor SpeedRead feature.
513         Use driveropts=speedread
514         to allow the drive to read CDs faster than 40x.
515         Be very careful as this may cause the media to break in the drive
516         while reading, resulting in a destroyed media and drive!
517         Note that documentation for the related SCSI command is not
518         oficially available and thus the information has been "guessed".
519
520 -       Added support to enable/disable the Plextor SingleSession feature.
521         Use driveropts=singlesession
522         This allows to read defective (illegal) media with extremely
523         non-standard additional TOC entries. You need to enable Single Session
524         mode before you insert the defective disk!
525         Note that documentation for the related SCSI command is not
526         oficially available and thus the information has been "guessed".
527
528 -       Added support to enable/disable the Plextor Hide CD-R feature.
529         Use driveropts=hidecdr
530         This allows to make CD-Rs look like CD-ROMs and applications believe
531         that the media in the drive is not a CD-R.
532         Note that documentation for the related SCSI command is not
533         oficially available and thus the information has been "guessed".
534
535 -       Added reading out "real" Burn-Proof counter for Plextor drives.
536         Note that documentation for the related SCSI command is not
537         oficially available and thus the information has been "guessed".
538
539 -       Try to do a more correct job when doing Buffer Underrun estimation
540         counts.
541
542 -       Make the explicit Buffer underrun error checking work for
543         Plextor drives too.
544
545 -       Fixed the command line parser for driveropts= parameters.
546         Before the fix, driveropts=noburnfree,hidecdr would result
547         in assuming: driveropts=noburnfree,nohidecdr
548
549 -       Now also supporting SAO/DAO write mode for the CW-7501
550
551 -       New option -lock (similar to -load) that loads the media but leaves
552         the drive in locked status.
553
554 -       New driver interface to allow SAO recording for the CW-7501
555         Simplified: "dummy" and "multi" Parameter information has been
556         moved into the track structure.
557
558 -       Removed the internal implication that -packet is a TAO write mode.
559         Please test! It may be that this did introduce bugs.
560
561 -       Try to avoid ANSI C arithmetic conformance change warnings from 
562         SCO C-compiler by introducing proper casting.
563
564 -       Driver interface restructured to support aborting SAO recording
565         with the Sony CDU-948
566
567 -       "Driver flags" printing corrected
568
569 -       Better behavior with CADDY drives and -load option
570
571 -       Fixed a bug that caused cdrecord not to abort if Tracks with unknown
572         length are present in RAW write mode.
573
574 -       Print extended Power Rec Speed information for Plextor drives.
575
576 -       CUE Sheet handling generalized to allow to implement SAO writing
577         for more drives.
578
579 -       Start supporting the Sony CDU-948 in SAO mode. Currently not yet working:
580
581         -       Multi-session
582
583         -       MCN/ISRC
584
585 -       Grace time handling restructured. The grate time waiting is now done 
586         even before the forced blanking and it is made sure that the waiting
587         is done only once.
588
589 -       Several changes in the open source part are visible as a result of the
590         new DVD+RW / DVD+R support.
591
592 -       cdrecord-ProDVD now includes first DVD+RW and DVD+R support.
593         Check ftp://ftp.berlios.de/pub/cdrecord/ProDVD/ 
594         on Thursday 24.4.2002 for the first binaries
595
596 -       Do not try to lower the possible number of open files in raise_fdlim()
597         anymore.
598
599 -       Check return code of driver's init function.
600
601 -       Better error messages from main write loop.
602
603 -       Write a hint that a user may have used a "preformatted" CD-RW if 
604         read_next_writable_address fails for the "invisible" track
605         and tell him to run cdrecord blank=....
606
607 -       Fixed a bug that caused cdrecord to prevent a 3rd session on a
608         multi session disk. This bug was introduced with the driver
609         restructuring a few releases before.
610
611 -       Better driver text strings for the driver IDs in the CD MMC drivers.
612
613 -       Move Plextor PowerRec speed info completely to the statistics _past_
614         the recording activities.
615
616 -       Allow more nonstandard Cue sheets to be accepted by the Sony CDU-924
617         and CDU-948.
618
619 -       Implement MMC-3 DVD+ Drive/Media recognition to avoid that cdrecord starts
620         to treat a DVD+ as a CD-R because the DVD+ drive identifies as CD-R/RW + DVD-ROM
621         with "no DVD media installed" from a MMC-2 viewpoint.
622
623 -       Added a note to the cdrecord man page how to use mkisofs
624         to allow cdrecord to knoe about track sizes in SAO or RAW mode.
625
626 -       Fixed a multi session bug that has been introduced with the DVD+R/RW 
627         restructuring with cdrecord-2.01a11. This bug caused cdrecord to be unable
628         to start a track from a sector number != 0 in TAO mode.
629
630 -       Fixed a problem with cdrecord -msinfo introduced with the the DVD+R/RW
631         restructuring with cdrecord-2.01a11. The unwanted verbose printing has been
632         removed with this version.
633
634 -       New option -xa to create CD-ROM XA mode 2 form 1 sectors with 2048 bytes
635         of user data
636
637 -       New option -xamix to create mixed CD-ROM XA mode 2 form 1/2 sectors 
638         with 2332 bytes of user supplied data.
639
640 -       Restructured sector types to make them usable:
641
642         -mode2         CD-ROM data mode 2        - 2336 bytes
643         -xa            CD-ROM XA mode 2 form 1   - 2048 bytes
644         -xa1           CD-ROM XA mode 2 form 1   - 2056 bytes
645         -xa2           CD-ROM XA mode 2 form 2   - 2324 bytes
646         -xamix         CD-ROM XA mode 2 form 1/2 - 2332 bytes
647
648         To write conforming CD-ROM XA multisession disks use cdrecord -multi -xa1
649         together with mkisofs -XA -sectype xa1
650
651 -       -cdi is now implemented how it should be: as a flat to change
652         the TOC type of a CD and not as a sector mode.
653
654 -       Track parsing completely restructured to allow new features.
655         One of the features is to write audio CDs from a pipe,
656         other features will follow.
657
658 -       Cdrecord now resets euid to the uid of the caller (if called suid root)
659         before it opens data files.
660
661 -       Fixed a bug that caused cdrecord to insert two grace wait periods
662         if a disk was blanked and rewritten in one call.
663
664 -       Allow cdrecord to copy audio CDs from a pipe from cdda2wav
665         without using an intermediate file on disk.
666
667        To copy an audio CD  from  a  pipe  (without  intermediate
668        files), first run
669
670            cdda2wav dev=1,0 -vall cddb=0 -info-only
671
672        and then run
673
674            cdda2wav dev=1,0 -no-infofile -B -Oraw - | \
675            cdrecord dev=2,0 -v -dao -audio -useinfo -text *.inf
676
677        This  will get all information (including track size info)
678        from the *.inf files and then read  the  audio  data  from
679        stdin.
680
681        If  you  like to write from stdin, make sure that cdrecord
682        is called with a large enough fifo size  (e.g.   fs=128m),
683        reduce  the write speed to a value below the read speed of
684        the source drive (e.g.  speed=12), and  switch  the  burn-
685        free   option   for  the  recording  drive  on  by  adding
686        driveropts=burnfree.
687
688 -       New option -abort allows you to send a write abort sequence to a drive.
689         This may help if other software did leave the drive in an unusable
690         condition.
691
692 -       New 'xio' module allows to open a file virtually more than once to
693         support CDRWIN CUE sheets in cdrecord.
694
695 -       Run Plextor Speedinfo SCSI command in silent mode as old Plextor drives
696         do not support this command.
697
698 -       Workaround for a Plextor (Premium only???) firmware bug that may result
699         in a B0 pointer A5:A5:A5 instead of FF:FF:FF.
700
701         This made it impossible to blank a freshly written CD-RW witout reloading
702         the media. Now cdrecord does not check the disk size anymore if the number
703         of tracks to be written is 0.
704
705 -       First CDRWIN CUE sheet support.
706
707         Cdrecord currently supports what is in the CUE sheet description in
708         the CDRWIN documentation (with a few exceptions). Note that the
709         examples in the rest of the CDRWIN man page are mostly illegal 
710         if you compare them against the CDRWIN CUE sheet syntax documentation.
711
712         These exceptions are currently in effect:
713
714         -       Only one FILE Line per CUE sheet file (This is compliant to the
715                 CUE shet format documentation although the examples show CUE
716                 files with more than one FILE line). NOTE that the CUE syntax has
717                 been ill defined so that it would not make sense to e.g. use
718                 more than one FILE line for audio CDs.
719
720         -       The AIFF File type is not implemented (because I have no documentation
721                 for this audio file format).
722
723         -       The MP3 File type is not yet implemented.
724
725         -       The CDG data type keyword will not yet work
726
727         -       The CDI data type keyword will not yet work
728
729         -       Only a sector size of 2048 will work with MODE1
730
731         -       Sectors with sector size 2336 will not yet work
732
733         -       POSTGAP will not yet work.
734
735         Note that the CDRWIN CUE documentation is bad and it is unclear how
736         formless (non XA) MODE 2 sectors should be made.
737         
738         CDI is not a sector/track property but a disk property.
739
740         The File type BINARY vs. MOTOROLA is unclear.
741
742         To use the cue sheet feature call:
743
744                 cdrecord dev=.... -v -dao cuefile=xx.cue
745
746         The main reason for implementing CUE sheet support was to allow to
747         write VCD/SVCD with cdrecord. It has currently tested with the
748         test SVCD from ftp://ftp.vcdimager.org/pub/vcdimager/examples/test_svcd/
749
750         Cdrecord should allow to write audio type CUE sheet based CDs also.
751
752
753 -       Modified the notes close to the Copyright printing code in cdrecord.c
754         to make clear that this note is not a deviation from the GPL but just
755         a memorandum on how to understand the GPL.
756
757 -       Fixed a bug in file descriptor handling that caused cdrecord not
758         to continue at offset xxx in the file after a new track did start.
759
760 -       Added a forgotten feature in the CUE Sheet parser so it will now know that
761         WAVE files use swapped (intel) byte order.
762
763 -       Restructured the main program of cdrecord so that cdrecord overall
764         behaves similar to before when cue sheets are used.
765         e.g. cdrecord -eject cuefile=xxx did only eject the disk instead of
766         first writing and then ejecting.
767
768 -       Added some hints to the man page to make speed= handling clearer
769
770 -       Fixed some typos in the man page
771
772 -       Added the -format option to the man page
773
774 -       CD-Text handling reworked:
775
776         CD-Text from textfile= or from CUE CDTEXTFILE wins over CD-Text
777         from *.inf files and over CUE SONGRITER.
778
779 -       CD-Text from CUE file (either CDTEXTFILE or SONGRITER) now needs
780         -text in addition in order to be not ignored.
781
782 -       Fixed a bug in the recognition for cdda2wav | cdrecord *.inf
783         that caused a message
784                 WARNING: Stdin is connected to a terminal.
785         if not writing from a pipe.
786
787 -       Small fix in auinfo.c to again allow compilation on K&R systems
788
789 -       Typo fixes for the cdrecord man page
790
791 -       The clone write code is now part of the GPL'd source
792         Note that this part of the code is now more than 2 years old but previously
793         has been excluded from the publically visible part of the source.
794
795         To understand how to use the clone mode read README.clone
796
797 -       New option ts= to set the SCSI transfer buffer size
798
799 -       Man page corrected to correctly mention current format for /etc/default/cdrecord
800
801 -       call setmode(fileno, O_BINARY) for DOS/DJGPP also
802
803 -       Better check if we use the FIFO to avoid core dumps with too small FIFO sizes.
804
805 -       Switch off FIFO of fifo size is < 2 * SCSI transferbuffer
806
807 -       Fixed a small bug in the man page (..sp instead of .sp). Thanks to Eric Raymond
808         for reporting!
809
810 -       Work around for a problem in the Plextor 708 firmware (at least 1.01..1.02)
811         that caused cdrecord to be unable to recognize that a DVD medium is present instead
812         of a CD medium.
813
814 -       Changed the GPL clarifications text in a way so Debian people still
815         agree with me that cdrecord is free software. The clarifications are
816         needed in order to tell people/companies (like Mr. Rosenkranzer,
817         RedHat & SuSE) who create broken branches from cdrecord that they are
818         not legally publishing their branches because they violate the
819         GPL § 2 Paragraph c) and GPL Preamble Section 6).
820
821         If would be better if the named persons/companies would rather stay
822         in contact to the Authors, discuss things and contribute to the
823         community instead of creating useless/broken changes and in case
824         of SuSE Linux even creating hacks that introduce security risks.
825
826         Note that now, RedHat Linux (enterprise server) or the SuSE Linux
827         are even more expensive than e.g. Solaris x86, see:
828
829         http://www.osnews.com/story.php?news_id=5416&page=5
830         Small Correction to this web page: Solaris x86 is free again for
831         personal use.
832
833 -       Extended the man page to make it more clear that all CD/DVD-writers
834         ever made use only SCSI commands.
835
836 -       Another change to the man page according to a hint from
837         Eric Raimond in order to get better compliance for troff -> "*ml"
838         converters.
839
840 -       Allow people who cannot provide an e-mail address or who
841         don't like to support their modifications to modify cdrecord
842
843 -       Some CUE sheet modifications in drv_mmc.c now made it into
844         the official SCCS history file.
845
846 -       Several fixes to avoid the need for a #define ident prod_ident
847         for SCSI Inquiry data. This #define did cause problems with the
848         latest Sun Studio 8, C compilers
849
850 -       Hack to work around a POSIX real time priotity design bug that
851         causes us to become root again on e.g. Linux in order to be able
852         to lower the priority of the FIFO background process.
853
854 -       Better documentation and EXAMPLE for -setdropts driveropts=
855         in the man page.
856
857 -       print a help message to direct the user to use -raw96r in case
858         the drive does not accept the cue sheet with -dao.
859
860 -       Mark all drives that cannot be accessed because the volume management is
861         running and no media is in the drive with '?' instead of '*', so they
862         may be distinct from non existing drives.
863
864         Read README.volmgt for more information
865
866 -       Now works again suid root on Solaris 9
867
868 -       Fixed a bug introduced in 2.01alpha by a source consolidation.
869         cdrecord -toc did not work anymore for CD-ROM readers
870
871 -       Updated README.audio
872
873 -       Make the CUE Sheet handling search for a file name from a FILE statement
874         also in the directory where the CUE sheet is found (in case there is no
875         slash (/) in the file name from 'FILE').
876
877 -       Avoid coredumps when cdrecord is called with -xd and there is no known
878         driver for the current drive.
879
880 -       New option -tao is now needed if you like to write in TAO mode.
881         Cdrecord now does no longer writes if no write mode has been specified.
882
883 -       New option -sao as alias for -dao. As the official name for the write mode
884         is SAO, -sao is more correct than -dao.
885
886 -       Fixes for minor typos in cdrecord.1
887
888 -       Fixed a bug with pad=xxx and pad sizes > 2 GB.
889
890 -       Trying to fix a bug introduced lately with the check for specified
891         write mode options. As a result, only TAO mode writing did work.
892
893 -       Better man page & online help for the ts= option.
894
895 -       Fixed a typo in the man page.
896
897 -       Better error messages when audio size is < 300 Sectors or needs padding.
898         Thanks to a hint from Stefano Allrath
899
900 -       cdrecord -scanbus now checks for 256 SCSI busses
901
902 -       cdrecord -scanbus now checks for 256 SCSI busses
903         This has already been announced for 2.01a28 but forgotten to include
904
905 -       Some Man Page Fixes trying to avoid coding problems for non 7-bit ACSII
906
907 -       Several typos in the man page fixed
908
909 -       Man page enhanced to include a better documentation for the driver=
910         option.
911
912 -       Several other enhancements to the man page
913
914 -       modified to avoid GCCs shadowed variable warnings.      
915
916 -       Cdrecord now tolerates the OPC "error code" "Power calibration area almost full"
917         to not a real error.
918
919 -       Fix for a bug that caused cdrecord to be unable
920         to reload the media for some drives.
921         The fix helps with the following problem:
922
923         Trying to clear drive status.
924         cdrecord: Drive needs to reload the media to return to proper status.
925         cdrecord: Cannot load media with this drive!
926         cdrecord: Try to load media by hand.
927         cdrecord: Cannot load media.
928
929 -       man page enhanced
930
931 -       Print the "Make sure you are root" only if root privilleges are missing.
932
933 -       Avoid warning for not working nice() on DOS
934         Thanks to Alex Kopylov <reanimatolog@yandex.ru>
935
936 -       -clone option documented in the man page. This has been forgotten before.
937
938 -       Several typos in the man page fixed
939
940 -       Do not try to call nice() on DOS/DJGPP
941
942 -       cdrecord now tries to check the DMA speed if the drive supports to read the
943         drive buffer. If the DMA speed is not sufficient, then cdrecord requires 
944         that burnfree is activated. If the environment variable "CDR_FORCESPEED"
945         is set or -force has been specified, then cdrecord does not try to enforce
946         that the available DMA speed is 2x the expected write speed.
947
948 -       Make some symbols static to avoid problem with a badly designed libc on
949         OpenBSD that violates POSIX by pulluting the namespace with symbols
950         like 'pl'.
951
952
953 Cdda2wav (By Heiko Eißfeldt heiko@hexco.de):
954
955 -       fixed typo in cdda2ogg.1
956
957 -       Do not use uname() but gethostname() for portability.
958
959 -       include unistd.h for abs() 
960
961 -       old Toshiba's usable again
962
963 -       Multisession Non-CD-Extra disks now work again
964         Now also a lot more broken disks are readable again.
965
966 -       not using ioctl in signalhandler any more
967
968 -       trying to support sound on Win32
969
970 -       Several changes (mostly OS/2 related) for more ask Heiko
971
972 -       bugfix add cdda2ogg manpage,and script and makefile install target 
973  
974 -       support BeOS shared memory and FIFO 
975  
976 -       support soundcard output under QNX 
977  
978 -       windows-users! Cygwin has fixed the bug introduced with 1.3.18. Please  
979         upgrade to the new 1.5.3-1 release. 
980
981 -       call setmode(fileno, O_BINARY) for DOS/DJGPP also
982
983 -       Now using the major() macro for some Linux duties.
984
985         WARNING to creators of Linux distributions:
986
987         It has _always_ been wrong to compile software only once for different 
988         kernel versions (e.g. for compile Linux-2.4 and later install a
989         2.2 kernel on the so created system).
990
991         Now that Linux-2.6 introduces incompatible changes to kernel/user
992         interfaces, the resulting binaries will not work correctly anymore.
993
994 -       Made CD-Text handling reentrant to overcome a problem triggered by XCDRoast
995
996 -       Now works again suid root on Solaris 9
997
998 -       Fix for a Bug that prevents paranoia statistics from being printed
999         because the paranoia statistics for the forked version has not been
1000         inside the shared memory.
1001
1002 -       New paranoia sub option paraopts=overlap=xx
1003
1004         This is mainly a bug fix for cdda2wav. Cdda2wav previously _always_ did
1005         completely deactivate the dynamic overlapping from libparanoia. Instead,
1006         it did set the overlapping to the statical value 0.
1007
1008         If you omit paraopts=overlap=xx, cdda2wav will now use dynamic overlapping
1009         with -paranoia.
1010
1011         If you like the old behavior, use: paraopts=overlap=0
1012
1013 -       New paranoia sub option paraopts=minoverlap=xx
1014         This sets the minimum dynamic overlap
1015
1016 -       New paranoia sub option paraopts=maxoverlap=xx
1017         This sets the maximum dynamic overlap
1018
1019 -       Better paranoia statistics output
1020
1021 -       Fixed a Problem with some Linux sound card drivers that caused cdda2wav to be
1022         unable to output to the soundcard.
1023
1024 -       cdda2wav now checks /etc/default/cdrecord and accepts dev=plextor as
1025         cdrecord does.
1026
1027 -       Trying to add verbose output that estimates the read quality with -paranoia
1028
1029 -       Trying to convert non-ascii characters in user & host names into '_'
1030         for better cddb compatibility.
1031
1032 -       Some Man Page Fixes trying to avoid coding problems for non 7-bit ACSII
1033         
1034 -       New option -scanbus
1035
1036 -       Removed some "historical junk" that caused cdda2wav to define a
1037         compile time default input device. This conflicts with cdda2wav -scanbus
1038         and is superfluous and contra productive since cdda2wav reads 
1039         /etc/default/cdrecord
1040
1041 -       cdda2wav has signed bitfields of size 1 :-(
1042
1043 -       Fixed a typo in cdda2ogg.1
1044
1045 -       Bug fix from Heiko for index lists that contain offset values of -1 in the middle
1046
1047 -       Trying to handle interface setup more carefully if SCSI Generic is not
1048         used.
1049
1050 -       Better Debug Code in setuid.c
1051
1052 -       Trying to fix a bug in UID handling on FreeBSD
1053         Thanks to the bugs reports and help from Fabian Keil <fk@fabiankeil.de>
1054
1055 -       Try to workaround a bug in GCC that caused incorrect warnings
1056         for "strict-aliasing rules"     
1057
1058
1059 Readcd:
1060
1061 -       First (hacky) implementation of a way to meter the read speed
1062         as a function of the disk location modeled after a idea from
1063         Markus Plail <cdrecord@gitteundmarkus.de>
1064
1065         Call:
1066                 readcd dev=b,t,l meshpoints=1000 > outfile
1067         then
1068                 gnuplot
1069                 gnuplot> plot "outfile" w l
1070
1071         or
1072                 
1073                 gnuplot> replot "outfile" w l
1074
1075         if you like to overlay graphs.
1076
1077 -       New option fs=# (same syntax as with cdrecord fs=#) to allow the
1078         user to set the maximum transfer size even in non-interactive mode.
1079         This may help is the OS (as it has been the case for Solaris 9 x86)
1080         reports a wrong maximum DMA size or there is a bug in libscg.
1081
1082 -       Speed printing with meshpoints=# now is based on 1000 bytes == 1 kb
1083         as documented in the SCSI standard.
1084
1085 -       Stop reading if the OS replies with a DMA residual count != 0
1086
1087 -       New option -factor will cause the read speed values to be printed
1088         be based on the single speed of the current medium. This is only
1089         possible if readcd is able to find out the current medium type.
1090
1091 -       The clone read code is now part of the GPL'd source
1092         Note that this part of the code is now more than 2 years old but previously
1093         has been excluded from the publically visible part of the source.
1094
1095         Clone writing has been designed to allow to copy complex structured media
1096         like e.g. SVCDs without the need to first do a sector by sector analysis
1097         on the source media.
1098
1099         To understand how to use the clone mode read README.clone
1100
1101 -       New option ts= to set the SCSI transfer buffer size
1102
1103 -       call setmode(fileno, O_BINARY) for DOS/DJGPP also
1104
1105 -       Now works again suid root on Solaris 9
1106
1107 -       Better man page & online help for the ts= option.
1108
1109 -       New option -scanbus
1110
1111 -       Fixed a bug with -scanbus (did not work correctly if /etc/default/cdrecord
1112         exists).
1113
1114 -       Added an allocated list of defective sectors, that is printed to the end of
1115         a read operation.
1116
1117
1118 Scgcheck:
1119
1120 -       Trying to check if multiple scg_open() requests result in
1121         usable interfaces.
1122
1123 -       Send more outout to stdout instead of stderr.
1124
1125 -       More correct test for max sense count.
1126
1127 -       Eject CD _after_ asking for it.
1128
1129 -       Abor further DMA residual tests if a basic DMA residual test fails.
1130
1131 -       Second open test enhanced.
1132
1133 -       A small fix to prevent a core dump caused by a problem on Mac OS X.
1134
1135
1136 Scgskeleton:
1137
1138 -       New Skeleton program as sample and template for programs that like to 
1139         use libscg.
1140
1141         This template has been included to help people like the Author of the
1142         BTC firmware flash program to write simple portable applications that
1143         send arbitrary SCSI commands to arbitrary drives.
1144
1145
1146 Mkisofs (By Jörg Schilling and James Pearson j.pearson@ge.ucl.ac.uk):
1147
1148 -       First attempt to support ISO-9660:1999 (Version 2) via -iso-level 4
1149         This allows 207 chars in filenames if Rock Ridge is not used
1150         ans 197 207 chars in filenames if Rock Ridge is used.
1151
1152         Note that this as an absolutely nontrivial change. Problems may 
1153         even occur when not using -iso-level 4. Please test and report
1154         problems.
1155
1156         It is not clear whether mkisofs should characters in the range
1157         outside 7-Bit ASCII. Currently, mkisofs allows any 7-Bit ASCII
1158         character except '\0' and '/'.
1159
1160 -       Second attempt to support ISO-9660:1999 (Version 2) via -iso-level 4
1161         This allows 207 chars in filenames if Rock Ridge is not used
1162         and 197 207 chars in filenames if Rock Ridge is used.
1163
1164         In version 2.01a01 the extended VD used the wrong signature 1.
1165         This has been corrected.
1166
1167 -       isoinfo is now able to recognize ISO-9660:1999 
1168
1169 -       Enhanced the filename length for graft points to 2x PATH_MAX
1170
1171 -       Abort with a warning message if the total size of the image data
1172         created by mkisofs would differ from the size printed by -print-size
1173
1174 -       udf.c indented according to hints from the program 'cstyle'
1175
1176 -       UDF now uses the same 'now' timestamp as the ISO-9660 part of the FS.
1177
1178 -       New Stream File feature and new options:
1179
1180         -stream-file-name
1181         -stream-media-size
1182
1183         This feature has been implemented after an idea from M.H. Voase.
1184         Mkisofs had to be heavily modified to allow this feature.
1185
1186         A typical usage would look like this:
1187
1188         star -c . | mkisofs -stream-media-size 333000 | cdrecord dev=b,t,l -dao tsize=333000s -
1189
1190         The maximum size of the tar archive is 332800 sectors.
1191         Note that only plain vanilla ISO-9660 is possible in this mode.
1192
1193
1194 -       The final padding that is added by default is now 150 sectors
1195         which is the required size of the track post gap on a CD.
1196
1197 -       Inter partition padding is now only chosen to make the next partition
1198         start on a sector number that is a multiple of 16.
1199
1200 -       isoinfo now also prints root directory extent # in debug mode
1201
1202 -       First step to allow mkisofs to support Kodak Photo CD and
1203         Kodak Picture CD format:
1204
1205         Try to correctly support associated files in multi-session mode.
1206
1207
1208 -       Diagnostic programs modified to use ttydefs.h and to have better
1209         portability for the built in "stty" features.
1210
1211 -       isoinfo now prints the ISO-9660 directory flags.
1212
1213 -       Make mkhybrid a symlink to mkisofs instead of a hardlink
1214
1215
1216 -       getopt.h/fnmatch.h  changed to use 'makefiles / prototype.h' based 
1217         system instead FSD junk system
1218
1219 -       Removed FSF junk from getopt.c that either created problems
1220         with SCO Unixware or did not compile on AIX
1221
1222 -       Prototype for DVDOpenFile() to avoid warning on SCO UnixWare
1223         related to enum function parameter
1224
1225 -       Fixed a bug with split symbolic links found by Klaus Kopper
1226         with the new debug messages introduced with mkisofs-2.01a04
1227
1228 -       Changed #if __STDC__ to #ifdef PROTOTYPES for better portability
1229
1230 -       Now using character code translation for 8 Bit characters that
1231         are used with -iso-level 4 (ISO-9660-1999).
1232
1233 -       Fixed a typo in the on-line Usage information for isoinfo
1234
1235 -       New options -XA & -xa
1236
1237         -XA     Generate XA iso-directory attributes with original owner
1238                 and mode information.
1239
1240         -xa     Generate XA iso-directory attributes with rationalized owner
1241                 and mode information (user/group == 0).
1242
1243         In the first phase of the implementation you need to specify -R in
1244         addition.
1245
1246 -       Try to support files >= 2 GB.
1247         Note that mkisofs is not yet written cleanly so there may be problems
1248         if files >= are used. In such a case, please report.
1249
1250 -       Create XA "CD-XA001" signature in PVD with -XA or -xa
1251
1252         In the first phase of the implementation you need to specify -R in
1253         addition to -XA or -xa or no XA signatures will be written.
1254
1255 -       Removed a debug statement that has been introduced to implement
1256         support for filees >= 2GB.
1257
1258 -       This version of mkisofs allows to create sectors with 2056 bytes if the
1259         option -XA or -xa has been used together with -sectype xa1.
1260         This is 2048 bytes + sub-header.
1261
1262 -       -apple does no longer include -R or -r.
1263         If you like to use -apple, you need to use -R/-r or -XA/-xa in addition.
1264
1265 -       New option -sectype SECTYPE / -s SECTYPE
1266
1267         Possible parameters are:
1268
1269         data    2048 bytes per sector - the old and current default
1270
1271         xa1     2056 bytes per sector - this is what you need for a conforming
1272                 CD-ROM XA multi session CD. Use -sectype xa1 together with -XA
1273
1274 -       Fixed a bug in the Rock Ridge symlink handling with Continuation records
1275         triggered by '/../' filename components.
1276         Thanks to jmmikkel@bbn.com (Joanne M Mikkelson)
1277         for the fix.
1278
1279 -       man page corrected
1280
1281 -       Moved Eltorito PVD before ISO-9660:1999 enhanced PCD to allow
1282         bootable CD with ISO-9660:1999
1283
1284 -       -sort file handling fixed: mkisofs now looks for SPACE/TAB whatever
1285         comes last (as documented in the man page).
1286
1287 -       Better error message in case of a stat(2) buffer overflow (too long
1288         filename). This release now prints the file name that caused the problem.
1289
1290 -       call setmode(fileno, O_BINARY) for DOS/DJGPP also
1291
1292 -       Added a NOTE regarding the SILO boot program for Linux sparc to the
1293         man page.
1294
1295 -       Added support for Solaris x86 boot CDs.
1296         This includes the following new options:
1297
1298         -       -sunx86-boot    to create a fdisk & SVr4 partition table
1299
1300         -       -sunx86-label   to set the "disk label" name for the
1301                                 SVr4 partition table.
1302
1303 -       New file README.sunx86boot
1304
1305 -       The file README.sunx86boot has been reworked to make it more correct
1306         and contain less typos.
1307
1308 -       Fixed a Rock-Ridge length handling bug in update_nlink()/increment_nlink() (tree.c)
1309         that may have caused an endless loop.
1310
1311 -       "Total extents including sparc boot" Message is now correctly
1312         "Total extents including %s boot" sparc/sunx86
1313
1314 -       mkisofs now checks /etc/default/cdrecord and allows e.g.
1315         "mkisofs -C 0,1234 dev=plextor ...." as cdrecord does
1316
1317 -       Unclean message ....extents written (%d Mb) changed to
1318         ....extents written (%d MB) to avoid "MegaBit" confusion.
1319
1320 -       Minor change for old UNIX versions like SCO OpenServer to get
1321         smooth compilation on system where mode_t is a short.
1322
1323 -       Fix for a bug in RockRidge name handling for long file names
1324         that need to be split into more than one sector.
1325         Thanks to Patrick Ohly <Patrick.Ohly@gmx.de>
1326
1327 -       Trying to fix a bug in the multi session time stamp comparing
1328         functions. CE records have not been handled correctly here.
1329
1330 -       Support for PowerPC CHRP Boot added, thanks to
1331         "Leigh Brown" <leigh@solinno.co.uk>
1332
1333 -       Support for -uid/-gid for UDF Filesystems added
1334
1335 -       isoinfo now is able to list ElTorito Boot information with -d
1336
1337 -       isoinfo now correctly shows long RR filenames from CE Extension records.
1338
1339 -       Fixed a bug in the PowerPC CHRP Boot, thanks to
1340         "Leigh Brown" <leigh@solinno.co.uk>
1341
1342 -       New options -root & -old-root from Patrick Ohly
1343         This allows mkisofs to be used for "incremental backups" where
1344         each backup is put into a separate directory tree on the CD.
1345
1346 -       Default to System ID "UNIX" for unknown platforms instead of
1347         uning LINUX.
1348
1349 -       Support System ID "SCO-OPENSERVER" and "SCO-UNIXWARE"
1350
1351 -       Better error message when a user tries to create a multi session image
1352         out of a multi-volume image.
1353
1354 -       When doing malloc(), include Null Byte at end of TRANS_TBL data to
1355         avoid memory size conflicts.
1356
1357 -       Fix for a core dump caused by a double free() when doing:
1358         echo bar >/tmp/bar
1359         echo foo/bar=/tmp/bar > /tmp/pathlist
1360         env LD_PRELOAD=libumem.so.1 UMEM_DEBUG=default UMEM_LOGGING=transaction \
1361             mkisofs -hfs -graft-points -o /tmp/foo.raw -path-list=/tmp/pathlist
1362
1363         Thanks to Jürgen Keil jk@tools.de
1364
1365 -       Fixed a typo in write.c "Padbock" -> "Padblock"
1366         Thanks to  Richard Dawe <rich@phekda.gotadsl.co.uk>
1367
1368 -       Trying to fix a problem with comparing relaxed ISO-9660 file names
1369         that contain a ';' which normally is a separator for the ISO-9660
1370         version number. The fix is in hash.c, please test!
1371
1372 -       Avoid GCCs shadowed variable warnings.
1373
1374 -       Added a comment is in hope to prevent silly people from
1375         e.g. SuSE (who did not yet learn C but believe that
1376         they need to patch other peoples code) from changing a
1377         valid cast into an illegal lhs cast expression.
1378         The cast in the unodified version of write.c is the correct way to
1379         handle the problem.
1380
1381         It would save a lot of time if people from companies like SuSE
1382         would remember the Open Source software development model and
1383         contact the Author for help rather than introducing proprietary
1384         changes that result in worse and incompatible software variants.
1385
1386         The way, companies like SuSE deal with Open Source software just
1387         proves that Jonathan Schwartz from Sun is not wrong when he calls
1388         SuSE and RedHat proprietary software companies. Users from Open Source
1389         software expect that companies like SuSE and RedHat are in close
1390         contact with the software developers but they unfortunately are not.
1391         They prefer to create proprietary variants that are usually much
1392         worse than the original software. The only explanation I have for this
1393         behaviour is that SuSE likes to deviate from RedHat and RedHat likes
1394         to deviate from SuSE in hope to get customer retention this way.
1395         While the last 150 years did prove that this proprietary method to
1396         tie up customers works for a limited time, it did always fail after
1397         some time.
1398
1399 -       Removed verbose output for Eltorito boot method when called with -quiet
1400
1401 -       The Eltorito boot catalog and the Eltorito boot files are now by default
1402         sorted to the beginning of the filesystem image as sime BIOS versions don't
1403         boot from locations beyond 512 MB.
1404
1405 -       All programs from mkisofs/diag now support libscg so you may now 
1406         use e.g. isoinfo to list end extract from CDs directly on platforms 
1407         that do not support a usual driver interface (like on Win32).
1408
1409 -       Set default SYSID to "DOS" for DJGPP
1410         Thanks to Alex Kopylov <reanimatolog@yandex.ru>
1411
1412 -       devdump isodebug isodump isoinfo isovfy
1413         now include libscg and allow to use SCSI devices as input
1414
1415 -       devdump isodebug isodump isoinfo isovfy
1416         now implement a new option dev= to force to use the SCSI 
1417         interface from libscg.
1418
1419 -       isoinfo now correctly sets the filemode of stdout to O_BINARY
1420         on DOS alike Platforms like Win32 & DJGPP
1421         This affects the '-x pathname' option
1422         Thanks to Alex Kopylov <reanimatolog@yandex.ru>
1423
1424 -       The options -H/-L/-P from mkisofs have been marked "outdated"
1425         as they are reserved by POSIX.1-2001 for other purposes.
1426
1427         Mkisofs-2.02 will start to implement the POSIX.1-2001 semantics for
1428         these options.
1429
1430 -       The max. length for the strings in the Primary volume descriptor
1431         is now also documented in the options section of the man page.
1432
1433 -       Speed up by 30% in the case that a directory contains many (> 5000)
1434         pathological file name entries (that _all_ do not differ in 8.3).
1435
1436 -       A minor speed up in devdump & isodump was made by no longer calling
1437         strlen() in the end condition of a for loop (this still was old
1438         code from Eric).
1439
1440 -       fixed a bug with -dvd-video
1441         The bug caused mkisofs not to find the IFO file when VIDEO_TS was not
1442         the first entry in the unsorted source directory.
1443         Thanks to a hint from Johan Borg borg@morth.org
1444
1445 -       The option -volset-size does no longer accept numbers > 1
1446
1447         This change was needed because Eric Youngdale did completely
1448         missunderstand the ISO-9660 standard with respect to Volume Set
1449         Sizes.
1450
1451         A Volume Set is not a numbered set of CDs but a set of CDs that
1452         contains a coherent directory tree that would not fit on a single
1453         volume.
1454
1455 -       Fixed a typo in the mkisofs man page
1456
1457 -       man page enhanced to make clear that the options
1458         -no-split-symlink-fields & -no-split-symlink-components
1459         are most likely not needed as they have been introduced by Eric Youngdale
1460         when serious bugs have been in mkisofs.
1461
1462 -       Changelog updated
1463
1464 -       Try to workaround a bug in GCC that caused incorrect warnings
1465         for "strict-aliasing rules"     
1466
1467 TODO:
1468         -       read Joliet filenames with multi-session if no TRANS.TBL
1469                 or RR is present. I am looking for a volunteer for this task!
1470
1471                 Note that this can never be 100% correct as there is no relation
1472                 between the names on the master (UNIX) filesystem, the ISO-9660
1473                 names and the Joliet names. Only the Rock Ridge names are
1474                 untranslated with respect to the original files on the
1475                 master (UNIX) filesystem.
1476
1477         -       add libecc/edc for CDI and similar.
1478
1479
1480 CYGWIN NT-4.0 NOTES:
1481
1482 To compile on Cygwin32, get Cygwin and install it.
1483 For more information read README.win32
1484
1485 The files are located on:
1486
1487 ftp://ftp.berlios.de/pub/cdrecord/alpha ...
1488
1489 NOTE:   These tar archives are 100% POSIX compatible. GNU tar may get some
1490         minor trouble. If you like a 100% POSIX compliant tar, get star from
1491         ftp://ftp.berlios.de/pub/star/
1492
1493 WARNING: Do not use 'winzip' to extract the tar file!
1494         Winzip cannot extract symbolic links correctly.
1495
1496 Joerg