Add a patch to fix the notorious "jakarta-tomcat" bug. This bug

came to the fore in checkout mode when a file "files,v" in the
repository was manually changed into a directory "files".

With this patch, CVSup will still complain that it cannot delete
"files" because the directory is not empty.  However, it is now a
warning rather than a fatal error, and the update will run to
completion.  The warning will happen only once.  After emitting
the warning, CVSup will fix the damage in the checkouts file to
eliminate the problem.  On subsequent updates everything will be
OK and no more warnings will occur.

I have bumped PORTREVISION to 1, and added "p1" to the end of the
version number printed by CVSup.

PR:		misc/27495
This commit is contained in:
John Polstra
2001-05-27 00:03:48 +00:00
parent e158603086
commit 066d2a313d
6 changed files with 134 additions and 0 deletions

View File

@@ -6,6 +6,7 @@
#
PORTVERSION= 16.1a
PORTREVISION= 1
CATEGORIES= net
MASTER_SITES= ftp://ftp3.freebsd.org/pub/FreeBSD/development/CVSup/snapshots/ \
ftp://ftp.freebsd.org/pub/FreeBSD/development/CVSup/snapshots/ \

View File

@@ -0,0 +1,51 @@
Index: client/src/Updater.m3
===================================================================
RCS file: /home/cvsupcvs/cvsup/client/src/Updater.m3,v
retrieving revision 1.97
diff -u -r1.97 Updater.m3
--- client/src/Updater.m3 2001/04/15 21:53:13 1.97
+++ client/src/Updater.m3 2001/05/26 22:58:36
@@ -733,7 +733,7 @@
IF SupFileRec.Option.KeepBadFiles IN sfr.options THEN
Warn(self, "Bad version saved in " & tempPath);
ELSE
- DeleteFile(tempPath);
+ DeleteFile(self, tempPath);
END;
END;
END UpdateFile;
@@ -1231,7 +1231,7 @@
IF NOT SupFileRec.Option.CheckoutMode IN sfr.options THEN
(* Try the attic. *)
WITH atticName = SupMisc.AtticName(destPath) DO
- DeleteFile(atticName);
+ DeleteFile(self, atticName);
(* We always delete the Attic directory when it becomes empty.
FIXME - Is that the right thing to do?. *)
TRY
@@ -1239,7 +1239,7 @@
EXCEPT OSError.E => (* Ignore. *) END;
END;
END;
- DeleteFile(destPath);
+ DeleteFile(self, destPath);
IF SupFileRec.Option.CheckoutMode IN sfr.options
OR NOT self.proto.v.dirsAreExplicit THEN
(* Delete the directory automatically if it is now empty. *)
@@ -1280,14 +1280,13 @@
END;
END MakeDirectories;
-PROCEDURE DeleteFile(path: Pathname.T)
- RAISES {Error} =
+PROCEDURE DeleteFile(self: T; path: Pathname.T) =
BEGIN
TRY
FileAttr.Delete(path);
EXCEPT OSError.E(l) =>
IF l.head # EnoentAtom THEN
- RAISE Error("Cannot delete \"" & path & "\": " &
+ Warn(self, "Cannot delete \"" & path & "\": " &
ErrMsg.StrError(l));
END;
END;

View File

@@ -0,0 +1,15 @@
--- quake/cvsup.quake.orig Sun Apr 15 16:22:06 2001
+++ quake/cvsup.quake Sat May 26 16:46:05 2001
@@ -53,10 +53,10 @@
> tempname in
write("MODULE Version;", CR, CR, "BEGIN", CR, " Name := ")
end
- if equal("$Name: SNAP_16_1a $", "$" & "Name: $")
+ if equal("$Name: SNAP_16_1ap1 $", "$" & "Name: $")
cmd = "date -u +'\"U_%Y_%m_%d_%H_%M_%S\";'"
else
- cmd = "echo '$Name: SNAP_16_1a $' | awk '{print \"\\\"\" $2 \"\\\";\";}'"
+ cmd = "echo '$Name: SNAP_16_1ap1 $' | awk '{print \"\\\"\" $2 \"\\\";\";}'"
end
cmd = cmd & " >> " & tempname
if equal(M3_VARIANT, "PM3")

View File

@@ -7,6 +7,7 @@
PORTNAME= cvsup
PORTVERSION?= 16.1
PORTREVISION?= 1
CATEGORIES= net devel
MASTER_SITES?= ftp://ftp3.freebsd.org/pub/FreeBSD/development/CVSup/sources/ \
ftp://ftp.freebsd.org/pub/FreeBSD/development/CVSup/sources/ \

51
net/cvsup/files/patch-ac Normal file
View File

@@ -0,0 +1,51 @@
Index: client/src/Updater.m3
===================================================================
RCS file: /home/cvsupcvs/cvsup/client/src/Updater.m3,v
retrieving revision 1.91
diff -u -r1.91 Updater.m3
--- client/src/Updater.m3 1999/08/13 19:51:29 1.91
+++ client/src/Updater.m3 2001/05/26 23:11:39
@@ -712,7 +712,7 @@
IF SupFileRec.Option.KeepBadFiles IN sfr.options THEN
Warn(self, "Bad version saved in " & tempPath);
ELSE
- DeleteFile(tempPath);
+ DeleteFile(self, tempPath);
END;
END;
END UpdateFile;
@@ -1188,7 +1188,7 @@
IF NOT SupFileRec.Option.CheckoutMode IN sfr.options THEN
(* Try the attic. *)
WITH atticName = SupMisc.AtticName(destPath) DO
- DeleteFile(atticName);
+ DeleteFile(self, atticName);
(* We always delete the Attic directory when it becomes empty.
FIXME - Is that the right thing to do?. *)
TRY
@@ -1196,7 +1196,7 @@
EXCEPT OSError.E => (* Ignore. *) END;
END;
END;
- DeleteFile(destPath);
+ DeleteFile(self, destPath);
IF SupFileRec.Option.CheckoutMode IN sfr.options
OR NOT self.proto.v.dirsAreExplicit THEN
(* Delete the directory automatically if it is now empty. *)
@@ -1231,14 +1231,13 @@
END;
END MakeDirectories;
-PROCEDURE DeleteFile(path: Pathname.T)
- RAISES {Error} =
+PROCEDURE DeleteFile(self: T; path: Pathname.T) =
BEGIN
TRY
FileAttr.Delete(path);
EXCEPT OSError.E(l) =>
IF l.head # EnoentAtom THEN
- RAISE Error("Cannot delete \"" & path & "\": " &
+ Warn(self, "Cannot delete \"" & path & "\": " &
ErrMsg.StrError(l));
END;
END;

15
net/cvsup/files/patch-ad Normal file
View File

@@ -0,0 +1,15 @@
--- quake/cvsup.quake.orig Sat Jan 16 15:47:58 1999
+++ quake/cvsup.quake Sat May 26 16:21:51 2001
@@ -50,10 +50,10 @@
> tempname in
write("MODULE Version;", CR, CR, "BEGIN", CR, " Name := ")
end
- if equal("$Name: REL_16_1 $", "$" & "Name: $")
+ if equal("$Name: REL_16_1p1 $", "$" & "Name: $")
cmd = "date -u +'\"U_%Y_%m_%d_%H_%M_%S\";'"
else
- cmd = "echo '$Name: REL_16_1 $' | awk '{print \"\\\"\" $2 \"\\\"\";}'"
+ cmd = "echo '$Name: REL_16_1p1 $' | awk '{print \"\\\"\" $2 \"\\\"\";}'"
end
cmd = cmd & " >> " & tempname
if defined("PM3")