From: Philippe Coval Date: Fri, 1 Mar 2013 10:33:00 +0000 (+0100) Subject: Imported Upstream version 1.1.11 X-Git-Tag: upstream/1.1.11^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fheads%2Fupstream;p=platform%2Fupstream%2Fcdrkit.git Imported Upstream version 1.1.11 --- 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