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
|
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 <reanimatolog@yandex.ru> 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 xiphmont@mit.edu):
- 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 heiko@hexco.de):
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 <stefano.dipaola1@tin.it> 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 <reanimatolog@yandex.ru> 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 <reanimatolog@yandex.ru>
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/rscsi.conf.
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 <markvyt@comcast.net>
- 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 <reanimatolog@yandex.ru>
- -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 heiko@hexco.de):
- 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.
- New paranoia sub option paraopts=overlap=xx
This is mainly a bug fix for cdda2wav. Cdda2wav previously _always_ did
completely deactivate the dynamic overlapping from libparanoia. Instead,
it did set the overlapping to the statical value 0.
If you omit paraopts=overlap=xx, cdda2wav will now use dynamic overlapping
with -paranoia.
If you like the old behavior, use: paraopts=overlap=0
- New paranoia sub option paraopts=minoverlap=xx
This sets the minimum dynamic overlap
- New paranoia sub option paraopts=maxoverlap=xx
This sets the maximum dynamic overlap
- Better paranoia statistics output
- Fixed a Problem with some Linux sound card drivers that caused cdda2wav to be
unable to output to the soundcard.
- cdda2wav now checks /etc/default/cdrecord and accepts dev=plextor as
cdrecord does.
- Trying to add verbose output that estimates the read quality with -paranoia
- Trying to convert non-ascii characters in user & host names into '_'
for better cddb compatibility.
- Some Man Page Fixes trying to avoid coding problems for non 7-bit ACSII
- New option -scanbus
- Removed some "historical junk" that caused cdda2wav to define a
compile time default input device. This conflicts with cdda2wav -scanbus
and is superfluous and contra productive since cdda2wav reads
/etc/default/cdrecord
- cdda2wav has signed bitfields of size 1 :-(
- Fixed a typo in cdda2ogg.1
- Bug fix from Heiko for index lists that contain offset values of -1 in the middle
- Trying to handle interface setup more carefully if SCSI Generic is not
used.
- Better Debug Code in setuid.c
- Trying to fix a bug in UID handling on FreeBSD
Thanks to the bugs reports and help from Fabian Keil <fk@fabiankeil.de>
- Try to workaround a bug in GCC that caused incorrect warnings
for "strict-aliasing rules"
Readcd:
- First (hacky) implementation of a way to meter the read speed
as a function of the disk location modeled after a idea from
Markus Plail <cdrecord@gitteundmarkus.de>
Call:
readcd dev=b,t,l meshpoints=1000 > outfile
then
gnuplot
gnuplot> plot "outfile" w l
or
gnuplot> replot "outfile" w l
if you like to overlay graphs.
- New option fs=# (same syntax as with cdrecord fs=#) to allow the
user to set the maximum transfer size even in non-interactive mode.
This may help is the OS (as it has been the case for Solaris 9 x86)
reports a wrong maximum DMA size or there is a bug in libscg.
- Speed printing with meshpoints=# now is based on 1000 bytes == 1 kb
as documented in the SCSI standard.
- Stop reading if the OS replies with a DMA residual count != 0
- New option -factor will cause the read speed values to be printed
be based on the single speed of the current medium. This is only
possible if readcd is able to find out the current medium type.
- The clone read 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.
Clone writing has been designed to allow to copy complex structured media
like e.g. SVCDs without the need to first do a sector by sector analysis
on the source media.
To understand how to use the clone mode read README.clone
- New option ts= to set the SCSI transfer buffer size
- call setmode(fileno, O_BINARY) for DOS/DJGPP also
- Now works again suid root on Solaris 9
- Better man page & online help for the ts= option.
- New option -scanbus
- Fixed a bug with -scanbus (did not work correctly if /etc/default/cdrecord
exists).
- Added an allocated list of defective sectors, that is printed to the end of
a read operation.
Scgcheck:
- Trying to check if multiple scg_open() requests result in
usable interfaces.
- Send more outout to stdout instead of stderr.
- More correct test for max sense count.
- Eject CD _after_ asking for it.
- Abor further DMA residual tests if a basic DMA residual test fails.
- Second open test enhanced.
- A small fix to prevent a core dump caused by a problem on Mac OS X.
Scgskeleton:
- New Skeleton program as sample and template for programs that like to
use libscg.
This template has been included to help people like the Author of the
BTC firmware flash program to write simple portable applications that
send arbitrary SCSI commands to arbitrary drives.
Mkisofs (By Jörg Schilling and James Pearson j.pearson@ge.ucl.ac.uk):
- First attempt to support ISO-9660:1999 (Version 2) via -iso-level 4
This allows 207 chars in filenames if Rock Ridge is not used
ans 197 207 chars in filenames if Rock Ridge is used.
Note that this as an absolutely nontrivial change. Problems may
even occur when not using -iso-level 4. Please test and report
problems.
It is not clear whether mkisofs should characters in the range
outside 7-Bit ASCII. Currently, mkisofs allows any 7-Bit ASCII
character except '\0' and '/'.
- Second attempt to support ISO-9660:1999 (Version 2) via -iso-level 4
This allows 207 chars in filenames if Rock Ridge is not used
and 197 207 chars in filenames if Rock Ridge is used.
In version 2.01a01 the extended VD used the wrong signature 1.
This has been corrected.
- isoinfo is now able to recognize ISO-9660:1999
- Enhanced the filename length for graft points to 2x PATH_MAX
- Abort with a warning message if the total size of the image data
created by mkisofs would differ from the size printed by -print-size
- udf.c indented according to hints from the program 'cstyle'
- UDF now uses the same 'now' timestamp as the ISO-9660 part of the FS.
- New Stream File feature and new options:
-stream-file-name
-stream-media-size
This feature has been implemented after an idea from M.H. Voase.
Mkisofs had to be heavily modified to allow this feature.
A typical usage would look like this:
star -c . | mkisofs -stream-media-size 333000 | cdrecord dev=b,t,l -dao tsize=333000s -
The maximum size of the tar archive is 332800 sectors.
Note that only plain vanilla ISO-9660 is possible in this mode.
- The final padding that is added by default is now 150 sectors
which is the required size of the track post gap on a CD.
- Inter partition padding is now only chosen to make the next partition
start on a sector number that is a multiple of 16.
- isoinfo now also prints root directory extent # in debug mode
- First step to allow mkisofs to support Kodak Photo CD and
Kodak Picture CD format:
Try to correctly support associated files in multi-session mode.
- Diagnostic programs modified to use ttydefs.h and to have better
portability for the built in "stty" features.
- isoinfo now prints the ISO-9660 directory flags.
- Make mkhybrid a symlink to mkisofs instead of a hardlink
- getopt.h/fnmatch.h changed to use 'makefiles / prototype.h' based
system instead FSD junk system
- Removed FSF junk from getopt.c that either created problems
with SCO Unixware or did not compile on AIX
- Prototype for DVDOpenFile() to avoid warning on SCO UnixWare
related to enum function parameter
- Fixed a bug with split symbolic links found by Klaus Kopper
with the new debug messages introduced with mkisofs-2.01a04
- Changed #if __STDC__ to #ifdef PROTOTYPES for better portability
- Now using character code translation for 8 Bit characters that
are used with -iso-level 4 (ISO-9660-1999).
- Fixed a typo in the on-line Usage information for isoinfo
- New options -XA & -xa
-XA Generate XA iso-directory attributes with original owner
and mode information.
-xa Generate XA iso-directory attributes with rationalized owner
and mode information (user/group == 0).
In the first phase of the implementation you need to specify -R in
addition.
- Try to support files >= 2 GB.
Note that mkisofs is not yet written cleanly so there may be problems
if files >= are used. In such a case, please report.
- Create XA "CD-XA001" signature in PVD with -XA or -xa
In the first phase of the implementation you need to specify -R in
addition to -XA or -xa or no XA signatures will be written.
- Removed a debug statement that has been introduced to implement
support for filees >= 2GB.
- This version of mkisofs allows to create sectors with 2056 bytes if the
option -XA or -xa has been used together with -sectype xa1.
This is 2048 bytes + sub-header.
- -apple does no longer include -R or -r.
If you like to use -apple, you need to use -R/-r or -XA/-xa in addition.
- New option -sectype SECTYPE / -s SECTYPE
Possible parameters are:
data 2048 bytes per sector - the old and current default
xa1 2056 bytes per sector - this is what you need for a conforming
CD-ROM XA multi session CD. Use -sectype xa1 together with -XA
- Fixed a bug in the Rock Ridge symlink handling with Continuation records
triggered by '/../' filename components.
Thanks to jmmikkel@bbn.com (Joanne M Mikkelson)
for the fix.
- man page corrected
- Moved Eltorito PVD before ISO-9660:1999 enhanced PCD to allow
bootable CD with ISO-9660:1999
- -sort file handling fixed: mkisofs now looks for SPACE/TAB whatever
comes last (as documented in the man page).
- Better error message in case of a stat(2) buffer overflow (too long
filename). This release now prints the file name that caused the problem.
- call setmode(fileno, O_BINARY) for DOS/DJGPP also
- Added a NOTE regarding the SILO boot program for Linux sparc to the
man page.
- Added support for Solaris x86 boot CDs.
This includes the following new options:
- -sunx86-boot to create a fdisk & SVr4 partition table
- -sunx86-label to set the "disk label" name for the
SVr4 partition table.
- New file README.sunx86boot
- The file README.sunx86boot has been reworked to make it more correct
and contain less typos.
- Fixed a Rock-Ridge length handling bug in update_nlink()/increment_nlink() (tree.c)
that may have caused an endless loop.
- "Total extents including sparc boot" Message is now correctly
"Total extents including %s boot" sparc/sunx86
- mkisofs now checks /etc/default/cdrecord and allows e.g.
"mkisofs -C 0,1234 dev=plextor ...." as cdrecord does
- Unclean message ....extents written (%d Mb) changed to
....extents written (%d MB) to avoid "MegaBit" confusion.
- Minor change for old UNIX versions like SCO OpenServer to get
smooth compilation on system where mode_t is a short.
- Fix for a bug in RockRidge name handling for long file names
that need to be split into more than one sector.
Thanks to Patrick Ohly <Patrick.Ohly@gmx.de>
- Trying to fix a bug in the multi session time stamp comparing
functions. CE records have not been handled correctly here.
- Support for PowerPC CHRP Boot added, thanks to
"Leigh Brown" <leigh@solinno.co.uk>
- Support for -uid/-gid for UDF Filesystems added
- isoinfo now is able to list ElTorito Boot information with -d
- isoinfo now correctly shows long RR filenames from CE Extension records.
- Fixed a bug in the PowerPC CHRP Boot, thanks to
"Leigh Brown" <leigh@solinno.co.uk>
- New options -root & -old-root from Patrick Ohly
This allows mkisofs to be used for "incremental backups" where
each backup is put into a separate directory tree on the CD.
- Default to System ID "UNIX" for unknown platforms instead of
uning LINUX.
- Support System ID "SCO-OPENSERVER" and "SCO-UNIXWARE"
- Better error message when a user tries to create a multi session image
out of a multi-volume image.
- When doing malloc(), include Null Byte at end of TRANS_TBL data to
avoid memory size conflicts.
- Fix for a core dump caused by a double free() when doing:
echo bar >/tmp/bar
echo foo/bar=/tmp/bar > /tmp/pathlist
env LD_PRELOAD=libumem.so.1 UMEM_DEBUG=default UMEM_LOGGING=transaction \
mkisofs -hfs -graft-points -o /tmp/foo.raw -path-list=/tmp/pathlist
Thanks to Jürgen Keil jk@tools.de
- Fixed a typo in write.c "Padbock" -> "Padblock"
Thanks to Richard Dawe <rich@phekda.gotadsl.co.uk>
- Trying to fix a problem with comparing relaxed ISO-9660 file names
that contain a ';' which normally is a separator for the ISO-9660
version number. The fix is in hash.c, please test!
- Avoid GCCs shadowed variable warnings.
- Added a comment is in hope to prevent silly people from
e.g. SuSE (who did not yet learn C but believe that
they need to patch other peoples code) from changing a
valid cast into an illegal lhs cast expression.
The cast in the unodified version of write.c is the correct way to
handle the problem.
It would save a lot of time if people from companies like SuSE
would remember the Open Source software development model and
contact the Author for help rather than introducing proprietary
changes that result in worse and incompatible software variants.
The way, companies like SuSE deal with Open Source software just
proves that Jonathan Schwartz from Sun is not wrong when he calls
SuSE and RedHat proprietary software companies. Users from Open Source
software expect that companies like SuSE and RedHat are in close
contact with the software developers but they unfortunately are not.
They prefer to create proprietary variants that are usually much
worse than the original software. The only explanation I have for this
behaviour is that SuSE likes to deviate from RedHat and RedHat likes
to deviate from SuSE in hope to get customer retention this way.
While the last 150 years did prove that this proprietary method to
tie up customers works for a limited time, it did always fail after
some time.
- Removed verbose output for Eltorito boot method when called with -quiet
- The Eltorito boot catalog and the Eltorito boot files are now by default
sorted to the beginning of the filesystem image as sime BIOS versions don't
boot from locations beyond 512 MB.
- All programs from mkisofs/diag now support libscg so you may now
use e.g. isoinfo to list end extract from CDs directly on platforms
that do not support a usual driver interface (like on Win32).
- Set default SYSID to "DOS" for DJGPP
Thanks to Alex Kopylov <reanimatolog@yandex.ru>
- devdump isodebug isodump isoinfo isovfy
now include libscg and allow to use SCSI devices as input
- devdump isodebug isodump isoinfo isovfy
now implement a new option dev= to force to use the SCSI
interface from libscg.
- isoinfo now correctly sets the filemode of stdout to O_BINARY
on DOS alike Platforms like Win32 & DJGPP
This affects the '-x pathname' option
Thanks to Alex Kopylov <reanimatolog@yandex.ru>
- The options -H/-L/-P from mkisofs have been marked "outdated"
as they are reserved by POSIX.1-2001 for other purposes.
Mkisofs-2.02 will start to implement the POSIX.1-2001 semantics for
these options.
- The max. length for the strings in the Primary volume descriptor
is now also documented in the options section of the man page.
- Speed up by 30% in the case that a directory contains many (> 5000)
pathological file name entries (that _all_ do not differ in 8.3).
- A minor speed up in devdump & isodump was made by no longer calling
strlen() in the end condition of a for loop (this still was old
code from Eric).
- fixed a bug with -dvd-video
The bug caused mkisofs not to find the IFO file when VIDEO_TS was not
the first entry in the unsorted source directory.
Thanks to a hint from Johan Borg borg@morth.org
- The option -volset-size does no longer accept numbers > 1
This change was needed because Eric Youngdale did completely
missunderstand the ISO-9660 standard with respect to Volume Set
Sizes.
A Volume Set is not a numbered set of CDs but a set of CDs that
contains a coherent directory tree that would not fit on a single
volume.
- Fixed a typo in the mkisofs man page
- man page enhanced to make clear that the options
-no-split-symlink-fields & -no-split-symlink-components
are most likely not needed as they have been introduced by Eric Youngdale
when serious bugs have been in mkisofs.
- Changelog updated
- Try to workaround a bug in GCC that caused incorrect warnings
for "strict-aliasing rules"
TODO:
- read Joliet filenames with multi-session if no TRANS.TBL
or RR is present. I am looking for a volunteer for this task!
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.
- add libecc/edc for CDI and similar.
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% POSIX compatible. GNU tar may get some
minor trouble. If you like a 100% POSIX compliant tar, get star from
ftp://ftp.berlios.de/pub/star/
WARNING: Do not use 'winzip' to extract the tar file!
Winzip cannot extract symbolic links correctly.
Joerg
|