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