[comp.os.minix] wrapup

ast@cs.vu.nl (Andy Tanenbaum) (12/24/89)

It is 1:30 in the morning here in Europe, Dec. 24, but I made it in time
for the Sleigh to take off for its first run (New Zealand).  Actually
Tonga is closer to the International Dateline, but nobody there was good
this year, so it is being omitted.

Tomorrow I will try to get the rest (commands subdirectories).

It case you are wondering why everything is so big, it is not that everything
has been rewritten from scratch, but rather that I ran commands/*.c through
the pretty printer (pretty.c).  This gives the odd change to the code.
Of course I could have told everyone to run pretty themselves with my 
parameters and saved a ton of bandwidth, but half the people would have
used their own favorite parameters and then cdiffs wouldn't work and it
would be chaos.  Eastern Europe notwithstanding, sometimes dictatorship
is the only way to fly.

As people begin to absorb all this stuff, please post reports to the net,
even if it is only "I put everything together on machine XYZ and it
worked fine."  I would like some feedback.  Also about the distribution
mechanism (shar + compress + uue for the bitnet folks).  I'll include my shell
script below for anyone who is interested.

Andy Tanenbaum (ast@cs.vu.nl)

------------------------ shell script that generates all this stuff -------
# makepost new old postdir
# prepares a posting and puts the files in postdir
# All three arguments must be absolute path names - SHOULD CHECK THIS

new=$1
old=$2
post=$3
dir=`basename $new`
# Peter broke my $# trying to fix quoting
if test "$4" != ""
then
    echo Usage: makepost newdir olddir postdir
    exit 1
fi
case $# in
3)	echo "" >/dev/null ;;
*)	echo Usage: makepost newdir olddir postdir
		exit 1 ;;
esac

work=/usr/tmp/`basename $0`.$$	# this had better be an absolute path too
rm -rf $work
mkdir $work
cd $work
for i in $new/*
do  b=`basename $i`
    if test -d $i
	then 
	    # It is a directory.  Skip.
	    echo $i is a dir "(skipping)"
#	    makepost $new/$b $old/$b $post
#	    exit 0
	else
	    # It is a regular file.  See if it existed last time.
	    if test -r $old/$b
		then 
		    # It existed last time. Did it change?
		    if cmp -s $new/$b $old/$b
			then
			    # File didn't change.  Don't do anything.
			     echo $b is unchanged >/dev/null
			else
			    # File did change.
			    # echo $b has been modified
			    f=`basename $b .c`
			    cdiff -c1 $old/$b $new/$b >$f.cdif
			    newlength=`wc -c <$new/$b`
			    double=`expr $newlength + $newlength`
			    difflength=`wc -c <$f.cdif`


			    if test  $difflength -gt $double
				then cp $new/$b . #diff is huge; use orig
				     rm `basename $b .c`.cdif
			    fi
		    fi
		else
		    # This file is new.
		    cp $new/$b .
	    fi
   fi
done

# At this point, $work contains *.cdif, new files, and heavily modified files.
crc  $new/* >$dir.crc
echo "------------------- Files in the posting --------------------- "
ls -l			# for the log
gather -f $new
cp *uue $post
exit 0

dcd@tc.fluke.COM (David Dyck) (12/27/89)

In article <4981@ast.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes:
>
>As people begin to absorb all this stuff, please post reports to the net,
>even if it is only "I put everything together on machine XYZ and it
>worked fine."  I would like some feedback.  Also about the distribution
>mechanism (shar + compress + uue for the bitnet folks).  I'll include my shell
>script below for anyone who is interested.
>
>Andy Tanenbaum (ast@cs.vu.nl)
>

When I tried to extract the posting "1.5.0 #33 - test", the following
three 'binary' files were included directly in the shar file:
	t10a, t10b, and t11b.

The problem may be in the shar program ast used (it could
have uuencoded the binary file), or the makepost script (it could
have excluded 'binary' files).

After I manually edited out the binary files, I was able to unshar the files 
successfully.

Also, does anyone know why the following files were zero length
in the 1.5.0 crc list?

00000      0 ./fs/proto.h
00000      0 ./kernel/proto.h
00000      0 ./mm/proto.h

            David Dyck
    Domain: dcd@tc.fluke.COM
     Voice: +1 206 356 5807
      UUCP: {uw-beaver,decwrl,microsof,sun}!fluke!dcd
     Snail: John Fluke Mfg. Co. / P.O. Box 9090 / Everett WA  98206-9090