summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormichel_j <michel_j@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-08-30 17:15:23 +0000
committermichel_j <michel_j@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-08-30 17:15:23 +0000
commitea9284eadb1113437d8413145e9efde3752d8285 (patch)
tree521ec755df4c4cf518a04e1b479cccedae67c5ac
parent8cd81738fc9a2043460ac772657103ede42cf65a (diff)
downloadATCD-ea9284eadb1113437d8413145e9efde3752d8285.tar.gz
Sat Aug 30 12:10:00 2003 Justin Michel <michel_j@ociweb.com>
-rw-r--r--ChangeLog13
-rwxr-xr-xbin/create_ace_build.pl27
2 files changed, 36 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 01d1e514f6a..9cd195d5950 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+Sat Aug 30 12:10:00 2003 Justin Michel <michel_j@ociweb.com>
+
+ * bin/create_ace_build.pl:
+
+ Changed to continue linking even when some source files can't
+ be found. It appears that the perl link() function doesn't work
+ correctly on Windows Server 2003. A little investigating shows that
+ several other file functions have problems with long path names on
+ that os unless you use the Unicode versions. I verified this with a
+ simple c++ program, that tried to use _fullpath() and CreateHardLink().
+ Currently the only problems are in the Notify service performance tests,
+ because these have extremely long path names.
+
Fri Aug 29 15:18:36 UTC 2003 Don Hinton <dhinton@dresystems.com>
* apps/JAWS/clients/Blobby/blobby.mpc:
diff --git a/bin/create_ace_build.pl b/bin/create_ace_build.pl
index 5d033fc87c2..199f3242ad1 100755
--- a/bin/create_ace_build.pl
+++ b/bin/create_ace_build.pl
@@ -36,6 +36,8 @@ use File::Find ();
use File::Basename;
use FileHandle;
use File::stat;
+use File::Copy;
+
$usage = "usage: $0 -? | [-a] [-d <directory mode>] [-v] [-nompc] <build name>\n";
$directory_mode = 0777; #### Will be modified by umask, also.
@@ -85,10 +87,8 @@ print "Creating or updating builds in $starting_dir\n";
sub backup_and_copy_changed {
my($real, $linked) = @_;
+
my($status_real) = stat($real);
- if (! $status_real) {
- die "ERROR: is_changed() real $real not exist.\n";
- }
my($status_linked) = stat($linked);
if ($status_linked->mtime > $status_real->mtime) {
@@ -107,7 +107,7 @@ sub backup_and_copy_changed {
}
return 0;
}
-
+
sub cab_link {
my($real,$linked,$build_regex) = @_;
@@ -118,6 +118,9 @@ sub cab_link {
push(@nlinks, $fixed);
my($curdir) = "$starting_dir/" . dirname($linked);
+ if (! -d $curdir) {
+ die "ERROR: Dir not found: $curdir\n";
+ }
$status = chdir($curdir);
if (! $status) {
die "ERROR: cab_link() chdir " . $curdir . " failed.\n";
@@ -125,6 +128,17 @@ sub cab_link {
my($base_linked) = basename($linked);
+ if (! -e $real) {
+ ## This should never happen, but there appears to be a bug
+ ## with the underlying win32 apis on Windows Server 2003.
+ ## Long paths will cause an error which perl will ignore.
+ ## Unicode versions of the apis seem to work fine.
+ ## To experiment try Win32 _fullpath() and CreateHardLink with
+ ## long paths.
+ print "ERROR : Skipping $real.\n";
+ return;
+ }
+
if (-e $base_linked) {
if (! backup_and_copy_changed($real, $base_linked)) {
return;
@@ -133,6 +147,11 @@ sub cab_link {
print "link $real $linked\n" if $verbose;
$status = link ($real, $base_linked);
+ if (! $status) {
+ ## Once again, this happens for long paths on Win2003
+ print "ERROR: Can't link $real\n";
+ return;
+ }
chdir($starting_dir);
} else {
print "$symlink $real $linked\n" if $verbose;