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
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
|
NEW features of cdrtools-2.0:
Please have a look at the German open Source Center BerliOS at www.berlios.de
BerliOS will continue to support free hosting of cryptography projects even
when US laws change and don't allow to host cryptography projects in the USA.
Also look at sourcewell.berlios.de, the first Open Source announcement service
that itself is implemented as Open Source project.
***************** Important news ****************************
For the 'Slottable Source Plugin Module' SSPM Features read README.SSPM
***************** Please Test *********************************
All:
- Now using the "Slottable Source" feature of the makefile system.
This is the fist modular reusable portable makefile standard
in the open source world.
To see a new feature call: "make tinfo"
- config.sub now recognises "parisc-unknown-linux-gnu"
- Circumvent some problems with GCC-3.0 on Linux
- Removed printf() definitions from schily.h to avoid type clashes
- Support for SCO (Caldera) OpenUNIX (aka. UnixWare 8)
- Better support for Darwin-1.3 and 1.4
This is:
- enhanced makefile system
- type casts needed for unusual types used on Darwin
(e.g. sizeof() returns long!)
- Schily support includefiles rearranged to make portability even
easier.
- mconfig.h now defines IS_SCHILY to signal users of the
Schily makefilesystem, that the Schily portability environment
is being used.
- now includes the forgotten mkdep-sco.sh that helps to better
work around the SCO C-compiler.
- timedefs.h modified. Now the last schily portability support include
file hast been reworked to make portability even much easier.
- schily.h & standard.h have been modified to hopefully finally solve
all type clash problems with size_t & spawn*()
- Compile support for QNX Neutrino
- Now we hopefully have floating point support for _all_ platforms
even those without *cvt() and without __dtoa(). Thanks to a hint
from Thomas Langer <Langer.Thomas@gmx.net> we now use strtod.c
to gert a fallback __dtoa()
- Added an autoconf test for rcmd() so cdrtools now should compile
again on BeOS and AmigaOS where no rcmd() is present.
- fixed fexec.c to make it compile ion QNX
- Now the complete libschily is included although it it not needed
for cdrtools. There are two reasons for doing this:
- Cdrtools is _the_ program that is heavily tested on
many different platforms, so I will get reports for
compile problems this way.
- cdrtools becomes a base docking platform for the SSPM
system this way. Now any of the Schily tools may be included
and compiled inside the base portability platform 'cdrtools'.
- New supported architctures:
s390-linux-cc.rul parisc-linux-cc.rul parisc64-linux-cc.rul
- Large File support for IRIX-6.2 (added autoconf test for -n32 cc option)
- Large File support for IRIX-6.5 now everything works correctly if the
OS supports Large Files by default in 32 bit mode (uses fseeko()/ftello()
if present. This could only be done by massively changing the autoconf code
stolen from GNUtar.
- Support for SGI IRIX platform ip17-irix
- Support for SGI IRIX-6.5
- Try to support recent BeOS (again)
- Workaround in libschily/comerr.c for the nonstandard
big negative errno values on BeOS
- libschily now includes floating point printf() for BeOS
- fileluopen.c from libschily now compiles on BeOS (without O_NDELAY)
- workaround for the nonstandard negative errno values on BeOS
- Schily makefile RULES for AmigaOS added
- getpagesize() emulation for BeOS to make cdda2wav compile on BeOS
- New rule allows automatic fallback to GCC if the configured
default compiler could not be found.
- statdefs.h enhanced
- Many corrections to give less warnings on SCO Openserver
- Support for NT-5.1 (WIN XP) added os-cygwin_nt-5.1.id
- VMS script build_all.com now includes astoll.c so compilation
on VMS should work again.
- New macros for max/min values of int*_t in utypes.h
- Limit the different handling of packed bitfields for AIX to AIX CC.
- Unfortunately fragementation of cdrecord has begun.
I noticed this fact recently when people started to ask me
senseless things which turned out to be a result of
a modified cdrtools source that I have not ben aware of.
One main goal of cdrtools is to provide a platform indepenant
user interface which cannot be achieved if people change important
parts os the user interface.
For this reason, I changed the license in hope that this will
help at least to keep the user interface the same on all
platforms and on all distributions.
Please keep in mind that fragmentation in many cases increases
my workload. There is no real reason for a modification,
and (even worse) the people who create modifications do not help
to keep my workload low in order to help me (and Heiko and James)
with the cdrtools project. People should rather contribute to
the project. Cdrtools should be free and actively mantained
in future. With increasing workload, I don't know how to do this.
- Add hints that compiling on unknown platforms wil only work if
"smake" is used.
- Autoconf code for Large file support now handles Linux system include
file bugs that prevented correct behavior on 64 Bit Linux systems.
- Better autoconf code for the problems with mlock() & HP-UX-10.20
- Better autocheck code for available C-compilers on HP-UX
Now even a fallback from GCC to CC works.
- Some changes to make compilation on 64 bit systems more correct
- Added support for GNU Hurd to the Schily Makefilesystem
- Cast pointerdiffs to int for printf() %.*s format and/or include
workarounds for 64 bit problems in this area.
- Several modifications to make OS/2 work again
(e.g. -lsocket added)
- fexec.c now uses a configurable PATH environment separator
to allow PATH lookup on OS/2
- A 20 year old extension has been removed from format.c
This caused printf() to interpret %X as %lX. This caused noticable
problems on IA-64. It should have created problems on True64
and on 64 bit Sparc programs too but was not directly visible
due to a different stack content.
- remove #elif to avoid a GCC-3.x warning
- config.sub now knows about IA64 architecture
- Makefilesystem now spports compiler specific optimization flags
- Align_test.c now creates a better include file (using more () to
make sure the compiler created correct code).
- Makefilesystem changed $(MAKE) to "$(MAKE)" to allow spaces
in pathnames
- Correct autoconf test for broken OS like MAC OS X that do not
allow local malloc() implementations due to linker bugs.
- Add autoconf test for strange clock_t definition method on Linux
- README.ATAPI enhanced for all platforms
- README.ATAPI now contains a hint on how to use ATAPI drives on HP-UX-11.x
- Support for FreeBSD on Ultrasparc added to the makefile system
- *roff'd man pages in .../doc dir re-created
- Try to work around a bug in OpenBSD.
OpenBSD defines EOF in ctype.h but POSIX only mentions an EOF definition
for stdio.h. If we include ctype.h bfore schily.h on OpenBSD while
stdio.h has not been included, this will fail.
/*--------------------------------------------------------------------------*/
Libparanoia (Ported by Jörg Schilling, originated by Monty xiphmont@mit.edu):
- The paranoia code from cdparanoia (written by Monty xiphmont@mit.edu)
has been converted into a portable library.
/*--------------------------------------------------------------------------*/
Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de):
- Changed to allow compilation on K&R compilers too
- Speedup by 300%
The speedup is nearly processor independant.
Pentium-233 2443 sectors/s 32x
333Mhz-UltraSparc-IIi 6402 sectors/s 85x
900Mhz-UltraSparc-III+ 22813 sectors/s 304x
Athlon-1000 24378 sectors/s 325x
Athlon-1700 40168 sectors/s 535x
Depending on the speed of gettimeofday(), these numbers may be up to 5%
too low.
- Code is now put under GPL.
/*--------------------------------------------------------------------------*/
Libscg:
- Trying to add a workaround for just another bug in the
sg driver in the Linux kernel. If a TIMEOUT occurs,
the error code does not indicate a TIMEOUT.
- Better scg_open() error messages when trying to do scanbus on Linux
and no /dev/sg* or /dev/pg* could be opened.
- Output Request Sense buffer with -debug when the USCSI interface is
used on Solaris.
- First attempt for support for the new IOKit SCSI interface on MaxOS X
Darwin-1.4 and newer with much much help from
Constantine Sapuntzakis <csapuntz@Stanford.EDU>
Unfortunately there is not yet support for SCSI devices nor
is there support for standard Bus,Target,Lun device namings.
I hope that bot may be added in the future.
Volunteers who like to help with the libscg interface stuff
for Darwin-1.4 are welcome.
- Try to make scsi-beos.c compile on new BeOS version 5
- First attempt to integrate the AmigaOS SCSI transport interface code
from Thomas Langer <Langer.Thomas@gmx.net>
- Massive modicifation of the support code for SCO OpenServer 5.x
As the kernel implementation contains several bugs,
the new code will by default not check for hard disks in scan mode.
The code checks the following environment variables:
"LIBSCG_SCAN_ALL" To force scanning for all SCSI targets.
"LIBSCG_SCSIUSERCMD" use old SCSIUSERCMD ioctl()
"LIBSCG_MAX_DMA" override MAX_DMA value, value must be number in kB
"LIBSCG_ENABLE_USB" enable access of USB devices
- Version -> 0.6
- Adding support for the CDROM_SEND_PACKET ioctl() from cdrom.c
Thanks to Alexander Kern <alex.kern@gmx.de> for the idea and first
code fragments for supporting the CDROM_SEND_PACKET ioctl() from
the cdrom.c kernel driver. Please note that this interface in principle
is completely unneeded but the Linux kernel is just a cluster of
code and does not support planned orthogonal interface systems.
For this reason we need CDROM_SEND_PACKET in order to work around a
bug in the linux kernel that prevents to use PCATA drives because
the kernel panics if you try to put ide-scsi on top of the PCATA
driver.
The code is currently in "status nascendi" but usable with some trade offs.
To use: call e.g.
cdrecord -scanbus dev=ATAPI:
cdrecord -dao -v speed=24 dev=ATAPI:0,0 ....
Be careful! This code is only needed in order to be able to use
PCATA CD-writers on notebooks because there is a severe kernel bug.
Unfortunately, this bug causes the kernel to hang (and force you
to reboot) if you try to call:
cdrecord -scanbus
without the dev=ATAPI: option.
In this case cdrecord will hang infintely and unkillable
in open("/dev/sg1", 2) => you need to reboot :-(
Repeat by: Insert a PCATA CD-Writer in a Sony VAIO notebook and run
cdrecord -scanbus.
- Enhanced list of SCSI Error texts from SCSI standard from 29.5.2001
- New callback function to allow execption handling to be done after
the current SCSI command did finish.
- scsi-aix.c now uses UIntptr_t in alignement macro.
- Some 64 bit casts in the USCSI code from scsi-sun.c
For hints on the Linux Packet code in ide-cdrom.c read README.ATAPI
- Introduce a workaround for a conceptional Bug in the Linux kernel
SCSI implementation.
Linux is unable to distinct between a target selection timeut (e.g. switched
off target) and a command timeout (e.g. command needs more time than expected).
If the detected command time is < 1 second, libscg will now assume a dead target.
- Fix a bug with ATAPI in scsi-vms.c - now the SCSI status byte is OK
Thanks To Eberhard Heuser
- Allow up to 26 IDE controlers in scsi-vms.c - Thanks to Chip Dancy
- Do not open all /dev/scg* devices on Solaris if not in Scanbus mode
- Handle ENXIO in Solaris USCSI interface code as indicator for a
switched off device.
- Max DMA size for Linux ATAPI Packet interface code corrected.
Max DMA is 128k-1 and not 128k.
- Support for recently defined new SCSI target types found in SCSI
standard.
- New help system that lists all SCSI low level transports for a specific
platform together with their properties.
- Allow consistent usage of alternate SCSI transport layers.
Now the Solaris USCSI implementation and the (SuSE) Linux ATA implementation
behave similar and both allow dev=<Transport> as well as dev=<Transport>:
for -scanbus, e.g.
cdrecord dev=USCSI -scanbus
cdrecord dev=USCSI: -scanbus
cdrecord dev=ATAPI -scanbus
cdrecord dev=ATAPI: -scanbus
all work the same way.
- Small change for Linux device initialization by request of Linus Torvalds
The purpose of this change is to support a new SCSI transport interface
for ATAPI in Linux that came up with the latest developer Linux kernels
(e.g. Linux-2.5.43). This interface allows to send SCSI commands directly
to ATAPI drives without using ide-scsi and sg, but it has several pitfalls.
While Linux allows to use DMA when using ide-scsi and sg if the
sector size is 2048 and the transfer buffer starts page aligned, the new
direct interface never uses DMA (acording to Linus Torvalds). So if you
write audio CDs or data CDs in RAW mode, there is no difference. If you
write data CDs in TAO or DAO mode, using ide-scsi and sg allows much
higher write speed. Note that this may change in future....
Notes for use:
- You need to specify something like dev=/dev/hdc
Note that this is unsupported by libscg.
- As long as there is no safe way for libscg to find out early that
this new interface is used, libscg may hang a bit on open.
This is caused by the fact that libscg is forced to read
from the open filedscriptor to clean up old Linux sg driver
interfaces. This was never a problem with /dev/sg*, but
when doing the same thing, this causes libscg to read content
from /dev/hd*
- There is (currently) no way for cdrecord to scan for ATAPI
devices when using this interface.
As long as this is true, you may want to prefer to use
cdrecord dev=ATAPI: -scanbus
and
cdrecord dev=ATAPI:0,0 ...
instead.
- Fix scsi-unixware.c to allow multiple opens.
- Fixed several typo's.
- Avoid to read from the media (when using the new experimental
Linux ATAPI transport) while trying to clear old sg driver status.
- Woraround for Linux kernel design bug: CDROM_SEND_PACKET sets errno
to EINVAL in case SCSI sense key is "Invalid command".
/*--------------------------------------------------------------------------*/
Rscsi:
- RSCSI now works if the target is a Win32 system.
This is not done by changing rscsi.c but by fixing a bug
in Cygwin!
The fix to Cygwin's rshd is posted in
http://sources.redhat.com/ml/cygwin-apps/2001-05/msg00000.html
Thanks to egor duda <deo@logos-m.ru>
NOTE that in a few weeks this patch will be integrated into Cygwin
and cdrecord/RSCSI will work out of the box on a recent Cygwin release.
- Now prints user ID & user Name into DEBUG file
- Now using signal safe read/write functions.
- Code now checks for HAVE_NETDB_H (added by request of
"Thomas" <Langer.Thomas@gmx.de> to help with AmigaOS port)
This should indicate whether there is support for rcmd()
in the OS.
- Make it compile on BeOS
- changed because GNU Hurd has no MAXHOSTNAMELEN
- Return "PIPE" for hostname comparison if called from e.g. 'sshd'.
/*--------------------------------------------------------------------------*/
Cdrecord:
- New option -overburn
This option has been added as many people seem to be unabe to understand
that they are going to write more than the official disk capacity from
reading cdrecord's output. Oveburnung now is no more done by default!
NOTE that there even are some drives that prevent you from writing
exactly the official size and stop several hundreds of sectors before.
- Do not print a warning for writing more than 90 minutes if the media is
a DVD
- Fix for a problem with setting high priority on Win32 systems.
Thanks to egor duda <deo@logos-m.ru>
- Sony MMC drives now work in -multi session mode.
There was a bug in cdrecord that was accepted by all other drives.
The bug did cause a temporary bad setup to the drive.
- I hope that the 90 minute CD capacity warning now will finally
disappear for DVD writers.
- Old test code removed that prevented cdrecord from being able
to write manually configured indices. Note that the index lists
from the *.inf files with using the -useinfo option alway worked.
- -force will force cdrecord to ingnore any failed forced OPC.
currently this is only done if the drive does not support
forced OPC.
- Do forced OPC before blanking a CD-RW
- Driveropts "burnproof" renamed to "burnfree".
This has been done as this technology now appears in the MMC standard.
- Cdrecord now shows whether BURN-Free is active. This makes
sense as Ricoh's "Just-Link" is enabled by default.
Unfortunately, the way "Just-link" is implemented is not compliant
with the MMC standard. We will have to wait until I get the needed
information from Ricoh.
- Support for MMC RAW mode writing.
This allows to do disk at once recording on Philips drives that
do not support SAO.
You may write audio tracks in RAW mode. There are some new
and most likely transient options:
-raw16 Write 2352 Bytes sectors + P+Q Subchannel
-raw96r Write 2352 Bytes sectors + P+W Subchannel (R-W in raw mode)
-raw96p Write 2352 Bytes sectors + P+W Subchannel (R-W in packed mode)
Indices are fully supported in RAW mode.
MCN & ISRC are not yet suported in RAW mode, they are silently discarded.
I know that cdrecord currently does not work in RAW/R96P mode.
It is not clear whether this is a bug in cdrecord or in the Plextor
firmware as I did not yet found another drive that claimes to support
RAW7R96P.
If you find other problems in RAW mode or if you find
new bugs introduced in old write modes, please send a bug report.
- Cdrecord now checks the properties of the writer. If a specific write
mode is not supported by the writer, cdrecord warns you and makes
a suggestion for a similar alternate write mode.
With the curent structure of cdrecord, it is not possible to silently
e.g. change the write mode from -dao to -raw96r
- MMC compliant drives are automatically scanned for supported write modes.
This should help to make cdrecord work without manual static configuration.
My hope is still to have no need to know all drive properties in
advance, so new drives will continue to work as long as they
are standard comliant enough for cdrecord.
NOTE for GUI implementors:
the line starting with the text:
"Checking possible write modes:"
will go away in the near future.
The line starting with:
"Supported modes:"
will remain and should be checked for possible write modes.
- Fixed a bug in the option checking that prevented to write
data CD's at all.
Now only "RAW data" CD's are flagged as expected.
- Fixed a bug in the Firmware bug recognition system.
This bug did prevent cdrecord to work with Philips drives
when writing in RAW mode.
- New options -copy & -nocopy to allow to modify the 'copy' bit
in audio subchannel data.
- -scms option added to the man page and online help.
- New model to compute SCSI transfersizes
- -xa1 -xa2 sector typedefinitions changed.
- Debug messages while checking possible write modes of MMC
compliant made optional.
- RAW writing scatter sector function made more general
- New functions to convert between 2448 and 2368 byte sectors
NOTE: Read README.raw
- add a forgotten if (xdebug) in drv_mmc.c.
This caused a superfluous write mode debug message to be printed
- do installation of exit handlers (to reset SCSI state) earlier
- Cdrecord now does not exit with 0 anymore when interrupted with ^C
during the waittime before starting to write.
- First CD-Text support (can only copy CD-Text information from master
disk)
Writing of CD-Text is supported for all drives that support
CD-Text in SAO write mode and for all drives that support
to write in RAW/RAW96R mode (use -raw96r in this case).
NOTE: Read README.cdtext
- Circumvent a bug in the system include files from Linux that
makes printf() a macro and prevented compilation with GCC-3.0
- Added some #include <stdio.h> to substitute missing printf() definitions
- SAO/R16 mode removed from tests, it may never occur.
- Changed some .min defines in structs to .pmin to avoid K&R complier
problems
- better FIFO debug messages
- New driver config table for Taiyo Yuden EW-50.
This dive is like a Philips CDD-521 but has been reported to
swab audio data.
- rscsi client code now uses buffered read to speed up on Cygwin
- rscsi client code now uses signal safe read/write functions
- Cdrecod now does not open/close the tray anymore if the disk
is going to be erased.
- modify -version output if Clone writing support is present
- A new driver has been added that first checks the media if the drive
supports to write CD & DVD.
- Behaviour of the function that reads fs= tsize= and similar
corrected.
- Modified driver interface for better DVD support
- FIFO Code now checks for HAVE_FORK (added by request of
"Thomas" <Langer.Thomas@gmx.de> to help with AmigaOS port)
- Better messages when trying to write more than the amount of data
that fits on a DVD.
- The DVD driver now reports a DVD media back to the high level code.
- correctly use the buffer capacity code from the driver instead
of the MMC-2 read buffer cap code directly
- Support for the unusual not ready error code of the CyberDrive CW038D
- CD-Text Code now also accepts Text File without 4 byte Size header
- CD-Text file read code now is able to do CRC error correction
Note that only songle bit errors per 18 byte pack.
- CD-text Autoring support:
CD-text may now be based on fields found in the *.inf files
created by cdda2wav.
To create a CD with CD-Text based on information from freedb.org
call:
1) cdda2wav -B -v255 -L
2) cdrecord {-dao!-raw96r} -v -useinfo -text *.wav
CD-text TODO:
- Check whether the *.inf files are all from the same CD
and clear some CD-text fields that are only valid if
they relate to one CD only.
- Add some more fields (mainly a dficiency of cdda2wav)
- Support multi language text
- Support character coding other than ISO-9959-1
CD-text may be based on fields found in the *.inf files
created by cdda2wav.
NOTE: Read README.cdtext
- better messages for CD manufacturer codes that are not in the
latest free Orange forum table.
- Default usage code is now only 6 lines so the error message
does no longer scroll out the screen. If yu like to get the old
long usage information, call cdrecord -help
- move 'dd' like number conversion stuff into getnum.c
- Allow the /etc/default/cdrecord parsing code to be used by
readcd too (as documented in the man page)
- First support for Plextor's VariRec feature in the PX-W4012
I am not sure about the final user interface.
For now, call e.g. cdrecord speed=4 driveropts=varirec=-1
for all audio CDs. Allowed varirec parameters are -2, -1, 0, 1, 2
VariRec only works at write speed 4.
- Print the actual current write speed in verbose mode.
- DVD-R code (undisclosed) now supports:
Vendor_info : 'MATSHITA'
Identifikation : 'DVD-RAM LF-D310 '
Revision : 'A116'
- Support for SCMS from *.inf files
Note that you need to use cdda2wav/cdrecord that have fitting versions
because of this change. Otherwise cdrecord may add SCMS copy
protection.
- RAW mode now honors COPY bit and SCMS coding.
- Avoid coredump with "cdrecord textfile= non/existant ..."
- Corrected printf() formats for verbose printing to hold enough
space for media > 1 GB (DVD)
- Corrected printf() formats to make the write speed non-jumping.
- If called from a GUI, cdrecord now reads from "stderr" if
the CD-input-data is from "stdin".
If it turns out that stderr is not open for reading, cdrecord
waits to receive a SIGUSR1
- Better printouts for the DISC-ids covered by the orange forum embargo.
- DVD structure structure definition enhanced to reflect
current standard.
- new option gracetime=
- Try to abort DAO recording with a flush_buffer() if ^C is hit.
- Try to make cdrecord behave more polite for platforms (like Cygwin)
that don't support large files when the DVD data to be written
is read from stdin.
mkisofs ... | cdrecord ... -
will now work for DVDs on non large file OS
- Call flush buffer in silent mode to avoid error messages with
cdrecord -toc called on a CD-ROM drive.
- Avoid core dump is a single .inf file is missing and -text
option is used.
- Data structures modified to allow new features in the future.
- Fixed a bug that caused cdrecord to ignore escaped file type
args if they looked like a valid option (e.g.):
cdrecord dev=0,0 -dao -v -- speed=8
"speed=8" should be handled as if it was a filename but was
skipped.
- Print write mode when starting to write.
I hope that this helps me to understand incorrect "bug reports"
from lazy people who do not include their cdrecord command line.
- Printing ATIP information is now caused by a separate (internal) flag
and not ny a hack.
- Do not allow to write to ultra low speed RW media if the drive
is not able to write at 2x or 1x. This may be circumvented
with -force.
- Do not allow to write to high speed RW media if the drive is not
a high speed RW drive. This may be circumvented with -force.
- Data structures modified to allow new features in the future.
Trying to make driver interface simpler and cleaner. This resulted
in a major rewrite of the driver interface.
- please test if multi session with TEAC CDR-50/CDR-55
still works.
As a lot has been changed in the driver interface, please test
if bugs have been introduced!
- New test that prevents to write CD-RW media too slow
- Display of current DVD write speed now correct and no more based on
single speed CD but on single speed DVD.
- Moving SAO/RAW start code from cdrecord.c into drv_mmc.c
allows clean DVD-R/RW driver interface code.
Now cdrecord -dao will work correctly (as expected) even for DVDs
- speed= option no longer defaults to speed=1
Each driver now includes a default speed and a maximum speed.
If the maximum speed in the driver is wrong, use -force to overwrite.
Please send feedback if my assumptions on write speed are wrong:
- No drive using the Philips CDD-521 command set is faster
or slower than 2x
- No drive using the Yamaha CDR-100 driver is faster than 4x
No drive using the Yamaha CDR-100 driver is slower than 2x
- The Tayo Yuden CW-50 is 2x
- The Kodak PCD-600 is 6x
- Abort when the last track # of a multi session disk would be > 99
- Data structures modified to allow new features in the future.
- Better bessages for CD-RW where the speed ofthe media does not match
the properties of the writer.
- Avoid to reload media in -dummy RAW mode.
- Correctly abort if there was a problem when writing CD-Text in the LEAD-IN.
- Again: Data structures modified to allow new features in the future.
This release uses the new data structurec to allow to write ISRC/MCN
in RAW mode.
- Fixed a bug that caused cdrecord to write a wrong relative time
into the subchannel data when writing audio CDs in RAW mode.
This affected the pregap sectors if pregap size was != 0.
- Allow cdrecord to write ISRC & MCN even in RAW mode.
- Allow Simulation driver cdr_simul and dvd_simul to simulate any write
mode.
- Simulation driver cdr_simul and dvd_simul changed so no reload on the
real background drive occurs.
- Since last release , the new data structures allow to write
ISRC/MCN in RAW mode. This now makes RAW mode fully usable for
audio CDs. NOTE: if you find any problems with CDs written in SAO
mode, first try to write the same CD in RAW mode if your
drive supports to write in RAW mode. Tere are a lot of drives
that have rotten firmware and create broken CDs in DAO mode.
- Support for Yahama Audio Master Quality Recording.
This support is switched on via driveropts=audiomaster
I am sorry, but I had to do major changes in the MMC
driver in order to be able to support Audio Master.
This may have affected all other driveropts=
too. Please test and keep in mind that I like to have
the mext major release in a few weeks.
When audiomaster has been specified, BURN-Free recording
is disabled and - as the visible size of the medium
decreases - a second disk size check is done after
Audio Master has been turned on.
- man page enhanced according to new features
- Short Usage funtion now includes a hint on how to
obtain the list of possible driveropts= parameters
- Include the tags
"VARIREC ", "AUDIOMASTER ", "FORCESPEED "
In the "Driver flags" line that is visible with
cdrecord -checkdrive.
- cdrecord driveropts=help now includes
"varirec=" and "audiomaster"
- Support for writing data sectors in RAW mode has been added
to the GPL#ed version of cdrecord.
Note that writing data sectors in RAW mode is a highly CPU
intense task. For this reason, cdrecord first checks whether
it would be possible to do the requested job reliably.
If it is questionable whether the job could be done in the
desired speed, cdrecord aborts with a related message.
The max theoretical speed (not including the writing load)
is printed in a new line starting with: "Encoding speed :".
Cdrecord allows half of this speed.
- Allow RAW writing of data sectors to work correctly without
the need of specifying -data
- Allow spaces as delimiters between different tags in a single
line in the file /etc/default/cdrecord
- Support for Ricoh (and others) Just Link
This support is switched on via driveropts=burnfree
Note that Just Link is by default swichted on in the drive
but as Just Link may create CDs that are no 100% OK,
cdrecord now by default switches it off. Now you definitely
need to specify driveropts=burnfree to switch Just Link on
again.
If you call cdrecord dev=... -checkdrive you will see
the TAG "BURNFREE" as a hint that either Burn-Proof or
Just Link is supported.
- "Turning .... " messages for drive special functiions are
now printed to stdout
- Limited display (once every 1 MB) of the drives internal buffer
RAM fill ratio.
- Display the minimal drive buffer fill ratio a the end of the write
process.
- Display number of predicted drive buffer underruns based on the
fill ratio of the drive buffer (incremented if fill ratio is < 5%).
- Display average write speed at the end of the write process.
In dao mode, this includes the time needed to write the lead in and
thus is not 100& correct (value is too low).
- Display of the number of times the Buffer underrun protection
has been active for drives where the manufacturer send me the needed
information (Ricoh, Yamaha, Aopen). It may work for other drives too
but there is no guarantee.
- Fixed a bug in the driveropts= parsing routine.
- New driveropts= option "forcespeed". Use with extreme care as this
will force several drives ((Ricoh, Yamaha, Aopen, ...) to write with
the selected high speed although the mediaum is too bad for this
operation.
- New driveropts= option "tattooinfo". Use together with -checkrive
to retrieve the information about the picture size that will fit.
The result will be someting like:
DiskT@2 inner r: 265
DiskT@2 outer r: 583
DiskT@2 image size: 3744 x 318 pixel.
- New driveropts= option "tattoofile=". Use together with -checkrive
to write an image of the right size to disk.
Read README.DiskT@2
- Rearrange the order of the new statistics printing
- Allow several of the new statistics to be printed even if cdrecord
aborts due to an error.
- Let the old Philips drive use the common CD media 'reload' function.
- Try to find out if a drive is MMC, MMC-2 or MMC-3 compliant.
- see cdrecord -checkdrive
- Suppress printing oof the average write speed if the size of the
tracks is not known prior to start CD writing
- ATIP printing (cdrecord -atip) enhanced to support Ultra high speed
CD-RW media.
- Check whether somebody likes to write a Ultra high speed CD-RW on
an improper writer
- Print MMC conformance level of the drive based on content of
SCSI mode page 2A.
- Print more information for MMC-2 & MMC-3 drives with cdrecord -prcap
- The new true CAV Plexwriter 482448 is now supported.
Please note that it is not easy to write at 48x. You definitely need
a correct DMA setup to optimal values.
Also note switching on Burn-Proof will reduce the max speed to 40x
so it may be that you don't need Burn-Proof if you simply reduce speed
to 40x manually
- make sure that using both -copy and -useinfo will not result in unclear state
Instead the content of the *.inf files will be used
- Simulation driver (cdr_simul / dvd_simul) now uses correct speed ratio
for DVDs
- Simulation driver now supports fake "Next writable address" function.
- On Linux usleep() is very unacurate, meter the real sleep time
and cumulate a correction value. This allows the simulation driver
to simulate the correct write speed.
- Added a note to Heiko Eißfeldt's libedc when printing RAW encoding speed
- Limit gracetime to 999 seconds and make output correct even for
times > 9 seconds.
- Corrected a bug in the MMC driver that caused cdrecord to use the
wrong place for current speed when doing MMC/MMC-3 dependant stuff
- cdrecord -prcap will now use the same format for MMC & MMC-3 drives
rsulting in a better readability.
- Don't print write time statistics if writing did not yet start
- Try to handle drives that don't support to write at speed 1 but
will fail if you try to call cdrecord speed=1 ...
- New option -immed tells cdrecord to set the SCSI "IMMED" flag in certain
commands.
This option is not needed if your PC has been configured correctly.
However, ATAPI drives usually cannnot do disconnect/reconnect.
As a result, the PC may hang with long lasting commands if the CD-writer
has been connected to the same IDE cable as the harddisk. A correct
solution would be to set up a correct cabling but there seem to be
notebooks around that have been set up the wrong way by the manufacturer.
As it is impossible to fix this problem in notebooks, -immed has been
added. Use this option with care and do not expect cdrecord to work
correctly if it has been called with -immed.
- -force will not completely removeany speed restrictions for writing in RAW
mode. Instead, only the speed that a single CPU allows will be permitted
by cdrecord. This still has a high potential for a buffer underrun.
By default cdrecord still is limited to half the encoding speed that
a single CPU allows. Even this may result in a buffer underrun on Linux
as Linux does not use DMA for IDE when the sector size is != 2048 bytes
which is true in RAW write mode.
- If the environment variable "CDR_FORCERAWSPEED" is set, this will have
the same results for RAW speed as using -force. However, -force has more
general effects and should be avoided.
- Fixed a bug in fifo.c introduced with the driver interface change.
Now cdrecord compiles again on VMS (without FIFO).
Thanks to Eberhard Heuser.
- Allow cdrecord to compile without libedc
Thanks to Eberhard Heuser.
- Run read buffer capacity in silent mode.
This is needed because drives with buggy firmware like the CW-7585
did cause hundreds of "command sequence erorrs" to be emmited when
trying to read the current drive buffer fill ratio.
- Fixed man page to correctly call SAO mode SAO and not DAO.
- Encoding speed is contend dependant. Initalize test buffer
before doing a libedc speed test to make the result independant
from grabage on the stack.
- Support for libscg help system
- Warn to use cdrecord blank=all if a drive rejects cdrecord blank=fast
- Fixed a bug that became obvious with Yamaha AudioMaster mode and CD-Text
The problem was caused by the fact that cdrecord did not allow to overwrite
the lead in start time in cdrecord's internal data structures.
- Fixed a bug with recognition of complete disks that came up after cdrecord
did allow to deal with >= 90 minute CD's.
- Changed Text "BURN-Free was not used" to "BURN-Free was never needed" because
people did believe that the old text means that Burn-Proof has been disabled.
- Man page now includes a hint that padsize is always using 2048 as sector size.
- Fixed a bug with padsize=xxx if sector size was not 2048 bytes.
Cdrecord in this case did just divide the number of pad bytes by the
number of bytes in an output sized sector (e.g. 2448 or 2352 bytes).
This did result in a too low number of padding sectors.
The fix caused a complete rewrite of the pad size handling.
- Treat packet mode similar to normal writing: Print Drive buffer fill ratio
and current write speed.
- Treat padding similar to normal writing: Print Drive buffer fill ratio and
current write speed.
- Make verbose printing consistent and non-jumping
- A new experimental feature of the -immed flag is to
tell cdrecord to try to wait short times wile writing
to the media. This is expected to free the IDE bus if
the CD/DVD writer and the data source are connected to
the same IDE cable. In this case, the CD/DVD writer
would otherwise usually block the IDE bus for nearly
all the time making it impossible to fetch data from
the source drive.
As this is an experimental feature, I would like to get feedback.
- #ifdef _POSIX_MEMLOCK/_POSIX_PRIORITY_SCHEDULING Tests now
POSIX 2001 compliant
- Do not try to close fd if running on an OS that does not use an fd
to mmap() chared memory from anonymous pages.
- Print Orange Forum embargo warning only if ATIP minutes == 97
because some DVD writer return junk with read ATIP
- New option minbuf= to choose the mininum drive buffer fill ratio
for the ATAPI wait option that is intended to forcibly free the
IDE bus to avoid buffer underruns with bad HW configurations.
The permitted range is 25..95 for 25%..95% buffer fill ratio.
- minbuf= may switch on the ATAPI wait option without enabling
the SCSI Immed option.
- Forcibly switch on -v for now if the ATAPI wait option has been
selected. This is needed because due to a bug, this option will
not work without -v
- Make FIFO code work on AmigaOS
For Yamaha Disk Tatoo features read README.DiskT@2
/*--------------------------------------------------------------------------*/
Cdda2wav (By Heiko Eißfeldt heiko@hexco.de):
- Changes to make cdda2wav compile better on Alpha/True64
- Restructured to better use the schily makefile portability structures.
- Changed handling of Table of contents. Now the more informative
methods of Read full toc are being used in favor to the old SCSI readtoc
command. For Sony methods, the fallback is the old method.
The new methods are available on MMC drives and modern drives with
Sony command sets. It should enhance access to very weird multi session
cds.
**************
NOTE: If your drive still has problems to copy such non-CD's, there
is a simple hack to allow the disk to be copied on all drives:
Use a (black) whiteboard pen (non-permanent) and paint on the
space directly outside the visible ring that is in the middle
of the non-CD. This is the space where the broken TOC from the
second session is located.
After doing the copy please return the disk to the dealer and
tell the dealer that this is broken goods. This is the only way
to stop the big groups to defraud the customers.
*************
- Temporary hack to fix a bug in the ISRC code that caused the ISRC
string to be shortened by one character.
- fixed ioctl handling of toc entries
- checked ISRC retrieval (MMC + Plextor)
- more checking for weird CDs with wrong track types
- bugfix in setuid.c
- read full toc method extended to a data track in the second
session for cd-extra/enhanced cd recognition
- if the tracks in the TOC are labelled as data, this is checked
and corrected if untrue
- show cd text disc identification, if one exist
- a new perl script to generate a binary cdtext file for use with
cdrecord. This is currently very simple, but it enables you to
create cd-text enriched copies from non cd-text originals.
For a hint how to use the new perl script see the CD-text usage
notes above.
- New option -L to ask freedb.freedb.org for CDDB information.
This alllows to automatically create CD-Text CDs.
- correct TOC endianess for FreeBSD ioctl interface.
- Fixed a bug that caused cdda2wav to dump core with certain
CD-Text data.
- new option -L changed. Now a numerical parameter (0 or 1)
defines the handling of multiple cddbp entries.
0 enters user interactive mode.
1 take the first entry unconditionally.
I still need a reasonable way for gui interaction in this case!
Proposals are welcome.
- made cddbp handling for mixed mode cds more robust.
It is unclear yet, if data tracks have to be included in the
query. Anybody knows the definitive answer?
- Better TOC ADDR/CRTL (red book) handling
- Better method to scan for indices.
- Support for SCMS in *.inf files
- Better SUID/SGID handling
- new script cddda2ogg
- bugfix deemphasizing (thanks to Klaus Wolterec)
- bugfix rounding error (creation of info files)
- added AlbumPerformer entry in info files
- integration of Monty's libparanoia
- switch to Jörgs getargs option handling
- Fix some bugs with option parsing introduced with the new option
parsing using getargs()
- New option -version to make cdrtools behave similar
- New option paraopts=opts for paranoia options.
- Print Paranoia statistics result at end of every track.
- prepare for better recording of discs with illegal TOCs
- prepare for non-english cd_text languages
- rewrite of the TOC handling code (now multisession capable
and much more robust)
- add a fallback method (shmat()) for failed mmap()
- linux bug workaround: open() sound device does block when device is busy.
- several code cleanups, some 64-bit portability bugfixes
- Fixed shell script 'cdda2mp3.new' to correctly use "#!/bin/sh"
- Fixed a bug (introduced while converting to getargs()) that caused
cdda2wav to dump core on OS that implement read only text
correctly like Solaris does) if compled with gcc or Sun CC COPTX=-xstrconst
- Remove old unused getopt() code.
- Check DMA residual count
- FreeBSD cooked ioctl() Byte swapping now finally OK?
- Fixed a bug that caused cdda2wav to return wrong byteorder
on Big endian machines if -paranoia has been specified
- fix several CDDB query bugs
- support CDDBP protocol 5
- customizable CDDBP server and port settings.
- Fixed a bug in the paranoia calling code that caused
cdda2wav to try to access one sector too far on the media
if in paranoia mode.
- Allow again compilation on FreeBSD
- bugfix for CD Extra, when copyright messages were present
- patch from Kyle to make CD extra handling more robust
- bugfix for wrong warning message 'no generation of info files'
due to incomplete length
- new verbose suboptions. Strings will finally replace the
tedious binary masks. For script compatibility the special
form of -v255 will be recognized for some releases.
-vhelp will show the new strings.
- reworked the toc display code to make it more orthogonal.
- changed option 'speed-select' to 'speed' for better interoperability
- Temporary added -v<number> for compatibility with old GUI programs.
Note: -v<number> is outdated and will be removed soon.
- Implement a temporary compatibility bug for the -v option.
- Support for libscg help system
- Man page fixed
- Fix for an uninitialized variable
- New exit codes for xcdroast
- Fix for a CDDB bug: need to use lead out start for play time
- Fix for a CDDB bug: Allow whitepsace in Genre
- Fix for a CDDB bug: need to count data tracks too
/*--------------------------------------------------------------------------*/
Readcd:
- better error recovery with -noerror
- error handling increased
- Handle signals and other aborts by restoring old drive state
- Set PF bit with mode select.
- New option -quiet to suppress primary SCSI error messages
in read CD error handling
This are the messages that are printed before entering the
retry mode.
- Secondary SCSI error messages are now suppressed by default,
they may be turned on again with -verbose
This are the messages that are printed in -noerror
retry mode.
- Better handling of C2 scans on unreadable data disks.
- use comerrno() instead of comerr() if the drive is not ready
as errno is not valid after that test.
- Enhanced output for C2 error scan.
- Now use /etc/default/cdrecord as documented in the man page.
- Better behavior with extreme badly readable media.
- List number of completely unreadable sectors in addition to
the C2 error count.
- Man page updated to contain all options
- New option speed= to allow reading at slower speed and avoid read error
caused by vibrations of the media.
- added new option -overhead to meter SCSI command execution overhead.
/*--------------------------------------------------------------------------*/
Scgcheck:
- Fixed Makefile so scgcheck now compiles on FreeBSD
/*--------------------------------------------------------------------------*/
Mkisofs (By Jörg Schilling and James Pearson j.pearson@ge.ucl.ac.uk):
- Man page updated and corrected.
- Try to avoid the C-compiler warnings for getopt.c that are caused
by the non-confirming way of hacking used by FSF people
- isoinfo now corectly displays file with filesize > 1 GB
- isoinfo now implements a new option -s that displays the size
of the files in multiples of the sector size (2048 Bytes)
- libhfs_iso reworked to use timedefs.h from schily portability support.
- Better error messages for ISO and Rock Ridge directory sort problems
- Preserves HFS file dates for AppleDouble, AppleSingle and NetaTalk files
- Fixed a problem from an uninitialized variable in desktop.c
that caused random effects in Apple CD's
- better documentation for README.sort/README.hide from James Pearson
- Fixed a bug in sort code that caused the compare function to behave
symmetric when called c(a,b) vs. c(b,a)
- First UDF support via -udf option - thanks to Ben Rudiak-Gould.
Note that the UDF support is not what you might indend. It is currently
wired to the Joliet tree which is a bad idea. It also does not yet
support Symbolic Links, user ID's and similar.
- Write messages with more correct size names for the floppy eltorito
boot images
- Added a missing prototype in getopt.c
- isodump.c isoinfo.c isovfy.c:
Correctly handle symlinks
use offsetof(struct iso_directory_record, name[0]) instead of
sizeof(struct iso_directory_record) - sizeof(idr->name)
- Fixed a check in the Apple HFS code that used strcmp for
data that could contain null bytes.
- Introduced many casts to enhance portability.
This was needed for GNU fnmatch.c and the HFS support lib libhfs_iso
- Use Protoyped function definitions for hash.c to allow old UNIX variants
where sizeof(dev_t) is < sizeof(int)
- Fixed a check in the Apple HFS code that used strcmp for
data that could contain null bytes.
- Introduced many casts to enhance portability.
This was needed for GNU fnmatch.c and the HFS support lib libhfs_iso
- Use Protoyped function definitions for hash.c to allow old UNIX variants
where sizeof(dev_t) is < sizeof(int)
- Support generic boot code if session does not start at sector 0.
- Fixed a minor bug with HFS labels & multi-session
Thanks to James Pearson
- Only print a short Usage if mkisofs detected a usage error.
- -z option now working to create CDs in a format with Linux proprietary
Rock Ridge extensions for transparent compression.
This is a patch from H.P. Anvin. It makes only sense with Linux-2.4.14
or later.
- New option -debug
- Correctly use stat()/lstat() with graft points
- Fixed a bug with escape character handling in graft point handling.
- Make the graft point a directory if the file it should point to
is a directory.
- Correctly handle non-canonical filenames with graft points.
.////././///test=OBJ/sparc-sunos5-cc/ will now work correctly
and not result in a corrupted ISO-Filesystem.
- Canonicalize graft points so commands like:
mkisofs -graft-points /a/b/././//=some_dir
and
mkisofs -graft-points /a/b/../c/=some_dir
will not cause broken ISO images anymore.
- Avoid unwanted information in debug information on disk.
- Allow the -sort option to work with the Eltorito Boot Catalogue
- Allow '-' to be part of the ISO-9660 filename if -no-iso-translate
has been specified.
Thanks for this hint from Georgy Salnikov (sge@nmr.nioch.nsc.ru)
from Novosibirsk, Russia.
- Try to avoid an integer overflow with the -C option and DVDs
- Try to fix (very old) rotten code in various files that did cause
integer overflows for files > 2 GB - 2kB.
Inconsistent use of (always diferent) hand crufted code using
2048, 2047, ... instead of SECTOR_SIZE, ISO_ROUND_UP(), ...
Note that this is not only of interest for DVDs as mkisofs could
believe that > 2 GB of data would fit on a CD.
- New code to print file type names.
- Some more changes to reduce the probability of integer overflows
in size computations.
- Fixed a bug in the code that removes sensitive information from
the command line.
- Add text strings with descritpive text to the output_fragment structures
- verbose > 1 (use -v) writes debug info for output fragments.
This uses the new strings introduced with the last version.
- isoinfo now uses getargs() and includes -version and -help
options.
- isoinfo now is able to find out that Joliet information is
present if the disk contains illegal Joliet UNICODE escape code.
This seem to happen with disks written with Adaptecs programs.
- isoinfo has new option -debug that prints more information
from the Primary volume descriptor.
- Support for Apple HFS on Mac OS X Thanks to James Pearson.
- Support for more then 65535 directories as only the parent entries
need to fit into the path tables.
- Full DVD-Video support thanks to Olaf Beck - olaf_sc@yahoo.com
- Avoid a C-compler warning caused by mkisofs.h
- Fixed a bug in the DEBUG code from the DVD-Video enhancements
- Allow symlink targets to be up to 1024 bytes
- devdump/isodump/isovfy now use getallargs() and implement -help/-version
- If UDF but no Joliet is used, UDF filenames may be 255 chars long.
Note that this is still hack.
- From James: New option -joliet-long to allow 103 UNICODE characters with
Joliet. This is not Joliet compliant but several other programs
also create long Joliet names.
- Fixed a minor C non-compliance in ifo_read.c
- Allow symlink targets to be up to 1024 bytes
- devdump/isodump/isovfy now use getallargs() and implement -help/-version
- If UDF but no Joliet is used, UDF filenames may be 255 chars long.
Note that this is still hack.
- From James: New option -joliet-long to allow 103 UNICODE characters with
Joliet. This is not Joliet compliant but several other programs
also create long Joliet names.
- Correct a minor problem with K&R compilers for the programs
in mkisofs/diag/
- Make fire PATH_MAX is defined in isoinfo.c too.
- Make sure UDF directory permissions include 'execute permission'.
- A patch from James that make mkisofs able to create a HFS volume < 4 GB.
- Support for MS code page 1250 (Slavic/Central Europe) added.
Thanks to Petr Balas petr@balas.cz
- A patch from James that make mkisofs able to create a HFS volume > 4 GB.
- A new option -hfs-parms for better HFS support for HFS volumes > 4 GB
from James Pearson
- Fixed several typos in the man page and the source
- Belly based speudo fix for a problem with mkisofs -f (follow)
and symlinks to directories where directory content was
missing with the old version. The new version is most likely better
and we (James and I) could not find problems with the new version.
- Make "HFS_TYPE" and "HFS_CREATOR" work as documented in ~/.mkisofsrc
- Fixed a small typo in isofinfo.c
- As mkisofs -f has bugs that cannot be fixed for this release, I decided
to mark the '-f' Option as non-functional. People who use it will be warned
that it does not work correctly.
- Sort VIDEO_TS.IFO to be the first entry in VIDEO_TS/ woth -dvd-video
- Disable Joliet if -dvd-video has been specified. This needs to be done to
allow the change above.
- Correctly handle files > 1GB on the UDF filesystem.
Thanks to Wei DING <ding@memory-tech.co.jp> for the patch.
- Add support for Code Page 1251
- Koi8-u added to libunls
- Fix a nasty bug in the UDF handling part that caused mkisofs to
create completely broken filesystem images if directories have been
nested deeper than 8 and -D has not been specified.
- Include a new piece of code that causes mkisofs to abort with an
error message if it turns out that the block numbers estimated
during the sizing phase do not match the block numbers in the
write phase.
- Enabled a piece of code that has been introduced 2 years ago and that
causes mkisofs to prevent deep directory relocation if Rock Ridge
has not been spacified.
If you like mkisofs not to omit the part of the directory tree that
is nested too deep, specify either -R, -r or -D.
TODO:
- read Joliet filenames with multi-session if no TRANS.TBL
or RR is present. I am looking for a volouteer for this task:
Peter Berendi <berendi2@webdesign.hu> announced that he likes
to be the volounteer for this task.
Unfortunately, I did no hear again from him, but I got
a proposal from
"Krisztian Gede" <nameless@mail.datanet.hu>
who also likes to do the job.
Note that this can never be 100% correct as there is no relation
between the names on the master (UNIX) filesystem, the ISO-9660
names and the Joliet names. Only the Rock Ridge names are
untranslated with respect to the original files on the
master (UNIX) filesystem.
- implement Yellow book compliant XA extended dir attributes
- add libecc/edc for CDI and similar.
This may not be needed if we ise VCDimager and recent
cdrecord versions.
CYGWIN NT-4.0 NOTES:
To compile on Cygwin32, get Cygwin and install it.
For more information read README.win32
The files are located on:
ftp://ftp.berlios.de/pub/cdrecord/alpha ...
NOTE: These tar archives are 100% ansi compatible. Solaris 2.x tar and GNU
tar may get some minor trouble.
WARNING: Do not use 'mc' to extract the tar file!
All mc versions before 4.0.14 cannot extract symbolic links correctly.
WARNING: Do not use 'winzip' to extract the tar file!
Winzip cannot extract symbolic links correctly.
Joerg
|