-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAN-2.01
More file actions
1496 lines (981 loc) · 52.2 KB
/
AN-2.01
File metadata and controls
1496 lines (981 loc) · 52.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Please have a look at the German open Source Center BerliOS at www.berlios.de
BerliOS will continue to support free hosting of cryptography projects even
when US laws change and don't allow to host cryptography projects in the USA.
Also look at sourcewell.berlios.de, the first Open Source announcement service
that itself is implemented as Open Source project.
***************** Important news ****************************
For the 'Slottable Source Plugin Module' SSPM Features read README.SSPM
***************** Please Test *********************************
NEW features of cdrtools-2.01:
All:
- Support for the ELF format in BSDi 4.x
- Allow floating point printing on OS/2. This has been possible
since 11/2001 but OS/2 has been forgotten.
- Correct OS/2 ranlib handling
- New architecture 9000-831-hp
- Include +DAportable in HP-UX cc options
- README.hpux enhanced to include hints on how to compile 64 bit
binaries.
- Support for NetBSD on PPC (macppc-netbsd-cc)
- portable getdomainname() replacement now supports to get the domainname
from /etc/resolv.conf. This allows usage even on OS/2
- Typo in DEFAULTS files fixed
- New generic target for symlinks
- New file rename.c for portability part of libschily
- Better Next STep support:
- Some workarounds for broken unistd.h
- -lkvm removed from Next Step config.
- waitdefs.h fixed for very old BSD based systems (~ 1980)
like Next STep
- strdup() moved into portability part of libschily
- fixed typo in fctldefs.h R_RDONLY -> O_RDONLY
- New file ttydefs.h includes portability phrases from ved and bsh.
- Added an autoconf test for buggy termios.h in Next Step.
Next STep provides fully functional termios.h but tcgetattt(), ...
is missing in libc.
- Test for clock_t changed to deal with a bug in Next STep.
Next Step illegally needs sys/time.h for clock_t
- Make recently introduced symlink install use relative symlinks instead
of absolute symlinks.
- Change autoconf/statdefs.h to support nanosecond support for SCO
UnixWare and FreeBSD
- Call conf/mkdep-sco.sh via sh to be independent from 'x' bit.
- libschily/rename.c fixed for SCO Openserver fo avoid warning
for redefinition of MAXPATHNAME
- libschily/usleep.c fixed to avoid SCO Openserver warning about
non matchin prototype in system include files
- Better Portability for SCO UnixWare
- New platforms i486, i586, Pentium III, Pentium Pro
- Let strdefs.h also include strings.h for strcasecmp()
- Support for missing struct sockaddr_storage
- Support for broken wait3() (returns wrong timings)
- Changed broken portability Prototype support in libfile
to use 'makefiles / prototype.h' based system
- Changed fileopen() and filereopen() to avoid fdopen()
provlems (does not accept mode string that does not
match fd flags)
- Catch the case where somebody tries to compile on Solaris with
/usr/ucb in PATH before /opt/SUNWspro/bin and when calling 'cc'
results in:
/usr/ucb/cc: language optional software package not installed
- Trying to make the source get accepted by 'cstyle'.
- Changes in the general topic 'Stack Scanning' and the software signal
system handlecond()/raisecond() that make the software signal system
now usable on all platforms.
- Trying to support DOS with the DJGPP compilation environment
Thanks to Alex Kopylov <[email protected]> for the first version
of the port and further helping.
Note that in order to compile cdrtools on DOS/DJGPP you need smake-1.2a20 or newer.
GNU make does not seem to work for a DOS compilation.
- New File README.msdos
- New RULES for DOS/DJGPP
- Make some vars in align_test.c static because Mac OS X creates unneeded
name space pollution.
- DJGPP has no SIGBUS, use #ifdef in avoffset.c and align_test.c
- Several changes with casting Null pointer constants to Null Pointers
if they are used as parameters in var arg lists (see below).
- New gethostname() fallback emulation using uname(2).
- Better rename(2) emulation for Platforms that don't have rename().
- niread()/niwrite()/nixread()/nixwrite() in libschily now resets errno
to the old value in case EINTR did occur.
- README.msdos has been corrected according to a hint from Alex Kopylov
- New macros to platform independently set up integers in little endian
format. This is needed to e.g. write PC disk labels from big endian
platforms.
- Rules extended to support volume management libs
- The install-sh script not takes care about UNIX variants like SCO UnixWare
and SCO OpenServer that allow to give away files via chown.
If this works and /tmp has the sticky bit set, the root test was unable
to remove the test files later. For this reason, now a subdirectory
in /tmp is used.
- Support for the special .PHONY: target ---> needs smake-1.2a21 or newer
This helps to deal with files like INSTALL operating systems
like Win32 and Mac OS that don't honor file name case and prevents
the file named INSTALL to get into trouble with 'make install'
- 'make install' now works on operating systems that require a '.exe'
suffix for executable binaries
- Updated the file README.ATAPI
Updated information for Linux, SCO-OpenServer, SCO-UnixWare, Win32
and DOS
- mconfig.h now supports make COPTX=-DNO_FORK & COPTX=-DNO_VFORK
- snprintf() from libschily now correctly follows POSIX.1-2001 for maxlength == 0
- Workaround for a bug in the C-compiler from SCO-OpenServer. It
is not very probable that this causes problems with cdrecord. The
function getfp() did not return the correct Frame Pointer when called
as first function in another function as the compiler sdoes set up the
new stack frame after getfp() has been called.
- New function filemopen(char *name, char *omode, mode_t mode) with additional
mode_t parameter.
- update recent getargs() version from repository. This has been forgotten.
- Add a workaround for a SCO OpenServer C-compiler bug.
The bug causes the first function in a function to be called
before the new stack frame has been established and did cause
scanning the stack frame to fail.
- Make snprintf() POSIX compliant.
- Many typos in the READMEs fixed, thanks to a hint from Stefano Allrath
- New global method to handle PATH environment delimiters (":" on
POSIX systems and ";" on DOS).
- New README.msdos reflecting new features of smake-1.2a23 on DOS/DJGPP
- Some minor enhancements to the makefilesystem
- Some minor changes for better compilation in SGI IRIX
- Trying to start adding support for Win32/Mingw32
- New global #define NEED_O_BINARY to make using setmode() easier
- New autoconf test for struct stat.st_fstype
- New autoconf test for fnmatch()
- New autoconf test for blksize_t/blkcnt_t
- libscgily/stdio/io.h renamed to schilyio.h to avoid conflicts with
DOS.
- Added a Note to README.linux:
NOTE for all Linux 2.5.x versions and all Linux versions before 2.6.8:
Linux did ship with defective kernel include files starting
with 2.5.x. These defective kernel include files did prevent
compilation. If you have problems compiling software and see
error messages related to include/scsi/scsi.h & include/scsi/sg.h
either upgrade to Linux-2.6.8 or newer or remove /usr/src/linux
- Support added to the makefile system that allows compilation on
AMD x86_64 using non automake aware make programs like GNU make.
Note that smake ftp://ftp.berlios.de/pub/smake/alpha/ is able to compile
things even on unknown platforms as it includes auto make features.
Libparanoia (Ported by Jörg Schilling, originated by Monty [email protected]):
- Included a bug fix from the libparanoia Author.
Correctly allocate some arrays. Note: on 32 Bit machines, this patch does
not result in a different binary but the code is now really correct.
- New indentation is better conforming to 'cstyle'
- Fixed a bug in libparanoia that prevented the statistics to show up
the number of 'skips' (the number of exhausted read retries) when
SKIP verification has been turned off.
- modified to avoid GCCs shadowed variable warnings.
- Try to use page aligned transfer buffers if possible.
- Avoid buffer size problems wit non page aligned transfers on FreeBSD.
- Avoid freeing pointers that are not from malloc() by copying the data
to a second allocated chunk of free()able space. This has been a bug
introduced while trying to handle buffer size problems with non page aligned
transfers on FreeBSD.
Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt [email protected]):
Libscg:
- Reordered and restructured scsi-remote.c code to allow compilation on OS/2
and hopefully other OS like BeOS
- First attempt to support QNX.
Note that the sourcecode comes from QNX and it looks as if it
is buggy for commands that cause SCSI commands that result in
a Check Condition status. From looking at the source, the stack
gets overwritten in this case.
- SCSI adaptation layer for SCO UnixWare rewritten to support
multiple opens and to better follow the libscg interface standard.
- Second attempt to support QNX.
Make it compile
- Check kernel level error return codes on SCO-UnixWare
- Starting to support SCSI reset on SCO-UnixWare
- Extensions to libscg related include files to support DVD+RW formatting
- Make libscg work on SCO UnixWare if an application like cdrecord
has been installed suid root.
Before, the called administration programs did not work if euid!=uid
- Fixed a problem with possible garbage in the SCSI error string.
Thanks to Stefano Di Paola <[email protected]> for reporting.
- Fixed another printf buffer vulnerability in scsi-remote.c
- New version of scsi-amigaos.c from Thomas Langer
- Added a work around for a Solaris 9 x86 bug:
DKIOCINFO returns a max DMA size of 256 kB but only 68 kB will work.
Check max DMA size for a IDE disk to get a correct value....
For more information read the updated file README.solaris and the
new files README.solaris-x86-ata-DMA and README.solaris-x86-ATAPI-DMA
- Changed scsi-os2.c to allow 'cdrecord -scanbus' to find targets with
target ids > 7.
- Librscg now uses correct casting to a Null Pointer for execlp() as
NULL is a Null Pointer Constant but no Null Pointer. This could
make problems with some 64 bit architectures.
- New driver scsi-dos.c acting as 16 bit DOS ASPI interface
Thanks to Alex Kopylov <[email protected]> for the first version
of the driver.
Check his Web Page: http://bootcd.narod.ru/index_e.htm
it contains precompiled DOS binaries.
- The driver scsi-dos.c has already been verified with 'scgcheck'.
- scsi-os2.c and scsi-wnt.c now correctly return 0 from scg_send() if
the target is not valid.
- scsi-wnt.c does now support multiple SCSI opens.
- scsi-wnt.c does now correctly return SCG_NO_ERROR in case a SCSI command
returned CHECK CONDITION.
- scg__open() now prints a warning if it has not compiled with the results
from a certified autoconf environment.
- Introduced a fix to avoid the need for a #define ident prod_ident
for SCSI Inquiry data. This #define did cause problems with the
latest Sun Studio 8, C compilers
- First attempt to support running cdrecord while the volume management is
active.
- Increased version number to 0.8
- First attempt to work around the problems for suid programs introduced by
Sun with Solaris 9. Programs that like to issue a USCSI ioctl() need to be
root or get EPERM. Cdrecord did does up root privilleges eraly to avoid
security problems.
libscg now selectively runs the USCSI ioctl() as root if the program is installed
suid root.
- Fixed a bug in scsi-mac-iokit.c in scgo_havebus() that caused pxupgrade not
to work on MacOS X.
- First attempt to support the SPTI Ioctl interface on Windows NT.
see also http://www.ste-home.de/cdrtools-spti/
Thanks to Richard Stemmer, Jay A. Key and thomas podkanski
This allows to use cdrtools on NT without the need to install ASPI in case
you are administrator when yu run a program.
Please note that the use of SPTI is default. If you like to force using
ASPI, use dev=ASPI:b,t,l or dev=ASPI (in the -scanbus case).
If you like to force STPI, use dev=SPTI:b,t,l or dev=SPTI.
Currently, the interface does not yet fully matches the scg interface standard.
- Try to support the half hearted and badly designed /dev/hd* interface
from Linux-2.6 in a more usable way.
The only reason for adding this kind of support is that the Linux kernel
hackers reject to fix the known DMA bugs in the already existing SCSI
transport interfaces in the Linux kernel. Using /dev/hd* is unfortunately
the only way to get DMA with sector size being 2352, 2448 or similar.
Use cdrecord -scanbus dev=ATA and
cdrecord dev=ATA:1,0,0
Note: The Bus mapping function inside the kernel for this interface is
a dummy. For this reason, we need to do the mapping ourselves.
Busnumber is ("/dev/hd*"[7] - 'a') / 2
Target is ("/dev/hd*"[7] - 'a') % 2
Also note that creating this interface in the Linux kernel was a waste of
time. It did need a lot of effort to be created. Instead of first adding
a new interface with a new broken DMA implementation and later fixing
the DMA bugs, it would have been better to just fix the DMA bugs
in ide-scsi.c
Adding SCSI transport to something like /dev/hd* on an OS that includes
a generic SCSI transport driver is disregarding SCSI protocol layering.
A clean way to implement ATAPI on Linux would be to rather introduce a
SCSI hostadaptor driver that sends the SCSI commands via the
ATA hardware.
Linux users should think about buying a CD writer for Linus Torvalds.
Maybe this could help to get better SCSI support in the Linux. Currently
Linus doesn't know anything about the CD-writing problems on Linux and
his contributions to CD-writing related issues in discussions are just
guesses that are not related to own experiences and understanding for
the matter :-(
It seems that the Linux way of dealing with bugs is to implement a new
incompatible interface instead of fixing the known bugs from
old interfaces :-(
- Allow cdrecord -scanbus dev=ASPI and cdrecord -scanbus dev=SPTI to work
on win32.
- Correct a bug in the Win32 version analyze function that is needed to
use the correct SPTI interface. Unfortunately, the interface did
change with a NT-4.0 service pack. It is unclear whether the currently
used interface type is correct for all possible NT-4.0 variants.
- For Win32, default to STPI only if on NT-5.x as there is a bug in some
UDMA implementations that causes blue screens.
- The Mac OS X SCSI low level transport now roughly meets the interface standard.
For this reason, the file scsi-mac-iokit.c now is marked with Author "schily"
- Indented according to the cstyle standard.
- For win32, dev=ASPI:1,0 and dev=SPTI:1,0 work again
- Trying to add a workaround for the Linux problem with USB where the
kernel issues a request sense even when there was only a DMA underrun
and the drive replies as expected with no-sense. Our problem in this
case is that we needed to ad another workaround because sometimes
Linux clears the status byte and we did assume a CHECK CONDITION in case
sense[0] was != 0.
- Enhanced max # of SCSI busses to 256 for the Linux sg driver.
This was needed because of the (compared to Solaris) suboptimal
way of dealing with instance numbers on Linuux.
While Solaris keeps a data base with instance numbers, disconnecting and
reconnecting a USB drive results in the USB device getting the same
SCSI address as before.
As Linux does not have such a data base, disconnecting/reconnecting
a USB device has the unfortunate side effect of assigning a new and
different SCSI address with every USB connect. This also creates problems
when software likes to manage access rights to devices for non-root
users.
- Win32 SPTI interface now also supports controllers with more than one
SCSI Bus. Thanks to Richard Stemmer
- Fixed a bug in the Win32 SPTI/ASPI interface introduced with 2.01a28
that caused core dumps because it did try to access data behind the end of the
sense data array in the ASPI cmd structure.
- Scan /dev/hda../dev/hdz instead of /dev/hda../dev/hdt for dev=ATAPI on Linux.
- Trying to write a better warning message for the dev=ATAPI: interface
on Linux (the related kernel interface is unmaintained and does
not support DMA at all).
- Fixed a bug in Win-NT Version string handling in scsi-wnt.c
Thanks to Alex Kopylov <[email protected]>
This caused that libscg did not properly recognize NT-4.x with service pack 4
to be equivalent to NT-5.0 (Win2k).
- Trying to avoid using the WinNT-SPTI interface for NT-4.0
- Fixed a security bug in scsi-remote.c (the RSCSI client).
Rscsi:
- Support for IPv6
- Workaround for missing struct sockaddr_storage on SCO UnixWare
- Security update. Forbid to write arbitrary debug files, only allow
a debug file name that has been configured in /etc/default/rscsi.
Writing arbitrary files with a siud root program could be used to become
root on a local machine if you are already logged into that local machine.
- README.rscsi typo's corrected.
Cdrecord:
- Use correct set_mode_params() return value in deflt_writemodes_mmc()
- Correct a debug printing to go to stderr instead of stdout.
- Workaround for broken Firmware for LG (Lucky Goldstar) drives.
These drives have been unable to write Audio in TAO mode because
they have an illegal audio pause length default.
Thanks to a hint from: Mark Vytlacil <[email protected]>
- Man page now correctly describes the data formats used with -xa1 & -xa2
- Use Prototypes for functions with enum parameter in fifo.c to avoid
warnings on SCO UnixWare
- Trying to catch SIGHUP to avoid hung recorders after people
close X windows by accident (This in most cases happens because
some newer GUIs try try copy bad ideas from Microsoft like the 'x'
button on the top bar in the window.
- Trying to print hints if the SCSI error core looks like a buffer
underrun occurred.
- First (still mostly empty) driver for the Matsushita CW-7501
- First TAO writing support for the Matsushita CW-7501
- New option -setdropts to allow cdrecord to set driver specific
parameters and exit.
- Added support to disable/enable the Plextor PowerRec feature.
Use driveropts=forcespeed
Be very careful as this will cause in badly readable disks.
The only senseful reason to use this feature is to run tests in
-dummy mode to check whether the system would be able to record
fast enough and to later buy High-Speed Media.
Note that documentation for the related SCSI command is not
oficially available and thus the information has been "guessed".
- Added support to enable/disable the Plextor SpeedRead feature.
Use driveropts=speedread
to allow the drive to read CDs faster than 40x.
Be very careful as this may cause the media to break in the drive
while reading, resulting in a destroyed media and drive!
Note that documentation for the related SCSI command is not
oficially available and thus the information has been "guessed".
- Added support to enable/disable the Plextor SingleSession feature.
Use driveropts=singlesession
This allows to read defective (illegal) media with extremely
non-standard additional TOC entries. You need to enable Single Session
mode before you insert the defective disk!
Note that documentation for the related SCSI command is not
oficially available and thus the information has been "guessed".
- Added support to enable/disable the Plextor Hide CD-R feature.
Use driveropts=hidecdr
This allows to make CD-Rs look like CD-ROMs and applications believe
that the media in the drive is not a CD-R.
Note that documentation for the related SCSI command is not
oficially available and thus the information has been "guessed".
- Added reading out "real" Burn-Proof counter for Plextor drives.
Note that documentation for the related SCSI command is not
oficially available and thus the information has been "guessed".
- Try to do a more correct job when doing Buffer Underrun estimation
counts.
- Make the explicit Buffer underrun error checking work for
Plextor drives too.
- Fixed the command line parser for driveropts= parameters.
Before the fix, driveropts=noburnfree,hidecdr would result
in assuming: driveropts=noburnfree,nohidecdr
- Now also supporting SAO/DAO write mode for the CW-7501
- New option -lock (similar to -load) that loads the media but leaves
the drive in locked status.
- New driver interface to allow SAO recording for the CW-7501
Simplified: "dummy" and "multi" Parameter information has been
moved into the track structure.
- Removed the internal implication that -packet is a TAO write mode.
Please test! It may be that this did introduce bugs.
- Try to avoid ANSI C arithmetic conformance change warnings from
SCO C-compiler by introducing proper casting.
- Driver interface restructured to support aborting SAO recording
with the Sony CDU-948
- "Driver flags" printing corrected
- Better behavior with CADDY drives and -load option
- Fixed a bug that caused cdrecord not to abort if Tracks with unknown
length are present in RAW write mode.
- Print extended Power Rec Speed information for Plextor drives.
- CUE Sheet handling generalized to allow to implement SAO writing
for more drives.
- Start supporting the Sony CDU-948 in SAO mode. Currently not yet working:
- Multi-session
- MCN/ISRC
- Grace time handling restructured. The grate time waiting is now done
even before the forced blanking and it is made sure that the waiting
is done only once.
- Several changes in the open source part are visible as a result of the
new DVD+RW / DVD+R support.
- cdrecord-ProDVD now includes first DVD+RW and DVD+R support.
Check ftp://ftp.berlios.de/pub/cdrecord/ProDVD/
on Thursday 24.4.2002 for the first binaries
- Do not try to lower the possible number of open files in raise_fdlim()
anymore.
- Check return code of driver's init function.
- Better error messages from main write loop.
- Write a hint that a user may have used a "preformatted" CD-RW if
read_next_writable_address fails for the "invisible" track
and tell him to run cdrecord blank=....
- Fixed a bug that caused cdrecord to prevent a 3rd session on a
multi session disk. This bug was introduced with the driver
restructuring a few releases before.
- Better driver text strings for the driver IDs in the CD MMC drivers.
- Move Plextor PowerRec speed info completely to the statistics _past_
the recording activities.
- Allow more nonstandard Cue sheets to be accepted by the Sony CDU-924
and CDU-948.
- Implement MMC-3 DVD+ Drive/Media recognition to avoid that cdrecord starts
to treat a DVD+ as a CD-R because the DVD+ drive identifies as CD-R/RW + DVD-ROM
with "no DVD media installed" from a MMC-2 viewpoint.
- Added a note to the cdrecord man page how to use mkisofs
to allow cdrecord to knoe about track sizes in SAO or RAW mode.
- Fixed a multi session bug that has been introduced with the DVD+R/RW
restructuring with cdrecord-2.01a11. This bug caused cdrecord to be unable
to start a track from a sector number != 0 in TAO mode.
- Fixed a problem with cdrecord -msinfo introduced with the the DVD+R/RW
restructuring with cdrecord-2.01a11. The unwanted verbose printing has been
removed with this version.
- New option -xa to create CD-ROM XA mode 2 form 1 sectors with 2048 bytes
of user data
- New option -xamix to create mixed CD-ROM XA mode 2 form 1/2 sectors
with 2332 bytes of user supplied data.
- Restructured sector types to make them usable:
-mode2 CD-ROM data mode 2 - 2336 bytes
-xa CD-ROM XA mode 2 form 1 - 2048 bytes
-xa1 CD-ROM XA mode 2 form 1 - 2056 bytes
-xa2 CD-ROM XA mode 2 form 2 - 2324 bytes
-xamix CD-ROM XA mode 2 form 1/2 - 2332 bytes
To write conforming CD-ROM XA multisession disks use cdrecord -multi -xa1
together with mkisofs -XA -sectype xa1
- -cdi is now implemented how it should be: as a flat to change
the TOC type of a CD and not as a sector mode.
- Track parsing completely restructured to allow new features.
One of the features is to write audio CDs from a pipe,
other features will follow.
- Cdrecord now resets euid to the uid of the caller (if called suid root)
before it opens data files.
- Fixed a bug that caused cdrecord to insert two grace wait periods
if a disk was blanked and rewritten in one call.
- Allow cdrecord to copy audio CDs from a pipe from cdda2wav
without using an intermediate file on disk.
To copy an audio CD from a pipe (without intermediate
files), first run
cdda2wav dev=1,0 -vall cddb=0 -info-only
and then run
cdda2wav dev=1,0 -no-infofile -B -Oraw - | \
cdrecord dev=2,0 -v -dao -audio -useinfo -text *.inf
This will get all information (including track size info)
from the *.inf files and then read the audio data from
stdin.
If you like to write from stdin, make sure that cdrecord
is called with a large enough fifo size (e.g. fs=128m),
reduce the write speed to a value below the read speed of
the source drive (e.g. speed=12), and switch the burn-
free option for the recording drive on by adding
driveropts=burnfree.
- New option -abort allows you to send a write abort sequence to a drive.
This may help if other software did leave the drive in an unusable
condition.
- New 'xio' module allows to open a file virtually more than once to
support CDRWIN CUE sheets in cdrecord.
- Run Plextor Speedinfo SCSI command in silent mode as old Plextor drives
do not support this command.
- Workaround for a Plextor (Premium only???) firmware bug that may result
in a B0 pointer A5:A5:A5 instead of FF:FF:FF.
This made it impossible to blank a freshly written CD-RW witout reloading
the media. Now cdrecord does not check the disk size anymore if the number
of tracks to be written is 0.
- First CDRWIN CUE sheet support.
Cdrecord currently supports what is in the CUE sheet description in
the CDRWIN documentation (with a few exceptions). Note that the
examples in the rest of the CDRWIN man page are mostly illegal
if you compare them against the CDRWIN CUE sheet syntax documentation.
These exceptions are currently in effect:
- Only one FILE Line per CUE sheet file (This is compliant to the
CUE shet format documentation although the examples show CUE
files with more than one FILE line). NOTE that the CUE syntax has
been ill defined so that it would not make sense to e.g. use
more than one FILE line for audio CDs.
- The AIFF File type is not implemented (because I have no documentation
for this audio file format).
- The MP3 File type is not yet implemented.
- The CDG data type keyword will not yet work
- The CDI data type keyword will not yet work
- Only a sector size of 2048 will work with MODE1
- Sectors with sector size 2336 will not yet work
- POSTGAP will not yet work.
Note that the CDRWIN CUE documentation is bad and it is unclear how
formless (non XA) MODE 2 sectors should be made.
CDI is not a sector/track property but a disk property.
The File type BINARY vs. MOTOROLA is unclear.
To use the cue sheet feature call:
cdrecord dev=.... -v -dao cuefile=xx.cue
The main reason for implementing CUE sheet support was to allow to
write VCD/SVCD with cdrecord. It has currently tested with the
test SVCD from ftp://ftp.vcdimager.org/pub/vcdimager/examples/test_svcd/
Cdrecord should allow to write audio type CUE sheet based CDs also.
- Modified the notes close to the Copyright printing code in cdrecord.c
to make clear that this note is not a deviation from the GPL but just
a memorandum on how to understand the GPL.
- Fixed a bug in file descriptor handling that caused cdrecord not
to continue at offset xxx in the file after a new track did start.
- Added a forgotten feature in the CUE Sheet parser so it will now know that
WAVE files use swapped (intel) byte order.
- Restructured the main program of cdrecord so that cdrecord overall
behaves similar to before when cue sheets are used.
e.g. cdrecord -eject cuefile=xxx did only eject the disk instead of
first writing and then ejecting.
- Added some hints to the man page to make speed= handling clearer
- Fixed some typos in the man page
- Added the -format option to the man page
- CD-Text handling reworked:
CD-Text from textfile= or from CUE CDTEXTFILE wins over CD-Text
from *.inf files and over CUE SONGRITER.
- CD-Text from CUE file (either CDTEXTFILE or SONGRITER) now needs
-text in addition in order to be not ignored.
- Fixed a bug in the recognition for cdda2wav | cdrecord *.inf
that caused a message
WARNING: Stdin is connected to a terminal.
if not writing from a pipe.
- Small fix in auinfo.c to again allow compilation on K&R systems
- Typo fixes for the cdrecord man page
- The clone write code is now part of the GPL'd source
Note that this part of the code is now more than 2 years old but previously
has been excluded from the publically visible part of the source.
To understand how to use the clone mode read README.clone
- New option ts= to set the SCSI transfer buffer size
- Man page corrected to correctly mention current format for /etc/default/cdrecord
- call setmode(fileno, O_BINARY) for DOS/DJGPP also
- Better check if we use the FIFO to avoid core dumps with too small FIFO sizes.
- Switch off FIFO of fifo size is < 2 * SCSI transferbuffer
- Fixed a small bug in the man page (..sp instead of .sp). Thanks to Eric Raymond
for reporting!
- Work around for a problem in the Plextor 708 firmware (at least 1.01..1.02)
that caused cdrecord to be unable to recognize that a DVD medium is present instead
of a CD medium.
- Changed the GPL clarifications text in a way so Debian people still
agree with me that cdrecord is free software. The clarifications are
needed in order to tell people/companies (like Mr. Rosenkranzer,
RedHat & SuSE) who create broken branches from cdrecord that they are
not legally publishing their branches because they violate the
GPL § 2 Paragraph c) and GPL Preamble Section 6).
If would be better if the named persons/companies would rather stay
in contact to the Authors, discuss things and contribute to the
community instead of creating useless/broken changes and in case
of SuSE Linux even creating hacks that introduce security risks.
Note that now, RedHat Linux (enterprise server) or the SuSE Linux
are even more expensive than e.g. Solaris x86, see:
http://www.osnews.com/story.php?news_id=5416&page=5
Small Correction to this web page: Solaris x86 is free again for
personal use.
- Extended the man page to make it more clear that all CD/DVD-writers
ever made use only SCSI commands.
- Another change to the man page according to a hint from
Eric Raimond in order to get better compliance for troff -> "*ml"
converters.
- Allow people who cannot provide an e-mail address or who
don't like to support their modifications to modify cdrecord
- Some CUE sheet modifications in drv_mmc.c now made it into
the official SCCS history file.
- Several fixes to avoid the need for a #define ident prod_ident
for SCSI Inquiry data. This #define did cause problems with the
latest Sun Studio 8, C compilers
- Hack to work around a POSIX real time priotity design bug that
causes us to become root again on e.g. Linux in order to be able
to lower the priority of the FIFO background process.
- Better documentation and EXAMPLE for -setdropts driveropts=
in the man page.
- print a help message to direct the user to use -raw96r in case
the drive does not accept the cue sheet with -dao.
- Mark all drives that cannot be accessed because the volume management is
running and no media is in the drive with '?' instead of '*', so they
may be distinct from non existing drives.
Read README.volmgt for more information
- Now works again suid root on Solaris 9
- Fixed a bug introduced in 2.01alpha by a source consolidation.
cdrecord -toc did not work anymore for CD-ROM readers
- Updated README.audio
- Make the CUE Sheet handling search for a file name from a FILE statement
also in the directory where the CUE sheet is found (in case there is no
slash (/) in the file name from 'FILE').
- Avoid coredumps when cdrecord is called with -xd and there is no known
driver for the current drive.
- New option -tao is now needed if you like to write in TAO mode.
Cdrecord now does no longer writes if no write mode has been specified.
- New option -sao as alias for -dao. As the official name for the write mode
is SAO, -sao is more correct than -dao.
- Fixes for minor typos in cdrecord.1
- Fixed a bug with pad=xxx and pad sizes > 2 GB.
- Trying to fix a bug introduced lately with the check for specified
write mode options. As a result, only TAO mode writing did work.
- Better man page & online help for the ts= option.
- Fixed a typo in the man page.
- Better error messages when audio size is < 300 Sectors or needs padding.
Thanks to a hint from Stefano Allrath
- cdrecord -scanbus now checks for 256 SCSI busses
- cdrecord -scanbus now checks for 256 SCSI busses
This has already been announced for 2.01a28 but forgotten to include
- Some Man Page Fixes trying to avoid coding problems for non 7-bit ACSII
- Several typos in the man page fixed
- Man page enhanced to include a better documentation for the driver=
option.
- Several other enhancements to the man page
- modified to avoid GCCs shadowed variable warnings.
- Cdrecord now tolerates the OPC "error code" "Power calibration area almost full"
to not a real error.
- Fix for a bug that caused cdrecord to be unable
to reload the media for some drives.
The fix helps with the following problem:
Trying to clear drive status.
cdrecord: Drive needs to reload the media to return to proper status.
cdrecord: Cannot load media with this drive!
cdrecord: Try to load media by hand.
cdrecord: Cannot load media.
- man page enhanced
- Print the "Make sure you are root" only if root privilleges are missing.
- Avoid warning for not working nice() on DOS
Thanks to Alex Kopylov <[email protected]>
- -clone option documented in the man page. This has been forgotten before.
- Several typos in the man page fixed
- Do not try to call nice() on DOS/DJGPP
- cdrecord now tries to check the DMA speed if the drive supports to read the
drive buffer. If the DMA speed is not sufficient, then cdrecord requires
that burnfree is activated. If the environment variable "CDR_FORCESPEED"
is set or -force has been specified, then cdrecord does not try to enforce
that the available DMA speed is 2x the expected write speed.
- Make some symbols static to avoid problem with a badly designed libc on
OpenBSD that violates POSIX by pulluting the namespace with symbols
like 'pl'.
Cdda2wav (By Heiko Eißfeldt [email protected]):
- fixed typo in cdda2ogg.1
- Do not use uname() but gethostname() for portability.
- include unistd.h for abs()
- old Toshiba's usable again
- Multisession Non-CD-Extra disks now work again
Now also a lot more broken disks are readable again.
- not using ioctl in signalhandler any more
- trying to support sound on Win32
- Several changes (mostly OS/2 related) for more ask Heiko
- bugfix add cdda2ogg manpage,and script and makefile install target
- support BeOS shared memory and FIFO
- support soundcard output under QNX
- windows-users! Cygwin has fixed the bug introduced with 1.3.18. Please
upgrade to the new 1.5.3-1 release.
- call setmode(fileno, O_BINARY) for DOS/DJGPP also
- Now using the major() macro for some Linux duties.
WARNING to creators of Linux distributions:
It has _always_ been wrong to compile software only once for different
kernel versions (e.g. for compile Linux-2.4 and later install a
2.2 kernel on the so created system).
Now that Linux-2.6 introduces incompatible changes to kernel/user
interfaces, the resulting binaries will not work correctly anymore.
- Made CD-Text handling reentrant to overcome a problem triggered by XCDRoast
- Now works again suid root on Solaris 9
- Fix for a Bug that prevents paranoia statistics from being printed
because the paranoia statistics for the forked version has not been
inside the shared memory.