[PATCH] testbot/build: Rename the build directories to allow for more than one project.

Francois Gouget fgouget at codeweavers.com
Thu Aug 23 03:48:43 CDT 2018


The new naming scheme is 'project-build', thus avoiding name collisions
in case we need build trees for other projects besides Wine.
The build now matches the name of the corresponding test reports for
Windows builds too; that is exe32 and exe64.

Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
---
 testbot/bin/build/Build.pl        | 26 +++++++++----------
 testbot/bin/build/Reconfig.pl     | 42 +++++++++++++++++++++----------
 testbot/bin/build/WineReconfig.pl | 16 +++++++++---
 testbot/bin/build/WineTest.pl     |  2 +-
 testbot/lib/Build/Utils.pm        |  6 ++---
 5 files changed, 58 insertions(+), 34 deletions(-)

diff --git a/testbot/bin/build/Build.pl b/testbot/bin/build/Build.pl
index 7f94c8595..7a268db5c 100755
--- a/testbot/bin/build/Build.pl
+++ b/testbot/bin/build/Build.pl
@@ -58,11 +58,11 @@ sub BuildNative()
 {
   InfoMsg "\nRebuilding native tools\n";
   my $CPUCount = GetCPUCount();
-  system("cd '$DataDir/build-native' && set -x && ".
+  system("cd '$DataDir/wine-native' && set -x && ".
          "time make -j$CPUCount __tooldeps__");
   if ($? != 0)
   {
-    LogMsg "Rebuild of native tools failed\n";
+    LogMsg "The Wine native tools build failed\n";
     return !1;
   }
 
@@ -71,9 +71,9 @@ sub BuildNative()
 
 sub BuildTestExecutables($$$)
 {
-  my ($Targets, $Impacts, $Bits) = @_;
+  my ($Targets, $Impacts, $Build) = @_;
 
-  return 1 if (!$Targets->{"exe$Bits"});
+  return 1 if (!$Targets->{$Build});
 
   my (@BuildDirs, @TestExes);
   foreach my $TestInfo (values %{$Impacts->{Tests}})
@@ -81,26 +81,26 @@ sub BuildTestExecutables($$$)
     push @BuildDirs, $TestInfo->{Path};
     my $TestExe = "$TestInfo->{Path}/$TestInfo->{ExeBase}.exe";
     push @TestExes, $TestExe;
-    unlink("$DataDir/build-mingw$Bits/$TestExe"); # Ignore errors
+    unlink("$DataDir/wine-$Build/$TestExe"); # Ignore errors
   }
 
-  InfoMsg "\nBuilding the $Bits-bit test executable(s)\n";
+  InfoMsg "\nBuilding the $Build Wine test executable(s)\n";
   my $CPUCount = GetCPUCount();
-  system("cd '$DataDir/build-mingw$Bits' && set -x && ".
+  system("cd '$DataDir/wine-$Build' && set -x && ".
          "time make -j$CPUCount ". join(" ", sort @BuildDirs));
   if ($? != 0)
   {
-    LogMsg "Rebuild of $Bits-bit crossbuild failed\n";
+    LogMsg "The $Build Wine crossbuild failed\n";
     return !1;
   }
 
   my $Success = 1;
   foreach my $TestExe (@TestExes)
   {
-    if (!-f "$DataDir/build-mingw$Bits/$TestExe")
+    if (!-f "$DataDir/wine-$Build/$TestExe")
     {
-      LogMsg "Make didn't produce a $TestExe file\n";
-      $Success = undef;
+      LogMsg "Make didn't produce the $Build $TestExe file\n";
+      $Success = !1;
     }
   }
 
@@ -223,8 +223,8 @@ my $Impacts = ApplyPatch("wine", $PatchFile);
 
 if (!$Impacts or
     ($Impacts->{WineBuild} and !BuildNative()) or
-    !BuildTestExecutables($Targets, $Impacts, 32) or
-    !BuildTestExecutables($Targets, $Impacts, 64))
+    !BuildTestExecutables($Targets, $Impacts, "exe32") or
+    !BuildTestExecutables($Targets, $Impacts, "exe64"))
 {
   exit(1);
 }
diff --git a/testbot/bin/build/Reconfig.pl b/testbot/bin/build/Reconfig.pl
index 36748d66e..f2d63fa24 100755
--- a/testbot/bin/build/Reconfig.pl
+++ b/testbot/bin/build/Reconfig.pl
@@ -52,19 +52,27 @@ sub BuildNative($)
 {
   my ($NoRm) = @_;
 
-  mkdir "$DataDir/build-native" if (! -d "$DataDir/build-native");
+  # FIXME Temporary code to ensure compatibility during the transition
+  my $OldDir = "build-native";
+  if (-d "$DataDir/$OldDir" and !-d "$DataDir/wine-native")
+  {
+    rename("$DataDir/$OldDir", "$DataDir/wine-native");
+    # Add a symlink from compatibility with older server-side TestBot scripts
+    symlink("wine-native", "$DataDir/$OldDir");
+  }
+  mkdir "$DataDir/wine-native" if (!-d "$DataDir/wine-native");
 
   # Rebuild from scratch to make sure cruft will not accumulate
   InfoMsg "\nRebuilding native tools\n";
   my $CPUCount = GetCPUCount();
-  system("cd '$DataDir/build-native' && set -x && ".
+  system("cd '$DataDir/wine-native' && set -x && ".
          ($NoRm ? "" : "rm -rf * && ") .
          "time ../wine/configure --enable-win64 --without-x --without-freetype --disable-winetest && ".
          "time make -j$CPUCount __tooldeps__");
 
   if ($? != 0)
   {
-    LogMsg "Build native failed\n";
+    LogMsg "The Wine native tools build failed\n";
     return !1;
   }
 
@@ -73,22 +81,30 @@ sub BuildNative($)
 
 sub BuildCross($$$)
 {
-  my ($Targets, $NoRm, $Bits) = @_;
+  my ($Targets, $NoRm, $Build) = @_;
 
-  return 1 if (!$Targets->{"exe$Bits"});
-  mkdir "$DataDir/build-mingw$Bits" if (!-d "$DataDir/build-mingw$Bits");
+  return 1 if (!$Targets->{$Build});
+  # FIXME Temporary code to ensure compatibility during the transition
+  my $OldDir = $Build eq "exe32" ? "build-mingw32" : "build-mingw64";
+  if (-d "$DataDir/$OldDir" and !-d "$DataDir/wine-$Build")
+  {
+    rename("$DataDir/$OldDir", "$DataDir/wine-$Build");
+    # Add a symlink from compatibility with older server-side TestBot scripts
+    symlink("wine-$Build", "$DataDir/$OldDir");
+  }
+  mkdir "$DataDir/wine-$Build" if (!-d "$DataDir/wine-$Build");
 
   # Rebuild from scratch to make sure cruft will not accumulate
-  InfoMsg "\nRebuilding the $Bits-bit test executables\n";
+  InfoMsg "\nRebuilding the $Build Wine test executables\n";
   my $CPUCount = GetCPUCount();
-  my $Host = ($Bits == 64 ? "x86_64-w64-mingw32" : "i686-w64-mingw32");
-  system("cd '$DataDir/build-mingw$Bits' && set -x && ".
+  my $Host = ($Build eq "exe64" ? "x86_64-w64-mingw32" : "i686-w64-mingw32");
+  system("cd '$DataDir/wine-$Build' && set -x && ".
          ($NoRm ? "" : "rm -rf * && ") .
-         "time ../wine/configure --host=$Host --with-wine-tools=../build-native --without-x --without-freetype --disable-winetest && ".
+         "time ../wine/configure --host=$Host --with-wine-tools=../wine-native --without-x --without-freetype --disable-winetest && ".
          "time make -j$CPUCount buildtests");
   if ($? != 0)
   {
-    LogMsg "Build cross ($Bits bits) failed\n";
+    LogMsg "The $Build Wine crossbuild failed\n";
     return !1;
   }
 
@@ -100,8 +116,8 @@ sub UpdateWineBuilds($$)
   my ($Targets, $NoRm) = @_;
 
   return BuildNative($NoRm) &&
-         BuildCross($Targets, $NoRm, 32) &&
-         BuildCross($Targets, $NoRm, 64);
+         BuildCross($Targets, $NoRm, "exe32") &&
+         BuildCross($Targets, $NoRm, "exe64");
 }
 
 
diff --git a/testbot/bin/build/WineReconfig.pl b/testbot/bin/build/WineReconfig.pl
index b30ddd190..2416eebfa 100755
--- a/testbot/bin/build/WineReconfig.pl
+++ b/testbot/bin/build/WineReconfig.pl
@@ -50,19 +50,27 @@ sub BuildWine($$$$)
   my ($Targets, $NoRm, $Build, $Extras) = @_;
 
   return 1 if (!$Targets->{$Build});
-  mkdir "$DataDir/build-$Build" if (!-d "$DataDir/build-$Build");
+  # FIXME Temporary code to ensure compatibility during the transition
+  my $OldDir = "build-$Build";
+  if (-d "$DataDir/$OldDir" and !-d "$DataDir/wine-$Build")
+  {
+    rename("$DataDir/$OldDir", "$DataDir/wine-$Build");
+    # Add a symlink from compatibility with older server-side TestBot scripts
+    symlink("wine-$Build", "$DataDir/$OldDir");
+  }
+  mkdir "$DataDir/wine-$Build" if (!-d "$DataDir/wine-$Build");
 
   # If $NoRm is not set, rebuild from scratch to make sure cruft will not
   # accumulate
   InfoMsg "\nRebuilding the $Build Wine\n";
   my $CPUCount = GetCPUCount();
-  system("cd '$DataDir/build-$Build' && set -x && ".
+  system("cd '$DataDir/wine-$Build' && set -x && ".
          ($NoRm ? "" : "rm -rf * && ") .
          "time ../wine/configure $Extras && ".
          "time make -j$CPUCount");
   if ($? != 0)
   {
-    LogMsg "The $Build build failed\n";
+    LogMsg "The $Build Wine build failed\n";
     return !1;
   }
 
@@ -75,7 +83,7 @@ sub UpdateWineBuilds($$)
 
   return BuildWine($Targets, $NoRm, "win32", "") &&
          BuildWine($Targets, $NoRm, "wow64", "--enable-win64") &&
-         BuildWine($Targets, $NoRm, "wow32", "--with-wine64='$DataDir/build-wow64'");
+         BuildWine($Targets, $NoRm, "wow32", "--with-wine64='$DataDir/wine-wow64'");
 }
 
 
diff --git a/testbot/bin/build/WineTest.pl b/testbot/bin/build/WineTest.pl
index 9c264b485..9be73a42f 100755
--- a/testbot/bin/build/WineTest.pl
+++ b/testbot/bin/build/WineTest.pl
@@ -58,7 +58,7 @@ sub BuildWine($$)
 
   InfoMsg "\nRebuilding the $Build Wine\n";
   my $CPUCount = GetCPUCount();
-  system("cd '$DataDir/build-$Build' && set -x && ".
+  system("cd '$DataDir/wine-$Build' && set -x && ".
          "time make -j$CPUCount");
   if ($? != 0)
   {
diff --git a/testbot/lib/Build/Utils.pm b/testbot/lib/Build/Utils.pm
index 038c188f2..fd1b8467c 100644
--- a/testbot/lib/Build/Utils.pm
+++ b/testbot/lib/Build/Utils.pm
@@ -326,9 +326,9 @@ sub RunWine($$$)
 {
   my ($Build, $Cmd, $CmdArgs) = @_;
 
-  my $Magic = `cd '$DataDir/build-$Build' && file $Cmd`;
+  my $Magic = `cd '$DataDir/wine-$Build' && file $Cmd`;
   my $Wine = ($Magic =~ /ELF 64/ ? "./wine64" : "./wine");
-  return system("cd '$DataDir/build-$Build' && set -x && ".
+  return system("cd '$DataDir/wine-$Build' && set -x && ".
                 "time $Wine $Cmd $CmdArgs");
 }
 
@@ -354,7 +354,7 @@ sub CreateWinePrefix($$)
   {
     # Ensure the WinePrefix has been fully created and the registry files
     # saved before returning.
-    system("cd '$DataDir/build-$Build' && ./server/wineserver -w");
+    system("cd '$DataDir/wine-$Build' && ./server/wineserver -w");
   }
 
   return undef;
-- 
2.18.0




More information about the wine-devel mailing list