From a119991b98b043ef5a2432a7a0e2c4f2cf484674 Mon Sep 17 00:00:00 2001 From: Philippe Coval Date: Fri, 1 Mar 2013 11:33:00 +0100 Subject: [PATCH] Imported Upstream version 1.1.11 --- 3rd-party/dirsplit/CMakeLists.txt | 3 + 3rd-party/dirsplit/ChangeLog | 27 + 3rd-party/dirsplit/README | 7 + 3rd-party/dirsplit/dirsplit | 611 ++ 3rd-party/dirsplit/dirsplit.1 | 27 + 3rd-party/geteltorito.1 | 48 + 3rd-party/geteltorito/README.geteltorito | 22 + 3rd-party/geteltorito/geteltorito.pl | 214 + 3rd-party/zisofs_tools/CHANGES | 57 + 3rd-party/zisofs_tools/CMakeLists.txt | 8 + 3rd-party/zisofs_tools/COPYING | 340 ++ 3rd-party/zisofs_tools/INSTALL | 182 + 3rd-party/zisofs_tools/MCONFIG.in | 38 + 3rd-party/zisofs_tools/MRULES | 22 + 3rd-party/zisofs_tools/Makefile | 96 + 3rd-party/zisofs_tools/README | 44 + 3rd-party/zisofs_tools/aclocal.m4 | 35 + 3rd-party/zisofs_tools/compress.c | 155 + 3rd-party/zisofs_tools/config.h.in | 99 + 3rd-party/zisofs_tools/configure | 7907 +++++++++++++++++++++++++ 3rd-party/zisofs_tools/configure.in | 58 + 3rd-party/zisofs_tools/copytime.c | 66 + 3rd-party/zisofs_tools/hash.c | 79 + 3rd-party/zisofs_tools/install-sh | 238 + 3rd-party/zisofs_tools/iso9660.c | 123 + 3rd-party/zisofs_tools/iso9660.h | 62 + 3rd-party/zisofs_tools/mkzftree.1 | 120 + 3rd-party/zisofs_tools/mkzftree.c | 294 + 3rd-party/zisofs_tools/mkzftree.h | 115 + 3rd-party/zisofs_tools/uncompress.c | 147 + 3rd-party/zisofs_tools/util.c | 68 + 3rd-party/zisofs_tools/version | 1 + 3rd-party/zisofs_tools/walk.c | 323 ++ 3rd-party/zisofs_tools/workers.c | 111 + 3rd-party/zisofs_tools/zisofs-tools.spec | 50 + 3rd-party/zisofs_tools/zisofs-tools.spec.in | 50 + 3rd-party/zisofs_tools/zisofs.magic | 8 + ABOUT | 60 + CMakeLists.txt | 3 + COPYING | 339 ++ Changelog | 8360 +++++++++++++++++++++++++++ FAQ | 33 + FORK | 63 + INSTALL | 66 + Makefile | 72 + START | 2 + TODO | 50 + VERSION | 1 + doc/ANNOUNCEMENTs/AN-2.0 | 1607 +++++ doc/ANNOUNCEMENTs/AN-2.01 | 1496 +++++ doc/ANNOUNCEMENTs/AN-2.01.01a01 | 91 + doc/ANNOUNCEMENTs/AN-2.01.01a03 | 150 + doc/ANNOUNCEMENTs/AN-2.01.01a04 | 164 + doc/ANNOUNCEMENTs/AN-2.01.01a05 | 143 + doc/ANNOUNCEMENTs/AN-2.01.01a06 | 141 + doc/ANNOUNCEMENTs/AN-2.01.01a07 | 96 + doc/ANNOUNCEMENTs/AN-2.01.01a08 | 96 + doc/DOC-OVERVIEW | 35 + doc/PORTABILITY | 34 + doc/READMEs/README.ATAPI | 589 ++ doc/READMEs/README.ATAPI.setup | 87 + doc/READMEs/README.audio | 50 + doc/READMEs/README.cdplus | 85 + doc/READMEs/README.cdtext | 65 + doc/READMEs/README.copy | 53 + doc/READMEs/README.multi | 209 + doc/READMEs/README.netscsid | 145 + doc/READMEs/README.sony | 31 + doc/READMEs/README.suidroot | 29 + doc/READMEs/README.verify | 75 + doc/WHY | 26 + doc/genisoimage/README | 26 + doc/genisoimage/README.alphaboot | 28 + doc/genisoimage/README.compression | 17 + doc/genisoimage/README.eltorito | 101 + doc/genisoimage/README.graft_dirs | 151 + doc/genisoimage/README.hfs_boot | 76 + doc/genisoimage/README.hfs_magic | 69 + doc/genisoimage/README.hide | 208 + doc/genisoimage/README.hppaboot | 38 + doc/genisoimage/README.joliet | 53 + doc/genisoimage/README.macosx | 43 + doc/genisoimage/README.mipsboot | 26 + doc/genisoimage/README.mipselboot | 29 + doc/genisoimage/README.mkhybrid | 145 + doc/genisoimage/README.prep_boot | 45 + doc/genisoimage/README.releasenotes | 154 + doc/genisoimage/README.rootinfo | 90 + doc/genisoimage/README.session | 53 + doc/genisoimage/README.sort | 102 + doc/genisoimage/README.sparcboot | 77 + doc/genisoimage/README.sunx86boot | 77 + doc/icedax/FAQ | 296 + doc/icedax/Frontends | 34 + doc/icedax/HOWTOUSE | 101 + doc/icedax/NEEDED | 10 + doc/icedax/OtherProgs | 2 + doc/icedax/README | 549 ++ doc/icedax/THANKS | 36 + doc/icedax/TODO | 41 + doc/icedax/cdda_links | 4 + doc/icedax/tracknames.pl | 245 + doc/icedax/tracknames.txt | 34 + doc/plattforms/README.aix5l | 16 + doc/plattforms/README.freebsd | 31 + doc/plattforms/README.linux | 46 + doc/plattforms/README.parallel | 59 + doc/plattforms/README.sunos | 10 + doc/plattforms/README.win32 | 31 + doc/wodim/README.DiskT@2 | 67 + doc/wodim/README.WORM | 10 + doc/wodim/README.cdrw | 17 + doc/wodim/README.clone | 27 + doc/wodim/README.raw | 71 + genisoimage/CMakeLists.txt | 70 + genisoimage/COPYING | 345 ++ genisoimage/ChangeLog | 3866 +++++++++++++ genisoimage/ChangeLog.mkhybrid | 482 ++ genisoimage/RELEASE | 3 + genisoimage/TODO | 57 + genisoimage/apple.c | 2688 +++++++++ genisoimage/apple.h | 386 ++ genisoimage/apple_driver.8 | 72 + genisoimage/apple_driver.c | 190 + genisoimage/boot-alpha.c | 137 + genisoimage/boot-hppa.c | 207 + genisoimage/boot-mips.c | 341 ++ genisoimage/boot-mipsel.c | 259 + genisoimage/boot.c | 537 ++ genisoimage/bootinfo.h | 46 + genisoimage/bswap.h | 67 + genisoimage/checksum.c | 583 ++ genisoimage/checksum.h | 74 + genisoimage/config.h | 34 + genisoimage/defaults.h | 147 + genisoimage/desktop.c | 180 + genisoimage/diag/README | 76 + genisoimage/diag/devdump.1 | 2 + genisoimage/diag/dump.c | 428 ++ genisoimage/diag/isodebug.1 | 108 + genisoimage/diag/isodebug.c | 281 + genisoimage/diag/isodump.1 | 2 + genisoimage/diag/isodump.c | 715 +++ genisoimage/diag/isoinfo.1 | 365 ++ genisoimage/diag/isoinfo.c | 1321 +++++ genisoimage/diag/isovfy.1 | 2 + genisoimage/diag/isovfy.c | 794 +++ genisoimage/diskmbr.h | 65 + genisoimage/dvd_file.c | 771 +++ genisoimage/dvd_file.h | 41 + genisoimage/dvd_reader.c | 295 + genisoimage/dvd_reader.h | 151 + genisoimage/eltorito.c | 716 +++ genisoimage/endian.c | 177 + genisoimage/endianconv.h | 27 + genisoimage/exclude.c | 78 + genisoimage/exclude.h | 21 + genisoimage/files.c | 398 ++ genisoimage/fnmatch.c | 239 + genisoimage/fnmatch.h | 101 + genisoimage/genisoimage.1 | 2823 +++++++++ genisoimage/genisoimage.c | 3831 ++++++++++++ genisoimage/genisoimage.h | 802 +++ genisoimage/genisoimagerc.5 | 144 + genisoimage/getopt.c | 790 +++ genisoimage/getopt.h | 148 + genisoimage/getopt1.c | 193 + genisoimage/hash.c | 404 ++ genisoimage/hdisk.pl | 65 + genisoimage/ifo_read.c | 559 ++ genisoimage/ifo_read.h | 81 + genisoimage/ifo_types.h | 91 + genisoimage/iso9660.h | 359 ++ genisoimage/joliet.c | 1456 +++++ genisoimage/jte.c | 1042 ++++ genisoimage/jte.h | 39 + genisoimage/mac_label.c | 425 ++ genisoimage/mac_label.h | 169 + genisoimage/mactypes.h | 65 + genisoimage/magic | 81 + genisoimage/mapping | 8 + genisoimage/match.c | 290 + genisoimage/match.h | 91 + genisoimage/md5.c | 401 ++ genisoimage/md5.h | 41 + genisoimage/mkhybrid.8 | 2 + genisoimage/more.mapping | 282 + genisoimage/multi.c | 1912 ++++++ genisoimage/name.c | 531 ++ genisoimage/rock.c | 864 +++ genisoimage/rsync.c | 112 + genisoimage/scsi.c | 195 + genisoimage/scsi.h | 41 + genisoimage/sha1.c | 415 ++ genisoimage/sha1.h | 88 + genisoimage/sha256.c | 307 + genisoimage/sha256.h | 62 + genisoimage/sha512.c | 338 ++ genisoimage/sha512.h | 62 + genisoimage/stream.c | 272 + genisoimage/sunlabel.h | 206 + genisoimage/tree.c | 2696 +++++++++ genisoimage/udf.c | 1213 ++++ genisoimage/udf.h | 55 + genisoimage/udf_fs.h | 462 ++ genisoimage/vms.c | 320 + genisoimage/vms.h | 29 + genisoimage/volume.c | 728 +++ genisoimage/write.c | 2840 +++++++++ icedax/CMakeLists.txt | 34 + icedax/Changelog | 570 ++ icedax/GPL | 339 ++ icedax/aifc.c | 213 + icedax/aifc.h | 14 + icedax/aiff.c | 188 + icedax/aiff.h | 14 + icedax/base64.c | 121 + icedax/base64.h | 83 + icedax/byteorder.h | 67 + icedax/cd_extra.c | 417 ++ icedax/cd_text.c | 421 ++ icedax/cdda2mp3 | 1 + icedax/cdda2mp3.new | 60 + icedax/cdda2ogg | 82 + icedax/cdda2ogg.1 | 114 + icedax/cdda2ogg.mk1 | 18 + icedax/config.h | 63 + icedax/configure | 1390 +++++ icedax/configure.in | 88 + icedax/exitcodes.h | 37 + icedax/global.h | 133 + icedax/icedax.1 | 1025 ++++ icedax/icedax.c | 3059 ++++++++++ icedax/icedax.h | 150 + icedax/inf2cdtext.pl | 241 + icedax/interface.c | 1050 ++++ icedax/interface.h | 135 + icedax/ioctl.c | 578 ++ icedax/ioctl.h | 14 + icedax/lconfig.h | 85 + icedax/lconfig.h.in | 44 + icedax/list_audio_tracks.1 | 54 + icedax/local.cnf.in | 141 + icedax/lowlevel.h | 25 + icedax/mycdrom.h | 150 + icedax/mytype.h | 39 + icedax/pitchplay | 39 + icedax/pitchplay.1 | 59 + icedax/raw.c | 61 + icedax/raw.h | 14 + icedax/readmult | 31 + icedax/readmult.1 | 52 + icedax/resample.c | 985 ++++ icedax/resample.h | 26 + icedax/ringbuff.c | 231 + icedax/ringbuff.h | 97 + icedax/scsi_cmds.c | 1720 ++++++ icedax/scsi_cmds.h | 71 + icedax/semshm.c | 473 ++ icedax/semshm.h | 43 + icedax/setuid.c | 332 ++ icedax/setuid.h | 31 + icedax/sha.h | 102 + icedax/sha_func.c | 376 ++ icedax/sndconfig.c | 607 ++ icedax/sndconfig.h | 20 + icedax/sndfile.h | 36 + icedax/sun.c | 99 + icedax/sun.h | 14 + icedax/toc.c | 3841 ++++++++++++ icedax/toc.h | 69 + icedax/version.sed | 4 + icedax/wav.c | 157 + icedax/wav.h | 14 + include/AddNetworkBits.cmake | 60 + include/AddScgBits.cmake | 65 + include/AddSchilyBits.cmake | 13 + include/CMakeLists.txt | 170 + include/align.h.in | 84 + include/allocax.h | 80 + include/avoffset.h | 13 + include/btorder.h | 130 + include/ccomdefs.h | 78 + include/deflts.h | 50 + include/device.h | 162 + include/dirdefs.h | 188 + include/fctldefs.h | 93 + include/getargs.h | 67 + include/getcwd.h | 54 + include/glibc_elf.h | 2558 ++++++++ include/intcvt.h | 124 + include/jmpdefs.h | 49 + include/libport.h | 124 + include/librmt.h | 75 + include/maxpath.h | 86 + include/mconfig.h | 487 ++ include/mmapdefs.h | 74 + include/patmatch.h | 116 + include/prototyp.h | 106 + include/rmtio.h | 167 + include/schily.h | 288 + include/sigblk.h | 80 + include/sigdefs.h | 81 + include/standard.h | 165 + include/statdefs.h | 350 ++ include/stdxlib.h | 65 + include/stkframe.h | 101 + include/strdefs.h | 125 + include/termcap.h | 73 + include/test_BITFIELDS_HTOL.c | 23 + include/test_VA_LIST_IS_ARRAY.c | 21 + include/timedefs.h | 143 + include/ttydefs.h | 131 + include/unixstd.h | 132 + include/unls.h | 85 + include/usal | 1 + include/utimdefs.h | 87 + include/utypes.h | 440 ++ include/vadefs.h | 131 + include/waitdefs.h | 152 + include/xconfig.h.in | 286 + libedc/CMakeLists.txt | 6 + libedc/README | 123 + libedc/crctable.out | 171 + libedc/ecc.h | 134 + libedc/edc_ecc.c | 983 ++++ libedc/edcspeed.c | 75 + libedc/encoder_tables | 47 + libedc/l2sq_table | 1180 ++++ libedc/scramble_table | 621 ++ libhfs_iso/CMakeLists.txt | 8 + libhfs_iso/README | 41 + libhfs_iso/block.c | 219 + libhfs_iso/block.h | 37 + libhfs_iso/btree.c | 740 +++ libhfs_iso/btree.h | 47 + libhfs_iso/data.c | 379 ++ libhfs_iso/data.h | 57 + libhfs_iso/file.c | 470 ++ libhfs_iso/file.h | 48 + libhfs_iso/gdata.c | 20 + libhfs_iso/hfs.c | 2098 +++++++ libhfs_iso/hfs.h | 208 + libhfs_iso/hybrid.h | 67 + libhfs_iso/internal.h | 369 ++ libhfs_iso/low.c | 529 ++ libhfs_iso/low.h | 111 + libhfs_iso/node.c | 473 ++ libhfs_iso/node.h | 48 + libhfs_iso/record.c | 551 ++ libhfs_iso/record.h | 52 + libhfs_iso/volume.c | 741 +++ libhfs_iso/volume.h | 58 + libparanoia/CMakeLists.txt | 6 + libparanoia/README.interface | 75 + libparanoia/README.paranoia | 83 + libparanoia/cdda_paranoia.h | 108 + libparanoia/gap.c | 244 + libparanoia/gap.h | 46 + libparanoia/isort.c | 159 + libparanoia/isort.h | 69 + libparanoia/overlap.c | 228 + libparanoia/overlap.h | 33 + libparanoia/overlapdef.txt | 20 + libparanoia/p_block.c | 474 ++ libparanoia/p_block.h | 210 + libparanoia/paranoia.c | 1741 ++++++ libparanoia/pmalloc.c | 89 + libparanoia/pmalloc.h | 42 + librols/CMakeLists.txt | 7 + librols/astoi.c | 151 + librols/astoll.c | 120 + librols/astoull.c | 182 + librols/breakline.c | 77 + librols/cmpbytes.c | 122 + librols/comerr.c | 268 + librols/default.c | 179 + librols/error.c | 62 + librols/fexec.c | 421 ++ librols/fillbytes.c | 110 + librols/findbytes.c | 164 + librols/getargs.c | 838 +++ librols/getav0.c | 155 + librols/getdomainname.c | 115 + librols/geterrno.c | 51 + librols/gethostid.c | 77 + librols/gethostname.c | 78 + librols/getpagesize.c | 65 + librols/handlecond.c | 287 + librols/movebytes.c | 136 + librols/raisecond.c | 179 + librols/rename.c | 144 + librols/saveargs.c | 135 + librols/seterrno.c | 54 + librols/snprintf.c | 102 + librols/spawn.c | 170 + librols/stdio/cvmod.c | 74 + librols/stdio/dat.c | 34 + librols/stdio/fcons.c | 94 + librols/stdio/fdown.c | 40 + librols/stdio/fdup.c | 51 + librols/stdio/ffileread.c | 51 + librols/stdio/ffilewrite.c | 43 + librols/stdio/fgetline.c | 84 + librols/stdio/file_raise.c | 59 + librols/stdio/fileclose.c | 40 + librols/stdio/fileluopen.c | 84 + librols/stdio/filemopen.c | 55 + librols/stdio/fileopen.c | 50 + librols/stdio/filepos.c | 45 + librols/stdio/fileread.c | 105 + librols/stdio/filereopen.c | 104 + librols/stdio/fileseek.c | 53 + librols/stdio/filesize.c | 47 + librols/stdio/filestat.c | 42 + librols/stdio/filewrite.c | 107 + librols/stdio/flag.c | 142 + librols/stdio/flush.c | 38 + librols/stdio/fpipe.c | 53 + librols/stdio/niread.c | 54 + librols/stdio/niwrite.c | 54 + librols/stdio/nixread.c | 69 + librols/stdio/nixwrite.c | 69 + librols/stdio/openfd.c | 44 + librols/stdio/peekc.c | 47 + librols/stdio/schilyio.h | 248 + librols/strcatl.c | 74 + librols/strdup.c | 62 + librols/streql.c | 53 + librols/swabbytes.c | 55 + librols/usleep.c | 139 + libunls/CMakeLists.txt | 12 + libunls/nls.h | 130 + libunls/nls_base.c | 263 + libunls/nls_config.c | 156 + libunls/nls_cp10000.c | 607 ++ libunls/nls_cp10006.c | 499 ++ libunls/nls_cp10007.c | 436 ++ libunls/nls_cp10029.c | 472 ++ libunls/nls_cp10079.c | 571 ++ libunls/nls_cp10081.c | 571 ++ libunls/nls_cp1250.c | 343 ++ libunls/nls_cp1251.c | 298 + libunls/nls_cp437.c | 436 ++ libunls/nls_cp737.c | 364 ++ libunls/nls_cp775.c | 364 ++ libunls/nls_cp850.c | 328 ++ libunls/nls_cp852.c | 328 ++ libunls/nls_cp855.c | 328 ++ libunls/nls_cp857.c | 292 + libunls/nls_cp860.c | 400 ++ libunls/nls_cp861.c | 436 ++ libunls/nls_cp862.c | 472 ++ libunls/nls_cp863.c | 436 ++ libunls/nls_cp864.c | 427 ++ libunls/nls_cp865.c | 436 ++ libunls/nls_cp866.c | 364 ++ libunls/nls_cp869.c | 328 ++ libunls/nls_cp874.c | 292 + libunls/nls_file.c | 189 + libunls/nls_iconv.c | 101 + libunls/nls_iso8859-1.c | 216 + libunls/nls_iso8859-14.c | 263 + libunls/nls_iso8859-15.c | 256 + libunls/nls_iso8859-2.c | 288 + libunls/nls_iso8859-3.c | 288 + libunls/nls_iso8859-4.c | 288 + libunls/nls_iso8859-5.c | 292 + libunls/nls_iso8859-6.c | 252 + libunls/nls_iso8859-7.c | 328 ++ libunls/nls_iso8859-8.c | 292 + libunls/nls_iso8859-9.c | 252 + libunls/nls_koi8-r.c | 364 ++ libunls/nls_koi8-u.c | 364 ++ libusal/CMakeLists.txt | 10 + libusal/pg.h | 75 + libusal/rdummy.c | 49 + libusal/scsi-aix.c | 428 ++ libusal/scsi-amigaos.c | 771 +++ libusal/scsi-apollo.c | 550 ++ libusal/scsi-beos.c | 414 ++ libusal/scsi-bsd-os.c | 443 ++ libusal/scsi-bsd.c | 992 ++++ libusal/scsi-dos.c | 562 ++ libusal/scsi-hpux.c | 363 ++ libusal/scsi-linux-ata.c | 1188 ++++ libusal/scsi-linux-pg.c | 587 ++ libusal/scsi-linux-sg.c | 1754 ++++++ libusal/scsi-mac-iokit.c | 539 ++ libusal/scsi-next.c | 419 ++ libusal/scsi-openserver.c | 1015 ++++ libusal/scsi-os2.c | 630 ++ libusal/scsi-osf.c | 445 ++ libusal/scsi-qnx.c | 316 + libusal/scsi-remote.c | 1213 ++++ libusal/scsi-sgi.c | 479 ++ libusal/scsi-sun.c | 1133 ++++ libusal/scsi-unixware.c | 922 +++ libusal/scsi-vms.c | 540 ++ libusal/scsi-wnt.c | 1848 ++++++ libusal/scsierrs.c | 1008 ++++ libusal/scsihack.c | 483 ++ libusal/scsihelp.c | 56 + libusal/scsiopen.c | 464 ++ libusal/scsitransp.c | 1345 +++++ libusal/usal/aspi-dos.h | 169 + libusal/usal/aspi-win32.h | 208 + libusal/usal/scsicdb.h | 260 + libusal/usal/scsidefs.h | 136 + libusal/usal/scsireg.h | 1240 ++++ libusal/usal/scsisense.h | 216 + libusal/usal/scsitransp.h | 264 + libusal/usal/spti-wnt.h | 143 + libusal/usal/srb_os2.h | 179 + libusal/usal/usalcmd.h | 211 + libusal/usal/usalio.h | 79 + libusal/usal/usalops.h | 85 + libusal/usalsettarget.c | 58 + libusal/usaltimes.c | 60 + libusal/usaltimes.h | 34 + misc/MKNOD.hpux | 59 + misc/MKNOD.hpux-800 | 92 + misc/burnstuff | 25 + misc/make_diskt@2.sh | 56 + misc/rc.pp | 76 + misc/shared_lib_patch_incomplete.diff | 138 + netscsid/CMakeLists.txt | 13 + netscsid/netscsid.c | 972 ++++ netscsid/netscsid.dfl | 62 + readom/CMakeLists.txt | 19 + readom/io.c | 193 + readom/readom.1 | 497 ++ readom/readom.c | 2194 +++++++ wodim/CMakeLists.txt | 37 + wodim/audiosize.c | 289 + wodim/auheader.h | 40 + wodim/auinfo.c | 525 ++ wodim/cd_misc.c | 144 + wodim/cdr_drv.c | 318 + wodim/cdtext.c | 546 ++ wodim/cdtext.h | 143 + wodim/clone.c | 270 + wodim/crc16.c | 160 + wodim/crc16.h | 41 + wodim/cue.c | 1198 ++++ wodim/defaults.c | 139 + wodim/defaults.h | 14 + wodim/diskid.c | 522 ++ wodim/drv_7501.c | 1030 ++++ wodim/drv_jvc.c | 1433 +++++ wodim/drv_mmc.c | 4362 ++++++++++++++ wodim/drv_philips.c | 1346 +++++ wodim/drv_simul.c | 393 ++ wodim/drv_sony.c | 1364 +++++ wodim/fifo.c | 878 +++ wodim/getnum.c | 123 + wodim/iso9660.h | 180 + wodim/isosize.c | 86 + wodim/misc.c | 82 + wodim/mmcvendor.h | 87 + wodim/modes.c | 289 + wodim/movesect.c | 104 + wodim/movesect.h | 45 + wodim/scsi_cdr.c | 2918 ++++++++++ wodim/scsi_cdr_mmc4.c | 80 + wodim/scsi_mmc.c | 411 ++ wodim/scsi_mmc4.c | 83 + wodim/scsi_scan.c | 379 ++ wodim/scsi_scan.h | 44 + wodim/scsimmc.h | 593 ++ wodim/sector.c | 263 + wodim/subchan.c | 997 ++++ wodim/wm_packet.c | 306 + wodim/wm_session.c | 51 + wodim/wm_track.c | 50 + wodim/wodim.1 | 2369 ++++++++ wodim/wodim.c | 4701 +++++++++++++++ wodim/wodim.dfl | 48 + wodim/wodim.h | 1212 ++++ wodim/xio.c | 164 + wodim/xio.h | 54 + 581 files changed, 200577 insertions(+) create mode 100644 3rd-party/dirsplit/CMakeLists.txt create mode 100644 3rd-party/dirsplit/ChangeLog create mode 100644 3rd-party/dirsplit/README create mode 100755 3rd-party/dirsplit/dirsplit create mode 100644 3rd-party/dirsplit/dirsplit.1 create mode 100644 3rd-party/geteltorito.1 create mode 100644 3rd-party/geteltorito/README.geteltorito create mode 100644 3rd-party/geteltorito/geteltorito.pl create mode 100644 3rd-party/zisofs_tools/CHANGES create mode 100644 3rd-party/zisofs_tools/CMakeLists.txt create mode 100644 3rd-party/zisofs_tools/COPYING create mode 100644 3rd-party/zisofs_tools/INSTALL create mode 100644 3rd-party/zisofs_tools/MCONFIG.in create mode 100644 3rd-party/zisofs_tools/MRULES create mode 100644 3rd-party/zisofs_tools/Makefile create mode 100644 3rd-party/zisofs_tools/README create mode 100644 3rd-party/zisofs_tools/aclocal.m4 create mode 100644 3rd-party/zisofs_tools/compress.c create mode 100644 3rd-party/zisofs_tools/config.h.in create mode 100755 3rd-party/zisofs_tools/configure create mode 100644 3rd-party/zisofs_tools/configure.in create mode 100644 3rd-party/zisofs_tools/copytime.c create mode 100644 3rd-party/zisofs_tools/hash.c create mode 100644 3rd-party/zisofs_tools/install-sh create mode 100644 3rd-party/zisofs_tools/iso9660.c create mode 100644 3rd-party/zisofs_tools/iso9660.h create mode 100644 3rd-party/zisofs_tools/mkzftree.1 create mode 100644 3rd-party/zisofs_tools/mkzftree.c create mode 100644 3rd-party/zisofs_tools/mkzftree.h create mode 100644 3rd-party/zisofs_tools/uncompress.c create mode 100644 3rd-party/zisofs_tools/util.c create mode 100644 3rd-party/zisofs_tools/version create mode 100644 3rd-party/zisofs_tools/walk.c create mode 100644 3rd-party/zisofs_tools/workers.c create mode 100644 3rd-party/zisofs_tools/zisofs-tools.spec create mode 100644 3rd-party/zisofs_tools/zisofs-tools.spec.in create mode 100644 3rd-party/zisofs_tools/zisofs.magic create mode 100644 ABOUT create mode 100644 CMakeLists.txt create mode 100644 COPYING create mode 100644 Changelog create mode 100644 FAQ create mode 100644 FORK create mode 100644 INSTALL create mode 100644 Makefile create mode 100644 START create mode 100644 TODO create mode 100644 VERSION create mode 100644 doc/ANNOUNCEMENTs/AN-2.0 create mode 100644 doc/ANNOUNCEMENTs/AN-2.01 create mode 100644 doc/ANNOUNCEMENTs/AN-2.01.01a01 create mode 100644 doc/ANNOUNCEMENTs/AN-2.01.01a03 create mode 100644 doc/ANNOUNCEMENTs/AN-2.01.01a04 create mode 100644 doc/ANNOUNCEMENTs/AN-2.01.01a05 create mode 100644 doc/ANNOUNCEMENTs/AN-2.01.01a06 create mode 100644 doc/ANNOUNCEMENTs/AN-2.01.01a07 create mode 100644 doc/ANNOUNCEMENTs/AN-2.01.01a08 create mode 100644 doc/DOC-OVERVIEW create mode 100644 doc/PORTABILITY create mode 100644 doc/READMEs/README.ATAPI create mode 100644 doc/READMEs/README.ATAPI.setup create mode 100644 doc/READMEs/README.audio create mode 100644 doc/READMEs/README.cdplus create mode 100644 doc/READMEs/README.cdtext create mode 100644 doc/READMEs/README.copy create mode 100644 doc/READMEs/README.multi create mode 100644 doc/READMEs/README.netscsid create mode 100644 doc/READMEs/README.sony create mode 100644 doc/READMEs/README.suidroot create mode 100644 doc/READMEs/README.verify create mode 100644 doc/WHY create mode 100644 doc/genisoimage/README create mode 100644 doc/genisoimage/README.alphaboot create mode 100644 doc/genisoimage/README.compression create mode 100644 doc/genisoimage/README.eltorito create mode 100644 doc/genisoimage/README.graft_dirs create mode 100644 doc/genisoimage/README.hfs_boot create mode 100644 doc/genisoimage/README.hfs_magic create mode 100644 doc/genisoimage/README.hide create mode 100644 doc/genisoimage/README.hppaboot create mode 100644 doc/genisoimage/README.joliet create mode 100644 doc/genisoimage/README.macosx create mode 100644 doc/genisoimage/README.mipsboot create mode 100644 doc/genisoimage/README.mipselboot create mode 100644 doc/genisoimage/README.mkhybrid create mode 100644 doc/genisoimage/README.prep_boot create mode 100644 doc/genisoimage/README.releasenotes create mode 100644 doc/genisoimage/README.rootinfo create mode 100644 doc/genisoimage/README.session create mode 100644 doc/genisoimage/README.sort create mode 100644 doc/genisoimage/README.sparcboot create mode 100644 doc/genisoimage/README.sunx86boot create mode 100644 doc/icedax/FAQ create mode 100644 doc/icedax/Frontends create mode 100644 doc/icedax/HOWTOUSE create mode 100644 doc/icedax/NEEDED create mode 100644 doc/icedax/OtherProgs create mode 100644 doc/icedax/README create mode 100644 doc/icedax/THANKS create mode 100644 doc/icedax/TODO create mode 100644 doc/icedax/cdda_links create mode 100755 doc/icedax/tracknames.pl create mode 100644 doc/icedax/tracknames.txt create mode 100644 doc/plattforms/README.aix5l create mode 100644 doc/plattforms/README.freebsd create mode 100644 doc/plattforms/README.linux create mode 100644 doc/plattforms/README.parallel create mode 100644 doc/plattforms/README.sunos create mode 100644 doc/plattforms/README.win32 create mode 100644 doc/wodim/README.DiskT@2 create mode 100644 doc/wodim/README.WORM create mode 100644 doc/wodim/README.cdrw create mode 100644 doc/wodim/README.clone create mode 100644 doc/wodim/README.raw create mode 100644 genisoimage/CMakeLists.txt create mode 100644 genisoimage/COPYING create mode 100644 genisoimage/ChangeLog create mode 100644 genisoimage/ChangeLog.mkhybrid create mode 100644 genisoimage/RELEASE create mode 100644 genisoimage/TODO create mode 100644 genisoimage/apple.c create mode 100644 genisoimage/apple.h create mode 100644 genisoimage/apple_driver.8 create mode 100644 genisoimage/apple_driver.c create mode 100644 genisoimage/boot-alpha.c create mode 100644 genisoimage/boot-hppa.c create mode 100644 genisoimage/boot-mips.c create mode 100644 genisoimage/boot-mipsel.c create mode 100644 genisoimage/boot.c create mode 100644 genisoimage/bootinfo.h create mode 100644 genisoimage/bswap.h create mode 100644 genisoimage/checksum.c create mode 100644 genisoimage/checksum.h create mode 100644 genisoimage/config.h create mode 100644 genisoimage/defaults.h create mode 100644 genisoimage/desktop.c create mode 100644 genisoimage/diag/README create mode 100644 genisoimage/diag/devdump.1 create mode 100644 genisoimage/diag/dump.c create mode 100644 genisoimage/diag/isodebug.1 create mode 100644 genisoimage/diag/isodebug.c create mode 100644 genisoimage/diag/isodump.1 create mode 100644 genisoimage/diag/isodump.c create mode 100644 genisoimage/diag/isoinfo.1 create mode 100644 genisoimage/diag/isoinfo.c create mode 100644 genisoimage/diag/isovfy.1 create mode 100644 genisoimage/diag/isovfy.c create mode 100644 genisoimage/diskmbr.h create mode 100644 genisoimage/dvd_file.c create mode 100644 genisoimage/dvd_file.h create mode 100644 genisoimage/dvd_reader.c create mode 100644 genisoimage/dvd_reader.h create mode 100644 genisoimage/eltorito.c create mode 100644 genisoimage/endian.c create mode 100644 genisoimage/endianconv.h create mode 100644 genisoimage/exclude.c create mode 100644 genisoimage/exclude.h create mode 100644 genisoimage/files.c create mode 100644 genisoimage/fnmatch.c create mode 100644 genisoimage/fnmatch.h create mode 100644 genisoimage/genisoimage.1 create mode 100644 genisoimage/genisoimage.c create mode 100644 genisoimage/genisoimage.h create mode 100644 genisoimage/genisoimagerc.5 create mode 100644 genisoimage/getopt.c create mode 100644 genisoimage/getopt.h create mode 100644 genisoimage/getopt1.c create mode 100644 genisoimage/hash.c create mode 100755 genisoimage/hdisk.pl create mode 100644 genisoimage/ifo_read.c create mode 100644 genisoimage/ifo_read.h create mode 100644 genisoimage/ifo_types.h create mode 100644 genisoimage/iso9660.h create mode 100644 genisoimage/joliet.c create mode 100644 genisoimage/jte.c create mode 100644 genisoimage/jte.h create mode 100644 genisoimage/mac_label.c create mode 100644 genisoimage/mac_label.h create mode 100644 genisoimage/mactypes.h create mode 100644 genisoimage/magic create mode 100644 genisoimage/mapping create mode 100644 genisoimage/match.c create mode 100644 genisoimage/match.h create mode 100644 genisoimage/md5.c create mode 100644 genisoimage/md5.h create mode 100644 genisoimage/mkhybrid.8 create mode 100644 genisoimage/more.mapping create mode 100644 genisoimage/multi.c create mode 100644 genisoimage/name.c create mode 100644 genisoimage/rock.c create mode 100644 genisoimage/rsync.c create mode 100644 genisoimage/scsi.c create mode 100644 genisoimage/scsi.h create mode 100644 genisoimage/sha1.c create mode 100644 genisoimage/sha1.h create mode 100644 genisoimage/sha256.c create mode 100644 genisoimage/sha256.h create mode 100644 genisoimage/sha512.c create mode 100644 genisoimage/sha512.h create mode 100644 genisoimage/stream.c create mode 100644 genisoimage/sunlabel.h create mode 100644 genisoimage/tree.c create mode 100644 genisoimage/udf.c create mode 100644 genisoimage/udf.h create mode 100644 genisoimage/udf_fs.h create mode 100644 genisoimage/vms.c create mode 100644 genisoimage/vms.h create mode 100644 genisoimage/volume.c create mode 100644 genisoimage/write.c create mode 100644 icedax/CMakeLists.txt create mode 100644 icedax/Changelog create mode 100644 icedax/GPL create mode 100644 icedax/aifc.c create mode 100644 icedax/aifc.h create mode 100644 icedax/aiff.c create mode 100644 icedax/aiff.h create mode 100644 icedax/base64.c create mode 100644 icedax/base64.h create mode 100644 icedax/byteorder.h create mode 100644 icedax/cd_extra.c create mode 100644 icedax/cd_text.c create mode 120000 icedax/cdda2mp3 create mode 100644 icedax/cdda2mp3.new create mode 100755 icedax/cdda2ogg create mode 100644 icedax/cdda2ogg.1 create mode 100644 icedax/cdda2ogg.mk1 create mode 100644 icedax/config.h create mode 100755 icedax/configure create mode 100644 icedax/configure.in create mode 100644 icedax/exitcodes.h create mode 100644 icedax/global.h create mode 100644 icedax/icedax.1 create mode 100644 icedax/icedax.c create mode 100644 icedax/icedax.h create mode 100755 icedax/inf2cdtext.pl create mode 100644 icedax/interface.c create mode 100644 icedax/interface.h create mode 100644 icedax/ioctl.c create mode 100644 icedax/ioctl.h create mode 100644 icedax/lconfig.h create mode 100644 icedax/lconfig.h.in create mode 100644 icedax/list_audio_tracks.1 create mode 100644 icedax/local.cnf.in create mode 100644 icedax/lowlevel.h create mode 100644 icedax/mycdrom.h create mode 100644 icedax/mytype.h create mode 100755 icedax/pitchplay create mode 100644 icedax/pitchplay.1 create mode 100644 icedax/raw.c create mode 100644 icedax/raw.h create mode 100755 icedax/readmult create mode 100644 icedax/readmult.1 create mode 100644 icedax/resample.c create mode 100644 icedax/resample.h create mode 100644 icedax/ringbuff.c create mode 100644 icedax/ringbuff.h create mode 100644 icedax/scsi_cmds.c create mode 100644 icedax/scsi_cmds.h create mode 100644 icedax/semshm.c create mode 100644 icedax/semshm.h create mode 100644 icedax/setuid.c create mode 100644 icedax/setuid.h create mode 100644 icedax/sha.h create mode 100644 icedax/sha_func.c create mode 100644 icedax/sndconfig.c create mode 100644 icedax/sndconfig.h create mode 100644 icedax/sndfile.h create mode 100644 icedax/sun.c create mode 100644 icedax/sun.h create mode 100644 icedax/toc.c create mode 100644 icedax/toc.h create mode 100644 icedax/version.sed create mode 100644 icedax/wav.c create mode 100644 icedax/wav.h create mode 100644 include/AddNetworkBits.cmake create mode 100644 include/AddScgBits.cmake create mode 100644 include/AddSchilyBits.cmake create mode 100644 include/CMakeLists.txt create mode 100644 include/align.h.in create mode 100644 include/allocax.h create mode 100644 include/avoffset.h create mode 100644 include/btorder.h create mode 100644 include/ccomdefs.h create mode 100644 include/deflts.h create mode 100644 include/device.h create mode 100644 include/dirdefs.h create mode 100644 include/fctldefs.h create mode 100644 include/getargs.h create mode 100644 include/getcwd.h create mode 100644 include/glibc_elf.h create mode 100644 include/intcvt.h create mode 100644 include/jmpdefs.h create mode 100644 include/libport.h create mode 100644 include/librmt.h create mode 100644 include/maxpath.h create mode 100644 include/mconfig.h create mode 100644 include/mmapdefs.h create mode 100644 include/patmatch.h create mode 100644 include/prototyp.h create mode 100644 include/rmtio.h create mode 100644 include/schily.h create mode 100644 include/sigblk.h create mode 100644 include/sigdefs.h create mode 100644 include/standard.h create mode 100644 include/statdefs.h create mode 100644 include/stdxlib.h create mode 100644 include/stkframe.h create mode 100644 include/strdefs.h create mode 100644 include/termcap.h create mode 100644 include/test_BITFIELDS_HTOL.c create mode 100644 include/test_VA_LIST_IS_ARRAY.c create mode 100644 include/timedefs.h create mode 100644 include/ttydefs.h create mode 100644 include/unixstd.h create mode 100644 include/unls.h create mode 120000 include/usal create mode 100644 include/utimdefs.h create mode 100644 include/utypes.h create mode 100644 include/vadefs.h create mode 100644 include/waitdefs.h create mode 100644 include/xconfig.h.in create mode 100644 libedc/CMakeLists.txt create mode 100644 libedc/README create mode 100644 libedc/crctable.out create mode 100644 libedc/ecc.h create mode 100644 libedc/edc_ecc.c create mode 100644 libedc/edcspeed.c create mode 100644 libedc/encoder_tables create mode 100644 libedc/l2sq_table create mode 100644 libedc/scramble_table create mode 100644 libhfs_iso/CMakeLists.txt create mode 100644 libhfs_iso/README create mode 100644 libhfs_iso/block.c create mode 100644 libhfs_iso/block.h create mode 100644 libhfs_iso/btree.c create mode 100644 libhfs_iso/btree.h create mode 100644 libhfs_iso/data.c create mode 100644 libhfs_iso/data.h create mode 100644 libhfs_iso/file.c create mode 100644 libhfs_iso/file.h create mode 100644 libhfs_iso/gdata.c create mode 100644 libhfs_iso/hfs.c create mode 100644 libhfs_iso/hfs.h create mode 100644 libhfs_iso/hybrid.h create mode 100644 libhfs_iso/internal.h create mode 100644 libhfs_iso/low.c create mode 100644 libhfs_iso/low.h create mode 100644 libhfs_iso/node.c create mode 100644 libhfs_iso/node.h create mode 100644 libhfs_iso/record.c create mode 100644 libhfs_iso/record.h create mode 100644 libhfs_iso/volume.c create mode 100644 libhfs_iso/volume.h create mode 100644 libparanoia/CMakeLists.txt create mode 100644 libparanoia/README.interface create mode 100644 libparanoia/README.paranoia create mode 100644 libparanoia/cdda_paranoia.h create mode 100644 libparanoia/gap.c create mode 100644 libparanoia/gap.h create mode 100644 libparanoia/isort.c create mode 100644 libparanoia/isort.h create mode 100644 libparanoia/overlap.c create mode 100644 libparanoia/overlap.h create mode 100644 libparanoia/overlapdef.txt create mode 100644 libparanoia/p_block.c create mode 100644 libparanoia/p_block.h create mode 100644 libparanoia/paranoia.c create mode 100644 libparanoia/pmalloc.c create mode 100644 libparanoia/pmalloc.h create mode 100644 librols/CMakeLists.txt create mode 100644 librols/astoi.c create mode 100644 librols/astoll.c create mode 100644 librols/astoull.c create mode 100644 librols/breakline.c create mode 100644 librols/cmpbytes.c create mode 100644 librols/comerr.c create mode 100644 librols/default.c create mode 100644 librols/error.c create mode 100644 librols/fexec.c create mode 100644 librols/fillbytes.c create mode 100644 librols/findbytes.c create mode 100644 librols/getargs.c create mode 100644 librols/getav0.c create mode 100644 librols/getdomainname.c create mode 100644 librols/geterrno.c create mode 100644 librols/gethostid.c create mode 100644 librols/gethostname.c create mode 100644 librols/getpagesize.c create mode 100644 librols/handlecond.c create mode 100644 librols/movebytes.c create mode 100644 librols/raisecond.c create mode 100644 librols/rename.c create mode 100644 librols/saveargs.c create mode 100644 librols/seterrno.c create mode 100644 librols/snprintf.c create mode 100644 librols/spawn.c create mode 100644 librols/stdio/cvmod.c create mode 100644 librols/stdio/dat.c create mode 100644 librols/stdio/fcons.c create mode 100644 librols/stdio/fdown.c create mode 100644 librols/stdio/fdup.c create mode 100644 librols/stdio/ffileread.c create mode 100644 librols/stdio/ffilewrite.c create mode 100644 librols/stdio/fgetline.c create mode 100644 librols/stdio/file_raise.c create mode 100644 librols/stdio/fileclose.c create mode 100644 librols/stdio/fileluopen.c create mode 100644 librols/stdio/filemopen.c create mode 100644 librols/stdio/fileopen.c create mode 100644 librols/stdio/filepos.c create mode 100644 librols/stdio/fileread.c create mode 100644 librols/stdio/filereopen.c create mode 100644 librols/stdio/fileseek.c create mode 100644 librols/stdio/filesize.c create mode 100644 librols/stdio/filestat.c create mode 100644 librols/stdio/filewrite.c create mode 100644 librols/stdio/flag.c create mode 100644 librols/stdio/flush.c create mode 100644 librols/stdio/fpipe.c create mode 100644 librols/stdio/niread.c create mode 100644 librols/stdio/niwrite.c create mode 100644 librols/stdio/nixread.c create mode 100644 librols/stdio/nixwrite.c create mode 100644 librols/stdio/openfd.c create mode 100644 librols/stdio/peekc.c create mode 100644 librols/stdio/schilyio.h create mode 100644 librols/strcatl.c create mode 100644 librols/strdup.c create mode 100644 librols/streql.c create mode 100644 librols/swabbytes.c create mode 100644 librols/usleep.c create mode 100644 libunls/CMakeLists.txt create mode 100644 libunls/nls.h create mode 100644 libunls/nls_base.c create mode 100644 libunls/nls_config.c create mode 100644 libunls/nls_cp10000.c create mode 100644 libunls/nls_cp10006.c create mode 100644 libunls/nls_cp10007.c create mode 100644 libunls/nls_cp10029.c create mode 100644 libunls/nls_cp10079.c create mode 100644 libunls/nls_cp10081.c create mode 100644 libunls/nls_cp1250.c create mode 100644 libunls/nls_cp1251.c create mode 100644 libunls/nls_cp437.c create mode 100644 libunls/nls_cp737.c create mode 100644 libunls/nls_cp775.c create mode 100644 libunls/nls_cp850.c create mode 100644 libunls/nls_cp852.c create mode 100644 libunls/nls_cp855.c create mode 100644 libunls/nls_cp857.c create mode 100644 libunls/nls_cp860.c create mode 100644 libunls/nls_cp861.c create mode 100644 libunls/nls_cp862.c create mode 100644 libunls/nls_cp863.c create mode 100644 libunls/nls_cp864.c create mode 100644 libunls/nls_cp865.c create mode 100644 libunls/nls_cp866.c create mode 100644 libunls/nls_cp869.c create mode 100644 libunls/nls_cp874.c create mode 100644 libunls/nls_file.c create mode 100644 libunls/nls_iconv.c create mode 100644 libunls/nls_iso8859-1.c create mode 100644 libunls/nls_iso8859-14.c create mode 100644 libunls/nls_iso8859-15.c create mode 100644 libunls/nls_iso8859-2.c create mode 100644 libunls/nls_iso8859-3.c create mode 100644 libunls/nls_iso8859-4.c create mode 100644 libunls/nls_iso8859-5.c create mode 100644 libunls/nls_iso8859-6.c create mode 100644 libunls/nls_iso8859-7.c create mode 100644 libunls/nls_iso8859-8.c create mode 100644 libunls/nls_iso8859-9.c create mode 100644 libunls/nls_koi8-r.c create mode 100644 libunls/nls_koi8-u.c create mode 100644 libusal/CMakeLists.txt create mode 100644 libusal/pg.h create mode 100644 libusal/rdummy.c create mode 100644 libusal/scsi-aix.c create mode 100644 libusal/scsi-amigaos.c create mode 100644 libusal/scsi-apollo.c create mode 100644 libusal/scsi-beos.c create mode 100644 libusal/scsi-bsd-os.c create mode 100644 libusal/scsi-bsd.c create mode 100644 libusal/scsi-dos.c create mode 100644 libusal/scsi-hpux.c create mode 100644 libusal/scsi-linux-ata.c create mode 100644 libusal/scsi-linux-pg.c create mode 100644 libusal/scsi-linux-sg.c create mode 100644 libusal/scsi-mac-iokit.c create mode 100644 libusal/scsi-next.c create mode 100644 libusal/scsi-openserver.c create mode 100644 libusal/scsi-os2.c create mode 100644 libusal/scsi-osf.c create mode 100644 libusal/scsi-qnx.c create mode 100644 libusal/scsi-remote.c create mode 100644 libusal/scsi-sgi.c create mode 100644 libusal/scsi-sun.c create mode 100644 libusal/scsi-unixware.c create mode 100644 libusal/scsi-vms.c create mode 100644 libusal/scsi-wnt.c create mode 100644 libusal/scsierrs.c create mode 100644 libusal/scsihack.c create mode 100644 libusal/scsihelp.c create mode 100644 libusal/scsiopen.c create mode 100644 libusal/scsitransp.c create mode 100644 libusal/usal/aspi-dos.h create mode 100644 libusal/usal/aspi-win32.h create mode 100644 libusal/usal/scsicdb.h create mode 100644 libusal/usal/scsidefs.h create mode 100644 libusal/usal/scsireg.h create mode 100644 libusal/usal/scsisense.h create mode 100644 libusal/usal/scsitransp.h create mode 100644 libusal/usal/spti-wnt.h create mode 100644 libusal/usal/srb_os2.h create mode 100644 libusal/usal/usalcmd.h create mode 100644 libusal/usal/usalio.h create mode 100644 libusal/usal/usalops.h create mode 100644 libusal/usalsettarget.c create mode 100644 libusal/usaltimes.c create mode 100644 libusal/usaltimes.h create mode 100755 misc/MKNOD.hpux create mode 100755 misc/MKNOD.hpux-800 create mode 100755 misc/burnstuff create mode 100644 misc/make_diskt@2.sh create mode 100755 misc/rc.pp create mode 100644 misc/shared_lib_patch_incomplete.diff create mode 100644 netscsid/CMakeLists.txt create mode 100644 netscsid/netscsid.c create mode 100644 netscsid/netscsid.dfl create mode 100644 readom/CMakeLists.txt create mode 100644 readom/io.c create mode 100644 readom/readom.1 create mode 100644 readom/readom.c create mode 100644 wodim/CMakeLists.txt create mode 100644 wodim/audiosize.c create mode 100644 wodim/auheader.h create mode 100644 wodim/auinfo.c create mode 100644 wodim/cd_misc.c create mode 100644 wodim/cdr_drv.c create mode 100644 wodim/cdtext.c create mode 100644 wodim/cdtext.h create mode 100644 wodim/clone.c create mode 100644 wodim/crc16.c create mode 100644 wodim/crc16.h create mode 100644 wodim/cue.c create mode 100644 wodim/defaults.c create mode 100644 wodim/defaults.h create mode 100644 wodim/diskid.c create mode 100644 wodim/drv_7501.c create mode 100644 wodim/drv_jvc.c create mode 100644 wodim/drv_mmc.c create mode 100644 wodim/drv_philips.c create mode 100644 wodim/drv_simul.c create mode 100644 wodim/drv_sony.c create mode 100644 wodim/fifo.c create mode 100644 wodim/getnum.c create mode 100644 wodim/iso9660.h create mode 100644 wodim/isosize.c create mode 100644 wodim/misc.c create mode 100644 wodim/mmcvendor.h create mode 100644 wodim/modes.c create mode 100644 wodim/movesect.c create mode 100644 wodim/movesect.h create mode 100644 wodim/scsi_cdr.c create mode 100644 wodim/scsi_cdr_mmc4.c create mode 100644 wodim/scsi_mmc.c create mode 100644 wodim/scsi_mmc4.c create mode 100644 wodim/scsi_scan.c create mode 100644 wodim/scsi_scan.h create mode 100644 wodim/scsimmc.h create mode 100644 wodim/sector.c create mode 100644 wodim/subchan.c create mode 100644 wodim/wm_packet.c create mode 100644 wodim/wm_session.c create mode 100644 wodim/wm_track.c create mode 100644 wodim/wodim.1 create mode 100644 wodim/wodim.c create mode 100644 wodim/wodim.dfl create mode 100644 wodim/wodim.h create mode 100644 wodim/xio.c create mode 100644 wodim/xio.h diff --git a/3rd-party/dirsplit/CMakeLists.txt b/3rd-party/dirsplit/CMakeLists.txt new file mode 100644 index 0000000..497774c --- /dev/null +++ b/3rd-party/dirsplit/CMakeLists.txt @@ -0,0 +1,3 @@ +PROJECT (DIRSPLIT C) +INSTALL(PROGRAMS dirsplit DESTINATION bin) +INSTALL(FILES dirsplit.1 DESTINATION share/man/man1) diff --git a/3rd-party/dirsplit/ChangeLog b/3rd-party/dirsplit/ChangeLog new file mode 100644 index 0000000..b5cd780 --- /dev/null +++ b/3rd-party/dirsplit/ChangeLog @@ -0,0 +1,27 @@ +*0.3.3: 2006/03 + +* code refactoring, much more readable now +* dropped the "du" exploration mode +* dropped the read-from-file mode and input "correct" cludge + * Use the new -T option to specify arbitrary input, and avoid dupes. + * Use the new option -F to follow symlinks +* option name fixes +* new option simple/stupid mode + * no space-efficiency optimisation, instead trying to store in alphabetic + order + +0.3.2: + +* cosmetic, correct usage and long help + +0.3.1: + +* proper fix for the = filenames + +0.3: + +* rewrite of some data input code, now using internal directory scanning +(exploration) go get data, not trusting du -a crap +* estimative calculation for filesystem overhead for directory entries +* workaround for = in filenames +* much, much more diff --git a/3rd-party/dirsplit/README b/3rd-party/dirsplit/README new file mode 100644 index 0000000..3867a12 --- /dev/null +++ b/3rd-party/dirsplit/README @@ -0,0 +1,7 @@ +Package: dirsplit +License: GPLv2 (until I change my mind) +Purpose: put files from a directory structure in subdirectories of specified +size or create catalogues for mkisofs so that generated volumes waste as few +space as possible +Algrorithm: randomising FirstFit or BestFit +Usage: Selfexplaining diff --git a/3rd-party/dirsplit/dirsplit b/3rd-party/dirsplit/dirsplit new file mode 100755 index 0000000..1348976 --- /dev/null +++ b/3rd-party/dirsplit/dirsplit @@ -0,0 +1,611 @@ +#!/usr/bin/perl +# -*- Mode: Perl -*- +# dirsplit --- +# Author : Eduard Bloch ( blade@debian.org ) +# Last Modified On : Sun, 06 Feb 2005 14:59:51 +0100 +# Status : Working, but use with caution! +# License: GPLv2 + +my $version="0.3.3"; + +require v5.8.1; +use strict; +use List::Util 'shuffle'; +use Getopt::Long qw(:config no_ignore_case bundling); +use File::Basename; +use File::Path; +use Cwd 'abs_path'; + +my $ret=0; +my $max="4488M"; +my $prefix="vol_"; +my $acc=20; +my $emode=1; +my $bsize=2048; +my $ofac =50; +my $opt_help; +my $opt_longhelp; +my $opt_sim; +my $opt_dir; +my $opt_flat; +my $opt_move; +my $opt_ver; +my $opt_sln; +my $opt_ln; +my $opt_filter; +my $opt_simple; +my $opt_follow; +my $get_ver; +my $opt_listfile; + + +my %options = ( + "h|help" => \$opt_help, + "d|dirhier" => \$opt_dir, + "flat" => \$opt_flat, + "f|filter=s" => \$opt_filter, + "F|follow" => \$opt_follow, + "e|expmode=i" => \$emode, + "o|overhead=i" => \$ofac, + "b|blksize=i" => \$bsize, + "n|no-act" => \$opt_sim, + "m|move" => \$opt_move, + "l|symlink" => \$opt_sln, + "L|hardlink" => \$opt_ln, + "v|verbose" => \$opt_ver, + "s|size=s" => \$max, + "S|simple" => \$opt_simple, + "T|input=s" => \$opt_listfile, + "p|prefix=s" => \$prefix, + "a|accuracy=i" => \$acc, + "H|longhelp" => \$opt_longhelp, + "version" => \$get_ver +); + +&show_help(1) unless ( GetOptions(%options)); +&show_help(1) if $opt_help; +&show_longhelp if $opt_longhelp; +if($get_ver) { + print $version; + exit 0; +} + +# ignore the old dirhier setting since it is default now and disable the flag when opt_flat is specified +$opt_dir = !$opt_flat; + +$opt_ver = 1 if $opt_sim; +$opt_move=1 if ($opt_sln || $opt_ln); + +# big list @sizes containing the "items" (object sizes) +# %names hash mapping "items" (size as key) to arrays with filenames/subarrays for coalesced files +my @sizes; +my %names; + +# result containts the calculated output. In simple mode, an +# array (bins) of atoms (files or filelists). Otherwise, sizes +# instead of atoms, to be resolved with %names. +my @result; + +my $inputdir; + +$max=fixnr($max); +# about 400kB for iso headers +$max-=420000; + +# init default value +my $globwaste=0; + + +if(-d $ARGV[0] || (-d readlink($ARGV[0]))) { + syswrite(STDOUT,"Building file list, please wait...\n"); + # save the absolut path before doing anyhting + $inputdir=Cwd::abs_path($ARGV[0]); + &explore($inputdir); +} +elsif($opt_listfile) { + if($opt_listfile eq "-") { + &parseListe(\*STDIN); + } + else { + open(my $in, "<", $opt_listfile) || die "Cannot open list file $opt_listfile\n"; + &parseListe($in); + } +} +else { + die "Error: please specify a directory\n"; +} + +# check for pointless requests +my $testsize=0; +for(@sizes) { + die "Too large object(s) ($_) for the given max size: @{$names{$_}} (maybe coalesced in arrays, check manually)\n" if($_>$max); + + $testsize+=$_; +} + +$acc=1 if ($testsize <= $max); # just generate a list, more trials are pointless +print "\nSumm: $testsize\n" if($opt_ver); +die "Nothing to do!\n" if($testsize<4096); # looks like just an empty dir + +if(!$opt_simple) { + syswrite(STDOUT, "Calculating, please wait...\n"); + my $starttime=time; + $globwaste=$max*@sizes; + for(1..$acc) { + syswrite(STDOUT,"."); + my @tmp; + #my $waste = bp_bestfit($max, \@in, \@tmp); + my $waste = bp_firstfit($max, \@sizes, \@tmp); + #print "D: waste - $waste\n"; + if($waste < $globwaste) { + $globwaste=$waste; + @result=@tmp; + } + if($starttime && time > $starttime+10) { + syswrite(STDOUT,"\nSpent already over 10s (for $_ iterations)\nHint: reduce accuracy to make it faster!\n"); + undef $starttime; + } + @sizes=shuffle(@sizes); + } + +} + +print "\nCalculated, using ".(scalar @result)." volumes.\n"; +print "Wasted: $globwaste Byte (estimated, check mkisofs -print-size ...)\n"; + +# and the real work +my $i=0; +my $inDirLen=length($inputdir); +for(@result) { + $i++; + my $o; + open($o, ">$prefix$i.list") if(! ($opt_move || $opt_sim)); + my $dirPrefix=dirname($prefix); + my $prefixBase=basename($prefix); + my $dirPrefixAbs=Cwd::abs_path($dirPrefix); + + for(@{$_}) { + my $stuffRef; + + # For simple mode, the files/atoms are already resolved, otherwise take + # the next with appropriate size. + my $item= $opt_simple ? $_ : shift(@{$names{$_}}); + + # make reference point to an array with our files, create a list if needed + if(ref($item) eq "ARRAY") { + $stuffRef=$item; + } + else { + $stuffRef=[$item]; + } + + for my $file (@$stuffRef) { + my $relFile=substr($file,$inDirLen+1); + my $base=basename($relFile); + if($opt_move) { + my $targetsubdir = $dirPrefixAbs."/$prefixBase$i"; + $targetsubdir .= "/".dirname($relFile) if($opt_dir); + print "$file -> $targetsubdir/$base\n" if($opt_ver); + if(!$opt_sim) { + mkpath $targetsubdir || die "Problems creating $targetsubdir\n"; + # last check + die "Could not create $targetsubdir?\n" if(!(-d $targetsubdir && -w $targetsubdir)); + if($opt_sln) { + symlink($file, "$targetsubdir/$base"); + } + elsif($opt_ln) { + if(-d $file && !-l $file) { + mkdir "$targetsubdir/$base"; + } + else { + link($file, "$targetsubdir/$base"); + } + } + else { + rename($file, "$targetsubdir/$base"); + } + } + } + else { + # escape = in mkisofs catalogs, they are used as separator + my $isoname = ($opt_dir?$relFile : $base); + $isoname=~s/=/\\=/g; + my $sourcefile=$file; + $sourcefile=~s/=/\\=/g; + print "$i: /$isoname=$sourcefile\n" if $opt_ver; + print $o "/$isoname=$sourcefile\n" if(!$opt_sim); + } + } + } + close($o) if($o); +} + +exit $ret; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# recursive function +# parameter: directory +# mode 1: descend as far as possible and index all non-directories +# mode 2++: +# put all files of a dir into coaleseced-object, then descend into each dir +sub explore { + (my $dir) = @_; + my @stuff; + my @dirs; + my @files; + + opendir(DIR, $dir) || die "Could not open $dir\n"; + @stuff=readdir(DIR); + + if($opt_simple) { + @stuff=sort { lc($a) cmp lc($b) } @stuff; + } + + foreach my $f (@stuff) { + next if ($f eq "." || $f eq ".."); + #print "\$f=$opt_filter;\n"; + + $f="$dir/$f" if($dir ne "."); + + if ($opt_filter) { + next unless (eval("\$f=~$opt_filter;")); + } + + if(-l $f && ! $opt_follow) { + push(@files, $f); + } + elsif(-d $f) { + push(@dirs, $f); + } + else { + push(@files, $f); + } + } + closedir(DIR); + + if( (@dirs + @files) == 0 ) { + # this one is empty, register for cosmetics reason + &insitem(getsize($dir), $dir); + return; + } + + # recurse on directories + &explore($_) for(@dirs); + + # and now process files + if($emode==1) { + &insitem(getsize($_), $_) for(@files); + } + else { + # handle coalesced objects - first some sanity checks and splitting if + # required + + my $filesum=0; + for(@files) { + my $tmp=getsize($_); + if($tmp>$max) { + # already too large, stop right here + die "Too large file ($_) for the given max size $max, aborting...\n"; + } + $filesum += $tmp; + }; + + # handle coal. objects becoming too large + if($filesum>$max) { + # too large coal. object... + if($emode==3) { + # don't coalesc in this mode, do like mode 1 above, leave them alone + &insitem(getsize($_), $_) for(@files); + return; + } + # a bit complicated, split file set while creating coal.objects + if($emode==4) { + my $partsum=0; + my @sorted=sort(@files); + my @tmpvol; + for(my $i=0;$i<=$#sorted;$i++) { +# print "D: i: $i, partsum: $partsum, file: $sorted[$i]\n"; + my $tmp=getsize($sorted[$i]); + $partsum+=$tmp; + if($partsum>$max) { + # undo the last step then build the coal.object + $partsum-=$tmp; + $i--; + + &insitem($partsum, \@tmpvol); + # reset temporaries + undef @tmpvol; + undef $partsum; + } + else { + push(@tmpvol, $sorted[$i]); + } + } + return; + } + } + + # ok, building a coalesced object for simple cases + if($filesum) { + &insitem($filesum, \@files); + } + } +} + +my $simplePos=0; +my @simpleBinSizes; + +# args: size, object (filename or list reference) +sub insitem { + my ($size, $object) = @_; + # normaly, put the items into the pool for calculation. In simple mode, calculate here + + push(@sizes, $size); + push(@{$names{$size}},$object); + + if($opt_simple) { + # now the simplest method to fill the bins, just take a new one when the + # object-to-be-added no longer fits + if($simpleBinSizes[$simplePos]+$size > $max) { + $globwaste += ( $max-$simpleBinSizes[$simplePos] ); + $simplePos++; + }; + $simpleBinSizes[$simplePos]+=$size; + push( @{$result[$simplePos]}, $object); + } + +} + +sub getsize { + (my $file) = @_; + my $size = ((stat($file))[7]); + my $rest = ($size % $bsize); + $size = ($size + $bsize - $rest) if ($rest); + return 1+int(200 + $ofac*length(basename($file)) + $size); +} + +sub parseListe { + my $fh=${$_[0]}; + while(<$fh>) { + if(/^(\w+)\s+(.+)/) { + &insitem(fixnr($1), $2); + } + } +} + +sub fixnr { + # args: + # Number + # optional: default multiplier + my $fac; + my $nr; + if($_[0]=~/(\d+)(\D)/) { + $nr=$1; + $fac=$2; + } + elsif(defined($_[1])) { + $nr=$_[0]; + $fac=$_[1]; + } + else { + return $_[0]; + } + return $nr*1000000000 if($fac eq "g"); + return $nr*1073741824 if($fac eq "G"); + return $nr*1000000 if($fac eq "m"); + return $nr*1048576 if($fac eq "M"); + return $nr*1000 if($fac eq "k"); + return $nr*1024 if($fac eq "K"); + return $nr if($fac eq "b"); + die "$fac is not a valid multiplier!"; +} + + +sub show_help { + print < + + -H|--longhelp Show the long help message with more advanced options + -n|--no-act Only print the commands, no action (implies -v) + -s|--size NUMBER - Size of the medium (default: $max) + -e|--expmode NUMBER - directory exploration mode (recommended, see long help) + -m|--move Move files to target dirs (default: create mkisofs catalogs) + -p|--prefix STRING - first part of catalog/directory name (default: vol_) + -h|--help Show this option summary + -v|--verbose More verbosity + +The complete help can be displayed with the --longhelp (-H) option. +The default mode is creating file catalogs useable with: + mkisofs -D -r --joliet-long -graft-points -path-list CATALOG + +Example: +dirsplit -m -s 700M -e2 random_data_to_backup/ +EOM + ; + exit shift; +} + +sub show_longhelp { + my $msglong=" +dirsplit [options] [advanced options] < directory > + -n|--no-act Only print the commands, no action (implies -v) + -s|--size NUMBER - Size of the medium (default: $max) + -m|--move Move files to target dirs (default: create mkisofs catalogs) + -l|--symlink similar to -m but just creates symlinks in the target dirs + -L|--hardlink like -l but creates hardlinks + -p|--prefix STRING - first part of catalog/directory name (default: vol_) + -f|--filter EXPR - Filter expression, see examples below and perlre manpage + --flat Flat dir mode, don't recreate subdirectory structure (not recommended) + -e|--expmode NUMBER, special exploration modes, used with directory argument + + 1: (default) native exploration of the specified directory, but file sizes + are rounded up to 2048 blocks plus estimated overhead for + filenames (see -o option) + 2: like 1, but all files in directory are put together (as \"atom\") onto the + same medium. This does not apply to subdirectories, however. + 3: like 2, but don't coalesc files when the size of the \"atom\" becomes too + large for the medium size (currently $max) + 4: like 2, but the max. size of the atoms is limited to $max (storing the + rest on another medium) + + -F|--follow Follow symlinks. Use with care! + -b|--blksize NUMBER, block size of the target filesystem (currently $bsize). + -o|--overhead NUMBER, overhead caused by directory entries (as factor for the + filename length, default: 50, empiricaly found for Joliet+RR + with not-so-deep directory structure). Works in exploration + mode. + -a|--accuracy NUMBER (1=faster, large number=better efficiency, default: 500) + -S|--simple Simple/stupid/alphabetic mode + -T|--input FILENAME (or - for STDIN): List with sizes and paths, try: + find dir -type f -printf \"%s %p\n\" + to get an example. Avoid duplicates! Unit suffixes are allowed. + -h|--help Show this option summary + -v|--verbose More verbosity + +File sizes are expected to be in bytes, append modifier letters to multiply +with a factor, eg 200M (b,k,K,m,M,g,G for Bytes, Kb, KiB, Mb, MiB, Gb, GiB). +The default output mode is creating file catalogs useable with + mkisofs -D -r --joliet-long -graft-points -path-list CATALOG + +Examples: +dirsplit -m -s 120M -e4 largedirwithdata/ -p /zipmedia/backup_ #move stuff into splitted backup dirs +dirsplit -s 700M -e2 music/ # make mkisofs catalogs to burn all music to 700M CDRs, keep single files in each dir together +dirsplit -s 700M -e2 -f '/other\\/Soundtracks/' music/ # like above, only take files from other/Soundtracks +dirsplit -s 700M -e2 -f '!/Thumbs.db|Desktop.ini|\\.m3u\$/i' # like above, ignore some junk files and playlists, both letter cases + +Bugs: overhead trough blocksize alignment and directory entry storage varies, +heavily depends on the target filesystem and configuration (see -b and -o). + +You should compare the required size of the created catalogs, eg.: +for x in *list ; do mkisofs -quiet -D -r --joliet-long -graft-points \\ + -path-list \$x -print-size; done +(output in blocks of 2048 bytes) with the expected size (-s) and media data +(cdrecord -v -toc ...). +"; + print $msglong; + exit 0; +} + +# Parms: bin size (int), input array (arr reference), output array (arr reference) +# Returns: wasted space (int) +sub bp_bestfit { + my $max=$_[0]; + my @in = @{$_[1]}; + my $target = $_[2]; + my @out; + my @bel; + + my @tmp; + push(@tmp,$in[0]); + push(@out, \@tmp); + $bel[0] = $in[0]; + shift @in; + + for(@in) { + my $bestplace=$#out+1; + my $bestwert=$max; + for($i=0;$i<=$#out;$i++) { + my $rest; + $rest=$max-$bel[$i]-$_; + if($rest>0 && $rest < $bestwert) { + $bestplace=$i; + $bestwert=$rest; + }; + } + if($bestplace>$#out) { + my @bin; + $bel[$bestplace]=$_; + push(@bin, $_); + push(@out,\@bin); + } + else{ + $bel[$bestplace]+=$_; + push( @{$out[$bestplace]} , $_); + } + } + my $ret=0; + # count all rests but the last one + for($i=0;$i<$#out;$i++) { + $ret+=($max-$bel[$i]); + } + @{$target} = @out; + return $ret; +} + +# Parms: bin size (int), input array (arr reference), output array (arr reference) +# Returns: wasted space (int) +sub bp_firstfit { + my $max=$_[0]; + my @in = @{$_[1]}; + my $target = $_[2]; + my @out; + my @bel; + + piece: foreach my $obj (@in) { + # first fit, use the first bin with enough free space + # print "F: bin$i: $obj, @{$names{$obj}}\n"; + for($i=0;$i<=$#out;$i++) { + my $newsize=($bel[$i]+$obj); +# print "bel[i]: $bel[$i], new?: $newsize to max: $max\n"; + if( $newsize <= $max ) { +# print "F: bin$i: $bel[$i]+$obj=$newsize\n"; + #fits here + $bel[$i]=$newsize; + push( @{$out[$i]} , $obj); + next piece; # break + } + } + # neues Bin + my @bin; + $bel[$i]=$obj; +# print "N: bin$i: $bel[$i]=$obj\n"; + push(@bin, $obj); + push(@out,\@bin); + } + my $ret=0; + # sum up all rests except of the one from the last bin + for($i=0;$i<$#out;$i++) { +# print "hm, bel $i ist :".$bel[$i]." und res:".($max-$bel[$i])."\n"; + $ret+=($max-$bel[$i]); + } + @{$target} = @out; +# print "wtf, ".join(",", @{$out[0]})."\n"; + return $ret; +} diff --git a/3rd-party/dirsplit/dirsplit.1 b/3rd-party/dirsplit/dirsplit.1 new file mode 100644 index 0000000..76fdfa5 --- /dev/null +++ b/3rd-party/dirsplit/dirsplit.1 @@ -0,0 +1,27 @@ +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.33. +.TH DIRSPLIT "1" "March 2004" "dirsplit 0.3" "User Commands" +.SH NAME +dirsplit \- splits directory into multiple with equal size +.SH SYNOPSIS +dirsplit \fB[options]\fR < directory | content-list-file > +.SH DESCRIPTION +displit is designed to for a simple purpose: convert a directory with +many multiple files (which are all smaller than a certain medium, eg. +DVD) and "splits" it into "volumes", looking for the optimal order to +get the best space/medium-number efficiency. +.P +The actual action is either adding the files to mkisofs catalogs or real +moving of files into new directories (or creating links/symlinks). +The method is not limited to files, whole directories can also be handled this +way (see various filesystem exploration modes). +.SH OPTIONS +.TP +Run dirsplit \fB\-h\fR to get the basic usage info. +.TP +Run dirsplit \fB\-H\fR to get the whole option overview and description. +.SH EXAMPLES +Run dirsplit \fB\-H\fR to see the commented examples. +.SH AUTHOR +\fBdirsplit\fR is created by Eduard Bloch (blade@debian.org) and is licensed +under the GPLv2. + diff --git a/3rd-party/geteltorito.1 b/3rd-party/geteltorito.1 new file mode 100644 index 0000000..978da17 --- /dev/null +++ b/3rd-party/geteltorito.1 @@ -0,0 +1,48 @@ +.\" Hey, EMACS: -*- nroff -*- +.TH GETELTORITO 1 "Mai 6, 2007" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME +geteltorito \- an El Torito boot image extractor +.SH SYNOPSIS +.B geteltorito +.RI < image | device > +.RB [ \-o +.IR outputfile ] +.br +.SH DESCRIPTION +.B geteltorito +is a Perl script which extracts the initial/default +.B El Torito +boot image from a CD if one exists. It will not extract any of other +boot images that are allowed by the El Torito standard. +.PP +The boot image file is written to +.B stdout +and all other information (e.g., image type and size) is written to +.BR stderr . +To write the image to a file instead of +.BR stdout , +specify the output filename using +.B \-o +.IR filename . + +.SH SEE ALSO +.BR genisoimage (1), +.BR isoinfo (1). +.br +.SH AUTHOR +geteltorito was written by Rainer Krienke . +.PP +This manual page was written by Eduard Bloch based on +README.geteltorito from geteltorito-0.4 package. diff --git a/3rd-party/geteltorito/README.geteltorito b/3rd-party/geteltorito/README.geteltorito new file mode 100644 index 0000000..383712f --- /dev/null +++ b/3rd-party/geteltorito/README.geteltorito @@ -0,0 +1,22 @@ +geteltorito +=========== + +Author: Rainer Krienke +Email: krienke@uni-koblenz.de +License: GPL +Version: 0.4 +Description: A El Torito boot image extractor + +call: geteltorito CD-image > toritoimagefile +example:geteltorito /dev/sr0 > /tmp/bootimage + +The perl-script will extract the initial/default boot image from a CD if +existant. It will not extract any of other possibly existing bootimages +that are allowed by the El Torito standard. +The imagedata are written to STDOUT all other information is written to +STDERR (eg type and size of image). +If you want to write the image to a file instead of STDOUT you can +secify the filename wanted on the commandline using option -o + +Rainer Krienke +krienke@uni-koblenz.de diff --git a/3rd-party/geteltorito/geteltorito.pl b/3rd-party/geteltorito/geteltorito.pl new file mode 100644 index 0000000..28cdbb3 --- /dev/null +++ b/3rd-party/geteltorito/geteltorito.pl @@ -0,0 +1,214 @@ +#!/usr/bin/perl + +use Getopt::Std; + +# +# geteltorito.pl: a bootimage extractor +# Script that will extract the first El Torito bootimage from a +# bootable CD image +# R. Krienke 08/2001 +# krienke@uni-koblenz.de +# License: GPL +# +# Get latest version from: +# http://www.uni-koblenz.de/~krienke/ftp/noarch/geteltorito +# +$utilVersion="0.4"; +# +# Version 0.4 +# 2007/02/01 +# A patch from Santiago Garcia to use a virtual sector +# size (vSecSize) of 512 bytes, as defined on "El Torito" specs and change +# unpack of the sector count from n to v to get the correct sector count. +# Version 0.3 +# 2006/02/21 +# A patch from Ben Collins to make the +# utility work on PPC machines (change from 'L'-encoding in pack to 'V') +# Version 0.2 +# Several patches included from Nathan Stratton Treadway(nathant@ontko.com) +# to adjust the platform output as well as fixes for other minor bugs +# Version 0.1 +# Initial release +# +# For information on El Torito see +# http://wikipedia.org/ +# or try this link directly: +# http://www.phoenix.com/en/Customer+Services/White+Papers-Specs/Platform+System+Software+Documents/default.htm + +$vSecSize=512; +$secSize=2048; +$ret=undef;$version=undef;$opt_h=undef;$loadSegment=undef;$systemType=undef; + +# +# Read a particular sector from a file +# sector counting starts at 0, not 1 +# +sub getSector{ + my ($secNum, $secCount, $file)=@_; + my ($sec, $count); + + open(FILE, $file) || die "Cannot open \"$file\" \n"; + + seek(FILE, $secNum*$secSize, 0); + $count=read(FILE, $sec, $vSecSize*$secCount, 0) ; + if( $count != $vSecSize*$secCount ){ + warn "Error reading from file \"$file\"\n"; + } + close(FILE); + + return($sec); +} + + +# +# Write eltorito data into a file +# +sub writeOutputFile{ + my($name)=shift; + my($value)=shift; + + open(OUT, ">".$name)|| die "$0: Cannot open outputfile \"$name\" for writing. Stop."; + print OUT $value; + close(OUT); +} + + +# +# Usage +# +sub usage{ + warn "\n$0 [-hv] [-o outputfilename] cd-image \n", + "Script will try to extract an El Torito image from a \n", + "bootable CD (or cd-image) given by and write \n", + "the data extracted to STDOUT or to a file.\n", + " -h: This help. \n", + " -v: Print version of script and exit.\n", + " -o : Write extracted data to file instead of STDOUT.\n", + "\n\n"; + exit 0; +} + + +# --------------------------------------------------------------------- +$ret=getopts('hvo:'); + +if( defined($opt_v) ){ + warn "Version: $utilVersion \n"; + exit 0; +} + +if( defined($opt_h) || $#ARGV <0 ){ + usage(0); +} + +if( defined($opt_o) ){ + $outputFilename="$opt_o"; +} + +$imageFile=$ARGV[0]; + +if( ! -r $imageFile ){ + die "Cannot read image/device \"$imageFile\". Aborting\n"; +} + +# +# Read Sector 17 from CD which should contain a Boot Record Volume +# descriptor. This descriptor contains at its start the text ($isoIdent) +# CD001 and ($toritoSpec) +# EL TORITO SPECIFICATION +# see http://www.cdpage.com/Compact_Disc_Variations/eltoritoi.html +# for details +# + +$sector=getSector(17, 1, $imageFile ); +($boot, $isoIdent, $version, $toritoSpec, + $unUsed, $bootP)= unpack( "Ca5CA32A32V", $sector ); + +if( $isoIdent ne "CD001" || $toritoSpec ne "EL TORITO SPECIFICATION" ){ + die "This data image does not seem to be a bootable CD-image\n"; +} + +# +# Now fetch the sector of the booting catalog +# +$sector=getSector($bootP, 1, $imageFile ); + +print STDERR "Booting catalog starts at sector: $bootP \n"; + +# The first 32 bytes of this sector contains the validation entry for a +# boot. The first byte has to be 01, the next byte determines the +# architecture the image is designed for, where 00 is i86, 01 is PowerPC +# and 02 is Mac. More data give info about manufacturer, etc. The +# final two bytes must contain 0x55 and 0xAA respectively (as +# defined by the El Torito standard). + +$validateEntry=substr($sector, 0, 32); + +($header, $platform, $unUsed, $manufact, $unUsed, $five, $aa)= + unpack( "CCvA24vCC", $validateEntry); + +if( $header != 1 || $five != 0x55 || $aa != 0xaa ){ + die "Invalid Validation Entry on image \n"; +} + +print STDERR "Manufacturer of CD: $manufact\n"; +print STDERR "Image architecture: "; +print STDERR "x86" if( $platform == 0 ); +print STDERR "PowerPC" if( $platform == 1 ); +print STDERR "Mac" if( $platform == 2 ); +print STDERR "unknown ($platform)" if( $platform > 2 ); +print STDERR "\n"; + +# +# Now we examine the initial/defaultentry which follows the validate +# entry and has a size of 32 bytes. + +$initialEntry=substr($sector, 32, 32); + +($boot, $media, $loadSegment, $systemType, $unUsed, + $sCount, $imgStart, $unUsed)=unpack( "CCvCCvVC", $initialEntry); + +if( $boot != 0x88 ){ + die "Boot indicator in Initial/Default-Entry is not 0x88. CD is not bootable. \n"; +} + +print STDERR "Boot media type is: "; +if( $media == 0 ){ + print STDERR "no emulation"; + $count=0; +} +if( $media == 1 ){ + print STDERR "1.2meg floppy"; + $count=1200*1024/$vSecSize; +} +if( $media == 2 ){ + print STDERR "1.44meg floppy"; + $count=1440*1024/$vSecSize; +} +if( $media == 3 ){ + print STDERR "2.88meg floppy"; + $count=2880*1024/$vSecSize; +} +if( $media == 4 ){ + print STDERR "harddisk"; + $count=0; +} +print STDERR "\n"; + +# Only use the internal sector counter if the real size is unknown +# ($count==0) +$cnt=$count==0?$sCount:$count; + +print STDERR "El Torito image starts at sector $imgStart and has $cnt sector(s) of $vSecSize Bytes\n"; + +# We are there: +# Now read the bootimage to stdout +$image=getSector($imgStart, $cnt, $imageFile); + +if( length($outputFilename) ){ + writeOutputFile($outputFilename, $image); + print STDERR "\nImage has been written to file \"$outputFilename\".\n"; +}else{ + print "$image"; + print STDERR "Image has been written to stdout ....\n"; +} diff --git a/3rd-party/zisofs_tools/CHANGES b/3rd-party/zisofs_tools/CHANGES new file mode 100644 index 0000000..5a6fee1 --- /dev/null +++ b/3rd-party/zisofs_tools/CHANGES @@ -0,0 +1,57 @@ +Changes in zisofs-tools-1.0.6: + + Further portability fixes; use subsecond resolution if available. + +Changes in zisofs-tools-1.0.5: + + Portability improvements. + +Changes in zisofs-tools-1.0.4: + + Update the documentation. + +Changes in zisofs-tools-1.0.3: + + Update cdrtools patch. + +Changes in zisofs-tools-1.0.2: + + Add "make install" target :) + +Changes in zisofs-tools-1.0.1: + + By default, abort if file modes, times and ownership cannot be + set. Since this isn't always possible, add new option + -s/--sloppy to suppress this error. + + Fix man page typo, and add a BUGS section. + + Remove problems with extremely long symlinks. + + Move all command line options into common "opt" structure. + + Fix bug in command line parsing: -z option not recognized. + + +Changes in zisofs-tools-1.0: + + Restructured code; now split into a number of modules. + + Use autoconf for configuration. + + Add support for long options if the platform has + getopt_long(). + + Support compiling on systems without lchown(). + + Support the following new options: + -x Don't descend into other filesystems + -X Same as -x, but don't create mount point directories + -l Don't descend into any subdirectories + -L Same as -l, but don't create stub directories + -F Allow compression or decompression of single files. + -V Explicitly set the verbosity. + -w Display program version. + + Update the mkisofs patch to warn if -z is specified without + -r/-R. diff --git a/3rd-party/zisofs_tools/CMakeLists.txt b/3rd-party/zisofs_tools/CMakeLists.txt new file mode 100644 index 0000000..75068bf --- /dev/null +++ b/3rd-party/zisofs_tools/CMakeLists.txt @@ -0,0 +1,8 @@ +PROJECT (ZISOFSTOOLS C) +ADD_DEFINITIONS(-Wall -W -Wpointer-arith -Wbad-function-cast -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -Wshadow -Wcast-align) +AUX_SOURCE_DIRECTORY(. MKZ_SRCS) +ADD_EXECUTABLE (mkzftree ${MKZ_SRCS}) +TARGET_LINK_LIBRARIES(mkzftree z) +SET_TARGET_PROPERTIES(mkzftree PROPERTIES SKIP_BUILD_RPATH TRUE) +INSTALL(TARGETS mkzftree DESTINATION bin) +INSTALL(FILES mkzftree.1 DESTINATION share/man/man1) diff --git a/3rd-party/zisofs_tools/COPYING b/3rd-party/zisofs_tools/COPYING new file mode 100644 index 0000000..d60c31a --- /dev/null +++ b/3rd-party/zisofs_tools/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/3rd-party/zisofs_tools/INSTALL b/3rd-party/zisofs_tools/INSTALL new file mode 100644 index 0000000..b42a17a --- /dev/null +++ b/3rd-party/zisofs_tools/INSTALL @@ -0,0 +1,182 @@ +Basic Installation +================== + + These are generic installation instructions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, a file +`config.cache' that saves the results of its tests to speed up +reconfiguring, and a file `config.log' containing compiler output +(useful mainly for debugging `configure'). + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If at some point `config.cache' +contains results you don't want to keep, you may remove or edit it. + + The file `configure.in' is used to create `configure' by a program +called `autoconf'. You only need `configure.in' if you want to change +it or regenerate `configure' using a newer version of `autoconf'. + +The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. If you're + using `csh' on an old version of System V, you might need to type + `sh ./configure' instead to prevent `csh' from trying to execute + `configure' itself. + + Running `configure' takes awhile. While running, it prints some + messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package. + + 4. Type `make install' to install the programs and any data files and + documentation. + + 5. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. You can give `configure' +initial values for variables by setting them in the environment. Using +a Bourne-compatible shell, you can do that on the command line like +this: + CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure + +Or on systems that have the `env' program, you can do it like this: + env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you must use a version of `make' that +supports the `VPATH' variable, such as GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. + + If you have to use a `make' that does not supports the `VPATH' +variable, you have to compile the package for one architecture at a time +in the source code directory. After you have installed the package for +one architecture, use `make distclean' before reconfiguring for another +architecture. + +Installation Names +================== + + By default, `make install' will install the package's files in +`/usr/local/bin', `/usr/local/man', etc. You can specify an +installation prefix other than `/usr/local' by giving `configure' the +option `--prefix=PATH'. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +give `configure' the option `--exec-prefix=PATH', the package will use +PATH as the prefix for installing programs and libraries. +Documentation and other data files will still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=PATH' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + +Optional Features +================= + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + +Specifying the System Type +========================== + + There may be some features `configure' can not figure out +automatically, but needs to determine by the type of host the package +will run on. Usually `configure' can figure that out, but if it prints +a message saying it can not guess the host type, give it the +`--host=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name with three fields: + CPU-COMPANY-SYSTEM + +See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the host type. + + If you are building compiler tools for cross-compiling, you can also +use the `--target=TYPE' option to select the type of system they will +produce code for and the `--build=TYPE' option to select the type of +system on which you are compiling the package. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Operation Controls +================== + + `configure' recognizes the following options to control how it +operates. + +`--cache-file=FILE' + Use and save the results of the tests in FILE instead of + `./config.cache'. Set FILE to `/dev/null' to disable caching, for + debugging `configure'. + +`--help' + Print a summary of the options to `configure', and exit. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--version' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`configure' also accepts some other, not widely useful, options. diff --git a/3rd-party/zisofs_tools/MCONFIG.in b/3rd-party/zisofs_tools/MCONFIG.in new file mode 100644 index 0000000..1c0ba11 --- /dev/null +++ b/3rd-party/zisofs_tools/MCONFIG.in @@ -0,0 +1,38 @@ +# Prefixes +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +# Directory for user binaries +bindir = @bindir@ + +# Man page tree +mandir = @mandir@ + +# System binaries +sbindir = @sbindir@ + +# Install into chroot area +# Useful when making rpms and similar +INSTALLROOT = + +# Install program +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ + +# Compiler and compiler flags +CC = @CC@ +CFLAGS = @CFLAGS@ + +# Link flags +LDFLAGS = @LDFLAGS@ + +# Libraries +LIBS = @LIBS@ + +# Additional library we need to build +LIBOBJS = @LIBOBJS@ + +# ar and ranlib (for making libraries) +AR = ar cq +RANLIB = @RANLIB@ diff --git a/3rd-party/zisofs_tools/MRULES b/3rd-party/zisofs_tools/MRULES new file mode 100644 index 0000000..decd202 --- /dev/null +++ b/3rd-party/zisofs_tools/MRULES @@ -0,0 +1,22 @@ +# Standard compilation rules (don't use make builtins) + +.SUFFIXES: .c .cc .o .s .S .i + +.c.o: + $(CC) $(CFLAGS) -c $< + +.c.s: + $(CC) $(CFLAGS) -S -o $@ $< + +.c.i: + $(CC) $(CFLAGS) -E -o $@ $< + +.cc.o: + $(CXX) $(CXXFLAGS) -c $< + +.cc.s: + $(CXX) $(CXXFLAGS) -S -o $@ $< + +.cc.i: + $(CXX) $(CXXFLAGS) -E -o $@ $< + diff --git a/3rd-party/zisofs_tools/Makefile b/3rd-party/zisofs_tools/Makefile new file mode 100644 index 0000000..d70dec6 --- /dev/null +++ b/3rd-party/zisofs_tools/Makefile @@ -0,0 +1,96 @@ +## ----------------------------------------------------------------------- +## +## Copyright 2001 H. Peter Anvin - All Rights Reserved +## +## This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation, Inc., 675 Mass Ave, Cambridge MA 02139, +## USA; either version 2 of the License, or (at your option) any later +## version; incorporated herein by reference. +## +## ----------------------------------------------------------------------- + +## +## Makefile for mkzftree +## +## mkzftree mirrors a tree in a form suitable for "mkisofs -z". +## + +-include MCONFIG +include MRULES + +PROGS = mkzftree +MAN1PAGES = mkzftree.1 + +OBJS = mkzftree.o walk.o workers.o util.o hash.o iso9660.o copytime.o \ + compress.o uncompress.o + +all: $(PROGS) + +spec: zisofs-tools.spec + +clean: + rm -f *.o *.i *.s version.h $(PROGS) + +distclean: clean + rm -f MCONFIG config.status config.log config.h *~ \#* + rm -f core *.orig *.rej + rm -rf *.cache + +release: + $(MAKE) configure + $(MAKE) spec + $(MAKE) distclean + +mkzftree: $(OBJS) + $(CC) $(LDFLAGS) -o mkzftree $(OBJS) $(LIBS) + +spotless: distclean + rm -f configure config.h.in zisofs-tools.spec + +install: all + mkdir -p $(INSTALLROOT)$(bindir) + $(INSTALL_PROGRAM) $(PROGS) $(INSTALLROOT)$(bindir) + mkdir -p $(INSTALLROOT)$(mandir)/man1 + $(INSTALL_DATA) $(MAN1PAGES) $(INSTALLROOT)$(mandir)/man1 + +config: MCONFIG + +MCONFIG: configure MCONFIG.in config.h.in + ./configure + +config.h: MCONFIG + : Generated by side effect + +config.h.in: configure.in + rm -f config.h.in + autoheader + +configure: configure.in aclocal.m4 + autoconf + rm -f MCONFIG config.cache config.log config.status config.h + +# +# Version header +# +VERSION = $(shell cat version) + +version.h: version + echo "#define ZISOFS_TOOLS_VERSION \"$(VERSION)\"" > version.h + +zisofs-tools.spec: zisofs-tools.spec.in version + sed -e 's/@@VERSION@@/$(VERSION)/g' < zisofs-tools.spec.in > $@ + +# +# Dependencies +# +mkzftree.o: mkzftree.c mkzftree.h config.h version.h +workers.o: workers.c mkzftree.h config.h +compress.o: compress.c mkzftree.h config.h iso9660.h +copytime.o: copytime.c mkzftree.h config.h +hash.o: hash.c mkzftree.h config.h +iso9660.o: iso9660.c iso9660.h +uncompress.o: uncompress.c mkzftree.h config.h iso9660.h +util.o: util.c mkzftree.h config.h +walk.o: walk.c mkzftree.h config.h +workers.o: workers.c mkzftree.h config.h diff --git a/3rd-party/zisofs_tools/README b/3rd-party/zisofs_tools/README new file mode 100644 index 0000000..3bf8960 --- /dev/null +++ b/3rd-party/zisofs_tools/README @@ -0,0 +1,44 @@ + H. Peter Anvin + June 13, 2004 + + +User tools for zisofs: + +The user tools for zisofs come in two parts: a utility "mkzftree" and +mkisofs, which is part of the cdrtools package. cdrtools 1.11a20 or +later is required. + +First create a directory tree containing compressed files: + + mkzftree input_dir compressed_dir + +mkzftree will not overwrite an existing directory; you may want to "rm +-rf" the directory tree if you are doing this from a script: + +Second, invoke the patched mkisofs with the -z option: + + mkisofs -z -R [other options] -o compressed.iso compressed_dir + +IMPORTANT: you *must* enable RockRidge (-R or -r) since this is an +extensions to the RockRidge specification. Without RockRidge, -z will +have no effect. + +Note that if there are files you do not want compressed (for example, +files involved in booting, or README files you want to be readable +under all circumstances) you can simply put them in a separate tree +and not run mkzftree on that tree. + +mkzftree will not compress files that end up larger when compressed; +if you want it to compress the files anyway, you can give the -f +option to mkzftree. + +mkzftree also accepts a -u option (uncompress), which can be used to +convert a compressed tree back to normal form. This can be used to +read a zisofs CD-ROM on a machine without zisofs kernel support. + +This version of mkzftree supports a -p option (parallelize.) +Specifying -p and a parallelism (e.g. -p4) allows files (up to the +number specified) to compress in parallel. Depending on your setup +and your data set size, this might speed things up if you are not +completely I/O bound. Use -p0 to completely disable parallel +execution; this is the default. diff --git a/3rd-party/zisofs_tools/aclocal.m4 b/3rd-party/zisofs_tools/aclocal.m4 new file mode 100644 index 0000000..a3d8427 --- /dev/null +++ b/3rd-party/zisofs_tools/aclocal.m4 @@ -0,0 +1,35 @@ +dnl -------------------------------------------------------------------------- +dnl PA_ADD_CFLAGS() +dnl +dnl Attempt to add the given option to CFLAGS, if it doesn't break compilation +dnl -------------------------------------------------------------------------- +AC_DEFUN(PA_ADD_CFLAGS, +[AC_MSG_CHECKING([if $CC accepts $1]) + pa_add_cflags__old_cflags="$CFLAGS" + CFLAGS="$CFLAGS $1" + AC_TRY_LINK([#include ], + [printf("Hello, World!\n");], + AC_MSG_RESULT([yes]), + AC_MSG_RESULT([no]) + CFLAGS="$pa_add_cflags__old_cflags")]) + +dnl ------------------------------------------------------------------------ +dnl PA_WITH_BOOL +dnl +dnl PA_WITH_BOOL(option, default, help, enable, disable) +dnl +dnl Provides a more convenient way to specify --with-option and +dnl --without-option, with a default. default should be either 0 or 1. +dnl ------------------------------------------------------------------------ +AC_DEFUN(PA_WITH_BOOL, +[AC_ARG_WITH([$1], [$3], +if test ["$withval"] != no; then +[$4] +else +[$5] +fi, +if test [$2] -ne 0; then +[$4] +else +[$5] +fi)]) diff --git a/3rd-party/zisofs_tools/compress.c b/3rd-party/zisofs_tools/compress.c new file mode 100644 index 0000000..56f0af0 --- /dev/null +++ b/3rd-party/zisofs_tools/compress.c @@ -0,0 +1,155 @@ +/* + * This file has been modified for the cdrkit suite. + * + * The behaviour and appearence of the program code below can differ to a major + * extent from the version distributed by the original author(s). + * + * For details, see Changelog file distributed with the cdrkit package. If you + * received this file from another source then ask the distributing person for + * a log of modifications. + * + */ + +/* $Id: compress.c,v 1.4 2006/07/04 04:57:42 hpa Exp $ */ +/* ----------------------------------------------------------------------- * + * + * Copyright 2001-2006 H. Peter Anvin - All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, Inc., 675 Mass Ave, Cambridge MA 02139, + * USA; either version 2 of the License, or (at your option) any later + * version; incorporated herein by reference. + * + * ----------------------------------------------------------------------- */ + +#include "mkzftree.h" /* Must be included first! */ + +#include +#include +#include +#include +#include + +#include "iso9660.h" + + +int block_compress_file(FILE *input, FILE *output, off_t size) +{ + struct compressed_file_header hdr; + Bytef inbuf[CBLOCK_SIZE], outbuf[2*CBLOCK_SIZE]; + size_t bytes, pointer_bytes, nblocks, block; + uLong cbytes; /* uLong is a zlib datatype */ + char *pointer_block, *curptr; + off_t position; + int i; + int force_compress = opt.force; + int zerr; + int err = EX_SOFTWARE; + + if ( (sizeof hdr) & 3 ) { + fputs("INTERNAL ERROR: header is not a multiple of 4\n", stderr); + abort(); + } + + memset(&hdr, 0, sizeof hdr); + memcpy(&hdr.magic, zisofs_magic, sizeof zisofs_magic); + hdr.header_size = (sizeof hdr) >> 2; + hdr.block_size = CBLOCK_SIZE_LG2; + set_731(&hdr.uncompressed_len, size); + + if ( fwrite(&hdr, sizeof hdr, 1, output) != 1 ) + return EX_CANTCREAT; + + nblocks = (size+CBLOCK_SIZE-1) >> CBLOCK_SIZE_LG2; + pointer_bytes = 4*(nblocks+1); + pointer_block = xmalloc(pointer_bytes); + memset(pointer_block, 0, pointer_bytes); + + if ( fseek(output, pointer_bytes, SEEK_CUR) == -1 ) { + err = EX_CANTCREAT; + goto free_ptr_bail; + } + + curptr = pointer_block; + position = sizeof hdr + pointer_bytes; + + block = 0; + while ( (bytes = fread(inbuf, 1, CBLOCK_SIZE, input)) > 0 ) { + if ( bytes < CBLOCK_SIZE && block < nblocks-1 ) { + err = EX_IOERR; + goto free_ptr_bail; + } + + /* HACK: If the file has our magic number, always compress */ + if ( block == 0 && bytes >= sizeof zisofs_magic ) { + if ( !memcmp(inbuf, zisofs_magic, sizeof zisofs_magic) ) + force_compress = 1; + } + + set_731(curptr, position); curptr += 4; + + /* We have two special cases: a zero-length block is defined as all zero, + and a block the length of which is equal to the block size is unencoded. */ + + for ( i = 0 ; i < (int)CBLOCK_SIZE ; i++ ) { + if ( inbuf[i] ) break; + } + + if ( i == CBLOCK_SIZE ) { + /* All-zero block. No output */ + } else { + cbytes = 2*CBLOCK_SIZE; + if ( (zerr = compress2(outbuf, &cbytes, inbuf, bytes, opt.level)) + != Z_OK ) { + err = (zerr == Z_MEM_ERROR) ? EX_OSERR : EX_SOFTWARE; + goto free_ptr_bail; /* Compression failure */ + } + if ( fwrite(outbuf, 1, cbytes, output) != cbytes ) { + err = EX_CANTCREAT; + goto free_ptr_bail; + } + position += cbytes; + } + block++; + } + + /* Set pointer to the end of the final block */ + set_731(curptr, position); + + /* Now write the pointer table */ + if ( fseek(output, sizeof hdr, SEEK_SET) == -1 || + fwrite(pointer_block, 1, pointer_bytes, output) != pointer_bytes ) { + err = EX_CANTCREAT; + goto free_ptr_bail; + } + + free(pointer_block); + + /* Now make sure that this was actually the right thing to do */ + if ( !force_compress && position >= size ) { + /* Incompressible file, just copy it */ + rewind(input); + rewind(output); + + position = 0; + while ( (bytes = fread(inbuf, 1, CBLOCK_SIZE, input)) > 0 ) { + if ( fwrite(inbuf, 1, bytes, output) != bytes ) + return EX_CANTCREAT; + position += bytes; + } + + /* Truncate the file to the correct size */ + fflush(output); + ftruncate(fileno(output), position); + } + + /* If we get here, we're done! */ + return 0; + + /* Common bailout code */ + free_ptr_bail: + free(pointer_block); + return err; +} + diff --git a/3rd-party/zisofs_tools/config.h.in b/3rd-party/zisofs_tools/config.h.in new file mode 100644 index 0000000..c2103bb --- /dev/null +++ b/3rd-party/zisofs_tools/config.h.in @@ -0,0 +1,99 @@ +/* config.h.in. Generated from configure.in by autoheader. */ + +/* Define to 1 if you have the header file. */ +#undef HAVE_ENDIAN_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_GETOPT_H + +/* Define to 1 if you have the `getopt_long' function */ +#undef HAVE_GETOPT_LONG + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the `lchown' function. */ +#undef HAVE_LCHOWN + +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if `struct stat.st_[mca]tim' are struct timespec */ +#undef HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC + +/* Define to 1 if `struct stat.st_[mca]tim' are struct timeval */ +#undef HAVE_STRUCT_STAT_ST_MTIM_TV_USEC + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYSEXITS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define to 1 if you have the `utimes' function. */ +#undef HAVE_UTIMES + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Number of bits in a file offset, on hosts where this is settable. */ +#undef _FILE_OFFSET_BITS + +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# undef _GNU_SOURCE +#endif + +/* Define for large files, on AIX-style hosts. */ +#undef _LARGE_FILES + +/* Define to empty if `const' does not conform to ANSI C. */ +#undef const + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +#undef inline +#endif + +/* Define to `signed long' if does not define. */ +#undef off_t + +/* Define to `unsigned long' if does not define. */ +#undef size_t + +/* Define to `signed long' if does not define. */ +#undef ssize_t diff --git a/3rd-party/zisofs_tools/configure b/3rd-party/zisofs_tools/configure new file mode 100755 index 0000000..251af8c --- /dev/null +++ b/3rd-party/zisofs_tools/configure @@ -0,0 +1,7907 @@ +#! /bin/sh +# From configure.in Id: configure.in,v 1.7 2004/07/20 04:04:22 hpa Exp . +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.60a. +# +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +as_nl=' +' +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + +# Work around bugs in pre-3.0 UWIN ksh. +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# CDPATH. +$as_unset CDPATH + + +if test "x$CONFIG_SHELL" = x; then + if (eval ":") 2>/dev/null; then + as_have_required=yes +else + as_have_required=no +fi + + if test $as_have_required = yes && (eval ": +(as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=\$LINENO + as_lineno_2=\$LINENO + test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && + test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } +") 2> /dev/null; then + : +else + as_candidate_shells= + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /usr/bin/posix$PATH_SEPARATOR/bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + case $as_dir in + /*) + for as_base in sh bash ksh sh5; do + as_candidate_shells="$as_candidate_shells $as_dir/$as_base" + done;; + esac +done +IFS=$as_save_IFS + + + for as_shell in $as_candidate_shells $SHELL; do + # Try only shells that exist, to save several forks. + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { ("$as_shell") 2> /dev/null <<\_ASEOF +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +: +_ASEOF +}; then + CONFIG_SHELL=$as_shell + as_have_required=yes + if { "$as_shell" 2> /dev/null <<\_ASEOF +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +: +(as_func_return () { + (exit $1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = "$1" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test $exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } + +_ASEOF +}; then + break +fi + +fi + + done + + if test "x$CONFIG_SHELL" != x; then + for as_var in BASH_ENV ENV + do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + done + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} +fi + + + if test $as_have_required = no; then + echo This script requires a shell more modern than all the + echo shells that I found on your system. Please install a + echo modern shell, or manually run the script under such a + echo shell if you do have one. + { (exit 1); exit 1; } +fi + + +fi + +fi + + + +(eval "as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0") || { + echo No shell found that supports shell functions. + echo Please tell autoconf@gnu.org about your system, + echo including any error possibly output before this + echo message +} + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir +fi +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +# Find out whether ``test -x'' works. Don't use a zero-byte file, as +# systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + as_executable_p="test -x" +else + as_executable_p=: +fi +rm -f conf$$.file + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + + +exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} + +# Identity of this package. +PACKAGE_NAME= +PACKAGE_TARNAME= +PACKAGE_VERSION= +PACKAGE_STRING= +PACKAGE_BUGREPORT= + +ac_unique_file="MCONFIG.in" +ac_default_prefix=/usr +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='SHELL +PATH_SEPARATOR +PACKAGE_NAME +PACKAGE_TARNAME +PACKAGE_VERSION +PACKAGE_STRING +PACKAGE_BUGREPORT +exec_prefix +prefix +program_transform_name +bindir +sbindir +libexecdir +datarootdir +datadir +sysconfdir +sharedstatedir +localstatedir +includedir +oldincludedir +docdir +infodir +htmldir +dvidir +pdfdir +psdir +libdir +localedir +mandir +DEFS +ECHO_C +ECHO_N +ECHO_T +LIBS +build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +CPPFLAGS +ac_ct_CC +EXEEXT +OBJEXT +CPP +GREP +EGREP +RANLIB +INSTALL_PROGRAM +INSTALL_SCRIPT +INSTALL_DATA +LIBOBJS +LTLIBOBJS' +ac_subst_files='' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +CPPFLAGS +CPP' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + eval enable_$ac_feature=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + eval enable_$ac_feature=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval with_$ac_package=\$ac_optarg ;; + + -without-* | --without-*) + ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package | sed 's/-/_/g'` + eval with_$ac_package=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) { echo "$as_me: error: unrecognized option: $ac_option +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 + { (exit 1); exit 1; }; } + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + { echo "$as_me: error: missing argument to $ac_option" >&2 + { (exit 1); exit 1; }; } +fi + +# Be sure to have absolute directory names. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; } +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used." >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + { echo "$as_me: error: Working directory cannot be determined" >&2 + { (exit 1); exit 1; }; } +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + { echo "$as_me: error: pwd does not report name of working directory" >&2 + { (exit 1); exit 1; }; } + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$0" || +$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$0" : 'X\(//\)[^/]' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +echo X"$0" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 + { (exit 1); exit 1; }; } +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 + { (exit 1); exit 1; }; } + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures this package to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF +_ACEOF +fi + +if test -n "$ac_init_help"; then + + cat <<\_ACEOF + +Optional Features: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --disable-largefile omit support for large files + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +configure +generated by GNU Autoconf 2.60a + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by $as_me, which was +generated by GNU Autoconf 2.60a. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + echo "PATH: $as_dir" +done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; + 2) + ac_configure_args1="$ac_configure_args1 '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + ac_configure_args="$ac_configure_args '$ac_arg'" + ;; + esac + done +done +$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } +$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + cat <<\_ASBOX +## ---------------- ## +## Cache variables. ## +## ---------------- ## +_ASBOX + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 +echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + cat <<\_ASBOX +## ----------------- ## +## Output variables. ## +## ----------------- ## +_ASBOX + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + cat <<\_ASBOX +## ------------------- ## +## File substitutions. ## +## ------------------- ## +_ASBOX + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + cat <<\_ASBOX +## ----------- ## +## confdefs.h. ## +## ----------- ## +_ASBOX + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + echo "$as_me: caught signal $ac_signal" + echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer explicitly selected file to automatically selected ones. +if test -n "$CONFIG_SITE"; then + set x "$CONFIG_SITE" +elif test "x$prefix" != xNONE; then + set x "$prefix/share/config.site" "$prefix/etc/config.site" +else + set x "$ac_default_prefix/share/config.site" \ + "$ac_default_prefix/etc/config.site" +fi +shift +for ac_site_file +do + if test -r "$ac_site_file"; then + { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 +echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special + # files actually), so we avoid doing that. + if test -f "$cache_file"; then + { echo "$as_me:$LINENO: loading cache $cache_file" >&5 +echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { echo "$as_me:$LINENO: creating cache $cache_file" >&5 +echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 +echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 +echo "$as_me: former value: $ac_old_val" >&2;} + { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 +echo "$as_me: current value: $ac_new_val" >&2;} + ac_cache_corrupted=: + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 +echo "$as_me: error: changes in the environment can compromise the build" >&2;} + { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} + { (exit 1); exit 1; }; } +fi + + + + + + + + + + + + + + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&5 +echo "$as_me: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + +# Provide some information about the compiler. +echo "$as_me:$LINENO: checking for C compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 +echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } +ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` +# +# List of possible output files, starting from the most likely. +# The algorithm is not robust to junk in `.', hence go to wildcards (a.*) +# only as a last resort. b.out is created by i960 compilers. +ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' +# +# The IRIX 6 linker writes into existing files which may not be +# executable, retaining their permissions. Remove them first so a +# subsequent execution test works. +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { (ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi + +{ echo "$as_me:$LINENO: result: $ac_file" >&5 +echo "${ECHO_T}$ac_file" >&6; } +if test -z "$ac_file"; then + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: C compiler cannot create executables +See \`config.log' for more details." >&5 +echo "$as_me: error: C compiler cannot create executables +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } +fi + +ac_exeext=$ac_cv_exeext + +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5 +echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } +# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 +# If not cross compiling, check that we can run a simple program. +if test "$cross_compiling" != yes; then + if { ac_try='./$ac_file' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { echo "$as_me:$LINENO: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + fi + fi +fi +{ echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + +rm -f a.out a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 +echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: result: $cross_compiling" >&5 +echo "${ECHO_T}$cross_compiling" >&6; } + +{ echo "$as_me:$LINENO: checking for suffix of executables" >&5 +echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest$ac_cv_exeext +{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 +echo "${ECHO_T}$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +{ echo "$as_me:$LINENO: checking for suffix of object files" >&5 +echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } +if test "${ac_cv_objext+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 +echo "${ECHO_T}$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } +if test "${ac_cv_c_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_compiler_gnu=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } +GCC=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } +if test "${ac_cv_prog_cc_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + CFLAGS="" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 +echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } +if test "${ac_cv_prog_cc_c89+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_c89=$ac_arg +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { echo "$as_me:$LINENO: result: none needed" >&5 +echo "${ECHO_T}none needed" >&6; } ;; + xno) + { echo "$as_me:$LINENO: result: unsupported" >&5 +echo "${ECHO_T}unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; +esac + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +cat >>confdefs.h <<\_ACEOF +#define _GNU_SOURCE 1 +_ACEOF + + + +# Check whether --enable-largefile was given. +if test "${enable_largefile+set}" = set; then + enableval=$enable_largefile; +fi + +if test "$enable_largefile" != no; then + + { echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5 +echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6; } +if test "${ac_cv_sys_largefile_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_sys_largefile_CC=no + if test "$GCC" != yes; then + ac_save_CC=$CC + while :; do + # IRIX 6.2 and later do not support large files by default, + # so use the C compiler's -n32 option if that helps. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF + rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext + CC="$CC -n32" + rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sys_largefile_CC=' -n32'; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext + break + done + CC=$ac_save_CC + rm -f conftest.$ac_ext + fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5 +echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6; } + if test "$ac_cv_sys_largefile_CC" != no; then + CC=$CC$ac_cv_sys_largefile_CC + fi + + { echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5 +echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6; } +if test "${ac_cv_sys_file_offset_bits+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + while :; do + ac_cv_sys_file_offset_bits=no + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#define _FILE_OFFSET_BITS 64 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sys_file_offset_bits=64; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + break +done +fi +{ echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5 +echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6; } +if test "$ac_cv_sys_file_offset_bits" != no; then + +cat >>confdefs.h <<_ACEOF +#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits +_ACEOF + +fi +rm -f conftest* + { echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5 +echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6; } +if test "${ac_cv_sys_large_files+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + while :; do + ac_cv_sys_large_files=no + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#define _LARGE_FILES 1 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sys_large_files=1; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + break +done +fi +{ echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5 +echo "${ECHO_T}$ac_cv_sys_large_files" >&6; } +if test "$ac_cv_sys_large_files" != no; then + +cat >>confdefs.h <<_ACEOF +#define _LARGE_FILES $ac_cv_sys_large_files +_ACEOF + +fi +rm -f conftest* +fi + +{ echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 +echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6; } +if test "${ac_cv_c_const+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +/* FIXME: Include the comments suggested by Paul. */ +#ifndef __cplusplus + /* Ultrix mips cc rejects this. */ + typedef int charset[2]; + const charset cs; + /* SunOS 4.1.1 cc rejects this. */ + char const *const *pcpcc; + char **ppc; + /* NEC SVR4.0.2 mips cc rejects this. */ + struct point {int x, y;}; + static struct point const zero = {0,0}; + /* AIX XL C 1.02.0.0 rejects this. + It does not let you subtract one const X* pointer from another in + an arm of an if-expression whose if-part is not a constant + expression */ + const char *g = "string"; + pcpcc = &g + (g ? g-g : 0); + /* HPUX 7.0 cc rejects these. */ + ++pcpcc; + ppc = (char**) pcpcc; + pcpcc = (char const *const *) ppc; + { /* SCO 3.2v4 cc rejects this. */ + char *t; + char const *s = 0 ? (char *) 0 : (char const *) 0; + + *t++ = 0; + if (s) return 0; + } + { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ + int x[] = {25, 17}; + const int *foo = &x[0]; + ++foo; + } + { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ + typedef const int *iptr; + iptr p = 0; + ++p; + } + { /* AIX XL C 1.02.0.0 rejects this saying + "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ + struct s { int j; const int *ap[3]; }; + struct s *b; b->j = 5; + } + { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; + if (!foo) return 0; + } + return !cs[0] && !zero.x; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_c_const=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_c_const=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 +echo "${ECHO_T}$ac_cv_c_const" >&6; } +if test $ac_cv_c_const = no; then + +cat >>confdefs.h <<\_ACEOF +#define const +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking for inline" >&5 +echo $ECHO_N "checking for inline... $ECHO_C" >&6; } +if test "${ac_cv_c_inline+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_c_inline=no +for ac_kw in inline __inline__ __inline; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifndef __cplusplus +typedef int foo_t; +static $ac_kw foo_t static_foo () {return 0; } +$ac_kw foo_t foo () {return 0; } +#endif + +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_c_inline=$ac_kw +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test "$ac_cv_c_inline" != no && break +done + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5 +echo "${ECHO_T}$ac_cv_c_inline" >&6; } + + +case $ac_cv_c_inline in + inline | yes) ;; + *) + case $ac_cv_c_inline in + no) ac_val=;; + *) ac_val=$ac_cv_c_inline;; + esac + cat >>confdefs.h <<_ACEOF +#ifndef __cplusplus +#define inline $ac_val +#endif +_ACEOF + ;; +esac + + +{ echo "$as_me:$LINENO: checking if $CC accepts -Wall" >&5 +echo $ECHO_N "checking if $CC accepts -Wall... $ECHO_C" >&6; } + pa_add_cflags__old_cflags="$CFLAGS" + CFLAGS="$CFLAGS -Wall" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +printf("Hello, World!\n"); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + CFLAGS="$pa_add_cflags__old_cflags" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +{ echo "$as_me:$LINENO: checking if $CC accepts -W" >&5 +echo $ECHO_N "checking if $CC accepts -W... $ECHO_C" >&6; } + pa_add_cflags__old_cflags="$CFLAGS" + CFLAGS="$CFLAGS -W" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +printf("Hello, World!\n"); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + CFLAGS="$pa_add_cflags__old_cflags" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +{ echo "$as_me:$LINENO: checking if $CC accepts -Wpointer-arith" >&5 +echo $ECHO_N "checking if $CC accepts -Wpointer-arith... $ECHO_C" >&6; } + pa_add_cflags__old_cflags="$CFLAGS" + CFLAGS="$CFLAGS -Wpointer-arith" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +printf("Hello, World!\n"); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + CFLAGS="$pa_add_cflags__old_cflags" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +{ echo "$as_me:$LINENO: checking if $CC accepts -Wbad-function-cast" >&5 +echo $ECHO_N "checking if $CC accepts -Wbad-function-cast... $ECHO_C" >&6; } + pa_add_cflags__old_cflags="$CFLAGS" + CFLAGS="$CFLAGS -Wbad-function-cast" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +printf("Hello, World!\n"); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + CFLAGS="$pa_add_cflags__old_cflags" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +{ echo "$as_me:$LINENO: checking if $CC accepts -Wcast-equal" >&5 +echo $ECHO_N "checking if $CC accepts -Wcast-equal... $ECHO_C" >&6; } + pa_add_cflags__old_cflags="$CFLAGS" + CFLAGS="$CFLAGS -Wcast-equal" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +printf("Hello, World!\n"); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + CFLAGS="$pa_add_cflags__old_cflags" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +{ echo "$as_me:$LINENO: checking if $CC accepts -Wstrict-prototypes" >&5 +echo $ECHO_N "checking if $CC accepts -Wstrict-prototypes... $ECHO_C" >&6; } + pa_add_cflags__old_cflags="$CFLAGS" + CFLAGS="$CFLAGS -Wstrict-prototypes" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +printf("Hello, World!\n"); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + CFLAGS="$pa_add_cflags__old_cflags" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +{ echo "$as_me:$LINENO: checking if $CC accepts -Wmissing-prototypes" >&5 +echo $ECHO_N "checking if $CC accepts -Wmissing-prototypes... $ECHO_C" >&6; } + pa_add_cflags__old_cflags="$CFLAGS" + CFLAGS="$CFLAGS -Wmissing-prototypes" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +printf("Hello, World!\n"); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + CFLAGS="$pa_add_cflags__old_cflags" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +{ echo "$as_me:$LINENO: checking if $CC accepts -Wmissing-declarations" >&5 +echo $ECHO_N "checking if $CC accepts -Wmissing-declarations... $ECHO_C" >&6; } + pa_add_cflags__old_cflags="$CFLAGS" + CFLAGS="$CFLAGS -Wmissing-declarations" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +printf("Hello, World!\n"); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + CFLAGS="$pa_add_cflags__old_cflags" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +{ echo "$as_me:$LINENO: checking if $CC accepts -Wnested-externs" >&5 +echo $ECHO_N "checking if $CC accepts -Wnested-externs... $ECHO_C" >&6; } + pa_add_cflags__old_cflags="$CFLAGS" + CFLAGS="$CFLAGS -Wnested-externs" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +printf("Hello, World!\n"); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + CFLAGS="$pa_add_cflags__old_cflags" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +{ echo "$as_me:$LINENO: checking if $CC accepts -Winline" >&5 +echo $ECHO_N "checking if $CC accepts -Winline... $ECHO_C" >&6; } + pa_add_cflags__old_cflags="$CFLAGS" + CFLAGS="$CFLAGS -Winline" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +printf("Hello, World!\n"); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + CFLAGS="$pa_add_cflags__old_cflags" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +{ echo "$as_me:$LINENO: checking if $CC accepts -Wshadow" >&5 +echo $ECHO_N "checking if $CC accepts -Wshadow... $ECHO_C" >&6; } + pa_add_cflags__old_cflags="$CFLAGS" + CFLAGS="$CFLAGS -Wshadow" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +printf("Hello, World!\n"); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + CFLAGS="$pa_add_cflags__old_cflags" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +{ echo "$as_me:$LINENO: checking if $CC accepts -Wcast-align" >&5 +echo $ECHO_N "checking if $CC accepts -Wcast-align... $ECHO_C" >&6; } + pa_add_cflags__old_cflags="$CFLAGS" + CFLAGS="$CFLAGS -Wcast-align" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +printf("Hello, World!\n"); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + CFLAGS="$pa_add_cflags__old_cflags" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +{ echo "$as_me:$LINENO: checking if $CC accepts -pipe" >&5 +echo $ECHO_N "checking if $CC accepts -pipe... $ECHO_C" >&6; } + pa_add_cflags__old_cflags="$CFLAGS" + CFLAGS="$CFLAGS -pipe" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +printf("Hello, World!\n"); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + CFLAGS="$pa_add_cflags__old_cflags" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test "${ac_cv_prog_CPP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ echo "$as_me:$LINENO: result: $CPP" >&5 +echo "${ECHO_T}$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&5 +echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 +echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } +if test "${ac_cv_path_GREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Extract the first word of "grep ggrep" to use in msg output +if test -z "$GREP"; then +set dummy grep ggrep; ac_prog_name=$2 +if test "${ac_cv_path_GREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_path_GREP_found=false +# Loop through the user's path and test for each of PROGNAME-LIST +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_executable_p "$ac_path_GREP"; } || continue + # Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + + $ac_path_GREP_found && break 3 + done +done + +done +IFS=$as_save_IFS + + +fi + +GREP="$ac_cv_path_GREP" +if test -z "$GREP"; then + { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } +fi + +else + ac_cv_path_GREP=$GREP +fi + + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 +echo "${ECHO_T}$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ echo "$as_me:$LINENO: checking for egrep" >&5 +echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } +if test "${ac_cv_path_EGREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + # Extract the first word of "egrep" to use in msg output +if test -z "$EGREP"; then +set dummy egrep; ac_prog_name=$2 +if test "${ac_cv_path_EGREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_path_EGREP_found=false +# Loop through the user's path and test for each of PROGNAME-LIST +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_executable_p "$ac_path_EGREP"; } || continue + # Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + + $ac_path_EGREP_found && break 3 + done +done + +done +IFS=$as_save_IFS + + +fi + +EGREP="$ac_cv_path_EGREP" +if test -z "$EGREP"; then + { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } +fi + +else + ac_cv_path_EGREP=$EGREP +fi + + + fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 +echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } +if test "${ac_cv_header_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_header_stdc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_stdc=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +echo "${ECHO_T}$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. + + + + + + + + + +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_Header=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + +for ac_header in inttypes.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in sysexits.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in getopt.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in endian.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +{ echo "$as_me:$LINENO: checking for off_t" >&5 +echo $ECHO_N "checking for off_t... $ECHO_C" >&6; } +if test "${ac_cv_type_off_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +typedef off_t ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_off_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_off_t=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5 +echo "${ECHO_T}$ac_cv_type_off_t" >&6; } +if test $ac_cv_type_off_t = yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define off_t signed long +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking for size_t" >&5 +echo $ECHO_N "checking for size_t... $ECHO_C" >&6; } +if test "${ac_cv_type_size_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +typedef size_t ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_size_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_size_t=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 +echo "${ECHO_T}$ac_cv_type_size_t" >&6; } +if test $ac_cv_type_size_t = yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define size_t unsigned long +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking for ssize_t" >&5 +echo $ECHO_N "checking for ssize_t... $ECHO_C" >&6; } +if test "${ac_cv_type_ssize_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +typedef ssize_t ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_ssize_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_ssize_t=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_ssize_t" >&5 +echo "${ECHO_T}$ac_cv_type_ssize_t" >&6; } +if test $ac_cv_type_ssize_t = yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define ssize_t signed long +_ACEOF + +fi + + + +for ac_func in lchown +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_var'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +for ac_func in utimes +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_var'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +{ echo "$as_me:$LINENO: checking for struct stat.st_mtim.tv_usec" >&5 +echo $ECHO_N "checking for struct stat.st_mtim.tv_usec... $ECHO_C" >&6; } +if test "${ac_cv_member_struct_stat_st_mtim_tv_usec+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +int +main () +{ +static struct stat ac_aggr; +if (ac_aggr.st_mtim.tv_usec) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_member_struct_stat_st_mtim_tv_usec=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +int +main () +{ +static struct stat ac_aggr; +if (sizeof ac_aggr.st_mtim.tv_usec) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_member_struct_stat_st_mtim_tv_usec=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_member_struct_stat_st_mtim_tv_usec=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_mtim_tv_usec" >&5 +echo "${ECHO_T}$ac_cv_member_struct_stat_st_mtim_tv_usec" >&6; } +if test $ac_cv_member_struct_stat_st_mtim_tv_usec = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_MTIM_TV_USEC 1 +_ACEOF + + +fi + + + +{ echo "$as_me:$LINENO: checking for struct stat.st_mtim.tv_nsec" >&5 +echo $ECHO_N "checking for struct stat.st_mtim.tv_nsec... $ECHO_C" >&6; } +if test "${ac_cv_member_struct_stat_st_mtim_tv_nsec+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +int +main () +{ +static struct stat ac_aggr; +if (ac_aggr.st_mtim.tv_nsec) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_member_struct_stat_st_mtim_tv_nsec=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +int +main () +{ +static struct stat ac_aggr; +if (sizeof ac_aggr.st_mtim.tv_nsec) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_member_struct_stat_st_mtim_tv_nsec=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_member_struct_stat_st_mtim_tv_nsec=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_mtim_tv_nsec" >&5 +echo "${ECHO_T}$ac_cv_member_struct_stat_st_mtim_tv_nsec" >&6; } +if test $ac_cv_member_struct_stat_st_mtim_tv_nsec = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 +_ACEOF + + +fi + + + + +{ echo "$as_me:$LINENO: checking for library containing compress2" >&5 +echo $ECHO_N "checking for library containing compress2... $ECHO_C" >&6; } +if test "${ac_cv_search_compress2+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_func_search_save_LIBS=$LIBS +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char compress2 (); +int +main () +{ +return compress2 (); + ; + return 0; +} +_ACEOF +for ac_lib in '' z; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_compress2=$ac_res +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext + if test "${ac_cv_search_compress2+set}" = set; then + break +fi +done +if test "${ac_cv_search_compress2+set}" = set; then + : +else + ac_cv_search_compress2=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_search_compress2" >&5 +echo "${ECHO_T}$ac_cv_search_compress2" >&6; } +ac_res=$ac_cv_search_compress2 +if test "$ac_res" != no; then + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +else + { { echo "$as_me:$LINENO: error: zlib not found" >&5 +echo "$as_me: error: zlib not found" >&2;} + { (exit cannot continue); exit cannot continue; }; } +fi + +{ echo "$as_me:$LINENO: checking for library containing getopt_long" >&5 +echo $ECHO_N "checking for library containing getopt_long... $ECHO_C" >&6; } +if test "${ac_cv_search_getopt_long+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_func_search_save_LIBS=$LIBS +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char getopt_long (); +int +main () +{ +return getopt_long (); + ; + return 0; +} +_ACEOF +for ac_lib in '' getopt getopt_long; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_getopt_long=$ac_res +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext + if test "${ac_cv_search_getopt_long+set}" = set; then + break +fi +done +if test "${ac_cv_search_getopt_long+set}" = set; then + : +else + ac_cv_search_getopt_long=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_search_getopt_long" >&5 +echo "${ECHO_T}$ac_cv_search_getopt_long" >&6; } +ac_res=$ac_cv_search_getopt_long +if test "$ac_res" != no; then + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + + +for ac_func in getopt_long +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_var'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { echo "$as_me:$LINENO: result: $RANLIB" >&5 +echo "${ECHO_T}$RANLIB" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 +echo "${ECHO_T}$ac_ct_RANLIB" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +ac_aux_dir= +for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 +echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} + { (exit 1); exit 1; }; } +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; }; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + done + done + ;; +esac +done +IFS=$as_save_IFS + + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ echo "$as_me:$LINENO: result: $INSTALL" >&5 +echo "${ECHO_T}$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +ac_config_headers="$ac_config_headers config.h" + +ac_config_files="$ac_config_files MCONFIG" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 +echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + test "x$cache_file" != "x/dev/null" && + { echo "$as_me:$LINENO: updating cache $cache_file" >&5 +echo "$as_me: updating cache $cache_file" >&6;} + cat confcache >$cache_file + else + { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 +echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + + +: ${CONFIG_STATUS=./config.status} +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +echo "$as_me: creating $CONFIG_STATUS" >&6;} +cat >$CONFIG_STATUS <<_ACEOF +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false +SHELL=\${CONFIG_SHELL-$SHELL} +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +as_nl=' +' +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + +# Work around bugs in pre-3.0 UWIN ksh. +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# CDPATH. +$as_unset CDPATH + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir +fi +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +# Find out whether ``test -x'' works. Don't use a zero-byte file, as +# systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + as_executable_p="test -x" +else + as_executable_p=: +fi +rm -f conf$$.file + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 + +# Save the log message, to keep $[0] and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by $as_me, which was +generated by GNU Autoconf 2.60a. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +ac_cs_usage="\ +\`$as_me' instantiates files from templates according to the +current configuration. + +Usage: $0 [OPTIONS] [FILE]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Report bugs to ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +ac_cs_version="\\ +config.status +configured by $0, generated by GNU Autoconf 2.60a, + with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" + +Copyright (C) 2006 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# If no file are specified by the user, then we need to provide default +# value. By we need to know if files were specified by the user. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + echo "$ac_cs_version"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + CONFIG_FILES="$CONFIG_FILES $ac_optarg" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + { echo "$as_me: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; };; + --help | --hel | -h ) + echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) { echo "$as_me: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } ;; + + *) ac_config_targets="$ac_config_targets $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +if \$ac_cs_recheck; then + echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 + CONFIG_SHELL=$SHELL + export CONFIG_SHELL + exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "MCONFIG") CONFIG_FILES="$CONFIG_FILES MCONFIG" ;; + + *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + { (exit 1); exit 1; }; };; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= + trap 'exit_status=$? + { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status +' 0 + trap '{ (exit 1); exit 1; }' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || +{ + echo "$me: cannot create a temporary directory in ." >&2 + { (exit 1); exit 1; } +} + +# +# Set up the sed scripts for CONFIG_FILES section. +# + +# No need to generate the scripts if there are no CONFIG_FILES. +# This happens for instance when ./config.status config.h +if test -n "$CONFIG_FILES"; then + +_ACEOF + + + +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + cat >conf$$subs.sed <<_ACEOF +SHELL!$SHELL$ac_delim +PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim +PACKAGE_NAME!$PACKAGE_NAME$ac_delim +PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim +PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim +PACKAGE_STRING!$PACKAGE_STRING$ac_delim +PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim +exec_prefix!$exec_prefix$ac_delim +prefix!$prefix$ac_delim +program_transform_name!$program_transform_name$ac_delim +bindir!$bindir$ac_delim +sbindir!$sbindir$ac_delim +libexecdir!$libexecdir$ac_delim +datarootdir!$datarootdir$ac_delim +datadir!$datadir$ac_delim +sysconfdir!$sysconfdir$ac_delim +sharedstatedir!$sharedstatedir$ac_delim +localstatedir!$localstatedir$ac_delim +includedir!$includedir$ac_delim +oldincludedir!$oldincludedir$ac_delim +docdir!$docdir$ac_delim +infodir!$infodir$ac_delim +htmldir!$htmldir$ac_delim +dvidir!$dvidir$ac_delim +pdfdir!$pdfdir$ac_delim +psdir!$psdir$ac_delim +libdir!$libdir$ac_delim +localedir!$localedir$ac_delim +mandir!$mandir$ac_delim +DEFS!$DEFS$ac_delim +ECHO_C!$ECHO_C$ac_delim +ECHO_N!$ECHO_N$ac_delim +ECHO_T!$ECHO_T$ac_delim +LIBS!$LIBS$ac_delim +build_alias!$build_alias$ac_delim +host_alias!$host_alias$ac_delim +target_alias!$target_alias$ac_delim +CC!$CC$ac_delim +CFLAGS!$CFLAGS$ac_delim +LDFLAGS!$LDFLAGS$ac_delim +CPPFLAGS!$CPPFLAGS$ac_delim +ac_ct_CC!$ac_ct_CC$ac_delim +EXEEXT!$EXEEXT$ac_delim +OBJEXT!$OBJEXT$ac_delim +CPP!$CPP$ac_delim +GREP!$GREP$ac_delim +EGREP!$EGREP$ac_delim +RANLIB!$RANLIB$ac_delim +INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim +INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim +INSTALL_DATA!$INSTALL_DATA$ac_delim +LIBOBJS!$LIBOBJS$ac_delim +LTLIBOBJS!$LTLIBOBJS$ac_delim +_ACEOF + + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 53; then + break + elif $ac_last_try; then + { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` +if test -n "$ac_eof"; then + ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` + ac_eof=`expr $ac_eof + 1` +fi + +cat >>$CONFIG_STATUS <<_ACEOF +cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end +_ACEOF +sed ' +s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g +s/^/s,@/; s/!/@,|#_!!_#|/ +:n +t n +s/'"$ac_delim"'$/,g/; t +s/$/\\/; p +N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n +' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF +:end +s/|#_!!_#|//g +CEOF$ac_eof +_ACEOF + + +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/ +s/:*\${srcdir}:*/:/ +s/:*@srcdir@:*/:/ +s/^\([^=]*=[ ]*\):*/\1/ +s/:*$// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF +fi # test -n "$CONFIG_FILES" + + +for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 +echo "$as_me: error: Invalid tag $ac_tag." >&2;} + { (exit 1); exit 1; }; };; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 +echo "$as_me: error: cannot find input file: $ac_f" >&2;} + { (exit 1); exit 1; }; };; + esac + ac_file_inputs="$ac_file_inputs $ac_f" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input="Generated from "`IFS=: + echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + fi + + case $ac_tag in + *:-:* | *:-) cat >"$tmp/stdin";; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir="$ac_dir" + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +echo "$as_me: error: cannot create directory $as_dir" >&2;} + { (exit 1); exit 1; }; }; } + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= + +case `sed -n '/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p +' $ac_file_inputs` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF + sed "$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s&@configure_input@&$configure_input&;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +$ac_datarootdir_hack +" $ac_file_inputs | sed -f "$tmp/subs-1.sed" >$tmp/out + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&5 +echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&2;} + + rm -f "$tmp/stdin" + case $ac_file in + -) cat "$tmp/out"; rm -f "$tmp/out";; + *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; + esac + ;; + :H) + # + # CONFIG_HEADER + # +_ACEOF + +# Transform confdefs.h into a sed script `conftest.defines', that +# substitutes the proper values into config.h.in to produce config.h. +rm -f conftest.defines conftest.tail +# First, append a space to every undef/define line, to ease matching. +echo 's/$/ /' >conftest.defines +# Then, protect against being on the right side of a sed subst, or in +# an unquoted here document, in config.status. If some macros were +# called several times there might be several #defines for the same +# symbol, which is useless. But do not sort them, since the last +# AC_DEFINE must be honored. +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where +# NAME is the cpp macro being defined, VALUE is the value it is being given. +# PARAMS is the parameter list in the macro definition--in most cases, it's +# just an empty string. +ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' +ac_dB='\\)[ (].*,\\1define\\2' +ac_dC=' ' +ac_dD=' ,' + +uniq confdefs.h | + sed -n ' + t rset + :rset + s/^[ ]*#[ ]*define[ ][ ]*// + t ok + d + :ok + s/[\\&,]/\\&/g + s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p + s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p + ' >>conftest.defines + +# Remove the space that was appended to ease matching. +# Then replace #undef with comments. This is necessary, for +# example, in the case of _POSIX_SOURCE, which is predefined and required +# on some systems where configure will not decide to define it. +# (The regexp can be short, since the line contains either #define or #undef.) +echo 's/ $// +s,^[ #]*u.*,/* & */,' >>conftest.defines + +# Break up conftest.defines: +ac_max_sed_lines=50 + +# First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" +# Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" +# Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" +# et cetera. +ac_in='$ac_file_inputs' +ac_out='"$tmp/out1"' +ac_nxt='"$tmp/out2"' + +while : +do + # Write a here document: + cat >>$CONFIG_STATUS <<_ACEOF + # First, check the format of the line: + cat >"\$tmp/defines.sed" <<\\CEOF +/^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def +/^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def +b +:def +_ACEOF + sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS + echo 'CEOF + sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS + ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in + sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail + grep . conftest.tail >/dev/null || break + rm -f conftest.defines + mv conftest.tail conftest.defines +done +rm -f conftest.defines conftest.tail + +echo "ac_result=$ac_in" >>$CONFIG_STATUS +cat >>$CONFIG_STATUS <<\_ACEOF + if test x"$ac_file" != x-; then + echo "/* $configure_input */" >"$tmp/config.h" + cat "$ac_result" >>"$tmp/config.h" + if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then + { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 +echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f $ac_file + mv "$tmp/config.h" $ac_file + fi + else + echo "/* $configure_input */" + cat "$ac_result" + fi + rm -f "$tmp/out12" + ;; + + + esac + +done # for ac_tag + + +{ (exit 0); exit 0; } +_ACEOF +chmod +x $CONFIG_STATUS +ac_clean_files=$ac_clean_files_save + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || { (exit 1); exit 1; } +fi + diff --git a/3rd-party/zisofs_tools/configure.in b/3rd-party/zisofs_tools/configure.in new file mode 100644 index 0000000..4143ec5 --- /dev/null +++ b/3rd-party/zisofs_tools/configure.in @@ -0,0 +1,58 @@ +dnl +dnl autoconf input file to generate MCONFIG +dnl + +AC_PREREQ(2.57) +AC_REVISION([$Id: configure.in,v 1.7 2004/07/20 04:04:22 hpa Exp $]) +AC_INIT(MCONFIG.in) +AC_PREFIX_DEFAULT(/usr) + +AC_PROG_CC +AC_GNU_SOURCE +AC_SYS_LARGEFILE +AC_C_CONST +AC_C_INLINE + +PA_ADD_CFLAGS(-Wall) +PA_ADD_CFLAGS(-W) +PA_ADD_CFLAGS(-Wpointer-arith) +PA_ADD_CFLAGS(-Wbad-function-cast) +PA_ADD_CFLAGS(-Wcast-equal) +PA_ADD_CFLAGS(-Wstrict-prototypes) +PA_ADD_CFLAGS(-Wmissing-prototypes) +PA_ADD_CFLAGS(-Wmissing-declarations) +PA_ADD_CFLAGS(-Wnested-externs) +PA_ADD_CFLAGS(-Winline) +PA_ADD_CFLAGS(-Wshadow) +PA_ADD_CFLAGS(-Wcast-align) +PA_ADD_CFLAGS(-pipe) + +AC_CHECK_HEADERS(inttypes.h) +AC_CHECK_HEADERS(sysexits.h) +AC_CHECK_HEADERS(getopt.h) +AC_CHECK_HEADERS(endian.h) + +AC_CHECK_TYPE(off_t, signed long) +AC_CHECK_TYPE(size_t, unsigned long) +AC_CHECK_TYPE(ssize_t, signed long) + +AC_CHECK_FUNCS(lchown) +AC_CHECK_FUNCS(utimes) + +AC_CHECK_MEMBERS(struct stat.st_mtim.tv_usec, , , [#include ]) +AH_TEMPLATE([HAVE_STRUCT_STAT_ST_MTIM_TV_USEC], + [Define to 1 if `struct stat.st_[mca]tim' are struct timeval]) +AC_CHECK_MEMBERS(struct stat.st_mtim.tv_nsec, , , [#include ]) +AH_TEMPLATE([HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC], + [Define to 1 if `struct stat.st_[mca]tim' are struct timespec]) + +AC_SEARCH_LIBS(compress2, z, , [AC_MSG_ERROR(zlib not found, cannot continue)]) +AC_SEARCH_LIBS(getopt_long, [getopt getopt_long]) +AC_CHECK_FUNCS(getopt_long) +AH_TEMPLATE([HAVE_GETOPT_LONG], [Define to 1 if you have the `getopt_long' function]) + +AC_PROG_RANLIB +AC_PROG_INSTALL + +AC_CONFIG_HEADER(config.h) +AC_OUTPUT(MCONFIG) diff --git a/3rd-party/zisofs_tools/copytime.c b/3rd-party/zisofs_tools/copytime.c new file mode 100644 index 0000000..82cff7d --- /dev/null +++ b/3rd-party/zisofs_tools/copytime.c @@ -0,0 +1,66 @@ +/* + * This file has been modified for the cdrkit suite. + * + * The behaviour and appearence of the program code below can differ to a major + * extent from the version distributed by the original author(s). + * + * For details, see Changelog file distributed with the cdrkit package. If you + * received this file from another source then ask the distributing person for + * a log of modifications. + * + */ + +/* $Id: copytime.c,v 1.2 2006/07/04 04:57:42 hpa Exp $ */ +/* ----------------------------------------------------------------------- * + * + * Copyright 2004 H. Peter Anvin - All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, Inc., 53 Temple Place Ste 330, + * Bostom MA 02111-1307, USA; either version 2 of the License, or + * (at your option) any later version; incorporated herein by reference. + * + * ----------------------------------------------------------------------- */ + +/* + * copytime.c + * + * Copy time(s) from a struct stat + */ + +#include "mkzftree.h" /* Must be included first! */ + +#include +#include +#include +#include + +int copytime(const char *filename, const struct stat *st) +{ +#if defined(HAVE_UTIMES) && (defined(HAVE_STRUCT_STAT_ST_MTIM_TV_USEC) || \ + defined(HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC)) + + struct timeval tv[2]; + +# ifdef HAVE_STRUCT_STAT_ST_MTIM_TV_USEC + tv[0] = st->st_atim; + tv[1] = st->st_mtim; +# else + tv[0].tv_sec = st->st_atim.tv_sec; + tv[0].tv_usec = st->st_atim.tv_nsec / 1000; + tv[1].tv_sec = st->st_mtim.tv_sec; + tv[1].tv_usec = st->st_mtim.tv_nsec / 1000; +# endif + return utimes(filename, tv); + +#else + + struct utimbuf ut; + + ut.actime = st->st_atime; + ut.modtime = st->st_mtime; + return utime(filename, &ut); + +#endif +} diff --git a/3rd-party/zisofs_tools/hash.c b/3rd-party/zisofs_tools/hash.c new file mode 100644 index 0000000..6c906ea --- /dev/null +++ b/3rd-party/zisofs_tools/hash.c @@ -0,0 +1,79 @@ +/* + * This file has been modified for the cdrkit suite. + * + * The behaviour and appearence of the program code below can differ to a major + * extent from the version distributed by the original author(s). + * + * For details, see Changelog file distributed with the cdrkit package. If you + * received this file from another source then ask the distributing person for + * a log of modifications. + * + */ + +#ident "$Id: hash.c,v 1.3 2006/07/04 04:57:42 hpa Exp $" +/* ----------------------------------------------------------------------- * + * + * Copyright 2001 H. Peter Anvin - All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, Inc., 675 Mass Ave, Cambridge MA 02139, + * USA; either version 2 of the License, or (at your option) any later + * version; incorporated herein by reference. + * + * ----------------------------------------------------------------------- */ + +/* + * hash.c + * + * Hash table used to find hard-linked files + */ + +#include "mkzftree.h" /* Must be included first! */ + +#define HASH_BUCKETS 2683 + +struct file_hash { + struct file_hash *next; + struct stat st; + const char *outfile_name; +}; + +static struct file_hash *hashp[HASH_BUCKETS]; + +const char *hash_find_file(struct stat *st) +{ + int bucket = (st->st_ino + st->st_dev) % HASH_BUCKETS; + struct file_hash *hp; + + for ( hp = hashp[bucket] ; hp ; hp = hp->next ) { + if ( hp->st.st_ino == st->st_ino && + hp->st.st_dev == st->st_dev && + hp->st.st_mode == st->st_mode && + hp->st.st_nlink == st->st_nlink && + hp->st.st_uid == st->st_uid && + hp->st.st_gid == st->st_gid && + hp->st.st_size == st->st_size && + hp->st.st_mtime == st->st_mtime ) { + /* Good enough, it's the same file */ + return hp->outfile_name; + } + } + return NULL; /* No match */ +} + +/* Note: the stat structure is the input file; the name + is the output file to link to */ +void hash_insert_file(struct stat *st, const char *outfile) +{ + int bucket = (st->st_ino + st->st_dev) % HASH_BUCKETS; + struct file_hash *hp = xmalloc(sizeof(struct file_hash)); + + hp->next = hashp[bucket]; + memcpy(&hp->st, st, sizeof(struct stat)); + hp->outfile_name = xstrdup(outfile); + + hashp[bucket] = hp; +} + + diff --git a/3rd-party/zisofs_tools/install-sh b/3rd-party/zisofs_tools/install-sh new file mode 100644 index 0000000..89fc9b0 --- /dev/null +++ b/3rd-party/zisofs_tools/install-sh @@ -0,0 +1,238 @@ +#! /bin/sh +# +# install - install a program, script, or datafile +# This comes from X11R5. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. +# + + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit="${DOITPROG-}" + + +# put in absolute paths if you don't have them in your path; or use env. vars. + +mvprog="${MVPROG-mv}" +cpprog="${CPPROG-cp}" +chmodprog="${CHMODPROG-chmod}" +chownprog="${CHOWNPROG-chown}" +chgrpprog="${CHGRPPROG-chgrp}" +stripprog="${STRIPPROG-strip}" +rmprog="${RMPROG-rm}" +mkdirprog="${MKDIRPROG-mkdir}" + +tranformbasename="" +transform_arg="" +instcmd="$mvprog" +chmodcmd="$chmodprog 0755" +chowncmd="" +chgrpcmd="" +stripcmd="" +rmcmd="$rmprog -f" +mvcmd="$mvprog" +src="" +dst="" +dir_arg="" + +while [ x"$1" != x ]; do + case $1 in + -c) instcmd="$cpprog" + shift + continue;; + + -d) dir_arg=true + shift + continue;; + + -m) chmodcmd="$chmodprog $2" + shift + shift + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + -s) stripcmd="$stripprog" + shift + continue;; + + -t=*) transformarg=`echo $1 | sed 's/-t=//'` + shift + continue;; + + -b=*) transformbasename=`echo $1 | sed 's/-b=//'` + shift + continue;; + + *) if [ x"$src" = x ] + then + src=$1 + else + # this colon is to work around a 386BSD /bin/sh bug + : + dst=$1 + fi + shift + continue;; + esac +done + +if [ x"$src" = x ] +then + echo "install: no input file specified" + exit 1 +else + true +fi + +if [ x"$dir_arg" != x ]; then + dst=$src + src="" + + if [ -d $dst ]; then + instcmd=: + else + instcmd=mkdir + fi +else + +# Waiting for this to be detected by the "$instcmd $src $dsttmp" command +# might cause directories to be created, which would be especially bad +# if $src (and thus $dsttmp) contains '*'. + + if [ -f $src -o -d $src ] + then + true + else + echo "install: $src does not exist" + exit 1 + fi + + if [ x"$dst" = x ] + then + echo "install: no destination specified" + exit 1 + else + true + fi + +# If destination is a directory, append the input filename; if your system +# does not like double slashes in filenames, you may need to add some logic + + if [ -d $dst ] + then + dst="$dst"/`basename $src` + else + true + fi +fi + +## this sed command emulates the dirname command +dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` + +# Make sure that the destination directory exists. +# this part is taken from Noah Friedman's mkinstalldirs script + +# Skip lots of stat calls in the usual case. +if [ ! -d "$dstdir" ]; then +defaultIFS=' +' +IFS="${IFS-${defaultIFS}}" + +oIFS="${IFS}" +# Some sh's can't handle IFS=/ for some reason. +IFS='%' +set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` +IFS="${oIFS}" + +pathcomp='' + +while [ $# -ne 0 ] ; do + pathcomp="${pathcomp}${1}" + shift + + if [ ! -d "${pathcomp}" ] ; + then + $mkdirprog "${pathcomp}" + else + true + fi + + pathcomp="${pathcomp}/" +done +fi + +if [ x"$dir_arg" != x ] +then + $doit $instcmd $dst && + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi +else + +# If we're going to rename the final executable, determine the name now. + + if [ x"$transformarg" = x ] + then + dstfile=`basename $dst` + else + dstfile=`basename $dst $transformbasename | + sed $transformarg`$transformbasename + fi + +# don't allow the sed command to completely eliminate the filename + + if [ x"$dstfile" = x ] + then + dstfile=`basename $dst` + else + true + fi + +# Make a temp file name in the proper directory. + + dsttmp=$dstdir/#inst.$$# + +# Move or copy the file name to the temp name + + $doit $instcmd $src $dsttmp && + + trap "rm -f ${dsttmp}" 0 && + +# and set any options; do chmod last to preserve setuid bits + +# If any of these fail, we abort the whole thing. If we want to +# ignore errors from any of these, just make sure not to ignore +# errors from the above "$doit $instcmd $src $dsttmp" command. + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && + +# Now rename the file to the real destination. + + $doit $rmcmd -f $dstdir/$dstfile && + $doit $mvcmd $dsttmp $dstdir/$dstfile + +fi && + + +exit 0 diff --git a/3rd-party/zisofs_tools/iso9660.c b/3rd-party/zisofs_tools/iso9660.c new file mode 100644 index 0000000..c5b0abd --- /dev/null +++ b/3rd-party/zisofs_tools/iso9660.c @@ -0,0 +1,123 @@ +/* + * This file has been modified for the cdrkit suite. + * + * The behaviour and appearence of the program code below can differ to a major + * extent from the version distributed by the original author(s). + * + * For details, see Changelog file distributed with the cdrkit package. If you + * received this file from another source then ask the distributing person for + * a log of modifications. + * + */ + +/* $Id: iso9660.c,v 1.1 2001/07/27 14:37:08 hpa Exp $ */ +/* ----------------------------------------------------------------------- * + * + * Copyright 2001 H. Peter Anvin - All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, Inc., 675 Mass Ave, Cambridge MA 02139, + * USA; either version 2 of the License, or (at your option) any later + * version; incorporated herein by reference. + * + * ----------------------------------------------------------------------- */ + +#include "iso9660.h" + +/* zisofs magic */ + +const unsigned char zisofs_magic[8] = { + 0x37, 0xE4, 0x53, 0x96, 0xC9, 0xDB, 0xD6, 0x07 +}; + +/* iso9660 integer formats */ + +void +set_721(void *pnt, unsigned int i) +{ + unsigned char *p = (unsigned char *)pnt; + p[0] = i & 0xff; + p[1] = (i >> 8) & 0xff; +} + +unsigned int +get_721(void *pnt) +{ + unsigned char *p = (unsigned char *)pnt; + return ((unsigned int)p[0]) + ((unsigned int)p[1] << 8); +} + +void +set_722(void *pnt, unsigned int i) +{ + unsigned char *p = (unsigned char *)pnt; + p[0] = (i >> 8) & 0xff; + p[1] = i & 0xff; +} + +unsigned int +get_722(void *pnt) +{ + unsigned char *p = (unsigned char *)pnt; + return ((unsigned int)p[0] << 8) + ((unsigned int)p[1]); +} + +void +set_723(void *pnt, unsigned int i) +{ + unsigned char *p = (unsigned char *)pnt; + p[3] = p[0] = i & 0xff; + p[2] = p[1] = (i >> 8) & 0xff; +} + +#define get_723(x) get_721(x) + +void +set_731(void *pnt, unsigned int i) +{ + unsigned char *p = (unsigned char *)pnt; + p[0] = i & 0xff; + p[1] = (i >> 8) & 0xff; + p[2] = (i >> 16) & 0xff; + p[3] = (i >> 24) & 0xff; +} + +unsigned int +get_731(void *pnt) +{ + unsigned char *p = (unsigned char *)pnt; + return ((unsigned int)p[0]) + ((unsigned int)p[1] << 8) + + ((unsigned int)p[2] << 16) + ((unsigned int)p[3] << 24); +} + +void +set_732(void *pnt, unsigned int i) +{ + unsigned char *p = (unsigned char *)pnt; + p[3] = i & 0xff; + p[2] = (i >> 8) & 0xff; + p[1] = (i >> 16) & 0xff; + p[0] = (i >> 24) & 0xff; +} + +unsigned int +get_732(void *pnt) +{ + unsigned char *p = (unsigned char *)pnt; + return ((unsigned int)p[0] << 24) + ((unsigned int)p[1] << 16) + + ((unsigned int)p[2] << 8) + ((unsigned int)p[3]); +} + +void +set_733(void *pnt, unsigned int i) +{ + unsigned char *p = (unsigned char *)pnt; + p[7] = p[0] = i & 0xff; + p[6] = p[1] = (i >> 8) & 0xff; + p[5] = p[2] = (i >> 16) & 0xff; + p[4] = p[3] = (i >> 24) & 0xff; +} + +#define get_733(x) get_731(x) + diff --git a/3rd-party/zisofs_tools/iso9660.h b/3rd-party/zisofs_tools/iso9660.h new file mode 100644 index 0000000..20249b8 --- /dev/null +++ b/3rd-party/zisofs_tools/iso9660.h @@ -0,0 +1,62 @@ +/* + * This file has been modified for the cdrkit suite. + * + * The behaviour and appearence of the program code below can differ to a major + * extent from the version distributed by the original author(s). + * + * For details, see Changelog file distributed with the cdrkit package. If you + * received this file from another source then ask the distributing person for + * a log of modifications. + * + */ + +#ident "$Id: iso9660.h,v 1.4 2006/07/04 04:57:42 hpa Exp $" +/* ----------------------------------------------------------------------- * + * + * Copyright 2001 H. Peter Anvin - All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, Inc., 675 Mass Ave, Cambridge MA 02139, + * USA; either version 2 of the License, or (at your option) any later + * version; incorporated herein by reference. + * + * ----------------------------------------------------------------------- */ + +/* zisofs definitions */ + +#ifndef ISO9660_H +#define ISO9660_H + +#ifndef CBLOCK_SIZE_LG2 +#define CBLOCK_SIZE_LG2 15 /* Compressed block size */ +#endif +#define CBLOCK_SIZE (1 << CBLOCK_SIZE_LG2) + +/* Compressed file magic */ +extern const unsigned char zisofs_magic[8]; + +/* VERY VERY VERY IMPORTANT: Must be a multiple of 4 bytes */ +struct compressed_file_header { + char magic[8]; + char uncompressed_len[4]; + unsigned char header_size; + unsigned char block_size; + char reserved[2]; /* Reserved for future use, MBZ */ +}; + +/* iso9660 integer formats */ +void set_721(void *, unsigned int); +unsigned int get_721(void *); +void set_722(void *, unsigned int); +unsigned int get_722(void *); +void set_723(void *, unsigned int); +void set_731(void *, unsigned int); +unsigned int get_731(void *); +void set_732(void *, unsigned int); +unsigned int get_732(void *); +void set_733(void *, unsigned int); +#define get_723(x) get_721(x) +#define get_733(x) get_731(x) + +#endif /* ISO9660_H */ diff --git a/3rd-party/zisofs_tools/mkzftree.1 b/3rd-party/zisofs_tools/mkzftree.1 new file mode 100644 index 0000000..fcd3d15 --- /dev/null +++ b/3rd-party/zisofs_tools/mkzftree.1 @@ -0,0 +1,120 @@ +.\" $Id: mkzftree.1,v 1.13 2004/07/20 04:03:53 hpa Exp $ +.\" ----------------------------------------------------------------------- +.\" +.\" Copyright 2001 H. Peter Anvin - All Rights Reserved +.\" +.\" This program is free software; you can redistribute it and/or modify +.\" it under the terms of the GNU General Public License as published by +.\" the Free Software Foundation, Inc., 675 Mass Ave, Cambridge MA 02139, +.\" USA; either version 2 of the License, or (at your option) any later +.\" version; incorporated herein by reference. +.\" +.\" ----------------------------------------------------------------------- +.TH MKZFTREE "1" "30 July 2001" "zisofs-tools" "H. Peter Anvin" +.SH NAME +mkzftree \- Create a zisofs/RockRidge compressed file tree +.SH SYNOPSIS +.B mkzftree +[\fIOPTIONS\fR]... \fIINPUT\fR \fIOUTPUT\fR +.SH DESCRIPTION +.PP +Takes an input file tree (\fIINPUT\fR) and create a corresponding +compressed file tree (\fIOUTPUT\fR) that can be used with an +appropriately patched +.BR mkisofs (8) +to create a transparent-compression ISO 9660/Rock Ridge filesystem using +the "ZF" compression records. +.SH OPTIONS +.TP +\fB\-f\fP, \fB\-\-force\fP +Always compress all files, even if they get larger when compressed. +.TP +\fB\-z\fP \fIlevel\fP, \fB\-\-level\fP \fIlevel\fP +Select compression level (1-9, default is 9). Lower compression +levels are faster, but typically result in larger output. +.TP +\fB\-u\fP, \fB\-\-uncompress\fP +Uncompress an already compressed tree. This can be used to read a +compressed filesystem on a system which cannot read them natively. +.TP +\fB\-p\fP \fIparallelism\fP, \fB\-\-parallelism\fP \fIparallelism\fP +Compress in parallel. The +.I parallelism +value indicates how many compression threads are allowed to run. +.TP +\fB\-x\fP, \fB\-\-one-filesystem\fP +Do not cross filesystem boundaries, but create directory stubs at +mount points. +.TP +\fB\-X\fP, \fB\-\-strict-one-filesystem\fP +Do not cross filesystem boundaries, and do not create directory stubs +at mount points. +.TP +\fB\-C\fP \fIpath\fP, \fB\-\-crib-path\fP \fIpath\fP +Steal ("crib") files from another directory if it looks (based on +name, size, type and modification time) like they match entries in the +new filesystem. The "crib tree" is usually the compressed version of +an older version of the same workload; this thus allows for +"incremental rebuilds" of a compressed filesystem tree. The files are +hardlinked from the crib tree to the output tree, so if it is +desirable to keep the link count correct the crib path should be +deleted before running \fBmkisofs\fP. The crib tree must be on the +same filesystem as the output tree. +.TP +\fB\-l\fP, \fB\-\-local\fP +Do not recurse into subdirectories, but create the directories +themselves. +.TP +\fB\-L\fP, \fB\-\-strict-local\fP +Do not recurse into subdirectories, and do not create directories. +.TP +\fB\-F\fP, \fB\-\-file\fP +Indicates that \fIINPUT\fP may not necessarily be a directory; this +allows operation on a single file. Note especially that if \fI\-F\fP +is specified, and \fIINPUT\fP is a symlink, the symlink itself will be +copied rather than whatever it happens to point to. +.TP +\fB\-s\fP, \fB\-\-sloppy\fP +Treat file modes, times and ownership data as less than precious +information and don't abort if they cannot be set. This may be useful +if running +.B mkisofs +on an input tree you do not own. +.TP +\fB\-v\fP, \fB\-\-verbose\fP +Increase the program verbosity. +.TP +\fB\-V\fP \fIvalue\fP, \fB\-\-verbosity\fP \fIvalue\fP +Set the program verbosity to +.IR value . +.TP +\fB\-q\fP, \fB\-\-quiet\fP +Issue no messages whatsoever, including error messages. This is the same +as specifying +.IR "\-V\ 0" . +.TP +\fB\-h\fP, \fB\-\-help\fP +Display a brief help message. +.TP +\fB\-w\fP, \fB\-\-version\fP +Display the release version. +.SH BUGS +Long options (beginning with \fI\-\-\fP) may not work on all systems. +See the message printed out by \fImkzftree\ \-h\fP to see if this +applies to your system. +.PP +Inode change times (ctimes) are not copied. This is a system +limitation and applies to all file copy programs. +.PP +If using the parallel option (\fI\-z\fP) the access times (atimes) on +directories may or may not be copied. If it is important that the +atimes on directories are copied exactly, avoid using \fI\-z\fP. +.SH AUTHOR +Written by H. Peter Anvin . +.SH COPYRIGHT +Copyright \(co 2001-2002 H. Peter Anvin. +.br +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +.SH "SEE ALSO" +.BR mkisofs (8) diff --git a/3rd-party/zisofs_tools/mkzftree.c b/3rd-party/zisofs_tools/mkzftree.c new file mode 100644 index 0000000..3551180 --- /dev/null +++ b/3rd-party/zisofs_tools/mkzftree.c @@ -0,0 +1,294 @@ +/* + * This file has been modified for the cdrkit suite. + * + * The behaviour and appearence of the program code below can differ to a major + * extent from the version distributed by the original author(s). + * + * For details, see Changelog file distributed with the cdrkit package. If you + * received this file from another source then ask the distributing person for + * a log of modifications. + * + */ + +/* $Id: mkzftree.c,v 1.18 2006/07/04 04:57:42 hpa Exp $ */ +/* ----------------------------------------------------------------------- * + * + * Copyright 2001 H. Peter Anvin - All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, Inc., 675 Mass Ave, Cambridge MA 02139, + * USA; either version 2 of the License, or (at your option) any later + * version; incorporated herein by reference. + * + * ----------------------------------------------------------------------- */ + +/* + * mkzffile.c + * + * - Generate block-compression of files for use with + * the "ZF" extension to the iso9660/RockRidge filesystem. + * + * The file compression technique used is the "deflate" + * algorithm used by the zlib library; each block must have a + * valid (12-byte) zlib header. In addition, the file itself + * has the following structure: + * + * Byte offset iso9660 type Contents + * 0 (8 bytes) Magic number (37 E4 53 96 C9 DB D6 07) + * 8 7.3.1 Uncompressed file size + * 12 7.1.1 header_size >> 2 (currently 4) + * 13 7.1.1 log2(block_size) + * 14 (2 bytes) Reserved, must be zero + * + * The header may get expanded in the future, at which point the + * header size field will be used to increase the space for the + * header. + * + * All implementations are required to support a block_size of 32K + * (byte 13 == 15). + * + * Note that bytes 12 and 13 and the uncompressed length are also + * present in the ZF record; THE TWO MUST BOTH BE CONSISTENT AND + * CORRECT. + * + * Given the uncompressed size, block_size, and header_size: + * + * Nblocks := ceil(size/block_size) + * + * After the header follow (nblock+1) 32-bit pointers, recorded as + * iso9660 7.3.1 (littleendian); each indicate the byte offset (from + * the start of the file) to one block and the first byte beyond the + * end of the previous block; the first pointer thus point to the + * start of the data area and the last pointer to the first byte + * beyond it: + * + * block_no := floor(byte_offset/block_size) + * + * block_start := read_pointer_731( (header_size+block_no)*4 ) + * block_end := read_pointer_731( (header_size+block_no+1)*4 ) + * + * The block data is compressed according to "zlib". + */ + +#include "mkzftree.h" /* Must be included first! */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef HAVE_GETOPT_H +#include +#endif + +#include "version.h" + +/* Command line options */ +struct cmdline_options opt = { + 0, /* Force compression */ + 9, /* Compression level */ + 0, /* Parallelism (0 = strictly serial) */ + 0, /* One filesystem only */ + 0, /* One directory only */ + 1, /* Create stub directories */ + 0, /* Root may be a file */ + 0, /* Be paranoid about metadata */ + default_verbosity, /* Default verbosity */ + block_compress_file /* Default transformation function */ +}; + +/* Program name */ +const char *program; + +/* Long options */ +#define OPTSTRING "fz:up:xXC:lLFvqV:hw" +#ifdef HAVE_GETOPT_LONG +const struct option long_options[] = { + { "force", 0, 0, 'f' }, + { "level", 1, 0, 'z' }, + { "uncompress", 0, 0, 'u' }, + { "parallelism", 1, 0, 'p' }, + { "one-filesystem", 0, 0, 'x' }, + { "strict-one-filesystem", 0, 0, 'X' }, + { "crib-tree", 1, 0, 'C' }, + { "local", 0, 0, 'l' }, + { "strict-local", 0, 0, 'L' }, + { "file", 0, 0, 'F' }, + { "verbose", 0, 0, 'v' }, + { "quiet", 0, 0, 'q' }, + { "verbosity", 1, 0, 'V' }, + { "help", 0, 0, 'h' }, + { "version", 0, 0, 'w' }, + { 0, 0, 0, 0 } +}; +#define LO(X) X +#else +#define getopt_long(C,V,O,L,I) getopt(C,V,O) +#define LO(X) +#endif + +static void usage(enum verbosity level, int err) +{ + message(level, + "zisofs-tools " ZISOFS_TOOLS_VERSION "\n" + "Usage: %s [options] intree outtree\n" + LO(" --force ")" -f Always compress, even if result is larger\n" + LO(" --level # ")" -z # Set compression level (1-9)\n" + LO(" --uncompress ")" -u Uncompress an already compressed tree\n" + LO(" --parallelism # ")" -p # Process up to # files in parallel\n" + LO(" --one-filesystem ")" -x Do not cross filesystem boundaries\n" + LO(" --strict-one-filesystem")" -X Same as -x, but don't create stubs dirs\n" + LO(" --crib-tree ")" -C Steal \"crib\" files from an old tree\n" + LO(" --local ")" -l Do not recurse into subdirectoires\n" + LO(" --strict-local ")" -L Same as -l, but don't create stubs dirs\n" + LO(" --file ")" -F Operate possibly on a single file\n" + LO(" --sloppy ")" -s Don't abort if metadata cannot be set\n" + LO(" --verbose ")" -v Increase message verbosity\n" + LO(" --verbosity # ")" -V # Set message verbosity to # (default = %d)\n" + LO(" --quiet ")" -q No messages, not even errors (-V 0)\n" + LO(" --help ")" -h Display this message\n" + LO(" --version ")" -w Display the program version\n" + ,program, (int)default_verbosity); + exit(err); +} + +static int opt_atoi(const char *str) +{ + char *endptr; + long out; + + out = strtol(str, &endptr, 10); + if ( *endptr ) + usage(vl_error, EX_USAGE); + + return (int)out; +} + + +int main(int argc, char *argv[]) +{ + const char *in, *out, *crib = NULL; + struct stat st; + int optch, err; + + program = argv[0]; + + while ( (optch = getopt_long(argc, argv, OPTSTRING, long_options, NULL)) + != EOF ) { + switch(optch) { + case 'f': + opt.force = 1; /* Always compress */ + break; + case 'z': + opt.level = opt_atoi(optarg); + if ( opt.level < 1 || opt.level > 9 ) { + message(vl_error, "%s: invalid compression level: %d\n", + program, optarg); + exit(EX_USAGE); + } + break; + case 'v': + opt.verbosity++; + break; + case 'V': + opt.verbosity = opt_atoi(optarg); + break; + case 'q': + opt.verbosity = vl_quiet; + break; + case 'u': + opt.munger = block_uncompress_file; + break; + case 'C': + crib = optarg; + break; + case 'p': + opt.parallel = opt_atoi(optarg); + break; + case 'x': + opt.onefs = 1; opt.do_mkdir = 1; + break; + case 'l': + opt.onedir = 1; opt.do_mkdir = 1; + break; + case 'X': + opt.onefs = 1; opt.do_mkdir = 0; + break; + case 'L': + opt.onedir = 1; opt.do_mkdir = 0; + break; + case 'F': + opt.file_root = 1; + break; + case 's': + opt.sloppy = 1; + break; + case 'h': + usage(vl_quiet, 0); + break; + case 'w': + message(vl_quiet, "zisofs-tools " ZISOFS_TOOLS_VERSION "\n"); + exit(0); + default: + usage(vl_error, EX_USAGE); + break; + } + } + + if ( (argc-optind) != 2 ) + usage(vl_error, EX_USAGE); + + in = argv[optind]; /* Input tree */ + out = argv[optind+1]; /* Output tree */ + + umask(077); + + if ( opt.file_root ) { + if ( lstat(in, &st) ) { + message(vl_error, "%s: %s: %s\n", program, in, strerror(errno)); + exit(EX_NOINPUT); + } + + err = munge_entry(in, out, crib, NULL); + } else { + /* Special case: we use stat() for the root, not lstat() */ + if ( stat(in, &st) ) { + message(vl_error, "%s: %s: %s\n", program, in, strerror(errno)); + exit(EX_NOINPUT); + } + if ( !S_ISDIR(st.st_mode) ) { + message(vl_error, "%s: %s: Not a directory\n", program, in); + exit(EX_DATAERR); + } + + err = munge_tree(in, out, crib); + } + + wait_for_all_workers(); + + if ( err ) + exit(err); + + if ( !opt.file_root ) { + if ( chown(out, st.st_uid, st.st_gid) && !opt.sloppy ) { + message(vl_error, "%s: %s: %s", program, out, strerror(errno)); + err = EX_CANTCREAT; + } + if ( chmod(out, st.st_mode) && !opt.sloppy && !err ) { + message(vl_error, "%s: %s: %s", program, out, strerror(errno)); + err = EX_CANTCREAT; + } + if ( copytime(out, &st) && !opt.sloppy && !err ) { + message(vl_error, "%s: %s: %s", program, out, strerror(errno)); + err = EX_CANTCREAT; + } + } + + return err; +} diff --git a/3rd-party/zisofs_tools/mkzftree.h b/3rd-party/zisofs_tools/mkzftree.h new file mode 100644 index 0000000..36e9358 --- /dev/null +++ b/3rd-party/zisofs_tools/mkzftree.h @@ -0,0 +1,115 @@ +/* + * This file has been modified for the cdrkit suite. + * + * The behaviour and appearence of the program code below can differ to a major + * extent from the version distributed by the original author(s). + * + * For details, see Changelog file distributed with the cdrkit package. If you + * received this file from another source then ask the distributing person for + * a log of modifications. + * + */ + +#ident "$Id: mkzftree.h,v 1.7 2006/07/04 04:57:42 hpa Exp $" +/* ----------------------------------------------------------------------- * + * + * Copyright 2001-2006 H. Peter Anvin - All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, Inc., 675 Mass Ave, Cambridge MA 02139, + * USA; either version 2 of the License, or (at your option) any later + * version; incorporated herein by reference. + * + * ----------------------------------------------------------------------- */ + +#ifndef MKZFTREE_H +#define MKZFTREE_H + +/* config.h should be included before any system headers!!!! */ +#include "config.h" + +#include +#include +#include +#include +#include +#include +#ifdef HAVE_INTTYPES_H +#include +#endif +#ifdef HAVE_ENDIAN_H +#include +#endif + +#ifdef HAVE_SYSEXITS_H +#include +#else +#define EX_USAGE 64 /* command line usage error */ +#define EX_DATAERR 65 /* data format error */ +#define EX_NOINPUT 66 /* cannot open input */ +#define EX_NOUSER 67 /* addressee unknown */ +#define EX_NOHOST 68 /* host name unknown */ +#define EX_UNAVAILABLE 69 /* service unavailable */ +#define EX_SOFTWARE 70 /* internal software error */ +#define EX_OSERR 71 /* system error (e.g., can't fork) */ +#define EX_OSFILE 72 /* critical OS file missing */ +#define EX_CANTCREAT 73 /* can't create (user) output file */ +#define EX_IOERR 74 /* input/output error */ +#define EX_TEMPFAIL 75 /* temp failure; user is invited to retry */ +#define EX_PROTOCOL 76 /* remote error in protocol */ +#define EX_NOPERM 77 /* permission denied */ +#define EX_CONFIG 78 /* configuration error */ +#endif + +/* File transformation functions */ +typedef int (*munger_func)(FILE *, FILE *, off_t); +int block_compress_file(FILE *, FILE *, off_t); +int block_uncompress_file(FILE *, FILE *, off_t); + +/* mkzftree.c */ +extern const char *program; /* Program name */ +enum verbosity { /* Message verbosity */ + vl_quiet, /* No messages */ + vl_error, /* Error messages only */ + vl_filename, /* Display filenames */ + vl_crib, /* Cribbing files */ +}; +#define default_verbosity vl_error +struct cmdline_options { + int force; /* Always compress */ + int level; /* Compression level */ + int parallel; /* Parallelism (0 = strictly serial) */ + int onefs; /* One filesystem only */ + int onedir; /* One directory only */ + int do_mkdir; /* Create stub directories */ + int file_root; /* The root may be a file */ + int sloppy; /* Don't make sure metadata is set correctly */ + enum verbosity verbosity; /* Message verbosity */ + munger_func munger; /* Default action */ +}; +extern struct cmdline_options opt; + +/* walk.c */ +int munge_tree(const char *, const char *, const char *); +int munge_entry(const char *, const char *, const char *, const struct stat *); + +/* workers.c */ +void wait_for_all_workers(void); +int spawn_worker(void); +void end_worker(int); + +/* util.c */ +void *xmalloc(size_t); +void *xrealloc(void *, size_t); +char *xstrdup(const char *); +void message(enum verbosity, const char *, ...); + +/* hash.c */ +const char *hash_find_file(struct stat *); +void hash_insert_file(struct stat *, const char *); + +/* copytime.h */ +int copytime(const char *, const struct stat *); + +#endif /* MKZFTREE_H */ diff --git a/3rd-party/zisofs_tools/uncompress.c b/3rd-party/zisofs_tools/uncompress.c new file mode 100644 index 0000000..c9ba6e4 --- /dev/null +++ b/3rd-party/zisofs_tools/uncompress.c @@ -0,0 +1,147 @@ +/* + * This file has been modified for the cdrkit suite. + * + * The behaviour and appearence of the program code below can differ to a major + * extent from the version distributed by the original author(s). + * + * For details, see Changelog file distributed with the cdrkit package. If you + * received this file from another source then ask the distributing person for + * a log of modifications. + * + */ + +/* $Id: uncompress.c,v 1.3 2006/07/04 04:57:42 hpa Exp $ */ +/* ----------------------------------------------------------------------- * + * + * Copyright 2001-2006 H. Peter Anvin - All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, Inc., 675 Mass Ave, Cambridge MA 02139, + * USA; either version 2 of the License, or (at your option) any later + * version; incorporated herein by reference. + * + * ----------------------------------------------------------------------- */ + +#include "mkzftree.h" /* Must be included first! */ + +#include +#include +#include + +#include "iso9660.h" + +int block_uncompress_file(FILE *input, FILE *output, off_t size) +{ + struct compressed_file_header hdr; + Bytef *inbuf, *outbuf; + int block_shift; + char *pointer_block, *pptr; + unsigned long nblocks; + unsigned long fullsize, block_size, block_size2; + size_t ptrblock_bytes; + unsigned long cstart, cend, csize; + uLong bytes; + int zerr; + int err = EX_SOFTWARE; + + if ( (bytes = fread(&hdr, 1, sizeof hdr, input)) != sizeof hdr ) { + if ( bytes == (size_t)size ) { + /* Very short file; not compressed */ + return ( fwrite(&hdr, 1, bytes, output) != bytes ) ? EX_CANTCREAT : 0; + } else { + return EX_IOERR; /* Read error */ + } + } + + if ( memcmp(&hdr.magic, zisofs_magic, sizeof zisofs_magic) ) { + inbuf = xmalloc(CBLOCK_SIZE); + /* Not compressed */ + memcpy(inbuf, &hdr, sizeof hdr); + bytes = sizeof hdr; + do { + if ( fwrite(inbuf, 1, bytes, output) != bytes ) + return EX_CANTCREAT; + } while ( (bytes = fread(inbuf, 1, CBLOCK_SIZE, input)) > 0 ); + free(inbuf); + return ferror(input) ? EX_IOERR : 0; + } + + /* Now we know the file must be compressed. Get the pointer table. */ + if ( fseek(input, hdr.header_size << 2, SEEK_SET) == -1 ) + return EX_IOERR; + + fullsize = get_731(hdr.uncompressed_len); + block_shift = hdr.block_size; + block_size = 1UL << block_shift; + block_size2 = block_size << 1; + inbuf = xmalloc(block_size2); + outbuf = xmalloc(block_size); + + nblocks = (fullsize + block_size - 1) >> block_shift; + + ptrblock_bytes = (nblocks+1) * 4; + pointer_block = xmalloc(ptrblock_bytes); + + if ( (bytes = fread(pointer_block, 1, ptrblock_bytes, input)) != ptrblock_bytes ) { + err = EX_IOERR; + goto free_ptr_bail; + } + + pptr = pointer_block; + while ( fullsize ) { + cstart = get_731(pptr); + pptr += 4; + cend = get_731(pptr); + + csize = cend-cstart; + + if ( csize == 0 ) { + memset(outbuf, 0, block_size); + bytes = block_size; + } else { + if ( csize > block_size2 ) { + err = EX_DATAERR; + goto free_ptr_bail; + } + + if ( fseek(input, cstart, SEEK_SET) == -1 || + (bytes = fread(inbuf, 1, csize, input)) != csize ) { + err = EX_IOERR; + goto free_ptr_bail; + } + + bytes = block_size; /* Max output buffer size */ + if ( (zerr = uncompress(outbuf, &bytes, inbuf, csize)) != Z_OK ) { + err = (zerr = Z_MEM_ERROR) ? EX_OSERR : EX_DATAERR; + goto free_ptr_bail; + } + } + + if ( ((fullsize > block_size) && (bytes != block_size)) + || ((fullsize <= block_size) && (bytes < fullsize)) ) { + err = EX_DATAERR; + goto free_ptr_bail; + } + + if ( bytes > fullsize ) + bytes = fullsize; + + if ( fwrite(outbuf, 1, bytes, output) != bytes ) { + err = EX_CANTCREAT; + goto free_ptr_bail; + } + + fullsize -= bytes; + } + + err = 0; + + free_ptr_bail: + free(pointer_block); + free(inbuf); + free(outbuf); + return err; +} + + diff --git a/3rd-party/zisofs_tools/util.c b/3rd-party/zisofs_tools/util.c new file mode 100644 index 0000000..1b45cdf --- /dev/null +++ b/3rd-party/zisofs_tools/util.c @@ -0,0 +1,68 @@ +/* + * This file has been modified for the cdrkit suite. + * + * The behaviour and appearence of the program code below can differ to a major + * extent from the version distributed by the original author(s). + * + * For details, see Changelog file distributed with the cdrkit package. If you + * received this file from another source then ask the distributing person for + * a log of modifications. + * + */ + +/* $Id: util.c,v 1.3 2006/07/04 04:57:42 hpa Exp $ */ +/* ----------------------------------------------------------------------- * + * + * Copyright 2001-2006 H. Peter Anvin - All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, Inc., 675 Mass Ave, Cambridge MA 02139, + * USA; either version 2 of the License, or (at your option) any later + * version; incorporated herein by reference. + * + * ----------------------------------------------------------------------- */ + +#include "mkzftree.h" /* Must be included first! */ + +#include +#include +#include +#include +#include + +/* Convenience functions */ +void *xmalloc(size_t size) +{ + void *p = malloc(size); + + if ( !p ) { + perror(program); + exit(EX_OSERR); + } + + return p; +} + +char *xstrdup(const char *str) +{ + char *s = strdup(str); + + if ( !s ) { + perror(program); + exit(EX_OSERR); + } + + return s; +} + +void message(enum verbosity level, const char *format, ...) +{ + va_list ap; + + va_start(ap, format); + if ( opt.verbosity >= level ) + vfprintf(stderr, format, ap); + va_end(ap); +} + diff --git a/3rd-party/zisofs_tools/version b/3rd-party/zisofs_tools/version new file mode 100644 index 0000000..238d6e8 --- /dev/null +++ b/3rd-party/zisofs_tools/version @@ -0,0 +1 @@ +1.0.7 diff --git a/3rd-party/zisofs_tools/walk.c b/3rd-party/zisofs_tools/walk.c new file mode 100644 index 0000000..3b62f73 --- /dev/null +++ b/3rd-party/zisofs_tools/walk.c @@ -0,0 +1,323 @@ +/* + * This file has been modified for the cdrkit suite. + * + * The behaviour and appearence of the program code below can differ to a major + * extent from the version distributed by the original author(s). + * + * For details, see Changelog file distributed with the cdrkit package. If you + * received this file from another source then ask the distributing person for + * a log of modifications. + * + */ + +#ident "$Id: walk.c,v 1.7 2006/07/04 04:57:42 hpa Exp $" +/* ----------------------------------------------------------------------- * + * + * Copyright 2001-2006 H. Peter Anvin - All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, Inc., 675 Mass Ave, Cambridge MA 02139, + * USA; either version 2 of the License, or (at your option) any later + * version; incorporated herein by reference. + * + * ----------------------------------------------------------------------- */ + +/* + * walk.c + * + * Functions to walk the file tree + */ + +#include "mkzftree.h" /* Must be included first! */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "iso9660.h" + +static int munge_file(const char *inpath, const char *outpath, + const char *cribpath, struct stat *st) +{ + FILE *in, *out; + int err = 0; + + if ( cribpath ) { + struct stat cst; + struct compressed_file_header cfh; + + /* Compare as much as we realistically can */ + if ( !stat(cribpath, &cst) && + st->st_mode == cst.st_mode && + st->st_uid == cst.st_uid && + st->st_gid == cst.st_gid && + st->st_mtime == cst.st_mtime ) { + if ( (in = fopen(cribpath, "rb")) ) { + int e = fread(&cfh, 1, sizeof cfh, in); + fclose(in); + /* Attempt to restore the atime */ + copytime(cribpath, &cst); + + if ( (e == sizeof cfh && + !memcmp(cfh.magic, zisofs_magic, sizeof zisofs_magic) && + (off_t)get_731(cfh.uncompressed_len) == st->st_size) || + (st->st_size == cst.st_size && + (e < (int)(sizeof zisofs_magic) || + memcmp(cfh.magic, zisofs_magic, sizeof zisofs_magic))) ) { + /* File is cribbable. Steal it. */ + if ( !link(cribpath, outpath) ) { + message(vl_crib, "crib: %s -> %s\n", cribpath, outpath); + copytime(outpath, st); /* Set the the atime */ + return 0; + } + } + } + } + } + + in = fopen(inpath, "rb"); + if ( !in ) + return EX_NOINPUT; + out = fopen(outpath, "wb"); + if ( !out ) { + fclose(in); + return EX_CANTCREAT; + } + + if ( spawn_worker() ) { + err = opt.munger(in, out, st->st_size); + fclose(in); + fclose(out); + + chown(outpath, st->st_uid, st->st_gid); + chmod(outpath, st->st_mode); + copytime(outpath, st); + + end_worker(err); + } else { + fclose(in); + fclose(out); + } + + return err; +} + +int munge_tree(const char *intree, const char *outtree, const char *cribtree) +{ + char *in_path, *out_path, *crib_path; + char *in_file, *out_file, *crib_file; + DIR *thisdir; + struct dirent *dirent; + struct stat dirst; + int err = 0; + + /* Construct buffers with the common filename prefix, and point to the end */ + + in_path = xmalloc(strlen(intree) + NAME_MAX + 2); + strcpy(in_path, intree); + in_file = strchr(in_path, '\0'); + *in_file++ = '/'; + + out_path = xmalloc(strlen(outtree) + NAME_MAX + 2); + strcpy(out_path, outtree); + out_file = strchr(out_path, '\0'); + *out_file++ = '/'; + + if ( cribtree ) { + crib_path = xmalloc(strlen(cribtree) + NAME_MAX + 2); + strcpy(crib_path, cribtree); + crib_file = strchr(crib_path, '\0'); + *crib_file++ = '/'; + } else { + crib_path = crib_file = NULL; + } + + /* Get directory information */ + if ( stat(intree, &dirst) ) { + message(vl_error, "%s: Failed to stat directory %s: %s\n", + program, intree, strerror(errno)); + return EX_NOINPUT; + } + + /* Open the directory */ + thisdir = opendir(intree); + if ( !thisdir ) { + message(vl_error, "%s: Failed to open directory %s: %s\n", + program, intree, strerror(errno)); + return EX_NOINPUT; + } + + /* Create output directory */ + if ( mkdir(outtree, 0700) ) { + message(vl_error, "%s: Cannot create output directory %s: %s\n", + program, outtree, strerror(errno)); + return EX_CANTCREAT; + } + + while ( (dirent = readdir(thisdir)) != NULL ) { + if ( !strcmp(dirent->d_name, ".") || + !strcmp(dirent->d_name, "..") ) + continue; /* Ignore . and .. */ + + strcpy(in_file, dirent->d_name); + strcpy(out_file, dirent->d_name); + if ( crib_file ) + strcpy(crib_file, dirent->d_name); + + err = munge_entry(in_path, out_path, crib_path, &dirst); + if ( err ) + break; + } + closedir(thisdir); + + free(in_path); + free(out_path); + + return err; +} + + +int munge_entry(const char *in_path, const char *out_path, + const char *crib_path, const struct stat *dirst) +{ + struct stat st; + int err = 0; + + message(vl_filename, "%s -> %s\n", in_path, out_path); + + if ( lstat(in_path, &st) ) { + message(vl_error, "%s: Failed to stat file %s: %s\n", + program, in_path, strerror(errno)); + return EX_NOINPUT; + } + + if ( S_ISREG(st.st_mode) ) { + if ( st.st_nlink > 1 ) { + /* Hard link. */ + const char *linkname; + + if ( (linkname = hash_find_file(&st)) != NULL ) { + /* We've seen it before, hard link it */ + + if ( link(linkname, out_path) ) { + message(vl_error, "%s: hard link %s -> %s failed: %s\n", + program, out_path, linkname, strerror(errno)); + return EX_CANTCREAT; + } + } else { + /* First encounter, compress and enter into hash */ + if ( (err = munge_file(in_path, out_path, crib_path, &st)) != 0 ) { + message(vl_error, "%s: %s: %s", program, in_path, strerror(errno)); + return err; + } + hash_insert_file(&st, out_path); + } + } else { + /* Singleton file; no funnies */ + if ( (err = munge_file(in_path, out_path, crib_path, &st)) != 0 ) { + message(vl_error, "%s: %s: %s", program, in_path, strerror(errno)); + return err; + } + } + } else if ( S_ISDIR(st.st_mode) ) { + /* Recursion: see recursion */ + if ( !opt.onedir && + (!opt.onefs || (dirst && dirst->st_dev == st.st_dev)) ) { + if ( (err = munge_tree(in_path, out_path, crib_path)) != 0 ) + return err; + } else if ( opt.do_mkdir ) { + /* Create stub directories */ + if ( mkdir(out_path, st.st_mode) ) { + message(vl_error, "%s: %s: %s", program, out_path, strerror(errno)); + return EX_CANTCREAT; + } + } + } else if ( S_ISLNK(st.st_mode) ) { + int chars; +#ifdef PATH_MAX +#define BUFFER_SLACK PATH_MAX +#else +#define BUFFER_SLACK BUFSIZ +#endif + int buffer_len = st.st_size + BUFFER_SLACK + 1; + char *buffer = xmalloc(buffer_len); + if ( (chars = readlink(in_path, buffer, buffer_len)) < 0 ) { + message(vl_error, "%s: readlink failed for %s: %s\n", + program, in_path, strerror(errno)); + return EX_NOINPUT; + } + buffer[chars] = '\0'; + if ( symlink(buffer, out_path) ) { + message(vl_error, "%s: symlink %s -> %s failed: %s\n", + program, out_path, buffer, strerror(errno)); + return EX_CANTCREAT; + } + free(buffer); + } else { + if ( st.st_nlink > 1 ) { + /* Hard link. */ + const char *linkname; + + if ( (linkname = hash_find_file(&st)) != NULL ) { + /* We've seen it before, hard link it */ + + if ( link(linkname, out_path) ) { + message(vl_error, "%s: hard link %s -> %s failed: %s\n", + program, out_path, linkname, strerror(errno)); + return EX_CANTCREAT; + } + } else { + /* First encounter, create and enter into hash */ + if ( mknod(out_path, st.st_mode, st.st_rdev) ) { + message(vl_error, "%s: mknod failed for %s: %s\n", + program, out_path, strerror(errno)); + return EX_CANTCREAT; + } + hash_insert_file(&st, out_path); + } + } else { + /* Singleton node; no funnies */ + if ( mknod(out_path, st.st_mode, st.st_rdev) ) { + message(vl_error, "%s: mknod failed for %s: %s\n", + program, out_path, strerror(errno)); + return EX_CANTCREAT; + } + } + } + + /* This is done by munge_file() for files */ + if ( !S_ISREG(st.st_mode) ) { +#ifdef HAVE_LCHOWN + if ( lchown(out_path, st.st_uid, st.st_gid) && opt.sloppy && !err ) { + message(vl_error, "%s: %s: %s", program, out_path, strerror(errno)); + err = EX_CANTCREAT; + } +#endif + if ( !S_ISLNK(st.st_mode) ) { +#ifndef HAVE_LCHOWN + if ( chown(out_path, st.st_uid, st.st_gid) && !opt.sloppy && !err ) { + message(vl_error, "%s: %s: %s", program, out_path, strerror(errno)); + err = EX_CANTCREAT; + } +#endif + if ( chmod(out_path, st.st_mode) && !opt.sloppy && !err ) { + message(vl_error, "%s: %s: %s", program, out_path, strerror(errno)); + err = EX_CANTCREAT; + } + if ( copytime(out_path, &st) && !opt.sloppy && !err ) { + message(vl_error, "%s: %s: %s", program, out_path, strerror(errno)); + err = EX_CANTCREAT; + } + } + } + + return err; +} + diff --git a/3rd-party/zisofs_tools/workers.c b/3rd-party/zisofs_tools/workers.c new file mode 100644 index 0000000..df2fb29 --- /dev/null +++ b/3rd-party/zisofs_tools/workers.c @@ -0,0 +1,111 @@ +/* + * This file has been modified for the cdrkit suite. + * + * The behaviour and appearence of the program code below can differ to a major + * extent from the version distributed by the original author(s). + * + * For details, see Changelog file distributed with the cdrkit package. If you + * received this file from another source then ask the distributing person for + * a log of modifications. + * + */ + +#ident "$Id: workers.c,v 1.3 2006/07/04 04:57:42 hpa Exp $" +/* ----------------------------------------------------------------------- * + * + * Copyright 2001-2006 H. Peter Anvin - All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, Inc., 675 Mass Ave, Cambridge MA 02139, + * USA; either version 2 of the License, or (at your option) any later + * version; incorporated herein by reference. + * + * ----------------------------------------------------------------------- */ + +/* + * workers.c + * + * Parallel job maintenance + */ + +#include "mkzftree.h" /* Must be included first! */ + +#include +#include +#include +#include +#include +#include + +/* Global option */ +extern int parallel; /* Number of parallel jobs */ + +/* Functions related to parallel execution */ +static volatile int work_threads = 0; +static int is_worker = 0; + +/* This waits for one worker to finish */ +static void wait_for_one_worker(void) +{ + int status; + + if ( wait(&status) > 0 ) { + work_threads--; + + if ( WIFSIGNALED(status) ) { + kill(getpid(), WTERMSIG(status)); + exit(EX_SOFTWARE); + } else if ( WEXITSTATUS(status) ) { + exit(WEXITSTATUS(status)); + } + } +} + +/* This waits for *all* workers to finish */ +void wait_for_all_workers(void) +{ + while ( work_threads ) + wait_for_one_worker(); +} + +/* This returns 1 if the "job" at hand should be performed */ +int spawn_worker(void) +{ + pid_t f; + + if ( opt.parallel == 0 ) + return 1; + + fflush(NULL); + + /* Wait for a work slot */ + while ( work_threads >= opt.parallel ) + wait_for_one_worker(); + + /* Spawn worker process */ + work_threads++; /* Avoids race conditions */ + f = fork(); + if ( f == -1 ) { + work_threads--; + return 1; /* Do it ourselves */ + } + + if ( f == 0 ) { + /* Worker process */ + is_worker = 1; + return 1; + } else { + /* Control process */ + return 0; + } +} + +/* Routine to perform at the end of the job */ +void end_worker(int err) +{ + if ( is_worker ) { + exit(err); + } +} + diff --git a/3rd-party/zisofs_tools/zisofs-tools.spec b/3rd-party/zisofs_tools/zisofs-tools.spec new file mode 100644 index 0000000..d6bd234 --- /dev/null +++ b/3rd-party/zisofs_tools/zisofs-tools.spec @@ -0,0 +1,50 @@ +Summary: Utilities to create compressed CD-ROM filesystems. +Name: zisofs-tools +Version: 1.0.7 +Release: 1 +License: GPL +Group: Applications/System +URL: http://www.kernel.org/pub/linux/utils/fs/zisofs/ +Source: http://www.kernel.org/pub/linux/utils/fs/zisofs/zisofs-tools-%{version}.tar.gz +BuildRoot: %{_tmppath}/%{name}-%{version}-root +Epoch: 1 + +%description +Tools that, in combination with an appropriately patched version of +mkisofs, allow the creation of compressed CD-ROM filesystems. + +%prep +%setup -q + +%build +%configure +make + +%install +rm -rf $RPM_BUILD_ROOT +make install INSTALLROOT="$RPM_BUILD_ROOT" + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%defattr(-,root,root) +%doc README zisofs.magic +%{_bindir}/mkzftree +%{_mandir}/man1/mkzftree.1* + +%changelog +* Mon Jul 20 2004 H. Peter Anvin 1.0.6-1 +- Generalize and include in 1.0.6 so rpmbuild -ta works. + +* Sat Jun 13 2004 H. Peter Anvin 1.0.5-1 +- Revision update. + +* Wed Nov 6 2002 H. Peter Anvin 1.0.4-1 +- Revision update. + +* Thu Nov 8 2001 H. Peter Anvin 1.0.3-1 +- Revision update. + +* Mon Oct 29 2001 H. Peter Anvin 1.0.2-1 +- Initial version. diff --git a/3rd-party/zisofs_tools/zisofs-tools.spec.in b/3rd-party/zisofs_tools/zisofs-tools.spec.in new file mode 100644 index 0000000..e5d7c13 --- /dev/null +++ b/3rd-party/zisofs_tools/zisofs-tools.spec.in @@ -0,0 +1,50 @@ +Summary: Utilities to create compressed CD-ROM filesystems. +Name: zisofs-tools +Version: @@VERSION@@ +Release: 1 +License: GPL +Group: Applications/System +URL: http://www.kernel.org/pub/linux/utils/fs/zisofs/ +Source: http://www.kernel.org/pub/linux/utils/fs/zisofs/zisofs-tools-%{version}.tar.gz +BuildRoot: %{_tmppath}/%{name}-%{version}-root +Epoch: 1 + +%description +Tools that, in combination with an appropriately patched version of +mkisofs, allow the creation of compressed CD-ROM filesystems. + +%prep +%setup -q + +%build +%configure +make + +%install +rm -rf $RPM_BUILD_ROOT +make install INSTALLROOT="$RPM_BUILD_ROOT" + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%defattr(-,root,root) +%doc README zisofs.magic +%{_bindir}/mkzftree +%{_mandir}/man1/mkzftree.1* + +%changelog +* Mon Jul 20 2004 H. Peter Anvin 1.0.6-1 +- Generalize and include in 1.0.6 so rpmbuild -ta works. + +* Sat Jun 13 2004 H. Peter Anvin 1.0.5-1 +- Revision update. + +* Wed Nov 6 2002 H. Peter Anvin 1.0.4-1 +- Revision update. + +* Thu Nov 8 2001 H. Peter Anvin 1.0.3-1 +- Revision update. + +* Mon Oct 29 2001 H. Peter Anvin 1.0.2-1 +- Initial version. diff --git a/3rd-party/zisofs_tools/zisofs.magic b/3rd-party/zisofs_tools/zisofs.magic new file mode 100644 index 0000000..9aeb61e --- /dev/null +++ b/3rd-party/zisofs_tools/zisofs.magic @@ -0,0 +1,8 @@ + +#------------------------------------------------------------------------------ +# zisofs: file(1) magic for zisofs/RockRidge compressed files +# +# from H. Peter Anvin May 4, 2001 +# +0 string \x37\xE4\x53\x96\xC9\xDB\xD6\x07 zisofs/Rockridge compressed file +>8 lelong x - %d bytes diff --git a/ABOUT b/ABOUT new file mode 100644 index 0000000..dd5fa39 --- /dev/null +++ b/ABOUT @@ -0,0 +1,60 @@ + +GENERAL NOTE: + +This package is heavily based on cdrtools (by Jörg +Schilling, see below), however he is not affiliated +with the debburn development project creating this package. + +Cdrtools (see http://cdrecord.berlios.de) 2.01.01a08 from May 2006 was +the version used as the starting code base for cdrkit. + +Jörg Schilling is not responsible for problems caused by the +use or distribution of this software. Please avoid bothering +him with issues that are out of his control. + +Kudos to the original authors, especially Jörg Schilling, but for +various reasons we decided that we can only continue to have a burning +suite without license incompatibilities. For more details about this +please read the file FORK. + + +This package contains the following software: + +- cdda2wav (an digital CD audio extraction program) + By Heiko Eißfeldt + +- wodim (a CD recording program). Originaly based on + cdrecord by Jörg Schilling but + developed independently now. + +- genisoimage (an ISO-9660 filesystem image creator) + By Eric Youngdale , Jörg Schilling + , James Pearson + and other contributors. + +- mkhybrid (an ISO-9660/HFS filesystem image creator) + Link to genisoimage + +- several diagnostic programs for ISO-9660, originaly from + cdrtools (by Jörg Schilling), + + - devdump dump a device or file in hex + + - isodump dump a device or file based on ISO-9660 + + - isoinfo analyze or list an ISO-9660 image + + - isovfy verify an ISO-9660 image + +- readcd (a stripped down version of usalskeleton) + By Jörg Schilling schilling@fokus.fhg.de and + may be used to read data CD's, to write to DVD-RAM + and to copy Solaris boot CD's + +- usalcheck (a program to validate the correct behavior + By Jörg Schilling schilling@fokus.fhg.de and + of the low level libusal code and the SCSI transport + code of the underlying OS). + +- libusal (a highly portable SCSI transport library) + By Jörg Schilling schilling@fokus.fhg.de diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..57edba6 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,3 @@ +PROJECT (cdrkit C) +SUBDIRS(include genisoimage wodim libedc libhfs_iso libparanoia icedax libusal librols libunls readom netscsid 3rd-party/dirsplit) + diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..de65d3a --- /dev/null +++ b/COPYING @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License version 2 + as published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/Changelog b/Changelog new file mode 100644 index 0000000..b1aefc1 --- /dev/null +++ b/Changelog @@ -0,0 +1,8360 @@ +cdrkit (1.1.11) RELEASED; urgency=low + + [ Steve McIntyre ] + * genisoimage: Fix silly bug in MD5 output in template files. (Debian + bug #596681) + * genisoimage: Minor tweaks to the the genisoimage.1 man page. + * genisoimage: Update references to atterer.org (Debian bug #596860) + * genisoimage.1: Make the description of the md5-list format clearer. + + [ Mike Paul ] + * genisoimage: Use memmove() instead of strcpy() when cleaning + up graft points. + + -- Steve McIntyre <93sam@debian.org> Fri, 23 Apr 2010 00:30:18 +0100 + +cdrkit (1.1.10) RELEASED; urgency=low + + [ Steve McIntyre ] + * genisoimage: add support for sha256 and sha512 checksum generation + when making jigdo files. + * genisoimage: checksumming with lots of algorithms can be very + time-consuming, so split it out into multiple threads if possible. + * genisoimage: allow user to specify which checksum algorithms to run + on the command line. + * Fix FTBFS with missing xconfig.h. Thanks to Matt Kraai for the patch. + + [ Nikola Pajkovsky ] + * genisoimage: fix string overflow breakage when using the -root + option (https://bugzilla.redhat.com/show_bug.cgi?id=508449) + + [ Peter Samuelson ] + * librols: remove or rename several functions that clash with POSIX. + Fix up callers. + + -- Steve McIntyre <93sam@debian.org> Thu, 14 May 2009 00:28:48 +0100 + +cdrkit (1.1.9) RELEASED; urgency=low + + [ Steve McIntyre ] + * wodim: In -msinfo mode, only suggest dvd+rw-mediainfo in verbose mode. + Thanks to Michael Karcher for the + patch. + * genisoimage: undo a mistake in the directory permissions change in + the last release. Fixes handling of deep directory structures. + + -- Steve McIntyre <93sam@debian.org> Sun, 26 Oct 2008 15:43:54 -0700 + +cdrkit (1.1.8) RELEASED; urgency=low + + [ Steve McIntyre ] + * genisoimage/joliet.c: Fix a potential memory corruption bug. + * genisoimage/md5.c: Trivial cleanup + * genisoimage/genisoimage.[c1]: Add command-line support for + -jigdo-template-compress + * genisoimage/sha1.h: Fix a type issue that broke sha1 support + on 64-bit arches. + * genisoimage/checksum.[ch]: Added test code; changed internal + layout slightly to make for easier debug. + * genisoimage: Applied patch from Roman Rakus to + preserve directory permissions. + * genisoimage: Add a patch from Ivan Shmakov. "-o -" will now write + to stdout, as typical for command line programs. And we will try + not to corrupt stdout by default if it's a terminal. + * genisoimage/genisoimage.1: Add a mention of -chrp-boot. + * genisoimage/mac_label.c: Fix an over-keen s/mkisofs/genisoimage. + + -- Steve McIntyre <93sam@debian.org> Mon, 25 May 2008 21:22:26 +0100 + +cdrkit (1.1.7.1) RELEASED; urgency=low + + [ Steve McIntyre ] + * Re-spin the 1.1.7 release with a few silly release process errors fixed. + + -- Steve McIntyre <93sam@debian.org> Mon, 17 Mar 2008 21:25:56 +0000 + +cdrkit (1.1.7) RELEASED; urgency=low + + [ Harald Hoyer ] + * lots of fixes to prevent gcc warnings + * Fix for Joliet directory length bug in genisoimage + + [ Peter Samuelson ] + * wodim.1: small fixes. + + [ Steve McIntyre ] + * genisoimage/jte.c: add support for bzip2-compressed templates + * genisoimage/jte.c: fix bzip2-compressed template data to be + compatible with jigdo. + * genisoimage/jte.c: fix exclude list handling. + * genisoimage/checksum.[ch]: Add a generic infrastructure for + checksums so we can use sha1/ as well as just + md5sum. Will make things much faster for generating sha1sums for + images and jigdos. + * genisoimage/sha1.[ch]: Add GPL-licensed SHA1 implementation. + * s/mkisofs/genisoimage/ in ABOUT + + -- Steve McIntyre <93sam@debian.org> Mon, 17 Mar 2008 20:07:58 +0000 + +cdrkit (1.1.6) RELEASED; urgency=low + + [ Vladimir Nadvornik ] + * genisoimage/eltorito.c: care about inhibit flags when preparing eltorito + boot catalog directory entry, avoiding possible crashes + + [ Eduard Bloch] + * ALL: customize the base manpage subdirectory below PREFIX using the new + MANSUBDIR variable + * make sure that the buffer is flushed and drive is ready before closing + session + * icedax: find libossaudio on OpenBSD and use it + * icedax: fixed bug with --devices (unnoticed segfault due to wrong + list_devices arguments) + * wodim/scsi_scan.h: moved Linux-specific recorder location guesser to an + extra method for automatic drive opening, and added an alternative + guessing method, using list_devices(...) picking up the first drive having + appropriate device type in the inquiry info. This generic method is also + used on Linux when the original guesser fails. + * wodim/wodim.c: count all track sizes when looking for an appropriate drive + + -- Eduard Bloch Sun, 06 May 2007 16:39:08 +0200 + +cdrkit (1.1.5.1) RELEASED; urgency=low + + * resync with cosmetical last-minute changes from Peter Samuelson + * Makefile: "release" target extension to make the Debian related source + file creation more convinient + + -- Eduard Bloch Sat, 21 Apr 2007 11:30:35 +0200 + +cdrkit (1.1.5) RELEASED; urgency=low + + * wodim: explicite warning and more grace time if user manually specifies a size + less than 301 sectors, which is likely to be a mistake from copy-pasting + of genisoimage -print-size output and omitting the block factor + * wodim: Native device name management directly in libusal now, the + rewritten device scan method uses it directly. If the backend driver does + not implement native names handling, the old-style IDs are displayed. + * libusal: native device name management, implemented on Linux and + Win32(SPT) for now + * libusal: ATA is now mapped directly into the b/t/l namespace, with some + workarounds to provide backward compatibility + * libusal: For SCSI devices, use only scd* on kernel 2.6 and sg* on kernel + 2.4 until proper locking scheme is established + * libusal: always return a known value in usal_sense_table(...), from a + patch from SUSE (cdrkit-dvd-fix.patch) + * genisoimage: customized the default APPID string in genisoimage + * genisoimage: restored support for iso9660 file sizes up to 4GB-1 + * genisoimage: forced MAGIC_ERROR definition for older version, thanks + to Thomas Schmidt + * genisoimage: avoid pointless warnings on filetype of /.. + + -- Eduard Bloch Sat, 21 Apr 2007 10:17:35 +0200 + +cdrkit (1.1.4) RELEASED; urgency=low + + [ Eduard Bloch ] + * On Linux, do device scanning on /dev/sr first and fallback to /dev/sg and + others only then, thus having better chances to use the same exclusive + lock as other programs when the user provided only the b/t/l + device specification, since the Linux kernel is not able to coordinate the + locking between the userspace interfaces + * some refactoring, moved new Linux specific extensions to scsi-linux-sg.c, + more relaxed device opening checks on scanning + * some more warnings about b/t/l syntax deprecation + + -- Eduard Bloch Sun, 01 Apr 2007 21:49:03 +0200 + +cdrkit (1.1.3) RELEASED; urgency=medium + + [ Eduard Bloch ] + * Fixed fishing for transfer size in sysfs, now ready for + /dev/class/scsi_generic contents + * Fixed /dev/sg%d pattern scan in --devices, now iterating over modern style + device files. Thanks to Thomas Schmidt. + * Dealing with the last newline char when processing + /proc/sys/dev/cdrom/info contents + * print the track size in the info message when guessing + * added some missing or probably missing definitions in + wodim/CMakeLists.txt, restoring the reading from inf files + * passing through the real file size to the UDF generator. Creating + incorrect iso9660 but having it this way is better than no LFS at all. + * removed md5* parts and integration from icedax, patch by + Vladimir Nadvornik + * various small bugfixes or cosmetic fixes picked from still GPLed parts of + cdrtools-2.01.01a24, excluding meta changes and big tree.c and mkisofs.c + refactoring. Stream file name option enabled now. + * wodim.1: "you have 4 seconds to abort ..." + * defaults.c: Correct fallback to CDR_FIFOSIZE and correct error message + on bad input. + * tell the user his device is busy on Linux because it's mounted, after + looking at /proc/mounts + + [ Peter Samuelson ] + * Clean up Linux-2.6 CD/DVD-R drive detection, clearer error messages. + + -- Eduard Bloch Mon, 26 Mar 2007 17:35:10 +0200 + +cdrkit (1.1.2) RELEASED; urgency=low + + [ Stefan Huehner ] + * more Cstyle cleanups + + [ Eduard Bloch ] + * stop confusion and bailing out if burnfree/burnproof options have been + explicitely specified + * be move carefull with -dummy when the DVD media may not support it + * extracting drive's default speed in attach_mdvd() + * automatic recorder device guessing code, currently Linux-only + + [ Peter Samuelson ] + * Fix icedax cddb query, based on a patch from Heiko Schlenker + + -- Eduard Bloch Sat, 13 Jan 2007 00:45:38 +0100 + +cdrkit (1.1.1) RELEASED; urgency=low + + * added geteltorito script from Rainer Krienke + + [ Eduard Bloch ] + * more verbose abort message if track is specified with some maintainance + command (#369677) + * Added more DVD related fixes from SuSE's wodim-1.0pre5cvs-6.src.rpm + * --devices option for wodim (modeled after cdrskin's output), working on + Linux and Cygwin + * Open-By-Device-Letter mode on Cygwin + * -msifile=... option to store -msinfo output reliably in a dedicated file + * clear profile names printing (using code from libburnia, thanks to Thomas + Schmidt) + * cleanup with unused embedded CVS revision strings from Schilling and + more gcc -Wall correctness + * reenabled -format functionality (bug in program function control flow) + * get maximum DMA buffer size from sysfs on Linux, where possible + * enable BURN-Free by default where possible + * setting argv[0] to wodim if someone is cheating and calls it as cdrecord. + Avoids confusion and printing of the wrong app name in the help output. + * more documentation updates WRT cdda2wav->icedax renaming, more table + formating fixes in icedax.1 + * genisoimage documentation updates, mkisofs name changes + + [ Thomas Schmidt ] + * workaround for older libmagic API + * code for clear profile name mapping + + [ Peter Samuelson ] + * expand where genisoimage looks for the config file - same places + mkisofs looks plus a few more. (We may wish to trim this back some.) + * major cleanups to genisoimage.1 manpage; split out the part about + .genisoimagerc to a new page genisoimagerc.5. + + [ Steve Langasek ] + * allow hppa and alpha boot code to coexist in one ISO image + + [ Arkadiusz Miskiewicz ] + * Fake prefix line in the version output of readom to keep compatibility + with frontends + + -- Eduard Bloch Sat, 30 Dec 2006 16:45:40 +0100 + +cdrkit (1.1.0) RELEASED; urgency=medium + + [ Eduard Bloch ] + * replacement of libdeflt, config parser rewrite; more user-friendly, + more flexible/tolerant now + * config overhaul, much more dynamic checks, including fixes for SunOS and + AIX environment, including proper libiconv detection, and processing of + LDFLAGS provided by user. Also fixed confusing double-checks for some of + the variables in cdda2wav.c. + * mass renaming of applications and libraries, see FAQ + * dirsplit -S fix, oversized have been possible before + * consistent version display + * cleanup of libschily, removed unused/superfluous parts (assumed having a + modern POSIX compliant environment). Renamed to librols + (RemainsOfLibSchily). + * reenabled selection of the DVD driver, accidentaly disabled in 1.0, when + beeing in non-verbose mode + * made dirsplit work with file symlinks + * incorporated some OpenSUSE patches: + + cdrkit-HZ.patch (with initialized value, *sic*) + + cdrkit-dvd-fix.patch (return code tracking) + + cdrkit-gcc-workaround.patch + + cdrkit-mkisofs-fail-on-large-file.patch (don't just skip them) + + cdrkit-mkisofs-grow-check.patch (tolerate grown files) + + cdrkit-perms.patch (not breaking on missing device files) + + [ Christian Fromme ] + * big cleanup, phase I, getting rid from Cstyle function definitions in + applications + + [ Lorenz Minder ] + * user output junk filter in icedax/toc.c + * flexible ascii conversion buffer + + -- Eduard Bloch Sat, 02 Dec 2006 18:43:14 +0100 + +cdrkit (1.0) RELEASED; urgency=low + + [ Eduard Bloch ] + * mapping of ATAPI: -> ATA: method on linux-2.6 and some code beautification + * added a atexit handler to stop the FIFO process more reliably, since + Schilling's constructs seem to terminate the application on too many + places + * print Burnfree state/preparation messages only with high verbosity + + [ Dennis Vshivkov ] + * sorted display of files when needed + + [ Joerg Jaspert] + * Remove all the printing of useless messages. This is based on GPLed + code, so we follow the letter of the GPL as it is interpreted by 99% + of the world, including its authors. Especially as Joerg was never able + to give us any clear explanation what other license he may think + cdrtools had, despite us asking multiple times. So we have no other + choice than to take whats written down, and thats GPL. + + -- Joerg Jaspert Mon, 20 Nov 2006 19:25:10 +0100 + +cdrkit (1.0pre5) RELEASED; urgency=low + + [ Eduard Bloch ] + * added better check for capability.h and FATAL_ERROR if it's missing on Linux + * wodim.1 updates, ie. moved suid howto to README.suidroot, Linux bashing to + README.linux, more notes about non-root usage + * more carefull description of the role of previous developer and his own + project + * fixed libmagic detection + * rewrote README.mkisofs, README.win32 + * better track numbers extraction command in cdda2ogg/cdda2mp3 + * reenabled (forgotten) support for libedc + * table formating fixes in cdda2wav.1, helps small terminals + * AIX 5l port + * killing FIFO process on ungraceful termination + * scsi-linux-sg.c: skipping unallowed devices, cleanup/consolidation of the + old workaround(s) for ATA now for SCSI too + * renamed error function to schily_error because it started to wreak random + havoc after harmless header moving (conflict with incompatible GNU version) + * restored scsi-remote.c compilation, moved to libscg sources, used instead + of rdummy.c + * added optional omiting of DMA speed tests + + [ Vladimir Nadvornik ] + * enabled CLONE feature in wodim's config + + [ Modestas Vainius ] + * dropped . from the include path and fixed mkisofs source to use the local + headers + + [ Lorenz Minder ] + * Fix of the joliet_strlen signature + * Code refactoring around *cvt* declarations to make the conditional + compilation more reliable, especially on BSD and AIX + * include/utypes.h: guard to preserve SIZE_T_MAX + + [ Christian Fromme ] + * detailed review and correction of author related data in manpages and + README files + + [ Peter Samuelson, Tollef Fog Heen ] + * typo and grammar fixes in mkisofs.8 + * Remove several instances of %r in printf-like statements, in + preparation for removing the libschily format-string implementation + + -- Eduard Bloch Wed, 6 Sep 2006 22:05:30 +0200 + +cdrkit (1.0pre4) RELEASED; urgency=low + + [ Eduard Bloch ] + * Added checks for libcam to make (k)FreeBSD compilation work (untested) + * added clarifications about changes to all source files + * adapted initial message to display the copyright more clearly + * adapted copyright and contact information in scgcheck manpage + * adapted contact information in btcflash manpage, also added a reference to + its original author which has been missing + + [ Peter Samuelson ] + * Cleanups: unused macros/defines + * Unified and simplified the build-host data crawling methods + + [ Juergen Weigert ] + * Various documentation corrections, replaced cdrecord->wodim where it is + appropriate and legal on many visible locations + + -- Eduard Bloch Mon, 4 Sep 2006 23:36:58 +0200 + +cdrkit (1.0pre3) unstable; urgency=low + + [ Eduard Bloch ] + * Added FAQ ("where wodim name comes from") + * Moved the NULL pointer check on cdr_t to a place before it is used for DVD + feature checks (otherwise it would crash when run on any pure CD-ROM + reader) + * Added test for WORDS_BIGENDIAN + * copied values from align.h to another set of sizeof-reflecting defines in + xconfig.h + * workarounds for almost all "you are not allowed to modify that {version + checking,quality assurance,other-important-looking-wording}" parts, + replacing the output of "schily" where the commend said that we are forced + to. One part in cdrecord.c still remains, the comment sounds too dangerous + to be touched. + * forced FIFO define, suggested by Peter + + [ Peter Samuelson ] + * Created cmake test and code snippet for HAVE_C_BITFIELDS + + [ Michael Ablassmeier ] + * Typo fixes in mkisofs messages and unified identical ones with a macro + + [Joerg Jaspert] + * Released as 1.0pre3 + + -- Eduard Bloch Mon, 4 Sep 2006 09:56:38 +0200 + +cdrkit (1.0pre2) RELEASED; urgency=low + + * Took zisofs_tools out of the global build system and restored its original + Makefile. Its own build system works better. + + -- Eduard Bloch Sun, 03 Sep 2006 22:14:31 +0200 + +cdrkit (1.0pre1) RELEASED; urgency=low + + [ See http://bugs.debian.org/$BUGNR for detailed explanations ] + * The Big Fork to an independent project called cdrkit + + using the last clearly stated GPLed versions of files from + cdrtools-2.01.01a08 (closes: #353403, 372486) + + we play the upstream role now, using our patches and we like them + (closes: #361450) + + renamed relevant works to avoid claims of "potential defamation" or + "damage of reputation" (closes: #350738) + + custom CMake based build system used instead of the original one, since + we understand it better (closes: #350739 and hopefully closes: #350254, + reopen if not). It seems to be portable among the platforms + supported by Debian, it needs a bit of work for porting to non-Linux + plattforms, though. + * removed most of the anti-linux2.6 program messages (unless being + in verbose mode). (closes: #377145) + * changed default config file location to /etc/wodim.conf + * added more meaningful error message on -dvd-video failure (closes: #324586) + * minor cdda2mp3/cdda2ogg scripts fixes suggested by Fabian Pietsch, plus + fixes for unreliable encoder detection (closes: #283794, #344443) plus + possible override of preset CDDA_DEVICE variable fixed. Made the list of + selected audiotracks modifiable, see manpage (closes: #344445) + * sync with 4:2.01+01a01-4ubuntu4: + + merged README.ATAPI.setup with README.ATAPI.setup.ubuntu. Kernel 2.6 part + now in the beginning and reflecting the reality (dev=/dev/drive syntax, + no SUID requirement, closes: #304230, 377736) + + 02_cdrecord_default_conf.dpatch: changed /dev/cdrom to /dev/cdrw which + is more likely to match the correct device on udev using systems + * 36_ATA_scanbus_ignore_locked.dpatch to ignore busy devices (eg. hda + harddisk) while scanning with dev=ATA + (closes: #310689, #309250, #317793, 360295, + * Included 37_clean_dvdsup.dpatch (closes: #312062) based on + cdrtools-2.01.01a04-dvd.patch.bz2 from + http://people.mandriva.com/~warly/files/cdrtools/ with few updates to work + with a08. Also implements a fallback to ATA: bus in the -scanbus operation + (closes: #310689, #278894). This patch is used instead of the old 07_.... + Enabled permanently, disabled the "cheatcode processing" in debian/rules. + Also eliminates some useability problems that have been pushed to our + users (closes: #325766, #271114, #312062, #353176). + * Updated dirsplit to version 0.3.3, zisofs-tools to 1.0.7 (with a custom + CMakeFile.txt for easier integration and config.h updated manually for + now) + * minor cdda2mp3/cdda2ogg scripts fixes suggested by Fabian Pietsch, plus + fixes for unreliable encoder detection (closes: #283794, #344443) plus + possible override of preset CDDA_DEVICE variable fixed + * added additional script manpages from Oleksandr Moskalenko (closes: #295438) + * changed -speed to speed= in cdrecord.1 for consistency (closes: #344214) + * Anti-Root-Requirements: + + 39_nonroot_skips_rezero_unit.dpatch - don't run rezero_unit() as root + which is a) most likely not needed (even admited in the comment) and b) + causes the whole scsi transport system to terminate + + 40_stop_setuid_games.dpatch - another workaround for problems introduced + in a03 - looks like Linux kernel does reject an application trying to + change the UID between ioctls + (closes: #335253, 374685, 330506, 329308, 374345, 377421) + * Ubuntu's 40_fix_bad_spelling.dpatch integrated (typo in wodim.dfl) + * increased hash size in mkisofs/hash.c (closes: #327270) + * more decent info message about locale detection + + -- Eduard Bloch Sun, 03 Sep 2006 22:14:31 +0200 + +cdrkit (2.01.01a08+X.15) UNRELEASED; urgency=low + + * Removed cdrtools-2.01.01a05-ossdvd.patch.bz2 again (threw bogus error + messages in TAO mode), used 37_clean_dvdsup.dpatch (from Warly/Mandriva) + instead + + -- Eduard Bloch Wed, 23 Aug 2006 15:03:46 +0200 + +cdrkit (2.01.01a08+X.15) UNRELEASED; urgency=low + + * Applied cdrtools-2.01.01a05-ossdvd.patch.bz2 slightly adapted to work with + a08. + + -- Eduard Bloch Wed, 23 Aug 2006 15:03:46 +0200 + +cdrkit (2.01.01a08+X.14) UNRELEASED; urgency=low + + * 39_nonroot_skips_rezero_unit (don't try to run rezero_unit when not beeing + root) + * 40_stop_setuid_games (dont't try to cheat the kernel with delayed seteuid) + + -- Eduard Bloch Wed, 23 Aug 2006 14:44:53 +0200 + +cdrkit (2.01.01a08+X.13) UNRELEASED; urgency=low + + * 34_JTE (Jigdo Template Extraction, by Steve) + * 36_ATA_scanbus_ignore_locked (skip busy devices when scaning, by myself) + * 38_script_manpages: added as readmult.1 and pitchplay.1, currently no + list_audio_tracks script there so moved to scrips/ + + -- Eduard Bloch Wed, 23 Aug 2006 14:35:30 +0200 + +cdrkit (2.01.01a08+X.12) UNRELEASED; urgency=low + + * 31_gnu-kfreebsd.dpatch with minor adoptions (needs testing!) + * 33_extra_arch_boot_support (extra arches, by Steve) + + -- Eduard Bloch Wed, 23 Aug 2006 14:29:32 +0200 + +cdrkit (2.01.01a08+X.11) UNRELEASED; urgency=low + + * 26_author_locale (ASCII transliteration of Jörg in the standard credits + message) + * 28_cdda2wav_interface (Linux friendly cdda2wav behaviour) + * 30_doc_typo_fixes (various documentation/message fixes) + + -- Eduard Bloch Wed, 23 Aug 2006 14:23:03 +0200 + +cdrkit (2.01.01a08+X.10) UNRELEASED; urgency=low + + * Applied 23_o_excl (exclusive device opening) + * Applied 24_debug_tmpfile (more safe/secure log file location) + * 25_mkisofs_iconv_manpage (hints about extra charsets) + + -- Eduard Bloch Wed, 23 Aug 2006 14:20:05 +0200 + +cdrkit (2.01.01a08+X.09) UNRELEASED; urgency=low + + * Applied 18_donotopen_hda.dpatch - don't insist on opening unrelated IDE + devices + * 20_rsh-bugfix.dpatch - make really sure that the program does seteuid + right or exit + * 22_linux_rawio_capability.dpatch: get Linux capabilities as needed + + -- Eduard Bloch Wed, 23 Aug 2006 14:11:47 +0200 + +cdrkit (2.01.01a08+X.08) UNRELEASED; urgency=low + + * mkisofs iconv support with log message adapted, added to CMake build + system as appropriate + + -- Eduard Bloch Wed, 23 Aug 2006 13:57:10 +0200 + +cdrkit (2.01.01a08+X.07) UNRELEASED; urgency=low + + * Applied patches: 07_noadvertising (strip adds for commercial + cdrecord-proDVD), 08_privacy (mkisofs revealing the exact command line) + + -- Eduard Bloch Wed, 23 Aug 2006 13:54:54 +0200 + +cdrkit (2.01.01a08+X.06) UNRELEASED; urgency=low + + * Applied 06_dautipps - better hints about ATAPI usage howto and + -joliet-long workaround + + -- Eduard Bloch Wed, 23 Aug 2006 13:52:50 +0200 + +cdrkit (2.01.01a08+X.05) UNRELEASED; urgency=low + + * Bits from 03_script.dpatch by Joerg Jaspert and Eduard + Bloch: Linux-friendly device location for cdda scripts and better encoder + selection + + -- Eduard Bloch Wed, 23 Aug 2006 13:49:56 +0200 + +cdrkit (2.01.01a08+X.04) UNRELEASED; urgency=low + + * Added bits from 02_paths.dpatch by Joerg Jaspert : + /var/log directory location and SILO relevant paths + + -- Eduard Bloch Wed, 23 Aug 2006 13:46:55 +0200 + +cdrkit (2.01.01a08+X.03) UNRELEASED; urgency=low + + * adapted cdrecord/cdrecord.dfl for modern Linux system, based on bits from + 02_cdrecord_default_conf.dpatch by Zack Cerza + + -- Eduard Bloch Wed, 23 Aug 2006 13:43:15 +0200 + +cdrkit (2.01.01a08+X.02) UNRELEASED; urgency=low + + * Converted to use a CMake based filesystem. Generating relevant things with + its mechanisms instead of inc/*. Dropped BUILD, INSTALL files, rewrote + COMPILE fall to reflect the new build method. + * Added GNUmakefile which has rules to bootstrap the CMake build system and + then pass the actuall call to it. GNUmakefile is the prefered script used + by gmake. Users with other make implementations should run cmake manually. + + -- Eduard Bloch Wed, 23 Aug 2006 13:35:23 +0200 + +cdrkit (2.01.01a08+X.01) UNRELEASED; urgency=low + + * moved documentation around, READMEs/ directory contains a structure, moved + mkisofs docs from the source directory to it + + -- Eduard Bloch Tue, 22 Aug 2006 12:40:05 +0200 + + +***** Version 2.01 ******** + +Wed Sep 8 20:26:34 2004 Joerg Schilling + * cdrecord.c 1.297 + * readcd.c 1.74 + * cdrecord.c 1.296 + Version -> 2.01 + +Sat Sep 4 22:28:05 2004 Joerg Schilling + * scsidefs.h 1.28 + * scsisense.h 2.18 + * scsicdb.h 2.19 + * scsireg.h 1.31 + * scgcmd.h 2.22 + Cstyle + +Wed Aug 25 13:28:57 2004 Joerg Schilling + * cdrecord.c 1.295 + Warnung fuer Linux-2.6.8.1 neu + +Tue Aug 24 01:11:42 2004 Joerg Schilling + * scsi-remote.c 1.16 + Auch die euid auf pw->pw_uid setzen bevor exec(RSH gemacht wird + +Thu Aug 19 12:14:09 2004 Joerg Schilling + * cdrecord.c 1.294 + Version -> 2.01a38 + +Thu Aug 19 12:08:26 2004 Joerg Schilling + * cdrecord.c 1.293 + linuxcheck() im %I% verbessert ;-) + +Mon Aug 16 16:42:17 2004 Joerg Schilling + * cdrecord.c 1.292 + Version -> 2.01a37 + SuSE Kommentar erweitert. + +Sun Aug 8 23:04:39 2004 Joerg Schilling + * scsi_mmc.c 1.10 + struct features & struct profiles -> LOCAL + +Thu Aug 5 10:26:18 2004 Joerg Schilling + * cdrecord.c 1.291 + Kommentar vor linuxcheck() erweitert + +Wed Aug 4 02:30:51 2004 Joerg Schilling + * cdrecord.c 1.290 + Version -> 2.01a36 + max_dma ist nun 4/5 der DMA Speed statt 1/2 + Warnung wegen Linux-2.6 eingebaut + Warnung wegen SuSE Linux eingebaut + +Sat Jul 31 17:41:06 2004 Joerg Schilling + * cdrecord.c 1.289 + Version -> 2.01a35 + Check auf dma_speed > 0, dma_speed Test nur wenn tracks > 0 + +Mon Jul 19 11:10:00 2004 Joerg Schilling + * scsi-wnt.c 1.45 + SPTI nicht bei NT-4.0 als Default + +Sun Jul 18 01:26:08 2004 Joerg Schilling + * cdrecord.c 1.288 + Version -> 2.01a34 + Mehr Tests auf Korektheit der Werte (sinnvoller Bereich in get_dmaspeed()) + dma_speed nur dann auswerten wenn > 0 + +Sun Jul 11 02:28:23 2004 Joerg Schilling + * cdrecord.1 1.103 + CDR_FORCESPEED domumentiert + +Sun Jul 11 01:57:27 2004 Joerg Schilling + * skel.c 1.3 + * readcd.c 1.73 + * xio.c 1.11 + -> NEED_O_BINARY + +Sun Jul 11 01:32:49 2004 Joerg Schilling + * readcd.c 1.72 + * skel.c 1.2 + MINGW32 neu + +Sun Jul 11 01:30:12 2004 Joerg Schilling + * xio.c 1.10 + setmode() auch bei MINGW32 + +Fri Jul 9 00:05:39 2004 Joerg Schilling + * cdrecord.c 1.287 + Version -> 2.01a33 + get_dmaspeed() neu + kein nice() bei __DJGPP__ + +Fri Jun 18 17:46:20 2004 Joerg Schilling + * scsi-wnt.c 1.44 + if (isdigit(vers) -> if (isdigit(vers[0]) (bug korrigiert + +Fri Jun 18 01:17:54 2004 Joerg Schilling + * drv_dvdplus.c 1.15 + * drv_dvd.c 1.118 + long dvd_next_addr -> LOCAL long dvd_next_addr + +Thu Jun 17 23:20:27 2004 Joerg Schilling + * scsierrs.c 2.29 + * scsitransp.c 1.91 + Bitfeld Typen fuer printf() auf int casten wegen IRIX cc + +Thu Jun 17 11:24:48 2004 Joerg Schilling + * readcd.c 1.71 + Verbose Ausgabe fuer Fehlerkorrekturen nochmals angepasst + +Sun Jun 13 16:28:28 2004 Joerg Schilling + * readcd.c 1.70 + maxtry neu + +Sun Jun 13 16:00:20 2004 Joerg Schilling + * readcd.c 1.69 + Ausgabe der maximale Anzahl der Retries + +Sat Jun 12 15:14:49 2004 Joerg Schilling + * drv_dvdplus.c 1.14 + * drv_dvd.c 1.117 + RAW & TAO Schreibmodi nach check_writemodes() loeschen damit niemand cdrecord -raw fuer DVDs aufruft + +Sat Jun 12 13:48:12 2004 Joerg Schilling + * scsi-linux-ata.c 1.7 + Warntext geaendert + +Fri Jun 11 16:49:15 2004 Joerg Schilling + * readcd.c 1.68 + Version -> 2.01a32 + -scanbus funktioniert nun auch wenn dev= nicht angegeben und /etc/default/cdrecord vorhanden + Auflistung der defekten Sektoren in allozierter Liste + +Thu Jun 10 10:58:19 2004 Joerg Schilling + * cdrecord.1 1.102 + Schreibfehler + +Wed Jun 2 22:54:33 2004 Joerg Schilling + * cdrecord.1 1.101 + -clone dokumentiert + +Tue May 25 17:33:15 2004 Joerg Schilling + * readcd.c 1.67 + Vsersion -> 2.01a31 + +Tue May 25 17:32:29 2004 Joerg Schilling + * readcd.c 1.66 + -scanbus neu + +Tue May 25 01:36:00 2004 Joerg Schilling + * cdrecord.h 1.161 + * scsi_cdr.c 1.137 + * drv_mmc.c 1.157 + write_buffer() neu und write_buffer() in drv_mmc.c -> yamaha_write_buffer() + +Thu May 20 16:42:12 2004 Joerg Schilling + * scsi-linux-sg.c 1.83 + Kommentar gegen die Debian patches fuer /dev/hd* + +Thu May 20 16:24:11 2004 Joerg Schilling + * scsi-linux-ata.c 1.6 + Bis zu 25 /dev/hd%c Files oeffnen + +Thu May 20 16:14:33 2004 Joerg Schilling + * scsi-linux-sg.c 1.82 + Kommentare um dumme Leute von SuSE davon abzuhalten wichtige Warnungen wegzupatchen + +Thu May 20 15:50:38 2004 Joerg Schilling + * cdrecord.1 1.100 + Kommentar zu benoetigten Root Rechten neu + +Thu May 20 15:35:52 2004 Joerg Schilling + * cdrecord.c 1.286 + Bessere Kommentare gegen SuSE die cdrecord nicht als root laufen lasse wollen + +Wed May 19 00:54:29 2004 Joerg Schilling + * cdrecord.c 1.285 + Make sure you are root. nur ausgeben wenn euid != 0 + +Wed May 19 00:47:48 2004 Joerg Schilling + * cdrecord.c 1.284 + Version -> 2.01a29 + reload geht nun auch fuer Notebook Laufwerke wieder + +Wed May 19 00:45:26 2004 Joerg Schilling + * cdrecord.h 1.160 + * scsi_mmc.c 1.9 + print_format_capacities() neu + +Wed May 19 00:27:28 2004 Joerg Schilling + * cdrecord.1 1.99 + Bessere beschreibung der Hintergruende fuer eine gute Wahl der FIFO Groesse (fs=) + +Mon May 17 00:38:17 2004 Joerg Schilling + * cdrecord.1 1.98 + Bessere Dokumentation fuer DVD + +Mon May 17 00:18:21 2004 Joerg Schilling + * scsilog.c 1.17 + Besserer Kommentar + +Sun May 16 23:46:51 2004 Joerg Schilling + * drv_mmc.c 1.156 + bei OPC "Power calibration area almost full" nicht als Fehler auffassen + +Sun May 16 17:01:24 2004 Joerg Schilling + * cdrecord.1 1.97 + Bessere Dokumentation der driver= Option + +Sun May 16 01:37:11 2004 Joerg Schilling + * cdrecord.1 1.96 + Diverse kleinere Schreibfehler beseitigt + +Sun May 16 01:26:52 2004 Joerg Schilling + * cdrecord.1 1.95 + Eißfeldt -> Ei\*sfeldt + µsec -> \*msec + +Sat May 15 23:14:18 2004 Joerg Schilling + * subchan.c 1.19 + index Variable -> curindex wegen GCC Shadow Warnung + +Sun May 9 17:59:31 2004 Joerg Schilling + * skel.c 1.1 + date and time created 04/05/09 16:59:31 by joerg + +Fri Apr 23 00:51:24 2004 Joerg Schilling + * scsi-wnt.c 1.43 + Padding fuer ASPI CMD Struktur damit auch 32 Byte Sense Daten von SPTI gehen + +Wed Apr 21 01:48:32 2004 Joerg Schilling + * scsi-wnt.c 1.42 + Support fuer SPTI & Kontroller mit mehr als einem SCSI Bus + Bei SPTI ist SENSE_LEN max nun 32 + +Sun Apr 18 13:26:43 2004 Joerg Schilling + * scsi-linux-sg.c 1.81 + MAX-SCG -> 256 wegen Linux USB Implementierung + +Fri Apr 16 15:29:34 2004 Joerg Schilling + * scsi_scan.c 1.19 + Bis zu 256 Busse scannen. + +Thu Apr 15 16:35:46 2004 Joerg Schilling + * cdrecord.c 1.283 + Version -> 2.01a28 + +Mon Apr 12 16:13:47 2004 Joerg Schilling + * cdrecord.1 1.94 + Read Book -> Red Book + +Tue Apr 6 11:59:03 2004 Joerg Schilling + * cdrecord.c 1.282 + Bessere Fehlermeldung bei fehlendem -pad/-shorttrack + +Mon Mar 15 01:59:49 2004 Joerg Schilling + * cdrecord.c 1.281 + Kommentar fuer cuefile= & -raw + +Wed Mar 10 21:54:36 2004 Joerg Schilling + * readcd.c 1.65 + * cdrecord.1 1.93 + * cdrecord.c 1.280 + ts= Doku besser + +Mon Mar 8 00:43:39 2004 Joerg Schilling + * scsi-linux-sg.c 1.80 + Fehler if (sp->u_sense.cmd_sense != 0 -> if (sp->u_sense.cmd_sense[0] != 0 korrigiert + Wenn ASC/ASQ und auch alle zusaetzlichen Bits/Key in Byte 2 0 sind, dann loeschen wir CHECK CONDITION wieder + weil das ein Linux USB Problem ist wo z.B. wegen einem DMA Underrun REQUEST SENSE geschickt wurde + und das Laufwerk erwartungemaesz mit NO SENSE geantwortet hat + +Sun Mar 7 23:43:08 2004 Joerg Schilling + * cdrecord.c 1.279 + Version -> 2.01a27 + +Thu Mar 4 09:24:11 2004 Joerg Schilling + * cdrecord.c 1.278 + Bugfix: Nach Umstellung des Tests auf Schreibmodus Option ging nur noch TAO + +Wed Mar 3 01:27:14 2004 Joerg Schilling + * drv_dvd.c 1.115 + * cue.c 1.20 + * isosize.c 1.9 + * drv_simul.c 1.47 + * getnum.c 1.2 + * movesect.c 1.3 + Cstyle + +Tue Mar 2 21:02:42 2004 Joerg Schilling + * misc.c 1.4 + * cue.c 1.19 + Copyright -> 2004 + +Tue Mar 2 02:53:06 2004 Joerg Schilling + * modes.c 1.25 + * fifo.c 1.47 + * drv_mmc.c 1.155 + * drv_sony.c 1.70 + * drv_dvdplus.c 1.13 + * drv_7501.c 1.15 + * diskid.c 1.37 + * defaults.c 1.11 + * crc16.c 1.6 + * cdr_drv.c 1.36 + * clone.c 1.7 + * drv_philips.c 1.68 + * readcd.c 1.64 + * scsi_cdr.c 1.136 + * scsi_scan.c 1.18 + * iso9660.h 1.5 + * xio.h 1.2 + * cdtext.h 1.5 + Cstyle + +Tue Mar 2 01:13:42 2004 Joerg Schilling + * wm_track.c 1.4 + Copyright -> 2004 + +Mon Mar 1 11:08:40 2004 Joerg Schilling + * cdrecord.h 1.159 + * mmcvendor.h 1.3 + * scsilog.h 1.4 + * scsimmc.h 1.10 + * drv_jvc.c 1.80 + * scsi_mmc.c 1.8 + * cdtext.c 1.10 + * scsilog.c 1.16 + * auinfo.c 1.23 + * cdrecord.c 1.277 + * audiosize.c 1.19 + * sector.c 1.12 + * subchan.c 1.17 + * wm_packet.c 1.24 + * xio.c 1.8 + Cstyle + +Mon Mar 1 11:02:43 2004 Joerg Schilling + * scsimmc.h 1.11 + * subchan.c 1.18 + * wm_packet.c 1.25 + * xio.c 1.9 + * sector.c 1.13 + Copyright -> 2004 + +Sun Feb 29 21:49:03 2004 Joerg Schilling + * cdrecord.c 1.276 + Cstyle + +Sun Feb 29 18:19:58 2004 Joerg Schilling + * cdrecord.c 1.275 + Version -> 2.01a26 + -tao/-sao neu + +Sun Feb 29 18:13:20 2004 Joerg Schilling + * cdrecord.1 1.92 + -tao Option neu, -sao Option als Alias fuer -dao + +Sun Feb 22 16:41:57 2004 Joerg Schilling + * cdrecord.1 1.91 + Schreibfehler + +Sun Feb 22 15:53:51 2004 Joerg Schilling + * readcd.c 1.63 + * cdrecord.h 1.158 + * defaults.c 1.10 + cdr_defaults() Prototy -> neues defaults.h + +Sun Feb 22 15:53:00 2004 Joerg Schilling + * defaults.h 1.1 + date and time created 04/02/22 15:53:00 by joerg + +Sun Feb 1 21:32:58 2004 Joerg Schilling + * adip.h 1.1 + date and time created 04/02/01 21:32:58 by joerg + +Fri Jan 23 23:10:42 2004 Joerg Schilling + * scsi-wnt.c 1.41 + dev=ATAPI:1,0 geht nun wieder + +Mon Jan 19 21:29:24 2004 Joerg Schilling + * drv_dvd.c 1.113 + * cdrecord.c 1.274 + * drv_dvdplus.c 1.12 + * wm_packet.c 1.23 + trackp[i].padsecs * secsize -> (Llong)trackp[i].padsecs * secsize, damit kein Integeroverflow mehr stattfindet + +Thu Jan 15 22:24:39 2004 Joerg Schilling + * scsi-wnt.c 1.40 + w2k_or_newer() neu um bei NT-4.0 wegen DMA Problemen mit SPTI per Default mit ASPI zu betreiben + Debug prints fuer bessere Beurteilung der Funktionsweise + +Thu Jan 15 02:22:38 2004 Joerg Schilling + * scsi-mac-iokit.c 1.9 + memset sense 0 wieder eingebaut bis endgueltig geklaert ist wie es sein sollte + +Thu Jan 15 01:55:36 2004 Joerg Schilling + * scsi-hpux.c 1.31 + * scsi-linux-pg.c 1.43 + * scsi-vms.c 1.33 + * scsi-os2.c 1.25 + * scsi-wnt.c 1.39 + * scsi-remote.c 1.15 + * scsi-unixware.c 1.36 + * scsi-qnx.c 1.3 + * scsi-osf.c 1.26 + * scsi-sgi.c 1.36 + * scsi-bsd.c 1.42 + * scsi-bsd-os.c 1.28 + * scsi-beos.c 1.22 + Umbau fuer Cstyle + +Thu Jan 15 01:05:25 2004 Joerg Schilling + * scsi-openserver.c 1.31 + Aenderungen fuer Cstyle + +Thu Jan 15 00:50:11 2004 Joerg Schilling + * scsi-next.c 1.32 + * scsi-linux-ata.c 1.5 + Umbau wegen Cstyle + +Wed Jan 14 20:05:52 2004 Joerg Schilling + * drv_dvd.c 1.112 + Unbenutzte Variablen beseitigt + +Wed Jan 14 20:04:33 2004 Joerg Schilling + * scsi-sun.c 1.82 + Aumbau fuer Cstyle + +Wed Jan 14 19:57:28 2004 Joerg Schilling + * scsi-sun.c 1.81 + Ueberfluessige Variable sb beseitigt + +Wed Jan 14 18:54:48 2004 Joerg Schilling + * scsi-apollo.c 1.5 + * scsi-amigaos.c 1.6 + * scsi-aix.c 1.36 + * scsi-linux-sg.c 1.79 + * scsiopen.c 1.95 + * scsitransp.c 1.90 + * scgsettarget.c 1.2 + * scsihelp.c 1.4 + Umbau fuer cstyle + +Wed Jan 14 15:37:47 2004 Joerg Schilling + * scsi-linux-sg.c 1.78 + LF_ATA Flag neu + +Wed Jan 14 01:14:27 2004 Joerg Schilling + * scsi-mac-iokit.c 1.8 + ux_errno wird nun korrekt gesetzt wenn ein Kommando schiefgeht + Die Sense Daten werden nicht mehr gelöscht + Author ist nun "schily", denn das Modul kommt nun teilweise dirch scgcheck + +Tue Jan 13 20:43:44 2004 Joerg Schilling + * scsi-mac-iokit.c 1.7 + Umbau fuer Cstyle + +Mon Jan 12 00:36:04 2004 Joerg Schilling + * drv_mmc.c 1.154 + Besserer Kommentar bei den Profilen in identify + +Mon Jan 12 00:33:39 2004 Joerg Schilling + * cdr_drv.c 1.35 + dp bei error() ueberpruefen um coredumps bei cdrecord -xd zu verhindern + +Sun Jan 11 18:42:14 2004 Joerg Schilling + * scsi-linux-sg.c 1.77 + Versuch das /dev/hd* Interface von Linux-2.6 besser zu unterstützen. + +Sun Jan 11 16:18:48 2004 Joerg Schilling + * scsi-linux-sg.c 1.76 + Kommentar verbessert + +Sun Jan 11 14:39:45 2004 Joerg Schilling + * scsi-wnt.c 1.38 + w2kstyle_create() umgestellt und so repariert, dasy kein unzulaessiger Speicherzugriff mehr erfolgt + +Sun Jan 11 14:09:19 2004 Joerg Schilling + * scsi-wnt.c 1.37 + loas_aspi() neu + +Sun Jan 11 13:28:56 2004 Joerg Schilling + * scsi-wnt.c 1.36 + Aenderungen damit cdrecord -scanbus dev=ASPI geht + +Wed Jan 7 00:38:26 2004 Joerg Schilling + * cdrecord.h 1.157 + * scsi_scan.c 1.17 + * scsi-mac-iokit.c 1.6 + * scsi-sun.c 1.80 + * scsi-wnt.c 1.34 + * scsitransp.c 1.89 + * cdrecord.c 1.273 + Copyright -> 2004 + +Wed Jan 7 00:20:32 2004 Joerg Schilling + * scsi-wnt.c 1.35 + Anderer Version String fuer SPTI + +Wed Jan 7 00:03:55 2004 Joerg Schilling + * cdrecord.c 1.272 + Version -> 2.01a24 + +Tue Jan 6 23:58:43 2004 Joerg Schilling + * cue.c 1.18 + Wenn FILE Anweisung im CUE Sheet keinen Slash (/) enthaelt, dann wird der Filename auch im Directory des CUE Sheets gesucht + +Tue Jan 6 23:52:52 2004 Joerg Schilling + * scsitransp.c 1.88 + Version -> 0.8 + +Tue Jan 6 23:33:20 2004 Joerg Schilling + * scsi-wnt.c 1.33 + Cstyle + +Tue Jan 6 23:21:14 2004 Joerg Schilling + * scsi-wnt.c 1.32 + SPTI Unterdrueckung von nocht CD-ROM deaktiviert + +Tue Jan 6 23:10:18 2004 Joerg Schilling + * scsi-wnt.c 1.31 + Erste Version mit SPTI Support + +Tue Jan 6 17:58:47 2004 Joerg Schilling + * scsi-mac-iokit.c 1.5 + scgo_havebus() korrigiert (war immer FALSE) damit pxupgrade funktioniert + +Tue Jan 6 01:01:59 2004 Joerg Schilling + * drv_mmc.c 1.153 + cmd_dummy statt init_mmc in den Treiberstrukturen fuer CD-ROM Leser + +Sun Jan 4 15:26:25 2004 Joerg Schilling + * scsi-sun.c 1.79 + Erste Version einer UID Verwaltung die fuer Solaris 9 USCSI gebraucht wird + +Fri Jan 2 16:05:57 2004 Joerg Schilling + * scsi-sun.c 1.78 + Erste Version die mit Volume Management arbeitet + +Fri Jan 2 16:05:21 2004 Joerg Schilling + * cdrecord.c 1.271 + Version -> 2.01a23 + +Fri Jan 2 16:05:06 2004 Joerg Schilling + * scsi_scan.c 1.16 + Hack fuer fd == -1 -> Kein Zugriff auf LW -> '?' statt '*' + +Tue Dec 30 14:20:00 2003 Joerg Schilling + * cdrecord.c 1.270 + Schreibfehler will not not Korrigiert + +Mon Dec 29 15:25:05 2003 Joerg Schilling + * cdrecord.1 1.90 + Bessere Beschreibung und Beispiel fuer -setdropts driveropts= + +Wed Dec 24 11:51:56 2003 Joerg Schilling + * drv_mmc.c 1.152 + Hinweis auf RAW bei nicht funktionierendem CUE Sheet + +Tue Dec 23 13:48:33 2003 Joerg Schilling + * cdrecord.c 1.269 + Version -> 2.01a21 + Hack fuer POSIX_PRIORITY_SCHEDULING Bug (wir brauchen root Rechte um die Pri zu verringern) + +Sun Dec 21 14:29:21 2003 Joerg Schilling + * cdrecord.1 1.89 + Neuer Absatz ueber ATAPI auf erster Seite. + +Thu Dec 18 17:10:58 2003 Joerg Schilling + * scsitransp.c 1.87 + Aehnlicher Text wie in cdrecord.c wenn !defined(IS_SCHILY_XCONFIG) + +Thu Dec 18 17:10:26 2003 Joerg Schilling + * cdrecord.c 1.268 + Neuer Text fuer modifizierte Versionen ohne Support + +Thu Dec 18 17:09:41 2003 Joerg Schilling + * cdrecord.1 1.88 + .sp verschoben auf Wunsch von Eric Raymond + +Tue Dec 16 00:42:16 2003 Joerg Schilling + * cdrecord.c 1.267 + Security Test Ausgabe nun auch ohne Root Zugriff sichtbar + +Mon Dec 15 16:40:59 2003 Joerg Schilling + * cdrecord.c 1.266 + Ausgabe des Resultats des Security Checks + +Mon Dec 15 09:19:24 2003 Joerg Schilling + * drv_mmc.c 1.151 + Copyright -> 2003 + +Mon Dec 15 09:18:14 2003 Joerg Schilling + * drv_mmc.c 1.150 + Ein DVD Brenner wird nun auch erkannt wenn er nur MMC-3 und nicht MMC-2 konform ist + Hinweis auf ftp://ftp.berlios.de/pub/cdrecord/ProDVD/ + +Mon Dec 15 07:32:55 2003 Joerg Schilling + * cdrecord.c 1.265 + comexit(0); nach "erstem" -force blank unit entfernt damit auch mit dem Ricoh-5125 Medien erweckt werden koennen + +Thu Dec 11 12:59:54 2003 Joerg Schilling + * scsireg.h 1.30 + #ifdef __SCG_COMPAT_ zum enablen von info/ident/revision -> vendor_info/prod_ident/prod_revision + +Thu Dec 11 12:55:42 2003 Joerg Schilling + * scsi_scan.c 1.15 + * scsi_cdr.c 1.135 + info -> vendor_info, ident -> prod_ident, revision -> prod_revision + +Wed Dec 10 00:42:39 2003 Joerg Schilling + * scsi-dos.c 1.11 + Hinweis auf http://bootcd.narod.ru/ + +Wed Dec 10 00:40:49 2003 Joerg Schilling + * cdrecord.c 1.264 + Hinweis auf ftp://ftp.berlios.de/pub/cdrecord/ProDVD/ + +Wed Dec 10 00:19:03 2003 Joerg Schilling + * cdrecord.c 1.263 + Version -> 2.01a20 + FIFO Abschalten wenn fifosize < 2*bufsize + +Tue Dec 9 20:52:14 2003 Joerg Schilling + * cdrecord.1 1.87 + ..sp -> .sp Schreibfehler + +Sun Nov 30 13:50:31 2003 Joerg Schilling + * scsi-dos.c 1.10 + schcgeck funktioniert nun, kein DMAresid und max sense_count 18 + +Sun Nov 30 00:00:01 2003 Joerg Schilling + * xio.c 1.7 + * readcd.c 1.62 + #include auch fuer DJGPP + +Sat Nov 29 23:36:39 2003 Joerg Schilling + * scsi-dos.c 1.9 + Srb.Type.ExecSCSICmd.SenseLen = DEF_SENSE_LEN; -> Srb.Type.ExecSCSICmd.SenseLen = (SENSE_LEN+2); + +Sat Nov 29 23:11:56 2003 Joerg Schilling + * readcd.c 1.61 + Version -> 2.01a20 + +Sat Nov 29 23:10:16 2003 Joerg Schilling + * xio.c 1.6 + setmode(fileno, O_BINARY) auch fuer DJGPP + +Sat Nov 29 23:10:00 2003 Joerg Schilling + * readcd.c 1.60 + #include fuer __CYGWIN32__/__EMX__ + setmode(fileno, O_BINARY) auch fuer DJGPP + +Sat Nov 29 23:03:06 2003 Joerg Schilling + * scsi-dos.c 1.8 + Sense_len & sense_count korrekt beachten + SS_ERR -> vor die invalid Device & Cannot Select Bus cases im switch in send_cmd() + +Sat Nov 29 22:28:57 2003 Joerg Schilling + * scsi-dos.c 1.7 + Schreibfehler is statt if beseitigt + +Sat Nov 29 19:11:41 2003 Joerg Schilling + * scsi-os2.c 1.24 + Return (0) statt -1 bei FATAL Error in send_cmd() wenn kein gueltiges Target gesetzt ist + +Sat Nov 29 19:10:48 2003 Joerg Schilling + * scsi-dos.c 1.6 + Neuer AspiLoaded Counter fuer mehrfaches Oeffnen + +Sat Nov 29 19:06:55 2003 Joerg Schilling + * scsi-wnt.c 1.30 + Return (0) statt -1 bei FATAL Error in send_cmd() wenn kein gueltiges Target gesetzt ist + SS_ERR mit cp->SRB_TargStat != 0 ist nun SCG_NO_ERROR + AspiLoaded ist nun integer Counter damit mehrere open()s moeglich sind + +Sat Nov 29 19:04:36 2003 Joerg Schilling + * scsi-dos.c 1.5 + Return (0) statt -1 bei FATAL Error in send_cmd() wenn kein gueltiges Target gesetzt ist + SS_ERR mit Srb.Type.ExecSCSICmd.TargStat != 0 ist nun SCG_NO_ERROR + +Sat Nov 29 18:58:35 2003 Joerg Schilling + * scsi-dos.c 1.4 + Cstyle + +Sat Nov 29 18:30:44 2003 Joerg Schilling + * scsi-dos.c 1.3 + Umbau auf _go32_dpmi_allocate_real_mode_callback_retf() + +Fri Nov 28 10:25:15 2003 Joerg Schilling + * scsi-dos.c 1.2 + Callback Funktion neu + +Fri Nov 28 02:33:18 2003 Joerg Schilling + * scsihack.c 1.43 + scsi-dos.c neu + +Fri Nov 14 10:55:14 2003 Joerg Schilling + * scsi-dos.c 1.1 + date and time created 03/11/14 10:55:14 by joerg + +Sun Nov 2 23:50:22 2003 Joerg Schilling + * fifo.c 1.46 + fifo_percent() fragt nun (sp == NULL) ab um festzustellen of der FIFO aus ist + +Wed Oct 29 15:33:45 2003 Joerg Schilling + * scsi-remote.c 1.14 + strcatl()/concat()/*execl() casten nun NULL im letzten Arg nach (char *)NULL + +Wed Oct 1 00:39:23 2003 Joerg Schilling + * cdrecord.h 1.156 + Kommentar ueber minimale FIFO Groesse + +Sun Aug 24 13:15:10 2003 Joerg Schilling + * cdrecord.1 1.86 + driveropts in /Etc/default/cdrecord dokumentiert + +Tue Jul 22 21:43:08 2003 Joerg Schilling + * cdrecord.c 1.262 + Version -> 2.01a17 + +Mon Jul 21 00:06:31 2003 Joerg Schilling + * cdrecord.h 1.155 + * cdrecord.1 1.85 + * cdrecord.c 1.261 + Neue Option ts= + +Fri Jul 18 10:04:20 2003 Joerg Schilling + * readcd.c 1.59 + Version -> 2.01a17 + Teilweise #ifndef EXTVERS -> #ifdef CLONE_WRITE fuer genauere Beschreibung des Kodes + +Fri Jul 18 10:03:04 2003 Joerg Schilling + * scsi_cdr.c 1.134 + Kommentar Hinweis in cdr_underrun() + +Fri Jul 11 11:43:25 2003 Joerg Schilling + * cdrecord.1 1.84 + Schreibfehler + +Sun Jul 6 00:04:14 2003 Joerg Schilling + * scsi-os2.c 1.23 + EIO statt EINVAL damit Scan fuer Targets > 7 klappt + +Sat Jun 21 21:42:56 2003 Joerg Schilling + * scsi-sun.c 1.77 + Workaround fuer Solaris 8 x86 Bug: DKIOCINFO liefert 256 kB DMAsize aber nur 68 kB geht bei ATAPI & DMA + +Sat Jun 21 19:42:26 2003 Joerg Schilling + * readcd.c 1.58 + Neue Option -factor + +Fri Jun 20 22:47:08 2003 Joerg Schilling + * readcd.c 1.57 + Neue Option ts= fuer Transfer size + +Fri Jun 20 22:32:59 2003 Joerg Schilling + * readcd.c 1.56 + Residual count auswerten beim Lesen + +Fri Jun 20 22:21:33 2003 Joerg Schilling + * readcd.c 1.55 + prstats_silent() Prototyp neu + Versuch damit klarzukommen dasz einige BS (UnixWare) nicht mit odd byte DMA bei ATAPI klarkommen (READ FULL TOC) + Ausgabe aller Lead out startzeiten bei -clone (READ FULL TOC) + Geschwindigkeitsangaben beziehen sich auf 1000 Byte == 1 kb + Hack to write empty disks geht mit end == 1 statt end == 0 + +Tue Jun 17 19:23:35 2003 Joerg Schilling + * cdrecord.1 1.83 + Schreibfehler + +Tue Jun 17 19:18:00 2003 Joerg Schilling + * auinfo.c 1.22 + samples -> nsamples wegen samples() Makro und K&R C + +Sat May 31 21:58:05 2003 Joerg Schilling + * scsi-amigaos.c 1.5 + Neue Version von Thomas Langer + +Sat May 31 19:41:16 2003 Joerg Schilling + * scsi-amigaos.c 1.4 + Eingerueckt nach cstyle + +Sat May 31 18:34:37 2003 Joerg Schilling + * cdrecord.c 1.260 + GPL Hinweise besser formuliert, Schreibfehler in usage() beseitigt + +Sat May 31 18:10:38 2003 Joerg Schilling + * cdrecord.1 1.82 + Schreibfehler berichtigt & -format dokumentiert + +Sat May 31 18:09:46 2003 Joerg Schilling + * auinfo.c 1.21 + Fix fuer fehlerhafte Erkennung von *.inf Dateien die Meldung 'WARNING: Stdin is connected to a terminal.' verursacht + +Fri May 16 13:02:58 2003 Joerg Schilling + * scsi-remote.c 1.13 + js_snprintf(devname, sizeof(devname), device); -> js_snprintf(devname, sizeof(devname), "%s", device); + +Wed May 14 18:59:12 2003 Joerg Schilling + * cdrecord.c 1.259 + CD-Text -text Aktivierung durch trackp[MAX_TRACK+1].flags |= TI_TEXT + Kein CD-text mehr wenn track[0].flags & TI_TEXT schon gesetzt (durch textfile=) + +Wed May 14 18:57:53 2003 Joerg Schilling + * cue.c 1.17 + CD-Text aus CDTEXTFILE nur noch wenn trackp[MAX_TRACK+1].flags & TI_TEXT + +Wed May 14 18:56:55 2003 Joerg Schilling + * cdrecord.1 1.81 + Neue erweiterte CD-Text Behandlung beschrieben + +Wed May 14 02:24:17 2003 Joerg Schilling + * cdrecord.c 1.258 + Version -> 2.01a15, Diverse Umstellungen damit tracks == 0 Abfragen bei cuefile=xxx korrekt behandelt werden + +Wed May 14 02:21:07 2003 Joerg Schilling + * xio.c 1.5 + while(pp) -> for (; pp; pp = pp->x_next) damit continue bei x_name == NULL nicht zur Endlosschleife wird + +Tue May 13 23:26:57 2003 Joerg Schilling + * cdrecord.1 1.80 + speed= Behandlung besser erklaert und Schreibfehler + +Tue May 13 23:26:14 2003 Joerg Schilling + * cue.c 1.16 + TI_SWAB bei FILE ... WAVE setzen + +Tue May 13 13:07:03 2003 Joerg Schilling + * xio.c 1.4 + pp->x_name == NULL voer strcmp geaendert + +Tue May 13 13:05:00 2003 Joerg Schilling + * xio.c 1.3 + Neue Knoten korrekt in Liste ein und aushaengen + +Mon May 12 02:17:00 2003 Joerg Schilling + * drv_mmc.c 1.149 + Support fuer TM_QUADRO/TM_ALLOW_COPY neu + Hack fuer CUE Sheet Handling mit MODE2/CDI trackp[i].dbtype == DB_RAW + Fuer Lead-In/Lead-Out werden nun die Bits fuer Datengroesse wegmaskiert + +Mon May 12 01:39:30 2003 Joerg Schilling + * cdrecord.c 1.257 + setleadinout() setzt nun trackp[tracks+1].tracktype aus trackp[tracks].tracktype + +Mon May 12 01:38:03 2003 Joerg Schilling + * cue.c 1.15 + Erste funktionierende Version + +Mon May 12 00:26:35 2003 Joerg Schilling + * drv_dvdplus.c 1.8 + Canot -> Cannot Schreibfehler beseitigt + +Mon May 12 00:25:29 2003 Joerg Schilling + * cdrecord.h 1.154 + parsecue()/fparsecue() neu + +Mon May 12 00:22:57 2003 Joerg Schilling + * cdrecord.c 1.256 + Version -> 2.01a14, Neue Option cuefile=, Kein Aufruf von checkdsize() wenn tracks == 0 (tsize == -150) + +Mon May 12 00:20:55 2003 Joerg Schilling + * cdrecord.1 1.79 + einfache erste cuefile= Doku + +Sun May 11 21:47:29 2003 Joerg Schilling + * cdrecord.h 1.153 + TI_QUADRO & is_quadro() neu + +Sun May 11 21:46:53 2003 Joerg Schilling + * xio.c 1.2 + Schutz gegen Coredump wenn pp->x_name == NULL + +Sat May 10 16:15:14 2003 Joerg Schilling + * cue.c 1.14 + Erster Ansatz fuer parse_file() + +Sat May 10 15:05:46 2003 Joerg Schilling + * cue.c 1.13 + struct state neu + cueopen()/neednextitem()/needword()/needitem()/checkextra()/cueabort() neu + +Fri May 9 10:10:42 2003 Joerg Schilling + * cue.c 1.12 + keyw_t Arrays -> LOCAL + +Fri May 9 10:08:10 2003 Joerg Schilling + * cue.c 1.11 + Parser Funktionen -> LOCAL + +Fri May 9 10:00:21 2003 Joerg Schilling + * cue.c 1.10 + Erster Ansatz zum weiteren parsieren der Keywort Zeilen mit den Funktionen parse_*() + +Fri May 9 09:58:25 2003 Joerg Schilling + * cdtext.c 1.9 + #include cdtext.h vor cdrecord.h wegen gettextptr() und den Typ textptr_t + +Fri May 9 09:57:08 2003 Joerg Schilling + * auinfo.c 1.20 + * cdrecord.h 1.152 + gettextptr() ist nun nicht mehr LOCAL + +Fri May 9 09:56:24 2003 Joerg Schilling + * cdtext.h 1.4 + #define CDTEXT_H fuer Erkennung dasz cdtext.h includiert wurde + +Thu May 8 20:13:07 2003 Joerg Schilling + * cue.c 1.9 + Umgestellt fuer mehr "Ordnung" + +Thu May 8 19:57:21 2003 Joerg Schilling + * cue.c 1.8 + Definitionen fuer alle Schluesselworte + +Thu May 8 19:44:42 2003 Joerg Schilling + * cue.c 1.7 + getlocal() beseitigt, parsecue()/fparsecue() neu + +Thu May 8 19:38:55 2003 Joerg Schilling + * scsiopen.c 1.94 + js_snprintf(errs, slen, scgp->errstr) -> js_snprintf(errs, slen, "%s", scgp->errstr) + +Thu May 8 19:38:14 2003 Joerg Schilling + * drv_mmc.c 1.148 + get_speeds_plextor() geht nicht mit alten LW, daher Ausfuerung im silent Mode + +Thu May 8 00:45:07 2003 Joerg Schilling + * cue.c 1.6 + Reihenfolge der Keyworte Kommentar + +Wed May 7 23:46:01 2003 Joerg Schilling + * cdrecord.h 1.151 + * wm_packet.c 1.22 + * fifo.c 1.45 + * cdrecord.c 1.255 + Umbau auf 'xio' + +Wed May 7 20:31:31 2003 Joerg Schilling + * xio.h 1.1 + * xio.c 1.1 + date and time created 03/05/07 19:31:31 by joerg + +Tue May 6 23:57:09 2003 Joerg Schilling + * cdrecord.h 1.150 + * cdrecord.1 1.78 + * cdrecord.c 1.254 + -abort Option neu + +Tue May 6 19:12:27 2003 Joerg Schilling + * cue.c 1.5 + Kommentar verbessert, lookup() mit table Parameter + +Tue May 6 00:35:47 2003 Joerg Schilling + * cue.c 1.4 + Kommentar verbessert + +Tue May 6 00:23:14 2003 Joerg Schilling + * cue.c 1.3 + Umbau auf Makefilesystem, ungetline()/getlocal() neu + +Sun May 4 18:41:33 2003 Joerg Schilling + * cdrecord.1 1.77 + Beschreibung der Audio Kopie aus Pipe + +Sun May 4 18:36:46 2003 Joerg Schilling + * cdrecord.c 1.253 + Version -> 2.01a13 + +Sun May 4 18:35:19 2003 Joerg Schilling + * cdrecord.h 1.149 + * cdrecord.c 1.252 + * auinfo.c 1.19 + Neue Funktion auinfosize() fuer AudioCDs aus Pipe Brennen + +Sun May 4 15:46:38 2003 Joerg Schilling + * cdrecord.c 1.251 + Neue Funktion opentracks() und Umstellung des Trackparsing + +Sun May 4 15:18:21 2003 Joerg Schilling + * fifo.c 1.44 + STDIN wird nicht mehr geschossen damit Audio "On the Fly" moeglich wird + +Sun May 4 15:16:43 2003 Joerg Schilling + * cdrecord.h 1.148 + Neues Track Flag TI_USEINFO, tracktype/dbtype nun Uchar + +Sun May 4 12:52:00 2003 Joerg Schilling + * cdrecord.c 1.250 + setuid(getuid()) nachdem alle root Dinge erledigt sind (hoffentlich) + +Sat May 3 20:09:17 2003 Joerg Schilling + * scsitransp.h 1.54 + * scsitransp.c 1.86 + scg_fprascii()/scg_prascii()/scg_sprascii() neu + +Sat May 3 19:39:32 2003 Joerg Schilling + * cdrecord.c 1.249 + gracewait setzt nun didgrace auf TRUE um doppeltes Warten zu vermeiden + +Fri May 2 22:49:20 2003 Joerg Schilling + * scsi-unixware.c 1.35 + Debug error() beseitigt + +Fri May 2 22:46:35 2003 Joerg Schilling + * scsi-unixware.c 1.34 + xpopen() neu damit suid root Binaries gehen, denn /etc/scsi/pdiconfig geht nicht wenn euid != uid + +Tue Apr 29 22:59:14 2003 Joerg Schilling + * cdrecord.c 1.248 + Version -> 2.01a11 + +Tue Apr 29 20:59:54 2003 Joerg Schilling + * cdrecord.c 1.247 + * cdrecord.1 1.76 + Neue Optionen -xa/-xamix und -multi/-mode2/-xa1/-xa2/-cdi korrigiert + +Tue Apr 29 20:41:16 2003 Joerg Schilling + * drv_mmc.c 1.147 + Support fuer TAO -mode2 + +Tue Apr 29 20:40:26 2003 Joerg Schilling + * cdrecord.h 1.147 + Definitionen fuer Daten Sektor Typen + +Tue Apr 29 00:27:20 2003 Joerg Schilling + * drv_mmc.c 1.146 + Bessere Ausgabe fuer formatierte RW Medien + +Tue Apr 29 00:26:27 2003 Joerg Schilling + * scsi_mmc.c 1.7 + Ausgave des Current Profile auf separater Zeile + +Wed Apr 23 23:25:27 2003 Joerg Schilling + * drv_dvdplus.c 1.5 + Ungebrauchte Variablen beseitigt + +Wed Apr 23 23:20:27 2003 Joerg Schilling + * scsi_cdr.c 1.133 + read_track_info() Bug gefixt (type Bits waren in cmd_cdb[2] statt cmd_cdb[1]) + +Wed Apr 23 23:19:24 2003 Joerg Schilling + * cdrecord.c 1.246 + gracewait() umstrukturiert + +Wed Apr 23 23:18:13 2003 Joerg Schilling + * scsi_mmc.c 1.6 + * drv_mmc.c 1.145 + * cdrecord.h 1.146 + print_profiles() neu + +Tue Apr 22 22:36:02 2003 Joerg Schilling + * cdrecord.c 1.245 + Return Code von (*dp->cdr_init)(scgp, dp) auswerten + +Tue Apr 22 19:08:58 2003 Joerg Schilling + * cdrecord.c 1.244 + raise_fdlim versucht nun nicht mehr z.B. ein Limit von 256 auf 109 zu "erhoehen". + +Tue Apr 22 17:47:29 2003 Joerg Schilling + * drv_mmc.c 1.144 + Fehlendes " ergaenzt + +Tue Apr 22 17:46:28 2003 Joerg Schilling + * drv_mmc.c 1.143 + Bessere Fehlermeldung fuer get next writable address auf formatierte CD-RW + +Tue Apr 22 17:42:06 2003 Joerg Schilling + * cdrecord.c 1.243 + Mehr Fehlermeldungen wenn in der Hauptschleife Fehler auftreten. + +Tue Apr 22 01:08:46 2003 Joerg Schilling + * cdrecord.c 1.242 + Version -> 2.01a11, gracewait() mit didgrace Parameter fuer Ausgabe ohne Warten + +Mon Apr 21 15:49:58 2003 Joerg Schilling + * cdrecord.c 1.241 + Format Code mit #ifdef DRV_DVD auskommentiert + +Mon Apr 21 15:40:04 2003 Joerg Schilling + * drv_mmc.c 1.142 + CL_TYPE_* #defines neu fuer scsi_close_tr_session() + +Mon Apr 21 15:39:13 2003 Joerg Schilling + * cdrecord.c 1.240 + -format & BOOL gracedone neu + +Mon Apr 21 15:23:22 2003 Joerg Schilling + * cdrecord.h 1.145 + * scsi_cdr.c 1.132 + request_sense_b()/reserve_tr_rzone() neu + +Mon Apr 21 14:22:51 2003 Joerg Schilling + * cdrecord.c 1.239 + Umbau auf gracewait() + +Sun Apr 20 16:26:57 2003 Joerg Schilling + * scsi_mmc.c 1.5 + get_format_capacities() neu + +Sun Apr 20 16:22:26 2003 Joerg Schilling + * drv_mmc.c 1.141 + read_track_info() mit erweiterten Parametern (Type) -> TI_TYPE_TRACK + +Sun Apr 20 16:21:22 2003 Joerg Schilling + * scsi_cdr.c 1.131 + read_track_info() mit erweiterten Parametern (Type), read_rzone_info() aus drv_dvd.c durch read_track_info() + +Sun Apr 20 16:20:40 2003 Joerg Schilling + * cdrecord.h 1.144 + F_FORMAT neu, WM_FORMAT neu, DSF_DVD_PLUS_R/DSF_DVD_PLUS_RW/DSF_NEED_FORMAT neu + read_track_info() mit erweiterten Parametern (Type), read_rzone_info() aus drv_dvd.c durch read_track_info() + get_format_capacities()/read_format_capacities() neu + +Sun Apr 20 15:52:45 2003 Joerg Schilling + * scsimmc.h 1.9 + struct disk_info um dbit & bg_format_stat erweitert + +Sun Apr 20 15:13:25 2003 Joerg Schilling + * scsireg.h 1.29 + struct scsi_format_header um immed/tryout/ipattern Bits erweitert + struct scsi_format_cap_header neu + struct scsi_format_cap_desc neu + struct scsi_cap_data neu + +Sun Apr 20 15:04:56 2003 Joerg Schilling + * scsicdb.h 2.18 + NACA Bit im Control Byte neu + +Fri Apr 18 16:53:04 2003 Joerg Schilling + * drv_dvd.c 1.106 + * drv_mmc.c 1.140 + * cdrecord.h 1.143 + * scsi_cdr.c 1.130 + read_dvd_structure() nun mit addr und layer Parameter + +Fri Apr 18 16:51:11 2003 Joerg Schilling + * scsi_mmc.c 1.4 + Unbenutze & Uninitialisierte Variablen beseitigt + +Thu Apr 17 23:13:07 2003 Joerg Schilling + * cdr_drv.c 1.34 + DVD+ Treiber neu + +Thu Apr 17 23:09:29 2003 Joerg Schilling + * drv_mmc.c 1.139 + Treibertexte besser eingerueckt + Umleitung auf DVD+ Treiber bei DVD+ Medium + Aufruf der dp->cdr_identify(scgp, dp, scgp->inq) Routine bei Weiterleitung auf DVD Treiber + +Thu Apr 17 09:45:56 2003 Joerg Schilling + * drv_sony.c 1.69 + * drv_philips.c 1.67 + * cdr_drv.c 1.33 + * cdrecord.h 1.142 + * drv_simul.c 1.46 + * drv_dvd.c 1.105 + * drv_jvc.c 1.79 + * drv_7501.c 1.14 + * drv_mmc.c 1.138 + cdr_format() Funktion neu + +Thu Apr 17 02:32:05 2003 Joerg Schilling + * drv_mmc.c 1.137 + load_media() fuer get_curprofile() im Silent Mode, wenn es ein CD Brenner ist dann wird nicht der CD-ROM Treiber returniert + +Thu Apr 17 01:10:51 2003 Joerg Schilling + * drv_mmc.c 1.136 + SCSI-3/MMC-3 medien Tests neu um DVD+ zu erkennen + +Thu Apr 17 00:04:06 2003 Joerg Schilling + * scsi_mmc.c 1.3 + Vermeiden von pname(profile) ohne #defne DRV_DVD + +Wed Apr 16 23:40:46 2003 Joerg Schilling + * drv_mmc.c 1.135 + mmc_getval() weiter nach hinten - nach Korrektur der Inquiry Daten fuer ATAPI + +Wed Apr 16 22:49:41 2003 Joerg Schilling + * drv_mmc.c 1.134 + Treiber ID Text (Kommentar) verbessert + +Wed Apr 16 22:42:59 2003 Joerg Schilling + * drv_sony.c 1.68 + Cue sheet Option auf 3 setzen + +Wed Apr 16 22:40:00 2003 Joerg Schilling + * cdrecord.1 1.75 + Hinweis auf mkisofs -print-size bei SAO/RAW + +Wed Apr 16 22:28:03 2003 Joerg Schilling + * cdr_drv.c 1.32 + SCSI-3/mmc-3 Support fuer DVD + DDCD Erkennung mit get_proflist() + +Wed Apr 16 22:25:56 2003 Joerg Schilling + * scsimmc.h 1.8 + struct rzone_info um lra_v erweitert + struct mmc_performance_header / struct mmc_performance / struct mmc_exceptions / struct mmc_write_speed / struct mmc_streaming neu + +Wed Apr 16 22:01:14 2003 Joerg Schilling + * cdrecord.h 1.141 + get_proflist()/get_wproflist() aus scsi_mmc.c neu + +Wed Apr 16 22:00:33 2003 Joerg Schilling + * scsi_mmc.c 1.2 + get_conflen()/get_profiles()/get_proflist()/get_wproflist() neu + +Wed Apr 16 00:49:27 2003 Joerg Schilling + * drv_mmc.c 1.133 + get_speeds_plextor() komplett in die Statistik Funktion verlagert + +Wed Apr 16 00:28:09 2003 Joerg Schilling + * scsi_mmc.c 1.1 + date and time created 03/04/15 23:28:09 by joerg + +Wed Apr 16 00:28:00 2003 Joerg Schilling + * cdrecord.h 1.140 + scsi_mmc.c Definitionen neu + +Wed Apr 16 00:12:54 2003 Joerg Schilling + * drv_mmc.c 1.132 + Trebertabellen aufgeraeumt + +Tue Apr 15 18:57:54 2003 Joerg Schilling + * cdrecord.h 1.139 + track_base(tp) Makro repariert (tp)->track statt (tp)->trackno + +Tue Apr 15 10:01:43 2003 Joerg Schilling + * drv_dvd.c 1.104 + TAO Fake beseitigt + +Sun Apr 13 21:54:15 2003 Joerg Schilling + * drv_sony.c 1.67 + #include timedefs.h fehlte + +Sun Apr 13 18:54:27 2003 Joerg Schilling + * drv_sony.c 1.66 + Erste SAO Implementierung (ohne MCN/ISRC/multi-session) + +Sun Apr 13 17:15:15 2003 Joerg Schilling + * drv_dvd.c 1.103 + * drv_simul.c 1.45 + * drv_jvc.c 1.78 + * drv_mmc.c 1.131 + * drv_7501.c 1.13 + * cdrecord.c 1.238 + * cdrecord.h 1.138 + * drv_philips.c 1.66 + cdr_abort_session() neu + +Sun Apr 13 17:10:44 2003 Joerg Schilling + * drv_mmc.c 1.130 + "Selected write speed:" -> "Last selected write speed:" + +Sun Apr 13 13:59:26 2003 Joerg Schilling + * scsi_cdr.c 1.129 + Intelligenteres scsi_load() kennt nun CDR_CADDYLOAD + +Sun Apr 13 13:54:27 2003 Joerg Schilling + * drv_philips.c 1.65 + Yamaha CDR-100 nun mit scsi_load() + +Sun Apr 13 13:36:00 2003 Joerg Schilling + * cdrecord.c 1.237 + Version -> 2.01a10, Neue Funktion print_drflags() + +Sun Apr 13 13:35:26 2003 Joerg Schilling + * cdrecord.h 1.137 + Kommentar verbessert + +Sun Apr 13 12:28:01 2003 Joerg Schilling + * cdrecord.c 1.236 + * scsi_cdr.c 1.128 + scsi_load()/scsi_unload() nun mit korrektem Return Wert (int statt BOOL) und Auswertung des Return Wertes in load_media()/unload_media() + +Fri Apr 11 15:31:30 2003 Joerg Schilling + * drv_mmc.c 1.129 + * drv_7501.c 1.12 + (*dp->cdr_gen_cue)() Aufruf nun ueber Pointer + +Fri Apr 11 15:27:44 2003 Joerg Schilling + * drv_dvd.c 1.102 + * drv_simul.c 1.44 + * drv_mmc.c 1.128 + * cdr_drv.c 1.31 + * cdrecord.h 1.136 + * drv_7501.c 1.11 + (*dp->cdr_send_cue)() nun mit cdr_t * Parameter + +Fri Apr 11 15:18:57 2003 Joerg Schilling + * drv_7501.c 1.10 + * drv_simul.c 1.43 + * drv_philips.c 1.64 + * drv_dvd.c 1.101 + * drv_mmc.c 1.127 + * drv_sony.c 1.65 + * drv_jvc.c 1.77 + * cdrecord.h 1.135 + * cdrecord.c 1.235 + Neue Funktion (*cdr_gen_cue)() + +Fri Apr 11 01:25:58 2003 Joerg Schilling + * drv_mmc.c 1.126 + get_speeds_plextor() nun mit 3 int * Parametern, Ausgabe der Maximalen Brenngeschwindigkeit in stats_mmc() + +Fri Apr 11 00:53:30 2003 Joerg Schilling + * cdrecord.c 1.234 + * cdrecord.h 1.134 + is_sao() & TI_SAO neu, checktsize() ueberprueft nun ob ein Track mit unbekannter Laenge in SAO/RAW mode vorhanden ist und bricht ab + +Thu Apr 10 21:18:42 2003 Joerg Schilling + * drv_philips.c 1.63 + * drv_simul.c 1.42 + * drv_7501.c 1.9 + * cdr_drv.c 1.30 + * cdrecord.h 1.133 + * drv_jvc.c 1.76 + * drv_dvd.c 1.100 + * drv_sony.c 1.64 + * scsi_cdr.c 1.127 + * drv_mmc.c 1.125 + * cdrecord.c 1.233 + cdr_check_recovery()/cdr_recover()/cdr_close_session() nun mit cdr_t * Parameter + +Thu Apr 10 19:19:22 2003 Joerg Schilling + * cdrecord.h 1.132 + Kommentar eingerueckt + +Thu Apr 10 19:15:16 2003 Joerg Schilling + * cdrecord.c 1.232 + * cdrecord.h 1.131 + * drv_sony.c 1.63 + * drv_simul.c 1.41 + * drv_philips.c 1.62 + * drv_mmc.c 1.124 + * drv_7501.c 1.8 + * drv_jvc.c 1.75 + * drv_dvd.c 1.99 + cdr_init() neu, cdr_speed_select() nun ohne "dummy" Parameter + +Thu Apr 10 15:32:14 2003 Joerg Schilling + * drv_mmc.c 1.123 + get_speeds_plextor() neu + +Sun Apr 6 15:49:07 2003 Joerg Schilling + * cdrecord.1 1.74 + Neue driveropts= speedread/singlesession/hidecdr + +Sun Apr 6 15:48:07 2003 Joerg Schilling + * cdrecord.c 1.231 + (*dp->cdr_set_speed_dummy)() Aufruf bei -setdropts zwischen cdr_opt1() und cdr_opt2() + +Sun Apr 6 15:45:45 2003 Joerg Schilling + * drv_mmc.c 1.122 + Support fuer Plextor PowerRec, SpeedReeed, SongleSession, HideCDR + +Sun Apr 6 02:19:35 2003 Joerg Schilling + * cdrecord.c 1.230 + * cdrecord.h 1.130 + #defines und Auswertung fuer CDR_SINGLESESS/CDR_HIDE_CDR/CDR_SPEEDREAD neu + +Sat Apr 5 22:35:50 2003 Joerg Schilling + * cdrecord.h 1.129 + * cdrecord.c 1.229 + * cdrecord.1 1.73 + Neue Option -setdropts + +Sat Apr 5 20:51:06 2003 Joerg Schilling + * drv_mmc.c 1.121 + mmc_load/mmc_unload() auskommentiert + +Sat Apr 5 20:46:51 2003 Joerg Schilling + * drv_mmc.c 1.120 + opt2_mmc() neu und Kode aus open_session_mmc() dorthin bewegt + +Sat Apr 5 20:43:36 2003 Joerg Schilling + * scsi_cdr.c 1.126 + * cdrecord.c 1.228 + Bessere Buffer underrun Erkennung und Beschreibung + +Sat Apr 5 15:49:22 2003 Joerg Schilling + * drv_sony.c 1.62 + * drv_mmc.c 1.119 + * drv_simul.c 1.40 + * drv_7501.c 1.7 + * cdrecord.c 1.227 + * drv_philips.c 1.61 + * drv_jvc.c 1.74 + * cdrecord.h 1.128 + * drv_dvd.c 1.97 + (*dp->cdr_opt2)(scgp, dp) neu + +Sat Apr 5 15:37:12 2003 Joerg Schilling + * cdrecord.c 1.226 + Buffer Underrun Vorhersage verbessert (kein loeschen am Trackanfang & zusaetzlicher Test auf leres RAM) + +Sat Apr 5 01:42:33 2003 Joerg Schilling + * drv_mmc.c 1.118 + Read Burn Proof Counter fuer Plextor + +Fri Apr 4 23:48:28 2003 Joerg Schilling + * scsi-unixware.c 1.33 + Reset Support neu + +Fri Apr 4 00:44:59 2003 Joerg Schilling + * cdrecord.c 1.225 + -packet impliziert nun nicht mehr TAO + +Fri Apr 4 00:35:13 2003 Joerg Schilling + * drv_7501.c 1.6 + cw7501__do_cue() nun korrekt LOCAL + +Fri Apr 4 00:30:05 2003 Joerg Schilling + * auinfo.c 1.18 + * subchan.c 1.16 + trackp->tracktype & TOC_MASK wegen TOCF_DUMMY/TOCF_MULTI + +Fri Apr 4 00:29:09 2003 Joerg Schilling + * drv_sony.c 1.61 + * drv_simul.c 1.39 + * drv_7501.c 1.5 + * drv_philips.c 1.60 + * cdrecord.h 1.127 + * cdrecord.c 1.224 + * drv_mmc.c 1.117 + * drv_jvc.c 1.73 + * drv_dvd.c 1.96 + cdr_open_session()/cdr_fixate() ohne multi/dummy Parameter -> track[0].tracktype + +Thu Apr 3 22:49:10 2003 Joerg Schilling + * drv_jvc.c 1.72 + * drv_dvd.c 1.95 + * wm_packet.c 1.21 + * cdrecord.c 1.223 + Casting wegen Signed/Unsigned Arithmetik bei ANSI C + +Thu Apr 3 22:32:30 2003 Joerg Schilling + * drv_sony.c 1.60 + * drv_7501.c 1.4 + * drv_simul.c 1.38 + * drv_dvd.c 1.94 + * drv_philips.c 1.59 + * drv_mmc.c 1.116 + * drv_jvc.c 1.71 + * cdrecord.c 1.222 + * cdrecord.h 1.126 + cdr_open_session()/cdr_fixate() Treiberinterface nun ohne toctype Parameter -> trackp[0]->tracktype + +Thu Apr 3 20:51:34 2003 Joerg Schilling + * fifo.c 1.43 + int -> Uint wegen Ansi C Vergleich + +Thu Apr 3 20:46:46 2003 Joerg Schilling + * clone.c 1.6 + first/last int -> Uint wegen Ansi C Vergleich + +Thu Apr 3 20:42:01 2003 Joerg Schilling + * subchan.c 1.15 + j int -> Uint wegen Ansi C Vergleich + +Thu Apr 3 18:16:00 2003 Joerg Schilling + * cdrecord.c 1.221 + Neue Option -lock + prtimediff() -> misc.c + Version -> 2.01a09 + +Thu Apr 3 18:15:00 2003 Joerg Schilling + * cdrecord.1 1.72 + Neue Option -lock + +Thu Apr 3 18:14:43 2003 Joerg Schilling + * misc.c 1.3 + prtimediff() aus cdrecord.c neu + +Thu Apr 3 18:14:05 2003 Joerg Schilling + * drv_mmc.c 1.115 + int/Uint Vergleiche gecastet + test auf tracksize < 0 vor do_cue() + Versuch zu erreichen dasz is_packet(trackp) nicht mehr is_tao(trackp) impliziert + +Thu Apr 3 18:11:45 2003 Joerg Schilling + * cdrecord.h 1.125 + F_DLCK & prtimediff() neu + +Thu Apr 3 18:11:22 2003 Joerg Schilling + * drv_7501.c 1.3 + Support fuer SAO neu + +Sun Mar 30 22:16:25 2003 Joerg Schilling + * drv_7501.c 1.2 + Schreibsupport fuer TAO + +Sun Mar 30 13:50:02 2003 Joerg Schilling + * cdrecord.c 1.220 + * drv_mmc.c 1.114 + Eingerueckt nach cstyle + +Sat Mar 29 20:27:16 2003 Joerg Schilling + * scsi-unixware.c 1.32 + Auswertung von scbp->sc_comp_code und Setzten von sp->error + +Thu Mar 27 12:11:17 2003 Joerg Schilling + * readcd.c 1.54 + meshpoints=# Option neu + +Thu Mar 27 01:15:30 2003 Joerg Schilling + * cdrecord.c 1.219 + 2002 -> 2003 + +Thu Mar 27 01:03:48 2003 Joerg Schilling + * cdr_drv.c 1.29 + cw7501 neu + +Thu Mar 27 01:02:47 2003 Joerg Schilling + * drv_7501.c 1.1 + date and time created 03/03/27 01:02:47 by joerg + +Thu Mar 27 00:53:40 2003 Joerg Schilling + * cdrecord.c 1.218 + Version -> 2.01a07, Unterdrueckung von "Warning: blockdesc secsize %d differs from cap secsize %d\n" wenn scgp->cap->c_bsize == 0 + +Thu Mar 27 00:45:34 2003 Joerg Schilling + * cdrecord.h 1.124 + Eingerueckt nach cstyle + +Thu Mar 27 00:43:06 2003 Joerg Schilling + * drv_mmc.c 1.113 + mmc_load()/mmc_unload() mit 2. Parameter cdr_t * + +Tue Mar 25 18:48:41 2003 Joerg Schilling + * scsi-qnx.c 1.2 + sccsid -> __sccsid + +Mon Mar 24 23:25:04 2003 Joerg Schilling + * cdrecord.c 1.217 + Version -> 2.01a06, Handler fuer SGIHUP/SIGTERM, cdr_underrun() neu + +Mon Mar 24 23:23:38 2003 Joerg Schilling + * scsi_cdr.c 1.125 + * cdrecord.h 1.123 + cdr_underrun() neu + +Mon Mar 24 13:01:28 2003 Joerg Schilling + * scsi-unixware.c 1.31 + Beseitigung von fdesc[MAX_SCG][MAX_TGT][MAX_LUN] und Verkleinerung von sdidevs[scg][tgt][lun] + Nun kann wirklich scg_open() mehrmals aufgerufen werden. + +Sun Mar 23 21:10:45 2003 Joerg Schilling + * scsi-unixware.c 1.30 + valid/atapi/initiator -> flags mit SDI_* Bit #defines + +Sun Mar 23 17:33:07 2003 Joerg Schilling + * scsi-unixware.c 1.29 + Besseres Verhalten fuer scgcheck + +Sun Mar 23 15:14:23 2003 Joerg Schilling + * scsi-unixware.c 1.28 + Eingerueckt wegen cstyle(1) + +Sun Mar 23 14:12:01 2003 Joerg Schilling + * scsihack.c 1.42 + Support fuer QNX neu + +Sun Mar 23 14:11:14 2003 Joerg Schilling + * scsi-qnx.c 1.1 + date and time created 03/03/23 14:11:14 by joerg + +Thu Mar 6 16:39:42 2003 Joerg Schilling + * fifo.c 1.42 + faio_wait_on_buffer() mit Prototype implementierung wegen SCO cc + +Thu Mar 6 16:27:52 2003 Joerg Schilling + * cdrecord.1 1.71 + Beschreibung fuer -xa1 -xa2, ... berichtigt + +Fri Feb 7 12:34:37 2003 Joerg Schilling + * cdrecord.1 1.70 + Schreibfehler beseitigt + +Sun Feb 2 14:13:07 2003 Joerg Schilling + * scsi-remote.c 1.12 + Umgestellt, damit es auch ohne rcmd() geht + +Tue Jan 28 01:19:39 2003 Joerg Schilling + * drv_mmc.c 1.112 + Workaround fuer LG TAO Audio Formware bug: audio_pause_len = 150 + +Tue Jan 7 14:09:28 2003 Joerg Schilling + * scsi_cdr.c 1.124 + Ausgabe Save/Set Modepages auch auf stderr wie Rest der Zeile + +Tue Jan 7 14:08:43 2003 Joerg Schilling + * drv_mmc.c 1.111 + set_mode_params() ist BOOL, daher ist Abfrage auf < 0 falsch + +Tue Dec 24 16:28:38 2002 Joerg Schilling + * cdrecord.1 1.69 + Version -> 2.0 + +Tue Dec 24 14:16:34 2002 Joerg Schilling + * cdrecord.c 1.216 + Mail Adresse -> schilling@fokus.fhg.de + Vermeidung von "Cannot write CD's >= 100 minutes.\n" bei DVDs + +Mon Dec 16 22:26:39 2002 Joerg Schilling + * cdrecord.1 1.68 + Mailing Lists geupdated, Hinweis auf cddb= bei den cdda2wav Beispielen + +*************** Release 2.0 ******************* + +Sat Nov 30 17:43:51 2002 Joerg Schilling + * readcd.c 1.53 + * cdrecord.c 1.215 + Version -> 2.0 + +Sat Nov 30 16:11:27 2002 Joerg Schilling + * cdrecord.c 1.214 + DVD-Pro Check for Tracksize-known only if ntracks > 0 + +Sat Nov 30 13:01:27 2002 Joerg Schilling + * drv_mmc.c 1.110 + Allow Medium removal after load Media for DVD/CD recognition as drecord -checkdrive would otherwise lock the tray if it has been open before + +Sat Nov 30 12:55:17 2002 Joerg Schilling + * scsi-osf.c 1.25 + Debug output with SCSI Status Byte + +Fri Nov 22 17:55:41 2002 Joerg Schilling + * cdrecord.1 1.67 + RSH= und RSCSI= documented for ssh(1) RSCSI + +Fri Nov 22 17:40:35 2002 Joerg Schilling + * scsi-remote.c 1.11 + Support for non-root rcmd() and ssh(2) + +Fri Nov 22 17:35:54 2002 Joerg Schilling + * fifo.c 1.41 + AmigaOS Support with ix_vfork()/ix_vfork_resume() and separate var buf_idx_reader for vfork() + +Thu Nov 21 22:28:57 2002 Joerg Schilling + * cdrecord.c 1.213 + New Option minbuf= + +Thu Nov 21 22:23:10 2002 Joerg Schilling + * cdrecord.1 1.66 + minbuf= Option new + +Tue Nov 19 19:13:34 2002 Joerg Schilling + * scsiopen.c 1.93 + Fix for Coredump with dev=/dev/rsr1c:@,0 + +Sun Nov 10 19:18:04 2002 Joerg Schilling + * diskid.c 1.36 + Orange Forum Embargo Warning only if mp->msf_min == 97 for DVDs + +Mon Nov 4 18:12:16 2002 Joerg Schilling + * fifo.c 1.40 + close(f) /dev/zero oly if /dev/zero has been opened + +Sun Nov 3 16:32:52 2002 Joerg Schilling + * scsi_cdr.c 1.123 + * cdrecord.h 1.122 + write_xscsi()/seek_scsi()/seek_g0()/seek_g1() new + +Sat Nov 2 22:11:55 2002 Joerg Schilling + * cdrecord.c 1.212 + Version -> 1.11a40, _POSIX_MEMLOCK/_POSIX_PRIORITY_SCHEDULING Test POSIX 2001 conformant + +Sun Oct 27 15:19:29 2002 Joerg Schilling + * cdrecord.c 1.211 + New Wait Feature free the IDE Busses if Source&Destination are on the same cable (use -immed) + +Sun Oct 27 14:57:11 2002 Joerg Schilling + * cdrecord.1 1.65 + New Wait (usleep) Feature for -immed documented + +Sun Oct 27 14:42:36 2002 Joerg Schilling + * cdrecord.h 1.121 + New Flag RF_WR_WAIT to actively free the IDE Busses via usleep() + +Sun Oct 27 02:26:26 2002 Joerg Schilling + * cdrecord.c 1.210 + * wm_packet.c 1.20 + * drv_jvc.c 1.70 + Change from trackp->padsize ->trackp->padsecs + +Sun Oct 27 02:02:38 2002 Joerg Schilling + * cdrecord.h 1.120 + Change from trackp->padsize ->trackp->padsecs + New Sektor based Makros Sminutes(s)/Sseconds(s)/Shseconds(s)/Sframes(s) + +Sun Oct 27 01:20:58 2002 Joerg Schilling + * cdrecord.1 1.64 + Better docukmentation for padsize= + +Sat Oct 26 23:13:47 2002 Joerg Schilling + * scsi_cdr.c 1.122 + Text Generic mmc2 DVD -> Generic mmc2 DVD-R/DVD-RW + +Sat Oct 26 20:21:15 2002 Joerg Schilling + * wm_packet.c 1.19 + Support printing the fill ratio of the drive buffer and the actual write speed + +Fri Oct 25 15:06:33 2002 Joerg Schilling + * drv_mmc.c 1.109 + ATIP printinf for speed better -> %2d (reserved val %2d) + +Fri Oct 25 15:05:21 2002 Joerg Schilling + * cdrecord.c 1.209 + pad_track() now shows Drive buffer fill% and speed + Verbose prinrting for write_track_data() and pad_track() unified + +Fri Oct 25 00:49:04 2002 Joerg Schilling + * cdrecord.c 1.208 + Warning for cdrecord blank=fast if drive does not like -> Try cdrecord blank=all + write_track_data() now computes trackp->isecsize from trackp->isecsize to trackp->secsize + +Fri Oct 25 00:18:19 2002 Joerg Schilling + * drv_mmc.c 1.108 + BURN-Free was not used -> BURN-Free was never needed + +Fri Oct 25 00:06:12 2002 Joerg Schilling + * drv_mmc.c 1.107 + Test for 0xFF:0xFF/0xFF with dsp->ds_maxblocks == 716730 -> dsp->ds_maxblocks == 1166730 because we now use forceposivive in msf_to_lba() + +Thu Oct 24 23:47:23 2002 Joerg Schilling + * drv_mmc.c 1.106 + di_to_dstat() now always sets dsp->ds_first_leadin to allow 2. setting for Yamaha AudioMaster + +Wed Oct 23 22:46:02 2002 Joerg Schilling + * cdrecord.c 1.207 + Version -> 1.11a39, Only cdrecord dev=help calls scg_help() no automatic printing if scg_open() fails + +Wed Oct 23 22:40:41 2002 Joerg Schilling + * cdrecord.1 1.63 + Many changes tp prepare for 2.0 + +Wed Oct 23 22:21:46 2002 Joerg Schilling + * scsi-linux-ata.c 1.4 + Workaround for Linux Kernel design bug: CDROM_SEND_PACKET stes errno to EINVAL if Sense Key is "Invalid Command" + +Mon Oct 21 19:20:33 2002 Joerg Schilling + * scsi-linux-sg.c 1.75 + /dev/sg* read loop again with 1000 loops but only if 'f' is a RAW device + Typo fixed + +Sun Oct 20 15:28:58 2002 Joerg Schilling + * scsi-linux-sg.c 1.74 + sg_clearnblock() new to alow to clear O_NONBLOCK directly after open(.., ...|O_NONBLOCK) + +Sat Oct 19 22:04:23 2002 Joerg Schilling + * cdrecord.c 1.206 + Version -> 1.11a38, Support for libscg Help + +Sat Oct 19 21:28:22 2002 Joerg Schilling + * scsiopen.c 1.92 + * scsihack.c 1.41 + scg_help() Funktion new + +Sat Oct 19 21:27:21 2002 Joerg Schilling + * scsitransp.c 1.85 + Version -> 0.7 + +Sat Oct 19 21:26:25 2002 Joerg Schilling + * scsi-wnt.c 1.29 + * scsi-vms.c 1.32 + * scsi-unixware.c 1.27 + * scsi-sun.c 1.76 + * scsi-sgi.c 1.35 + * scsi-remote.c 1.10 + * scsi-osf.c 1.24 + * scsi-os2.c 1.22 + * scsi-openserver.c 1.30 + * scsi-next.c 1.31 + * scsi-mac-iokit.c 1.4 + * scsi-linux-sg.c 1.73 + * scsi-linux-pg.c 1.42 + * scsi-linux-ata.c 1.3 + * scsi-hpux.c 1.30 + * scsi-bsd.c 1.41 + * scsi-bsd-os.c 1.27 + * scsi-beos.c 1.21 + * scsi-apollo.c 1.4 + * scsi-amigaos.c 1.3 + * scsi-aix.c 1.35 + scgo_help() Funktion new + +Sat Oct 19 19:14:05 2002 Joerg Schilling + * scsitransp.h 1.53 + Parameter tcomment new in __scg_help() + +Sat Oct 19 14:02:47 2002 Joerg Schilling + * scsitransp.h 1.52 + Help functions new + +Fri Oct 18 17:25:31 2002 Joerg Schilling + * scsi-linux-sg.c 1.72 + Modified Cleanup read() loop in sg_initdev() by request from Linus Torvalds + +Fri Oct 18 17:20:00 2002 Joerg Schilling + * scsi-sun.c 1.75 + open Warnung von error() auf js_fprintf((FILE *)scgp->errfile umgestellt + +Fri Oct 18 17:16:48 2002 Joerg Schilling + * scsiopen.c 1.91 + * scsi-linux-ata.c 1.2 + * scsi-sun.c 1.74 + Allow unified dev=ATAPI, dev=ATAPI:, dev=USCSI, dev=USCSI: + +Sun Oct 13 21:40:59 2002 Joerg Schilling + * scsi-linux-sg.c 1.71 + open(name, 2) -> O_RDWR.... + sg_initdev() with better loop to read possible rests from driver (requested by Linus Torvalds) + +Sun Oct 13 21:23:54 2002 Joerg Schilling + * scsi-sun.c 1.73 + * scsi-linux-pg.c 1.41 + open(name, 2) -> O_RDWR.... + +Sat Oct 12 13:53:52 2002 Joerg Schilling + * sector.c 1.11 + Initialize Testsector in encspeed() to make resulting speed independent from junk on the stack + +Thu Oct 10 23:43:33 2002 Joerg Schilling + * cdrecord.c 1.205 + Change wording from DAO -> SAO + +Wed Oct 9 19:36:09 2002 Joerg Schilling + * scsireg.h 1.28 + New device types for Inquiry + +Wed Oct 9 19:35:44 2002 Joerg Schilling + * scsitransp.c 1.84 + scg_fprintdev() New device types for Inquiry + +Tue Oct 8 00:57:50 2002 Joerg Schilling + * scsi-unixware.c 1.26 + Handle EBUSY for multiple opens + +Mon Oct 7 22:19:15 2002 Joerg Schilling + * sector.c 1.10 + * cdrecord.h 1.119 + * cdrecord.c 1.204 + Verbose printing of the LEC encoding speed -> encspeed() + +Sat Oct 5 22:07:27 2002 Joerg Schilling + * cdrecord.c 1.203 + call cdr_buffer_cap() in Silent mode to make sure buggy drives (CW-7585) will not print constantly error messages + +Sat Oct 5 18:07:46 2002 Joerg Schilling + * scsi-linux-ata.c 1.1 + date and time created 02/10/05 17:07:46 by joerg + +Sat Oct 5 17:48:27 2002 Joerg Schilling + * scsi-linux-sg.c 1.70 + Support for CDROM_SEND_PACKET in scsi-linux-ata.c new + SCSI Timeout now may be distinguished from SCSI selection Timeout by implementing a workarounf for a Linux kernel bug + +Sat Oct 5 00:02:52 2002 Joerg Schilling + * scsi-sun.c 1.72 + Do not open all /dev/scg* devices if not in SCAN mode + ENXIO for USCSI means selection Timeout + +Fri Oct 4 23:59:05 2002 Joerg Schilling + * scsi-vms.c 1.31 + Warn for missing Scanbus, up to 26 IDE Controller from Chip.Dancy@hp.com + +Wed Oct 2 21:44:22 2002 Joerg Schilling + * cdrecord.c 1.202 + Version -> 1.11a36, #ifdef HAVE_LIB_EDC_ECC to allow compilation without libedc + +Wed Oct 2 02:22:32 2002 Joerg Schilling + * fifo.c 1.39 + Allow again compilation with #undef FIFO + +Wed Oct 2 00:54:52 2002 Joerg Schilling + * scsiopen.c 1.90 + replace comma by semikolon + +Wed Oct 2 00:48:49 2002 Joerg Schilling + * scsi-vms.c 1.30 + gk_chan is Unsigned but there was a comparison <= 0 + scsi status scsi_sts now correct for ATAPI + +Sat Sep 28 20:36:58 2002 Joerg Schilling + * drv_mmc.c 1.105 + deflt_writemodes_mmc() now with fallback to SAO if TAO is not supported + +Sat Sep 28 14:53:33 2002 Joerg Schilling + * cdrecord.c 1.201 + -force Wirkung auf RAW Speed nur noch bis maximal das was eine CPU kann + Neue environment Variable "CDR_FORCERAWSPEED" + +Sat Sep 28 14:46:54 2002 Joerg Schilling + * sector.c 1.9 + EDC_SCRAMBLE_NOSWAP #define in old libedc new + +Fri Sep 27 17:39:00 2002 Joerg Schilling + * cdrecord.c 1.200 + Limit gracetime to 999, Do not use \b with wait time because seconds may use more than one column + +Fri Sep 27 16:40:46 2002 Joerg Schilling + * drv_simul.c 1.37 + DVD max speed -> 1000 + +Fri Sep 27 14:33:00 2002 Joerg Schilling + * cdrecord.c 1.199 + Drive current speed/Drive default speed/Drive max speed printing now with lverbose > 1 + Hint to Heiko with Encoding speed printing + +Fri Sep 27 14:30:18 2002 Joerg Schilling + * drv_mmc.c 1.104 + Max Speed in struct from 370 -> 372, + mmc_opthelp()/hasdrvopt()/get_justlink_ricoh() now with EXPORT + Bug with dp->cdr_dstat->ds_dr_cur_wspeed fixed, + set dp->cdr_speeddef/dp->cdr_speedmax from drive values + +Fri Sep 27 14:28:27 2002 Joerg Schilling + * drv_dvd.c 1.89 + Change to use new driveropts= method from drv_mmc.c + +Fri Sep 27 14:25:18 2002 Joerg Schilling + * drv_simul.c 1.36 + Max Speed for CD from 370 -> 372 + +Thu Sep 26 03:06:39 2002 Joerg Schilling + * scsi_cdr.c 1.121 + scsi_load()scsi_unload() now may be called with cdr_t * 0 + +Wed Sep 25 18:05:41 2002 Joerg Schilling + * drv_mmc.c 1.103 + scsi_blank()/scsi_close_tr_session()/scsi_flush_cache() with immed Flag + +Wed Sep 25 16:12:10 2002 Joerg Schilling + * cdrecord.h 1.117 + * cdrecord.c 1.198 + * drv_simul.c 1.35 + * drv_philips.c 1.58 + * scsi_cdr.c 1.120 + * drv_dvd.c 1.88 + start/stop, load/unload, flush_cache with immed Parameter + +Wed Sep 25 14:22:26 2002 Joerg Schilling + * drv_jvc.c 1.69 + * drv_dvd.c 1.87 + * drv_mmc.c 1.102 + * cdr_drv.c 1.28 + * cdrecord.c 1.197 + * cdrecord.h 1.116 + blank() driver function now weith cdr_t * parameter for F_IMMED + +Wed Sep 25 13:52:12 2002 Joerg Schilling + * cdrecord.c 1.196 + -immed new + +Wed Sep 25 13:51:28 2002 Joerg Schilling + * cdrecord.c 1.195 + F_DVD -> TI_DVD (was wrong) + +Wed Sep 25 13:13:11 2002 Joerg Schilling + * cdrecord.h 1.115 + F_DVD -> TI_DVD (was wrong), F_IMMED new + +Wed Sep 25 00:38:52 2002 Joerg Schilling + * cdrecord.c 1.194 + * cdrecord.h 1.114 + * drv_sony.c 1.59 + * drv_simul.c 1.34 + * drv_philips.c 1.57 + * drv_mmc.c 1.101 + * drv_jvc.c 1.68 + * drv_dvd.c 1.86 + close_track()/fixate() enhanced by cdr_t * Parameter + +Tue Sep 24 21:28:33 2002 Joerg Schilling + * drv_mmc.c 1.100 + mmc_set_speed() new to allow drives that don't like speed=1 + +Tue Sep 24 18:40:42 2002 Joerg Schilling + * cdrecord.c 1.193 + Version -> 1.11a35, Do not print Zeit/speed Statistics if writing did not yet start + +Tue Sep 24 18:36:56 2002 Joerg Schilling + * scsi_cdr.c 1.119 + Modify speed printing to include CD/DVD Speed + +Mon Sep 23 15:42:22 2002 Joerg Schilling + * drv_simul.c 1.33 + Simulate Next Writable Address (for TAO) + +Mon Sep 23 15:39:22 2002 Joerg Schilling + * cdrecord.c 1.192 + Move Comment out of #ifdef DRV_DVD + +Mon Sep 23 15:17:56 2002 Joerg Schilling + * cdrecord.c 1.191 + Fix Pregap handling for DVD (no 150 Sektors per Track) + +Sun Sep 22 01:35:18 2002 Joerg Schilling + * cdrecord.h 1.113 + F_DVD new + +Sun Sep 22 00:11:57 2002 Joerg Schilling + * drv_dvd.c 1.85 + Set DVD Flag in driverstructure because it is now used + +Sat Sep 21 23:59:25 2002 Joerg Schilling + * drv_simul.c 1.32 + Set DVD Flags, calculate DVD speed correctly, + correct real time spend in usleep() + +Sat Sep 21 01:33:16 2002 Joerg Schilling + * cdrecord.c 1.190 + Version -> 1.11a34, Late check for tracks == 0 only if -fix was not used + +Fri Sep 20 01:58:54 2002 Joerg Schilling + * auinfo.c 1.17 + -auinfo should be superceede -scms / -copy + +Thu Sep 12 17:16:35 2002 Joerg Schilling + * cdrecord.c 1.189 + Statistics order new and better, + Print new statistics even on abort + +Thu Sep 12 17:03:42 2002 Joerg Schilling + * cdrecord.h 1.112 + New Flags RF_DID_STAT/RF_DID_CDRSTAT + +Thu Sep 12 16:42:57 2002 Joerg Schilling + * drv_philips.c 1.56 + Modified -> reload_media() + +Thu Sep 12 15:52:20 2002 Joerg Schilling + * drv_mmc.c 1.99 + cdr_dstat->ds_dr_max_rspeed/cdr_dstat->ds_dr_cur_rspeed neu + cdr_dstat->ds_dr_max_speed/cdr_dstat->ds_dr_cur_speed -> cdr_dstat->ds_dr_max_wspeed/cdr_dstat->ds_dr_cur_wspeed + scsi_set_speed() with MMC-3 rotctl Parameter + +Thu Sep 12 15:47:01 2002 Joerg Schilling + * cdrecord.c 1.188 + Version -> 1.11a33, ds_dr_max_speed -> ds_dr_max_wspeed + +Thu Sep 12 15:43:36 2002 Joerg Schilling + * drv_dvd.c 1.84 + * scsi_cdr.c 1.118 + * cdrecord.h 1.111 + scsi_set_speed() mit MMC-3 rotctl Parameter + +Thu Sep 12 14:37:26 2002 Joerg Schilling + * drv_mmc.c 1.98 + dsp->ds_flags with DSF_HIGHSP_ERA / DSF_ULTRASP_ERA + New Speed Tabels for HS and UHS RW media + atip_printspeed() new + Print A1 ATIP Werte also in hex + Modify ATIP printout for UHS CD-RW + +Thu Sep 12 13:34:49 2002 Joerg Schilling + * cdrecord.c 1.187 + Driveropts print MMC,MMC-2,MMC-3 + -force now allows to write faster data in -raw Data + Checks for Ultra High speed CD-RW for old writers + Do not print average write speed if data size is unknown + +Thu Sep 12 13:27:10 2002 Joerg Schilling + * scsi_cdr.c 1.117 + Enhancements for MMC-2 & MMC-3 in -prcap (mode Page 2A) + +Wed Sep 11 21:23:48 2002 Joerg Schilling + * scsireg.h 1.27 + MMC-2 & MMC-3 enhancements for Mode Page 2A + +Wed Sep 11 20:47:35 2002 Joerg Schilling + * cdrecord.h 1.110 + CDR_MMC/CDR_MMC2/CDR_MMC3 new + +Wed Sep 11 15:13:20 2002 Joerg Schilling + * subchan.c 1.14 + end = 0 for useless GCC Warning 'end' might be uninitialized + +Wed Sep 11 15:01:55 2002 Joerg Schilling + * cdrecord.h 1.109 + trackp->dataoff/tracks/track/trackno -> Uchar + DSF_HIGHSP_ERA & DSF_ULTRASP_ERA new + CDR_ALLOC without top Bit for GCC Warning + +Wed Sep 11 14:59:46 2002 Joerg Schilling + * drv_dvd.c 1.83 + * auinfo.c 1.16 + Cast for trackp->track* -> Uchar + +Wed Sep 11 14:59:07 2002 Joerg Schilling + * drv_sony.c 1.58 + Constant 0xFFFFFFFF with #ifdef for K&R/ANSI + +Sun Sep 1 23:43:15 2002 Joerg Schilling + * cdrecord.c 1.186 + Print minimal Drive Buffer fill ratio + +Sun Sep 1 23:42:39 2002 Joerg Schilling + * drv_mmc.c 1.97 + DiskT@2 Support new + +Sun Sep 1 23:33:34 2002 Joerg Schilling + * cdrecord.h 1.108 + Several new ds_* Vars for better Statistics + +Sun Sep 1 21:27:35 2002 Joerg Schilling + * cdrecord.c 1.185 + cdrstats() now guesses Buffer underruns and prints average write speed + +Sun Sep 1 17:42:59 2002 Joerg Schilling + * drv_mmc.c 1.96 + cdr_stats() Function new + speed_select_mmc() with 2nd Parameter dp for FORCESPEED + driveropts=foesecpeed new + driveropts=tattooinfo new + driveropts=tattoofile=name new + hasdrvopt() fixed: missing break nach past recognised Option + +Sun Sep 1 16:50:22 2002 Joerg Schilling + * cdrecord.c 1.184 + Buffer Cap print every 1 MB + +Fri Aug 30 13:57:26 2002 Joerg Schilling + * cdrecord.c 1.183 + Version -> 1.11a32, CDR_DISKTATTOO new, (*dp->cdr_stats)(scgp, dp); for Burn-Free Statistics + +Fri Aug 30 13:42:33 2002 Joerg Schilling + * cdrecord.h 1.107 + New driverinterfacefunction cdr_stats() + CDR_DISKTATTOO new + +Fri Aug 30 13:41:21 2002 Joerg Schilling + * drv_sony.c 1.57 + * drv_simul.c 1.31 + * drv_philips.c 1.55 + * drv_jvc.c 1.67 + * drv_dvd.c 1.82 + New driverinterfacefunction cdr_stats() + +Thu Aug 29 21:40:34 2002 Joerg Schilling + * drv_sony.c 1.56 + * drv_simul.c 1.30 + * drv_philips.c 1.54 + * drv_jvc.c 1.66 + * drv_dvd.c 1.81 + * cdrecord.h 1.106 + * cdrecord.c 1.182 + New Parameter cdr_t *dp for cdr_set_speed_dummy() for "forcespeed" + +Thu Aug 29 17:12:40 2002 Joerg Schilling + * mmcvendor.h 1.2 + link_counter is [2]. + +Mon Aug 26 17:47:17 2002 Joerg Schilling + * drv_mmc.c 1.95 + Turning... messages -> stdout + +Mon Aug 26 01:56:39 2002 Joerg Schilling + * drv_mmc.c 1.94 + JustLink Support new + +Mon Aug 26 01:22:08 2002 Joerg Schilling + * mmcvendor.h 1.1 + date and time created 02/08/26 00:22:08 by joerg + +Tue Aug 20 01:11:19 2002 Joerg Schilling + * drv_mmc.c 1.93 + mmc_opt1() new + Yamaha Audio Master Support new + Be more careful with test_write (-dummy) in deflt_writemodes_mmc() + Check driveropts= already in attach_mmc() and turn into flags + +Tue Aug 20 00:06:22 2002 Joerg Schilling + * cdrecord.c 1.181 + Call dp->cdr_opt1() _before_ set speed/dummy and before the first Size Check + +Mon Aug 19 02:30:52 2002 Joerg Schilling + * cdrecord.c 1.180 + Do not clear ds_cdrflags after attach() + +Mon Aug 19 01:12:18 2002 Joerg Schilling + * cdrecord.c 1.179 + driveropts=help new in short usage() + +Mon Aug 19 00:45:49 2002 Joerg Schilling + * cdrecord.h 1.105 + * drv_dvd.c 1.80 + * drv_simul.c 1.29 + * drv_jvc.c 1.65 + * drv_sony.c 1.55 + * drv_philips.c 1.53 + cdr_t->cdr_opt1() new + +Mon Aug 19 00:40:47 2002 Joerg Schilling + * cdrecord.c 1.178 + dataoff = 16 as Default in autoaudio to allow cdrecord -raw to work without -data + +Mon Aug 19 00:34:46 2002 Joerg Schilling + * cdrecord.c 1.177 + Call (*dp->cdr_opt1)(scgp, dp) for Yamaha Audio Master, then 2. Check for size + +Sat Aug 17 01:13:39 2002 Joerg Schilling + * drv_mmc.c 1.92 + Yamaha Audio Master recognition, Varirec in driveropts=help, Varirec recognition + +Sat Aug 17 00:52:44 2002 Joerg Schilling + * cdrecord.h 1.104 + Calling sequence comment new + +Sat Aug 17 00:04:28 2002 Joerg Schilling + * sector.c 1.8 + Max RAW speed in metering raised from 100x -> 1000x + +Fri Aug 16 02:39:01 2002 Joerg Schilling + * cdrecord.c 1.176 + * cdrecord.h 1.103 + CDR_VARIREC / CDR_AUDIOMASTER / CDR_FORCESPEED new + +Wed Aug 14 23:43:34 2002 Joerg Schilling + * cdrecord.c 1.175 + Version -> 1.11a30, Speed test for RAW data sectors + +Wed Aug 14 20:50:55 2002 Joerg Schilling + * defaults.c 1.9 + Allow Space as separator in /etc/default/cdrecord + +Wed Aug 14 01:04:46 2002 Joerg Schilling + * cdrecord.h 1.102 + * sector.c 1.7 + encspeed() new + +Tue Aug 13 23:45:22 2002 Joerg Schilling + * sector.c 1.6 + HAVE_LIB_EDC_ECC/HAVE_NEW_LIB_EDC/CLONE_WRITE new + +Tue Jul 30 00:22:27 2002 Joerg Schilling + * cdrecord.c 1.174 + Version ->1.11a28, tracksize/secsize ->itracksize/isecsize for debug printf + +Mon Jul 29 22:22:12 2002 Joerg Schilling + * cdrecord.h 1.101 + track_base() Macro new, typedef struct ofile ofile_t new + +Mon Jul 29 21:58:12 2002 Joerg Schilling + * subchan.c 1.13 + Shift ISRC & MCN by one to the end if the are on an index change + +Sun Jul 28 23:19:55 2002 Joerg Schilling + * drv_simul.c 1.28 + Flags with allen possible write modi and with CDR_TRAYLOAD to avoid + +Sun Jul 28 13:54:08 2002 Joerg Schilling + * subchan.c 1.12 + better comment + +Thu Jul 25 03:25:39 2002 Joerg Schilling + * subchan.c 1.11 + Support for ISRC/MCN in RAW Mode new (but witout index shift) + +Tue Jul 23 23:47:58 2002 Joerg Schilling + * subchan.c 1.10 + First loop in fillsubch() removed because it is identical to second loop + +Tue Jul 23 23:32:31 2002 Joerg Schilling + * subchan.c 1.9 + fillsubch() now coeerect for audio Pregap between Tracks korrekt with relative time counting downwards + +Sun Jul 21 18:21:24 2002 Joerg Schilling + * drv_mmc.c 1.91 + set dsp->{ds_disktype!ds_trfirst!ds_trlast!ds_trfirst_ls} from dip->* + Do not cast malloc() anymore + Check write_cdtext() Returncode + Prepare for just Link + +Sun Jul 21 18:13:25 2002 Joerg Schilling + * drv_dvd.c 1.79 + set CDR_BURNFREE Flag, + set dsp->{ds_disktype!ds_trfirst!ds_trlast!ds_trfirst_ls} from dip->* + +Sun Jul 21 18:07:21 2002 Joerg Schilling + * cdrecord.c 1.173 + Version -> 1.11a27, + Define Warning that needs to be printed if Source has been changed, + Better messages for wrong DVD-RW write speed, reload_media() at end Ende of RAW Write + +Sun Jul 21 17:52:54 2002 Joerg Schilling + * scsi_cdr.c 1.116 + * auinfo.c 1.15 + malloc() Cast removed + +Sun Jul 21 17:51:44 2002 Joerg Schilling + * drv_sony.c 1.54 + dsp->ds_diskid now is UInt32_t + +Sun Jul 21 17:44:11 2002 Joerg Schilling + * cdrecord.h 1.100 + struct disk_status with Typen from utypes.h + +Mon Jul 8 00:31:04 2002 Joerg Schilling + * wm_session.c 1.4 + * wm_packet.c 1.18 + * subchan.c 1.8 + * fifo.c 1.38 + * drv_mmc.c 1.90 + * drv_jvc.c 1.64 + * clone.c 1.5 + * cdrecord.h 1.99 + * cdrecord.c 1.172 + 'tracks' outside driver interface removed and replaced by trackp->tracks + +Sun Jul 7 22:30:24 2002 Joerg Schilling + * drv_jvc.c 1.63 + Better rebuild old driver interface in next_wr_address_jvc() + +Sun Jul 7 22:28:35 2002 Joerg Schilling + * wm_packet.c 1.17 + * drv_mmc.c 1.89 + * cdr_drv.c 1.27 + * cdrecord.h 1.98 + * cdrecord.c 1.171 + * drv_sony.c 1.53 + * drv_simul.c 1.27 + * drv_philips.c 1.52 + * drv_jvc.c 1.62 + * drv_dvd.c 1.77 + trackno/tracks Parameter in driverinterface removed for new Struct Member + +Sat Jul 6 21:19:22 2002 Joerg Schilling + * cdrecord.c 1.170 + * cdrecord.h 1.97 + track_t now with tracks and track for simplified driverinterface + +Sat Jul 6 18:20:27 2002 Joerg Schilling + * cdrecord.h 1.96 + * cdrecord.c 1.169 + * drv_sony.c 1.52 + * drv_simul.c 1.26 + * drv_philips.c 1.51 + * drv_mmc.c 1.88 + * drv_jvc.c 1.61 + * drv_dvd.c 1.76 + cdr_speeddef/cdr_speedmax new and do not default to speed= 1 but to cdr_speeddef + +Fri Jul 5 23:11:39 2002 Joerg Schilling + * cdrecord.c 1.168 + Version -> 1.11a26 + wm2name[] with better systematics + Bugfix for High Speed CD-RW that could not be written anymore at 10x speed + New test for too slow writing of a CD-RW + Modename for blank only now is "BLANK" + Text: write XXX mode -> real XXX mode + SAO & RAW start (leadin) Code -> drv_mmc.c + Correctly print the current DVD writespeed + +Fri Jul 5 21:36:25 2002 Joerg Schilling + * cdrecord.h 1.95 + New driverfunction write_leadin, WM_ * Macros with better system, + new Macro wm_base(), + RF_LEADIN new + +Fri Jul 5 21:31:48 2002 Joerg Schilling + * drv_mmc.c 1.87 + New driverfunction write_leadin_mmc() with Code from cdrecord main function + +Fri Jul 5 21:26:04 2002 Joerg Schilling + * drv_sony.c 1.51 + * drv_simul.c 1.25 + * drv_philips.c 1.50 + * drv_jvc.c 1.60 + * drv_dvd.c 1.75 + New driverfunction write_leadin as dummy + +Thu Jul 4 13:01:36 2002 Joerg Schilling + * cdrecord.c 1.167 + Version -> 1.11a25 + Print Writemodes (new) + set_wrmode() new + restructuring: cdr_t->cdr_dstat is now used + dp->cdr_dstat->ds_cdrflags |= RF_PRATIP new + Check for ultra low speed media in High Speed writer + Check for high speed media in Low Speed writer + Avoid that cdrecord -- speed=8 causes speed=8 to be ignored as file type arg + +Thu Jul 4 12:55:52 2002 Joerg Schilling + * cdrecord.h 1.94 + restructuring: cdr_t->cdr_dstat is now used + New Write Mode WM_* definitions + +Thu Jul 4 12:53:14 2002 Joerg Schilling + * drv_dvd.c 1.74 + * drv_mmc.c 1.86 + * drv_philips.c 1.49 + * drv_sony.c 1.50 + Check for dp->cdr_dstat->ds_cdrflags & RF_PRATIP + Fill dsp->ds_flags |= DSF_ERA and dsp->ds_at_*_speed + +Tue Jul 2 19:55:47 2002 Joerg Schilling + * drv_sony.c 1.49 + * drv_simul.c 1.24 + * drv_philips.c 1.48 + * drv_jvc.c 1.59 + * cdr_drv.c 1.26 + * drv_mmc.c 1.85 + * drv_dvd.c 1.73 + dstat_t * now is a Member of cdr_t -> better handling of special funcs + +Tue Jul 2 15:18:31 2002 Joerg Schilling + * drv_mmc.c 1.84 + get_atip() now is always usable (not only if PRINT_ATIP has been defined) + +Sun Jun 16 15:58:37 2002 Joerg Schilling + * scsi_cdr.c 1.115 + Comment -> mmc-2 + +Fri May 31 22:09:39 2002 Joerg Schilling + * scsi_cdr.c 1.114 + wait_unit_ready() fast Abort even if k == SC_MEDIUM_ERROR + +Wed May 29 01:43:13 2002 Joerg Schilling + * scsi-wnt.c 1.28 + Better printf() format strings for DWORD + +Wed May 29 01:02:28 2002 Joerg Schilling + * cdtext.h 1.3 + List of language codes enhanced + +Wed May 29 00:55:22 2002 Joerg Schilling + * fifo.c 1.37 + palign() Macro with (UIntptr_t) Cast + +Wed May 29 00:54:26 2002 Joerg Schilling + * cdrecord.c 1.166 + Version -> 1.11a24, gracetime= in usage(), printf() Format correkt for bmtime() + +Wed May 29 00:51:56 2002 Joerg Schilling + * cdrecord.1 1.62 + gracetime= new + +Wed May 29 00:50:03 2002 Joerg Schilling + * cdtext.c 1.8 + Avoid Coredump if a single .inf File is missing and trackp[i].text is NULL -> ->textcodes does not work + +Mon May 20 17:08:41 2002 Joerg Schilling + * scsi-aix.c 1.34 + palign() -> with UIntptr_t cast + +Mon May 20 16:38:23 2002 Joerg Schilling + * scsi-remote.c 1.9 + avoid Integeroverflow with %.*s and 64 bit + +Mon May 20 14:28:12 2002 Joerg Schilling + * scsi-sun.c 1.71 + Cast (int)req.uscsi_buflen/(int)req.uscsi_resid forr 64 bit + +Mon May 13 02:02:09 2002 Joerg Schilling + * cdrecord.c 1.165 + Version -> 1.11a23, + Flush Cache with exit() in Silent Mode to avoid problem with cdrecord -toc and CD-ROMs + +Mon May 13 02:00:49 2002 Joerg Schilling + * fifo.c 1.36 + * drv_mmc.c 1.83 + * drv_jvc.c 1.58 + * drv_dvd.c 1.71 + * cdrecord.h 1.93 + New Typ tsize_t instead of off_t for Track size Vars > sizeof(long) on non-largefile OS + +Sat May 4 21:55:38 2002 Joerg Schilling + * cdrecord.c 1.164 + Avoid that abort via ^C kills a running SCSI Command + +Sat May 4 21:42:56 2002 Joerg Schilling + * scsitransp.c 1.83 + * scsitransp.h 1.51 + Callback Function at Ende of SCSI Command + +Sat May 4 18:10:05 2002 Joerg Schilling + * cdrecord.c 1.163 + Version -> 1.11a22 + gracetime= Option new + Now use geterrno()/seterrno() + reload_media() reads from stdder if input is from stdin + +Sat May 4 16:00:13 2002 Joerg Schilling + * cdrecord.c 1.162 + printf() Formats enhanced to get non jumping output with DVDs + +Sat May 4 15:36:45 2002 Joerg Schilling + * drv_dvd.c 1.70 + always set CDR_TAO|CDR_SAO in cdr_flags to allow speudo-DAO Mode + +Sat May 4 15:34:41 2002 Joerg Schilling + * cdrecord.h 1.92 + MIN_GRACE_TIME new + +Sat Apr 20 22:29:26 2002 Joerg Schilling + * fifo.c 1.35 + Now use geterrno()/seterrno() + +Tue Apr 16 19:20:40 2002 Joerg Schilling + * scsierrs.c 2.28 + New Errorstrings from 29.5.2001 + +Tue Apr 9 22:48:58 2002 Joerg Schilling + * diskid.c 1.35 + Embargo Message now better + +Tue Apr 9 22:41:41 2002 Joerg Schilling + * cdrecord.h 1.91 + F_STDIN Flag new + +Sat Mar 30 12:26:12 2002 Joerg Schilling + * drv_dvd.c 1.69 + Make drecord -atip print useful things + +Wed Mar 27 23:36:26 2002 Joerg Schilling + * drv_dvd.c 1.68 + maxblocks computing corrected (now even works with Panasonic) + +Tue Mar 26 19:18:31 2002 Joerg Schilling + * subchan.c 1.7 + create SCMS Bit + set COPY Bit in TOC and sub channels + +Tue Mar 26 19:10:32 2002 Joerg Schilling + * cdrecord.c 1.161 + Version -> 1.11a19 + +Tue Mar 26 19:07:15 2002 Joerg Schilling + * auinfo.c 1.14 + Albumperformer= new + +Tue Mar 26 19:02:58 2002 Joerg Schilling + * cdtext.c 1.7 + textfile= not-existent caused a Coredump + +Sun Mar 24 23:39:28 2002 Joerg Schilling + * cdrecord.c 1.160 + SCMS and Copy permitted printing new, Version -> 1.11a18 + +Sun Mar 24 23:38:11 2002 Joerg Schilling + * auinfo.c 1.13 + SCMS as new value for Copy_permitted= + +Sun Mar 10 00:24:19 2002 Joerg Schilling + * cdrecord.c 1.159 + Print real write speed + +Sat Mar 9 23:21:05 2002 Joerg Schilling + * drv_mmc.c 1.82 + remiove typo in hasdrvopt() + +Sat Mar 9 23:03:00 2002 Joerg Schilling + * drv_mmc.c 1.81 + first VariRec Support + +Sat Mar 9 21:15:48 2002 Joerg Schilling + * drv_dvd.c 1.65 + Burn-PROOF Support new, try tp make Panasonic DVD-R working + +Sat Mar 9 20:20:16 2002 Joerg Schilling + * cdrecord.c 1.158 + IS_SCHILY_XCONFIG new, Short Usage with susage() new + +Fri Mar 8 16:48:58 2002 Joerg Schilling + * cdrecord.c 1.157 + Version print Lizens better, -cdi sets toctype + +Fri Mar 8 16:46:54 2002 Joerg Schilling + * scsitransp.c 1.82 + Version -> 0.6 + +Tue Mar 5 23:34:46 2002 Joerg Schilling + * defaults.c 1.8 + NULL Pointer for args is now OK to allow to be used with readcd + +Tue Mar 5 23:32:00 2002 Joerg Schilling + * cdrecord.h 1.90 + getnum()/getllnum() from cdrecord.c -> getnum.c + +Tue Mar 5 23:26:31 2002 Joerg Schilling + * cdrecord.c 1.156 + Version -> 1.11a17 + getnum()/getllnum() -> getnum.c + cdr_defaults() changed to allow to be used with readcd.c + +Tue Mar 5 23:20:48 2002 Joerg Schilling + * getnum.c 1.1 + date and time created 02/03/05 23:20:48 by joerg + +Mon Mar 4 23:42:43 2002 Joerg Schilling + * diskid.c 1.34 + * drv_mmc.c 1.80 + * drv_dvd.c 1.64 + * scsi_cdr.c 1.113 + * drv_simul.c 1.23 + * fifo.c 1.34 + * crc16.c 1.5 + * crc16.h 1.3 + * cdrecord.h 1.89 + Copyright -> 2002 + +Mon Mar 4 23:32:08 2002 Joerg Schilling + * cdtext.h 1.2 + Comment for Text Language code now better + +Mon Mar 4 23:21:31 2002 Joerg Schilling + * cdrecord.c 1.155 + better comment for Version printing for not working Branches + +Mon Mar 4 22:43:47 2002 Joerg Schilling + * cdrecord.c 1.154 + Comments for Sector size + +Mon Mar 4 22:42:12 2002 Joerg Schilling + * defaults.c 1.7 + Copyright -> 2002 + new Function open_cdrdefaults(), + Comment that states that "/etc/default/cdrecord" may not be changed + +Fri Mar 1 22:37:21 2002 Joerg Schilling + * diskid.c 1.33 + Better Text for unknown ID Codes + +Thu Feb 28 23:04:45 2002 Joerg Schilling + * auinfo.c 1.12 + readtstr() now looks for rightmost ' from right to left, + readtag("CDINDEX_DISCID=") -> readtstr("CDINDEX_DISCID=") + +Sun Feb 24 15:44:34 2002 Joerg Schilling + * cdrecord.c 1.153 + Copyright -> 2002 + +Sat Feb 23 22:00:51 2002 Joerg Schilling + * cdtext.c 1.6 + First Support for CD-Text Synthesis with new functions text_txt()/packtext()/anytext()/fillup_pack()/fillpack() + +Sat Feb 23 21:44:33 2002 Joerg Schilling + * cdtext.h 1.1 + date and time created 02/02/23 21:44:33 by joerg + +Sat Feb 23 21:21:10 2002 Joerg Schilling + * cdrecord.1 1.61 + -text/textfile= Options documented + +Sat Feb 23 21:17:42 2002 Joerg Schilling + * cdrecord.c 1.152 + Version -> 1.11a15, Option -text new, char * textfile not global anymore + +Sat Feb 23 21:10:53 2002 Joerg Schilling + * auinfo.c 1.11 + First CD-Text Support + +Sat Feb 23 17:24:48 2002 Joerg Schilling + * cdrecord.h 1.88 + void *text new in struct track, packtext() Prototype new + +Sat Feb 23 16:01:50 2002 Joerg Schilling + * drv_mmc.c 1.79 + CD-Text Cue sheet for Lead-in does not depend anymore from char *textfile but from trackp[0].flags & TI_TEXT + +Wed Feb 20 19:39:39 2002 Joerg Schilling + * scsi_cdr.c 1.112 + * drv_dvd.c 1.63 + * drv_simul.c 1.22 + * fifo.c 1.33 + #ifndef DEBUG around #define DEBUG + +Tue Feb 19 22:10:23 2002 Joerg Schilling + * cdtext.c 1.5 + setuptextdata() new + +Fri Feb 15 00:46:56 2002 Joerg Schilling + * crc16.h 1.2 + * crc16.c 1.4 + flip_crc_error_cor() with bsize Parameter and EXPORT instead of LOCAL + cdtext_crc_ok() removed -> cdtext.c + +Fri Feb 15 00:42:47 2002 Joerg Schilling + * cdtext.c 1.4 + Flip error correction for Text CRC correction + Automatic Text Size Header recognition + +Sun Feb 10 12:43:07 2002 Joerg Schilling + * scsi-openserver.c 1.29 + MAX-DMA -> 63kB, -scanbus contolled by env Vars + +Sat Feb 9 17:29:02 2002 Joerg Schilling + * diskid.c 1.32 + Warning for guessed IDs + +Tue Jan 29 20:46:42 2002 Joerg Schilling + * diskid.c 1.31 + Removed wrong (now superfluous) IDs + +Thu Jan 24 00:03:25 2002 Joerg Schilling + * diskid.c 1.30 + "Advanced Digital Media", "Moser Baer India Limited", "NAN-YA Plastics Corporation", "SHENZEN SG&GAST DIGITAL OPTICAL DISCS" new from Plextools binary + m_grandadvance[] was superfluous (m_grandadv[]) + "WEALTH FAIR INVESTMENT LIMITE" typo fixed (D missing). + +Fri Jan 18 12:43:58 2002 Joerg Schilling + * scsi-linux-sg.c 1.69 + do not try to use the PG driver if open(device) fails + +Fri Dec 7 22:40:31 2001 Joerg Schilling + * scsi_cdr.c 1.111 + scsi_in_progress() with additional sense qualifier 0x04 for CyberDrive + +Sun Dec 2 15:42:53 2001 Joerg Schilling + * scsi-beos.c 1.20 + Typo removed, Support for BeOS 5 + +Sun Dec 2 15:37:36 2001 Joerg Schilling + * scsi-amigaos.c 1.2 + Reworked the error handling code + +Sun Dec 2 13:44:43 2001 Joerg Schilling + * scsi-amigaos.c 1.1 + date and time created 01/12/02 13:44:43 by joerg + +Tue Nov 27 20:25:39 2001 Joerg Schilling + * scsihack.c 1.40 + Copyright + 2001 + +Tue Nov 27 20:24:18 2001 Joerg Schilling + * scsihack.c 1.39 + scsi-amigaos.c new + +Tue Nov 27 02:10:34 2001 Joerg Schilling + * cdrecord.c 1.151 + NEED_SYS_SOCKET_H for BeOS new + Version -> 1.11a13 + cdr_buffer_cap() environment for Plasmon RF41xx better + +Tue Nov 27 02:08:47 2001 Joerg Schilling + * drv_philips.c 1.47 + Comment for buffer_cap dummy function for the Plasmon RF41xx better + +Tue Nov 13 16:17:05 2001 Joerg Schilling + * cdrecord.h 1.87 + * drv_dvd.c 1.62 + * cdrecord.c 1.150 + New Flag DSF_DVD, better overcapacity output for DVD + +Sun Nov 11 18:30:47 2001 Joerg Schilling + * drv_dvd.c 1.61 + Comment for ACARD TECH AEC-7720 ATAPI<->SCSI adaptor better + +Sun Nov 11 17:53:42 2001 Joerg Schilling + * scsi-remote.c 1.8 + Test HAVE_RCMD new + +Thu Nov 1 19:15:46 2001 Joerg Schilling + * drv_simul.c 1.21 + Now using timedefs.h + +Wed Oct 31 19:29:35 2001 Joerg Schilling + * scsi_cdr.c 1.110 + For ACARD TECH AEC-7720 ATAPI<->SCSI adaptor read Mode Page list only in debug mode + +Wed Oct 31 00:24:58 2001 Joerg Schilling + * scsi_cdr.c 1.109 + sense_secsize() now calles mode_sense() first with 12 Bytes and again with 0xFE Bytes for Moge Page List + +Wed Oct 31 00:17:27 2001 Joerg Schilling + * drv_mmc.c 1.78 + check_writemodes_mmc() -> EXPORT, read_dvd_structure() now with mit 32 byte instead of 15 bytes len Parameter + +Wed Oct 31 00:06:47 2001 Joerg Schilling + * cdrecord.h 1.86 + Prototyp for check_writemodes_mmc() + +Tue Oct 30 23:12:03 2001 Joerg Schilling + * scsireg.h 1.26 + cd_mode_page_05 intel byteorder link_size was wrong + +Tue Oct 30 21:36:53 2001 Joerg Schilling + * cdrecord.c 1.147 + DVD Check code did code exit() for non MMC CD writers + version -> 1.11a10 + +Mon Oct 29 19:12:29 2001 Joerg Schilling + * scsi-mac-iokit.c 1.3 + Include Liste reworked + +Mon Oct 29 18:57:46 2001 Joerg Schilling + * cd_misc.c 1.10 + * misc.c 1.2 + * modes.c 1.24 + * diskid.c 1.29 + * drv_simul.c 1.20 + * fifo.c 1.32 + * wm_track.c 1.3 + * wm_session.c 1.3 + * wm_packet.c 1.16 + avoid sys/types.h + +Sat Oct 27 02:56:16 2001 Joerg Schilling + * scsi-remote.c 1.7 + Test for HAVE_NETDB_H for rcmd() + +Sat Oct 27 02:55:30 2001 Joerg Schilling + * scsierrs.c 2.27 + #include for size_t for snprintf() + +Sat Oct 27 02:53:49 2001 Joerg Schilling + * fifo.c 1.31 + Test for HAVE_FORK new + +Sat Oct 27 02:53:18 2001 Joerg Schilling + * cdtext.c 1.3 + casts because sizeof() on MacOS X is long + +Thu Oct 25 16:19:08 2001 Joerg Schilling + * scsi-mac-iokit.c 1.2 + Unitnitialised Var dict, plugInResult format string ... GCC error removed + +Thu Oct 25 02:03:56 2001 Joerg Schilling + * scsihack.c 1.38 + Support for MaxOS X (Darwin-1.4) + +Thu Oct 25 02:03:11 2001 Joerg Schilling + * scsi-mac-iokit.c 1.1 + date and time created 01/10/25 01:03:11 by joerg + +Wed Oct 17 19:40:22 2001 Joerg Schilling + * cdrecord.c 1.146 + initialize scgp with NUL + brackets around if (p = senv_field(6)) + +Tue Oct 16 17:03:53 2001 Joerg Schilling + * drv_dvd.c 1.57 + * cdrecord.c 1.144 + * cdrecord.h 1.85 + * drv_simul.c 1.19 + * drv_sony.c 1.48 + * drv_philips.c 1.46 + * drv_mmc.c 1.77 + * drv_jvc.c 1.57 + New Structuremember cdr_cmdflags in cdr_t + +Tue Oct 16 15:57:05 2001 Joerg Schilling + * cdrecord.c 1.143 + Better error messages for DVD Demo Mode > 1 GB + +Wed Oct 10 23:04:03 2001 Joerg Schilling + * cdrecord.c 1.139 + number() corrected - had wrong if/then/else Structure for T/P/G Multiplyer + +Tue Oct 9 02:19:36 2001 Joerg Schilling + * cdrecord.c 1.138 + sys/types.h & sys/stat.h -> statdefs.h, -> 1.11a09 + +Tue Oct 9 01:42:05 2001 Joerg Schilling + * audiosize.c 1.18 + * isosize.c 1.8 + sys/types.h & sys/stat.h -> statdefs.h + +Sun Oct 7 21:27:14 2001 Joerg Schilling + * scsi-linux-pg.c 1.40 + * scsi-linux-sg.c 1.68 + Better error messages for Scanbus if /dev/sg* or /dev/pg* cannot be opened + +Sun Oct 7 21:03:23 2001 Joerg Schilling + * drv_mmc.c 1.76 + Modifications to allow recognition of CD/DVD writer + +Sun Oct 7 20:41:51 2001 Joerg Schilling + * cdr_drv.c 1.25 + xdebug for DVD/CD writer recognition + +Sun Oct 7 19:01:25 2001 Joerg Schilling + * drv_dvd.c 1.55 + read_dvd_structure() from drv_dvd.c -> scsi_cdr.c for Pioneer A03 DVD-R/CD-R + reload_media() only if writing later + +Sun Oct 7 13:35:21 2001 Joerg Schilling + * scsi_cdr.c 1.108 + * cdrecord.h 1.84 + read_dvd_structure() from drv_dvd.c -> scsi_cdr.c for Pioneer A03 DVD-R/CD-R + +Thu Sep 27 19:01:30 2001 Joerg Schilling + * scsidefs.h 1.27 + #undef DEV_UNKNOWN for True64 + +Thu Sep 13 19:10:03 2001 Joerg Schilling + * scsi_cdr.c 1.107 + * cdr_drv.c 1.24 + * drv_dvd.c 1.54 + * cdrecord.h 1.83 + Modifications to allow recognition of CD/DVD writer + +Thu Sep 13 19:01:46 2001 Joerg Schilling + * cdrecord.c 1.137 + cdrecord -version now may print cdrecord-Clone, + Modifications to allow recognition of CD/DVD writer + +Thu Sep 13 15:36:21 2001 Joerg Schilling + * scsidefs.h 1.26 + DEV_MMC_DVD_WR new + +Thu Sep 13 14:31:05 2001 Joerg Schilling + * scsi-sun.c 1.70 + maxdma for USCSI to default if == -1 (e.g. for TAPE), Debug print the RQ Buffer. + +Tue Sep 11 14:04:03 2001 Joerg Schilling + * scsi_cdr.c 1.106 + Open CD-Text File in Binary + +Tue Sep 11 03:06:31 2001 Joerg Schilling + * scsi-linux-sg.c 1.67 + Timeout Workaround for ioctl() + +Tue Sep 4 14:04:25 2001 Joerg Schilling + * cdrecord.c 1.136 + DEMO_SPEED new + +Thu Aug 9 16:38:21 2001 Joerg Schilling + * cdrecord.h 1.82 + * cdrecord.c 1.135 + #define GRACE_TIME 9 new + +Fri Jul 20 13:17:21 2001 Joerg Schilling + * drv_mmc.c 1.75 + * cdrecord.c 1.134 + * cdrecord.h 1.81 + RF_BLANK new to avoid opening the tray before blanking + Version -> 1.11a07 + +Thu Jul 19 00:28:36 2001 Joerg Schilling + * scsi-remote.c 1.6 + Now using _niread()/_nixwrite() + +Thu Jul 12 23:40:28 2001 Joerg Schilling + * scsidefs.h 1.25 + Taiyo Yuden EW-50 new + +Thu Jul 12 23:35:08 2001 Joerg Schilling + * scsi_cdr.c 1.105 + * cdr_drv.c 1.23 + * drv_philips.c 1.45 + New driver for Taiyo Yuden EW-50 because it swabs audio bytes compared to Philips CDD-521 + +Thu Jul 12 23:33:28 2001 Joerg Schilling + * fifo.c 1.30 + Better Debug messages for FIFO adresse/size + +Thu Jul 5 00:08:38 2001 Joerg Schilling + * sector.c 1.5 + Match new libedc + +Thu Jun 28 13:19:02 2001 Joerg Schilling + * drv_mmc.c 1.74 + Use -DSAO_RAW -DSAO_RAW_TEST for SAO RAW tests only + +Wed Jun 27 10:04:03 2001 Joerg Schilling + * clone.c 1.4 + clone_cue() for Test + +Wed Jun 27 09:51:19 2001 Joerg Schilling + * cdrecord.c 1.133 + CDR_SRAW16 removed + +Wed Jun 27 09:47:10 2001 Joerg Schilling + * scsimmc.h 1.6 + * scsi_cdr.c 1.104 + struct ftrackdesc -> scsimmc.h + +Wed Jun 27 09:35:13 2001 Joerg Schilling + * scsi_cdr.c 1.103 + struct tocheader definition removed because it is in scsimmc.h + +Sun Jun 24 22:35:23 2001 Joerg Schilling + * drv_mmc.c 1.73 + check_writemodes_mmc() now resety silent correctly, deflt_writemodes_mmc() new + +Sun Jun 24 19:55:02 2001 Joerg Schilling + * cdrecord.h 1.80 + CDR_SRAW16 disabled, because SAO supports only RAW96x + +Fri Jun 22 08:42:55 2001 Joerg Schilling + * scsimmc.h 1.5 + struct tocheader now with Uchar + +Wed Jun 20 21:53:55 2001 Joerg Schilling + * subchan.c 1.6 + min Struktur member -> pmin + +Wed Jun 20 21:53:34 2001 Joerg Schilling + * cdr_drv.c 1.22 + #include for printf() + +Wed Jun 20 21:53:03 2001 Joerg Schilling + * cdrecord.c 1.132 + Changes for GCC-3.0 & Linux include file bugs for printf() (is a #define), 1.11a04 -> 1.11a05 + +Tue Jun 19 12:26:49 2001 Joerg Schilling + * cdrecord.c 1.131 + Usage() with textfile=, 1.11a03 -> 1.11a04 + +Tue Jun 19 12:22:30 2001 Joerg Schilling + * cdtext.c 1.2 + Modifications for RAW CD-Text + +Tue Jun 19 11:39:08 2001 Joerg Schilling + * cdrecord.h 1.79 + * subchan.c 1.5 + addrw() new for CD-Text Support in RAW mode + +Tue Jun 19 02:10:37 2001 Joerg Schilling + * cdrecord.h 1.78 + * cdrecord.c 1.130 + BUF_SIZE -> CDR_BUF_SIZE & from cdrecord.c -> cdrecord.h + +Tue Jun 19 01:04:54 2001 Joerg Schilling + * cdrecord.c 1.129 + Do not call exit() if interrupting during wait time via ^C + +Mon Jun 18 09:29:52 2001 Joerg Schilling + * cdtext.c 1.1 + date and time created 01/06/18 08:29:52 by joerg + +Mon Jun 18 08:55:07 2001 Joerg Schilling + * drv_mmc.c 1.72 + * cdrecord.c 1.128 + * cdrecord.h 1.77 + First CD-Text Support + +Sat Jun 16 19:20:36 2001 Joerg Schilling + * cdrecord.c 1.127 + trackp->dataoff new, call on_comerr() earlier + +Sat Jun 16 18:16:51 2001 Joerg Schilling + * cdrecord.h 1.76 + Dataoffset in struct track new, is_text() new + +Sat Jun 16 18:15:05 2001 Joerg Schilling + * drv_mmc.c 1.71 + Forgotten if (xdebug) + +Tue Jun 12 22:57:03 2001 Joerg Schilling + * cdrecord.c 1.126 + -clone new, write mode for -xa1 -xa2, RAW data bug removed + +Tue Jun 12 22:42:25 2001 Joerg Schilling + * sector.c 1.4 + recodesectors() -> subrecodesecs()/sunchan.c, scrsectors() without return for AUDIO + +Tue Jun 12 22:41:37 2001 Joerg Schilling + * subchan.c 1.4 + subrecodesecs() from sector.c & scrsectors() dummy + +Tue Jun 12 22:40:59 2001 Joerg Schilling + * cdrecord.h 1.75 + recodesectors() -> subrecodesecs() + +Tue Jun 12 01:51:49 2001 Joerg Schilling + * cdrecord.h 1.74 + Modifications for clone.c + +Tue Jun 12 01:50:53 2001 Joerg Schilling + * clone.c 1.1 + date and time created 01/06/12 00:50:53 by joerg + +Tue Jun 12 01:07:06 2001 Joerg Schilling + * subchan.c 1.3 + subq/nsubh -> _subq/_nsubh + +Tue Jun 12 01:05:54 2001 Joerg Schilling + * subchan.c 1.2 + Changes for clone writing, qwto16() new for clone 16/96 Writing + +Tue Jun 12 00:12:42 2001 Joerg Schilling + * sector.c 1.3 + removed unused Vars + +Mon Jun 11 23:31:00 2001 Joerg Schilling + * cdrecord.h 1.73 + Enhancements for clone writing + +Mon Jun 11 23:29:50 2001 Joerg Schilling + * sector.c 1.2 + scrsectors()/recodesectors() fuer clone writing neu + +Mon Jun 11 23:12:41 2001 Joerg Schilling + * drv_mmc.c 1.70 + Checking write modes Message only with xdebug + +Mon Jun 11 23:11:55 2001 Joerg Schilling + * movesect.c 1.2 + Make it more general to allow compress and expand + +Mon Jun 11 23:09:58 2001 Joerg Schilling + * auinfo.c 1.10 + Comment for ISRC + +Sat Jun 9 20:13:35 2001 Joerg Schilling + * cdrecord.c 1.125 + -copy/-nocopy new, Prevent data sectors only in RAW Mode (without libedc_ecc) + +Sat Jun 9 20:05:59 2001 Joerg Schilling + * cdrecord.1 1.60 + New Options -raw, -raw96r, -raw96p, -raw16, -copy, -nocopy + +Wed Jun 6 00:09:58 2001 Joerg Schilling + * cdrecord.c 1.124 + Any positive startsector for RAW is wriong -> Philips Firmware bug fixed + +Mon Jun 4 19:28:17 2001 Joerg Schilling + * cdrecord.c 1.123 + Modifications for RAW Mode + cdr_t *dp now allocated + BURNFREE printput with Driver Flags + OPC also for -blank + write_secs() new for all writes on ATAPI + print_wrmodes()/check_wrmode() new + reload_media() new + +Mon Jun 4 17:45:49 2001 Joerg Schilling + * cdrecord.h 1.72 + * drv_dvd.c 1.53 + * drv_mmc.c 1.69 + New Function reload_media() + +Mon Jun 4 17:08:05 2001 Joerg Schilling + * cdrecord.h 1.71 + * wm_packet.c 1.15 + Modifications for RAW Mode + +Mon Jun 4 17:06:21 2001 Joerg Schilling + * subchan.c 1.1 + date and time created 01/06/04 16:06:21 by joerg + +Mon Jun 4 16:52:34 2001 Joerg Schilling + * crc16.c 1.3 + Now correct Code with Inverted CRC Bits + +Mon Jun 4 16:49:47 2001 Joerg Schilling + * auinfo.c 1.9 + SECT_AUDIO_NPRE -> SECT_AUDIO_NOPRE + +Mon Jun 4 16:06:15 2001 Joerg Schilling + * crc16.c 1.2 + Now using Uint*_t + +Mon Jun 4 16:02:17 2001 Joerg Schilling + * crc16.h 1.1 + date and time created 01/06/04 15:02:17 by joerg + +Mon Jun 4 13:33:19 2001 Joerg Schilling + * drv_mmc.c 1.68 + Now using CDR_SRAW*, botchexit Abort removed + +Mon Jun 4 12:53:18 2001 Joerg Schilling + * sector.c 1.1 + date and time created 01/06/04 11:53:18 by joerg + +Sun Jun 3 20:51:22 2001 Joerg Schilling + * auinfo.c 1.8 + Modifications for RAW Mode + +Sun Jun 3 14:48:57 2001 Joerg Schilling + * cdrecord.c 1.122 + Use comexit()/comerr() instead of exscsi() + New Function do_opc() now also called before blank, -force avoids this + +Sat Jun 2 21:24:52 2001 Joerg Schilling + * movesect.h 1.1 + * movesect.c 1.1 + date and time created 01/06/02 20:24:52 by joerg + +Fri Jun 1 07:54:04 2001 Joerg Schilling + * cdrecord.1 1.59 + burnproof -> burnfree + +Fri Jun 1 07:46:01 2001 Joerg Schilling + * scsi_cdr.c 1.102 + BURN-Proof (Sanyo) -> Buffer-Underrun-Free recording + +Fri Jun 1 07:44:39 2001 Joerg Schilling + * fifo.c 1.29 + call fill_buf() instead of read_buf() and trackp/secno Parameter for Subcode Generator + +Fri Jun 1 02:08:55 2001 Joerg Schilling + * drv_mmc.c 1.67 + BURN-Proof -> BURN-Free + +Thu May 31 23:31:44 2001 Joerg Schilling + * scsireg.h 1.25 + BURN Free & link size new + +Thu May 31 03:21:47 2001 Joerg Schilling + * drv_mmc.c 1.66 + check_writemodes_mmc() new, is_raw() set write modes + +Mon May 28 00:51:36 2001 Joerg Schilling + * cd_misc.c 1.9 + sec_to_msf() new + +Sun May 27 14:01:28 2001 Joerg Schilling + * audiosize.c 1.17 + Better comment + +Thu May 24 19:10:28 2001 Joerg Schilling + * auinfo.c 1.7 + No exit() if -debug & nindex > 1 + +Thu May 24 19:09:39 2001 Joerg Schilling + * modes.c 1.23 + Warning using default data only if not in Silent mode + +Thu May 24 19:07:13 2001 Joerg Schilling + * drv_dvd.c 1.52 + * drv_jvc.c 1.56 + * drv_simul.c 1.18 + * drv_philips.c 1.44 + * drv_sony.c 1.47 + CDR_DAO -> CDR_SAO, SAO no more predefined - it either does not work or is tested automatically (MMC) + +Sun May 20 21:23:53 2001 Joerg Schilling + * drv_sony.c 1.46 + * drv_philips.c 1.43 + mask sectype with ST_MASK because of new mode bits + +Sun May 20 18:51:41 2001 Joerg Schilling + * drv_simul.c 1.17 + CDR_SIMUL Flag new + +Fri May 18 21:07:58 2001 Joerg Schilling + * cdrecord.h 1.70 + F_OVERBURN new, F_RAW / is_raw() new, CDR_SIMUL new + +Fri May 18 19:30:02 2001 Joerg Schilling + * cdrecord.c 1.121 + trackp[0].dbtype is set with Data type from Track 1 + +Fri May 18 19:22:50 2001 Joerg Schilling + * drv_mmc.c 1.65 + In open_session() wird nun schon der Datenblocktyp fuer den ersten track eingestellt + +Mon May 14 23:36:07 2001 Joerg Schilling + * cdrecord.c 1.120 + -overburn new + Bracket bug with > 90 min Warning removed + > 90 Min Warning only if offizial capacity is exceeded (for DVD-R) + -pad implied for next Track with -isosize + Win32 Priorities are non contiguous (fix in rt_raisepri()) + +Mon May 14 22:54:17 2001 Joerg Schilling + * cdrecord.h 1.69 + F_OVERBURN (-overburn) new + +Mon May 14 22:53:33 2001 Joerg Schilling + * cdrecord.1 1.58 + -overburn new, -isosize better documented + +Sat Apr 28 23:34:12 2001 Joerg Schilling + * scsi-remote.c 1.5 + Read char with buffer for cygwin + +Fri Apr 20 11:38:03 2001 Joerg Schilling + * scsitransp.c 1.81 + scg_svhead() is silent if non verbose + +Fri Apr 20 11:34:41 2001 Joerg Schilling + * scsi-linux-sg.c 1.66 + Hack for ide-scsi bug, although there is sense data, SCSI Status is 0 + +Thu Apr 19 21:52:41 2001 Joerg Schilling + * drv_mmc.c 1.64 + removed superfluous scgp->silent--; in fixate_mmx(). silent did become negative + +Thu Apr 19 21:51:26 2001 Joerg Schilling + * cdrecord.c 1.119 + Enhance wait time in wait_unit_ready() after blank to 240 s for Mitsumi + +Tue Apr 17 00:58:57 2001 Joerg Schilling + * cdrecord.1 1.57 + Hint for mailman interface + +*************** Release 1.10 ******************* + +Fri Apr 13 20:41:36 2001 Joerg Schilling + * cdrecord.c 1.118 + Version -> 1.10 final + +Fri Apr 13 20:40:58 2001 Joerg Schilling + * cdrecord.c 1.117 + Backwardcounter corrected + +Fri Apr 13 20:39:09 2001 Joerg Schilling + * cdrecord.1 1.56 + New Support mail Adresses + +Wed Apr 11 01:22:18 2001 Joerg Schilling + * scsi_cdr.c 1.101 + * cdrecord.h 1.68 + print_capacity() new with FILE * Parameter + +Sun Apr 8 02:03:49 2001 Joerg Schilling + * modes.c 1.22 + scgp->silent--; was oat wrong place + +Sun Apr 1 14:39:01 2001 Joerg Schilling + * cdrecord.1 1.55 + Typo + +Sat Mar 31 23:02:28 2001 Joerg Schilling + * modes.c 1.21 + unit_ready() before each mode_sense()/mode_select() + +Sat Mar 31 22:46:28 2001 Joerg Schilling + * drv_mmc.c 1.63 + Comment for IOMEGA DMA overrun modified (Philips removed) + +Sun Mar 18 19:39:48 2001 Joerg Schilling + * cdrecord.1 1.54 + REMOTE SCSI description and new unified SCSI Options + +Sun Mar 18 19:31:31 2001 Joerg Schilling + * cdrecord.c 1.116 + Unified SCSI Options + +Sun Mar 18 19:27:02 2001 Joerg Schilling + * scsitransp.c 1.80 + Fixed bug that printed SCSI timing without verbose + +Sun Mar 18 18:37:45 2001 Joerg Schilling + * scsitransp.c 1.79 + New Functions: scg_svhead()/scg_svtail()/scg__sprinterr() + Comments for Functions + Print SCSI timing for earch failed SCSI Command + +Sun Mar 18 18:28:17 2001 Joerg Schilling + * scsitransp.h 1.50 + New Funstions: scg_svhead()/scg_svtail()/scg__sprinterr() + +Sun Mar 18 15:37:09 2001 Joerg Schilling + * scsitransp.c 1.78 + Print Timing without Verbose + +Sun Mar 18 15:10:18 2001 Joerg Schilling + * scsi-wnt.c 1.27 + * scsi-vms.c 1.29 + * scsi-unixware.c 1.25 + * scsi-sgi.c 1.34 + * scsi-osf.c 1.23 + * scsi-next.c 1.30 + * scsi-linux-sg.c 1.65 + * scsi-hpux.c 1.29 + * scsi-linux-pg.c 1.39 + * scsi-bsd.c 1.40 + * scsi-bsd-os.c 1.26 + * scsi-beos.c 1.19 + * scsi-aix.c 1.33 + if (scgp->debug) -> if (scgp->debug > 0) + +Wed Mar 14 00:42:40 2001 Joerg Schilling + * scsitransp.h 1.49 + * scsitransp.c 1.77 + scg_verbose() -> scg_vsetup() + +Mon Mar 12 23:09:38 2001 Joerg Schilling + * cdrecord.c 1.115 + Version -> 1.10a17, select_target() uses FILE * + +Mon Mar 12 23:08:46 2001 Joerg Schilling + * scsi_scan.h 1.3 + * scsi_scan.c 1.14 + comerrno() removed + select_target() with FILE * + select_target() returns number of Targets + +Mon Mar 12 23:06:50 2001 Joerg Schilling + * cdrecord.h 1.67 + * scsi_cdr.c 1.100 + printinq() new + +Mon Mar 12 22:06:05 2001 Joerg Schilling + * scsi-linux-sg.c 1.64 + Better differentiation SCG_RETRYABLE/SCG_NO_ERROR + Set ux_errno if Sense Data present + +Sun Mar 11 17:10:12 2001 Joerg Schilling + * scsi-linux-pg.c 1.38 + SCG_RETRYABLE for DMA overrun + CHECK CONDITION == SCG_NO_ERROR + +Sun Mar 11 17:07:48 2001 Joerg Schilling + * scsitransp.c 1.76 + Remove unused Variables + +Sun Mar 11 16:56:24 2001 Joerg Schilling + * scsitransp.h 1.48 + scg_vhead()/scg_vtail()/scg_verbose() & scg_errfflush() new + +Sun Mar 11 16:55:55 2001 Joerg Schilling + * scsitransp.c 1.75 + scg_vhead()/scg_vtail()/scg_verbose() & scg_errfflush() new + Version -> 0.5 + +Sat Mar 10 17:53:45 2001 Joerg Schilling + * scsitransp.h 1.47 + scgp->bufptr new + SCG_KVERSION new + +Sat Mar 10 17:52:53 2001 Joerg Schilling + * scsitransp.c 1.74 + scgp->bufptr new + scgp->scmd->resid < 0 == DMA overrun + +Sat Mar 10 16:24:00 2001 Joerg Schilling + * scsi-linux-sg.c 1.63 + SCG_KVERSION new + +Mon Feb 26 22:20:32 2001 Joerg Schilling + * scsi-unixware.c 1.24 + New formatting + +Mon Feb 26 22:18:39 2001 Joerg Schilling + * scsi-unixware.c 1.23 + Environment "LIBSCG_SCAN_ALL" controls scanning of Harddisks because of system crash + +Mon Feb 26 16:05:41 2001 Joerg Schilling + * cdrecord.c 1.114 + Warning if DVD-R code is missing and we found a DVD-R drive + +Sun Feb 25 13:02:42 2001 Joerg Schilling + * fifo.c 1.27 + Now using mmapdefs.h + +Fri Feb 23 17:32:38 2001 Joerg Schilling + * scsidefs.h 1.24 + ccs() Makro -> is_ccs() + +Fri Feb 23 00:24:02 2001 Joerg Schilling + * fifo.c 1.26 + Support for mmap() on Apollo Domain/OS with mmap(0, &size, ...) + +Thu Feb 22 16:13:27 2001 Joerg Schilling + * audiosize.c 1.16 + Fixed bug in Prototyp (result from long -> off_t) + +Thu Feb 22 16:11:07 2001 Joerg Schilling + * cdrecord.h 1.66 + * wm_packet.c 1.14 + * cdrecord.c 1.113 + * drv_mmc.c 1.62 + * drv_jvc.c 1.54 + * drv_dvd.c 1.51 + Large File support + +Thu Feb 22 16:10:53 2001 Joerg Schilling + * drv_jvc.c 1.55 + padsize Parameter for pad_track() casted to Llong + +Thu Feb 22 00:57:53 2001 Joerg Schilling + * cdr_drv.c 1.21 + mconfig.h/unixstd.h for Large Files + +Thu Feb 22 00:55:35 2001 Joerg Schilling + * scsi_scan.c 1.13 + #include for Large Files + +Thu Feb 22 00:54:26 2001 Joerg Schilling + * fifo.c 1.25 + Large File support + Casts for sizeof() [long] on MaxOS X + +Wed Feb 21 23:32:51 2001 Joerg Schilling + * defaults.c 1.6 + #include unixstd.h for Large Files + +Wed Feb 21 23:27:48 2001 Joerg Schilling + * auinfo.c 1.6 + * isosize.c 1.7 + * audiosize.c 1.15 + Large File support + +Tue Feb 20 23:56:44 2001 Joerg Schilling + * drv_sony.c 1.45 + * drv_philips.c 1.42 + unixstd.h for sys/types.h for off_t in cdrecord.h + +Thu Feb 15 23:09:12 2001 Joerg Schilling + * scsihack.c 1.37 + Test for HAVE_BSD_DEV_SCSIREG_H for new MacOSX + +Fri Feb 9 00:35:50 2001 Joerg Schilling + * drv_philips.c 1.41 + Fixes for Plasmon RF 4100 + +Tue Jan 23 12:20:32 2001 Joerg Schilling + * modes.c 1.20 + Cast for singed/unsigned cmparison + +Mon Jan 15 01:09:05 2001 Joerg Schilling + * fifo.c 1.24 + %x -> %p Format + +Sun Jan 7 19:46:42 2001 Joerg Schilling + * scsihack.c 1.36 + scsi-apollo.c new + +Sun Jan 7 19:39:40 2001 Joerg Schilling + * scsitransp.c 1.73 + * scsi-vms.c 1.28 + * scsi-unixware.c 1.22 + * scsi-linux-pg.c 1.37 + * scsi-aix.c 1.32 + sense_len check -> scsitransp.c + +Tue Jan 2 00:09:45 2001 Joerg Schilling + * scsitransp.c 1.72 + sccsid[] is always used -> without #ifdef lint + +Fri Dec 29 00:06:35 2000 Joerg Schilling + * cdrecord.c 1.112 + Lint, 1.10a10, rlimit cast to Llong for SGI + +Thu Dec 28 23:19:23 2000 Joerg Schilling + * scsi_cdr.c 1.99 + Modified for Lint + +Wed Dec 20 18:26:01 2000 Joerg Schilling + * scsi-sgi.c 1.33 + Cast to caddr_t for SENSEBUF(dsp) + +Wed Dec 13 20:22:52 2000 Joerg Schilling + * scsi-linux-pg.c 1.36 + Cast s_cmd.addr = (caddr_t)sp->u_sense.cmd_sense; + +Tue Dec 12 15:20:46 2000 Joerg Schilling + * scsitransp.h 1.46 + struct scsi -> struct scg_scsi for AIX + +Sat Dec 9 22:52:01 2000 Joerg Schilling + * scsi-linux-sg.c 1.62 + Recognise ENOTTY as errno for failed ioctl() + +Sat Dec 9 18:20:25 2000 Joerg Schilling + * modes.c 1.19 + * scsilog.c 1.13 + * drv_sony.c 1.44 + * drv_philips.c 1.40 + * drv_mmc.c 1.61 + * drv_jvc.c 1.53 + * drv_dvd.c 1.50 + u_char -> Uchar + +Wed Dec 6 12:43:51 2000 Joerg Schilling + * cdrecord.c 1.111 + atoll() -> libschily + +Wed Nov 29 17:22:15 2000 Joerg Schilling + * scsi-vms.c 1.27 + Indented + +Wed Nov 29 17:18:51 2000 Joerg Schilling + * scsi-vms.c 1.26 + ATAPI Support and changed for new libscg Interface + +Fri Nov 24 11:00:58 2000 Joerg Schilling + * cdrecord.c 1.110 + Workaround for ACER drive that does not return from -dummy + Typo in online Help + +Wed Nov 8 00:06:05 2000 Joerg Schilling + * scsitransp.h 1.45 + * scsireg.h 1.24 + * scsidefs.h 1.23 + * scgio.h 2.16 + #ifdef __cplusplus extern "C" { + +Sat Nov 4 15:00:50 2000 Joerg Schilling + * fifo.c 1.23 + * cdrecord.c 1.109 + Printf-like Formats cleaned up + +Sat Nov 4 14:56:09 2000 Joerg Schilling + * scsi_cdr.c 1.98 + PIONEER CD-WO DR-R504X -> DEV_PIONEER_DW_S114X + +Sat Nov 4 14:52:43 2000 Joerg Schilling + * cdrecord.h 1.65 + DEFAULT_FIFOSIZE -> Long Constant + +Tue Oct 31 15:58:54 2000 Joerg Schilling + * cdrecord.c 1.108 + Cygwin-1.x Compatibility + +Sun Oct 22 13:37:15 2000 Joerg Schilling + * scsi-aix.c 1.31 + Type in sizeof(devname removed + +Tue Oct 17 10:35:34 2000 Joerg Schilling + * cdrecord.1 1.53 + SEE ALSO enhanced + +Fri Oct 13 11:28:51 2000 Joerg Schilling + * scsi-linux-sg.c 1.61 + use pg_version() only for PP + +Wed Sep 20 00:59:38 2000 Joerg Schilling + * modes.c 1.18 + Code reordered so DMA overrun messages only appears once + +Sun Sep 17 17:15:06 2000 Joerg Schilling + * cdrecord.h 1.64 + #define sample -> #define msample for Win32 + +Fri Sep 8 03:04:50 2000 Joerg Schilling + * modes.c 1.17 + Warning for Philips DMA overrun + +Wed Sep 6 23:41:34 2000 Joerg Schilling + * scsi_cdr.c 1.97 + unit_ready() made better + +Wed Sep 6 09:59:05 2000 Joerg Schilling + * scsitransp.c 1.71 + * scsitransp.h 1.44 + scg_cmderr() -> scg_cmd_err(), scg_cmd_status() new + +Tue Sep 5 03:32:34 2000 Joerg Schilling + * scsitransp.c 1.70 + Default printing to stderr + +Tue Sep 5 03:06:01 2000 Joerg Schilling + * scsitransp.c 1.69 + scg__open() returns -1 when SCGO_OPEN fails, to avoid calling scg_fileno() + +Tue Sep 5 02:30:41 2000 Joerg Schilling + * scsi_cdr.c 1.96 + allow_atapi() calls unit_ready() before mode_sense() to make it work past a reset + +Tue Sep 5 02:28:03 2000 Joerg Schilling + * modes.c 1.16 + Minimal transfer sizeof(struct scsi_mode_header) after DMA overrun + +Tue Sep 5 02:22:48 2000 Joerg Schilling + * drv_mmc.c 1.60 + read_toc()/read_disk_info() reads minimal 4 bytes for Philips ATAPI drives + +Mon Sep 4 20:24:52 2000 Joerg Schilling + * cdrecord.1 1.52 + Typo removed + +Sat Sep 2 21:16:00 2000 Joerg Schilling + * scsitransp.h 1.43 + Drive flags new in SCSI * + +Sat Sep 2 21:03:48 2000 Joerg Schilling + * scsi-wnt.c 1.26 + * scsi-vms.c 1.25 + * scsi-unixware.c 1.21 + * scsi-sgi.c 1.32 + * scsi-osf.c 1.22 + * scsi-os2.c 1.21 + * scsi-next.c 1.29 + * scsi-linux-sg.c 1.60 + * scsi-linux-pg.c 1.35 + * scsi-hpux.c 1.28 + * scsi-bsd.c 1.39 + * scsi-bsd-os.c 1.25 + * scsi-aix.c 1.30 + * scsi-beos.c 1.18 + All debug printing to stderr (scgp->errfile) + +Tue Aug 29 23:44:31 2000 Joerg Schilling + * scsi-next.c 1.28 + * scsi-bsd-os.c 1.24 + error codes & return harmonised + +Tue Aug 29 02:36:09 2000 Joerg Schilling + * drv_mmc.c 1.59 + set curspeed only if > 0 (SCSI-3 floating point exception in waitfix) + +Tue Aug 29 02:35:04 2000 Joerg Schilling + * scsi_scan.c 1.12 + call scg_settarget() in scanbus, to make sure SCSI address for scg_initator_id() is OK + +Sat Aug 26 10:20:43 2000 Joerg Schilling + * drv_mmc.c 1.58 + OPC Hack for strange drive that returns from OPC with "UNIT ATTENTION/operator selected write permit" + +Sat Aug 26 10:15:03 2000 Joerg Schilling + * cdrecord.c 1.107 + Enhancements for remote SCSI, scg_reset() with what Parameter + +Sat Aug 26 00:53:10 2000 Joerg Schilling + * scsihack.c 1.35 + * scsitransp.c 1.68 + scsibus/target/lun acess now only with scg_scsibus()/scsi_target()/scg_lun() and scg_settarget() + do not initialize target in struct scg_cmd because this is now done in SCG lowlevel code + scg__open() from scsihack.c -> scsitransp.c, scg_settarget() -> scgsettarget.c + dummy code it now always present + +Sat Aug 26 00:22:51 2000 Joerg Schilling + * scsitransp.h 1.42 + scg_settarget() -> scgsettarget.c + +Fri Aug 25 23:17:25 2000 Joerg Schilling + * scsi-wnt.c 1.25 + * scsi-vms.c 1.24 + * scsi-unixware.c 1.20 + * scsi-sgi.c 1.31 + * scsi-osf.c 1.21 + * scsi-os2.c 1.20 + * scsi-next.c 1.27 + * scsi-linux-sg.c 1.59 + * scsi-linux-pg.c 1.34 + * scsi-hpux.c 1.27 + * scsi-bsd.c 1.38 + * scsi-bsd-os.c 1.23 + * scsi-beos.c 1.17 + * scsi-aix.c 1.29 + scsibus/target/lun acess now only with scg_scsibus()/scsi_target()/scg_lun() and scg_settarget() + do not initialize target in struct scg_cmd because this is now done in SCG lowlevel code + +Thu Aug 24 00:52:32 2000 Joerg Schilling + * scsitransp.h 1.41 + scg Address Stucture new + scg__open() without bus/target/lun Parameter + scg_remote() new + +Wed Aug 23 22:44:26 2000 Joerg Schilling + * scsi_scan.c 1.11 + * scsilog.c 1.12 + * drv_dvd.c 1.49 + * drv_jvc.c 1.52 + * drv_philips.c 1.39 + * drv_sony.c 1.43 + * scsi_cdr.c 1.95 + scsibus/target/lun acess now only with scg_scsibus()/scsi_target()/scg_lun() and scg_settarget() + do not initialize target in struct scg_cmd because this is now done in SCG lowlevel code + +Sun Aug 20 20:57:32 2000 Joerg Schilling + * scsitransp.h 1.40 + * scsitransp.c 1.67 + * scsihack.c 1.34 + * scsi-linux-sg.c 1.58 + * scsi-linux-pg.c 1.33 + * scsi-sgi.c 1.30 + * scsi-next.c 1.26 + * scsi-hpux.c 1.26 + * scsi-bsd.c 1.37 + * scsi-aix.c 1.28 + * scsi_scan.c 1.10 + Now using scg_settarget() + +Sat Aug 19 23:24:03 2000 Joerg Schilling + * scsitransp.c 1.66 + * scsihack.c 1.33 + * scsi-wnt.c 1.24 + * scsi-vms.c 1.23 + * scsi-unixware.c 1.19 + * scsi-sgi.c 1.29 + * scsi-osf.c 1.20 + * scsi-os2.c 1.19 + * scsi-next.c 1.25 + * scsi-linux-sg.c 1.57 + * scsi-linux-pg.c 1.32 + * scsi-hpux.c 1.25 + * scsi-bsd.c 1.36 + * scsi-beos.c 1.16 + * scsi-bsd-os.c 1.22 + * scsi-aix.c 1.27 + * scsitransp.h 1.38 + scg_reset() with Function code Parameter + +Sat Aug 19 22:37:30 2000 Joerg Schilling + * cdrecord.h 1.63 + * scsitransp.h 1.39 + #ifdef's modified for new #define _SCG_*_H + +Sat Aug 19 21:57:31 2000 Joerg Schilling + * scsireg.h 1.23 + * scsidefs.h 1.22 + * scgio.h 2.15 + Correctly made multi include safe with #ifdef _SCG_* + +Sat Aug 19 21:05:25 2000 Joerg Schilling + * scsitransp.c 1.65 + sys/param.h removed + +Sat Aug 19 20:52:31 2000 Joerg Schilling + * scsitransp.h 1.37 + Now using scg_ops + Remote Version #defines, scg__version() removed + +Sat Aug 19 20:23:20 2000 Joerg Schilling + * scsi-sgi.c 1.28 + * scsi-osf.c 1.19 + * scsierrs.c 2.26 + * scsitransp.c 1.64 + * scsireg.h 1.22 + u_char -> Uchar + +Sat Aug 19 19:13:16 2000 Joerg Schilling + * scsitransp.c 1.63 + * scsihack.c 1.32 + scsitransp.c and scsihack.c separated + +Sat Aug 19 17:30:28 2000 Joerg Schilling + * scsireg.h 1.21 + Status & Sense Definitions from scsireg.h + +Fri Aug 18 10:40:48 2000 Joerg Schilling + * scsi-vms.c 1.22 + * scsi-wnt.c 1.23 + * scsi-unixware.c 1.18 + * scsi-sgi.c 1.27 + * scsi-osf.c 1.18 + * scsi-os2.c 1.18 + * scsi-next.c 1.24 + * scsi-linux-sg.c 1.56 + * scsi-linux-pg.c 1.31 + * scsi-hpux.c 1.24 + * scsi-bsd.c 1.35 + * scsi-bsd-os.c 1.21 + * scsi-beos.c 1.15 + * scsihack.c 1.31 + * scsi-aix.c 1.26 + * scsitransp.c 1.62 + Now uses scg_ops Structure and calling via pointers + +Thu Aug 17 22:50:53 2000 Joerg Schilling + * scsitransp.c 1.61 + Bracketing typo in scg_sprintresult() removed (printed junk) + +Wed Aug 16 10:11:08 2000 Joerg Schilling + * scsi-wnt.c 1.22 + * scsi-vms.c 1.21 + * scsi-unixware.c 1.17 + * scsi-sgi.c 1.26 + * scsi-os2.c 1.17 + * scsi-osf.c 1.17 + * scsi-next.c 1.23 + * scsi-linux-sg.c 1.55 + * scsi-hpux.c 1.23 + * scsi-linux-pg.c 1.30 + * scsi-bsd.c 1.34 + * scsi-beos.c 1.14 + * scsi-bsd-os.c 1.20 + * scsi-aix.c 1.25 + * scsihack.c 1.30 + * scsitransp.c 1.60 + scg_send() now only with scgp* Parameter + +Sun Aug 13 23:31:37 2000 Joerg Schilling + * scsitransp.c 1.59 + Buggy braketing corrected (printed 4-5 null Bytes to error output even in silent mode) + +Fri Aug 4 01:26:24 2000 Joerg Schilling + * scsitransp.h 1.36 + * scsitransp.c 1.58 + Komplett umgebaut damit die Fehlerausgabe in einen String erfolgt + +Tue Aug 1 00:03:45 2000 Joerg Schilling + * scsitransp.h 1.35 + * scsitransp.c 1.57 + * scsierrs.c 2.25 + * scsi-wnt.c 1.21 + * scsi-vms.c 1.20 + * scsi-unixware.c 1.16 + * scsi-sgi.c 1.25 + * scsi-osf.c 1.16 + * scsi-os2.c 1.16 + * scsi-next.c 1.22 + * scsi-linux-sg.c 1.54 + * scsi-linux-pg.c 1.29 + * scsi-hpux.c 1.22 + * scsi-bsd.c 1.33 + * scsi-bsd-os.c 1.19 + * scsi-beos.c 1.13 + * scsi-aix.c 1.24 + All printf()'s -> js_printf(), sprintf() -> snprintf() + +Sun Jul 30 15:15:34 2000 Joerg Schilling + * scsitransp.c 1.56 + * scsitransp.h 1.34 + scg_prbytes()/scg_prsense() & scg_printdev() INterface restructured + +Sun Jul 30 13:52:05 2000 Joerg Schilling + * wm_packet.c 1.13 + * scsi_scan.c 1.9 + * scsilog.c 1.11 + * cdrecord.c 1.106 + * scsi_cdr.c 1.94 + * modes.c 1.15 + * drv_sony.c 1.42 + * drv_simul.c 1.16 + * drv_philips.c 1.38 + * drv_mmc.c 1.57 + * drv_jvc.c 1.51 + * drv_dvd.c 1.48 + Restructured for new libscg with scg_*() + +Thu Jul 27 01:17:47 2000 Joerg Schilling + * scsitransp.c 1.55 + scg_prbytes()/scg_printdev() now using FILE * Parameter + scg__errmsg() restructured to be similar to snprintf() + +Thu Jul 27 01:15:54 2000 Joerg Schilling + * scsierrs.c 2.24 + Made similar to snprintf() + +Thu Jul 27 01:15:02 2000 Joerg Schilling + * scsitransp.h 1.33 + scg_prbytes()/scg_printdev() now using FILE * Parameter + scg__errmsg() restructured to be similar to snprintf() + +Sun Jul 23 18:01:12 2000 Joerg Schilling + * scsierrs.c 2.23 + * scsihack.c 1.29 + * scsitransp.c 1.54 + * scsi-wnt.c 1.20 + * scsi-vms.c 1.19 + * scsi-unixware.c 1.15 + * scsi-osf.c 1.15 + * scsi-sgi.c 1.24 + * scsi-os2.c 1.15 + * scsi-next.c 1.21 + * scsi-linux-sg.c 1.53 + * scsi-linux-pg.c 1.28 + * scsi-hpux.c 1.21 + * scsi-bsd.c 1.32 + * scsi-beos.c 1.12 + * scsi-bsd-os.c 1.18 + * scsi-aix.c 1.23 + * scsitransp.h 1.32 + restructured to use scg_ basieed Function names + +Sun Jul 23 00:28:09 2000 Joerg Schilling + * scsitransp.h 1.31 + open_scsi()/close_scsi()/... -> scg_open()/scg_close/... + +Thu Jul 20 20:12:42 2000 Joerg Schilling + * cdrecord.1 1.51 + Note for Volmgt & Solaris/USCSI + +*************** Release 1.9 ******************* + +Thu Jul 20 19:49:20 2000 joerg + * diskid.c 1.28 + New Manufacturer: "Grand Advance Technology LTD." + +Thu Jul 20 19:12:01 2000 Joerg Schilling + * cdrecord.c 1.105 + Version -> 1.9 + 99 Minute check better + +Mon Jul 3 01:19:21 2000 Joerg Schilling + * scsi-linux-sg.c 1.52 + Type fixed in !scglocal(scgp)->drvers < 0 + +Mon Jul 3 00:11:20 2000 Joerg Schilling + * scsi_cdr.c 1.93 + * drv_sony.c 1.41 + * drv_dvd.c 1.47 + * drv_mmc.c 1.56 + * cdrecord.h 1.62 + * cd_misc.c 1.8 + msf_to_lba() with force_positive Flag for 99 Minute CD's + +Sun Jul 2 23:22:00 2000 Joerg Schilling + * scsi-linux-sg.c 1.51 + scsi_raisedma() only for Kernel-2.2.10 and newer + +Sat Jul 1 13:40:49 2000 Joerg Schilling + * scsi-linux-sg.c 1.50 + New allocated copy buffer in SCSI * -> local for raisedma + +Sat Jul 1 13:22:49 2000 Joerg Schilling + * scsitransp.c 1.53 + * scsi-wnt.c 1.19 + * scsi-vms.c 1.18 + * scsi-unixware.c 1.14 + * scsi-sgi.c 1.23 + * scsi-osf.c 1.14 + * scsi-os2.c 1.14 + * scsi-next.c 1.20 + * scsi-linux-sg.c 1.49 + * scsi-linux-pg.c 1.27 + * scsi-hpux.c 1.20 + * scsi-bsd.c 1.31 + * scsi-bsd-os.c 1.17 + * scsi-beos.c 1.11 + * scsi-aix.c 1.22 + maxdma/maxbuf new in SCSI * + scsi_getbuf() now calls scsi_bufsize() to init new members + +Sat Jul 1 13:09:43 2000 Joerg Schilling + * scsitransp.h 1.30 + maxdma/maxbuf new in SCSI * + +Fri Jun 30 18:43:43 2000 Joerg Schilling + * scsi-linux-sg.c 1.48 + scsi_raisedma() now called with correct DMA Buffersize + +Fri Jun 30 18:38:48 2000 Joerg Schilling + * scsitransp.c 1.52 + * scsihack.c 1.28 + * scsi-wnt.c 1.18 + * scsi-vms.c 1.17 + * scsi-unixware.c 1.13 + * scsi-sgi.c 1.22 + * scsi-sco.c 1.14 + * scsi-osf.c 1.13 + * scsi-os2.c 1.13 + * scsi-next.c 1.19 + * scsi-linux-sg.c 1.47 + * scsi-hpux.c 1.19 + * scsi-linux-pg.c 1.26 + * scsi-bsd.c 1.30 + * scsi-beos.c 1.10 + * scsi-bsd-os.c 1.16 + * scsi-aix.c 1.21 + scsi_maxdma() now with 2nd Parameter "amt" for Linux sg driver + +Tue Jun 27 19:29:05 2000 Joerg Schilling + * drv_mmc.c 1.55 + Disk Subtype decoder for High Speed RW + +Tue Jun 27 19:19:51 2000 Joerg Schilling + * cdrecord.c 1.104 + Support for 99 Minute CD's + +Tue Jun 27 19:17:16 2000 Joerg Schilling + * diskid.c 1.27 + 99 Minute media in table + +Mon Jun 26 22:40:39 2000 Joerg Schilling + * diskid.c 1.26 + Bestdisc Technology Corporation new + +Mon Jun 26 22:29:17 2000 Joerg Schilling + * scsi-bsd.c 1.29 + * scsi-bsd-os.c 1.15 + * scsi-sgi.c 1.21 + * scsi-linux-sg.c 1.46 + * scsi-linux-pg.c 1.25 + * scsi-next.c 1.18 + better error messages into scgp->errstr + +Fri Jun 23 23:52:39 2000 Joerg Schilling + * scsi-linux-sg.c 1.45 + pvers && isold -> scglocal + +Fri Jun 23 23:23:33 2000 Joerg Schilling + * scsi-linux-sg.c 1.44 + Variable pvers only conditional for unused... warning + +Fri Jun 23 23:19:00 2000 Joerg Schilling + * scsi-linux-sg.c 1.43 + Support for SG_IO ioctl() + +Fri Jun 23 21:40:38 2000 Joerg Schilling + * scsitransp.h 1.29 + overbose new + +Thu Jun 22 15:20:18 2000 Joerg Schilling + * scsi-linux-sg.c 1.42 + SG_SCSI_RESET & SG_SET_RESERVED_SIZE new + +Wed Jun 21 10:34:52 2000 Joerg Schilling + * scsi-linux-pg.c 1.24 + Test with ATAPI SCSI status code + +Wed Jun 21 10:33:31 2000 Joerg Schilling + * scsitransp.c 1.51 + scsitransp.c split into scsitransp.c & scsi-sun.c + +Wed Jun 21 10:27:11 2000 Joerg Schilling + * scsihack.c 1.27 + scsi-sun.c new + +Tue Jun 20 07:20:40 2000 Joerg Schilling + * scsitransp.h 1.28 + secured _SCGIO_H -> _SCG_SCSISENSE_H + +Tue Jun 20 06:09:57 2000 Joerg Schilling + * scsi-bsd.c 1.28 + ATAPI Support for OpenBSD + +Sun Jun 4 00:55:02 2000 Joerg Schilling + * cdrecord.c 1.103 + #include for select() (autoconf Test for AIX), version -> 1.9a02 + +Sat Jun 3 17:31:06 2000 Joerg Schilling + * cdrecord.c 1.102 + New Option -shorttrack/-noshorttrack + +Fri Jun 2 22:37:51 2000 Joerg Schilling + * cdrecord.h 1.61 + New Flag TI_SHORT_TRACK & is_shorttrk() macro + +Fri Jun 2 22:32:59 2000 Joerg Schilling + * cdrecord.1 1.50 + New Optionen -shorttrack & -noshorttrack + +Fri Jun 2 21:44:43 2000 Joerg Schilling + * defaults.c 1.5 + Prevent a buffer overrrun with dev= option + +Fri Jun 2 21:43:16 2000 Joerg Schilling + * auinfo.c 1.5 + Check for buffer ovverun + +Fri Jun 2 00:03:13 2000 Joerg Schilling + * drv_mmc.c 1.54 + Set Pregapsize to 1 if the drive does not support 0 + free(cue) if cuep == NULL + +Tue May 30 02:46:22 2000 Joerg Schilling + * diskid.c 1.25 + Restructured + +Tue May 30 01:06:32 2000 Joerg Schilling + * diskid.c 1.24 + New manufacturers: "WEALTH FAIR INVESTMENT LIMITE", "General Magnetics Ld", "MPO" + +Tue May 30 00:59:12 2000 Joerg Schilling + * scsitransp.h 1.27 + debug Parameter -> odebug + +Mon May 29 19:07:56 2000 Joerg Schilling + * scsi-next.c 1.17 + Typo corrected max_scsibus -> scglocal(scgp)->max_scsibus + +Mon May 29 00:31:18 2000 Joerg Schilling + * scsireg.h 1.20 + Mode page 2A pw_in_lead_in & side_change new + +Mon May 29 00:13:25 2000 Joerg Schilling + * scsi_cdr.c 1.92 + More Page 2A bits for cdrecord -prcap + +Sun May 28 18:52:11 2000 Joerg Schilling + * scsi-vms.c 1.16 + scsi_close() now works + +Sun May 28 18:40:55 2000 Joerg Schilling + * cdrecord.1 1.49 + -fix hint for CDR-50 & CDR-55 specified + +Sun May 7 16:52:20 2000 Joerg Schilling + * scsi_cdr.c 1.91 + * scsilog.c 1.10 + * scsi_scan.c 1.8 + * auinfo.c 1.4 + * cd_misc.c 1.7 + * audiosize.c 1.14 + * cdr_drv.c 1.20 + * fifo.c 1.22 + * defaults.c 1.4 + * wm_packet.c 1.12 + * modes.c 1.14 + * cdrecord.c 1.101 + * drv_sony.c 1.40 + * drv_simul.c 1.15 + * drv_philips.c 1.37 + * drv_mmc.c 1.53 + * drv_jvc.c 1.50 + * drv_dvd.c 1.46 + * scsierrs.c 2.22 + * scsitransp.c 1.50 + #include + +Sun May 7 16:46:39 2000 Joerg Schilling + * scsi_cdr.c 1.90 + New DVD recognition, to allow Ricoh 9060 + +Sun May 7 16:11:09 2000 Joerg Schilling + * scsihack.c 1.26 + Support for new Mac OS X + +Mon May 1 20:06:37 2000 Joerg Schilling + * scsitransp.c 1.49 + scsi_maxmdma() cleaned up + +Thu Apr 27 15:06:42 2000 Joerg Schilling + * cdrecord.1 1.48 + Examples for cdda2wav + +Thu Apr 27 14:22:19 2000 Joerg Schilling + * drv_mmc.c 1.52 + No more error message forSony & long write in progress when Fixating + +Thu Apr 27 14:17:01 2000 Joerg Schilling + * diskid.c 1.23 + Better message for illegal ID (CD-RW) + all old CD-R's now print ILLEGAL OLD CODE + +Wed Apr 26 11:50:19 2000 Joerg Schilling + * cdrecord.c 1.100 + * cdrecord.h 1.60 + * scsi_cdr.c 1.89 + * drv_jvc.c 1.49 + * drv_dvd.c 1.45 + scsi_close_tr_session()/scsi_blank() with immed Parameter + +*************** Release 1.8.1 ******************* + +Thu Apr 27 14:22:19 2000 Joerg Schilling + * drv_mmc.c 1.52 + No error message for Sony & long write in progress while fixating + +Thu Apr 27 14:17:01 2000 Joerg Schilling + * diskid.c 1.23 + Better printout with illegal ID for CD-RW, all old CD-R's now give ILLEGAL OLD CODE + +Wed Apr 26 11:50:19 2000 Joerg Schilling + * cdrecord.c 1.100 + * cdrecord.h 1.60 + * scsi_cdr.c 1.89 + * drv_jvc.c 1.49 + * drv_dvd.c 1.45 + scsi_close_tr_session()/scsi_blank() with immed Parameter + +Mon Apr 24 12:32:14 2000 Joerg Schilling + * cdrecord.c 1.99 + Version -> 1.8.1 final, exitcode == 0 only if fixating in Dummy Mode fails + +Sat Apr 22 15:37:05 2000 Joerg Schilling + * diskid.c 1.22 + New manufacturer "VICTOR COMPANY OF JAPAN, LIMITED", "VIVASTAR AG" + +Sun Apr 16 17:07:55 2000 Joerg Schilling + * cdrecord.1 1.47 + BURN-Proof Option for Sanyo + +Sun Apr 16 17:07:11 2000 Joerg Schilling + * drv_mmc.c 1.51 + BURN-Proof Support for Sanyo + +Sun Apr 16 17:06:30 2000 Joerg Schilling + * cdrecord.c 1.98 + New Option driveropts= + better -dao usage + +Sun Apr 16 03:11:26 2000 Joerg Schilling + * scsi_cdr.c 1.88 + display BURN-Proof for cdrecord -prcap + +Sun Apr 16 03:08:58 2000 Joerg Schilling + * defaults.c 1.3 + * cdrecord.dfl 1.2 + driveropts new + +Sun Apr 16 02:16:29 2000 Joerg Schilling + * drv_sony.c 1.39 + * cdrecord.h 1.59 + * drv_simul.c 1.14 + * drv_philips.c 1.36 + * drv_jvc.c 1.48 + * drv_dvd.c 1.44 + open_session() now with cdr_t * Parameter for BURN-Proof + +Mon Apr 3 21:05:37 2000 Joerg Schilling + * scsi-linux-pg.c 1.23 + #include for strlen() + +Sat Apr 1 21:59:19 2000 Joerg Schilling + * diskid.c 1.21 + New manufaturer: "TAROKO INTERNATIONAL CO.,LTD.", "UNIDISC TECHNOLOGY CO.,LTD", "Hong Kong Digital Technology Co., Ltd.", "VIVA MAGNETICS LIMITED" + +Sat Mar 11 12:31:09 2000 Joerg Schilling + * scsi_cdr.c 1.87 + Sanyo CRD-R24S -> Philips CDD 521 + +Sat Mar 11 12:30:06 2000 Joerg Schilling + * drv_mmc.c 1.50 + send_opc_mmc() now calls send_opc() and suppresses ILLEGAL_REQUEST + +Sat Mar 11 12:26:37 2000 Joerg Schilling + * cdrecord.1 1.46 + WeB address changed + +Sun Feb 20 21:54:33 2000 Joerg Schilling + * cdrecord.h 1.58 + * cdrecord.c 1.97 + * cdrecord.1 1.45 + New Option -waiti for multi session from Pipe from mkisofs + +Sun Feb 20 20:56:09 2000 Joerg Schilling + * cdrecord.c 1.96 + scsi_in_progress() Test and usleep(100000) if Long Write in Progress + +Sun Feb 20 20:54:06 2000 Joerg Schilling + * drv_mmc.c 1.49 + scsi_in_progress() test for scsi_flush_cache() in fixate, send_cue() -> LOCAL + +Sun Feb 20 20:52:49 2000 Joerg Schilling + * cdrecord.h 1.57 + scsi_in_progress() new, send_cue() removed + +Sun Feb 20 20:52:15 2000 Joerg Schilling + * scsi_cdr.c 1.86 + scsi_in_progress() new + +Sat Feb 19 00:38:35 2000 Joerg Schilling + * cdrecord.c 1.95 + read Sectorsize from read_capacity too, for drivs without Blockdescriptor, dp->cdr_opc() new + +Sat Feb 19 00:33:54 2000 Joerg Schilling + * scsi_cdr.c 1.85 + send_opc() new + +Sat Feb 19 00:24:37 2000 Joerg Schilling + * cdrecord.h 1.56 + * drv_sony.c 1.38 + * drv_simul.c 1.13 + * drv_philips.c 1.35 + * drv_mmc.c 1.48 + * drv_jvc.c 1.47 + * drv_dvd.c 1.43 + Separate OPC code in driver interface + +Sun Feb 6 08:27:21 2000 Joerg Schilling + * scsi-sgi.c 1.20 + * scsi-openserver.c 1.17 + * scsi-linux-sg.c 1.41 + * scsi-aix.c 1.20 + * scsi-bsd-os.c 1.14 + * scsi-hpux.c 1.18 + * scsi-linux-pg.c 1.22 + * scsi-bsd.c 1.27 + added missing brackets in scsi_close() to make sure that scsi_close() really closes files + +Sun Feb 6 08:25:14 2000 Joerg Schilling + * scsi-linux-sg.c 1.40 + Maxdma now is correcteven if only a prallel port is present + +*************** Release 1.8 ******************* + +Fri Jan 28 10:01:48 2000 Joerg Schilling + * drv_mmc.c 1.47 + * drv_dvd.c 1.42 + load_media() with new doexit Parameter + Reload now does not make problems with notebook type drives + +Fri Jan 28 09:51:26 2000 Joerg Schilling + * drv_philips.c 1.34 + * cdrecord.h 1.55 + * cdrecord.c 1.94 + load_media() with new doexit Parameter + +Fri Jan 28 09:50:51 2000 Joerg Schilling + * scsi_cdr.c 1.84 + wait_unit_ready() does not print error message if scgp->silent >= 1 + +Wed Jan 26 11:48:08 2000 Joerg Schilling + * scsi_scan.c 1.7 + Initiator-ID test past havebus() + +Sun Jan 23 16:39:01 2000 Joerg Schilling + * cdrecord.c 1.93 + Better error message for open_scsi() + +Sun Jan 23 16:07:46 2000 Joerg Schilling + * scsi-unixware.c 1.9 + New code from SCO, -scanbus now works + +Sun Jan 23 00:44:28 2000 Joerg Schilling + * scsihack.c 1.25 + scsi-sco.c -> scsi-openserver.c + +Tue Jan 18 00:02:33 2000 Joerg Schilling + * cdrecord.c 1.92 + Version -> 1.8, mlockall()/setpri() problems do not cause abort + Note to -pad option for audio Files with wrong length + #include for SCO Openserver + +Thu Jan 13 01:32:35 2000 Joerg Schilling + * diskid.c 1.20 + Problems with m_digitalstor (97:27/01) in table docuented + +Thu Jan 13 01:11:45 2000 Joerg Schilling + * defaults.c 1.2 + CDR_DEVICE now superseedes /etc/default/cdrecord + +Tue Jan 11 01:46:47 2000 Joerg Schilling + * scsi-hpux.c 1.17 + sprintf(.../dev/rscsi...) now uses hex digits for tgt 0..15 + +Sat Jan 8 23:42:25 2000 Joerg Schilling + * scsi_cdr.c 1.83 + scsi_read() now looks for is_atapi to allow mkisofs & ATAPI to do multi-session + +Fri Jan 7 02:24:28 2000 Joerg Schilling + * scsihack.c 1.24 + Dummyfunctions fuor new Interface + +Fri Jan 7 02:22:36 2000 Joerg Schilling + * cdr_drv.c 1.19 + set_cdrcmds() now calls return() past exit() for lint's sake + +Wed Dec 29 14:01:03 1999 Joerg Schilling + * cdrecord.c 1.91 + exargs Strukt new + Setting to 2048 bytes/sector earlier for -msinfo + new function exscsi() + exfifo() -> excdr() + +Wed Dec 29 02:14:11 1999 Joerg Schilling + * cdrecord.h 1.54 + * fifo.c 1.21 + wait_faio() new + +Wed Dec 29 00:38:52 1999 Joerg Schilling + * diskid.c 1.19 + New manufacturer: "Hile Optical Disc Technology Corp." + "Friendly CD-Tek Co." + "Sound Sound Multi-Media Development Limited" + "kdg mediatech AG" + +Wed Dec 29 00:34:39 1999 Joerg Schilling + * cdrecord.1 1.44 + better dociumentation for SUID Installation + +Fri Dec 24 01:59:35 1999 Joerg Schilling + * fifo.c 1.20 + sp null pointer Problem in fifo_stats() fixed + input-buffer -> input buffer + +Tue Dec 7 01:07:24 1999 Joerg Schilling + * cdrecord.1 1.43 + added missing .TP + +Sun Dec 5 13:37:16 1999 Joerg Schilling + * fifo.c 1.19 + kill_fifo() now kil only if faio_pid > 0 + +Sat Dec 4 21:36:38 1999 Joerg Schilling + * diskid.c 1.18 + New manufacturer: EXIMPO & Seantram Technology Inc. + Seantram has been guessed before + +Sat Dec 4 14:15:16 1999 Joerg Schilling + * cdrecord.c 1.90 + intfifo()/exfifo() new + kill FIFO on comerr() and signals + +Sat Dec 4 14:12:41 1999 Joerg Schilling + * drv_dvd.c 1.41 + isgui as with drv_mmc.c added + +Tue Nov 30 14:48:12 1999 Joerg Schilling + * scsihack.c 1.23 + * scsi-linux-pg.c 1.21 + pg.h now locally available + +Sat Nov 27 21:38:54 1999 Joerg Schilling + * scsi-os2.c 1.12 + SRB in scsi_send() and scsi_reset() -> static to prevent core dump + +Sat Nov 20 17:49:38 1999 Joerg Schilling + * scsi-os2.c 1.11 + scgfiles array removed + set_error() new + added some ux_errno = EIO + wait_post() now calls DosResetEventSem() in any case + +Sat Nov 20 14:21:09 1999 Joerg Schilling + * scsi-os2.c 1.10 + DEBUG2/SCANDEBUG code removed + +Sat Nov 20 07:23:59 1999 Joerg Schilling + * diskid.c 1.17 + New manufacturer: Customer Pressing Oosterhout + Harmonic Hall Optical Disc Ltd. + DELPHI TECHNOLOGY INC. + +Sat Nov 20 06:45:18 1999 Joerg Schilling + * cdrecord.c 1.89 + Version -> 1.8a32 + 5 missing set_secsize(.. oldsize) added + +Sat Nov 20 06:44:02 1999 Joerg Schilling + * cdr_drv.c 1.18 + Kodak PDC-600 in driver recognition + +Sat Nov 20 06:43:12 1999 Joerg Schilling + * drv_mmc.c 1.46 + next_wr_addr() in driver struct for CD-ROM -> cmd_ill() + +Sat Nov 20 06:41:39 1999 Joerg Schilling + * fifo.c 1.18 + fixed typo for HAVE_DOSALLOCSHAREDMEM + +Fri Nov 12 10:00:19 1999 Joerg Schilling + * scsitransp.c 1.48 + scsi_yes() now global + +Fri Nov 12 09:59:49 1999 Joerg Schilling + * scsitransp.h 1.26 + scsi_yes() new + +Mon Oct 18 02:38:11 1999 Joerg Schilling + * cdrecord.c 1.88 + always set TAO mode on startup to make checkdsize() working + +Mon Oct 18 01:34:34 1999 Joerg Schilling + * scsilog.c 1.9 + * scsi_cdr.c 1.82 + i_to_short() -> i_to_2_byte() + +Mon Oct 18 01:15:21 1999 Joerg Schilling + * scsilog.c 1.8 + * scsi_cdr.c 1.81 + * drv_dvd.c 1.40 + * drv_mmc.c 1.45 + * drv_philips.c 1.33 + * iso9660.h 1.4 + a_to_u_short() -> a_to_u_2_byte() + +Mon Oct 18 01:04:17 1999 Joerg Schilling + * isosize.c 1.6 + utypes.h wegen intcvt.h + +Mon Oct 18 00:38:01 1999 Joerg Schilling + * scsi_cdr.c 1.80 + * drv_sony.c 1.37 + * drv_jvc.c 1.46 + * drv_dvd.c 1.39 + a_to_3_byte() -> a_to_u_3_byte() + +Mon Oct 18 00:10:18 1999 Joerg Schilling + * drv_dvd.c 1.38 + * drv_sony.c 1.36 + * drv_jvc.c 1.45 + * drv_philips.c 1.32 + i_to_long() -> i_to_4_byte() + +Mon Oct 18 00:04:43 1999 Joerg Schilling + * scsi_cdr.c 1.79 + * isosize.c 1.5 + * drv_dvd.c 1.37 + * drv_mmc.c 1.44 + * drv_jvc.c 1.44 + * drv_sony.c 1.35 + * drv_philips.c 1.31 + * audiosize.c 1.13 + * cdrecord.c 1.87 + modified to use intcvt.h and a_to_4_byte() + +Sun Oct 17 23:21:40 1999 Joerg Schilling + * iso9660.h 1.3 + removed i_to_* and a_to_* macros -> intcvt.h + +Sun Oct 17 22:51:51 1999 Joerg Schilling + * scsireg.h 1.19 + struct scsi_capacity modified to use Int32_t + +Sat Oct 16 13:52:29 1999 Joerg Schilling + * scsi_cdr.c 1.78 + * drv_mmc.c 1.43 + * auinfo.c 1.3 + * drv_sony.c 1.34 + malloc() casts for K&R C + +Fri Oct 15 20:28:25 1999 Joerg Schilling + * cdrecord.h 1.53 + * cdr_drv.c 1.17 + * cdrecord.c 1.86 + set_cdrmds() if 2. Parameter is NULL returns BOOL + for cdrecord to check for dvd driver or not + +Fri Oct 15 20:19:36 1999 Joerg Schilling + * scsi_cdr.c 1.77 + Optima Dis Covery 650 CD-R Inquiry recognition new + +Fri Oct 15 20:17:17 1999 Joerg Schilling + * scsi-beos.c 1.9 + * scsi-osf.c 1.12 + typos removed + +Thu Oct 7 15:33:17 1999 Joerg Schilling + * scsi-bsd-os.c 1.13 + * scsi-aix.c 1.19 + mising bracket in scsi_open() fixed + +Fri Sep 17 17:59:18 1999 Joerg Schilling + * cdrecord.c 1.85 + Version -> 1.8a29 + libscg version check + #incude for win32 realtime pri Code + +Fri Sep 17 17:56:57 1999 Joerg Schilling + * scsi_cdr.c 1.76 + endless lookp in mmc_cap() removed: no medium (wait_unit_ready()) + +Fri Sep 17 15:48:09 1999 Joerg Schilling + * scsitransp.c 1.47 + HAVE_SCG #define earlier + +Fri Sep 17 15:42:39 1999 Joerg Schilling + * scsi-linux-pg.c 1.20 + duplicates with scsi-linux-sg.c fuer scg__version() removed + +Fri Sep 17 15:36:55 1999 Joerg Schilling + * scsitransp.c 1.46 + #ifdef HAVE_SCG for _scg_trans_version[] + +Fri Sep 17 15:09:54 1999 Joerg Schilling + * scsi-wnt.c 1.17 + * scsi-vms.c 1.15 + * scsi-unixware.c 1.8 + * scsi-sgi.c 1.19 + * scsi-osf.c 1.11 + * scsi-sco.c 1.13 + * scsi-os2.c 1.9 + * scsi-next.c 1.16 + * scsi-linux-sg.c 1.39 + * scsi-linux-pg.c 1.19 + * scsi-hpux.c 1.16 + * scsi-bsd.c 1.26 + * scsi-bsd-os.c 1.12 + * scsi-beos.c 1.8 + * scsi-aix.c 1.18 + * scsitransp.c 1.45 + * scsitransp.h 1.25 + scg_version() new + +Fri Sep 17 14:55:17 1999 Joerg Schilling + * scsihack.c 1.22 + Comment changed + +Tue Sep 14 10:57:29 1999 Joerg Schilling + * scsi-linux-sg.c 1.38 + scgfile variable in max_dma corrected from scgfile -> scglocal(scgp)->scgfile + +Fri Sep 10 14:06:19 1999 Joerg Schilling + * diskid.c 1.16 + Better text for Disk Typ (e.g. Long strategy type) + +Thu Sep 9 12:30:38 1999 Joerg Schilling + * auinfo.c 1.2 + isrc_illchar() Prorotype new + +Wed Sep 8 17:57:45 1999 Joerg Schilling + * diskid.c 1.15 + New manufacturer: Guann Yinn Co. Ltd. + Opti.Me.S. S.p.A. + Nacar Media srl + +Wed Sep 8 12:45:37 1999 Joerg Schilling + * scsi-wnt.c 1.16 + missing bracket at malloc(amt) + +Tue Sep 7 17:13:09 1999 Joerg Schilling + * scsi-wnt.c 1.15 + * scsi-unixware.c 1.7 + * scsi-vms.c 1.14 + * scsi-sgi.c 1.18 + * scsi-sco.c 1.12 + * scsi-osf.c 1.10 + * scsi-next.c 1.15 + * scsi-os2.c 1.8 + * scsi-linux-sg.c 1.37 + * scsi-linux-pg.c 1.18 + * scsi-hpux.c 1.15 + * scsi-bsd.c 1.25 + * scsi-beos.c 1.7 + * scsi-bsd-os.c 1.11 + * scsi-aix.c 1.17 + * scsitransp.c 1.44 + First error messages past scgp->errstr + less calls to comerr() + +Tue Sep 7 17:07:55 1999 Joerg Schilling + * scsitransp.h 1.24 + errstr & errptr new in SCSI * + open_scsi() with errs Parameter + +Tue Sep 7 16:47:21 1999 Joerg Schilling + * cdrecord.c 1.84 + Now using new open_scsi() + added some calls to flush() + +Tue Sep 7 16:46:04 1999 Joerg Schilling + * cdrecord.1 1.42 + 1.6 -> 1.8 + +Tue Sep 7 00:21:08 1999 Joerg Schilling + * drv_mmc.c 1.42 + * drv_jvc.c 1.43 + * drv_dvd.c 1.36 + flush() for Blanking new + +Fri Sep 3 11:57:35 1999 Joerg Schilling + * scsi-linux-sg.c 1.36 + * scsi-linux-pg.c 1.17 + scsi_initiator_id() in scsi-linux-pg.c -> pg_initiator_id() + +Thu Sep 2 18:57:59 1999 Joerg Schilling + * cdrecord.c 1.83 + 1.8a24 -> 1.8a26 + Ricoh DAO Bug (fwa != -150) workaround + Realtimepri for Win32 + +Thu Sep 2 14:42:14 1999 Joerg Schilling + * scsi_scan.c 1.6 + scsi_initiator_id() new + Now prints bus,tgt,lun before selektor + +Thu Sep 2 13:32:57 1999 Joerg Schilling + * scsitransp.h 1.23 + * scsi-wnt.c 1.14 + * scsi-vms.c 1.13 + * scsi-unixware.c 1.6 + * scsi-sco.c 1.11 + * scsi-sgi.c 1.17 + * scsi-osf.c 1.9 + * scsi-os2.c 1.7 + * scsi-next.c 1.14 + * scsi-linux-sg.c 1.35 + * scsi-hpux.c 1.14 + * scsi-linux-pg.c 1.16 + * scsi-bsd.c 1.24 + * scsi-bsd-os.c 1.10 + * scsi-aix.c 1.16 + * scsi-beos.c 1.6 + * scsitransp.c 1.43 + scsi_initiator_id() new + +Mon Aug 30 13:36:17 1999 Joerg Schilling + * scsitransp.c 1.42 + * drv_simul.c 1.12 + * fifo.c 1.17 + #include libport.h new + +Sun Aug 29 01:42:10 1999 Joerg Schilling + * fifo.c 1.16 + shared memory for OS/2 + +Sun Aug 29 00:52:56 1999 Joerg Schilling + * fifo.c 1.15 + Typo fixed (\f instead of \n) + +Tue Aug 10 21:34:03 1999 Joerg Schilling + * scsitransp.c 1.41 + * scsi-wnt.c 1.13 + * scsi-vms.c 1.12 + * scsi-unixware.c 1.5 + * scsi-sco.c 1.10 + * scsi-sgi.c 1.16 + * scsi-osf.c 1.8 + * scsi-os2.c 1.6 + * scsi-next.c 1.13 + * scsi-linux-sg.c 1.34 + * scsi-linux-pg.c 1.15 + * scsi-hpux.c 1.13 + * scsi-bsd.c 1.23 + * scsi-bsd-os.c 1.9 + * scsi-beos.c 1.5 + * scsi-aix.c 1.15 + Static locale variable removed + Test for openbydev + scsi_freebuf() new + +Mon Aug 9 00:39:37 1999 Joerg Schilling + * scsitransp.h 1.22 + SCSI *->bufbase & scsi_freebuf() new + +Sat Aug 7 22:24:46 1999 Joerg Schilling + * scsitransp.h 1.21 + running/curcmdname/local new in SCSI * + +Sat Aug 7 22:22:36 1999 Joerg Schilling + * scsitransp.c 1.40 + * scsi-wnt.c 1.12 + * scsi-vms.c 1.11 + * scsi-unixware.c 1.4 + * scsi-sgi.c 1.15 + * scsi-sco.c 1.9 + * scsi-osf.c 1.7 + * scsi-os2.c 1.5 + * scsi-next.c 1.12 + * scsi-linux-sg.c 1.33 + * scsi-linux-pg.c 1.14 + * scsi-hpux.c 1.12 + * scsi-bsd.c 1.22 + * scsi-bsd-os.c 1.8 + * scsi-beos.c 1.4 + * scsi-aix.c 1.14 + scg_maxdma removed + scsi_running/scsi_command -> SCSI * struct + +Sat Aug 7 21:05:51 1999 Joerg Schilling + * scsi-vms.c 1.10 + scsi_close() new + +Sun Aug 1 22:08:46 1999 Joerg Schilling + * fifo.c 1.14 + WRITER_MAXWAIT & READER_MAXWAIT -> 240s for SAO SCSI Timeout + usleep() debug code + +Sun Aug 1 17:14:54 1999 Joerg Schilling + * cdrecord.1 1.41 + Better documentation for -multi Option (DAO mode) + +Sun Aug 1 17:05:30 1999 Joerg Schilling + * cdrecord.c 1.82 + -msinfo now works even if drive is in DAO mode + Now corrects trackstart values for second session in DAO Mode + +Sun Aug 1 16:51:35 1999 Joerg Schilling + * drv_sony.c 1.33 + * drv_simul.c 1.11 + * drv_philips.c 1.30 + * drv_mmc.c 1.41 + * drv_jvc.c 1.42 + * drv_dvd.c 1.35 + speedp == 0 allowed if speed should remain as is + +Sun Aug 1 16:10:40 1999 Joerg Schilling + * drv_sony.c 1.32 + * drv_simul.c 1.10 + * drv_mmc.c 1.40 + * drv_jvc.c 1.41 + * drv_dvd.c 1.34 + recovery_needed()/recover()/reserve_track() References to Philips driver removed + +Sun Aug 1 16:02:03 1999 Joerg Schilling + * drv_philips.c 1.29 + * scsi_cdr.c 1.75 + * cdr_drv.c 1.16 + * cdrecord.h 1.52 + Several functions scsi_cdr.c -> drv_philips.c + new function cmd_ill() + +Sun Aug 1 13:25:42 1999 Joerg Schilling + * drv_dvd.c 1.33 + phys_end in dvd_structure_00 may be 0 for empty session + +Sun Jul 25 13:52:02 1999 Joerg Schilling + * scsitransp.c 1.39 + scsi_close() new + __scgp removed + +Sun Jul 25 13:36:47 1999 Joerg Schilling + * scsi-wnt.c 1.11 + * scsi-unixware.c 1.3 + * scsi-sgi.c 1.14 + * scsi-osf.c 1.6 + * scsi-sco.c 1.8 + * scsi-os2.c 1.4 + * scsi-next.c 1.11 + * scsi-linux-sg.c 1.32 + * scsi-linux-pg.c 1.13 + * scsi-hpux.c 1.11 + * scsi-bsd.c 1.21 + * scsi-bsd-os.c 1.7 + * scsi-beos.c 1.3 + * scsi-aix.c 1.13 + scsi_close() new + +Sun Jul 25 00:50:18 1999 Joerg Schilling + * scsitransp.h 1.20 + close_scsi() and scsi_smalloc()/scsi_sfree() new + +Sat Jul 24 22:26:22 1999 Joerg Schilling + * scsitransp.h 1.19 + scsi_close() new + +Sat Jul 24 22:25:39 1999 Joerg Schilling + * scsi-vms.c 1.9 + last changes fro Mr. Heuser + Max Timeout corrected + +Sat Jul 24 22:22:44 1999 Joerg Schilling + * scsi-next.c 1.10 + Kernel Driver is in undefined state if SCSI Bus is not valid -> bugfix & debug prints + +Sat Jul 24 20:43:47 1999 Joerg Schilling + * drv_mmc.c 1.39 + from BCD converson (debug) for Ricoh test + Trying to suppress error messages for newer MITSUMI ATAPI drives + +Sat Jul 24 19:27:06 1999 Joerg Schilling + * cdrecord.1 1.40 + Better documentation for -pad/padsize= + +Sat Jul 24 19:25:34 1999 Joerg Schilling + * diskid.c 1.14 + New manufacturer: OPTROM + AUDIO DISTRIBUTORS + Acer Media Technology + +Sat Jul 24 19:23:49 1999 Joerg Schilling + * cdrecord.c 1.81 + -> 1.8a24 & write_buf() Test Code + +Sat Jul 24 19:19:22 1999 Joerg Schilling + * cdrecord.c 1.80 + Check HAVE_SETPRIORITY and HAVE_NICE + +Sat Jul 24 19:17:30 1999 Joerg Schilling + * cdrecord.c 1.79 + Version -> 1.8a23 + Signalhandler for wait time before burning + O_BINARY define for win32 + setmode(TDIN, O_BINARY) for win32 + track[] Array now MAX_TRACKS+2 + Print Drive Buffer size and FIFO size + -force Flag to blank problematic CD-RW's + set sector size to 2k before burning for Plextor + set_speed...() now with speedp Parameter to allow MMC to send back actual values + DAO for MMC + new Options -atip/-useinfo/-force/-dao/mcn=text/isrc=text/index=list + first Test for continuous Drive buffer cap printouts + set_secsize() new (for Plextor & DAO) + EMX Wildcard expansion for OS/2 + Timeout for DAO -> minimal 200s + print_toc() \ removed for K&R C + print_toc() with CD-Text + DosSetPriority() now korrectly doing delta + setpregaps() sets values for lead-in/out + checktsize() checks for DAO + +Sun Jul 18 14:39:31 1999 Joerg Schilling + * cdrecord.h 1.51 + * scsi_cdr.c 1.74 + open_scsi() -> libscg + +Sat Jul 17 15:54:11 1999 Joerg Schilling + * scsitransp.c 1.38 + MAX DMA for Solaris x86 from 32k -> 56k + scsierr() checks for sense[0] != 0 + scsi_sense_{key!code!qual} return 0 if scsierr() == FALSE + +Sat Jul 17 15:37:00 1999 Joerg Schilling + * scsitransp.h 1.18 + open_scsi() for scsiopen.c new + +Mon Jun 28 01:11:18 1999 Joerg Schilling + * scsi-linux-pg.c 1.12 + set CDB to 0 past cdb_len + +Sun Jun 6 19:41:11 1999 Joerg Schilling + * drv_philips.c 1.28 + CDR_SWABAUDIO for pioneer_dws114x + +Sun Jun 6 19:40:29 1999 Joerg Schilling + * modes.c 1.13 + get_mode_params() now return FALSE if has_mode_page() returns FALSE + +Sun Jun 6 19:39:02 1999 Joerg Schilling + * scsi_cdr.c 1.73 + Hack for NT-4.0 ASPI ISE inquiry fake (bug in add_len) + workaround for Ricoh NOT_READY key in get Mode page 2A + +Thu May 13 16:55:13 1999 Joerg Schilling + * scsi-wnt.c 1.10 + #define for format to avoid hiding messages + Now uses dlopen() + ha_inquiry() new + better paraeters in scsi_open() + SRB_HaID/SRB_HaId unified + +Thu May 13 15:07:36 1999 Joerg Schilling + * scsi_cdr.c 1.72 + check scsi_open() return code for < 0 + +Thu May 13 15:00:48 1999 Joerg Schilling + * modes.c 1.12 + Cast for ANSI C comparison + +Thu May 13 15:00:07 1999 Joerg Schilling + * drv_sony.c 1.31 + Cast for ANSI C + fixed typo in error texts + +Thu May 13 14:31:50 1999 Joerg Schilling + * drv_jvc.c 1.40 + mods for ANSI C comparison + +Thu May 13 14:31:12 1999 Joerg Schilling + * cdrecord.1 1.39 + New Options -atip and index= + +Thu May 13 12:00:58 1999 Joerg Schilling + * scsierrs.c 2.21 + field_ptr now correctly used for progress printing on NOT_READY + +Wed May 12 01:42:18 1999 Joerg Schilling + * scsi-os2.c 1.3 + -scanbus support + +Wed May 12 01:01:54 1999 Joerg Schilling + * drv_philips.c 1.27 + * scsi_cdr.c 1.71 + * cdr_drv.c 1.15 + * scsidefs.h 1.21 + DEV_RICOH_RO_1060C new (preliminary) + +Mon May 3 01:30:22 1999 Joerg Schilling + * scsi-wnt.c 1.9 + changed names and indented + WBOOL definition to distinguish BOOL from Windows.h and BOOL from standard.h + busses new + compare busno with busses + Debug File removed + EventStatus as result of WaitForSingleObject() + set_error() new for correct error codes + scsiabort() new + +Tue Apr 27 23:11:59 1999 Joerg Schilling + * scsi-wnt.c 1.8 + Debug File removed + +Tue Apr 27 21:06:48 1999 Joerg Schilling + * scsi-wnt.c 1.7 + -scanbus now works + file matrix removed + check for nuber of SCSI Busses + +Mon Apr 26 22:37:40 1999 Joerg Schilling + * scsi-wnt.c 1.6 + Try to implement -scanbus + +Mon Apr 26 22:36:00 1999 Joerg Schilling + * scsi-wnt.c 1.5 + sp->u_scb.cmd_scb[0] = s.SRB_Status -> sp->u_scb.cmd_scb[0] = s.SRB_TargStat + error code SCG_FATAL -> SCG_RETRYABLE + +Mon Apr 26 22:35:00 1999 Joerg Schilling + * scsi-wnt.c 1.4 + Indented II + +Mon Apr 26 22:34:15 1999 Joerg Schilling + * scsi-wnt.c 1.3 + Indented + +Mon Apr 26 22:33:41 1999 Joerg Schilling + * scsi-wnt.c 1.2 + Better comment + +Mon Apr 26 22:32:32 1999 Joerg Schilling + * scsi-wnt.c 1.1 + date and time created 99/04/26 21:32:32 by joerg + +Sun Apr 25 09:48:05 1999 Joerg Schilling + * cdrecord.h 1.50 + is_copy()/is_scms() new + TI_COPY/TI_SCMS new + read_subchannel() new + pr_manufacturer()/disk_rcap() with rw/audio Parameters + +Sun Apr 25 09:46:03 1999 Joerg Schilling + * drv_mmc.c 1.38 + clear -dummy status by clearin -dummy state + COPY & SCMS handling + +Sat Apr 24 14:10:19 1999 Joerg Schilling + * diskid.c 1.13 + * drv_mmc.c 1.37 + pr_manufacturer()/disk_rcap() now using rw and audio Parameter + +Sat Apr 24 14:05:48 1999 Joerg Schilling + * drv_philips.c 1.26 + pr_manufacturer()/disk_rcap() now using rw and audio Parameter + Printing of ATIP "restricted" + +Sat Apr 24 14:04:38 1999 Joerg Schilling + * drv_sony.c 1.30 + pr_manufacturer()/disk_rcap() now using rw and audio Parameter + printf() Format (%l..) + +Sat Apr 24 14:02:11 1999 Joerg Schilling + * scsi_cdr.c 1.70 + read_subchannel() new + +Sat Apr 24 13:03:56 1999 Joerg Schilling + * scsihack.c 1.21 + scsi-wnt.c new + +Sun Apr 18 21:04:15 1999 Joerg Schilling + * defaults.c 1.1 + date and time created 99/04/18 20:04:15 by joerg + +Sun Apr 18 19:56:45 1999 Joerg Schilling + * drv_sony.c 1.29 + * drv_simul.c 1.9 + * drv_philips.c 1.25 + * drv_mmc.c 1.36 + * drv_jvc.c 1.39 + * cdr_drv.c 1.14 + * drv_dvd.c 1.32 + * cdrecord.h 1.49 + New driver function cdr_send_cue + +Sun Apr 18 19:28:03 1999 Joerg Schilling + * drv_jvc.c 1.38 + g6 & g7 test functions + +Sun Apr 18 18:40:56 1999 Joerg Schilling + * cdrecord.h 1.48 + index= Option new + +Sun Apr 18 18:40:54 1999 Joerg Schilling + * drv_mmc.c 1.35 + index= Option new + +Sun Apr 18 00:42:59 1999 Joerg Schilling + * cdrecord.h 1.47 + New Flags F_SAO/F_WRITE/F_PREGAP/F_FORCE + isrc in struct track + is_tao()/is_pregap() new + ds_cdrflags in struct disk_status + cdr_buffer_cap in struct cdr_cmd + cdr_set_speed_dummy with *speedp - to allow mmc to return value + Functions for auinfo.c + +Sun Apr 18 00:18:30 1999 Joerg Schilling + * scsi-linux-sg.c 1.31 + MAX_SCG & MAX_TGT -> 16 + Debug function for printing buscookies[] and scgfiles[][][] + sg_mapbus() now with Bus Parameter and spcial handling for holes in buscookies[] + sg_setup() doing range check + better handling of Status byte in extended Code for mk2 Interface + +Sun Apr 18 00:09:52 1999 Joerg Schilling + * scsi-linux-pg.c 1.11 + Search slot for PP Bus backwards, as buscookies[] may have holes + +Sat Apr 17 22:12:22 1999 Joerg Schilling + * drv_jvc.c 1.37 + New Function in Driver table to read Buffer capacity + buf_cap_teac(), read_peak_buffer_cap_teac (), buffer_inquiry_teac(), check_buffer_teac() new + +Sat Apr 17 19:32:41 1999 Joerg Schilling + * scsi_scan.c 1.5 + Enhancements for 16 SCSI busses and 17 Targets/Bus + +Sat Apr 17 19:29:25 1999 Joerg Schilling + * cdr_drv.c 1.13 + buf_dummy() new + New Function in Driver table to read Buffer capacity + +Sat Apr 17 19:28:27 1999 Joerg Schilling + * drv_sony.c 1.28 + * drv_mmc.c 1.34 + * drv_philips.c 1.24 + * drv_simul.c 1.8 + * drv_dvd.c 1.31 + New Function in Driver table to read Buffer capacity + +Sat Apr 17 19:25:47 1999 Joerg Schilling + * drv_sony.c 1.27 + Workaround for CDU 620 (can not read lead-in Start time) + +Sat Apr 17 18:57:36 1999 Joerg Schilling + * scsitransp.c 1.37 + MAX_SCG & MAX_TGT -> 16 + Workaround for /dev/scg if Target > 7 + +Sat Apr 17 18:55:26 1999 Joerg Schilling + * scsi-bsd-os.c 1.6 + * scsi-vms.c 1.8 + * scsi-unixware.c 1.2 + * scsi-sgi.c 1.13 + * scsi-sco.c 1.7 + * scsi-osf.c 1.5 + * scsi-os2.c 1.2 + * scsi-next.c 1.9 + * scsi-hpux.c 1.10 + * scsi-bsd.c 1.20 + * scsi-aix.c 1.12 + MAX_SCG & MAX_TGT -> 16 + +Sat Apr 17 18:47:39 1999 Joerg Schilling + * scsi-next.c 1.8 + scsi_setup() & scsi_havebus() with scgp Pointer (bug) + +Sat Apr 17 17:09:00 1999 Joerg Schilling + * scsitransp.c 1.36 + limit SunOS 4.x maxdma to 64k-1 + +Sat Apr 17 13:14:24 1999 Joerg Schilling + * cdrecord.1 1.38 + -force flag and -useinfo new + +Tue Apr 13 01:29:14 1999 Joerg Schilling + * diskid.c 1.12 + m_seantram Index 28 (typo) -> 83 + +Tue Apr 13 01:06:45 1999 Joerg Schilling + * modes.c 1.11 + Test in has_mode_page() if desired page is really available for JVC 2080 FW Bug + +Fri Apr 9 20:49:08 1999 Joerg Schilling + * drv_jvc.c 1.36 + speed -> *speedp Parameter in speed_select() + +Fri Apr 9 01:03:54 1999 Joerg Schilling + * scsi_cdr.c 1.69 + * drv_dvd.c 1.30 + * audiosize.c 1.12 + Signed/unsiged comparisons with cast + +Fri Apr 9 00:46:07 1999 Joerg Schilling + * scsilog.c 1.7 + cast for comparing unsigned > int + +Fri Apr 9 00:33:17 1999 Joerg Schilling + * scsi_cdr.c 1.68 + read_buff_cap() Ulong -> int + +Fri Apr 9 00:32:35 1999 Joerg Schilling + * diskid.c 1.11 + New manufacturer: "Woongjin Media corp" + "INFODISC Technology Co., Ltd." + "UNITECH JAPAN INC." + "AMS Technology Inc." + +Tue Apr 6 22:08:31 1999 Joerg Schilling + * drv_mmc.c 1.33 + speed -> *speedp Parameter in speed_select() + Read write speed Auslesen and set *speedp + Test for dsp->ds_cdrflags & RF_WRITE + first DAO enhancements + +Tue Apr 6 22:05:25 1999 Joerg Schilling + * scsi_cdr.c 1.67 + speed -> *speedp Parameter IN speed_select() + read_buffer() WITH mode Parameter + scsi_get_speed() new + read_buff_cap() prints Data if sp && fp == NULL and avoids division by 0 + read_cdtext() new + Workaround for Philips CDD-522 cannot do read TOC MSN + +Tue Apr 6 01:15:52 1999 Joerg Schilling + * drv_philips.c 1.23 + speed -> *speedp Parameter in speed_select() + Test for dsp->ds_cdrflags & RF_WRITE + +Tue Apr 6 01:13:14 1999 Joerg Schilling + * drv_sony.c 1.26 + ATIP Support + +Fri Apr 2 16:06:31 1999 Joerg Schilling + * diskid.c 1.10 + "Seantram Technology Inc." new (guess) + +Fri Apr 2 15:50:28 1999 Joerg Schilling + * drv_sony.c 1.25 + * drv_simul.c 1.7 + * drv_dvd.c 1.29 + speed -> *speedp Parameter in speed_select() + +Sun Mar 28 15:31:56 1999 Joerg Schilling + * scsimmc.h 1.4 + struct mmc_cue new + +Sun Mar 28 15:29:43 1999 Joerg Schilling + * cdrecord.1 1.37 + -dao and -audio default for .au & .wav + +Fri Mar 12 02:05:58 1999 Joerg Schilling + * auinfo.c 1.1 + date and time created 99/03/12 02:05:58 by joerg + +Sun Mar 7 22:30:42 1999 Joerg Schilling + * fifo.c 1.13 + roundup(bufsize, pagesize) to make each Segment page aligned + +Wed Mar 3 23:45:20 1999 Joerg Schilling + * diskid.c 1.9 + New manufacturers: vanguard, grandadv, taeil, kingpro, digitalstor + +Wed Mar 3 22:58:38 1999 Joerg Schilling + * diskid.c 1.8 + New RCAP Liste + +Sat Feb 20 00:00:44 1999 Joerg Schilling + * scsi_cdr.c 1.66 + read_buffer() new + timeout for read_toc_philips() -> 240s for TEAC + read_master_cue() new + send_cue_sheet() new + read_buff_cap() new + +Sun Jan 31 22:37:38 1999 Joerg Schilling + * wm_packet.c 1.11 + * cdrecord.c 1.78 + carriage Return to beginning of Track... Strings to make error message not overwrite position + +Sun Jan 31 19:50:01 1999 Joerg Schilling + * cdrecord.c 1.77 + ignore dev= values from /etc/default/cdrecord for -scanbus + +Sun Jan 31 19:23:53 1999 Joerg Schilling + * scsi_cdr.c 1.65 + Suport for ACER CR-4020C + +Sun Jan 31 19:23:05 1999 Joerg Schilling + * drv_philips.c 1.22 + scgp->inq->ansi_version = 1; -> scgp->inq->data_format = 1; to make Plasmon RF-4100 work again + +Sun Jan 31 18:55:45 1999 Joerg Schilling + * cdrecord.1 1.36 + Hint for SVr4 and POSIX Realtime scheduler + +Sun Jan 31 18:49:06 1999 Joerg Schilling + * scsi-bsd.c 1.19 + scsi_maxdma() from MAXPHYS -> DFLTPHYS + +Sat Dec 12 12:36:09 1998 Joerg Schilling + * scsi-beos.c 1.2 + sccsid[] -> __sccsid[] + +Sun Dec 6 13:16:25 1998 Joerg Schilling + * scsi-beos.c 1.1 + date and time created 98/12/06 13:16:25 by joerg + +Sun Dec 6 12:41:50 1998 Joerg Schilling + * scsihack.c 1.20 + BeOS new + +Sun Dec 6 12:41:30 1998 Joerg Schilling + * scsi-vms.c 1.7 + New Version past phone call with vaxinf@CHCLU.CHEMIE.UNI-KONSTANZ.DE + +Sun Dec 6 12:10:54 1998 Joerg Schilling + * cdrecord.1 1.35 + FreeBSD device name bug + New address for Mailing List + Documentation of /etc/default/cdrecord + +Sat Dec 5 13:46:27 1998 Joerg Schilling + * cdrecord.c 1.76 + HAVE_SYS_RESOURCE_H new (BeOS) + 1.8a13 -> 1.8a14 + cdr_defaults() new + +Sat Dec 5 13:38:16 1998 Joerg Schilling + * cdrecord.h 1.46 + default.c/cdr_defaults() new + +Sun Nov 29 19:40:50 1998 Joerg Schilling + * scsi-sco.c 1.6 + cleaned up and permission to use /dev/xxx:target,lun + +Sun Nov 29 19:27:55 1998 Joerg Schilling + * scsidefs.h 1.20 + fused + +Sun Nov 29 19:25:54 1998 Joerg Schilling + * scgio.h 2.14 + Splitted into scgcmd.h and scgio.h + +Sun Nov 29 19:23:33 1998 Joerg Schilling + * scsi-unixware.c 1.1 + date and time created 98/11/29 19:23:33 by joerg + +Sun Nov 29 19:22:45 1998 Joerg Schilling + * scsihack.c 1.19 + UNIXWARE new + +Sun Nov 29 19:15:04 1998 Joerg Schilling + * cdrecord.c 1.75 + scgio.h -> scgcmd.h/scgio.h, scgio.h scgcmd.h scsidefs.h scsireg.h scsitransp.h -> include/scg, 1.8a11 -> 1.8a13 + +Sun Nov 29 19:14:20 1998 Joerg Schilling + * scsierrs.c 2.20 + * scsitransp.c 1.35 + * cdr_drv.c 1.12 + * modes.c 1.10 + * scsilog.c 1.6 + * wm_packet.c 1.10 + * scsi_scan.c 1.4 + * scsi_cdr.c 1.64 + * audiosize.c 1.11 + * drv_sony.c 1.24 + * drv_simul.c 1.6 + * drv_philips.c 1.21 + * drv_mmc.c 1.32 + * drv_jvc.c 1.35 + * drv_dvd.c 1.28 + scgio.h -> scgcmd.h/scgio.h, scgio.h scgcmd.h scsidefs.h scsireg.h scsitransp.h -> include/scg + +Sun Nov 29 00:39:42 1998 Joerg Schilling + * scsi-sco.c 1.5 + Correctly return Sense Data, EIO if errno == 0 + +Sat Nov 28 12:32:00 1998 Joerg Schilling + * scsierrs.c 2.19 + asc <= 80 -> asc < 80 for invalid sense code + +Sat Nov 28 00:49:19 1998 Joerg Schilling + * scsierrs.c 2.18 + Missing NULL as terminator for sd_ccs_error_str[] added + +Wed Nov 25 22:23:07 1998 Joerg Schilling + * scsi-linux-pg.c 1.10 + pg_send() Prototyp new + +Wed Nov 25 22:22:46 1998 Joerg Schilling + * scsitransp.c 1.34 + HAVE_PARAM_H -> HAVE_SYS_PARAM_H (Typo) + +Sun Nov 22 15:50:37 1998 Joerg Schilling + * cdrecord.c 1.74 + 1.8a9 -> 1.8a11, DosSetPriority() new + +Sun Nov 22 15:26:16 1998 Joerg Schilling + * isosize.c 1.4 + * audiosize.c 1.10 + Now using statdefs.h + +Sat Nov 21 23:41:31 1998 Joerg Schilling + * scsitransp.c 1.33 + #ifdef HAVE_PARAM_H for VMS + +Sat Nov 21 21:38:31 1998 Joerg Schilling + * scsi_cdr.c 1.63 + unsigned int cast for char Parameter in i_to_short() + +Sat Nov 7 22:21:28 1998 Joerg Schilling + * cdrecord.c 1.73 + 1.8a8 -> 1.8a9 + +Fri Nov 6 23:49:59 1998 Joerg Schilling + * scsi-linux-sg.c 1.30 + Typo in scsi_send() header + +Mon Nov 2 22:22:23 1998 Joerg Schilling + * scsi-bsd.c 1.18 + Typ bus -> busno for CAM removed + +Mon Nov 2 14:55:22 1998 Joerg Schilling + * scsi-os2.c 1.1 + date and time created 98/11/02 14:55:22 by joerg + +Mon Nov 2 13:24:30 1998 Joerg Schilling + * scsihack.c 1.18 + Now completely using SCSI *scgp as Function parameter + scsi-os2.c new + +Mon Nov 2 14:27:10 1998 Joerg Schilling + * scsi-vms.c 1.6 + * scsi-sgi.c 1.12 + * scsi-sco.c 1.4 + * scsi-osf.c 1.4 + * scsi-next.c 1.7 + * scsi-linux-sg.c 1.29 + * scsi-linux-pg.c 1.9 + * scsi-hpux.c 1.9 + * scsi-bsd.c 1.17 + * scsi-bsd-os.c 1.5 + * scsi-aix.c 1.11 + * scsierrs.c 2.17 + * scsitransp.c 1.32 + * scsitransp.h 1.17 + * cdrecord.c 1.72 + * cdrecord.h 1.45 + * cdr_drv.c 1.11 + * drv_mmc.c 1.31 + * drv_philips.c 1.20 + * drv_jvc.c 1.34 + * drv_dvd.c 1.27 + * drv_simul.c 1.5 + * drv_sony.c 1.23 + * scsi_cdr.c 1.62 + * modes.c 1.9 + * scsi_scan.h 1.2 + * scsi_scan.c 1.3 + * scsilog.c 1.5 + * wm_packet.c 1.9 + Now completely using SCSI *scgp as Function parameter + +Thu Oct 29 15:59:52 1998 Joerg Schilling + * scsihack.c 1.17 + * scsitransp.h 1.16 + * scsitransp.c 1.31 + * scsi-sgi.c 1.11 + * scsi-vms.c 1.5 + * scsi-sco.c 1.3 + * scsi-osf.c 1.3 + * scsi-next.c 1.6 + * scsi-linux-pg.c 1.8 + * scsi-linux-sg.c 1.28 + * scsi-hpux.c 1.8 + * scsi-bsd.c 1.16 + * scsi-bsd-os.c 1.4 + * scsi-aix.c 1.10 + Globale Variables removed and replaced by SCSI *scgp + +Thu Oct 29 15:45:38 1998 Joerg Schilling + * scsi-sco.c 1.2 + Indented and scsi_isatapi() new + +Thu Oct 29 15:30:53 1998 Joerg Schilling + * scsi-sco.c 1.1 + date and time created 98/10/29 15:30:53 by joerg + +Thu Oct 29 15:21:52 1998 Joerg Schilling + * cdrecord.c 1.70 + Lowlevel SCSI transport Routines now have scgp Parameter, 1.8a6 -> 1.8a7 + +Thu Oct 29 15:21:09 1998 Joerg Schilling + * scsi_cdr.c 1.61 + * drv_sony.c 1.22 + * modes.c 1.8 + * scsilog.c 1.4 + * drv_philips.c 1.19 + * drv_mmc.c 1.30 + * drv_jvc.c 1.33 + * drv_dvd.c 1.26 + Lowlevel SCSI transport Routines now have scgp Parameter + +Wed Oct 28 22:20:25 1998 Joerg Schilling + * scsi-aix.c 1.9 + dev=device:b,t,l Syntax new + +Mon Oct 26 03:18:37 1998 Joerg Schilling + * diskid.c 1.7 + manufacturer_id() new + mi_num new in struct disk_man + +Mon Oct 26 03:17:34 1998 Joerg Schilling + * cdrecord.h 1.44 + manufacturer_id() new + +Mon Oct 26 00:27:22 1998 Joerg Schilling + * diskid.c 1.6 + New manufacturer: Xcitec Inc. + Doremi Media Co., Ltd. + Matsushita Electric Industrial Co.,Ltd. + CDA Datenträger Albrechts GmbH. + +Sun Oct 25 13:00:22 1998 Joerg Schilling + * cdrecord.c 1.71 + #ifdef HAVE_SYS_MMAN_H new + +Sat Oct 24 01:41:22 1998 Joerg Schilling + * scsi-vms.c 1.4 + * scsi-osf.c 1.2 + * scsi-sgi.c 1.10 + * scsi-next.c 1.5 + * scsi-hpux.c 1.7 + * scsi-bsd.c 1.15 + * scsi-bsd-os.c 1.3 + * scsi-aix.c 1.8 + Blind changes for 1st stage of SCSI lib: Globale Variables removed and replaced by SCSI *scgp + +Sat Oct 24 00:22:01 1998 Joerg Schilling + * cdrecord.c 1.69 + * scsi_cdr.c 1.60 + open_scsi(dev, timeout, verboseopen) -> open_scsi(dev, debug, verboseopen) + +Fri Oct 23 23:46:23 1998 Joerg Schilling + * wm_packet.c 1.8 + * scsi_cdr.c 1.59 + scsi_settimeout() -> do not divide by 100 + +Fri Oct 23 15:53:37 1998 Joerg Schilling + * cdrecord.c 1.68 + XXX scgp->cap->c_bsize = 2048; XXX Hack init !!! + +Fri Oct 23 03:14:46 1998 Joerg Schilling + * scsihack.c 1.16 + scsi-sco.c new + +Fri Oct 23 16:01:44 1998 Joerg Schilling + * scsi-linux-sg.c 1.27 + * scsi-linux-pg.c 1.7 + * scsitransp.c 1.30 + * scsitransp.h 1.15 + * scsierrs.c 2.16 + * scsi_cdr.c 1.58 + * scsidefs.h 1.19 + * cdrecord.c 1.67 + * drv_dvd.c 1.25 + * drv_philips.c 1.18 + * drv_sony.c 1.21 + * drv_jvc.c 1.32 + * cdr_drv.c 1.10 + * drv_mmc.c 1.29 + * modes.c 1.7 + * scsi_scan.c 1.2 + * scsilog.c 1.3 + Globale Variables removed and replaced by SCSI *scgp + +Thu Oct 22 18:49:06 1998 Joerg Schilling + * scsi-next.c 1.4 + Now using scsi_open(device, busno, tgt, tlun) Interface + +Tue Oct 20 18:31:25 1998 Joerg Schilling + * scsi_cdr.c 1.57 + CDD521/02 (Kodak PCD-200) + +Sun Oct 18 14:54:35 1998 Joerg Schilling + * cdrecord.c 1.66 + 1.6.1 -> 1.7.1 + +*************** Release 1.6.1 ******************* + +Sun Oct 18 14:47:55 1998 Joerg Schilling + * cdrecord.c 1.65 + O_BINARY for Tracks + Restore old sector size on exit() + Better handling for lba (512/2048) in read_toc() + +Sun Oct 18 14:40:35 1998 Joerg Schilling + * scsi_cdr.c 1.56 + * cdrecord.h 1.43 + sense_secsize() new + +Sat Oct 17 16:39:41 1998 Joerg Schilling + * fifo.c 1.12 + #ifdef SHM_LOCK to allow compilation of SysV shm on AIX + +Fri Oct 9 14:21:38 1998 Joerg Schilling + * scsi-bsd.c 1.14 + sp->ux_errno = EIO; for old Transport Interface + +Fri Oct 9 22:19:30 1998 Joerg Schilling + * modes.c 1.24 + * cd_misc.c 1.6 + * fifo.c 1.11 + * diskid.c 1.5 + * port.c 1.8 + #include new + +Fri Oct 9 14:21:38 1998 Joerg Schilling + * cd_misc.c 1.5 + * wm_packet.c 1.7 + * wm_session.c 1.2 + * wm_track.c 1.2 + #include & #include new + +Thu Oct 8 15:43:50 1998 Joerg Schilling + * cdrecord.h 1.42 + u_char -> Uchar + +Wed Oct 7 18:08:46 1998 Joerg Schilling + * cdrecord.c 1.64 + 1.7a2 -> 1.7, -fix -eject corrected + wait_unit_ready(120); after a load + +Wed Oct 7 18:07:41 1998 Joerg Schilling + * scsi_cdr.c 1.55 + IMMED hack in close track/session added + +Wed Oct 7 18:06:02 1998 Joerg Schilling + * drv_mmc.c 1.28 + new function waitfix_mmc() + -dummy error hiding better + +Wed Oct 7 17:54:02 1998 Joerg Schilling + * scsi-linux-pg.c 1.6 + EIO on SCG_RETRYABLE + +Tue Oct 6 12:53:11 1998 Joerg Schilling + * scsi-vms.c 1.3 + next version from vaxinf@CHCLU.CHEMIE.UNI-KONSTANZ.DE and my remarks + +Tue Oct 6 12:21:50 1998 Joerg Schilling + * scsi-vms.c 1.2 + next version from vaxinf@CHCLU.CHEMIE.UNI-KONSTANZ.DE + +Tue Oct 6 02:09:14 1998 Joerg Schilling + * scsi-linux-pg.c 1.5 + * scsi-linux-sg.c 1.26 + * scsi-bsd-os.c 1.2 + New device:@ Syntax + +Tue Oct 6 02:04:46 1998 Joerg Schilling + * scsi_cdr.c 1.54 + New device:@ Syntax + sscanf() -> scsi_scandev() + +Tue Oct 6 01:50:13 1998 Joerg Schilling + * cdrecord.1 1.34 + new dev= Syntax (dev=device:@ / dev=device:@,lun) inserted + +Tue Oct 6 01:05:29 1998 Joerg Schilling + * scsi-bsd.c 1.13 + modified to use -lcam & cam_open_btl(busno, tgt, tlun, O_RDWR, NULL); + +Thu Oct 1 01:15:57 1998 Joerg Schilling + * scsi-bsd.c 1.12 + Mods for dev=devname:@,l + +Mon Sep 21 01:24:45 1998 Joerg Schilling + * scsi-linux-sg.c 1.25 + scsi_settimeout() -> sg_settimeout() + +Sat Sep 19 21:49:11 1998 Joerg Schilling + * scsi-osf.c 1.1 + date and time created 98/09/19 20:49:11 by joerg + +Tue Sep 15 02:55:28 1998 Joerg Schilling + * drv_philips.c 1.17 + capacity_philips() with Philips CDD-2600 Support new + *_attach() now uses cdr_t * Parameter + cdr_kodak_pcd600 new + Pioneer DW-S114X from open_track_yamaha -> open_track_oldphilips + +Tue Sep 15 02:39:44 1998 Joerg Schilling + * scsi-bsd.c 1.11 + #ifndef BSD_CAM -> #ifndef HAVE_CAMLIB_H + +Tue Sep 15 02:37:58 1998 Joerg Schilling + * cdrecord.c 1.63 + Now uses: fctldefs.h, strdefs.h + SECURITY new + 1.7a1 -> 1.7a2 + open_scsi() check return value and print error message + Blanking time print + #ifdef _SC_PRIORITY_SCHEDULING around sysconf() + #ifdef PRIO_PROCESS around setpriority() for WNT + +Tue Sep 15 02:31:16 1998 Joerg Schilling + * drv_jvc.c 1.31 + Now uses: fctldefs.h, strdefs.h + blank_jvc() new + +Tue Sep 15 02:30:11 1998 Joerg Schilling + * drv_sony.c 1.20 + Now uses: fctldefs.h, strdefs.h + +Tue Sep 15 02:22:12 1998 Joerg Schilling + * cdrecord.h 1.41 + struct index -> struct tindex to allow #define index strchr + +Tue Sep 15 02:21:24 1998 Joerg Schilling + * drv_mmc.c 1.27 + Now uses: fctldefs.h, strdefs.h, timdefs.h + Sony 928 Support new + For drives that don't support read ATIP use data from read_diskinfo + Try to handle "early Return" fixating syndrom from Mitsumi drives + no error messages when fixating using -dummy + +Tue Sep 15 02:13:49 1998 Joerg Schilling + * scsi_cdr.c 1.53 + Now uses: fctldefs.h, strdefs.h + +Tue Sep 8 01:32:08 1998 Joerg Schilling + * scsihack.c 1.15 + Conditional compilation for Linux pg driver to support old Linux releases + +Mon Sep 7 02:30:15 1998 Joerg Schilling + * scsi-bsd.c 1.10 + Typo in scsi_fileno() fixed + +Sun Sep 6 18:47:16 1998 Joerg Schilling + * scsi-bsd.c 1.9 + first FreeBSD CAM Support + +Sun Sep 6 18:22:13 1998 Joerg Schilling + * scsi-bsd.c 1.8 + Enhancements for NetBSD & ATAPI + +Sun Sep 6 01:39:22 1998 Joerg Schilling + * cdr_drv.c 1.9 + cdr_mmc_sony new + +Sun Sep 6 00:43:43 1998 Joerg Schilling + * drv_simul.c 1.4 + * drv_dvd.c 1.24 + Now uses: strdefs.h + +Sat Sep 5 23:23:31 1998 Joerg Schilling + * scsitransp.c 1.29 + Now uses: timedefs.h fctldefs.h + +Mon Aug 31 01:50:12 1998 Joerg Schilling + * scsi-linux-pg.c 1.4 + pgbus init from -1 -> -2 + +Mon Aug 31 01:39:52 1998 Joerg Schilling + * scsi-linux-sg.c 1.24 + /dev/sga... to /dev/sgz instead of /dev/sgy now checked + return nopen to allow recognition of bad dev= parameters + +Mon Aug 31 01:38:08 1998 Joerg Schilling + * scsi-linux-pg.c 1.3 + Debug print for pgbus + if scsibus >= 0 ist do nothing if busno is wrong + +Mon Aug 31 01:03:17 1998 Joerg Schilling + * scsi_cdr.c 1.52 + write_xg5() new + +Mon Aug 31 01:02:00 1998 Joerg Schilling + * scsi_cdr.c 1.51 + open_scsi() now checks dev=devicename:b,t,l + read_trackinfo() now don't prints Cannot read TOC Meldung in silent mode + +Mon Aug 31 00:43:31 1998 Joerg Schilling + * scsitransp.c 1.28 + scsiprintresult() new + +Mon Aug 31 00:40:32 1998 Joerg Schilling + * scsitransp.h 1.14 + scsiprintcdb()/scsiprintwdata()/scsiprintrdata()/scsiprintresult() new + +Sun Aug 30 12:55:35 1998 Joerg Schilling + * drv_dvd.c 1.23 + g5_cdbaddr()/g5_cdblen() -> scgio.h + +Sun Aug 30 12:54:37 1998 Joerg Schilling + * scsihack.c 1.14 + USE_PG -> USE_PG_ONLY + +Sun Aug 30 12:54:02 1998 Joerg Schilling + * scgio.h 2.13 + g0_cdblen()/g5_cdblen() & g5_cdbaddr() new + +Sun Aug 30 12:53:06 1998 Joerg Schilling + * cdrecord.h 1.40 + write_xg5() new + +Sat Aug 29 22:15:37 1998 Joerg Schilling + * cd_misc.c 1.4 + pr_manufacturer() reference removed from print_min_atip() + +Sat Aug 29 21:57:01 1998 Joerg Schilling + * cdrecord.1 1.33 + PP tranport documented, -scanbus doc corrected + +Sat Aug 29 21:01:59 1998 Joerg Schilling + * scsi-linux-pg.c 1.2 + #include statt "pg.h" + support for integrated parallel Port Adapter & SCSI + timeout code corrected + DMA overrun now recognized + +Sat Aug 29 20:48:28 1998 Joerg Schilling + * scsi-linux-sg.c 1.23 + Support for integrated parallel Port Adapter & SCSI + +Sat Aug 29 20:22:10 1998 Joerg Schilling + * cd_misc.c 1.3 + * cdrecord.h 1.39 + print_min_atip() new in cd_misc.c + +Tue Aug 25 20:23:20 1998 Joerg Schilling + * scsihack.c 1.13 + scsi_isatapi() defined, for default SCSI code + +Sun Aug 23 13:42:44 1998 Joerg Schilling + * scsi-linux-sg.c 1.22 + Fix for misaligned integer access in sg_header for Linux/sparc if valloc() DMA Buffer is used + +Thu Aug 20 10:05:14 1998 Joerg Schilling + * scsi-aix.c 1.7 + errno == Reference removed + +Thu Aug 20 01:24:33 1998 Joerg Schilling + * cdrecord.1 1.32 + dev=devicename:target,lun documented + +Tue Aug 18 04:41:56 1998 Joerg Schilling + * scsihack.c 1.12 + scsi-next.c & scsi-vms.c new + +Mon Aug 17 23:08:36 1998 Joerg Schilling + * scsi-vms.c 1.1 + date and time created 98/08/17 22:08:36 by joerg + +Mon Aug 17 22:35:19 1998 Joerg Schilling + * scsihack.c 1.11 + scsi-linux-pg.c new use with USE_PG + +Mon Aug 17 22:34:55 1998 Joerg Schilling + * scsi-linux-pg.c 1.1 + * scsi-bsd-os.c 1.1 + date and time created 98/08/17 21:24:24 by joerg + +Mon Aug 17 22:22:04 1998 Joerg Schilling + * scsi-linux-sg.c 1.21 + MAX_SCG -> 8 + search /dev/sg0... before /dev/sfg... + +Mon Aug 17 21:47:35 1998 Joerg Schilling + * scsi-linux-sg.c 1.20 + Support new sg driverinterface + scgfile new to use with global ioctl's + MAX_DMA_LINUX -> 4k if SG_BIG_BUFF undefined + SG_MAX_SENSE -> 16 if not declared + SG_GET_BUFSIZE ioctl new + scsi_isatapi() new + +Sun Aug 16 23:47:48 1998 Joerg Schilling + * misc.c 1.1 + date and time created 98/08/16 22:47:48 by joerg + +Sun Aug 16 23:47:06 1998 Joerg Schilling + * cdrecord.h 1.38 + misc.c: timevaldiff() new + +Sun Aug 16 23:34:35 1998 Joerg Schilling + * scsi-bsd.c 1.7 + scsi_isatapi() new + /dev/scgx may be replaced by dev=/dev/xxx:0,0 + +Sun Aug 16 23:32:42 1998 Joerg Schilling + * scsitransp.h 1.13 + * scsitransp.c 1.27 + * scsi-sgi.c 1.9 + * scsi-aix.c 1.6 + * scsi-hpux.c 1.6 + scsi_isatapi() new + +Fri Jul 17 03:44:13 1998 Joerg Schilling + * scsihack.c 1.10 + BSDI new -> scsi-bsd-os.c + +Fri Jun 19 19:59:07 1998 Joerg Schilling + * scsitransp.h 1.12 + * scsitransp.c 1.26 + * scsihack.c 1.9 + * scsi-sgi.c 1.8 + * scsi-hpux.c 1.5 + * scsi-bsd.c 1.6 + * scsi-aix.c 1.5 + * scsi-linux-sg.c 1.19 + Use scsi_open(device, busno, tgt, tlun) with parameters + +Tue Jun 9 01:44:46 1998 Joerg Schilling + * drv_dvd.c 1.22 + korrekte Indizierung bei tracksize virtual tracklist + +Sat Jun 6 00:16:40 1998 Joerg Schilling + * port.c 1.7 + #include -> #include wegen sys/time.h + +Wed Jun 3 02:20:27 1998 Joerg Schilling + * cdrecord.1 1.31 + bytes= Option removed + Introduced Mailing List + +Wed Jun 3 02:18:47 1998 Joerg Schilling + * drv_dvd.c 1.21 + Treshold for printing the Virtual Trackliste corrected + Abort if first virt Track is not a multiple of the sectorsize + +Wed Jun 3 01:35:24 1998 Joerg Schilling + * diskid.c 1.4 + disk_rcap List new + +Wed Jun 3 01:04:49 1998 Joerg Schilling + * cdrecord.c 1.62 + CD -> CD/DVD + +Wed Jun 3 01:01:53 1998 Joerg Schilling + * cdrecord.c 1.61 + #if defined(_POSIX_PRIORITY_SCHEDULING) -> #if defined(_POSIX_PRIORITY_SCHEDULING) && !defined(HAVE_SYS_PRIOCNTL_H) bei LOCAL declaration + +Tue Jun 2 00:41:37 1998 Joerg Schilling + * drv_dvd.c 1.20 + attach_???() new now implementing the side effects from identify_???() + +Tue Jun 2 00:41:36 1998 Joerg Schilling + * drv_mmc.c 1.26 + attach_???() neu mit den Nebeneffekten aus identify_???() + +Mon Jun 1 23:34:26 1998 Joerg Schilling + * scsi_cdr.c 1.50 + Cast for malloc(): not every malloc() is void * + +Mon Jun 1 23:33:21 1998 Joerg Schilling + * drv_sony.c 1.19 + * drv_jvc.c 1.30 + * cdr_drv.c 1.8 + * cdrecord.h 1.37 + * cdrecord.c 1.60 + attach Routine now uses cdr_t * Parameter + +Mon Jun 1 22:24:42 1998 Joerg Schilling + * drv_dvd.c 1.19 + * scsilog.c 1.2 + Superfluous & in a_to_u_short() removed + +Sun May 31 21:38:00 1998 Joerg Schilling + * scsihack.c 1.8 + OSF1 new + +Sun May 31 01:45:04 1998 Joerg Schilling + * scsitransp.c 1.25 + void * cast for valloc() return + +Sun May 31 00:39:54 1998 Joerg Schilling + * cdrecord.c 1.59 + Casts for tracksize & padsize + +Sat May 30 23:12:56 1998 Joerg Schilling + * drv_simul.c 1.3 + Verbose Message for islast + +Sat May 30 00:35:26 1998 Joerg Schilling + * cdrecord.c 1.58 + tracksize & padsize -> LLong + +Fri May 29 00:32:30 1998 Joerg Schilling + * cdrecord.c 1.57 + astoll() & getllnum() new + number() -> LLong + +Fri May 29 00:05:29 1998 Joerg Schilling + * cdrecord.1 1.30 + waw in .wav Typo + +Fri May 29 00:03:32 1998 Joerg Schilling + * drv_dvd.c 1.18 + Better comment and housekeeping + +Thu May 28 01:08:06 1998 Joerg Schilling + * drv_dvd.c 1.17 + next_wr_addr_dvd() now correct with read_rzone_info() + +Thu May 28 00:02:01 1998 Joerg Schilling + * drv_dvd.c 1.16 + Verbose level documented + set ds_maxblocks from rzone_info + rzone_size() new + phys size computation corrected + +Tue May 26 04:16:55 1998 Joerg Schilling + * drv_dvd.c 1.15 + Speed code removed + +Tue May 26 04:03:55 1998 Joerg Schilling + * drv_dvd.c 1.14 + Removed lines that have been commented out + +Tue May 26 04:01:03 1998 Joerg Schilling + * drv_dvd.c 1.13 + dvd check in identify_dvd() later + +Tue May 26 03:58:57 1998 Joerg Schilling + * drv_dvd.c 1.12 + fcntl.h + errno.h + sys/file.h removed + +Tue May 26 03:56:48 1998 Joerg Schilling + * drv_dvd.c 1.11 + scsiprbytes() with lverbose > 1 + multi Track Hack indented + +Tue May 26 03:49:19 1998 Joerg Schilling + * drv_dvd.c 1.10 + Superfluous Debugs in SCSI routines removed + +Tue May 26 00:02:51 1998 Joerg Schilling + * cdrecord.c 1.56 + checktsize() with Llong for total Tracksize in Bytes + checkdsize() now computed the remaining rest capacity + +Mon May 25 04:40:51 1998 Joerg Schilling + * drv_dvd.c 1.9 + Computations of the track split code -> long long + MAX tracks -> 99 + +Mon May 25 04:35:54 1998 Joerg Schilling + * drv_dvd.c 1.8 + close_Xtrack_dvd() code -> fixate_dvd() + +Mon May 25 04:30:05 1998 Joerg Schilling + * drv_dvd.c 1.7 + send_dvd_structure() & send_dvd0F() new + +Mon May 25 03:46:30 1998 Joerg Schilling + * drv_dvd.c 1.6 + print_laserlog() new + print_logpages() new + +Mon May 25 03:42:16 1998 Joerg Schilling + * drv_dvd.c 1.5 + przone() new + print_dvd00()/print_dvd01()print_dvd04()/print_dvd05()/print_dvd0D()/print_dvd0E()print_dvd0F() new + now reads 4096 Bytes DVD structure + +Mon May 25 03:17:14 1998 Joerg Schilling + * drv_dvd.c 1.4 + print_dvd_info() new + +Mon May 25 02:31:56 1998 Joerg Schilling + * scsilog.c 1.1 + date and time created 98/05/25 01:31:56 by joerg + +Mon May 25 02:05:22 1998 Joerg Schilling + * scsimmc.h 1.3 + rzone_info new + dvd_structure_XX new + +Sat May 23 22:41:54 1998 Joerg Schilling + * drv_simul.c 1.2 + #include unixstd.h new + +Sat May 23 21:32:13 1998 Joerg Schilling + * scsi_cdr.c 1.49 + New Mode Page 2A Heuristic (min length 0x14 -> 0x10): ATAPI LITEON only gives 0x12: No Write Speed. + +Wed May 20 23:49:35 1998 Joerg Schilling + * cdrecord.c 1.55 + islast bug (|| instead of &&) fixed + bytes= Option removed + +Tue May 19 04:11:02 1998 Joerg Schilling + * drv_dvd.c 1.3 + struct disk_info & struct track_info -> scsimmc.h + scsilog.h new + +Sat May 16 13:15:21 1998 Joerg Schilling + * scsimmc.h 1.2 + u_char -> Uchar + +Sun May 10 00:12:04 1998 Joerg Schilling + * scsimmc.h 1.1 + date and time created 98/05/09 23:12:04 by joerg + +Sun May 10 00:04:17 1998 Joerg Schilling + * auheader.h 1.2 + generic Copyright comment + +Sun May 10 00:02:27 1998 Joerg Schilling + * drv_mmc.c 1.25 + Strukturdefinitionen -> scsimmc.h + +Thu May 7 22:43:07 1998 Joerg Schilling + * scsi_cdr.c 1.48 + strindex() -> strbeg() + vendor_info / prod_ident / prod_revision new because of array index problems + Kodak PCD-600 new + +Thu May 7 21:38:58 1998 Joerg Schilling + * cdrecord.h 1.36 + getnum() now extern + is_mmc() with DVD recognition + disk_rcap() new + +Thu May 7 21:38:13 1998 Joerg Schilling + * cdr_drv.c 1.7 + DRV_DVD new + cdr_kodak_pcd600 / cdr_cdr_simul / cdr_dvd_simul new + DEV_PIONEER_DVDR_S101 new + DVD recognition in is_mmc() nee + +Thu May 7 21:15:19 1998 Joerg Schilling + * cdrecord.c 1.54 + 1.6 -> 1.7a1 + getnum() LOCAL -> EXPORT + test_unit_ready() before load Medium + Allow Medium removal if not ready on load_media() + +Thu May 7 10:43:00 1998 Joerg Schilling + * diskid.c 1.3 + Vendor list actualalized + +Wed May 6 02:52:16 1998 Joerg Schilling + * cdrecord.1 1.29 + simulation driver documented + +Wed May 6 02:41:33 1998 Joerg Schilling + * audiosize.c 1.9 + .wav files that are smaller than expected are handled correctly + +Mon May 4 02:09:55 1998 Joerg Schilling + * drv_dvd.c 1.2 + Function names *_mmc -> *_dvd + ds_maxblock -> ds_maxblocks + getdisktype_dvd() now includes more tests + write_type -> WT_SAO + Hack for virtual track list + +Sun May 3 19:37:17 1998 Joerg Schilling + * scsi_cdr.c 1.47 + mode_select_sg0()/mode_sense_sg0() cnt usage corrected + mode_sense_sg0() movebytes() count corrected + +Sat May 2 00:46:07 1998 Joerg Schilling + * drv_simul.c 1.1 + date and time created 98/05/01 23:46:07 by joerg + +Fri May 1 19:26:22 1998 Joerg Schilling + * scsi_cdr.c 1.46 + DEV_PCD_600 new + is_mmc() now uses dvdp Arg + +Fri May 1 19:08:34 1998 Joerg Schilling + * scsidefs.h 1.18 + PCD_600 new + +*************** Release 1.6 ******************* + +Fri Apr 17 12:53:59 1998 Joerg Schilling + * scsi_cdr.c 1.45 + & before ibuf removed because it is an array + +Fri Apr 17 12:45:38 1998 Joerg Schilling + * scsi_cdr.c 1.44 + min/sec/frame -> amin/asec/aframe because of min() Macro + +Thu Apr 16 01:43:26 1998 Joerg Schilling + * cdrecord.1 1.26 + -ignsize new + web page for cdrecord added + +Thu Apr 16 00:55:39 1998 Joerg Schilling + * diskid.c 1.2 + Print if Manufacturer is in none of the tables + +Thu Apr 16 00:52:13 1998 Joerg Schilling + * drv_mmc.c 1.24 + ds_maxblock -> ds_maxblocks + do get_atip() always, but print if lverbose is set + +Thu Apr 16 00:32:50 1998 Joerg Schilling + * cdrecord.h 1.35 + * cdrecord.c 1.53 + ds_maxblock -> ds_maxblocks + new Option -ignsize + +Thu Apr 16 00:31:32 1998 Joerg Schilling + * drv_jvc.c 1.29 + * drv_philips.c 1.16 + ds_maxblock -> ds_maxblocks + +Sun Apr 12 16:14:07 1998 Joerg Schilling + * scsi_cdr.c 1.43 + Smart & Friendly CD-R4012 (TEAC CDR-55S) new + +Sun Apr 12 02:15:15 1998 Joerg Schilling + * scsitransp.c 1.24 + scsiprintcdb()/scsiprintwdata()/scsiprintrdata() new + print scsiprintcdb() on errors + +Sun Apr 12 01:58:26 1998 Joerg Schilling + * cdrecord.h 1.34 + * cdrecord.c 1.52 + Real Blocks new + 1.6a14 -> 1.6 + +Wed Apr 1 03:28:36 1998 Joerg Schilling + * cdrecord.c 1.51 + checkgui() now has verbose print + +Wed Apr 1 01:36:59 1998 Joerg Schilling + * drv_jvc.c 1.28 + lberbose > 1 for all subcode Messages + teac_wr_pma()/teac_rd_pma() new + JVC Errorcodes new + check for cdrecord -fix without Parameter + hide Illegal Command errorcode for next_wr_addr_teac() + +Wed Apr 1 01:29:49 1998 Joerg Schilling + * scsitransp.c 1.23 + * scsi_cdr.c 1.42 + * drv_mmc.c 1.23 + GCC Warnings removed: printf format errors + +Tue Mar 31 20:58:07 1998 Joerg Schilling + * cdrecord.c 1.50 + ->1.6a14, LOAD & EJECT works for CD-ROM too + GUI test on STDERR + first Trackno -> track[0] as Hack + +Tue Mar 31 20:56:43 1998 Joerg Schilling + * cdrecord.1 1.25 + CREDITS + better Documentation for tsize= & TEAC + +Sun Mar 29 15:31:08 1998 Joerg Schilling + * cdrecord.1 1.24 + -vv/-VV mods + -fix: not for TEAC + -load new + timeout= Option + tsize= description because of tracksize and TEAC + nice/SunOS -> nice/others + +Sun Mar 29 15:26:19 1998 Joerg Schilling + * drv_philips.c 1.15 + open_session() with tracks & trackp Parameters + Philips CDD-521 old/dumb new + Pioneer DW-S114X new + +Sun Mar 29 15:22:29 1998 Joerg Schilling + * drv_mmc.c 1.22 + open_session() with tracks & trackp Parameters + Check for zeroed ATIP Info + wait_unit_ready() for ATAPI - sorry not working + +Sat Mar 28 23:43:07 1998 Joerg Schilling + * cdrecord.c 1.49 + check_recovery() now uses flags for unload_media() + call unload_media() on input buffer, wait error, and for blank media error + open_session() now usees tracks & trackp Parameters for Sizecheck + Printing of is_swab() with audio fixed + +Sat Mar 28 23:22:30 1998 Joerg Schilling + * drv_jvc.c 1.27 + teac_open_session() checks tracksize ( <= 0 is not possible) + +Sat Mar 28 23:21:08 1998 Joerg Schilling + * scsi_cdr.c 1.41 + wait_unit_ready() now handles BUSY + mode_sense_sg0() movebytes() count handling corrected (amt-4) + better (komplete) Inquiry printing with -V + JVC XR-W2001 / Plilips CDD521/00 / Traxdata CDR4120 / Pioneer CD-WO DW-S114X / Pinnacle RCD-1000 new + +Sat Mar 28 23:06:05 1998 Joerg Schilling + * scsireg.h 1.18 + SCSI Status codes + +Fri Mar 27 01:04:50 1998 Joerg Schilling + * drv_sony.c 1.18 + * cdrecord.h 1.33 + open_session() with tracks & trackp parameters + +Thu Mar 26 22:42:29 1998 Joerg Schilling + * cdr_drv.c 1.6 + Pioneer DW-S 114, old Philips, dumb Philips new + +Tue Mar 24 21:30:08 1998 Joerg Schilling + * cdrecord.h 1.32 + is_*() Macros now clearer: != 0 + +Tue Mar 24 21:29:18 1998 Joerg Schilling + * scsidefs.h 1.17 + DEV_CDD_521_OLD new + +Mon Mar 16 00:48:34 1998 Joerg Schilling + * drv_dvd.c 1.1 + date and time created 98/04/20 00:48:34 by joerg + +Sat Mar 14 17:49:09 1998 Joerg Schilling + * scsi-bsd.c 1.5 + MAX_DMA_BSD 64k -> 60k + +Thu Mar 12 23:48:19 1998 Joerg Schilling + * drv_jvc.c 1.26 + set ds_maxblock + next_wr_addr_jvc() uses read_B0() if track == 0 + use trackp[i].trackno for TOC + Lead-out Start time now uses frames + teac_calibrate() inits lba_addr from read_B0() + next_wr_addr_teac() with Parameters + +Thu Mar 12 23:42:09 1998 Joerg Schilling + * cdrecord.c 1.48 + use real Track nubmers + -v/-V now Inc type Flag + print remaining capacity + Pregapsize || bug fixed + Trackno in struct track + wait_unit_ready() new + +Thu Mar 12 23:35:26 1998 Joerg Schilling + * drv_philips.c 1.14 + Print computed ATIP only for empty Disk + ATIP printout now prints Lead-out start time too + compute Disk capacity + +Thu Mar 12 22:33:50 1998 Joerg Schilling + * drv_sony.c 1.17 + close_track_sony() -> track = 0 ! + mode_sense() -> get_mode_params() + +Thu Mar 12 22:24:10 1998 Joerg Schilling + * cdrecord.h 1.31 + Strukt track now includes trackno + CDR_DVD new + from_bcd()/to_bcd() new + wait_unit_ready() new + read_B0() new + +Thu Mar 12 22:20:40 1998 Joerg Schilling + * scsi_cdr.c 1.40 + unit_ready() now checks for UNIT_ATTENTION + wait_unit_ready() new + toc struktures char -> Uchar + read_tochdr()/read_trackinfo() may have NULL Pointer Args + read_B0() new + +Thu Mar 12 22:12:16 1998 Joerg Schilling + * scsitransp.c 1.22 + Print data if verbose > 1 + +Thu Mar 12 01:21:58 1998 Joerg Schilling + * cd_misc.c 1.2 + from_bcd()/to_bcd() new + +Tue Mar 10 00:07:50 1998 Joerg Schilling + * cdrecord.c 1.47 + * drv_mmc.c 1.21 + checkgui() & isgui new + +Mon Mar 9 23:29:02 1998 Joerg Schilling + * drv_mmc.c 1.20 + Read ATIP non-fatal + warnung in fixation with correct lverbose flag + +Sun Mar 8 15:02:13 1998 Joerg Schilling + * scsi_cdr.c 1.39 + SAF CD-R2006PRO CD-R2006, JVC R2626 new + +Sun Mar 8 14:59:31 1998 Joerg Schilling + * cdrecord.c 1.46 + Default Timeout -> 40s + flags int -> long + new Option -load + Print Lead-out start + 90 Min value corrected + +Sun Mar 8 14:56:53 1998 Joerg Schilling + * cdrecord.h 1.30 + fsamples()/frames() new + +Fri Mar 6 01:11:56 1998 Joerg Schilling + * scsitransp.c 1.21 + print SCSI command names before ABORT + +Thu Mar 5 01:15:26 1998 Joerg Schilling + * scsierrs.c 2.15 + referres -> refers + +Thu Mar 5 01:15:02 1998 Joerg Schilling + * scsitransp.h 1.11 + * scsitransp.c 1.20 + scsi_sense_qual() new + +Mon Mar 2 22:50:12 1998 Joerg Schilling + * drv_mmc.c 1.19 + msf_to_lba()/lba_to_msf() -> cd_misc.c + len += 2 to correct length for TOC & disk Info + failed read ATIP is no fatal error + better print_atip() + +Mon Mar 2 22:45:53 1998 Joerg Schilling + * cd_misc.c 1.1 + date and time created 98/03/02 22:45:53 by joerg + +Mon Mar 2 22:39:02 1998 Joerg Schilling + * cdrecord.h 1.29 + F_LOAD new + All Flags sorted + msf_to_lba()/lba_to_msf() new + +Mon Mar 2 22:36:10 1998 Joerg Schilling + * drv_philips.c 1.13 + philips_getlilo() new + print disk manufacturer new + +Mon Mar 2 21:56:53 1998 Joerg Schilling + * scsi_cdr.c 1.38 + Pinnacle RCD 4X4, SAF CD-RW226 new + +Mon Feb 23 22:32:27 1998 Joerg Schilling + * scsi_cdr.c 1.37 + read_toc_philips() same parameters as read_toc() (ses -> fmt) + +Mon Feb 23 22:30:57 1998 Joerg Schilling + * drv_mmc.c 1.18 + msf_to_lba() corrected (+-150 bug) + lba_to_msf() new + Check for Complete Disk: 0xFF:0xFF/0xFF + pr_manufacturer() new with lverbose + different Formatting + +Mon Feb 23 21:54:28 1998 Joerg Schilling + * cdrecord.c 1.45 + 80 Minute limit -> 90 Minutes + +Mon Feb 23 21:51:56 1998 Joerg Schilling + * diskid.c 1.1 + date and time created 98/02/23 21:51:56 by joerg + +Sun Feb 22 23:23:22 1998 Joerg Schilling + * fifo.c 1.10 + fifo_percent() with Parameter + FIFO Bug (duoubling of a segment at end of writing) fixed + +Sun Feb 22 22:54:46 1998 Joerg Schilling + * cdrecord.c 1.44 + fifo_percent() with Parameter + unit_ready() for UNLOAD removed + print Disk capacity + +Sun Feb 22 22:52:53 1998 Joerg Schilling + * wm_packet.c 1.6 + fifo_percent() with Parameter + +Sun Feb 22 22:47:51 1998 Joerg Schilling + * cdrecord.h 1.28 + fifo_percent() with Parameter + msf_t typedef + pr_manufacturer() new + +Sun Feb 15 21:01:03 1998 Joerg Schilling + * audiosize.c 1.8 + getWavShort() & getWavLong() Definitions removed + +Tue Feb 10 01:00:48 1998 Joerg Schilling + * cdrecord.c 1.43 + New option timeout=# + +Mon Feb 9 12:44:40 1998 Joerg Schilling + * scsi-linux-sg.c 1.18 + timeout from 1/100 sec -> 1/HZ sec + +Sun Feb 8 21:56:01 1998 Joerg Schilling + * scsi-linux-sg.c 1.17 + Missing bracket at read() inserted + +Sun Feb 8 18:45:19 1998 Joerg Schilling + * scsi_cdr.c 1.36 + Tayo Yuden CD-WO EW-50 better Inquiry + +Sun Feb 8 15:52:15 1998 Joerg Schilling + * fifo.c 1.9 + fifo_percent() returns -1 if buflen == 0 + dummy fifo_percent() always -1 + +Sun Feb 8 15:50:43 1998 Joerg Schilling + * wm_packet.c 1.5 + * cdrecord.c 1.42 + Copyright -> 1998 + fs Reference in fifo_percent() removed + fifo_percent() in wm_packet new + +Sun Feb 8 13:54:25 1998 Joerg Schilling + * cdrecord.1 1.23 + fs= - administrative part + .au & .wav description + better -swab description + +Sun Feb 8 13:30:33 1998 Joerg Schilling + * scsi-linux-sg.c 1.16 + Fix for sendcommand() befor scsi_getbuf() call + read() < 0 now handled + +Sun Feb 8 13:28:38 1998 Joerg Schilling + * audiosize.c 1.7 + Definitions for WAVE better + better WAV recognition from Dave + +Sat Feb 7 23:20:14 1998 Joerg Schilling + * drv_jvc.c 1.25 + close_track_teac() fixed only audio uses no run-out blocks + +Sat Feb 7 23:18:43 1998 Joerg Schilling + * cdrecord.c 1.41 + rezero_unit() now silent not supported by all drives + +Sat Feb 7 23:14:03 1998 Joerg Schilling + * scsi_cdr.c 1.35 + Kodak CDR-240 new + +Sun Feb 1 23:17:33 1998 Joerg Schilling + * fifo.c 1.8 + HAVE_SHM -> HAVE_USGSHM was a typo + +Sun Feb 1 21:20:48 1998 Joerg Schilling + * scsi_cdr.c 1.34 + DVD enhancements in mmv_getval() & print_capabilities() + +Sun Feb 1 20:35:06 1998 Joerg Schilling + * scsireg.h 1.17 + DVD Definitions in Mode Page 2A + +Sun Feb 1 19:56:10 1998 Joerg Schilling + * scsi-linux-sg.c 1.15 + scsi_getbuf() hat nun char *ret wegen pointer Aritmetik + sizeof() cast comparison to int + scsi_send(): superfluous ; before scsi_settimeout() removed + +Sun Feb 1 19:45:21 1998 Joerg Schilling + * cdrecord.c 1.40 + filename new in struct track + Errorcode and exit() in audio*size() + +Sun Feb 1 19:44:08 1998 Joerg Schilling + * auheader.h 1.1 + date and time created 98/02/01 19:44:08 by joerg + +Sun Feb 1 19:44:00 1998 Joerg Schilling + * audiosize.c 1.6 + auheader.h new + Errorcodes + +Sun Feb 1 19:43:26 1998 Joerg Schilling + * cdrecord.h 1.27 + filename new in struct track + cd_mode_page_2A *cdr_cdcap new in struct cdr_cmd + +Sun Feb 1 19:42:28 1998 Joerg Schilling + * drv_philips.c 1.12 + * drv_sony.c 1.16 + * drv_mmc.c 1.17 + * drv_jvc.c 1.24 + cd_mode_page_2A *cdr_cdcap new in struct cdr_cmd + +Sun Feb 1 16:03:29 1998 Joerg Schilling + * drv_mmc.c 1.16 + ATIP Enhanced + +Sun Feb 1 15:56:31 1998 Joerg Schilling + * drv_mmc.c 1.15 + mmv_check() -> mmc_cap()/mmc_getval() + Handle non-trayload drives + warning for dummy/verbose while fixating + +Sun Feb 1 15:49:17 1998 Joerg Schilling + * scsidefs.h 1.16 + DEV_MMC_DVD, DEV_PIONEER_DVDR_S101 new + +Sun Feb 1 15:46:50 1998 Joerg Schilling + * scsi_cdr.c 1.33 + mmc_getval() & mmv_check() with dvdp + DEV_MMC_DVD new + Pioneer DVD-R S101, TEAC CD-R55S new + allow_atapi() in print_capabilities() + heuristic with speed >= 176 according to mmc2 + +Sun Feb 1 15:46:17 1998 Joerg Schilling + * cdrecord.c 1.39 + better CD-Recorder warning + +Sun Feb 1 14:53:02 1998 Joerg Schilling + * cdrecord.c 1.38 + Honour file sizes + better usage() Output + .au & .wav Filesize recognition + early recognition of "incompatible medium" + sched_setscheduler() error code (< 0) is correct + +Sun Feb 1 14:39:27 1998 Joerg Schilling + * cdrecord.h 1.26 + mmc_getval() & mmv_check() with dvdp + TI_WAV & is_wav() removed + +Sun Feb 1 14:33:39 1998 Joerg Schilling + * audiosize.c 1.5 + Complete recognition of a Wavheader (with Hilfe from Heiko) + +Mon Jan 26 01:56:21 1998 Joerg Schilling + * scsi-aix.c 1.4 + valloc() re-implemented (not available in AIX libc) + scsi sense handling ready + +Mon Jan 26 01:51:58 1998 Joerg Schilling + * scsi_cdr.c 1.32 + mmc_cap(), mmc_getval() new + Strings for printcap() static for K&R + +Mon Jan 26 01:07:27 1998 Joerg Schilling + * audiosize.c 1.4 + Filesize - header for Sun .au Files, data_size is not always correct + +Sun Jan 25 23:08:00 1998 Joerg Schilling + * audiosize.c 1.3 + Sun .au Header new + +Sun Jan 25 22:58:58 1998 Joerg Schilling + * cdrecord.h 1.25 + TI_NOWAV -> TI_NOAUHDR, is_auname() & ausize() new + +Sun Jan 25 18:10:47 1998 Joerg Schilling + * cdrecord.h 1.24 + TI_NOWAV, mmc_cap() & mmg_getval(), is_wavname() new + +Sun Jan 25 16:16:23 1998 Joerg Schilling + * audiosize.c 1.2 + is_wavname() new + +Sun Jan 25 16:02:26 1998 Joerg Schilling + * audiosize.c 1.1 + date and time created 98/01/25 16:02:26 by joerg + +Sun Jan 25 13:38:40 1998 Joerg Schilling + * drv_jvc.c 1.23 + Errortexts for CD-R55S + +Sat Jan 24 17:52:52 1998 Joerg Schilling + * wm_packet.c 1.4 + * fifo.c 1.7 + Honour file sizes + +Fri Jan 23 02:08:22 1998 Joerg Schilling + * scsi-linux-sg.c 1.14 + scsi_initdev() new to allow concurrent cdrecord's + +Fri Jan 23 02:04:01 1998 Joerg Schilling + * drv_jvc.c 1.22 + * drv_mmc.c 1.14 + * drv_sony.c 1.15 + * scsireg.h 1.16 + * scgio.h 2.12 + Uint for Bitfields -> Ucbit + +Sun Jan 18 14:25:01 1998 Joerg Schilling + * scsitransp.c 1.19 + flush() calls to correctly mix stderr/stdout + +Sun Jan 18 14:23:33 1998 Joerg Schilling + * cdrecord.h 1.23 + TI_WAV, is_wav(), wavsize() nee + +Sat Jan 17 22:07:03 1998 Joerg Schilling + * cdrecord.1 1.22 + * cdrecord.c 1.37 + -reset Option new + +Sat Jan 17 21:53:58 1998 Joerg Schilling + * cdrecord.h 1.22 + F_RESET, F_PRATIP, F_PRDINFO, SES_UNDEF new + Definitios for disk status and session status + dstat_t enhanced + CDR_NOLOLIMIT & CDR_ALLOC new + fifo_percent(), allow_atapi(), mode_sense_??()/mode_select_??() new + +Sat Jan 17 21:35:54 1998 Joerg Schilling + * fifo.c 1.6 + undef FIFO if no shared mamory + SHM_LOCK for Linux + Stat buffer for fifosize + removed sp->cont because it is not secure (use diff) + fifo_percent() new + +Sat Jan 17 21:20:57 1998 Joerg Schilling + * cdrecord.c 1.36 + -reset new + fifo_percent() printing for -v + +Sat Jan 17 21:09:24 1998 Joerg Schilling + * cdrecord.1 1.21 + Better description of dev= and -scanbus + +Tue Dec 23 01:26:35 1997 Joerg Schilling + * scsi_cdr.c 1.31 + Plextor PX-R24CS + S&F CD-R2006PLUS + Wearns CDR-632P new + +Tue Dec 23 01:23:34 1997 Joerg Schilling + * scsi_cdr.c 1.30 + Uint in Bitfields -> Ucbit + +Thu Dec 11 19:30:31 1997 Joerg Schilling + * scsitransp.c 1.18 + Print command execution time for each failed (non-silent) command + +Sun Nov 9 18:33:48 1997 Joerg Schilling + * drv_mmc.c 1.13 + Remove get Page 0x2A for Matsushita CW-7502 + has_mode_page() checks "current" instead of "default" + +Sat Nov 8 16:11:51 1997 Joerg Schilling + * cdrecord.c 1.35 + Disk size check -> checkdsize() : new + +Fri Nov 7 00:02:20 1997 Joerg Schilling + * scsi-aix.c 1.3 + timeout counts in seconds + +Fri Nov 7 00:04:11 1997 Joerg Schilling + * scsireg.h 1.15 + * scgio.h 2.11 + * scsi_cdr.c 1.29 + * drv_sony.c 1.14 + * drv_mmc.c 1.12 + * drv_jvc.c 1.21 + u_char in Bitfields -> Uint + +Thu Nov 6 20:27:08 1997 Joerg Schilling + * scsihack.c 1.7 + Typo __AIX -> defined(_IBMR2) || defined(_AIX) + +Thu Nov 6 20:26:23 1997 Joerg Schilling + * scsi-aix.c 1.2 + sccsid[] -> __sccsid[], fd -> f Typo, #include + +Thu Nov 6 20:22:14 1997 Joerg Schilling + * cdrecord.1 1.20 + Typo corrected + +Thu Nov 6 20:19:26 1997 Joerg Schilling + * scsitransp.c 1.17 + * scsierrs.c 2.14 + * scsi_cdr.c 1.28 + * scsi.c 1.4 + * drv_sony.c 1.13 + * drv_philips.c 1.11 + * drv_mmc.c 1.11 + * drv_jvc.c 1.20 + #include for AIX + +Thu Nov 6 20:18:25 1997 Joerg Schilling + * cdrecord.c 1.34 + #ifdef RLIMIT_NOFILE fuer AIX + +Wed Nov 5 18:01:32 1997 Joerg Schilling + * cdrecord.1 1.19 + Better doc for fs= + +Wed Nov 5 17:57:50 1997 Joerg Schilling + * drv_mmc.c 1.10 + msf_to_lba() new, get_diskinfo() new, di_to_dstat() new, getdisktype_mmc() new, additions for Matsushita CW-7502 + +Wed Nov 5 17:43:41 1997 Joerg Schilling + * fifo.c 1.5 + switch -> if then else + +Wed Nov 5 17:15:45 1997 Joerg Schilling + * cdrecord.c 1.33 + init struct disk_status, better aritmetic for disk size + +Wed Nov 5 17:14:29 1997 Joerg Schilling + * fifo.c 1.4 + print FIFO min fill in percent + +Tue Nov 4 11:20:22 1997 Joerg Schilling + * scsi_cdr.c 1.26 + return (mode_select_g0(dp, cnt, smp, pf)) was missing in mode_select() + +Tue Nov 4 10:35:02 1997 Joerg Schilling + * scsi-linux-sg.c 1.13 + Check for NULL at return of valloc() + +Tue Nov 4 00:13:35 1997 Joerg Schilling + * drv_jvc.c 1.19 + New flag CDR_NO_LOLIMIT + +Sun Nov 2 16:17:10 1997 Joerg Schilling + * scsi_cdr.c 1.25 + SCSI mode(6/10) conversion for ATAPI, distinguish between S&F 2006PLUS / S&F 2006PLUS + +Sun Nov 2 14:57:57 1997 Joerg Schilling + * scsitransp.c 1.16 + Print finish time + +Sun Nov 2 14:54:50 1997 Joerg Schilling + * scgio.h 2.10 + i_to_4_byte new + +Thu Oct 23 19:21:19 1997 Joerg Schilling + * scsihack.c 1.6 + AIX Support + +Thu Oct 23 19:20:25 1997 Joerg Schilling + * scsi-aix.c 1.1 + date and time created 97/10/23 18:20:25 by joerg + +Thu Oct 23 19:12:02 1997 Joerg Schilling + * drv_mmc.c 1.9 + Enhancements for packet writing + +Thu Oct 23 01:35:02 1997 Joerg Schilling + * cdrecord.1 1.18 + New options -prcap, -packet, pktsize =#, -noclose + +Wed Oct 22 23:50:44 1997 Joerg Schilling + * drv_jvc.c 1.18 + * wm_packet.c 1.3 + * cdrecord.c 1.32 + fflush(stdout) -> flush(), flush() after Fixating... + +Wed Oct 22 23:49:12 1997 Joerg Schilling + * scsi_cdr.c 1.24 + scsi_close-session() -> scsi_close_tr_session() + +Wed Oct 22 23:49:11 1997 Joerg Schilling + * cdrecord.h 1.21 + scsi_close-session() -> scsi_close_tr_session() + +Sun Oct 19 15:41:35 1997 Joerg Schilling + * scsi_cdr.c 1.23 + * cdrecord.c 1.31 + Prevent medium removal problems fixed (read TOC) & Matsushita CD-750? + +Sun Oct 19 15:40:32 1997 Joerg Schilling + * scsidefs.h 1.15 + Matsushita CW-7501 & CW-7502 + +Sun Oct 19 02:08:53 1997 Joerg Schilling + * drv_sony.c 1.12 + * drv_philips.c 1.10 + * drv_jvc.c 1.17 + * wm_packet.c 1.2 + * cdrecord.h 1.20 + * cdrecord.c 1.30 + next_wr_address() has track_t * added + +Sun Oct 19 01:37:02 1997 Joerg Schilling + * drv_jvc.c 1.16 + read_disk_info() -> read_disk_info_teac(), zero pre-gap audio support, opt_power_judge() timeout -> 60 sec + +Sun Oct 19 01:33:21 1997 Joerg Schilling + * scsi_cdr.c 1.22 + read_disk_info() new, print_capabilities() new + +Sun Oct 19 00:40:36 1997 Joerg Schilling + * cdrecord.c 1.29 + * cdrecord.h 1.19 + get_buf() new, -prcap & print_capabilities() new, -packet new, pktsize=# new + +Sun Oct 19 00:36:32 1997 Joerg Schilling + * wm_track.c 1.1 + * wm_session.c 1.1 + * wm_packet.c 1.1 + date and time created 97/10/18 23:36:31 by joerg + +Sat Oct 18 19:14:05 1997 Joerg Schilling + * scsi.c 1.3 + stdlib.h -> stdxlib.h, unistd.h -> unixstd.h + +Sat Oct 18 01:34:19 1997 Joerg Schilling + * modes.c 1.3 + Ausgabe der Mode Parameter wenn mode_select() nicht klappt & return FALSE + +**** 1.6a3 *** + +Sun Oct 12 20:00:21 1997 Joerg Schilling + * cdrecord.1 1.17 + * cdrecord.c 1.28 + New options pregap= defpregap= + +Sun Oct 12 19:30:45 1997 Joerg Schilling + * cdrecord.h 1.18 + is_first() & is_last() new + +Sat Oct 11 18:01:28 1997 Joerg Schilling + * cdrecord.c 1.27 + islast debug printf deleted + +Sat Oct 11 17:57:43 1997 Joerg Schilling + * scsi_cdr.c 1.21 + * drv_sony.c 1.11 + * drv_philips.c 1.9 + * drv_mmc.c 1.8 + * drv_jvc.c 1.15 + * cdrecord.h 1.17 + * cdrecord.c 1.26 + islast for TEAC & no run-out blocks for disksize computing + +Sat Oct 11 14:54:03 1997 Joerg Schilling + * drv_jvc.c 1.14 + OLD_CLOSE_TRACK re-aktiviert, clear_subcode() in open_track(), set_limits() in open_track() for audio without run-out, dummy sector -> static to be zeroed + +Thu Oct 9 14:14:24 1997 Joerg Schilling + * drv_jvc.c 1.13 + Audio Tracks have no link&run-in + +Thu Oct 9 02:01:23 1997 Joerg Schilling + * drv_jvc.c 1.12 + SWABAUDIO Flag new + +Wed Oct 8 17:24:40 1997 Joerg Schilling + * scsi_cdr.c 1.20 + * drv_sony.c 1.10 + * drv_philips.c 1.8 + * drv_mmc.c 1.7 + * cdrecord.h 1.16 + * cdrecord.c 1.25 + Modification of data structures for JVC/TEAC + +Wed Oct 8 17:23:41 1997 Joerg Schilling + * fifo.c 1.3 + WRITER_MAXWAIT 20 -> 120 s + +Wed Oct 8 17:14:04 1997 Joerg Schilling + * drv_jvc.c 1.11 + Enhancements for audio and multi track disks + +Wed Oct 8 14:48:06 1997 Joerg Schilling + * cdrecord.1 1.16 + Better doc for padsize & fs= + +Mon Oct 6 20:37:39 1997 Joerg Schilling + * drv_jvc.c 1.10 + Modified to use pad_track() + +Mon Oct 6 20:32:11 1997 Joerg Schilling + * cdrecord.c 1.24 + In pad_track(): if (bytesp != 0) check was missing ->coredump + +Mon Oct 6 20:29:22 1997 Joerg Schilling + * scsi_cdr.c 1.19 + SMART&FRIENDLY CD-R2006 + +Sun Oct 5 16:53:45 1997 Joerg Schilling + * drv_mmc.c 1.6 + verbose printing modified + +Sun Oct 5 16:53:09 1997 Joerg Schilling + * cdrecord.c 1.23 + Check for bytesp != 0 in pad_track() + +Sat Oct 4 01:09:56 1997 Joerg Schilling + * cdrecord.c 1.22 + realtime raisepri Problem for HP-UX fixed (function present bot not working) + +Fri Oct 3 21:33:13 1997 Joerg Schilling + * scsi_cdr.c 1.18 + * drv_sony.c 1.9 + * drv_philips.c 1.7 + * drv_mmc.c 1.5 + * drv_jvc.c 1.9 + * cdrecord.h 1.15 + * cdrecord.c 1.21 + * cdrecord.1 1.15 + * cdr_drv.c 1.5 + new option blank=type for CD-RW + +Fri Oct 3 16:23:00 1997 Joerg Schilling + * cdrecord.c 1.20 + pad_track() new, await_faio() new & init_faio() befor wait loop, always pad to 300 sectors , padsize= option new, DEFAULT_FIFOSIZE new + +Thu Oct 2 02:02:10 1997 Joerg Schilling + * fifo.c 1.2 + MIN_BUFFERS -> 3, await_faio() new, kill_faio() new, stdin EOF check, Messages only for debug + +Thu Oct 2 01:38:39 1997 Joerg Schilling + * cdrecord.1 1.14 + padsize Option new, nice --18 bug, 's' & 'f' mult for getnum() + +Thu Oct 2 01:31:28 1997 Joerg Schilling + * drv_jvc.c 1.8 + sleep()'s added to cure fixating problems ??? + +Thu Oct 2 01:19:46 1997 Joerg Schilling + * cdrecord.h 1.14 + DEFAULT_FIFOSIZE, roundup(), tracksize & padsize -> long, pad_track() new, await_fifo() & kill_fifo() new, minutes() cast to int + +Wed Sep 24 00:02:39 1997 Joerg Schilling + * cdrecord.c 1.19 + Fifo & tracksize Option + +Tue Sep 23 23:46:27 1997 Joerg Schilling + * scsi-sgi.c 1.7 + Bug with resid != 0 fixed + +Sun Sep 21 23:20:15 1997 Joerg Schilling + * cdrecord.1 1.13 + fs= Option, tsize= Option, mkisofs | cdrecord with fs= EXAMPLE + +Sun Sep 21 22:58:34 1997 Joerg Schilling + * fifo.c 1.1 + date and time created 97/09/21 21:58:34 by joerg + +Sun Sep 21 22:45:08 1997 Joerg Schilling + * cdrecord.h 1.13 + faio_get_buf() & fifo_stats() + +Sun Sep 21 01:12:43 1997 Joerg Schilling + * cdrecord.h 1.12 + fifo code + +Wed Sep 17 13:55:57 1997 Joerg Schilling + * drv_jvc.c 1.7 + Typo in cdr_write_teac() EXPORT -> LOCAL + +Wed Sep 17 13:55:06 1997 Joerg Schilling + * cdrecord.c 1.18 + raisepri() has Parameter (n below Max), _POSIX_PRIORITY_SCHEDULING, _POSIX_MEMLOCK + +*************** Release 1.5 ******************* + +Mon Sep 15 16:46:16 1997 Joerg Schilling + * README 1.9 + Anpassungen fuer release 1.5 + +Wed Sep 10 18:40:49 1997 Joerg Schilling + * cdrecord.c 1.17 + Print always Copyright except for -msinfo + +Wed Sep 10 18:12:59 1997 Joerg Schilling + * scsi_cdr.c 1.17 + Inquiry debug data indented + Mode Parameters only for verbose + +Wed Sep 10 17:57:32 1997 Joerg Schilling + * cdrecord.c 1.16 + Flags defs von cdrecord.c -> cdrecord.h + load_media() new + load/unload_madia() global + Track verbose output after inquiry + Test errorcodes while burning + Dummy blocks added for close_track() is not an error + -nofix Flag activated + Exit code for burning errors: -2 + Swabaudio automatic + +Wed Sep 10 17:43:12 1997 Joerg Schilling + * cdrecord.h 1.11 + Flag defs from cdrecord.c + getdisktype() with cdr_t * + load_media() new + load/unload_madia() global + +Wed Sep 10 17:42:13 1997 Joerg Schilling + * cdr_drv.c 1.4 + * drv_jvc.c 1.6 + getdisktype() with cdr_t * + +Wed Sep 10 17:41:02 1997 Joerg Schilling + * drv_philips.c 1.6 + philips_getdisktype() new for automatic eject on "Command Sequence Error" + +Wed Sep 10 16:50:56 1997 Joerg Schilling + * cdrecord.1 1.12 + Scsibus , typo removed + +Wed Sep 10 15:10:03 1997 Joerg Schilling + * cdrecord.1 1.11 + 1.4 -> 1.5 + +Wed Sep 10 15:04:26 1997 Joerg Schilling + * drv_sony.c 1.8 + new_track_sony() return valoe corrected + +Wed Sep 10 15:03:36 1997 Joerg Schilling + * cdrecord.1 1.10 + Changes for cdrecord-1.5 + +Thu Sep 4 19:26:00 1997 Joerg Schilling + * scsi-linux-sg.c 1.12 + Use channel on multi channel controlers + +Thu Sep 4 19:09:10 1997 Joerg Schilling + * drv_jvc.c 1.5 + * drv_sony.c 1.7 + * scsi_cdr.c 1.16 + inq.ansi_version -> inq.data_format for all mode_select() calls + for Philips CDD-522 (version == 1 , format == 2) + +Wed Sep 3 02:00:33 1997 Joerg Schilling + * scsi-linux-sg.c 1.11 + scsi_mapbus() new + better timeout handling + copy Struct now automatic Variable + Sense Data error = SCG_RETRYABLE + +Mon Sep 1 01:25:16 1997 Joerg Schilling + * scsi-sgi.c 1.6 + * scsi-linux-sg.c 1.10 + * scsi-hpux.c 1.4 + * scsi-bsd.c 1.4 + Last tuning make all implementations equal + Open only one file if possible. + Better bound checking + +Sun Aug 31 23:21:06 1997 Joerg Schilling + * scsi-hpux.c 1.3 + Array again has 8 Luns + havebus tests bounds + +Sun Aug 31 23:18:35 1997 Joerg Schilling + * scsi-sgi.c 1.5 + MAX_* introduced, open max 1 lun (for now) + +Sun Aug 31 20:14:02 1997 Joerg Schilling + * scsi-hpux.c 1.2 + MAX_LUN now 1 + +Sun Aug 31 20:10:25 1997 Joerg Schilling + * scsi-hpux.c 1.1 + date and time created 97/08/31 19:10:25 by joerg + +Sun Aug 31 18:00:16 1997 Joerg Schilling + * scsihack.c 1.5 + HP-UX added + +Tue Aug 26 19:37:15 1997 Joerg Schilling + * cdrecord.c 1.15 + init dp in main now correctly + +Tue Aug 26 17:50:20 1997 Joerg Schilling + * scsi-sgi.c 1.4 + Support complete without using -lds + +Tue Aug 26 17:47:35 1997 Joerg Schilling + * scsi_cdr.c 1.15 + scsibus/target/lun now now -1 if bus is scanned + to make sure that not ony one target can be opened. + +Tue Aug 26 17:46:22 1997 Joerg Schilling + * cdrecord.c 1.14 + test_unit_ready() after select_target() (SCANBUS) + +Tue Aug 26 01:47:41 1997 Joerg Schilling + * scsi-sgi.c 1.3 + unused includes removed + +Mon Aug 25 22:02:35 1997 Joerg Schilling + * scgio.h 2.9 + * scsitransp.c 1.15 + * scsi-sgi.c 1.2 + * scsi-linux-sg.c 1.9 + * scsi-bsd.c 1.3 + errno -> ux_errno in scg_cmd for POSIX multithread + +Mon Aug 25 21:27:55 1997 Joerg Schilling + * scsi-sgi.c 1.1 + date and time created 97/08/25 20:27:55 by joerg + +Mon Aug 25 18:10:12 1997 Joerg Schilling + * cdrecord.c 1.13 + raisepri() not always done + +Sun Aug 24 22:58:37 1997 Joerg Schilling + * drv_jvc.c 1.4 + First pre-aplha makes one data track only + +Sun Aug 24 17:03:05 1997 Joerg Schilling + * cdrecord.c 1.12 + New options: driver=name -checkdrive -inq -scanbus -nofix + set_trsizes() later + get_cdr_cmds() new + first simple sizecheck + "swap" output from print_data_track() removed + +Sun Aug 24 16:54:31 1997 Joerg Schilling + * cdrecord.h 1.10 + struct disk_status new + is_unknown_dev() new + is_mmc() new + mmc_check() new + set_cdrcmds() new + +Sun Aug 24 16:53:09 1997 Joerg Schilling + * scsi_cdr.c 1.14 + is_unknown_dev() new + is_mmc() new + mmc_check() new + open_scsi() modified for scsi_scan() + Device recognition new for CD-R + scsi_load() now correct + +Sun Aug 24 16:22:22 1997 Joerg Schilling + * cdrecord.1 1.9 + -nofix new + driver=name new + -checkdrive new + -inq new + -scanbus new + Sense Output uses new form + +Sun Aug 24 16:19:42 1997 Joerg Schilling + * drv_mmc.c 1.4 + CDR_SWABAUDIO new + cd_mode* pages -> scsireg.h + identify_mmc() uses mmc_check() + +Sun Aug 24 16:18:00 1997 Joerg Schilling + * cdr_drv.c 1.3 + set_cdrcmds() new + get_cdrcmds() enhanced + +Sun Aug 24 15:47:30 1997 Joerg Schilling + * drv_sony.c 1.6 + * drv_philips.c 1.5 + CDR_SWABAUDIO Flag new + +Sun Aug 24 14:51:43 1997 Joerg Schilling + * scsidefs.h 1.14 + CDD-2000 & CDD-2600 new + MMC Definitionen new + +Sun Aug 24 14:18:47 1997 Joerg Schilling + * scsireg.h 1.14 + CD mode pages 05 & 2A + +Sun Aug 10 19:29:38 1997 Joerg Schilling + * drv_philips.c 1.4 + * drv_sony.c 1.5 + * drv_mmc.c 1.3 + * cdrecord.h 1.9 + * cdrecord.c 1.11 + cdr_driver -> cdr_drname + cdr_drtext + open_track() with track_info * instead of many arguments + +Sun Aug 10 18:10:14 1997 Joerg Schilling + * scsi_cdr.c 1.13 + LOAD (A6) command now uses correct SCSI definition + +Sun Aug 10 17:43:35 1997 Joerg Schilling + * scsi-linux-sg.c 1.8 + Buffer overflow in sg_rq corrected + timeout corrected (semicolon past if) + 12 Byte Hack now OK + +Sun Aug 10 17:42:06 1997 Joerg Schilling + * scgio.h 2.8 + SCSI g5 command struct now ansi compliant + +Sun Aug 10 17:40:30 1997 Joerg Schilling + * scsihack.c 1.4 + SGI include + +Fri Jul 18 13:41:46 1997 Joerg Schilling + * scsi_cdr.c 1.12 + read_capacity() new + scsi_load_unload() new + scsi_set_sped() new + write_xg1() new + read_toc() for SCSI-3 new + read_toc_philips() from old name + read_track_info() -> read_track_info_philips() + read_track_info() new + scsi_close_session() new + first_writable_address() with address Pointer + read_tochdr() with cdr_t * ???? + read_session_offset() with offset Pointer + Version for SCSI-3 + is_cdrecorder() removed, Taiyo Yuden new + +Fri Jul 18 12:35:02 1997 Joerg Schilling + * scsi-linux-sg.c 1.7 + with new ioctl() SCSI_IOCTL_GET_BUS_NUMBER more SCSI busses + +Fri Jul 18 02:49:46 1997 Joerg Schilling + * cdrecord.1 1.8 + -version + better -isosize Doku + -multi warning removed + +Fri Jul 18 02:44:11 1997 Joerg Schilling + * cdrecord.c 1.10 + fix_it now past open_session() + next_writable_address() and read_session_offset() now with adress Pointer + -version usage() + superfluous argument removed with lout + +Fri Jul 18 02:31:23 1997 Joerg Schilling + * cdrecord.h 1.8 + * drv_mmc.c 1.2 + SCSI-3/mmc first implementation + +Fri Jul 18 02:25:10 1997 Joerg Schilling + * drv_jvc.c 1.3 + * drv_philips.c 1.3 + * drv_sony.c 1.4 + next_writable_address now has adress pointer + read_session_offset_philips() extracted + +Thu Jul 17 18:12:43 1997 Joerg Schilling + * scsi-bsd.c 1.2 + ifdef for BSD SENSE bug + +Thu Jul 17 17:43:10 1997 Joerg Schilling + * isosize.c 1.3 + filedescriptor sense (seek) test. + +Tue Jul 15 21:27:29 1997 Joerg Schilling + * isosize.c 1.2 + & before vd.vd_type deleted + +Tue Jul 15 21:26:57 1997 Joerg Schilling + * drv_sony.c 1.3 + & before mode deleted + +Tue Jul 15 21:16:46 1997 Joerg Schilling + * cdrecord.c 1.9 + version string + write_track_data() with startsec parameter + cd_recorder/drive recognition now uses cdr_t + print_toc() with cdr_t parameter + open_session() with multi parameter + Progress printing in write_track_data() now uses correct rounding + dbtype with -multi corrected + read_session_offset() with cdr_t parameter + print_toc() prints sector numbers correctly and 'lout' for 0xAA + +Tue Jul 15 13:34:04 1997 Joerg Schilling + * cdr_drv.c 1.2 + drive_identify may modify cdr_t struct pointer + Yamaha CDR-400 correct with cdr_mmc + +Tue Jul 15 13:24:49 1997 Joerg Schilling + * drv_philips.c 1.2 + * drv_jvc.c 1.2 + * drv_sony.c 1.2 + open_track() with dbtyp arg + open_session() with multi arg + struct cdr_t driver flags filled in + driver type string + +Tue Jul 8 19:42:42 1997 Joerg Schilling + * scsi-linux-sg.c 1.6 + /dev/sg0 ... tested too + +Tue Jul 8 18:00:39 1997 Joerg Schilling + * scsi-bsd.c 1.1 + date and time created 97/07/08 17:00:39 by joerg + +Tue Jul 8 17:59:20 1997 Joerg Schilling + * scsihack.c 1.3 + New Implementation for *BSD + +Sun Jun 22 19:58:40 1997 Joerg Schilling + * scsi_cdr.c 1.11 + Smart & Friendly Support + +*************** Release 1.4 ******************* + +Sat Mai 21 19:58:42 1997 Joerg Schilling + * cdrecord.1 1.7 + Updates for release 1.4 + +Sat Mai 21 18:11:25 1997 Joerg Schilling + * scsi.c 1.2 + scsireg.h Include + +Sat Mai 21 00:52:33 1997 Joerg Schilling + * drv_sony.c 1.1 + date and time created 97/05/20 23:52:33 by joerg + +Sat Mai 21 00:27:56 1997 Joerg Schilling + * drv_philips.c 1.1 + date and time created 97/05/20 23:27:56 by joerg + +Sat Mai 21 00:27:50 1997 Joerg Schilling + * drv_mmc.c 1.1 + date and time created 97/05/20 23:27:50 by joerg + +Sat Mai 21 00:27:43 1997 Joerg Schilling + * drv_jvc.c 1.1 + date and time created 97/05/20 23:27:43 by joerg + +Sat Mai 21 00:27:14 1997 Joerg Schilling + * scsi_cdr.c 1.10 + mode_select() uses inq.ansi_version >= 2 + +Sat Mai 21 00:26:42 1997 Joerg Schilling + * cdrecord.h 1.7 + attach_unknown() new + +Sat Mai 21 00:26:05 1997 Joerg Schilling + * cdr_drv.c 1.1 + date and time created 97/05/20 23:26:05 by joerg + +Thu Mai 19 23:46:54 1997 Joerg Schilling + * cdrecord.c 1.8 + Struct track -> cdrecord.h + DB_XXX Data block types + cdr_cmd Struct as Drive Abstraction Layer + -eject Flag + checktsize() new + CDR_SPEED & CDR_DEVICE + +Thu Mai 19 16:59:44 1997 Joerg Schilling + * cdrecord.h 1.6 + struct track from cdrecord.c + DB_XXX Data block types + cdr_cmd Struct as Drive Abstraction Layer + +Thu Mai 19 15:42:53 1997 Joerg Schilling + * scsi_cdr.c 1.9 + Prototypes lokal too + scsi_load_unload() -> load_unload_philips() + start_stop_unit() now with eject + close_track_philips() new + recover with track parameter + mode_sense() new + speed_select splitted + inquiry news new drives + scsi_cdr_write() + +Mon Mai 16 15:46:48 1997 Joerg Schilling + * config.h 1.1 + date and time created 97/05/16 14:46:48 by joerg + +Mon Mai 16 15:46:48 1997 Joerg Schilling + * scsi.c 1.1 + date and time created 97/05/16 14:46:48 by joerg + +Fri May 23 22:09:21 1997 Joerg Schilling + * scsitransp.c 1.14 + bad 2. Parameter in gettimeofday -> struct timezone * + +Fri Apr 23 22:08:16 1997 Joerg Schilling + * scsierrs.c 2.13 + missing %s in Formatstring added + +Wed Apr 14 00:54:03 1997 Joerg Schilling + * scsireg.h 1.13 + new scsi device types + +Wed Apr 14 00:53:28 1997 Joerg Schilling + * scsitransp.c 1.13 + scsireset() into hack part + scsi_setnonstderrs() new, scsierrmsg() chganges + new scsi devicetype codes, Solaris x86 dmasize without gethostid() + +Wed Apr 14 00:46:27 1997 Joerg Schilling + * scsitransp.h 1.10 + Changes for scsierrs.c enhancements + +Wed Apr 14 00:45:26 1997 Joerg Schilling + * scsierrs.c 2.12 + Enhancements for SCSI-2 & SCSI-3 + +Tue Apr 6 17:15:43 1997 Joerg Schilling + * scsidefs.h 1.13 + Different order & Yamaha CDR-400, Sony CDU-924, Ricoh RO-1420, Teac CD-R50 new + +Tue Apr 6 16:36:38 1997 Joerg Schilling + * scgio.h 2.7 + Enhancements for SCSI-2 & SCSI-3 + +Tue Apr 6 14:10:35 1997 Joerg Schilling + * scsi-linux-sg.c 1.5 + CCD-> CCS Typo + +Tue Apr 6 13:59:16 1997 Joerg Schilling + * scsihack.c 1.2 + scsireset() -> transport specific part + +Tue Apr 6 13:59:16 1997 Joerg Schilling + * scsi-linux-sg.c 1.4 + scsireset() -> transport specific part + +*************** Release 1.3 ******************* + +Fri Mar 4 19:48:35 1997 Joerg Schilling + * README 1.6 + Changes for Release 1.3 + +Fri Mar 4 18:57:02 1997 Joerg Schilling + * cdrecord.1 1.6 + release 1.3 + +Fri Mar 4 18:46:37 1997 Joerg Schilling + * cdrecord.1 1.5 + Changes for Release 1.3 + +Fri Mar 4 11:55:28 1997 Joerg Schilling + * scsi-linux-sg.c 1.3 + scsihack.c & scsi-linux-sg.c splitted + +Fri Mar 4 11:53:59 1997 Joerg Schilling + * scsihack.c 1.1 + date and time created 97/03/04 10:53:59 by joerg + +Fri Mar 4 11:52:42 1997 Joerg Schilling + * iso9660.h 1.2 + Quick hack for ANSI C + +Wed Mar 2 17:16:35 1997 Joerg Schilling + * scsi_cdr.c 1.8 + open_scsi() with verbose arg + write_track() & write_track_info() isaudio/preemp -> sectype + read_toc() new, read_header() new, read_track_info() new + first_writable_addr() now working + read_tochdr() new, read_trackinfo() new, read_session_offset() new + is_cddrive() new read_scsi() now korrekt with G0_MAXADDR & cnt < 256 + HACK XXX scsi_capacity to 2048 bytes Sectorsize initialized for mkisofs-1.10 + +Wed Mar 2 16:51:24 1997 Joerg Schilling + * scsitransp.c 1.12 + BAD -> EX_BAD, BOOL scsi_havebus() new + scsi_fileno(bus, tgt, lun) new with 3 Parameters, MAX_DMA_SUN386 new + +Wed Mar 2 16:46:44 1997 Joerg Schilling + * scsi-linux-sg.c 1.2 + better Kommentar + +Wed Mar 2 16:35:04 1997 Joerg Schilling + * scsitransp.h 1.9 + BOOL scsi_havebus() new, scsi_fileno(bus, tgt, lun) new with 3 Parameters + +Wed Mar 2 16:33:18 1997 Joerg Schilling + * scgio.h 2.6 + intriduced _SCGIO_H & bei __STDC__ 0xFF000000UL + +Wed Mar 2 16:14:35 1997 Joerg Schilling + * scsidefs.h 1.12 + BAD -> EX_BAD + +Wed Mar 2 16:14:04 1997 Joerg Schilling + * port.c 1.6 + include fmt.h only if #ifdef FMT + +Wed Mar 2 16:07:53 1997 Joerg Schilling + * scsi-linux-sg.c 1.1 + date and time created 97/03/02 15:07:53 by joerg + +Wed Mar 2 15:49:56 1997 Joerg Schilling + * iso9660.h 1.1 + date and time created 97/03/02 14:49:56 by joerg + +Wed Mar 2 15:48:55 1997 Joerg Schilling + * isosize.c 1.1 + date and time created 97/03/02 14:48:55 by joerg + +Wed Mar 2 15:40:32 1997 Joerg Schilling + * cdrecord.c 1.7 + toctname[] * sectname[] new + ldebug -> debug, HAVE_MLOCKALL, -msinfo new, -toc new + -audio/-mode2/-xa1/-xa2/-cdi new, -isosize new + better Check for options, print_msinfo() new, print_toc() new + HAVE_SYS_PRIOCNTL_H new + +Wed Mar 2 15:30:26 1997 Joerg Schilling + * cdrecord.h 1.5 + BAD -> EX_BAD in standard.h, TOC_* defines, ST_* defines, struct msf + several Interface changes for Prototypes + +Wed Jan 19 00:23:11 1997 Joerg Schilling + * cdrecord.c 1.6 + Changed to use scsi_buf_size() & scsi_getbuf(), better gcc Kompat. + +Wed Jan 12 23:11:18 1997 Joerg Schilling + * scsitransp.c 1.11 + Sbufsize -> long, scsi_maxdma() new + +Wed Jan 12 22:10:33 1997 Joerg Schilling + * scsitransp.h 1.8 + Sbufsize -> long + +Fri Jan 7 21:10:26 1997 Joerg Schilling + * port.c 1.5 + ANSI C & printf %ld + +Thu Jan 6 22:45:03 1997 Joerg Schilling + * scsitransp.h 1.7 + scsi_sense_key() & scsi_sense_code() from fmt.c + +Thu Jan 6 22:45:02 1997 Joerg Schilling + * scsitransp.c 1.10 + scsi_sense_key() & scsi_sense_code() from fmt.c + +Mon Jan 3 14:47:53 1997 Joerg Schilling + * scsitransp.h 1.6 + scsi_bufsize() & scsi_getbuf() new + +Mon Jan 3 14:47:52 1997 Joerg Schilling + * scsitransp.c 1.9 + scsi_bufsize() & scsi_getbuf() new + +Fri Dec 31 17:16:13 1996 Joerg Schilling + * scsireg.h 1.12 + Defekt List: length & list_block -> char[] for Byteorder + +Tue Dec 28 20:51:42 1996 Joerg Schilling + * scgio.h 2.5 + #error beseitigt for SunOS cc + +Tue Dec 28 14:28:01 1996 Joerg Schilling + * scsitransp.c 1.8 + debug -> kdebug + +Tue Dec 28 14:19:16 1996 Joerg Schilling + * scgio.h 2.4 + debug -> kdebug + +Sun Dec 19 16:18:18 1996 Joerg Schilling + * scsi_cdr.c 1.7 + Mitsumi + +Sun Dec 19 16:14:12 1996 Joerg Schilling + * README 1.5 + Performance X86 & Mitsumi + +Sat Dec 18 12:37:38 1996 Joerg Schilling + * scsierrs.c 2.11 + param.h, sys/buf.h, sun/dklabel.h, sun/dkio.h eliminated + +Sat Dec 18 03:26:04 1996 Joerg Schilling + * README 1.4 + Changes for Release 1.2 + +Sat Dec 18 03:24:14 1996 Joerg Schilling + * cdrecord.1 1.4 + Changes for Release 1.2 + +Sat Dec 18 03:13:41 1996 Joerg Schilling + * cdrecord.c 1.5 + -swab new + LOCAL functions + timings, new timeout for fixating + countdown timer before Start + write_track_info() disabled + -pad for audio, pad to 2352 bytes. + +Sun Dec 12 21:09:24 1996 Joerg Schilling + * scsi_cdr.c 1.6 + Flush cache & Fixation with big Timeout. + +Thu Nov 26 10:54:18 1996 Joerg Schilling + * scsierrs.c 2.10 + New Codes for CDD-2000 & Support for Yamaha CDR-100 + +Mon Dec 16 16:19:54 1996 J. Schilling + + * Added -swab option to support Yamaha audio + Thanks to (Fred) vecoven@montefiore.ulg.ac.be + for the hint. + * Added counter for quit time (9 seconds) + +Wed Dec 12 21:09:24 1996 J. Schilling + + * Flush cache & Fixation with separate bigger timeout, + other timeout reduced to 20sec. + +Mo Dec 3 13:03:30 1996 J. Schilling + + * Set sector size on all drive types before writing, + * Omwith the write_track_info Mode Select before write_track + even for Philips drives (this is currently not needed because + we don't support ISRC codes at this time). + +Tue Nov 26 10:54:18 1996 J. Schilling + + * New error codes for CDD-2000 & error code support for Yamaha CDR-100 + +Sun Nov 3 22:58:21 1996 J. Schilling + + * scsireset() aded to scsitransport.[hc] + * Timings for Track and Fixation + +Fri Oct 4 11:45:13 1996 J. Schilling + + * Version 1.1 released. + +Mon Aug 19 22:25:18 1996 J. Schilling + + * Read access test to allow cdrecord to run savely suid root + +Sun Aug 18 12:11:20 1996 J. Schilling + + * bit ordering problems solved + Thanks to Gert Poletiek for testing + +Tue Jun 18 21:38:51 1996 J. Schilling + + * several changes in scgio.h + +Sun Jun 16 15:56:35 1996 J. Schilling + + * Ansi C Protytypes + * priocntl added for Solaris + Thanks to Anders Lundgren + +Sun Feb 4 19:14:46 1996 J. Schilling + + * Initial release 1.0 diff --git a/FAQ b/FAQ new file mode 100644 index 0000000..cc31a21 --- /dev/null +++ b/FAQ @@ -0,0 +1,33 @@ +Frequently Asked Questions about cdrkit +======================================= + +Q: What does "wodim" stand for? +A: It is not a forest troll and not a winner of the inpronounceability + contest. It was simply the next alternative to wom (Writes Optical Media) + which was unfortunately already used by other software products. + +Q: What this name of ... mean? +A: Terminology: some names are based on pure imagination, some on + abbreviations, some on permutations of chars in descriptions. + + genisoimage: Generate ISO IMAGEs + icedax: InCrEdible Audio eXtractor + librols: LIB Remains Of LibSchily + libusal: LIB Unified/Universal Scsi Access Layer + netscsid: NET SCSI Daemon + readom: READ Optical Media (see also wodim) + wodim: see above + +Q: Are there additional depedencies, compared to cdrtools? +A: Yes. Libcap is required on Linux plattform. Libmagic is needed to support + content-based creator/type tables with HFS (optional). Libiconv is needed to + support iconv-based filename converstion, eg. from UTF-8 ins Joliet's UCS-2 + unicode (optional, on plattform where iconv is not already included in the libc + system library). + +Q: Burning dies with (logical unit communication crc error (ultra-dma/32)). + Reason? Solutions? +A: Try enabling DMA for your device. Some CDROM readers/writters seem to send + non-critical UDMA control/error codes without beeing in DMA mode and so + those messages are not interpreted by the kernel but delivered to the + applications instead. diff --git a/FORK b/FORK new file mode 100644 index 0000000..b2bcb30 --- /dev/null +++ b/FORK @@ -0,0 +1,63 @@ +Forking cdrtools as cdrkit +-------------------------- + + +So, why the fork? CD/DVD burning is a complicated business that needs a +lot of knowledge, so forking such a big collection isn't a step to be +taken lightly. It requires a lot of development effort that could be put to +better use elsewhere. + +In the past, we, the Debian maintainers of cdrtools, had a good and +mutually cooperative relationship with Jörg Schilling. He even +commented on Debian bug reports, which is one of the best things an +upstream maintainer can do. Naturally, there were occasionally +disagreements, but this is normal. + + +Unfortunately Sun then developed the CDDL[1] and Jörg Schilling +released parts of recent versions of cdrtools under this license. +The CDDL is incompatible with the GPL. The FSF itself says that this +is the case as do people who helped draft the CDDL. One current and +one former Sun employee visited the annual Debian conference in Mexico +in 2006. Danese Cooper clearly stated there that the CDDL was +intentionally modelled on the MPL in order to make it GPL- +incompatible. For everyone who wants to hear this first-hand, we have +video from that talk available at [2]. + +You can read the FSF position about the CDDL at [3]. The thread behind +[4] contains statements on the issue made by Debian people; for more +context also see the other mails in that thread. +In short - the CDDL has extra restrictions, which the GPL does not +allow. Jörg has a different opinion about this and has repeatedly +stated that the CDDL is not incompatible, interpreting a facial +expression in the above-mentioned video, calling us liars and generally +appearing unwilling to consider our concerns (he never replied to the +parts where we explained why it is incompatible). As he has basically +ignored what we have said, we have no choice but to fork. While the CDDL +*may* be a free license, we never questioned if it is free or not, as it +is not our place to decide this as the Debian cdrtools +maintainers. However, having been approved by OSI doesn't mean it's ok +for any usage, as Jörg unfortunately seems to assume. There are several +OSI-approved licenses that are GPL-incompatible and CDDL is one of +them. That is and always was our point. + + +For our fork we used the last GPL-licensed version of the program code +from Cdrtools [5] and killed the incompatibly licensed build system. It +is now replaced by a cmake system, and the whole source we distribute +should be free of other incompatibilities, as to the best of our current +knowledge. + + +Anyone who wants to help with this fork, particularly developers of +other distributions, is welcome to join our efforts. You can contact us +on IRC, server irc.oftc.net, channel #debburn, or via mail at +debburn-devel@lists.alioth.debian.org. Our svn repository is +http://svn.debian.org/wsvn/debburn. + + +[1] http://www.opensource.org/licenses/cddl1.php +[2] http://meetings-archive.debian.net/pub/debian-meetings/2006/debconf6/theora-small/2006-05-14/tower/OpenSolaris_Java_and_Debian-Simon_Phipps__Alvaro_Lopez_Ortega.ogg +[3] http://www.gnu.org/licenses/license-list.html +[4] http://lists.debian.org/debian-devel/2006/08/msg00552.html +[5] Cdrtools 2.01.01a08 from May 2006, http://cdrecord.berlios.de diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..1e30812 --- /dev/null +++ b/INSTALL @@ -0,0 +1,66 @@ + +Short overview for those who don't read manuals: + +This software is compiled to binary form using a build system based on the +CMake framework. Therefore, the requirements to build this package are: + + - cmake 2.4.3 or newer (available from http://www.cmake.org or maybe as a + package in your Linux distribution) + - GNU make + - working GCC compiler environment + - maybe additional requirements for your operating system, see + doc/platforms/... and FAQ. + Recommended: glibc (Linux standard) or GNU libiconv + +COMPILATION: + +Run: make + +INSTALLATION: + +Run: make install + +To customize the target paths, some variables can be appended to this line: +PREFIX=/opt/cdrkit/latest (default: CMake preset, e.g. /usr/local) +MANSUBDIR=man (default: share/man) + +TROUBLESHOOTING: + +Problem: Linking error. +Solution: Look for missing dependencies. If you installed additional libraries +in non-system paths, they may have a conflict with the system libraries which +are already installed. Make sure that the linker gets the right ones, those +that belong to the headers. For example, if you installed libmagic and libiconv +into /usr/local/{include,lib} and your compiler or linker have different +defaults (eg. they use /usr/lib, /usr/include or intermix them), then you can +set CFLAGS and LDFLAGS vars to override the system defaults, assumed by cmake. +Example: +(AIX5l, /usr/lib is default lib dir but /usr/local/include is preferred by gcc +for headers), command: + make clean + make CFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib +(cleaning is important to rerun tests. Alternatively, remove build/CMakeCache*) + +Problem: Library not found +Solution: Install the library and its development files. Depending on the +system distribution they can be shipped in different packages. Install them +all and make sure that the development files match the version of the main +library package. + +Problem: Library not found during configuration though it's installed +Solution: Install the development files, see above for details. + +Problem: Library not found though it's installed with dev files +Solution: Install the development files, see above for details. If you use +non-standard paths not known/searched by Cmake and/or your compiler, pass the +location of the headers in CFLAGS and the libraries via LDFLAGS. See examples +above. + +Problem: None of those hints helps +Solution: Examine the following files: + build/CMakeFiles/CMakeFiles/CMakeOutput.log + build/CMakeFiles/CMakeOutput.log +and look for failed commands. Some checks are expected to fail if the platform +does not provide a certain feature, others must not fail. Look the failing +check and use THE FORCE to find related problems and solutions. + diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..6b24226 --- /dev/null +++ b/Makefile @@ -0,0 +1,72 @@ +ifneq ($(CFLAGS),) +CMAKETWEAKS += ( cd build ; cmake .. -DCMAKE_C_FLAGS="$(CFLAGS)" ) || exit 1; +endif + +ifneq ($(LDFLAGS),) +CMAKETWEAKS += (cd build ; cmake .. -DCMAKE_EXE_LINKER_FLAGS:STRING="$(LDFLAGS)" -DCMAKE_MODULE_LINKER_FLAGS:STRING="$(LDFLAGS)" -DCMAKE_SHARED_LINKER_FLAGS:STRING="$(LDFLAGS)" ) || exit 1; +endif + +ifneq ($(PREFIX),) +CMAKETWEAKS += ( cd build ; cmake .. -DCMAKE_INSTALL_PREFIX="$(PREFIX)") || exit 1; +endif + +ifneq ($(MANSUBDIR),) +CMAKETWEAKS += ( cd build ; cmake .. -DMANSUBDIR="$(MANSUBDIR)" ) || exit 1; +endif + +default_target: all + +DISTNAME=cdrkit-$(shell cat VERSION) +DEBSRCNAME=cdrkit_$(shell cat VERSION | sed -e "s,pre,~pre,").orig.tar.gz + +build/Makefile: + @-mkdir build 2>/dev/null + cd build && cmake .. + +cmakepurge: + rm -rf install_manifest.txt progress.make CMakeFiles CMakeCache.txt cmake_install.cmake + rm -rf */install_manifest.txt */progress.make */CMakeFiles */CMakeCache.txt */cmake_install.cmake + rm -rf */*/install_manifest.txt */*/progress.make */*/CMakeFiles */*/CMakeCache.txt */*/cmake_install.cmake + rm */Makefile */*/Makefile + +clean: + rm -rf build + +tarball: +# if test "$(shell svn status | grep -v -i make)" ; then echo Uncommited files found. Run \"svn status\" to display them. ; exit 1 ; fi + @if test -f ../$(DISTNAME).tar.gz ; then echo ../$(DISTNAME).tar.gz exists, not overwritting ; exit 1; fi + -svn up + rm -rf tmp + mkdir tmp + svn export . tmp/$(DISTNAME) + rm -rf tmp/$(DISTNAME)/debian + tar -f - -c -C tmp $(DISTNAME) | gzip -9 > ../$(DISTNAME).tar.gz + rm -rf tmp + test -e /etc/debian_version && ln -f ../$(DISTNAME).tar.gz ../$(DEBSRCNAME) || true + test -e ../tarballs && ln -f ../$(DISTNAME).tar.gz ../tarballs/$(DEBSRCNAME) || true + +tarball-remove: + rm -f ../$(DISTNAME).tar.gz ../tarballs/$(DEBSRCNAME) ../$(DEBSRCNAME) + +SVNBASE=$(shell svn info | grep URL: | cut -f2 -d' ' | xargs dirname) +release: tarball + svn ci + svn cp $(SVNBASE)/trunk $(SVNBASE)/tags/release_$(shell cat VERSION) + +#%:: +# $(MAKE) $(MAKE_FLAGS) build/Makefile +# $(CMAKETWEAKS) +# $(MAKE) -C build $(MAKE_FLAGS) $@ + +# needs to be explicite, for PHONY and install (AKA INSTALL) file on cygwin +install: build/Makefile + $(CMAKETWEAKS) + $(MAKE) -C build $(MAKE_FLAGS) $@ + +all: build/Makefile + $(CMAKETWEAKS) + $(MAKE) -C build $(MAKE_FLAGS) $@ + +.PHONY: install all + + diff --git a/START b/START new file mode 100644 index 0000000..647b5da --- /dev/null +++ b/START @@ -0,0 +1,2 @@ +build/mkisofs/mkisofs -r -J -o /tmp/cd.iso . +build/wodim/wodim -dummy -v speed=24 dev=/dev/cdrw /tmp/cd.iso diff --git a/TODO b/TODO new file mode 100644 index 0000000..48acd53 --- /dev/null +++ b/TODO @@ -0,0 +1,50 @@ + + - on various places in drv_dvd.c, check for the correct answer ("long write in + progress" and friends) instead of using the dumb wait_unit_ready method. + + - (for consideration) similar got natname management in libusal, add a method + to check whether the device can be opened without side effects (for safety) + and then get the device capabilities to select the best drive for the input + size. Kind of generic implementation of the Linux specific guessing code. + + - look for alternative ways to find the maximum DMA transfer size, Schilling + wrote something about SKGETSIZE ioctl being fixed in recent Linux kernel + versions + + - wrong buffer size displayed with MMC5 DVD recorders, works with -prcap + though. Find a way to get the real one when printing status. + + - check OpenBSD issues with OSS libs + + - fix the multi-file in cuefile support at all. First idea: + import libcuefile from on cuetools-1.3.1/src/lib (after generating the + parser with its build system), add CMakeLists.txt, drop cue.c and make wodim + make use of the parsed CUE data if available. + But be warned, JS said something about bugs in cuetools code, a proper test + suite is required. I doubt he will share his test cases. + + Maybe even do it properly and create a track writting strategy preprocessor + module which could be feeded from cue/toc or from CLI options. + But OTOH this is similar to what libburnia is going to make real, spare time + is better invested there. + + - Scale the command timeout with the recommended WRITE command minimum wait + time? See Pioneer specs from DVR-111 for details. + + - check the REMOTE method, especially with real device names and ssh. + Something is going wrong. + OR + Stop supporting it, add a warning to libusal (scsi-remote.c or so) to not + use it, add an appropriate comment to a BUGS file + - check libparanoia, we may link dynamicaly with it. Quality? Portability? + - check notes in help output, drop advisories, notes about future plans... + - find out why spawn.c breaks in WAIT_H while the WAIT_UNION check works quite + well on sys/wait.h. See include/CMakeLists.txt comments. + - wodim -audio wavefile thesamewavefile thesamewavefile fails with obscure + symptoms. Why? See .cue file problems above for that topic. + - make some deflt.h functions inline, use a define wrapper INLINE which is set + empty if the compiler does not support it + - review the sort/uniq code in dvd_file.c, see comments there + - implement -stream-file-name properly. Then close #157962 + + diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..9ee1f78 --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +1.1.11 diff --git a/doc/ANNOUNCEMENTs/AN-2.0 b/doc/ANNOUNCEMENTs/AN-2.0 new file mode 100644 index 0000000..c504298 --- /dev/null +++ b/doc/ANNOUNCEMENTs/AN-2.0 @@ -0,0 +1,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 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 + + 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 + +- 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 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= as well as dev=: + 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 + + 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" 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 + +- 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 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" 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 for compatibility with old GUI programs. + Note: -v 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 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 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" + 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 diff --git a/doc/ANNOUNCEMENTs/AN-2.01 b/doc/ANNOUNCEMENTs/AN-2.01 new file mode 100644 index 0000000..3268bbb --- /dev/null +++ b/doc/ANNOUNCEMENTs/AN-2.01 @@ -0,0 +1,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 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 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 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 + 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 + +- 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 + +- -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 + +- 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 + + 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 + +- 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" + +- 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" + +- 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 + +- 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 + +- 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 + +- 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 diff --git a/doc/ANNOUNCEMENTs/AN-2.01.01a01 b/doc/ANNOUNCEMENTs/AN-2.01.01a01 new file mode 100644 index 0000000..2d3a1eb --- /dev/null +++ b/doc/ANNOUNCEMENTs/AN-2.01.01a01 @@ -0,0 +1,91 @@ +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.01a01: + +******* +NOTE: this is _not_ a release that starts a new aplha/beta series of dirtibutions. + The only reason is to add certain new CD/DVD features that are important. + + So _please_ do not send any patches except when you like to fix extreme bugs. + I am currently mainly working on stable incremental restore featurs for star-1.5-final. + Once star-1.5-final is out, cdrtools will start a new developent cycle. +******* + +All: + +- Better lint make rules + +- Better autoconf rrules for ACLs + +- Better support for Linux on IBM-390 + +- Better support for Linux on AMD x86-64 + +- Better conforming to lint warnings. + +Libparanoia (Ported by Jörg Schilling, originated by Monty xiphmont@mit.edu): + +Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de): + +Libscg: + +- Modified the remote SCSI library stuff that has been changed due + to a security problem on order to make it compile again on HP-UX. + +Rscsi: + +Cdrecord: + +- Support for the Plextor GigaRec feature. + Use driveropts=gigarec=1.2 to increase CD capacity by 20%. + +Cdda2wav (By Heiko Eißfeldt heiko@hexco.de): + +Readcd: + +Scgcheck: + +Scgskeleton: + +Mkisofs (By Jörg Schilling and James Pearson j.pearson@ge.ucl.ac.uk): + +TODO: + - read Joliet filenames with multi-session if no TRANS.TBL + or RR is present. I am looking for a volouteer 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 diff --git a/doc/ANNOUNCEMENTs/AN-2.01.01a03 b/doc/ANNOUNCEMENTs/AN-2.01.01a03 new file mode 100644 index 0000000..e7819a2 --- /dev/null +++ b/doc/ANNOUNCEMENTs/AN-2.01.01a03 @@ -0,0 +1,150 @@ +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.01a02: + +******* +NOTE: this is _not_ a release that starts a new aplha/beta series of dirtibutions. + The only reason is to add certain new CD/DVD features that are important. + + So _please_ do not send any patches except when you like to fix extreme bugs. + I am currently mainly working on stable incremental restore featurs for star-1.5-final. + Once star-1.5-final is out, cdrtools will start a new developent cycle. +******* + +All: + +- Now using "makefiles-1.5" + +- Compilation on OS/ should work again (-Zexe -> -o xxx.$(EXEEXT) + +- Sleeptime to allow reading Gmake warning reduced to 2 seconds. + I am still waiting for GNU make to fix the bugs I did report in 1999. + +- Support for 'make DESTDIR=xxx install' added + +- Workaround for a Shell Bug on BSDi + +- Install workaround for the fact that BSDI has chown(1) in /usr/sbin/ + +- cc-config shell script reworked + +- Better configure tests for procfs include files + +- Configure tests for fchown, chmod, fchmod, lchmod, futimes, lutimes + +- Configure tests for fdopendir + +- Configure tests for broken ext2fs includes files in Linux kernel + +- Better SRCROOT search function in makefiles shell scripts + +- libunls reworked + +- New autoconf tests for broken , & + on various Linux systems + + +Libparanoia (Ported by Jörg Schilling, originated by Monty xiphmont@mit.edu): + +Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de): + +Libscg: + +- Trying to introduce a workaround for broken & + on various Linux systems. + +- Trying to introduce a workaround for the changed SCSI generic Linux + Kernel interface from Linux-2.6.8.1 and newer. + + Be very careful with testing. The Linux adption layer for libscg + is already full of workarounds for bugs, unstable interfaces and + unwillingness of the Linux Kernel maintainers to give access to the + needed information for libscg. I am not sure whether this workaround + will not have problems. It has been tested on a Pegasus PPC running + Linux-2.6.8.1 + +Rscsi: + +Cdrecord: + +- Allow the -shorttrack option for RAW mode, thanks to a report + from Sebastian Trueg + +- Enhance the minimal grace time from 2 to 3 seconds to make sure + that cdrecord will not get out of sync with locks from the + Volume management system. + +- Better checks and better error messages for /etc/default/cdrecord + +- Correct verbose print mode for old pre-MMC TEAC drives. + +- Added support for Ultra speed+ CD-RW media recognition and a check + whether the drive supports Ultra speed+ CD-RW media. + (Thanks to Alexander Noé). + + +Cdda2wav (By Heiko Eißfeldt heiko@hexco.de): + +Readcd: + +Scgcheck: + +Scgskeleton: + +Mkisofs (By Jörg Schilling and James Pearson j.pearson@ge.ucl.ac.uk): + +- Better error messages with wrong Eltorito boot options + +- Man page is now more explicit about requirements for DVD-video + directory trees. + +- Better warning text for missing Rock Ridge in multi.c + +- Bugs in README.sunx86boot corrected + +- Multi Volume code for reading old image now gives different + error messages on read errors and short reads. + +- Diagnostic programs isodump, isoinfo, ... no longer dump core + when called with dev= parameters. + +TODO: + - read Joliet filenames with multi-session if no TRANS.TBL + or RR is present. I am looking for a volouteer 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 diff --git a/doc/ANNOUNCEMENTs/AN-2.01.01a04 b/doc/ANNOUNCEMENTs/AN-2.01.01a04 new file mode 100644 index 0000000..7acaf29 --- /dev/null +++ b/doc/ANNOUNCEMENTs/AN-2.01.01a04 @@ -0,0 +1,164 @@ +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.01a04: + +******* +NOTE: this is _not_ a release that starts a new aplha/beta series of dirtibutions. + The only reason is to add certain new CD/DVD features that are important. + + So _please_ do not send any patches except when you like to fix extreme bugs. + I am currently mainly working on stable incremental restore featurs for star-1.5-final. + Once star-1.5-final is out, cdrtools will start a new developent cycle. +******* + +All: + +- astoull*() new in schily.h + +- utypes.h now has MAX_ and MIN_ value definitions for all basic + system types. + +- Using Makefiles-1.5a02 + +- Support added to compile in 64 bit mode on Solaris Sparc. + Use: smake CCOM=cc64 + +- Support added to compile shared libraries with version + numbers for interface levels and make inofficial "interfaces" + static + +- Prevent gmake to go into an enless loop on Solaris + in case that /usr/ucb/tr is before /usr/bin/tr in PATH + +- Better autoconf error message ion case that the expected + C-compiler could not be found. + +- Mac OS X now installs files as root:wheel + +- Supply linker mapfiles for all libraries. This allows cdrtools + to be compiles using shared libraries only and to properly + hide inofficial interfaces on Solaris (using ls) + Note that this feature is not available with GNU ld + + +Libparanoia (Ported by Jörg Schilling, originated by Monty xiphmont@mit.edu): + +Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de): + +Libscg: + +- Autoconf test for broken Linux sg.h headers added + +- if libscg is compiles on newer Solaris systems, the warning: + + "Warning: Volume management is running, medialess managed drives are invisible.\n" + + is no longer printed. + + Since Solaris 11 Build 21, vold no longer hides empty drives + that are under volume management. This now allows cdrecord to be even + used to close the tray while vold is running. + + The criteria used to decide whether Solaris is "recent enough" is + #ifndef SEEK_HOLE + The definition SEEK_HOLE has been added with Solaris 11 Build 14 + while the fixed vold appears in Solaris 11 Build 21. + +- Support for root-less cdrecord using fine-grained privileges. + Remote SCSI not tests for PRIV_NET_PRIVADDR instead of (geteuid() == 0) + + If you like all users to be able to call cdrecord root-less, you need + Solaris 10 or newer. + + Edit the file /etc/security/exec_attr and add: + + All:solaris:cmd:::/opt/schily/bin/cdrecord: privs=file_dac_read,sys_devices,proc_lock_memory,proc_priocntl,net_privaddr + All:solaris:cmd:::/opt/schily/bin/readcd: privs=file_dac_read,sys_devices,net_privaddr + All:solaris:cmd:::/opt/schily/bin/cdda2wav: privs=file_dac_read,sys_devices,net_privaddr + + If you like to allow only specific user to use cdrecord, + use something like: + + CD RW:solaris:cmd:::/opt/schily/bin/cdrecord: privs=file_dac_read,sys_devices,proc_lock_memory,proc_priocntl,net_privaddr + + instead and make the users members of the profile "CD RW" + by adding a line like: + + joerg::::profiles=CD RW + + into /etc/user_attr + + Note that you either need to call cdrecord via "pfexec cdrecord ....." + or by using a profile aware shell (e.g. /usr/bin/pfksh) + +Rscsi: + +Cdrecord: + +- Correctly evaluate the write speeds for Ultra speed+ CD-RW media. + This prevents wrong warnings that the "drive does not support Ultra speed+" + +- Fixed a typo in the driveropts=help messages + + +Cdda2wav (By Heiko Eißfeldt heiko@hexco.de): + +- Added a workaround for the _POSIX_PRIORITY_SCHEDULING behavior + on MacosX: defined but not supported# + Thanks to: Emanuele Giaquinta + +- Bugfix: cdda2wav did previously chose to ignore the result of realloc(3) + This prevents core-dumps. + +Readcd: + +Scgcheck: + +Scgskeleton: + +Mkisofs (By Jörg Schilling and James Pearson j.pearson@ge.ucl.ac.uk): + +- mkisofs now detects if a file grows or shrinks while being + read by mkisofs. + + +TODO: + - read Joliet filenames with multi-session if no TRANS.TBL + or RR is present. I am looking for a volouteer 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 diff --git a/doc/ANNOUNCEMENTs/AN-2.01.01a05 b/doc/ANNOUNCEMENTs/AN-2.01.01a05 new file mode 100644 index 0000000..f52ab26 --- /dev/null +++ b/doc/ANNOUNCEMENTs/AN-2.01.01a05 @@ -0,0 +1,143 @@ +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.01a05: + +******* +NOTE: this is _not_ a release that starts a new aplha/beta series of dirtibutions. + The only reason is to add certain new CD/DVD features that are important. + + So _please_ do not send any patches except when you like to fix extreme bugs. + I am currently mainly working on stable incremental restore featurs for star-1.5-final. + Once star-1.5-final is out, cdrtools will start a new developent cycle. +******* + +All: + +- Support for DragonFly BSD added, thanks to joerg@britannica.bec.de + +- Default Cygwin install uid/group adapted to use available ids. + +- Updated the (forgotten) autoconf to include the tests needed for Solaris + fine grained privileges. + +- New program btcflash added. Thanks to David Huang + +- + If you like all users to be able to call cdrecord root-less, you need + Solaris 10 or newer. + + Edit the file /etc/security/exec_attr and add: + + All:solaris:cmd:::/opt/schily/bin/cdrecord: privs=file_dac_read,sys_devices,proc_lock_memory,proc_priocntl,net_privaddr + All:solaris:cmd:::/opt/schily/bin/readcd: privs=file_dac_read,sys_devices,net_privaddr + All:solaris:cmd:::/opt/schily/bin/cdda2wav: privs=file_dac_read,sys_devices,proc_priocntl,net_privaddr + + If you like to allow only specific user to use cdrecord, + use something like: + + CD RW:solaris:cmd:::/opt/schily/bin/cdrecord: privs=file_dac_read,sys_devices,proc_lock_memory,proc_priocntl,net_privaddr + + instead and make the users members of the profile "CD RW" + by adding a line like: + + joerg::::profiles=CD RW + + into /etc/user_attr + + Note that you either need to call cdrecord via "pfexec cdrecord ....." + or by using a profile aware shell (e.g. /usr/bin/pfksh) + + +Libparanoia (Ported by Jörg Schilling, originated by Monty xiphmont@mit.edu): + +Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de): + +Libscg: + +- Support for root-less cdrecord using fine-grained privileges. + Remote SCSI not tests for PRIV_NET_PRIVADDR instead of (geteuid() == 0) + This is now active since the needed autoconf code is out. + +Rscsi: + +Cdrecord: + +- Trying to work around a noncompliance (modified interface) present on newer + Linux kernels that causes cdrecord to be unable to allocate a SCSI transfer + buffer. + + Newer Linux kernels do not honor a contract from mlockall(MCL_FUTURE) + after cdrecord turned off euid == 0 from a suid root installation. + Instead of honoring mlockall(MCL_FUTURE), Linux checks each mmap() + and compares against getrlimit(RLIMIT_MEMLOCK + +- Explicit fine grained privileges support for Solaris. + Cdrecord now switches off all privs that are no longer needed. + + +Cdda2wav (By Heiko Eißfeldt heiko@hexco.de): + +- Explicit fine grained privileges support for Solaris. + Cdda2wav now switches off all privs that are no longer needed. + +Readcd: + +- Allow readcd to work correctly in -scanbus mode + Thanks to Fabian Keil for reporting. + +- Explicit fine grained privileges support for Solaris. + readcd now switches off all privs that are no longer needed. + +Scgcheck: + +Scgskeleton: + +- Allow readcd to work correctly in -scanbus mode + Thanks to Fabian Keil for reporting. + +- Explicit fine grained privileges support for Solaris. + Scgskeleton now switches off all privs that are no longer needed. + +Mkisofs (By Jörg Schilling and James Pearson j.pearson@ge.ucl.ac.uk): + + +TODO: + - read Joliet filenames with multi-session if no TRANS.TBL + or RR is present. I am looking for a volouteer 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 diff --git a/doc/ANNOUNCEMENTs/AN-2.01.01a06 b/doc/ANNOUNCEMENTs/AN-2.01.01a06 new file mode 100644 index 0000000..8a4f3e6 --- /dev/null +++ b/doc/ANNOUNCEMENTs/AN-2.01.01a06 @@ -0,0 +1,141 @@ +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.01a06: + +******* +NOTE: this is _not_ a release that starts a new aplha/beta series of dirtibutions. + The only reason is to add certain new CD/DVD features that are important. + + So _please_ do not send any patches except when you like to fix extreme bugs. + I am currently mainly working on stable incremental restore featurs for star-1.5-final. + Once star-1.5-final is out, cdrtools will start a new developent cycle. +******* + +All: + +- Better support for BeOS/Zeta in the makefile system + +- Support for armv5teb-linux-cc was added to the makefile system + +- + If you like all users to be able to call cdrecord root-less, you need + Solaris 10 or newer. + + Edit the file /etc/security/exec_attr and add: + + All:solaris:cmd:::/opt/schily/bin/cdrecord: privs=file_dac_read,sys_devices,proc_lock_memory,proc_priocntl,net_privaddr + All:solaris:cmd:::/opt/schily/bin/readcd: privs=file_dac_read,sys_devices,net_privaddr + All:solaris:cmd:::/opt/schily/bin/cdda2wav: privs=file_dac_read,sys_devices,proc_priocntl,net_privaddr + + If you like to allow only specific user to use cdrecord, + use something like: + + CD RW:solaris:cmd:::/opt/schily/bin/cdrecord: privs=file_dac_read,sys_devices,proc_lock_memory,proc_priocntl,net_privaddr + + Also edit /etc/security/prof_attr + + CD RW:::CD-R/RW Recording Authorizations:auths=solaris.device.cdrw + + instead and make the users members of the profile "CD RW" + by adding a line like: + + joerg::::profiles=CD RW + + into /etc/user_attr + + Note that you either need to call cdrecord via "pfexec cdrecord ....." + or by using a profile aware shell (e.g. /usr/bin/pfksh) + + +Libparanoia (Ported by Jörg Schilling, originated by Monty xiphmont@mit.edu): + +Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de): + +Libscg: + +- BeOS/Zeta libscg low level adoption code fixed. + The code now is passing a "scgcheck" test. + +Rscsi: + +Cdrecord: + +- Adjust some timeouts to prevent that the drive buffer of + newer Pioneer DVD writers empties when writing high speed DVD + media. + +- Support for BeOS/Zeta shared memory was added + +- New tag CDR_MAXFIFOSIZE= in /etc/default/cdrecord allows to + limit the size of the FIFO cdrecord is using. This helps the + sysadmin to prevent other people from locking up the system. + +Cdda2wav (By Heiko Eißfeldt heiko@hexco.de): + +Readcd: + +- Support for BeOS/Zeta shared memory was added + +- -scanbus behavior corrected + +Scgcheck: + +- Fixed DMA overrun test. BeOS/Zeta did pass the test but + scgcheck did complain before. + +Scgskeleton: + +- -scanbus behavior corrected + +Btcflash: + +- -scanbus behavior corrected + +- man page added + +Mkisofs (By Jörg Schilling and James Pearson j.pearson@ge.ucl.ac.uk): + +- try to work around a GCC trigraph problem + +- man pages for diag commands added + +TODO: + - read Joliet filenames with multi-session if no TRANS.TBL + or RR is present. I am looking for a volouteer 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 diff --git a/doc/ANNOUNCEMENTs/AN-2.01.01a07 b/doc/ANNOUNCEMENTs/AN-2.01.01a07 new file mode 100644 index 0000000..2bac2f6 --- /dev/null +++ b/doc/ANNOUNCEMENTs/AN-2.01.01a07 @@ -0,0 +1,96 @@ +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.01a07: + +******* +NOTE: this is _not_ a release that starts a new aplha/beta series of dirtibutions. + The only reason is to add certain new CD/DVD features that are important. + + So _please_ do not send any patches except when you like to fix extreme bugs. + I am currently mainly working on stable incremental restore featurs for star-1.5-final. + Once star-1.5-final is out, cdrtools will start a new developent cycle. +******* + +All: + +- Autoconf script added to 'conf' directory + +Libparanoia (Ported by Jörg Schilling, originated by Monty xiphmont@mit.edu): + +Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de): + +Libscg: + +Rscsi: + +Cdrecord: + +- Fixed a bug caused by an uninitalized variable when handling + CDR_MAXFIFOSIZE= and no file /etc/default/cdrecord exists + +Cdda2wav (By Heiko Eißfeldt heiko@hexco.de): + +- Write correct error info in case that BeOS/Zeta *_area() calls + fail. + +- As Heiko did not work on cdda2wav during the past 2.5 years, + Heiko did hand over the SCCS history for cdda2wav. + +- Autoconf test for added (FreeBSD) + +- Some FreeBSD related changes from Heiko done in 2004 + + IMPORTANT: I need testers for FreeBSD and DragonFly BSD as + a result of the merge with the complex changes + from Heiko. + +Readcd: + +Scgcheck: + +Scgskeleton: + +Btcflash: + +Mkisofs (By Jörg Schilling and James Pearson j.pearson@ge.ucl.ac.uk): + +TODO: + - read Joliet filenames with multi-session if no TRANS.TBL + or RR is present. I am looking for a volouteer 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 diff --git a/doc/ANNOUNCEMENTs/AN-2.01.01a08 b/doc/ANNOUNCEMENTs/AN-2.01.01a08 new file mode 100644 index 0000000..b45988c --- /dev/null +++ b/doc/ANNOUNCEMENTs/AN-2.01.01a08 @@ -0,0 +1,96 @@ +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.01a08: + +******* +NOTE: this is _not_ a release that starts a new aplha/beta series of dirtibutions. + The only reason is to add certain new CD/DVD features that are important. + + So _please_ do not send any patches except when you like to fix extreme bugs. + I am currently mainly working on stable incremental restore featurs for star-1.5-final. + Once star-1.5-final is out, cdrtools will start a new developent cycle. +******* + +All: + +Libparanoia (Ported by Jörg Schilling, originated by Monty xiphmont@mit.edu): + +Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de): + +Libscg: + +Rscsi: + +Cdrecord: + +Cdda2wav (By Heiko Eißfeldt heiko@hexco.de): + +- Started to make cdda2wav Cstyle compliant. + +- Avoid to shutdown the whole system when kill(getppid(), SKGINT) + would result in kill -INT 1 because the parent cdda2wav is + dead and the child is orphaned and cdda2wav has been called by root. + +- __FreeBSD_version >= 600021 have devmajor == 0 for all devices. + Thanks to Marius Strobl for reporting. + +- General #ifdef structure related to FreeBSD in mycdrom.h now + corrected, thanks to Marius Strobl. + +- Try to fix some FreeBSD/DragonFly related problems that have been + introduced with a06 when Heiko's changes from 2004 have been integrated + + IMPORTANT: I need testers for FreeBSD and DragonFly BSD as + a result of the merge with the complex changes + from Heiko. + +Readcd: + +Scgcheck: + +Scgskeleton: + +Btcflash: + +Mkisofs (By Jörg Schilling and James Pearson j.pearson@ge.ucl.ac.uk): + +TODO: + - read Joliet filenames with multi-session if no TRANS.TBL + or RR is present. I am looking for a volouteer 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 diff --git a/doc/DOC-OVERVIEW b/doc/DOC-OVERVIEW new file mode 100644 index 0000000..d40ff6c --- /dev/null +++ b/doc/DOC-OVERVIEW @@ -0,0 +1,35 @@ +This is the documentation collection of the cdrkit package + +It has been derived from the cdrtools package maintained by +Joerg Schilling. However, other maintainers work on this +spinoff of the documentation. + +Keep in mind that cdrkit is not cdrtools when you read the +documentation. Some details may be void in context of +cdrkit. + +Contents: + +ANNOUNCEMENTs : directory containing AN* files with release + notes from old cdrtools releases + +READMEs : contains HOWTOs and instructions relevant to + various tasks, especially such where multiple + programs are involved + +wodim : contains README files relevant for the work with the + wodim application (writing data) and details specific + to its usage + +genisoimage : documentation for work with genisoimage program, a + ISO9660 filesystem creator. See genisoimage/README for + details. + +icedax : contains documentation for the CD audio + extraction utility icedax. See icedax/README for + details. + +platforms : contains notes about portability to different + platforms + + diff --git a/doc/PORTABILITY b/doc/PORTABILITY new file mode 100644 index 0000000..c694a22 --- /dev/null +++ b/doc/PORTABILITY @@ -0,0 +1,34 @@ +You may have heard from a certain person that cdrkit is not portable and you +may need some help to decide whether you shall believe him/her or not. It is, +as usual, recommended to make your own opinion before adopting someone elses +which may be biased. + +What is portability? Portability is the ability for being compiled and +deployed on a platform that an application supports. It is obvious that nobody +can promise the unlimited portability especially not to operating systems to do +not exist yet or that are long dead (dead like in: unsupported, unmaintained for +many years, needing hardware which is not available in stores for many years). +And there could always undocumented bugs which means that real life tests +should be done on the target platform(s) again and again. + +Therefore, unlimited portability is pure utopia. It is required to define a +certain degree of portability to meet the needs of the target user base. + +How does that work in scope of cdrkit? Main target are mainstream platforms. +Currently, it supports Linux, FreeBSD, Cygwin (Win32), SunOS and AIX5l. This +set should cover the majority of general purpose computer systems in the wild. + +Cdrkit sets some requirements on the targeted operating systems. However, most +modern unix-like OS should be able to fullfill them. Those requirements +include: + + - an ANSI-C compiler, or a GCC port + - GNU make port + - Large File Support + - sane libc library + - some prerequisites to bootstrap CMake + +This cuts off support for really old operating systems, but... do you care? Do +you need it? Or do you want to believe the tales of superiority through (just +claimed) portability? + diff --git a/doc/READMEs/README.ATAPI b/doc/READMEs/README.ATAPI new file mode 100644 index 0000000..8b2e601 --- /dev/null +++ b/doc/READMEs/README.ATAPI @@ -0,0 +1,589 @@ + +The file attached below provides a short explanation about the nature of ATAPI +and the support for it on various platforms. However, it was written for an +old version of cdrtools by Joerg Schilling and completed with even older guides +supplied by other authors, therefore parts of the content are no longer true or +are not applicable anymore. Read and interpret with care! + +See README.ATAPI.setup for a quick setup guide for Linux. + +Eduard Bloch, 2006 + +# @(#)README.ATAPI 1.3 04/05/20 Copyright 1997-2004 J. Schilling + +People (with a Linux only background) often ask me why do you depend on +"ATAPI-SCSI emulation", why don't you support generic IDE? + + Well first a statement: There is no single IDE burner out! + Even a CD-ROM cannot be used decently if you use only IDE commands. + Opening/closing the door, playing audio and similar things + cannot be done using vanilla IDE commands - you will need SCSI commands + to do this. But how do we do this with a drive that uses an IDE + interface? + + ATAPI stands for ATA Packet Interface + + The ATAPI standard describes method of sending SCSI commands over IDE + transport with some small limitations to the "real" SCSI standard. + SCSI commands are send via IDE transport using the 'ATA packet' + command. There is no SCSI emulation - ATAPI drives include native + SCSI command support. For this reason, sending SCSI commands to ATAPI + drives is the native method of supporting ATAPI devices. Just imagine + that IDE is one of many SCSI low level transport mechanisms. + + This is a list of some known SCSI transports: + + - Good old Parallel SCSI 50/68 pin (what most people call SCSI) + - SCSI over fiber optics (e.g. FACL - there are others too) + - SCSI over a copper variant of FCAL (used in modern servers) + - SCSI over IEEE 1394 (Fire Wire) + - SCSI over USB + - SCSI over IDE (ATAPI) + + As you now see, the use of the naming convention "ATAPI-SCSI emulation" + is a little bit misleading. It should rather be called: + "IDE-SCSI host adapter emulation" + +Some naming explanations: + + ATA Attachment Adapter + IDE Integrated Drive Electronics (A Drive that includes ATA) + ATAPI ATA Packet Interface + +When wodim has problems with ATAPI drives on Linux this usually is a Linux +kernel problem. The Linux kernel maintainers unfortunately refuse to correct +their current IDE driver system setup which does not support ATAPI by default. +ATAPI _is_ SCSI over IDE transport. It is hard to understand why Linux still +uses a default driver setup that is designed for IDE CD-ROM drives made +before 1994 (using a IDE compat mode that only allows to use the drive +read-only) and does not handle to send SCSI commands to ATAPI drives by +default. This makes it hard for people who just started with Linux to do +CD-writing on Linux if they own an ATAPI drive. Both Linus Torvalds and +Alan Cox admit that they don't own a CD/DVD writer, how should they know about +the problems? + +There are bugs with the DMA implementation that are known for many years +but they don't get fixed. + +/*--------------------------------------------------------------------------*/ +Which Operating systems support ATAPI + +- AIX: Status unknown! Please report your experience... + +- Apple Mac OS X (Darwin): Supported + +- BeOS (libscg maps ATAPI to SCSI bus # >= 8 + +- BSD/OS: Status unknown! Please report your experience... + +- FreeBSD: + - YES for the latest default kernel. + It includes finally ATAPI-Cam + + - NO for the older kernels. + Yes, if you install a kernel patch from + Thomas Quinot + See http://www.cuivre.fr.eu.org/~thomas/atapicam/ + and README.FreeBSD + +- HP-UX: It looks like ATAPI does not work correctly due to kernel bugs. + + New information: + HP supports a HP A7853A B/C class machine (s700_800) with HP-UX-11.x + You need to install a patch: + + Patch Name: PHKL_27224 Patch Description: s700_800 11.00 IDE/ATAPI + cumulative patch + + +- Linux (unfortunately not in the default configuration) + + - It works more or less if you include ide-scsi + + - Linux-2.4.xx includes a CDROM Packet interface in the + IDE CD driver. For this driver libscg now includes + support in pre-alpha status. Use wodim dev=ATAPI -scanbus + to check for drives and e.g. wodim dev=ATAPI:0,0 .... + for writing. Note that this interface is not integrated into + the standard libscg device naming scheme. Support for + this interface has been included because it is the only + way to use a PCCARD/PCMCIA writer - trying to use ide-scsi + on a PCATA interface will cause a Linux kernel panic + or will block all ATAPI drives. + + - Starting with Linux-2.5.45, there is a new experimental + ATAPI interface initiated by Linus Torvalds. Unfortunately, + this interface does not fit well into the rest of the Linux + SCSI kernel transport naming scheme. Wodim allows to + use this interface by calling e.g. wodim dev=ATA:1,0,0 ... + + All Linux ATAPI transport implementations do not support DMA. + Current exceptions are: + + - ide-scsi with block size 2048 and if DMA has been enabled + + - The new experimental ATAPI interface starting with Linux-2.5.45 + allows DMA if DMA has been enabled and the sector size is a + multiple of 4. This allows to use DMA for audio CDs and + when writing any type of CD in RAW mode. + + Note that is a bad idea to first implement a new kernel + interface that also implements the named DMA implementation + bugs and later fix the DMA bug _only_ for this new + interface. It looks like the Linux kernel folks are not + very cooperative :-( + + RAW mode is needed for many new and cheap drives that have bugs when + writing in cooked mode. If there is no DMA, you cannot write faster + than approx 16x. + + +- NetBSD (releases 1.3 and newer) + +- NeXT: Status unknown! Please report your experience... + +- OpenBSD: (release 2.6 and newer) + +- OS/2 (you need to fetch and install ATAPI support first) + see: http://www.leo.org/pub/comp/os/os2/leo/drivers/dasd/daniatapi.zip/ + +- OSF-1 / True64 Status unknown! Please report your experience... + +- SCO-OpenServer: Supported with 5.0.6 and non-public patch or with + 5.0.7. I don't know whether you need a patch for 5.0.7 + +- SCO-UnixWare: partial support with UnixWare 7.1.3 - some SCSI commands + that are needed for cdda2wav and DVD writing are blocked. + 7.1.4 will have full ATAPI support. + +- SGI/IRIX: Status unknown! Please report your experience... + +- Solaris (you may need to use the USCSI transport interface to address + ATAPI if the IDE hostadapter idriver implementation does not follow + Sun's internal standards). + + ATAPI works fine on Solaris 7 sparc and on Solaris 7/8 intel. + + On Solaris 8 (intel) and newer, the ATAPI/SCSI subsystem is integrated + correctly according to Sun's SCSA white paper, so the 'scg' driver works. + This is not true for Solaris on sparc where the ATAPI driver do not conform + to Sun's internal structuring rules. You need to use the USCSI interface + on for ATAPI drives on Solaris sparc for this reason. + + Solaris 8 sparc has a ATA DMA bug that prevents wodim from working at all. + There is a fix from Sun available: the patch 108974-16 + Solaris 9 sparc works again, it has the fix for the ATA DMA bug included. + + Newer versions of Solaris 9 disable DMA for CD-ROM drives on IDE. + Read README.solaris-x86-ATAPI-DMA to learn how this may be circumvented. + +- VMS: works on recent versions! + +- Win32 using a recent ASPI Layer supports ATAPI + You nay need to exclude mini port drivers (see README.win32). + + Newer wodim versions also support the SPTI (SCSI Pass through ioctl). + Libscg uses SPTI by default if you are running NT-5.x or newer and are + administrator. With NT-4.x it may be possible to run wodim dev=SPTI:1,0.0 ... + But there are reports for blue screens (kernel crashes). + +- DOS DOS-7 from win98 includes a ATAPI aware aspi + For other versions have a look at README.msdos and use e.g. "oakaspi". + +/*--------------------------------------------------------------------------*/ +General hints: + +*********************** +NOTE: IDE/ATAPI doesn't have disconnect/reconnect! you cannot expect the needed + performance for CD-writing if you connect source and destination drive + to the same IDE cable. +*********************** + +If you never like to directly write a CD from CD-ROM source, this configuration +seems to be the best: + +IDE 0 MSTR -> HD1 +IDE 0 SLAV -> HD2 + +IDE 1 MSTR -> CD-writer +IDE 1 SLAV -> CD-ROM + +If you like to write from both HD source and CD-ROM source, you should have +the following configuration: + +IDE 0 MSTR -> HD1 (does _not_ hold CD mastering data) +IDE 0 SLAV -> CD-Writer + +IDE 1 MSTR -> HD2 (holds CD mastering data) +IDE 1 SLAV -> CD-ROM + +If cou cannot set up a decent cabling (e.g. because you use a notebook) +you may try to use wodim -immed ... +It runs slow commands in quick (immediate) return background mode and +tries to wait between the write commands to allow to free the IDE cable +so the wodim read process may fill the FIFO from the other drive +on the same IDE cable. + +/*--------------------------------------------------------------------------*/ +The rest of this file is only valid for Linux! + +This was taken out of mails from From: Dave Cohen +and From: Gadi Oxman +(slightly modified marked ***JS *** except typo corrects) + +As all current Linux versions have ATAPI support for wodim, +I removed the patch section. If you are running a Linux version +that does not support ATAPI<->SCSI command transport, please upgrade. + +The basic driver design in Solaris would also allow to use ATAPI +drives but unfortunately, Sun made a mistake in the mid-level design. +If you want to use ATAPI drives with Solaris, ask Sun why they don't +support SCSI passthrough to IDE although they are using a common driver +concept. + +Please use cdrecord-1.6 final or later (if available), it includes the +modifications needed for ATAPI drives and is still working with other +SCSI drives. Older revisions of cdrecord do not support ATAPI drives. + +If you are using Linux Kernel version prior to 2.1.73 or prior to +2.0.35, please upgrade before you try to compile and use wodim. + +In any case, you need to configure a kernel with ATAPI/SCSI hostadapter +emulation. Read carefully the following instructions: + +In any case, you need to disable generic IDE/ATAPI CDROM support in +order to make ATAPI SCSI emulation working. + +Many people ask why I use ATAPI-SCSI emulation. + + The use of the naming convention "ATAPI-SCSI emulation" is a + little bit misleading. It should rather be called: + "SCSI host adapter emulation" + + The ATAPI standard describes method of sending SCSI commands over IDE + with some small limitations to the "real" SCSI standard. + For this reason ATAPI-SCSI emulation is the native method of + supporting ATAPI devices. + +If you have problems to talk to the device when it is jumpered as "slave" +try to use it as "master". If you connect a hard disk to the same IDE +cable as the CD writer or if you try to read/write data from another drive +that is connected to the same IDE cable as the CD writer you may get +problems too. + +NOTICE: + +With the newer 2.1.x or 2.2.x kernels it seems to be possible to run +SCSI/ATAPI hostadapter emulation and generic IDE at the same time by +selectively telling the kernel what to use for which drive. However, +this would not be needed if the Linux SCSI CD-ROM driver would be more +up to date and supports standard conforming drives. + +Jörg Schilling + +-------------------------------------------------- +Here is a hint from Alan Brown : + +To allow ATAPI cd and ide-scsi support on the same machine, add +`hd=ide-scsi` to the lilo.conf append entry, or use +`hd=ide-scsi` at the bootup lilo prompt. + +I have my HP-7200 RW drive as the primary drive on the second IDE +bus, so the statement used is "hdc=ide-scsi" + +-------------------------------------------------- + +Hope that the following is helpful to you. + +I recently purchased a HP-7110i CD-RW, which is the U.S. only version of +what you have. The HP 7100 and 7110 CD rewritables use the ATAPI +standard. Originally, the drives were not supported under Linux (due to +some inconsistencies with SCSI translations between the kernel and the +CD), but that problem has just recently been fixed. There are some kernel +and wodim patches that have been made to support this device that have +yet to be officially incorporated into cdwrite and the kernel. In order to +get your drive supported under Linux, you will have to do the following: + +1. Get the proper version of cdrecord. + +As of this writing, I am just getting ready to test Joerg's new cdrecord. +I am currently operational on cdrecord-1.5, so I know that works, and I +have attached patches for that version. + +If you are in a hurry, you can download ver. 1.5, apply patches, and +rock-n-roll. You may want to wait, though. Up to you ;). The version with +ATAPI support is cdrecord-1.6alpha5. I'm not sure if the current kernel +patches are valid for this version, but i'll know soon enough. +**** They are valid **** JS + +BTW, the new version of xcdroast now supports cdrecord - this version +is in beta testing, too (currently uses cdrecord-1.5 but cdrecord-1.6a5 +should work with the current xcdroast too). + +2. Upgrade to kernel version 2.0.31 + +IDE/SCSI translation was first added in this kernel. Because your CD-RW is +an ATAPI device, it will support SCSI command sets. The translation +allows you to map the device as a SCSI generic device. This will allow +cdrecord to recognize it as a SCSI device. +**** 2.0.31 still needs patches, get 2.0.35 or later **** JS + +3. Get the patches and apply them + +Attached find kernel patches for kernel sources ide.h and ide-scsi.c, and +cdrecord source scsi_cdr.c (version 1.5 only). +**** Get cdrecord-1.6 or later **** JS + +3. Recompile kernel with SCSI emulation support + +If you do a "make menuconfig" or "make xconfig", select SCSI emulation +under the category "Floppy, IDE, and other block devices". + +WARNING: +Do not install SCSI support as a module - there is a bug in the makefile +structure that will cause the compile to fail. Compile directly into the +kernel. + +4. WARNING: Disable generic IDE/ATAPI CDROM support *** JS *** + +If you don't do this, the SCSI emulation will not work *** JS *** + +5. This is important too: +You also need to enable SCSI and SCSI generic support *** JS *** + +6. Make sure that /dev/sg* exists. +If they are missing, create them. + +Dave Cohen +dcohen@richmond.infi.net +(Patch instructions below) + +----------------------------------------------------------------- +From: Danilo Fiorenzano + +Anyway, here's what I did, using kernel version 2.0.33 I believe this +is the proper way to get an HP-7100i to work (and as far as I can tell, +any other IDE CD-writer unit): + +1) patch the kernel as described by README.ATAPI + +2) save your current kernel config to an alternate file, then run + "make mrproper" + +3) run 'make menuconfig' or 'make xconfig', then choose "load config + from alternate file" to restore the original configuration + +4) In "Floppy, IDE and other block devices", disable "IDE/ATAPI CD-ROM + support" and enable instead "scsi emulation" + +5) in "SCSI support" enable "SCSI support", "SCSI CD-ROM support" and + "SCSI generic support", everything directly in the kernel. + +6) compile, install kernel/modules, reboot. Now, if everything went + fine, your CDROM units should show up with a message like: + "hdb: HP CD-Writer+ 7100, ATAPI CDROM drive - enabling SCSI emulation" + +7) run "wodim -scanbus" to make sure wodim can see the unit and + talk to it. The end. + +Don't forget that now -all- of your CD drives are seen as -SCSI- units +by all programs (/dev/scd0 etc.), so you might want to relink +/dev/cdrom to the proper scd in order to get xcdplay or whatever to +work again. + + +------------------------------------------------------------------------------- +NOTE: + +1) Current wodim releases support ATAPI + +2) Linux 2.0.35 or Linux 2.1.73 or later include ATAPI support +------------------------------------------------------------------------------- +From whampton@staffnet.com Fri Jan 14 05:21:34 2000 +From: "W. Wade, Hampton IV" + +You may wish to include/append these notes to your ATAPI notes.... + +I have my 4X Acer CD-R/RW ATAPI drive working with Linux. My platform +is +RedHat 6.1 with kernel 2.2.14. My first ATAPI CD device is a DVD with +the second +the CD-R. I made the following changes: + +Steps: + +1. Identify which device is the CD-R -- in my case the fourth ATAPI +device, /dev/hdd. + +2. Compile the kernel to include ATAPI CDROM and SCSI emulation: + + Under the block devices menu: + Y or M Include IDE/ATAPI CDROM support + Y or M SCSI emulation + +3. Build and install the upgraded kernel. + +4. If you selected modules, add them to the /etc/conf.modules file. + +5. In the /etc/lilo.conf file add an append line for ide-scsi, in my +case: + append = "hdc=ide-scsi hdd=ide-scsi" + +6. Reboot to the new kernel and make sure the ide-scsi module is loaded + + /sbin/lsmod | grep ide-scsi + +7. Make a link from the proper SCSI device to a symbolic, e.g., +/dev/cdrom: + In my case the DVD is the first CD, hence appears as /dev/scd0 to +scd7 + (cat /proc/scsi/scsi to get a full list of devices -- the first +CD-ROM will + appear as scd0, etc.) With the current ATAPI-SCSI module, each CD + + device appears as 8 SCSI devices (different logical units). If +you have + two devices, like I do, you may have to make a node for the second +device. + In my case I had to make scd8: + + cd /dev + mknod scd8 b 11 8 + + Then make links, in my case: + + ln -s scd0 cdrom + ln -s scd8 cdr + + Note, many CD-ROM player programs expect the audio CD drive to + be located at /dev/cdrom (xplaycd, etc.), hence this link is +recommended. + + If you try to use /dev/hdc (or wherever your CD or CD-R is) +after loading + the ide-scsi module, you may not be able to mount CD's or play +audio + discs -- you have to use the new SCSI names for the device. + +8. Fix your /etc/fstab file to mount the /dev/cdrom and /dev/cdr + + +/*--------------------------------------------------------------------------*/ +From: Eduard Bloch + +Situation: + Linux: Kernel 2.2.15 (Debian package kernel-image-2.2.15) + Distribution: Debian Potato (deep freeze), i386 + Devices: one CDRW-Writer, one CDROM-drive, both ATAPI + +1. Become root, try "grep hd.: /var/log/kern.log" to find out where your + ATAPI-devices are connected to (hd?-names). +2. Edit your boot configuration file, eg. /etc/lilo.conf if you use + lilo or the batch-file if you boot via loadlin. +3. Find a line where you can append additional kernel parameters, eg. + "append=" in lilo.conf or the loadlin-line in the batch file. +4. Append sth. like this: "hdb=ide-scsi hdc=ide-scsi max_scsi_luns=1" + The hdX-parameters defines devices that should be mapped to SCSI + latter. You may do it with non-writers too, since the emulation layer + is almost complete, or let them out so the devices will use their + native drivers. +5. Save the file, reinstall the bootloader (ie. running "/sbin/lilo") +6. Call "modconf", load "sg" and "ide-scsi" from the SCSI-section +7. Reboot Debian, watch while booting, you should see a line like this + "Detected scsi CD-ROM sr0 at scsi0, channel 0, id 0, lun 0". + Your old ATAPI devices virtually don't exist any longer, use the + SCSI equivalents instead. +8. Become root, setup devices: + cd /dev + MAKEDEV sg scd + ln -s scd0 cdrom # NOTE: or cdrw, first check which drive is here + ln -s scd1 cdrw # NOTE: see above, maybe cdrom + Check the new SCSI settings: + wodim -scanbus + Setup wodim's environment - edit /etc/wodim.conf: + CDR_DEVICE=cdrw + cdrw=1,0,0 4 8m + cdrom=1,2,0 0 0m + Input the right values, the fields are described in the manpage + of wodim. Alternatively, you may use this values as + wodim-parameter or take a frontend with an own configuration + scheme, then you don't need to modify /etc/wodim.conf. +9. It's done! Insert a CD and try "wodim -v -toc" +/*--------------------------------------------------------------------------*/ +He had constant buffer underrun problems: + +From: "Trenton D. Adams" + +I enabled DMA, and 32-bit mode on the CD-Writer using "hdparm". +This fixed the writing problem. + +/*--------------------------------------------------------------------------*/ +From: "Mario Moder" +----- +TEAC CD-W54E + +I recently installed a TEAC CD-W54E (an ATAPI CD-RW-Recorder) and I had +problems with buffer underruns and other errors when burning a CD (with +Linux and Windows 2000). My system has an old ASUS P/I-P55T2P4 Pentium +mainboard with Intel PCI-Bus-Master-IDE (I think the chipset is an Intel +430HX and the IDE controller is an 82371SB). The harddisk is the master on +the primary IDE channel, and the CD-Recorder is the master on the secondary +IDE channel. + +After turning off DMA for the CD-Recorder AND the harddisk, the drive had no +longer problems with burning a CD. You can try the following things to make +it work, if you have similar problems with a similar hardware configuration: + +For Linux (Kernel 2.2.19): +Turn off "Enable DMA by default" in the kernel (and then compile a new +kernel), if you had it turned on or use "hdparm" to turn of DMA for both the +CD-Recorder and the harddisk + +For Windows 2000: +In the Device Manager go to "IDE ATA/ATAPI-Controller" and open the +properties for the first and second IDE channel. There you change the mode +of the devices from DMA to PIO. +----- + +/*--------------------------------------------------------------------------*/ + +Hints for the Linux Packet code in ide-cdrom.c: + + WARNING! It seems that this driver does not allow to send all + SCSI commands. A command that definitely fails is READ FULL TOC. + For this reason, you cannot read those 'defective' audio CDs + with broken TOC when you use this interface. + + Thanks to Alexander Kern 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. + + wodim -scanbus dev=ATAPI: + + wodim -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: + + wodim -scanbus + + without the dev=ATAPI: option. + + In this case wodim 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 + wodim -scanbus. + diff --git a/doc/READMEs/README.ATAPI.setup b/doc/READMEs/README.ATAPI.setup new file mode 100644 index 0000000..e283342 --- /dev/null +++ b/doc/READMEs/README.ATAPI.setup @@ -0,0 +1,87 @@ +Howto setup an ATAPI CD-RW/DVD+-RW recorder on Debian/Ubuntu +============================================================ + +This guide should be applicable to most kernel 2.6 using distributions of +GNU/Linux. For installations with kernel 2.4, continue reading below. + +Kernel 2.6.* +============ + +If you have just one CD writer in your computer, CD-writing should work out of +the box. There should be a symbolic link /dev/cdrw which points to your actual +CD-Writer's device (e. g. /dev/hdb). If the link is not present (eg. the +system is not using udev/devfs) or if you want to use a different device as +default, you can configure the device in /etc/wodim.conf: + + CDR_DEVICE=/dev/hdd + +would configure the default device to be /dev/hdd, i. e. the slave +device on the secondary IDE bus. + +You can always override this default setting with wodim's "dev" +option: + + wodim dev=/dev/hdc ... + +Only users part of the system group "cdrom" are able to write CDs. +If you wish to allow non-root users to write CDs then add your users to the +cdrom group ("adduser user cdrom") and let the user completely logout and +re-login. +Note: with certain kernel versions wodim can fail with this message: +"wodim: Operation not permitted. Cannot send SCSI cmd via ioctl" +In this case it still does need the suid bit - please send patches if you have +identified the reason of that problem. + +Kernel 2.4.* (for 2.5/2.6, see above) +===================================== + +Where we start: + Linux: Kernel 2.4.20-bf2.4 (Debian package kernel-image-2.4.20-bf2.4) + Distribution: Debian Woody 3.0r2, i386 + Devices: one CDRW-Writer, one CDROM-drive, both ATAPI + +1. Become root, try "grep hd.: /var/log/kern.log" to find out where your + ATAPI-devices are connected to (hd?-names). +2. Edit your boot configuration file, eg. /etc/lilo.conf if you use + lilo or the batch-file if you boot via loadlin. +3. Find a line where you can append additional kernel parameters, eg. + "append=" in lilo.conf or the loadlin-line in the batch file. +4. Append sth. like this: "hdb=ide-scsi hdc=ide-scsi max_scsi_luns=1" + The hdX-parameters defines devices that should be mapped to SCSI + latter. You may do it with non-writers too, since the emulation layer + is almost complete. Or omit some so the devices will use their + native drivers (eg. ide-cd). +5. Save the file, reinstall the bootloader (ie. running "/sbin/lilo") +6. Call "modconf" in a console or xterm, enter the section + "kernel/drivers/scsi", load "sg" and "ide-scsi" +7. Reboot Debian, watch while booting, you should see a line like this: + "Detected scsi CD-ROM sr0 at scsi0, channel 0, id 0, lun 0". + Your old ATAPI devices virtually don't exist any longer, you cannot refer to + /dev/hd* as CDROM drives. Use the SCSI equivalents instead, /dev/sr*. +8. Become root, setup devices: + cd /dev + MAKEDEV sg scd + ln -s scd0 cdrom # NOTE: or cdrw, first check which drive is here + ln -s scd1 cdrw # NOTE: see above, maybe cdrom + Check the new SCSI settings: + wodim -scanbus + Setup wodim's environment - edit /etc/wodim.conf: + CDR_DEVICE=cdrw + cdrw=1,0,0 4 8m + cdrom=1,2,0 0 0m + Insert the right values, the fields are described in the manpage + of wodim. Alternatively, you may use these values as + wodim-parameter or take a frontend with an own configuration + scheme, then you don't need to modify /etc/wodim.conf. + The columns must be separated by tabs. +9. It's done! Insert a CD and try "wodim -v -toc". To create your first CD-ROM, try: + + mkisofs -v -r -J /directory/to/be/written | wodim -v -dummy - + + (read wodim(1), "man 1 wodim", for details) + +10. If you wish to allow non-root users to write CDs, you must give them + permissions to do so. Set suid-root permissions on the executable, + then add your users to the cdrom group ("adduser user cdrom") and + let the user completely logout and re-login. + diff --git a/doc/READMEs/README.audio b/doc/READMEs/README.audio new file mode 100644 index 0000000..7e2d7c9 --- /dev/null +++ b/doc/READMEs/README.audio @@ -0,0 +1,50 @@ +Why do I hear only noise from my first audio CD? + +You may have a byte swapping problem, try wodim -swab +but note that is is most unlikely that you need to use the -swab +option from wodim unless your input files are broken. +It makes more sense to find out why the inout files are not OK. + +wodim assumes Motorola/Network byte order (big-endian) on input +regardless of the byte order of the CD-Recorder. If wodim +encounters a .wav file, byte order is corrected to match the byte order +of the .wav file. + +wodim by default uses Track at once. This always gives 2 seconds +pause between two audio tracks and loweres the audio quality. + +For best audio CD quality, use wodim -dao (to write in Session At Once) +ot wodim -raw (to write in RAW mode). Note that there are a lot of drives +notably from Lite-ON that have defective firmware and will write defective +CDs if you use either TAO or SAO mode. In RAW mode, wodim has the +full control over the complete CD and the chance that the CD is OK +is much higher. + +The 2 seconds pause between two audio tracks is the CD ***standard*** + +The standard says: + Each track starts with 2 seconds of silence + followed by at least 4 seconds of audio data. + +For that reason the 2 second pause is generated by the CD-R drive in +Track at once (TAO) mode. + +CD's that have no pause between two tracks are illegal (compared to RED BOOK). +These illegal disks may be made with Disk At Once (DAO) only. +In DAO mode the writing software needs to send the 2 seconds pause as +binary zeroes and therefore is able to create illegal disks by +sending audio data instead. + +Some drives don't accept to write illegal disks even in SAO mode. +In this case, use the RAW mode. In RAW mode, the drive does not even +"know" what is going on and thus cannot prevent you from writing such +a disk. + +This audio data (the last two seconds of a track in this case) +however are part of the next track from viewing the TOC of the disk. +Digital Audio Extraction programs that work correctly (as intended by the +CD standard) split the content of a CD into files by including the +pre-gap (usually holding 2 seconds of pause) at the end of the previous +track. + +Eduard Bloch, based on documentation from Joerg Schilling diff --git a/doc/READMEs/README.cdplus b/doc/READMEs/README.cdplus new file mode 100644 index 0000000..24deb0d --- /dev/null +++ b/doc/READMEs/README.cdplus @@ -0,0 +1,85 @@ +Wodim and genisoimage allow you to create multi-session CD's with all +supported drives. + +According to www.cd-info.com, a CD+ is a CD with two sessions. +The first session is an audio session, the second session a data +session. + +Creating a CD+ is first writing an audio session in +multi session mode and then writing a data session. + +If you like to append a filesystem to a audio CD, first extract the +CD by calling: + + icedax -B -vall + +This first audio session may be written in TAO mode with the command + + wodim -multi -audio file1 .... + +or in DAO mode with the command + + wodim -dao -multi -useinfo -audio file1 .... + +To add the second session that contains the data track, you need +to create an ISO-9660 file system that starts not at sector 0. + +With the current genisoimage, you must use the following method: + +- First call wodim -msinfo for your prepared multi-session audio CD. + + you will get something like 0,12345 + +- Now call genisoimage: + + genisoimage -o fs.raw -C 0,12345 root_directory_for_new_cd + + replace 0,12345 with your actual wodim -msinfo output. + +the image in fs.raw may now be written with wodim as second session. + +See my README.multi for more info on how to create multi session CD's + + +The procedure again in short form: + + icedax -vall -B + + wodim -multi -audio audio_tracks .... +or + wodim -dao -useinfo -multi -audio audio_tracks .... + + wodim -msinfo .... + (output is e.g. 0,12345) + + genisoimage -R -o cd_plus.raw -C 0,12345 root_dir_of_fs + + wodim -data cd_plus.raw +or + wodim -multi cd_plus.raw + + +Note: If you want to create an HFS hybrid as the data track, then you must +use the '-part' option to genisoimage. Otherwise, the data track will be mounted +as an ISO9660/Joliet CD when used on a Mac. + +Jörg + +Edited for cdrkit by Christian Fromme and Eduard Bloch + +This describes the programs as shipped with cdrkit, a spinoff from the +cdrtools project. However, the cdrtools developers are no longer +involved in the development of this spinoff and therefore shall not +be made responsible for any problem caused by it. Do not try to get +support for this program by contacting the original authors. + +If you have support questions, send them to + +debburn-devel@lists.alioth.debian.org + +If you have definitely found a bug, send a mail to this list or to + +submit@bugs.debian.org + +writing at least a short description into the Subject and "Package: cdrkit" +into the first line of the mail body. diff --git a/doc/READMEs/README.cdtext b/doc/READMEs/README.cdtext new file mode 100644 index 0000000..33df110 --- /dev/null +++ b/doc/READMEs/README.cdtext @@ -0,0 +1,65 @@ +CD-Text Usage (to copy CD-Text from master CD): + + icedax -D 6,0 -vall -B # To extract audio information + wodim dev=6,0 -vv -toc # To extract CD-Text information + + and then + + wodim dev=6,0 -v -dao textfile=cdtext.dat -useinfo *.wav + or + wodim dev=6,0 -v -raw96r textfile=cdtext.dat -useinfo *.wav + + If the CD-Text information contains more CRC errors than + wodim can correct, you need to reload the CD and to + re-read the CD-Text information from the 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: not all writers that support MMC SAO mode support + to write CD-Text in this write mode. + If you have a drive that does not support CD-Text + but supports RAW/RAW96R mode use this mode as + in RAW/RAW96R mode the drive does not need to know + about CD-Text. This way even old drives like the + Plextor PX-R 412C will write CD-Text. + + NOTE that icedax will read CD-Text and fill in the + CD-Text fields in the *.inf files if vou use -vall. + + The new icedax option cddb= allows you to tell icedax to + retrieve CDDB information from freedb.freedb.org. + cddb=0 means ask if ambiguous, cddb=1 means take first entry. + The information in this case is filled into the fields + in the *.inf files. + +Creating a CD with CD-Text based on CDDB information from freedb.freedb.org: + + Tell icedax to fetch data from freedb.freedb.org, call + + icedax -D 6,0 -vall -B cddb=1 # To extract audio information/fetch CDDB data + + and then call + + wodim dev=6,0 -v -dao -text -useinfo *.wav + or + wodim dev=6,0 -v -raw96r -text -useinfo *.wav + + +If you like to create your own CD-text data for a CD use the +following method: + + First extract all tracks with icedax -vall (see above), + + then edit the *.inf Files and add album and song titles. + + Now call wodim as if the *.nf files contain CD-Text + information. + + Note that it is recommended to use less that 160 characters + for a single string. + +Source: README.cdtext from cdrtools package +Edited for cdrkit by Christian Fromme and Eduard Bloch + diff --git a/doc/READMEs/README.copy b/doc/READMEs/README.copy new file mode 100644 index 0000000..dc78169 --- /dev/null +++ b/doc/READMEs/README.copy @@ -0,0 +1,53 @@ +Ho to copy CD's and CD-R/CD-RW's + +Copying audio CD's: + +If you want to copy audio CD's, look for 'icedax'. + +Copying data CD's: + +The best way to copy a data disk is to copy the raw data on the master CD. +This may be done by reading the data from the raw device by using 'readom'. + + +NOTE: All CD-R's written in Track At Once mode end in two unreadable + run-out sectors. If the disk has been written with a Yamaha CD-R100 + or with a Yamaha CD-R102, there are even more run-out sectors. + +For this reason, you will not be able to read such a CD correctly with 'dd'. + +I recommend to write all disks in Disk at Once mode if your drive +is supported in DAO mode with wodim. In addition, you may wish to +add padding (see wodim / genisoimage man pages). + +If you want to copy such a CD directly with wodim, you may call: + + wodim -v dev=... -isosize /dev/cdrw + +But this may fail if the master gives read errors. To copy such a CD to a file +you may use the program 'readom' from this package + +Call 'readom [target] [lun] [scsibusno]' and select function 11. +Or call readom -help to get alternate usage. +To prevent readom from reading the run-out sectors, reduce the +number of sectors to copy by 2. + +Recent readom versions may be called: readom dev=b,t,l f=outfile +To reduce the numbers of sectors to copy you may use the sectors= option. + +If the master disk is made of several partitions (like a Solaris boot CD), +the best way to copy a CD is to use the program 'readom'. It ignores +the partition info and does raw SCSI reads. + +If you like to copy audio CD's in a way that preserves as much accuracy as +possible, use: + +icedax -vall -D... -B +wodim -v dev=... -dao -useinfo *.wav + +This will preserve pre-gap sizes, indices ... + + +Source: README.copy from cdrtools package, version 2.01.01a08 +Edited for cdrkit by Christian Fromme and Eduard Bloch + diff --git a/doc/READMEs/README.multi b/doc/READMEs/README.multi new file mode 100644 index 0000000..d7d3457 --- /dev/null +++ b/doc/READMEs/README.multi @@ -0,0 +1,209 @@ +Creating multi-session CDs/DVDs Mini Howto FAQ + +Multi-session filesystems are a trick that comes from the Kodak photo CD. +The OS mounts the last session that contains the sum of the current session +and all previous sessions. + +To test (with Linux): + + - create a iso-9660 filesystem image with genisoimage. + - genisoimage is included in the cdrkit release. + - use the -R flag to add Rock Ridge extensions (this is important). + +Assuming that the CD-R drive is connected to target 2 on the SCSI bus. + +Write the first session with: + +wodim -v speed=2 dev=2,0 -eject -multi isoimage.raw + +Note that all Sony drives do no support XA2 disks in firmware - read README.sony +for more information. + +This must be a iso9660 image with Rock Ridge extensions (see above) + +Note the number of sectors written and check the disk, it should be mountable. + +Next step is to check if wodim is able to retrieve the following data: + + 1) The first block (sector) number in the first track of the last session + This must be '0' in our case. + + 2) The next writable address in the unwritten session following the current. + This should be the number of sectors written in the first + run + ~ 11400 sectors for about 22MB lead out/in + + For the first additional session this is 11250 sectors lead-out/lead-in + overhead + 150 sectors for the pre-gap of the first track after the + lead-in = 11400 sectors. + + For all further session this is 6750 sectors lead-out/lead-in + overhead + 150 sectors for the pre-gap of the first track after the + lead-in = 6900 sectors. + +To get this information type: + +wodim -msinfo dev=2,0 + +The output should be two numbers separated by a comma. + + e.g.: 0,204562 + +The first number is (1), the second number is (2). + +2nd session: +You should create a directory that contains a second directory with data in it +for this purpose. + + e.g.: + first_dir/ + second_dir/ + file_1 + file_2 + ... + +call: + +On Linux: +genisoimage -o isoimage_2.raw -R -C xx,yy -M /dev/cdwriter_blk_dev first_dir + +On SunOS: +genisoimage -o isoimage_2.raw -R -C xx,yy -M target,lun first_dir + +Note that the name "first_dir" is not important. + +If you still keep the old raw image of the first session and there is only +one previous session on the CD you may also call: + +genisoimage -o isoimage_2.raw -R -C xx,yy -M isoimage.raw first_dir + + +The argument of -C is the output of wodim -msinfo +- On Linux, the argument of -M is a device that would allow you to mount + the current CD in the CD-writer +- On SunOS, target and lun refer to the SCSI target and lun of the + CD-R device with the same notation as for wodim dev=xxx,yyy . + +Note that you can also use the -msifile=... option of wodim to store this data +in a reliable way. This is usefull for scripting. + +If you want to check, whether genisoimage make everything right, you should create +another image by using the following command line. + +On Linux: +genisoimage -o isoimage_2.raw -R -C xx,0 -M /dev/cdwriter_blk_dev first_dir + +On SunOS: +genisoimage -o isoimage_2.raw -R -C xx,0 -M target,lun first_dir + +Where xx is the first number of the pair returned by wodim -msinfo + +You may check ***this** image by mounting it with my "fbk" on Solaris +or the loopback driver on Linux. + +On Linux type: + mount isoimage_2.raw -r -t iso9660 -o loop /mnt + +On SunOS type: + mount -r -F fbk -o type=hsfs /dev/fbk0:isoimage_3.raw /mnt + +For Solaris 8 and later you may also use the Sun lofi driver (see README.sun-lofi) + +If you list /mnt, you should see all directories that have been in the first +session and the directory "second_dir". If you try to read a file from the +first session, you will get an I/O error or bad data (depending on the +block address), don't worry about that. If you try to read a file from +the second session, you will see everything correctly. + +To write the second session to CD, call: + +wodim -v speed=2 dev=2,0 -eject -multi isoimage_2.raw + +If you mount this CD, you should see the first session and the second directory +from 2nd session added to the root directory of the CD. + + +Additional check: + +call: + +wodim -msinfo dev=2,0 + +The first number should be the first writable address which was retrieved by the +first call to wodim -msinfo after creating the first session. +The second number should be the first number + number of sectors of the second session ++ ~ 11400 sectors. + +Note: The first lead-out is 1:30 (6750 sectors) the lead-in is 1:00 (4500 sectors) +All following sessions need only 0:30 for lead-out (2250 sectors), the lead-in +is also 1:00. So in theory, the can be 44 sessions on s 74 minute disk if you +take into account that the minimum track size is 4 seconds. + +The total amount of the overhead is 11250 + 150 sectors for the first additional +session and 6750 + 150 sectors for all subsequent sessions. +The 150 additional sectors are the pre-gap sectors for the first track after +the current session. + +Some notes on multi-session CD's that contain only Joliet but no Rock Ridge: + +Joliet is a really bad idea in general: + +- There is no way to find a relation between a ISO-9660 name and a Joliet + name. If the file has a size, you may try to match the starting sector # + but if the size in 0 it's impossible. + + +- Joliet does not allow long filenames (it limits names to 64 chars). + +- Joliet does not allow all (usually used) characters in filenames. + + All code points between (00)(00) and (00)(1F), inclusive. (Control Characters) + (00)(2A) '*'(Asterisk) + (00)(2F) '/' (Forward Slash) + (00)(3A) ':' (Colon) + (00)(3B) ';' (Semicolon) + (00)(3F) '?' (Question Mark) + (00)(5C) '\' (Backslash) + + While '/' is not a real problem ;-) other characters may cause trouble. + +All notes above prevent you from doing reliable multi-session if the CD does +only contain Joliet but des not contain Rock Ridge attributes. + +In addition, please read README.joliet in the genisoimage directory. + +This is the answer to a commonly asked question is why can't I continue a +multisession CD that has been started on a Microsoft system using genisoimage. + + +Note: It is not possible to create a multi-session HFS CD. If you create +a multi-session CD using any of the HFS options, then each new HFS +session will ignore HFS files from any previous sessions. A warning will +be printed if you attempt this. However, if you use the '-part' option to +genisoimage for each session you create, then each session will appear as +separate volumes when mounted on a Mac. In this case, it is worth using the +'-V' or '-hfs-volid' option to give each session a unique volume name, +otherwise each "volume" will appear on the Desktop with the same name. + + +Joerg Schilling + +Edited for cdrkit by Christian Fromme and Eduard Bloch + + +This describes the programs as shipped with cdrkit, a spinoff from the +cdrtools project. However, the cdrtools developers are no longer +involved in the development of this spinoff and therefore shall not +be made responsible for any problem caused by it. Do not try to get +support for this program by contacting the original authors. + +If you have support questions, send them to + +debburn-devel@lists.alioth.debian.org + +If you have definitely found a bug, send a mail to this list or to + +submit@bugs.debian.org + +writing at least a short description into the Subject and "Package: cdrkit" + + diff --git a/doc/READMEs/README.netscsid b/doc/READMEs/README.netscsid new file mode 100644 index 0000000..07c3672 --- /dev/null +++ b/doc/READMEs/README.netscsid @@ -0,0 +1,145 @@ +The Remote-SCSI protocol gives you SCSI-Anywhere features. + +The protocol used by netscsid is based on rscsi from the cdrtools, developed by +Joerg Schilling. However, no guarantee for the compatibility or reliability can +be made. This documentation is based on rscsi documentation from Joerg +Schilling, but is not identical to the original. + +There are three possible ways to control access to the remote users: + + - Let the remote scsi lib log in as a standard user. + In this case netscsid will be called via sh -c netscsid /usr/sbin/netscsid + NOTE: In this case, netscsid must be installed suid root. + --- This would need to allow any valid local user to access SCSI ---- + It could be a security problem. + + - Log in as root and call netscsid via sh -c netscsid + NOTE that this will fore you to allow remote logins as root + which is considered to be a security hole. + + - Create one or more special user(s) that have netscsid + as login shell with their own home directory. + You then may create special .rhosts files for each user. + NOTE: In this case, netscsid must be installed suid root. + **** This is the preferred method **** + +To enable remote SCSI via the login shell method you should do the following: + + - Install netscsid into /usr/sbin. It can be set suid-root if neccessary, see + security section below. + + - Install a file /etc/netscsid.conf and define access rights. + Without this file, netscsid will not work at all. + The template for this file is: netscsid/netscsid.dfl + + - For the special user method, create a user account. This can be done with a + frontend like adduser or useradd, if available. The user should have /usr/sbin/netscsid as the login shell. + If there is no frontend tool, try this: + + + Add an entry to /etc/passwd in the form: + + netscsid:x:1999:1000:Tape:/home/netscsid:/usr/sbin/netscsid + + (modify this according to your OS). And don't forget to + modify /etc/shadow the way it needs to be on your OS. + + + Create the home directory for this user, adapt the user/group ownership + on this directory. + + - if you use SSH as the login shell (via appropriate RSH environment variable + or a symlink to "rsh" which is the case for many Linux distribution), + consult the ssh documentation for details. + Note that SSH requires sufficiently powered client/server systems to + encrypt/decrypt data in realtime. + + - if you use traditional rsh, add a .rhosts file to this directory to allow + access to all users you like (see rsh documentation) + +NETSCSID Security: + +- When netscsid starts, it checks if /etc/netscsid.conf exists. + If not, it dies. + +- If netscsid is not called by a user listed in /etc/netscsid.conf + it dies. + +- To access a SCSI target there must be an entry that lists the user + rcsi hast been started from, the hostname and the SCSI target. + + netscsid compares the hostname field in /etc/netscsid.conf + to the peername retrived from STDIN: + + - legal host name IP connection + - "ILLEGAL_SOCKET" Not an IP socket + - "NOT_IP" Not a socket + +NETSCSID Security hints: + +- Do not generally allow other users to see your boot disk via NETSCSID. + All people who see this disk may edit your passwd file. This especially + applies to suid-root usage. For non-suid-root, check the access permissions. + +- If you are in doubt, only export CD-ROM drives, scanners and similar + devices that are not directly security sensitive. + +If anybody sees a security hole in my security precautions, please send me a mail! + +NETSCSID usage: + +- To use remote SCSI devices you need to know how to access a specific remote + SCSI target. + + - dev=REMOTE:host: or dev=REMOTE:host + will allow you to do SCSI bus scanning while you log in as yourself + + - dev=REMOTE:user@host: or dev=REMOTE:user@host + will allow you to do SCSI bus scanning while you log in as "user" + + If you use the setup described above, you should use: + + dev=REMOTE:netscsid@babbel: + + to do SCSI Bus scanning on host babbel + + - To access a specific SCSI device, you must specify + dev=REMOTE:host: or dev=REMOTE:user@host: + is the SCSI target specification as it is needed + on the remote host + + dev=REMOTE:netscsid@babbel:1,3,0 + + Will let you log in as netscsid on host babbel and open Target 3 lun 0 + on SCSI bus #1 + + - If you use wodim -vv ...., wodim will on startup print some + information about the remote libscg version used for the connection. + +- To be able to use the remote SCSI client code from win32 you need to create + a file /etc/passwd with a correct entry for the user you are on win32. + Call 'id' to get the right user id. + Note that remote SCSI has not yet been tested on Win32. + +NETSCSID speed: + +- On a Ultra-10 running Solaris 8, the command overhead time is 400 usec. + You may achieve up to 9900 kB/s via a 100MB/s ethernet connection + between two of such machines. + +- With 100 MB/s, 12x recording should be no problem. + +- With 10 MB/s, 4x recording is the maximum. Do tests before! + +- Logging into a remote machine and running wodim on the remote machine + causes the buffer cache on that machine to be trashed. The main user + is disturbed. + +- Doing cdrecording via Remote SCSI causes only the netscsid command with less + than 200kB to be needed on the remote machine hosting the CD recorder. + The main user on that machine is not disturbed. + The buffer cache of the machine running wodim is trashed. + +- It is desirable to use a Burn-Proof recorder to make sure that network + load will not cause buffer underruns. + + +- USER= test and test for hostname are using a pattern matcher. diff --git a/doc/READMEs/README.sony b/doc/READMEs/README.sony new file mode 100644 index 0000000..3ee6da6 --- /dev/null +++ b/doc/READMEs/README.sony @@ -0,0 +1,31 @@ +The Sony CDU-924 was the first drive that has no hardware support +for CDROM XA2 mode 1. If you want to create a multi session disk, +you need to switch back to -data (plain CD-ROM) + +If you have a Sony drive that gives you problems with multi session disks, +please always check the following: + + For some Sony drives you may need to call wodim -multi -data + if you like to create multi-session CD's. + + Some Sony drives do not allow to write XA2 tracks with + hardware support of the drive. + +There is currently a bug in the Sony code (for _old_ non MMC drives) +of wodim that does not allow you to have different track types +in one session. + +All Sony drives that have CDUxxx type names are _old_ non MMC drives. + Here I expect that no XA support is in the firmware. + +All Sony drives that have CRXxxx type names are MMC compliant. + These drives should support XA-mode2-form1 as it is mandatory with MMC. + +NOTE: many HP CD-writers are nased on Sony OEM drives. + + +NOTE: As for 18.5.2001, a fix was introduced that prevented wodim + to do multi session with new MMC compliant Sony drives. + +--- +Eduard Bloch, based on documentation from Joerg Schilling, cdrtools package 2.01.01a08 diff --git a/doc/READMEs/README.suidroot b/doc/READMEs/README.suidroot new file mode 100644 index 0000000..b1198d6 --- /dev/null +++ b/doc/READMEs/README.suidroot @@ -0,0 +1,29 @@ + +This is an example of how to install wodim and other cdrkit applications to get +the root permissions in a safer way. + +Usually it is not a good idea to run the applications as root or to +give users the means to run wodim as root. This gives them an easy way +to fetch sensitive data by writing it to the disk, or pass arbitrary +SCSI commands, e.g. formatting a SCSI disk. + +This also applies to root-mode wrappers like sudo, they should be used with +the most possible care. + +The alternative way is installing wodim as suid-root application. In this +mode, wodim checks permission of the device access by comparing the ownership +of the device node user/group attributes for the real UID/GID of the calling +user. + +To give all user access to use wodim, enter: + + chown root /usr/local/bin/wodim + chmod 4711 /usr/local/bin/wodim + +To give a restricted group of users access to wodim, add a group +"cdburners" to your system and add the trusted users to this group. +Then enter: + + chown root:cdburners /usr/local/bin/wodim + chmod 4710 /usr/local/bin/wodim + diff --git a/doc/READMEs/README.verify b/doc/READMEs/README.verify new file mode 100644 index 0000000..28227b7 --- /dev/null +++ b/doc/READMEs/README.verify @@ -0,0 +1,75 @@ +Mini-Howto for verifying a selfmade CD + +1) verifying the data layer + + To verify if all data on the disk can be read, + use SCSI verify. This can be done with the + sformat utility. + + use: sformat -verify [target] [lun] [scsibus] + + If the CD-R device is connected to target 2 on SCSI bus 0 + sformat -verify 2 0 + + sformat can be found on ftp://ftp.berlios.de/pub/sformat + + NOTE: Not all CD-ROm drives support verifying + NOTE: All TAO tracks end in 2 unreadable run-out sectors + +2) verifying the filesystem layer + + A quick check is to mount the CD and to use star to read + all files on the filesystem. + + mount -r /dev/cdrom /cdrom (modify for your OS) + cd /cdrom + star -cPM . >/dev/null + + If no errors can be found, all files are readable. + + star can be found on ftp://ftp.berlios.de/pub/star + + + You also may want to compare the filesystem on the CD + with the original data. This can be done with star too. + + + (cd /master_for_cd; star -cPM .)|(cd /cdrom; star -diff -v) + +2a) verifying the iso image before creating the CD + + You may check the filesystem image by mounting it with my + "fbk" on Solaris or the loopback driver on Linux. + + On Linux type: + mount isoimage.raw -r -t iso9660 -o loop /mnt + + On SunOS type: + mount -r -F fbk -o type=hsfs /dev/fbk0:isoimage.raw /mnt + +For Solaris 8 and later you may also use the Sun lofi driver (see README.sun-lofi) + + The check the filesystem with: + + (cd /master_for_cd; star -cPM .)|(cd /mnt; star -diff -v) + + +Solaris has a bug with hardlinks. It generates different inode numbers +for the hardlinks to a file. This makes it impossible for star to +check hard links. Use + +(cd /master_for_cd; star -cPM .)|(cd /cdrom; star -diff -v diffopts=!hardlink) + +in this case. + +NOTE: Some operating systems have a read ahead bug that causes I/O errors for +the last file(s) on a CD. This seems at least to be true for all Linux versions +and for Solaris 7 FCS. For Solaris 7 there is a patch (107465-02) that you should +install. This I/O error problem does not occur with DAO disks and with TAO disks +that have been written with wodim -pad. + +Joerg Schilling + +Source: README.verify from cdrtools package +Edited for cdrkit by Christian Fromme and Eduard Bloch + diff --git a/doc/WHY b/doc/WHY new file mode 100644 index 0000000..e1a8ba1 --- /dev/null +++ b/doc/WHY @@ -0,0 +1,26 @@ +Why cdrkit? Why wodim? Why genisoimage? Because: + + - it won't tell you that you have no /dev/pg* device file thing foo, that you + have never seen and you will never need + + - it won't require to be executed as root, fail with obscure messages without + such permissions + + - it won't force you to wait 3 seconds every time you want to start, no matter + what you specify as gracetime= + + - it won't kill another burning process when you do -scanbus in another shell + + - it will let you specify your device directly in the way you know it, rather + than forcing some weird TARGET,BUS,LUN syntax with weird numbers + + - it will not wreak random havoc if you used spaces and not tabs in the config file + + - genisoimage won't stop accepting the well known option -L in the near future + + - genisoimage will stop on 2.1GiB large files rather than just "forgetting" + them and let you burn crap + + - users are respected and not used as pinballs between us and the OS kernel + developers + diff --git a/doc/genisoimage/README b/doc/genisoimage/README new file mode 100644 index 0000000..708bae5 --- /dev/null +++ b/doc/genisoimage/README @@ -0,0 +1,26 @@ +Cdrkit carries a fork of the mkisofs program called genisoimage. + +The acompanying documentation consists of the manual page genisoimage.8 and +README files found in the following locations (shell globing used): + +doc/: + +README.multi: documentation and examples for creating + multi-session CDs and DVDs + +README.cdplus: documentation and examples for creating + CD-plus (aka CD-extra) disks + +doc/genisoimage: + +README.releasenotes: release notes for old mkisofs releases + +README.*boot: documentation for various boot loader related + extensions for different architectures + +README.hfs*: hints and usage for HFS related features + +README.*: additional docs for special features + +Eduard Bloch -- Mon, 11 Sep 2006 23:05:29 +0200 + diff --git a/doc/genisoimage/README.alphaboot b/doc/genisoimage/README.alphaboot new file mode 100644 index 0000000..4bd10e1 --- /dev/null +++ b/doc/genisoimage/README.alphaboot @@ -0,0 +1,28 @@ +# README.alphaboot Steve McIntyre 2004/07/19 + +The alpha boot support allows you to create a bootable CD which will +work with DEC/Compaq/HP Alpha machines, for example bootable +installation media. + +The method used for this is the same as in aboot, the bootloader for +Linux on Alpha, and works with SRM firmware. See the SRM Firmware +HOWTO at http://www.alphalinux.org/faq/SRM-HOWTO/ for more details +about SRM. + +In common with many Unix systems, the SRM code reads the first +512-byte "sector" off a disk and parses information in that +sector. The information in question is the location (start "sector") +and length of the first stage boot loader. On a Linux system, this +file will normally be called bootlx. + +SRM will load and execute the first stage boot loader, and from that +point the system should be able to find the normal OS kernel and start +up fully. + +To use the Alpha boot support code in genisoimage, simply specify the +location of the first stage boot loader (relative to the CD root) +using the -alpha-boot command line switch: + +genisoimage ... -alpha-boot boot/bootlx -o alpha.iso files + + diff --git a/doc/genisoimage/README.compression b/doc/genisoimage/README.compression new file mode 100644 index 0000000..4c8d425 --- /dev/null +++ b/doc/genisoimage/README.compression @@ -0,0 +1,17 @@ +Transparent decompression (-z option) is available on Linux kernels +using kernel version 2.4.14 or 2.4.9-ac14 or later. + +You also need the zisofs-tools package, containing the mkzftree +utility, to create the compressed files; this package is available at: + +ftp://ftp.kernel.org/pub/linux/utils/fs/zisofs/ + +The mkzftree utility can also be used to read compressed CD-ROMs on +systems which do not support transparent decompression. + +The use of a separate utility allows compression to be controlled on a +per-file basis. A file which is not compressed can be read on any +system. + +Transparent decompression is implemented as an extension to Rock +Ridge, so Rock Ridge needs to be enabled (-R or -r options.) diff --git a/doc/genisoimage/README.eltorito b/doc/genisoimage/README.eltorito new file mode 100644 index 0000000..5c94cdc --- /dev/null +++ b/doc/genisoimage/README.eltorito @@ -0,0 +1,101 @@ + +What is El Torito? +------------------ +Simply put, El Torito is a specification that says how a cdrom should +be formatted such that you can directly boot from it. + +The "El Torito" spec says that ANY cdrom drive should work (scsi/eide) +as long as the BIOS supports El Torito. So far this has only been +tested with EIDE drives because none of the scsi controllers that has +been tested so far appears to support El Torito. The motherboard +definately has to support El Torito. The ones that do let you choose +booting from HD, Floppy, Network or CDROM. + +How To Make Bootable CDs +------------------------ + +For the x86 platform, many BIOS's have begun to support bootable CDs. +The standard my patches for genisoimage is based on is called "El Torito". + +The "El Torito" standard works by making the CD drive appear, through BIOS +calls, to be a normal floppy drive. This way you simply put an floppy +size image (exactly 1440k for a 1.44 meg floppy) somewhere in the +iso fs. In the headers of the iso fs you place a pointer to this image. +The BIOS will then grab this image from the CD and for all purposes it +acts as if it were booting from the floppy drive. This allows a working +LILO boot disk, for example, to simply be used as is. + +It is simple then to make a bootable CD. First create a file, say "boot.img" +which is an exact image of the boot floppu currently in use. There is +at least one HOWTO on making bootable floppies. If you have a bootable +floppy handy, you can make a boot image with the command + +dd if=/dev/fd0 of=boot.img bs=10k count=144 + +assuming the floppy is in the A: drive. + +Place this image somewhere in the hierarchy which will be the source +for the iso9660 filesystem. It is a good idea to put all boot related +files in their own directory ("boot/" under the root of the iso9660 fs, +for example), but this is not necessary. + +One caveat - Your boot floppy MUST load any initial ramdisk via LILO, +not the kernel ramdisk driver! This is because once the linux kernel +starts up, the BIOS emulation of the CD as a floppy disk is circumvented +and will fail miserably. LILO will load the initial ramdisk using BIOS +disk calls, so the emulation works as designed. + +The "El Torito" specification requires a "boot catalog" to be created as +ll. +This is a 2048 byte file which is of no interest except it is required. +My patches to genisoimage will cause it to automatically create the +boot catalog. You must specify where the boot catalog will go in the +iso9660 filesystem. Usually it is a good idea to put it the same place +as the boot image, and a name like "boot.catalog" seems appropriate. + + +So we have our boot image in the file "boot.image", and we are going to +put it in the directory "boot/" under the root of the iso9660 filesystem. +We will have the boot catalog go in the same directory with the name +"boot.catalog". The command to create the iso9660 fs in the file +bootcd.iso is then + +genisoimage -b boot/boot.img -c boot/boot.catalog -o bootcd.iso . + +The -b option specifies the boot image to be used (note the path is +relative to the root of the iso9660 disc), and the -c option is +for the boot catalog file. + +Now burn the CD and its ready to boot! + +CAVEATS +------- + +I don't think this will work with multisession CDs. + +If your bootable floppy image needs to access the boot floppy, it has +to do so through BIOS calls. This is because if your O/S tries to talk to +the floppy directly it will bypass the "floppy emulation" the El Torito spec +creates through BIOS. For example, under Linux it is possible to +have an initial RAM disk loaded when the kernel starts up. If you let the +kernel try to read in the initial RAM disk from floppy, it will fail +miserably because Linux is not using BIOS calls to access the floppy drive. +Instead of seeing the floppy image on the CD, Linux will be looking at +the actually floppy drive. + +The solution is to have the initial boot loader, called LILO, load your +initial RAM disk for you. LILO uses BIOS calls entirely for these +operations, so it can grab it from the emulated floppy image. + +I don't think making a CD bootable renders it unreadable by non-El Torito +machines. The El Torito spec uses parts of the iso9660 filesystem which +were reserved for future use, so no existing code should care what it does. + +Genisoimage currently stores identification records in the iso9660 filesystem +saying that the system is a x86 system. The El Torito spec also allows +one to write PowerPC or Mac id's instead. If you look at the code in write.c +you could figure out how to change what is written. + +/* @(#)README.eltorito 1.2 00/03/18 eric */ +/* Edited for name change by Eduard Bloch, mkisofs -> genisoimage */ + diff --git a/doc/genisoimage/README.graft_dirs b/doc/genisoimage/README.graft_dirs new file mode 100644 index 0000000..da05e29 --- /dev/null +++ b/doc/genisoimage/README.graft_dirs @@ -0,0 +1,151 @@ +This is from "Eduardo M. A. M. Mendes" + +Creating multi-session CD's with dir=/ feature Micro Howto + +This mini-howto was written as guide to help me to create multi-session CD's +with the possibility of determining the location of files. I hope +that this guide helps you too. + +In order to use wodim it is first necessary to define to which scsi bus +the cd-writer is connected. In my case the setup is dev=0,3,0. It is also +interesting to have a separate directory in which all image files can +be dumped: /home/cdsource is the directory I chose for dumping the images. + +The best way to understand how to create multi-session cds is to read +README.multi. Most of what is going to be said here is based on that +README file and on the help of several wodim users. + +This Micro Howto is divided into two parts as follows: + +Example a) A dir/=/dir1/dir2 example + +Example b) A dir1/dir2/=/dir3/dir4 and dir1/dir2a=/dir5/dir6 example + + +We are now ready to start. + +Example a) An dir/=/dir1/dir2 example + +A simple example will demonstrate that we can create multi-session cds +with the dir_feature of the type dir/=/dir1/dir2 + +Objetive: Saving root directories of Redhat 6.1 and Col 2.3 on a single CD. + +Observation: Redhat installation is mounted on COL 2.3 at /mnt/redhat + +First image - RedHat 6.1 - /mnt/redhat/root + +genisoimage -D -l -r -f -m core -L -o image1.raw redhat/=/mnt/redhat/root + +This will create a redhat directory on the cd. The option -D should be +used with care. The other options used in the above command are just +to demonstrate the use of genisoimage. Please +refer to man genisoimage if you want to know more. + + +To see if the image is created as expected, we need to mount image1.raw using +the option -o loop (Linux only! for information on Solaris read README.verify) +as follows: + +mount -t iso9660 image1.raw /mnt/image -o loop + +To see the contents type: + +ls -l /mnt/image/redhat + +Does it look ok? Great! Unmount /mnt/image. Now the burning process itself: + +wodim -v -dev=0,3,0 -multi -eject image1.raw + +To check the burned image we need to mount the cd; something like + +mount -t iso9660 /dev/scd0 /mnt/cdroms + +/mnt/cdroms is the device file for the cdrom I use. + + +Second image - Caldera 2.3 - /root + + +To create the second image on our cd, we need get information +about sectors related to the first track. To do that, issue the command + +wodim -v -dev=0,3,0 -msinfo + +wodim returns the following number + +0,135563 + +This number is the format XX,YY discussed on README.multi. XX would be used +for testing the images as well as burning the new track. + +genisoimage -D -l -r -f -m core -L -C 0,135563 -M /dev/scd0 -o image2.raw caldera/=/root + +Now we need to check of image2.raw is ok. The following command creates exactly what we +need. Plese note that -C option. Only the first number changes in this case. The second one +is always zero. In our case the first number is zero due to wodim -msinfo. When +more tracks are added to the cd this number will change. + +genisoimage -D -l -r -f -m core -L -C 0,0 -M /dev/scd0 -o image2_test.raw caldera/=/root + +mount -t iso9660 image2_test.raw /mnt/image -o loop + +ls -l /mnt/image shows that there are two directories: redhat and caldera, just the way +we wanted. + +Now let us burn image2.raw (not image2_test.raw) + +wodim -v -dev=0,3,0 -multi -eject image2.raw + +We can mount the CD again to see that the two directories are there. We can carry on +doing this until we decide to close the CD. If this is the case, don't use -multi when +burning the last session. + +b) A dir1/dir2/=/dir3/dir4 and dir1/dir2a=/dir5/dir6 example + +The above example seems a bit silly, one could argue. Why did I create a single directory +called root and within two sub-directories: redhat and caldera? + +Using the procedure described above we would do as follows: + +genisoimage -D -l -r -f -m core -L -o image1.raw etc/redhat/=/mnt/redhat/etc + +wodim -v -dev=0,3,0 -multi -eject image1.raw + +To check the burned image we need to mount the cd; something like + +mount -t iso9660 /dev/scd0 /mnt/cdroms + +wodim -v -dev0,3,0 -msinfo + +wodim returns the following number + +0,14391 + +The second image can be created using + +genisoimage -l -r -f -m core -L -C 0,14391 -M /dev/scd0 -o image2.raw etc/caldera/=/etc + +Creating a test image2 + +genisoimage -l -r -f -m core -L -C 0,0 -M /dev/scd0 -o image2_test.raw etc/caldera/=/etc + +mount -t iso9660 image2_test.raw /mnt/image1 -o loop + +It works!! That is great!!! + +Now the burning process itself. + +wodim -v -dev=0,3,0 -multi -eject image2.raw + +and we're done !!!! + +To add more tracks just do as indicated above. + +Good luxk!!! + +Eduardo Mendes - 11/23/99 + +Source: README.graft_dirs from cdrtools package +Edited for cdrkit by Christian Fromme and Eduard Bloch + diff --git a/doc/genisoimage/README.hfs_boot b/doc/genisoimage/README.hfs_boot new file mode 100644 index 0000000..378bb95 --- /dev/null +++ b/doc/genisoimage/README.hfs_boot @@ -0,0 +1,76 @@ +Making HFS bootable CDs + +******* +The HFS boot code in genisoimage/mkhybrid is now very out of date ... +it does not support booting from IDE CDROMS, and probably won't work on +"newer" Macs. + +The HFS boot code will be updated at some point in the future +******* + +It *may* be possible to make the hybrid CD bootable on a Mac. As I do not +have easy access to a CD-R (nor a Mac) at the moment, I have not actually +created and written a bootable hybrid to CD - however, I *think* it will work! + +A bootable HFS CD requires an Apple CD-ROM (or compatible) driver, a bootable +HFS partition and the necessary System, Finder, etc. files. + +A driver can be obtained from any other Mac bootable CD-ROM using the +"apple_driver" utility (to make, type "make apple_driver"). This file can +then be used with the -boot-hfs-file option. See below for usage. + +The HFS partition (i.e. the hybrid disk in our case) must contain a +suitable System Folder, again from another CD-ROM or disk. + +For a partition to be bootable, it must have it's "boot block" set. The boot +block is in the first two blocks of a partition. For a non-bootable partition +the boot block is full of zeros. Normally, when a System file is copied to +partition on a Mac disk, the boot block is filled with a number of required +settings - unfortunately I don't know the full spec for the boot block ... + +I'm guessing that this will work OK ... + +Therefore, the utility "apple_driver" also extracts the boot block from the +first HFS partition it finds on the given CD-ROM and this is used for the +HFS partition created by mkhybrid. + +To extract the driver and boot block: + +apple_driver CDROM_device > HFS_driver_file + +where CDROM_device is the device name used by the CD-ROM (e.g. /dev/cdrom) + +The format of the HFS driver file is: + + HFS CD Label Block 512 bytes + Driver Partition Map (for 2048 byte blocks) 512 bytes + Driver Partition Map (for 512 byte blocks) 512 bytes + Empty 512 bytes + Driver Partition N x 2048 bytes + HFS Partition Boot Block 1024 bytes + +The Perl script "hdisk.pl" can be used to give a listing of what's on +a Mac CD. hdisk.pl is part of hfsutils. + +A hybrid CD is made using the option "-boot-hfs-file" e.g. + +mkhybrid -boot-hfs-file HFS_driver_file -o hfs.raw src_files/ + +The -boot-hfs-file implies the -hfs option. + +PLEASE NOTE: + +By using a driver from an Apple CD and copying Apple software to your CD, +you become liable to obey Apple Computer, Inc. Software License Agreements. + +The driver code (both extracting the driver and creating partitions etc. +is based on code from "mkisofs 1.05 PLUS" by Andy Polyakov + (see http://fy.chalmers.se/~appro/mkisofs_plus.html) + + +Any comments, bug reports/fixes to the address below + +James Pearson (j.pearson@ge.ucl.ac.uk) +19-Jul-2000 + +Edited for program name change by Eduard Bloch, 2006 diff --git a/doc/genisoimage/README.hfs_magic b/doc/genisoimage/README.hfs_magic new file mode 100644 index 0000000..814d59e --- /dev/null +++ b/doc/genisoimage/README.hfs_magic @@ -0,0 +1,69 @@ + +Find file types by using a modified "magic" file + +Based on file v3.22 by Ian F. Darwin (see libfile/LEGAL.NOTICE and +libfile/README.dist - File v3.22 can be found at many archive sites) + +For each entry in the magic file, the "message" for the initial offset MUST +be 4 characters for the CREATOR and 4 characters for the TYPE - white space is +optional between them. Any other characters on this line are ignored. +Continuation lines (starting with a '>') are also ignored i.e. only the initial +offset lines are used. + +e.g magic entry for a GIF file: + +# off type test message +# +# GIF image +0 string GIF8 8BIM GIFf +>4 string 7a \b, version 8%s, +>4 string 9a \b, version 8%s, +>6 leshort >0 %hd x +>8 leshort >0 %hd, +#>10 byte &0x80 color mapped, +#>10 byte&0x07 =0x00 2 colors +#>10 byte&0x07 =0x01 4 colors +#>10 byte&0x07 =0x02 8 colors +#>10 byte&0x07 =0x03 16 colors +#>10 byte&0x07 =0x04 32 colors +#>10 byte&0x07 =0x05 64 colors +#>10 byte&0x07 =0x06 128 colors +#>10 byte&0x07 =0x07 256 colors + +Just the "8BIM" "GIFf" will be used whatever the type of GIF file it is. +The continuation lines are used by the "file" command, but ignored by +mkhybrid. They could be left out completely. + +The complete format of the magic file is given in the magic man page (magic.5). + +See the file "magic" for other examples + +Use with the -magic magic_file option, where magic_file is a file +described above. + +The magic file can be used with the mapping file (option -map) - the order +these options appear on the command line is important. mkhybrid will try to +detect if the file is one of the Unix/Mac files (e.g. a CAP or Netatalk +file) first. If that fails, it will then use the magic and/or mapping +file e.g: + +mkhybrid -o output.raw -map mapping -magic magic src_dir + +The above will check filename extensions first, if that fails to set the +CREATOR/TYPE, the magic file will be used. To check the magic file +before the filename extensions, use: + +mkhybrid -o output.raw -magic magic -map mapping src_dir + + +Using just a magic file - filename extensions will not be checked e.g: + +mkhybrid -o output.raw -magic magic src_dir + +For the magic method to work, each file must be opened and read twice +(once to find it's CREATOR/TYPE, and a second time to actually copy the +file to the CD image). Therefore the -magic option may significantly +increase processing time. + +If a file's CREATOR/TYPE is not set via the magic and mapping matches, +then the file is given the default CREATOR/TYPE. diff --git a/doc/genisoimage/README.hide b/doc/genisoimage/README.hide new file mode 100644 index 0000000..ae8521b --- /dev/null +++ b/doc/genisoimage/README.hide @@ -0,0 +1,208 @@ +Hiding files on a CD +===================== + +This document attempts to show how to hide files from being seen by an +operating system accessing a CD as an ISO9660/Rock Ridge, Joliet or HFS +CD. It also highlights some of the limitations ... + +Note: this document is about the various -hide options - not be confused with +the -hidden options. + +The -hidden options set the 'EXISTENCE' bit in the directory entry which +means the file or directory will be invisible - unless some special option +is used to mount or view the CD - Linux has the 'unhide' mount option to +make these files visible. i.e. the directory entry exists on the CD. + +With hindsight, to avoid confusion with the -hidden option, it would have +been better to chose an option name like '-omit' instead of '-hide'... + +The various -hide options actually exclude the relevant directory entry +from the directory tree. Therefore, it is not possible to access a file +or directory that has be hidden with the -hide option when the ISO9600/Rock +Ridge directory is mounted - because the directory entry does not exist on the +CD (but the file data does). You would probably be able to access this file +or directory when mounted as a Joliet or HFS CD (depending on other options +used). Similarly, a directory entry hidden with the -hide-joliet option +will not be accessible when mounted as an Joliet CD. Similarly for -hide-hfs +etc. + +If you don't want a file or directory to appear on the CD at all, then use the +-exclude options, not the -hide options (genisoimage completely ignores any +file/directory excluded with the -exclude options). + + +Using the hide options +====================== + +There are 6 hide options: + +-hide Hide a file/directory from the ISO9660/Rock Ridge directory +-hide-list As above, but read file names from a file +-hide-joliet Hide a file/directory from the Joliet directory +-hide-joliet-list As above, but read file names from a file +-hide-hfs Hide a file/directory from the HFS directory +-hide-hfs-list As above, but read file names from a file + +You can use the -hide, -hide-joliet and/or -hide-hfs options as many times +as you like on the command line, but if you have many files to hide, then +it may be better to put your file names in a file (one per line) and use +the corresponding 'list' option. You can also use the three -hide-list options +as many times as you want. + +The arguments to the -hide options are either the 'basename' or the 'whole +path name' of a file. That is, if you use the option: + +% genisoimage -hide ABC [-other-options] CD_directory + +then any file with the name ABC will be hidden. If you want to be more +specific, then use the whole name - as seen by genisoimage e.g.: + +% genisoimage -hide CD_directory/XYZ/ABC [-other-options] CD_directory + +will hide just the file 'CD_directory/XYZ/ABC' - not any other file called +'ABC' that might exist under 'CD_directory'. However, if your command line +is like: + +% genisoimage -hide CD_directory/XYZ/ABC [-other-options] ./CD_directory + +Then the file 'CD_directory/XYZ/ABC' will not be hidden because as far as +genisoimage is concerned. Its whole path is actually './CD_directory/XYZ/ABC'. + +You can use wild cards in the -hide arguments. + +If the file name to be hidden is a directory, then the directory and all +its contents are hidden. + +The main use of the hide options is on a multi platform (hybrid CD) to hide +various files/directories that are operating system specific from been seen +on the CD when mounted on another OS. i.e. You may want to hide Macintosh +executables from being seen when the CD is mounted as a Joliet CD on a PC etc. + +For example, say we want to create a ISO9660/Rock Ridge, Joliet, HFS hybrid +CD from files/directories in the directory called 'cd_dir' - which are: + +MAC/ +MAC/app +MAC/data/ +MAC/data/file1 +PC/ +PC/app +PC/data/ +PC/data/file1 +UNIX/ +UNIX/app +UNIX/data +UNIX/data/file1 +COMMON/ +COMMON/some_files + +We could use the command line: + +% genisoimage -r -J -hfs -hide MAC -hide PC -hide-joliet MAC \ + -hide-joliet UNIX -hide-hfs PC -hide-hfs UNIX -o cd.iso cd_dir + +This will give a CD that when mounted as a Rock Ridge CD, you will only +see the directories UNIX and COMMON, as a Joliet CD the directories +PC and COMMON, and as an HFS CD the directories MAC and COMMON. + +If you also had the three files in the current directory called README.hfs, +README.joliet and README.unix - but you wanted to have each of these +files appear as just 'README' when mounted, then you could use the above +command line with the following: + +% genisoimage -r -J -hfs -graft-points -hide MAC -hide PC -hide-joliet MAC \ + -hide-joliet UNIX -hide-hfs PC -hide-hfs UNIX \ + -hide README.hfs -hide README.joliet -hide-joliet README.hfs \ + -hide-joliet README.uni -hide-hfs README.joliet -hide-hfs README.unix \ + README=README.hfs README=README.joliet README=README.unix \ + -o cd.iso cd_dir + +Note: we've used the -graft-points option as we're using the '=' syntax +to insert the files called README.hfs, README.joliet and README.unix as +'README' + +The resulting CD when mounted as a Rock Ridge CD, will have the directories +UNIX and COMMON - with the file called README - which was originally +called README.unix. + +However, in most circumstances, it would be better to have the contents +of each of the OS specific directories (plus the contents of the COMMON +directory) to appear at the top level of the CD. i.e. when the CD is mounted +(as ISO9660/Rock Ridge, Joliet or HFS) it has the contents: + +README +app +data/file1 +some_files + +Unfortunately, this is not as straight forward as it may seem - i.e. doing +the following may seem OK, but it won't work - for reasons I'll explain +later: + +It gets a bit messy using the -graft-points syntax above, so we'll assume +each of the MAC, UNIX and PC directories contain the correct README, We'll +also change to the 'cd_dir' directory and use the command: + +genisoimage -r -J -hfs -hide MAC -hide PC -hide-joliet MAC \ + -hide-joliet UNIX -hide-hfs PC -hide-hfs UNIX \ + -o cd.iso MAC PC UNIX COMMON + +You will get errors like: + +genisoimage: Error: UNIX/README and MAC/README have the same Rock Ridge name +... +genisoimage: Unable to sort directory + +This is because you can not hide "pathspecs" that are directories ("pathspecs" +are file names given on the command line, or in a path-list file). This a +"feature" of genisoimage. In this case nothing is actually hidden at all. + +So you might think that the following may work: + +genisoimage -r -J -hfs -hide "MAC/*" -hide "PC/*" -hide-joliet "MAC/*" \ + -hide-joliet "UNIX/*" -hide-hfs "PC/*" -hide-hfs "UNIX/*" \ + -o cd.iso MAC PC UNIX COMMON + +which may appear to work - but when the CD is mounted as an ISO9660/Rock Ridge +or Joliet CD, then the directory "data" is missing. + +Again this is a feature of genisoimage - the directories PC/data and UNIX/data +are mapped by genisoimage to the same output directory called "/data" - the +various "hide" flags are stored with this directory info - in this case as +the output directory "/data" is first hidden from the ISO9660/Rock Ridge and +then the Joliet directory, the net result is that "/data" gets hidden from +both directories ... the way genisoimage hides HFS directories is slightly +different, so in this case the directory "data" exists on the HFS volume +and contains the correct contents. + +However, it is possible to obtain the required result, but we have to be +careful about hiding multiple input directories that map to a single output +directory. + +To do this we have to hide just the files in these directories (or more +accurately, all the non-directories). This is best done by using lists of +files to hide for example: + +find PC -type f -print > pc.list +find UNIX -type f -print > unix.list +find MAC -type f -print > mac.list + +genisoimage -r -J -hfs -hide-list pc.list -hide-list mac.list \ + -hide-joliet-list unix.list -hide-joliet-list mac.list \ + -hide-hfs-list pc.list -hide-hfs-list unix.list \ + -o cd.iso MAC PC UNIX COMMON + +i.e. instead of trying to hide a directory and letting genisoimage hide its +contents, we explicitly hide all the files in the directory, but not the +directory and any of its sub-directories. + +This will work for the above input files, but if your directory trees contain +symbolic links and/or directories that will not get merged, then the hide lists +will have to be tailored to get the required result. + + +James Pearson 22-Nov-2001 + +Any comments/problems to j.pearson@ge.ucl.ac.uk + +Modified for cdrkit/genisoimage by Eduard Bloch, Wed, 27 Dec 2006 diff --git a/doc/genisoimage/README.hppaboot b/doc/genisoimage/README.hppaboot new file mode 100644 index 0000000..a7a7549 --- /dev/null +++ b/doc/genisoimage/README.hppaboot @@ -0,0 +1,38 @@ +# README.hppaboot Steve McIntyre 2004/07/19 + +The hppa boot support allows you to create a bootable CD which will +work with HP PA/RISC machines, for example bootable installation +media. + +The method used for this is the same as in palo, the bootloader for +Linux on hppa. See the palo README for more details about supported +hardware etc. + +The HPPA firmware reads the first 2048-byte sector off a disk and +parses information in that sector. The information in question is the +location (start sector) and length of various files: + + * a 32-bit kernel image + * a 64-bit kernel image + * first stage bootloader (iplboot) + * (optional) ramdisk + +and also the system command line to use, e.g. + + "5/vmlinux HOME=/ TERM=linux console=tty" + +The firmware will load and execute the first stage boot loader, and +that should be able to find the (32- or 64-bit) kernel and boot +normally. Whether you need a 32- or 64-bit kernel depends on your +hardware; some will even support both. + +To use the hppa boot support code in genisoimage, simply specify the boot +command line and file locations (relative to the CD root) as follows: + +genisoimage ... -hppa-cmdline \ + -hppa-kernel-32 <32-bit kernel> \ + -hppa-kernel-64 <64-bit kernel> \ + -hppa-bootloader \ + -hppa-ramdisk \ + -o hppa.iso hppa-files + diff --git a/doc/genisoimage/README.joliet b/doc/genisoimage/README.joliet new file mode 100644 index 0000000..ab9bf5d --- /dev/null +++ b/doc/genisoimage/README.joliet @@ -0,0 +1,53 @@ +Some thoughts on Joliet - why it is a dumb idea to have a CD +with Joliet enhancements but without Rock Ridge. +It also helps you to understand why it it not possible to append +a new session to a multi-session Joliet CD when Rock Ridge is +missing. + +- Joliet is not an accepted independant international standard + like ISO-9660 or Rock Ridge (IEEE-P1282). + Joliet has been created in 1995 - Rock Ridge in 1990. + Rock Ridge became a IEEE standard around 1992. + +Joliet is an unjustified addition to ISO-9660. + +- The Joliet tree has no relation to the + ISO-9660 tree. Files from the ISO-9660 tree and from the + Joliet tree only share content. In general, it is not + possible to find the ISO-9660 name from a Joliet name + and vice versa if you check both trees on a CD. + + Rock Ridge extensions are located at the end of each + ISO-9660 directory record. This makes the Rock Ridge + tree closely coupled to the ISO-9660 tree. + +- Joliet does not allow all characters too, so the + Joliet filenames are not identical to the filenames + on disk. + + As the ISO-9660 tree is the standard reference tree + on a CD and the ISO-9660 filenames don't allow all + characters and there is a length limitation, the + ISO-9660 names cannot be mapped to the filenames on the + OS reference tree on disk for doing multi-session. + + Due to different limitations, the short ISO-9660 name + is in most cases not equal to the Joliet name or the + Rock Ridge name. + +- Joliet has a filename length limitation of 64 chars (independent + from the character coding and type e.g. European vs. Japanese) + This is annoying as modern filesystems all allow 255 chars + per path name component. + + Joliet uses UTF-16 coding while Rock Ridge uses ISO-8859 or + UTF-16 based chars and allows 255 octets. Using UTF-8, + Rock Ridge allows 85 Japanese characers or 255 US-ASCII chars. + +Other than slightly longer filenames, Joliet offers no new properties +over plain ISO 9660. Rock Ridge is an open extendable standard and +there is no filesystem property on Win32 that could not be implemented +using Rock Ridge. + +Except Linux and FreeBSD, there is no POSIX-like like OS that supports +Joliet. Never create Joliet only CD's for that reason. diff --git a/doc/genisoimage/README.macosx b/doc/genisoimage/README.macosx new file mode 100644 index 0000000..e082bfc --- /dev/null +++ b/doc/genisoimage/README.macosx @@ -0,0 +1,43 @@ +Notes on using the --osx-hfs option when running genisoimage on MacOS X + +genisoimage does not use any of the MacOS APIs to access files - it uses +standard (POSIX style) library calls. Under normal circumstances, all +genisoimage will 'see' is the data fork of files on an HFS (or HFS+) file system. + +However, Apple have provided a way for POSIX style applications to +access the resource fork - using the following syntax: + +If a file exists on an HFS volume with the name 'foo', then the resource fork +can be accessed using the file name 'foo/rsrc' or foo/..namedfork/rsrc' +(the data fork can also be accessed using 'foo/..namedfork/data'). + +These 'pseudo' file names are not normally visible in a directory - unless +you access them directly (e.g. 'ls -l */rsrc etc). + +To access the finder information, Apple have provided an undocumented library +function called getattrlist(). Fortunately there are example of its usage +in the Darwin (MacOS kernel) source code. + + +Although MacOS X can use HFS(+) as its file system, Apple have decided to +move away from using HFS to store finder info and resource data - for +example, the TYPE of a file may be based on its file name extension and the +TYPE field in the finder info empty. + +genisoimage knows nothing about these file name extension mappings, so if the +--osx-hfs option is used and the source files are on MacOS X HFS(+) volumes, +by the fact that they are HFS files, they will get identified as 'MacOS X HFS' +and the resulting file on the output CD image will have empty TYPE and CREATOR +fields. + +Therefore, if the input finderinfo is blank and the the resource fork is +empty, genisoimage will assume the input file is not a 'real' HFS file - which +means the TYPE and CREATOR may then be set using the file's magic number or +genisoimage' file name extension mapping. + +The only real benefit of using the --osx-hfs option is when the source files +are on an OS9 or earlier HFS or HFS+ volume e.g. an existing HFS CD. + +James Pearson 3-Jul-2002 +Edited for program name change by Eduard Bloch, 2006 + diff --git a/doc/genisoimage/README.mipsboot b/doc/genisoimage/README.mipsboot new file mode 100644 index 0000000..1e5227a --- /dev/null +++ b/doc/genisoimage/README.mipsboot @@ -0,0 +1,26 @@ +# README.mipsboot Steve McIntyre 2004/07/19 + +The mips/SGI boot support allows you to create a bootable CD which +will work with big-endian mips SGI machines, for example bootable +installation media. + +The method used for this is the same as in genisovh, a tool to make +CDs bootable for Linux on SGI. + +The SGI firmware reads the first 512-byte "sector" off a disk and +parses information from a volume descriptor header in that sector. The +information in question is the location (start sector) and length of +bootable kernel images; up to 15 are supported. + +The firmware will load and execute kernels listed. (I'm not sure what +it will do if more than one kernel is listed - it may display a boot +menu). + +To use the SGI boot support code in genisoimage, simply specify the kernel +file locations (relative to the CD root) as follows: + +genisoimage ... -mips-boot \ + ... + -mips-boot \ + -o mips.iso mips-files + diff --git a/doc/genisoimage/README.mipselboot b/doc/genisoimage/README.mipselboot new file mode 100644 index 0000000..af3979b --- /dev/null +++ b/doc/genisoimage/README.mipselboot @@ -0,0 +1,29 @@ +# README.mipselboot Steve McIntyre 2004/07/19 + +The mips/DEC boot support allows you to create a bootable CD which +will work with little-endian mips DEC machines (e.g. older +DECstations), for example bootable installation media. + +The method used for this is the same as in delo, the Linux-on-mipsel +bootloader. See the delo README for more information about how to +configure the DECstation's firmware to find and boot the CDROM. + +The DEC firmware reads the first 512-byte "sector" off a disk and +parses information from that sector. The information in question is +the location (start sector) and length of the first stage boot +loader. + +(On Linux, this boot loader is in ELF format and the firmware does not +know how to deal with ELF directly, we have to parse the ELF headers +and find the raw binary data needed inside it. Pointers to the start +and length of that raw binary are what is stored in the boot sector.) + +The firmware will load and execute the first stage boot loader, and +from that point the system should be able to find the normal OS kernel +and start up fully. + +To use the DEC boot support code in genisoimage, simply specify the kernel +file location (relative to the CD root) as follows: + +genisoimage ... -mipsel-boot -o mipsel.iso mipsel-files + diff --git a/doc/genisoimage/README.mkhybrid b/doc/genisoimage/README.mkhybrid new file mode 100644 index 0000000..49036a1 --- /dev/null +++ b/doc/genisoimage/README.mkhybrid @@ -0,0 +1,145 @@ + +mkhybrid v1.13 has merged with mkisofs which was forked to genisoimage later + +HFS hybrid code Copyright (C) James Pearson 1997, 1998, 1999, 2000 +libhfs code Copyright (C) 1996, 1997 Robert Leslie +libfile code Copyright (c) Ian F. Darwin 1986, 1987, 1989, + 1990, 1991, 1992, 1994, 1995 +mkisofs code Copyright 1993 Yggdrasil Computing, Incorporated + +*** NEWS *** + +Macs can now read Joliet CDs - see http://www.tempel.org/joliet/ + +*** + +*** IMPORTANT *** + +The meaning of some of the HFS command line options has changed since +version 1.12b5.2. This change is to make the way genisoimage decodes the +various Apple/Unix file formats (CAP, AppleDouble, MacBinary etc.) less +confusing and more logical. To decode one or more of the Apple/Unix files, +then the corresponding "double dash" option must be given (i.e. --cap, +--double, --macbin etc.) genisoimage can search for all known Apple/Unix files +by using the -probe option. + +The options that have changed are: + +Option old meaning new meaning +====== =========== =========== + +-hfs Create an HFS hybrid CD Create an HFS hybrid CD. + and attempt to decode all Any Apple/Unix file is only + Apple/Unix files (except decoded if one or more of + MacBinary and AppleSingle) the "double dash" options are + given + +-apple Create an ISO9660 with Create an ISO9660 with + Apple extensions CD and Apple extensions CD. Any + attempt to decode all Apple/Unix file is only decoded + Apple/Unix files (except if one or more of the + MacBinary and AppleSingle) "double dash" options are given + +-no-mac-files Do not attempt to decode No longer used + any Apple/Unix file + +-probe Attempt to decode Attempt to decode all + MacBinary and AppleSingle Apple/Unix files + as well as the other + Apple/Unix files + +*** + +Most of the HFS features work fine, however, some are not fully tested. +These are marked as "Alpha" in the man page. + +See "ChangeLog.mkhybrid" for any minor changes/bug fixes + +If you are using SunOS 4.1.[34], then you need the following patches +to read CDs with associated files: + +SunOS 4.1.3: Patch 101832-05 +SunOS 4.1.3_U1: Patch 101833-02 +SunOS 4.1.4: Patch 102583-02 + + +EXAMPLES + +To create a HFS hybrid CD with the Joliet and Rock Ridge extensions of +the source directory cd_dir: + +% genisoimage -o cd.iso -r -J -hfs cd_dir + +To create a HFS hybrid CD from the source directory cd_dir that contains +Netatalk Apple/Unix files: + +% genisoimage -o cd.iso --netatalk cd_dir + +To create a HFS hybrid CD from the source directory cd_dir, giving all files +CREATOR and TYPES based on just their filename extensions listed in the file +"mapping".: + +% genisoimage -o cd.iso -map mapping cd_dir + +To create a CD with the 'Apple Extensions to ISO9660', from the source +direcories cd_dir and another_dir. Files in all the known Apple/Unix format +are decoded and any other files are given CREATOR and TYPE based on their +magic number given in the file "magic": + +% genisoimage -o cd.iso -apple -magic magic -probe cd_dir another_dir + +The following example puts different files on the CD that all have +the name README, but have different contents when seen as a +ISO9660/RockRidge, Joliet or HFS CD. + +Current directory contains: + +% ls -F +README.hfs README.joliet README.unix cd_dir/ + +The following command puts the contents of the directory "cd_dir" on the +CD along with the three README files - but only one will be seen from +each of the three filesystems: + +% genisoimage -o cd.iso -hfs -J -r \ + -hide README.hfs -hide README.joliet \ + -hide-joliet README.hfs -hide-joliet README.unix \ + -hide-hfs README.joliet -hide-hfs README.unix \ + README=README.hfs README=README.joliet README=README.unix \ + cd_dir + +i.e. the file README.hfs will be seen as README on the HFS CD and the +other two README files will be hidden. Similarly for the Joliet and +ISO9660/RockRidge CD. + +There are probably all sorts of stange results possible with +combinations of the hide options ... + + +Any comments, bug reports/fixes about the HFS parts of genisoimage to the +address below. + +Please state the version, platform and command line used when submitting +a bug report - the output from "-log-file -v" would help. + +Original author: James Pearson (j.pearson@ge.ucl.ac.uk) + +This describes the program as shipped with cdrkit, a spinoff from the +cdrtools project. However, the cdrtools developers are no longer +involved in the development of this spinoff and therefore shall not +be made responsible for any problem caused by it. Do not try to get +support for this program by contacting the original authors. + +If you have support questions, send them to + +debburn-devel@lists.alioth.debian.org + +If you have definitely found a bug, send a mail to this list or to + +submit@bugs.debian.org + +writing at least a short description into the Subject and "Package: cdrkit" + +Source: README.mkhybrid from cdrtools package +Edited for cdrkit by Christian Fromme and Eduard Bloch + diff --git a/doc/genisoimage/README.prep_boot b/doc/genisoimage/README.prep_boot new file mode 100644 index 0000000..f406735 --- /dev/null +++ b/doc/genisoimage/README.prep_boot @@ -0,0 +1,45 @@ +I have extended mkhybrid to create a CD that is bootable via PPCbug +on a PowerPC Reference Platform compliant machine (referred to as +PReP). + +This includes a number of IBM RS-6000 clones, along with most of +Motorola's embedded PowerPC boards, such as the MTX and MVME +boards. (The motorola boards are sometimes referred to as PowerPlus) + +To build a bootable CD, you will first need a kernel image for your +machine. Put the image somewhere in the filesystem you want +to generate and ISO9660 image from. + +The '-B' or '-prep-boot' flags are used to specify the image file +to use. The path must be relative to the root of the CD filesytem, +NOT from the current directory. + +For example: to make an image of /tmp/cd and use the image file +/tmp/cd/zImage, (with rock ridge extensions) use: + +mkhybrid -r -B zImage /tmp/cd -o cd.img + +Since there are four entries for bootable 'partitions', I have +allowed up to 4 different images to be used. This might be +usefull if one has need of different kernel images for different +machines on the same CD. + +The first image will be in the first partition entry, so if one +uses: + +mkhybrid -r -B zImage1 -B zImage2 -B zImage3 -B zImage4 /tmp/cd + +This will result in 4 bootable images. To boot off the first image +from PPCbug, use 'pboot 0 41' from the ppcbug> prompt. +(assuming the CDROM is at SCSI ID 4.. replace the 4 with the SCSI +ID of the CDROM if not.) The second image is at 'pboot 0 42', etc. + +There should not be any conflicts with any of the HFS or hybrid +functions, since the space used by the PReP partition maps is +unused by anything else. If fact, the goal is to make a CD +bootable on both Mac's and PReP machines ;) + +For any questions contact me at one of the following addresses: +troy@microux.com +troy@blacklablinux.com +hozer@drgw.net diff --git a/doc/genisoimage/README.releasenotes b/doc/genisoimage/README.releasenotes new file mode 100644 index 0000000..d4f3898 --- /dev/null +++ b/doc/genisoimage/README.releasenotes @@ -0,0 +1,154 @@ +# @(#)README 1.7 99/11/23 joerg +# 06/09/11 christian + +This describes the program as shipped with cdrkit, a spinoff from the +cdrtools project. However, the cdrtools developers are no longer +involved in the development of this spinoff and therefore shall not +be made responsible for any problem caused by it. Do not try to get +support for this program by contacting the original authors. + +Note: + + This program requires a lot of virtual memory to run since it +builds all of the directories in memory. The exact requirements +depend upon a lot of things, but for Rock Ridge discs 12Mb would not +be unreasonable. Without RockRidge and without the translation +tables, the requirements would be considerably less. + + +***************************** +Notes for version 1.12 + + Joliet support is now complete. See the -J option. + + The file scanning code is much improved - mkisofs can use multiple + sources of input files and merge them together to form the output + image. In addition, each source can be grafted at any point in the + iso9660 image. + + The image writing code has been cleaned up to make it much easier + to add custom extensions. + + The ADD_FILES feature has been removed as it didn't work well, +and it was hard to figure out. The recent rearrangements in the +file scanning code would tend to solve these issues. + +***************************** +Notes for version 1.11 + + There is a feature which can be optionally compiled into +mkisofs that allows you to merge arbitrary directory trees into the +image you are creating. You need to compile with -DADD_FILES for my +changes to take effect. Thanks to Ross Biro biro@yggdrasil.com. + +***************************** +Notes for version 1.10b1 + + Big news is that multi-session capability is very close to being + done. There is still a missing interface to cdwrite that is + used to determine the next writable address and the sector number + of the last existing session. Until we get the interface to cdwrite + done, this is a beta version. + + Bug involving DST fixed (dates are always calculated, since some + files may be DST and other ones would not be). + + Unfortunately the notes on some of the small patches got lost. + +***************************** +Notes for version 1.06 + + Jan-Piet Mens added support for the '-m' switch. This + allows exclusion of shell-style globs from the CDROM. + See manual mkisofs.8 for more information. + +***************************** +Notes for version 1.05 + + Added support for '-r' switch. This is very similar to -R for +Rock Ridge, but echos of the development environment are removed +(i.e. uid/gid set to 0, and permissions of the files are canonicalized). +Useful in applications where a distribution medium is being produced. + +***************************** +Notes for version 1.04 + + No notes for 1.04. + +***************************** +Notes for version 1.03 + + No notes for 1.03. + +***************************** +Notes for version 1.02. + + Minor bugfixes here and there. Support for compiled in +defaults for many of the text fields in the volume header are now +present, and there is also support for a file ".mkisofsrc" that can +also read settings for these parameters. + + A short script "Configure" was added to allow us to set up special +compile options that depend upon the system that we are running on. +This should help stamp out the sphaghetti-isms that were starting to grow +up in various places in the code. + + You should get more meaningful error messages if you run out of +memory. + +***************************** +Notes for version 1.1. + + The big news is that SUSP CE entries are now generated for +extremely long filenames and symlink names. This virtually guarantees +that there is no limit (OK, well, about 600Mb) for file name lengths. +I have tested this as well as I can, and it seems to work with linux. +This would only be used very rarely I suspect. + + Also, I believe that support for VMS is done. You must be +careful, because only Stream-LF and FIxed length record files can be +recorded. The rest are rejected with error messages. Perhaps I am +being too severe here. + + There is a bugfix in the sorting of entries on the disc - we +need to stop comparing once we reach the ';' character. + + There are four new options -z -d -D -l -V. Some of these tell +mkisofs to relax some of the iso9660 restrictions, and many systems +apparently do not really seem to mind. Use these with caution. + + Some diagnostic programs to scan disc images are in the diag +directory. These are not as portable as mkisofs, and may have some +bugs. Still they are useful because they can check for bugs that I might +have introduced as I add new features. + +***************************** +Notes for version 1.0. + + In version 1.0, the date fields in the TF fields were fixed - +previously I was storing st_ctime as the file creation time instead of +the file attribute change time. Thanks to Peter van der Veen for +pointing this out. I have one slight concern with this change, +however. The Young Minds software is definitely supplying 3 dates +(creation, modification and access), and I would strongly suspect that +they are incorrectly putting the file attribute change time in the +file creation slot. I would be curious to see how the different RRIP +filesystems treat this. Anyway, this is something to keep in the back +of your mind. + + The symlink handling was not quite correct in 0.99 - this is +now fixed. Only some systems seemed to have been affected by this bug. + + A command line option is now present to allow you to +specifically exclude certain files from the distribution. + + The case where you do not have permissions to read a directory +is now handled better by mkisofs. The directory that cannot be opened +is converted into a zero-length file, and processing continues normally. + + A few portability things have been fixed (hopefully). + + +Source: README from cdrtools package +Edited for cdrkit by Christian Fromme + diff --git a/doc/genisoimage/README.rootinfo b/doc/genisoimage/README.rootinfo new file mode 100644 index 0000000..b3bc447 --- /dev/null +++ b/doc/genisoimage/README.rootinfo @@ -0,0 +1,90 @@ +The -icon-position option will attempt to preserve folder window positions, +scroll bars, views etc. for Apple/Unix file formats that support this +information (see below for which Apple/Unix encoding are supported). + +This information is stored in the 'FinderInfo' part of a Apple/Unix directory. +For example, in a CAP directory structure a directory called 'dirA' will +have the necessary FinderInfo stored in file '.finderinfo/dirA'. This file +stores information including, the folder's location and size on screen, +its scroll positions, folder View (view as Icons, Small Icons, etc.). + +However, the similar FinderInfo data for the 'root' folder is a special case. +For example, if a directory called '/some/dir/macfiles' is a CAP volume that +is mounted on a Mac as 'macfiles', then the FinderInfo for this directory +is stored in the file '/some/dir/.finderinfo/macfiles' - which is outside +the CAP directory structure. + +To get round this, an extra option, '-root-info' is used that takes as its +argument the name of the file that stores the root folder's FinderInfo. + +Using the above example, the command file options will be something like: + +% mkhybrid --cap -root-info /some/dir/.finderinfo/macfiles /some/dir/macfiles + +The format of the root FinderInfo file must be the same as the 'double-dash' +option(s) given on the command line. + +The Apple/Unix encodings that mkhybrid can decode the root FinderInfo are: + +CAP: + CAP directory: /some/dir/macfiles + Root FinderInfo file: /some/dir/.finderinfo/macfiles + +Netatalk: + Netatalk directory: /some/dir/macfiles + Root FinderInfo file: /some/dir/.AppleDouble/RootInfo + +EtherShare: + EtherShare directory: /some/dir/macfiles + Root FinderInfo file: /some/dir/.rsrc/macfiles + +If an HFS disk is mounted on a Linux platform, then the root FinderInfo +files are: + +Option 'fork=cap': + Root FinderInfo file: /mountpoint/.rootinfo + +Option 'fork=double': + Root FinderInfo file: /mountpoint/%RootInfo + +Option 'fork=netatalk': + Root FinderInfo file: /mountpoint/.AppleDouble/RootInfo + + +The '-root-info' option implies the '-icon-position' option. Future releases +of mkhybrid may automatically find the root FinderInfo file. + +The volume name is not set from the root FinderInfo file. Use the -V or +-hfs-volid options to set the volume name. + +Currently UShare, SGI/XINET, PC Exchange and SFM Apple/Unix root FinderInfo +files are not supported by mkhybrid - more information about these formats +is required in order to supoort them. + +AppleSingle and MacBinary are file only formats - they don't support folders +or volumes. + +Using this option, it is now possible to make a nearly true representation +of a Mac folder layout on a Unix/Linux platform. + +Original author: James Pearson 26-Apr-2000 + +This describes the program as shipped with cdrkit, a spinoff from the +cdrtools project. However, the cdrtools developers are no longer +involved in the development of this spinoff and therefore shall not +be made responsible for any problem caused by it. Do not try to get +support for this program by contacting the original authors. + +If you have support questions, send them to + +debburn-devel@lists.alioth.debian.org + +If you have definitely found a bug, send a mail to this list or to + +submit@bugs.debian.org + +writing at least a short description into the Subject and "Package: cdrkit" + +Source: README.rootinfo from cdrtools package +Edited for cdrkit by Christian Fromme + diff --git a/doc/genisoimage/README.session b/doc/genisoimage/README.session new file mode 100644 index 0000000..a4126fb --- /dev/null +++ b/doc/genisoimage/README.session @@ -0,0 +1,53 @@ +/* @(#)README.session 1.3 99/03/02 eric */ + + This release of genisoimage has basic support completed for +multiple sessions. However, we still need some interaction +between wodim and genisoimage for this to work correctly. This is needed as +only wodim knows the different ways to gather these numbers for all +different drives. It may be that future versions of genisoimage will include +the needed support for MMC compliant drives. + + There are a few new options to genisoimage to allow for this. +The first one is "-M /dev/scd0", and is used so that genisoimage can examine +the entirety of the previous image so that it can figure out what additional +files need to be written in the new session. Note that there are operating +systems that don't allow to read from CD drives with a sector size +of 2048 bytes per sector. To use genisoimage on such an operating system, you +will need a version of genisoimage that includes the SCSI transport library +from wodim. Simply use the dev= syntax from wodim with -M in +such a case. It will tell genisoimage to use the SCSI transport library to +read from the CD instead of using the standard read() OS interface. + + There is also a temporary hack in genisoimage in the form of a '-C' option. +The -C option takes two numbers as input, which are delimited by commas. +For example, you could specify "-C 1000,1020", but you should never just +make up numbers to use here. These numbers are determined from wodim. + + Note that if you use -C and omit -M, it effectively means that +you are writing a new session, starting at a non-zero block number, +and you are effectively ignoring all of the previous session contents. +When this session is sent to the writer, the new session effectively +"erases" the previous session. + + In practice you should be able to do something like: + +genisoimage [other options] -C `wodim dev=b,t,l -msinfo` \ + -M /dev/cdblkdev + +Replace 'b,t,l' by the aproriate numbers for SCSIbus, target and lun +of your drive. + +Note: As of the 1.12b5 release, the multi-session technology has +matured quite significantly. It is entirely possible that bugs +exists, or that further tweaks will be required somewhere along the +way to get things working correctly. The data gathering mode of +wodim has been tested, and I believe it works correctly. Caveat +Emptor. + +[Mar 1, 1999]. + + +Source: README.session from cdrtools package +Edited for cdrkit by Christian Fromme and +Eduard Bloch + diff --git a/doc/genisoimage/README.sort b/doc/genisoimage/README.sort new file mode 100644 index 0000000..1e377bc --- /dev/null +++ b/doc/genisoimage/README.sort @@ -0,0 +1,102 @@ +Sort the order of file data on the CD +===================================== + +Note: this option does not sort the order of the file names that appear +in the ISO9660 directory. It sorts the order in which the file data is +written to the CD image. + +This option is useful in order to optimize the data layout on a CD. + +To use, type something like: + +genisoimage -o cdimage.iso -sort sort_file [other_options] cd_dir + +The file 'sort_file' contains two columns of: + +filename weight + +where filename is the whole name of a file/directory as genisoimage will see it +and weight is a whole number between +/- 2147483647 + +The files will be sorted with the highest weights first and lowest last. +The default weight is zero. + +If the filename is a directory name, then all the files in that directory (and +sub-directories) will use its weight as their default weight. + +e.g. + +If the directory 'cd_dir' contains two directories called 'dir1' and 'dir2' +with files 'A', 'B' and 'C' in dir1 and 'X', 'Y' and 'Z', the the file +'sort_file' could look something like: + +cd_dir/dir2 1000 +cd_dir/dir2/Y 2000 +cd_dir/dir1/B -2000 +cd_dir/dir1/A -8000 + +Note: There must be only one space or tab character between the filename and +the weight and the weight must be the last characters on a line. The filename +is taken to include all the characters from the first in a line, up to, but +not including the last space or tab character on a line. This is to allow +for space characters to be in, or at the end of a filename. + + +The command: + +genisoimage -o cdimage.iso -sort sort_file cd_dir + +will sort the above file data as: + +cd_dir/dir2/Y +cd_dir/dir2/X +cd_dir/dir2/Z +cd_dir/dir1/C +cd_dir/dir1/B +cd_dir/dir1/A + +Note: files 'X' and 'Z' both have the weight 1000 - their sort order will then +be the normal ISO9660 sort order (i.e. alphabetical in this case). + +File C will have the default weight of 0 + +Warning: the filenames in the sort list MUST match the whole path as seen by +genisoimage. i.e. in the above case, if the command line was: + +genisoimage -o cdimage.iso -sort sort_file ./cd_dir + +then the sort_file filename will have to changed as accordingly. + +Notes +===== + +CDs are written from the middle outwards. High weighted files will be nearer +the inside of the CD. + +Wildcards in the filename list should work. + +If a file appears more than once in the source directory tree, then the file +is only added once to the CD image - i.e. a hard linked file, or symbolic +link if using the -f option. The file will be sorted according to the +highest weighting given to any of the linked files. + +Zero length files are not sorted - the 'start extent' *may* appear to be in +the middle of another file after sorting. This is because zero length files +are given the start extent after the last file added to the CD at that time. +This address is not changed by the sorting, so it may appear that the file +address is in another file - however as they are zero length, this will +not matter! + +Directories are not sorted by this flag - directories HAVE to be in the +ISO9660 sort order - however, the files the directory entry points to, can be +anywhere on the CD. + +Existing files from any previous sessions will not be sorted - they already +exist on the CD and can not be moved! + +I have no idea if this is really useful ... + + +James Pearson 22-Nov-2001 + +Any comments/problems to j.pearson@ge.ucl.ac.uk diff --git a/doc/genisoimage/README.sparcboot b/doc/genisoimage/README.sparcboot new file mode 100644 index 0000000..b9bcbf2 --- /dev/null +++ b/doc/genisoimage/README.sparcboot @@ -0,0 +1,77 @@ +# @(#)README.sparcboot 1.1 99/12/12 joerg +# Edited for program name change by Eduard Bloch, 2006 + +The sparc boot feature does allow you to create your own Sun sparc boot disk. +This will allow you to create modified Solaris install disks or to create +installation CD's for other OS that run on sparc systems. + +A CD that is bootable on a Sun sparc system has a Sun disk label on sector 0 +and some Sun sparc disk partitions behind the ISO-9660 filesystem image. + +The layout of a sparc boot CD: + +---------------------------------------------------------------------------------------------------- +|Sun disk label| Iso 9660 filesystem |Generic sun4 boot|sun4c boot|sun4m boot|sun4d boot|sun4e boot| +---------------------------------------------------------------------------------------------------- + +On older system CD's all boot partition contain a full UFS miniroot filesystem. +On newer CD's the images on slice 2 and above only contain boot redirects to +slice 1. + +To create a CD that is bootable on Sun sparc systems you need to have the +boot images for the apropriate sparc architecture. + +A boot image file usually is a UFS filesystem image that contains the +primary boot image at byte offset 512 ... 8191. + +You may get such boot images by extracting partitions 1..5 from a Sun Solaris install CD, +but any bootable image should work. + +Here is an expample how to do this with the Solaris 7 install CD. + +dd if=/vol/dev/dsk/c0t6/sol_7_sparc_sun_srvr/s1 of=sun4 +dd if=/vol/dev/dsk/c0t6/sol_7_sparc_sun_srvr/s2 of=sun4c +dd if=/vol/dev/dsk/c0t6/sol_7_sparc_sun_srvr/s3 of=sun4m +dd if=/vol/dev/dsk/c0t6/sol_7_sparc_sun_srvr/s4 of=sun4d +dd if=/vol/dev/dsk/c0t6/sol_7_sparc_sun_srvr/s5 of=sun4e + + +genisoimage -R -sparc-boot sun4,sun4c,sun4m,sun4d,sun4e -o boot.img /mnt/install + +Will create the bootable image in boot.img. + +If you like to make the boot images smaller, you may call 'fstyp -v' +on the images and use the 'size' value to get the needed minimal +boot image size in kB. + +The result for the S7 boot CD is: + +ufs +magic 11954 format dynamic time Wed Oct 7 00:00:30 1998 +sblkno 8 cblkno 12 iblkno 16 dblkno 252 +sbsize 2048 cgsize 2048 cgoffset 20 cgmask 0xfffffff0 +ncg 7 size 25704 blocks 23987 + ^^^^^ + This is the number of interest. +bsize 8192 shift 13 mask 0xffffe000 +fsize 2048 shift 11 mask 0xfffff800 +frag 4 shift 2 fsbtodb 2 +minfree 10% maxbpg 2048 optim time +maxcontig 256 rotdelay 0ms rps 90 +csaddr 252 cssize 2048 shift 9 mask 0xfffffe00 +ntrak 14 nsect 72 spc 1008 ncyl 102 +cpg 16 bpg 1008 fpg 4032 ipg 3776 +nindir 2048 inopb 64 nspf 4 +nbfree 1768 ndir 667 nifree 24329 nffree 9 +cgrotor 2 fmod 0 ronly 0 + +So you should call: + +dd if=/vol/dev/dsk/c0t6/sol_7_sparc_sun_srvr/s1 of=sun4 bs=1k count=25704 + +To modify this filesystem, you can mount it using the fbk driver: + +chmod +t ./sun4 # Need to do this to avoid vm cache aliasing problems + +mount -F fbk -o rw,type=ufs /dev/fbk0:sun4 /mnt + diff --git a/doc/genisoimage/README.sunx86boot b/doc/genisoimage/README.sunx86boot new file mode 100644 index 0000000..2286a57 --- /dev/null +++ b/doc/genisoimage/README.sunx86boot @@ -0,0 +1,77 @@ +# @(#)README.sunx86boot 1.3 05/02/25 Copyright 2003 J. Schilling +# Edited for program name change by Eduard Bloch, 2006 + +A Solaris x86 Boot CD looks the like this: + +- A PC type fdisk partition map is in CD sector 0 at offset 0 + This fdisk partition map contains a single Solaris 0x82 type + partition starting at CD sector 0 at offset 512. + +- A SVr4 disk partition label is at CD sector 0 at offset 1024. + This equates the usual 512 byte offset to the primary partition + used by SVr4. + + This SVr4 partition label defines: + + - Partition 0 to contain a usually UFS type boot filesystem + + - Partition 1 to map the ISO-9660 filesystem. + + This seems to be a conceptual bug from Sun, as it is + impossible to mount this partition because this partition + would point outside the primary fdisk partition type 0x82 + + - Partition 2 maps the whole CD. + + +A boot CD created by Sun contains a master boot record in CD sector 0 offset 0. +The size if this MBR is 0x1BE (446 decimal) as usual on PCs. + +At CD sector 0 offset 512, there is a "primary boot sector". The MBR assumes +that is always gets loaded together with the ""primary boot sector". + +The El-Torito map for this CD defines a "no-emulation" boot sitting at CD sector 0 +and being 4 512 byte sectors in size. This covers the 1024 bytes of above +boot code. Note that genisoimage will not put the no-emulation boot at sector 0 +as it keeps the boot inside the area used for other file content data. + +At CD sector 1..15, there is a secondary boot code that understands UFS and tries +to boot from UFS slice 0. If you like to boot from different filesystem types, +you need to replace this boot code. The real size used by the secondary boot +is 31 x 512 bytes == 15872 bytes. + +To get hold of the three boot files, do the following with e.g. a Solaris 10 +boot CD: + +readcd dev=1,0 f=CD.out sectors=0-32 + +Replace dev=1,0 with the apropriate values for your system (see readcd -scanbus). + +sdd if=CD.out bs=446 count=1 of=mboot +sdd if=CD.out count=1 iseek=512 of=pboot +sdd if=CD.out count=60 iseek=2048 of=bootblk + +To create the needed files for the misofs command line example below, do the +following: + +sdd if=mboot -fill of=eltoritoboot +cat pboot >> eltoritoboot + +sdd -inull bs=2k count=1 of=genboot +cat bootblk >> genboot + +If you like the CD to look more similar to the original Sun CDs, use: + +cp eltoritoboot genboot +sdd -inull bs=1k count=1 >> genboot +cat bootblk >> genboot + +If you like to create a CD similar to the Solaris 10 boot CD, do the following: + +mkdir isodir +star -cPM -C /vol/dev/dsk/c1t1d0/multi_icd_sol_10_x86/s2 . | star -xp -xdot -C isodir +cp eltoritoboot isodir/.bootimage + +genisoimage -G genboot -no-emul-boot -b .bootimage -c .catalog -R -o bootcd.iso -sunx86-boot /vol/dev/dsk/c1t1d0/multi_icd_sol_10_x86/s0 isodir/ + + diff --git a/doc/icedax/FAQ b/doc/icedax/FAQ new file mode 100644 index 0000000..815f579 --- /dev/null +++ b/doc/icedax/FAQ @@ -0,0 +1,296 @@ +Frequently Asked Questions + +Status +====== + + +Q: What is the copyright status of icedax? + +A: icedax is software copyrighted by Heiko Eissfeldt and others, and + released under the General Public License from the Free Software + Foundation (see file GPL). + +Compilation +=========== + + +Q: What are the requirements to run icedax? + +A: All operating systems that are supported by wodim should also be able to + run icedax. Currently DOS and Windows are not covered. + Requirements of previous versions of icedax have been cut down for the + sake of portability. Features like fork(), realtime scheduling, or shared + memory are all optional now. You need Cmake and its dependencies, an + ANSI C compiler and a C library to build icedax + on a supported operating system. To run icedax, a SCSI transport + implementation for the os, a cdrom or cd burner device to read from, and + at least say 65K of memory for buffers are needed. + + +Q: Why does it not compile under Linux, although I am using the newest kernel? + +A: There have been changes in the generic driver by Douglas Gilbert, that are + in its first release not compatible with the scsi library from Joerg + Schilling. We are working on this problem... + In the meantime better do not use this variant, use the older one instead. + + +Q: Why does it not compile using standard make? + +A: Like wodim, icedax uses the cmake system, which requires a + sophisticated make program like GNU make. + Pure posix make functionality is not enough. + +Setting Up (for now Linux only) +=============================== + + +Q: Should I use scsi emulation or the eide driver for my ATAPI cdrom drive? + +A: Scsi emulation is preferred, since it enables icedax to use more commands + and is often the only way to get special information like track titles with + cd-text. The emulation module is called ide-scsi, the eide module is called + ide-cd. + + +Q: How can I use my parallel-port-connected cdrom with icedax? + +A: Under Linux there is a driver, that makes this device under SCSI + emulation available. For more information see the wodim documentation. + + +Q: How do I check, if the current Linux kernel does support generic SCSI? + +A: run 'cat /proc/devices | grep "21 sg"' and see, if a line with 'sg' appears. + If it does not appear, the current kernel is not able to use the generic_scsi + interface. If you have generic SCSI support compiled as a module, see next + question, otherwise you need to recompile the kernel and enable generic SCSI. + You might try to use the 'cooked_ioctl' interface as a last resort, but then + you need to supply a cdrom device with -D (like -D/dev/cdrom). In this case + icedax completely relies on the cdda reading methods from the kernel + driver, so it might not work (due to unsupported). + + +Q: How do I load the generic SCSI module by hand? + +A: run 'insmod sg' and check the result (see above). + + +Q: How do I find the device setting for my drive? + +A: Under Linux use the script scan_scsi.Linux. It prints the available devices + and their respective device option to be used. + Be aware of the fact that the generic device naming may change whenever the + devices on the SCSI bus change (present or not present). + +General usage (sampling) +======================== + + +Q: How do I record the whole cd, each track in a seperate file? + +A: Use the '-B' option. This will automagically create a file for each track. + + +Q: How do I record the whole cd into one file? + +A: Just extend the default recording time from one track to a big enough + time in seconds to cover the whole cd (like -d99999). + + +Q: How do I record successive tracks (a track range) into seperate files? + +A: Use the '-B' option and -t+. + + +Q: How do I record successive tracks (a track range) into one file? + +A: Use -t+. + + +Q: How do I record different tracks into seperate files with individual file + names? + +A: Use the supplied script 'readmult'. For usage see the comments at the + beginning of the script. + + +Q: How can I get the highest speed out of icedax? + +A: See the file README. There is a section about performance and what is + influencing it. + + +Q: How can I burn audio cds with icedax and wodim on-the-fly? + +A: This has not been tested very well, so caveat emptor. It is possible to + use icedax and wodim with pipes, _but_ there are several issues. + 1.: The cd drive may become too slow to keep wodim's buffer happy, when + a scratch on the audio cd is encountered, and several retries take place. + 2.: Currently there is no way to carry individual track information from + icedax to wodim. Several information bits are available very late + but are needed in advance from wodim. + 3.: Some operating systems have limitations in multiple SCSI accesses and + other resources (shared memory). icedax and wodim may block each + other, or might fight over limited resources. + For these reasons it is not recommended to burn on-the-fly with icedax. + +Frontends +========= + + +Q: Which frontends for icedax are available? + +A: See the file 'Frontends'. There are command line and graphical frontends. + +Album and track titles +====================== + + +Q: Does icedax support titles from cd extra (aka cd plus aka enhanced cd)? + +A: In general, yes. In order to get this information, icedax needs to read + a data sector from the second session of the cd. This requires multisession + support and the capability to read XA sectors. The titles are printed on the + screen and written into the inf files, then. + + +Q: Does icedax support titles from cd-text? + +A: Newer versions support the most important features of cd-text like titles + and creators. Non-supported are currently 16-bit characters, so asian + titles etc. are currently not available. + + +Q: Does icedax support CDDB ids? + +A: Yes, while it does not make CDDB lookups itself, it supplies an cddb file + with the table of contents and the cddb id. For cddb lookups see the + perl script tracknames.pl and tracknames.txt. If the titles are known to + icedax, it fills the titles itself in the cddb file. + + +Q: What is the MCN? + +A: The media catalog number is an unique id for the audio cd release. It is + similar to the ISBN for books, but unfortunately it is included only on + some audio cds. + + +Q: What is the ISRC? + +A: The International Standard Record Code is an unique id for a track. Like the + MCN (see above) it is an optional item. + +MP3 coding +========== + + +Q: Does icedax support on-the-fly mp3-coding? + +A: Yes. As of version 1.9alpha I integrated the LAME encoding engine as a new + output format. + To support external encoders, I added two scripts. The trick + is to avoid big temporary files. There are three versions (cdda2mp3.file, + cdda2mp3.pipe, and cdda2mp3.fifo), the first using files, the second uses + pipes, and the last uses a named pipe (also called fifo). The examples + use the Fraunhofer encoder 'l3enc', which is a commercial product and has + to be purchased seperately. Other encoders should be usable in a similar way. + +Conversions +=========== + + +Q: How do I create a file suitable for cd burning? + +A: If you are using wodim, you can produce cdr or wav files. To select + cdr files, use -Ocdr, to select wav files use -Owav (the default). + Audio files that have been recorded with a length not a multiple of the + audio sector size 2352 bytes, should be used with wodim's -pad option. + + +Q: How do I convert a wav file into a cdr file (my other cd burning program + does not accept wav format)? + +A: Use 'dd if=wavfile of=cdrfile conv=swab ibs=44 skip=1 obs=2352' + + +Q: How to convert cdr to wav? + +A: Use sox, the sound utility. It supports other formats as well. + +Specials +======== + + +Q: Does icedax support the pre-emphasis bit? + +A: If the table of contents marks a track as pre-emphasized, the corresponding + inf file will have this information, too. That enables a cd burning program + to retain the state of the track. + + +Q: Can icedax undo the pre-emphasis effect in the samples? + +A: Yes, if the -T option is given (and cd quality is selected), + icedax filters the samples with the reverse emphasis on-the-fly. This has + been checked with a sine sweep from a pre-emphasized test cd. + + +Q: My cdrom delivers the stereo channels swapped. How can I undo this? + +A: Use the -cs option. + + +Q: Does icedax support indices? + +A: Yes, but since there are positioning problems with a lot of drives, + information might be inaccurate. A start index can be specified with the + -i option. To get all indices, use the -v7 option. + + +Q: Can icedax avoid including the pre-gap region at the end of the track? + +A: Currently not. This might be added later, but is not easily done. + + +Q: How can I get all information about the cd without writing files? + +A: Use the -J option, which switches analysis to the max, and aborts after + the report. + + +Q: Can icedax display/save the graphics on my CD+graphics disc? + +A: No, this is not planned. A seperate X11 program could do that probably + better. + + +Q: Can icedax read the audio portion from my CD-I/Video-CD/DVD mpeg streams? + +A: No, these are special formats, which require much more effort. + +User support/feedback +===================== + + +Q: icedax is great. How can I support you to encourage further development? + +A: Look into the file NEEDED. Also constructive criticism and feedback is + appreciated. + + +Q: I want to port cdrkit (wodim/genisoimage/icedax) to a new platform (like + DJGPP,cygwin,os/2). How should I proceed? + +A: It would be convenient to have a unix like environment (like cygwin provides) + A shell, and a make program would be needed to first create smake (in order + to make the makefile system working). Another critical component is autoconf. + Once that is running, os dependent interfaces and the SCSI library should be + adjusted. For the makefile system and the scsi library please contact Joerg + Schilling. + + +Q: icedax sucks. Are there other alternatives available? + +A: Yes, for Linux you might try 'cdparanoia' from Monty (see README file). diff --git a/doc/icedax/Frontends b/doc/icedax/Frontends new file mode 100644 index 0000000..779af6e --- /dev/null +++ b/doc/icedax/Frontends @@ -0,0 +1,34 @@ +This file lists additional free frontend software to be combined with icedax: + +graphical frontends +=================== + +BurnIT (http://sunsite.auc.dk/BurnIT/) + by Jesper Petersen + a Java based frontend for cdrecord and icedax/cdparanoia + +Grip (http://www.ling.ed.ac.uk/~oliphant/grip) + by Mike Oliphant + a GTK+ Frontend for audio extraction and MPEG 1 Layer 3 conversion + (incl. CDDB support) + requires libcdaudio (also by Mike Oliphant) + +Krabber (http://members.tripod.com/~fehlfarben/download.html) + by Adrian Schroeter + a KDE frontend for cdparanoia and MPEG 1 Layer 3 conversion + (incl. CDDB support) + +script frontends +================ + +Cdr Create/Duplicate/Rip (ftp://ftp.burdell.org/pub/) + by David Cantrell + a ncurses based Perl script for CDDA to MPEG 1 Layer 3 conversion + (incl. CDDB support) + requires xmcd + +Ripenc rip encoder (http://www.asde.com/~mjparme/index.htm) + by Michael J. Parmeley + a shell script frontend for CDDA extraction and MPEG 1 Layer 3 + conversion + (incl. CDDB support) diff --git a/doc/icedax/HOWTOUSE b/doc/icedax/HOWTOUSE new file mode 100644 index 0000000..1ab9d77 --- /dev/null +++ b/doc/icedax/HOWTOUSE @@ -0,0 +1,101 @@ +Icedax User guide +================= + +NOTE: expressions in angle braces have to be substituted with + the corresponding numerical values. + For example: has to be substituted + with the numerical value to be used. + +Common tasks +============ +NOTE: The examples used here depend on proper default settings for interface +method and devices as specified in the Makefile. They can be overriden with +command line parameters, but here I choose to focus on simple examples. + +Copy complete audio CDs + +1. Copy an audio CD into wav files one per track. + + icedax -B + + will produce the sample wav files (one per track) + audio_01.wav + audio_02.wav + ... + + and the corresponding description files + audio_01.inf + audio_02.inf + ... + +2. Same as above but include MD-5 type signatures + + icedax -B -M + + +3. Same as above but use other file name ('party_cd.wav') + + icedax -B -M party_cd.wav + + +Copy single tracks + +1. Copy one track (eg track 6) into a wav file. + + icedax -t6 + + will produce a wav file including track 6 + + audio.wav + + and + + audio.inf + + +Copy parts of tracks + +1. Copy from given start time to end of track + + icedax -t6 -o + + will record track 6 starting at track time /75 seconds + from track beginning upto the end of track. + +2. Copy from given start time and record for a given time + + icedax -t6 -o -d