djh@cs.mu.oz.au (David Hornsby) (06/13/91)
Progress towards CAP 6.1, (6.0 with all patches applied) is
currently on temporary hold. There are a variety of reasons:
* testing of ULTRIX packet filter code is waiting on
a patch for ULTRIX 4.1 (may also be needed for 4.0).
To save time, ask your Customer Support Centre for
the "patched net_common.o" or upgrade to ULTRIX 4.2
* addition of the Phase 2 code to the enet driver is
underway at Rutgers. The 4.0.3/le0 problem delayed
testing, as have other work commitments.
* some people have requested that particular AUFS
pecularities be resolved. The enclosed patch 27
addresses one problem, the other relates to fixed
directory IDs and is being investigated.
There isn't a new timeline yet, if you have been waiting
eagerly for 6.1, I would suggest that it would be better
to go with 6.0 and patches.
The management apologises for the delay :-)
- David
------------------------
The enclosed shar file contains patches 26 and 27. They are
also available via FTP from munnari.OZ.AU and rutgers.edu
patch 26: change the "very very obsolete" tell() to the
equivalent lseek() call.
patch 27: maintain the original Macintosh file Created and
Modified times on a file copy to an AUFS server (to
emulate the behaviour of other AppleShare servers).
If the file is edited as either a UNIX or Mac file,
the Modified time is updated correctly. This patch
is loosely based on code by Henry N. Holtzman
<holtzman@friskies.media.mit.edu> and email from
David N. Blank <dnb@meshugge.media.mit.edu>. My
thanks to both.
The .finderinfo files produced are compatible with
unmodified servers and the various AufsTools utils.
WARNING: patch 27 modifies an include file. You need
to add USE_MAC_DATES in the m4.features script and
then remake CAP, starting with 'make include'
#! /bin/sh
# This is a shell archive. Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file". To overwrite existing
# files, type "sh file -c". You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g.. If this archive is complete, you
# will see the following message at the end:
# "End of shell archive."
# Contents: cap60.patch026 cap60.patch027
# Wrapped by djh@munnari.OZ.AU on Thu Jun 13 22:41:31 1991
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'cap60.patch026' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'cap60.patch026'\"
else
echo shar: Extracting \"'cap60.patch026'\" \(1752 characters\)
sed "s/^X//" >'cap60.patch026' <<'END_OF_FILE'
XPatch #: 26
XType: update
XPriority: low
XAffects: OS without obsoleted tell()
XReported: Robert Elz <kre@munnari.OZ.AU>
XReported: Heather Ebey <heather@sdcc4.ucsd.edu>
XArchived: munnari.OZ.AU mac/cap.patches/cap60.patch026
XSummary: "tell() is very very obsolete", replace with lseek()
XFile: cap60/applications/aufs/afpdt.c
X
X*** applications/aufs/afpdt.c.orig Wed Mar 13 21:21:03 1991
X--- applications/aufs/afpdt.c Thu Jun 13 20:45:38 1991
X***************
X*** 1,7 ****
X /*
X! * $Author: djh $ $Date: 91/03/13 20:19:13 $
X! * $Header: afpdt.c,v 2.2 91/03/13 20:19:13 djh Exp $
X! * $Revision: 2.2 $
X */
X
X /*
X--- 1,7 ----
X /*
X! * $Author: djh $ $Date: 1991/06/13 10:45:20 $
X! * $Header: /mac/src/cap60/applications/aufs/RCS/afpdt.c,v 2.3 1991/06/13 10:45:20 djh Rel djh $
X! * $Revision: 2.3 $
X */
X
X /*
X***************
X*** 359,365 ****
X }
X return(-1);
X }
X! floc = tell(dt->dt_afd) - ((off_t)sizeof(afr)); /* remember where we are */
X afr.afr_pdirlen = ntohl(afr.afr_pdirlen);
X afr.afr_fnamlen = ntohl(afr.afr_fnamlen);
X
X--- 359,366 ----
X }
X return(-1);
X }
X! /* remember where we are */
X! floc = lseek(dt->dt_afd, 0L, 1) - ((off_t)sizeof(afr));
X afr.afr_pdirlen = ntohl(afr.afr_pdirlen);
X afr.afr_fnamlen = ntohl(afr.afr_fnamlen);
X
X*** README.orig Thu Jun 13 20:49:05 1991
X--- README Thu Jun 13 20:49:18 1991
X***************
X*** 3,9 ****
X (For use with AppleTalk/Ethernet bridge)
X
X o RELEASE NOTES
X! o CAP Distribution 6.0, Patch Level 25, May 1991
X
X Introduction
X ------------
X--- 3,9 ----
X (For use with AppleTalk/Ethernet bridge)
X
X o RELEASE NOTES
X! o CAP Distribution 6.0, Patch Level 26, June 1991
X
X Introduction
X ------------
END_OF_FILE
if test 1752 -ne `wc -c <'cap60.patch026'`; then
echo shar: \"'cap60.patch026'\" unpacked with wrong size!
fi
# end of 'cap60.patch026'
fi
if test -f 'cap60.patch027' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'cap60.patch027'\"
else
echo shar: Extracting \"'cap60.patch027'\" \(7969 characters\)
sed "s/^X//" >'cap60.patch027' <<'END_OF_FILE'
XPatch #: 27
XType: operational change
XPriority: none
XModification: maintain Mac create/modify times on file copy
XSubmitted: David Hornsby <djh@munnari.OZ.AU>
XArchived: munnari.OZ.AU mac/cap.patches/cap60.patch027
XSummary: extend .finderinfo files to store date information
XWARNING: patch 27 modifies include file, 'make include' required
XFile: cap60/Configure
XFile: cap60/netat/macfile.h
XFile: cap60/applications/aufs/afpos.c
XFile: cap60/applications/aufs/afposfi.c
X
X*** Configure.orig Thu Jun 13 21:29:46 1991
X--- Configure Thu Jun 13 21:31:37 1991
X***************
X*** 1,7 ****
X #!/bin/sh
X! # $Author: djh $ $Date: 1991/05/29 12:23:59 $
X! # $Header: /mac/src/cap60/RCS/Configure,v 2.10 1991/05/29 12:23:59 djh Rel djh $
X! # $Revision: 2.10 $
X # CAP configuration shell script. This ain't perfect, but it's a start.
X # Execute with /bin/sh Configure if your system won't run it (ksh is okay too)
X #
X--- 1,7 ----
X #!/bin/sh
X! # $Author: djh $ $Date: 1991/06/13 11:31:28 $
X! # $Header: /mac/src/cap60/RCS/Configure,v 2.11 1991/06/13 11:31:28 djh Rel djh $
X! # $Revision: 2.11 $
X # CAP configuration shell script. This ain't perfect, but it's a start.
X # Execute with /bin/sh Configure if your system won't run it (ksh is okay too)
X #
X***************
X*** 460,465 ****
X--- 460,468 ----
X #
X # + ULTRIX_SECURITY adds ULTRIX enhanced security to aufs
X # define(`specialcflags',concat(specialcflags,` -DULTRIX_SECURITY'))
X+ #
X+ # + USE_MAC_DATES maintains Mac Create/Modify dates on file copy
X+ # define(`specialcflags',concat(specialcflags,` -DUSE_MAC_DATES'))
X #
X EOT0
X result=0
X*** netat/macfile.h.orig Thu Feb 28 23:43:38 1991
X--- netat/macfile.h Thu Jun 13 21:15:17 1991
X***************
X*** 1,7 ****
X /*
X! * $Author: djh $ $Date: 91/02/15 22:59:20 $
X! * $Header: macfile.h,v 2.1 91/02/15 22:59:20 djh Rel $
X! * $Revision: 2.1 $
X */
X
X /*
X--- 1,7 ----
X /*
X! * $Author: djh $ $Date: 1991/06/13 11:14:52 $
X! * $Header: /mac/src/cap60/netat/RCS/macfile.h,v 2.2 1991/06/13 11:14:52 djh Rel djh $
X! * $Revision: 2.2 $
X */
X
X /*
X***************
X*** 51,56 ****
X--- 51,65 ----
X byte fi_macfilename[32+1]; /* possible macintosh file name */
X byte fi_comln; /* comment length */
X byte fi_comnt[MAXCLEN+1]; /* comment string */
X+ #ifdef USE_MAC_DATES
X+ byte fi_datemagic; /* sanity check */
X+ #define FI_MDATE 0x01 /* mtime & utime are valid */
X+ #define FI_CDATE 0x02 /* ctime is valid */
X+ byte fi_datevalid; /* validity flags */
X+ byte fi_ctime[4]; /* mac file create time */
X+ byte fi_mtime[4]; /* mac file modify time */
X+ byte fi_utime[4]; /* (real) time mtime was set */
X+ #endif USE_MAC_DATES
X } FileInfo;
X
X /* Atribute flags */
X*** applications/aufs/afpos.c.orig Wed May 29 19:15:37 1991
X--- applications/aufs/afpos.c Thu Jun 13 21:17:33 1991
X***************
X*** 1,7 ****
X /*
X! * $Author: djh $ $Date: 1991/05/29 09:15:27 $
X! * $Header: /mac/src/cap60/applications/aufs/RCS/afpos.c,v 2.9 1991/05/29 09:15:27 djh Exp djh $
X! * $Revision: 2.9 $
X */
X
X /*
X--- 1,7 ----
X /*
X! * $Author: djh $ $Date: 1991/06/13 11:17:11 $
X! * $Header: /mac/src/cap60/applications/aufs/RCS/afpos.c,v 2.10 1991/06/13 11:17:11 djh Rel djh $
X! * $Revision: 2.10 $
X */
X
X /*
X***************
X*** 1274,1283 ****
X /* pick out the earliest date for mac creation time */
X sometime = (buf.st_mtime > buf.st_ctime) ? buf.st_ctime : buf.st_mtime;
X fdp->fdp_cdate = (sometime > buf.st_atime) ? buf.st_atime : sometime;
X! /* pick the later of status change and modification for */
X! /* mac modified */
X fdp->fdp_mdate = (buf.st_mtime < buf.st_ctime) ? buf.st_ctime : buf.st_mtime;
X
X fdp->fdp_bdate = 0;
X fdp->fdp_zero = 0; /* zero the zero byte (?) */
X #ifdef SHORT_NAMES
X--- 1274,1291 ----
X /* pick out the earliest date for mac creation time */
X sometime = (buf.st_mtime > buf.st_ctime) ? buf.st_ctime : buf.st_mtime;
X fdp->fdp_cdate = (sometime > buf.st_atime) ? buf.st_atime : sometime;
X! /* pick the later of status change and modification for mac modified */
X fdp->fdp_mdate = (buf.st_mtime < buf.st_ctime) ? buf.st_ctime : buf.st_mtime;
X
X+ #ifdef USE_MAC_DATES
X+ { time_t when;
X+ OSGetCDate(ipdir,fn,&fdp->fdp_cdate);
X+ if (OSGetMDate(ipdir,fn,&sometime,&when) == noErr)
X+ if (fdp->fdp_mdate < (when+5)) /* fuzz factor */
X+ fdp->fdp_mdate = sometime;
X+ }
X+ #endif USE_MAC_DATES
X+
X fdp->fdp_bdate = 0;
X fdp->fdp_zero = 0; /* zero the zero byte (?) */
X #ifdef SHORT_NAMES
X***************
X*** 1607,1617 ****
X {
X word bm = fdp->fdp_fbitmap;
X
X if (bm & (FP_FINFO|FP_ATTR|FP_PDOS))
X OSSetFA(ipdir,fn,fdp->fdp_fbitmap,fdp);
X return(noErr);
X }
X-
X
X /*
X * OSSetDirParms
X--- 1615,1629 ----
X {
X word bm = fdp->fdp_fbitmap;
X
X+ #ifdef USE_MAC_DATES
X+ if (bm & (FP_FINFO|FP_ATTR|FP_PDOS|FP_CDATE|FP_MDATE))
X+ #else USE_MAC_DATES
X if (bm & (FP_FINFO|FP_ATTR|FP_PDOS))
X+ #endif USE_MAC_DATES
X OSSetFA(ipdir,fn,fdp->fdp_fbitmap,fdp);
X+
X return(noErr);
X }
X
X /*
X * OSSetDirParms
X*** applications/aufs/afposfi.c.orig Thu Feb 28 23:44:27 1991
X--- applications/aufs/afposfi.c Thu Jun 13 21:21:22 1991
X***************
X*** 1,7 ****
X /*
X! * $Author: djh $ $Date: 91/02/15 21:08:41 $
X! * $Header: afposfi.c,v 2.1 91/02/15 21:08:41 djh Rel $
X! * $Revision: 2.1 $
X */
X
X /*
X--- 1,7 ----
X /*
X! * $Author: djh $ $Date: 1991/06/13 11:21:02 $
X! * $Header: /mac/src/cap60/applications/aufs/RCS/afposfi.c,v 2.2 1991/06/13 11:21:02 djh Rel djh $
X! * $Revision: 2.2 $
X */
X
X /*
X***************
X*** 556,561 ****
X--- 556,578 ----
X else
X fi->fi_attr &= ~attr;
X }
X+
X+ #ifdef USE_MAC_DATES
X+ if (bm & FP_CDATE) {
X+ fi->fi_datemagic = FI_MAGIC;
X+ fi->fi_datevalid |= FI_CDATE;
X+ bcopy(&fdp->fdp_cdate,fi->fi_ctime,sizeof(fi->fi_ctime));
X+ }
X+ if (bm & FP_MDATE) {
X+ time_t when;
X+ time(&when);
X+ fi->fi_datemagic = FI_MAGIC;
X+ fi->fi_datevalid |= FI_MDATE;
X+ bcopy(&when,fi->fi_utime,sizeof(fi->fi_utime));
X+ bcopy(&fdp->fdp_mdate,fi->fi_mtime,sizeof(fi->fi_mtime));
X+ }
X+ #endif USE_MAC_DATES
X+
X if (bm & FP_FINFO) {
X bcopy(fdp->fdp_finfo,fi->fi_fndr,FINFOLEN);
X if (!(bm & FP_PDOS)) /* setting finder info BUT NOT PRODOS */
X***************
X*** 566,572 ****
X--- 583,593 ----
X if (!(bm & FP_FINFO)) /* setting PRODOS info BUT NOT finder */
X mapPDOS2FNDR(fdp,fi); /* derive suitable fdCreator & fdType */
X
X+ #ifdef USE_MAC_DATES
X+ if (bm & (FP_ATTR|FP_FINFO|FP_PDOS|FP_CDATE|FP_MDATE))
X+ #else USE_MAC_DATES
X if (bm & (FP_ATTR|FP_FINFO|FP_PDOS))
X+ #endif USE_MAC_DATES
X WriteFA(pdir,fn,fi);
X return(noErr);
X }
X***************
X*** 631,636 ****
X--- 652,689 ----
X bcopy(fi->fi_comnt,cs,*cl);
X return(noErr);
X }
X+
X+ #ifdef USE_MAC_DATES
X+ OSGetCDate(pdir,fn,cdate)
X+ IDirP pdir;
X+ char *fn;
X+ time_t *cdate;
X+ {
X+ FileInfo *fi;
X+
X+ fi = os_getfi(pdir,fn);
X+ if (fi->fi_datemagic != FI_MAGIC || (!(fi->fi_datevalid & FI_CDATE)))
X+ return(-1);
X+ bcopy(fi->fi_ctime,cdate,sizeof(fi->fi_ctime));
X+ return(noErr);
X+ }
X+
X+ OSGetMDate(pdir,fn,mdate,udate)
X+ IDirP pdir;
X+ char *fn;
X+ time_t *mdate;
X+ time_t *udate;
X+ {
X+ FileInfo *fi;
X+
X+ fi = os_getfi(pdir,fn);
X+ if (fi->fi_datemagic != FI_MAGIC || (!(fi->fi_datevalid & FI_MDATE)))
X+ return(-1);
X+ bcopy(fi->fi_mtime,mdate,sizeof(fi->fi_mtime));
X+ bcopy(fi->fi_utime,udate,sizeof(fi->fi_utime));
X+ return(noErr);
X+ }
X+ #endif USE_MAC_DATES
X
X /*
X * Establish the mac file name after a os_move
X*** README.orig Thu Jun 13 21:12:40 1991
X--- README Thu Jun 13 21:12:59 1991
X***************
X*** 3,9 ****
X (For use with AppleTalk/Ethernet bridge)
X
X o RELEASE NOTES
X! o CAP Distribution 6.0, Patch Level 26, June 1991
X
X Introduction
X ------------
X--- 3,9 ----
X (For use with AppleTalk/Ethernet bridge)
X
X o RELEASE NOTES
X! o CAP Distribution 6.0, Patch Level 27, June 1991
X
X Introduction
X ------------
END_OF_FILE
if test 7969 -ne `wc -c <'cap60.patch027'`; then
echo shar: \"'cap60.patch027'\" unpacked with wrong size!
fi
# end of 'cap60.patch027'
fi
echo shar: End of shell archive.
exit 0