Manually detect OpenSSL as submit config
[buildfarm-client.git] / run_build.pl
index e4d833ee582f26d68703b7ceec84deed0493aa5a..fae95ba1cc965bfcae206bcfefae83f890e494dd 100755 (executable)
@@ -126,7 +126,7 @@ if ($skip_steps =~ /\S/)
 $only_steps ||= "";
 if ($only_steps =~ /\S/)
 {
-    %only_steps = map {$_ => 1} split(/\s+/,$only_steps);
+    %only_steps = map {$_ => 1} split(/(\s+|[:,])/,$only_steps);
 }
 
 # Currently only specifying a branch is actually used.
@@ -194,7 +194,6 @@ if (ref($force_every) eq 'HASH')
     $force_every = $force_every->{$branch} || $force_every->{default};
 }
 
-my $config_opts = $EximBuild::conf{config_opts};
 my $scm = new EximBuild::SCM \%EximBuild::conf;
 
 my $buildport;
@@ -692,6 +691,7 @@ usage: $0 [options] [branch]
   --test                    = short for --nosend --nostatus --verbose --force
   --skip-steps=list         = skip certain steps
   --only-steps=list         = only do certain steps, not allowed with skip-steps
+                              lists can be comma, colon, or space separated
 
 Default branch is HEAD. Usually only the --config option should be necessary.
 
@@ -1057,19 +1057,8 @@ sub make_ecpg_check
 
 sub configure
 {
-
-    my @quoted_opts;
-    foreach my $c_opt (@$config_opts)
-    {
-        if ($c_opt =~ /['"]/)
-        {
-            push(@quoted_opts,$c_opt);
-        }
-        else
-        {
-            push(@quoted_opts,"'$c_opt'");
-        }
-    }
+    return unless step_wanted('configure');
+    print time_str(),"creating configuration ...\n" if $verbose;
 
     my $env = $EximBuild::conf{makefile_set};
     my $add = $EximBuild::conf{makefile_add};
@@ -1143,6 +1132,17 @@ sub configure
                 echo "Contents of Local/Makefile:"
                 egrep '^[^#]' $local_conf `;
         push @confout, @tmp;
+        # Build the config_opts array to send to the server
+        chomp @tmp;
+        my @config_opts = grep s/(?:LOOKUP_|EXPERIMENTAL_|USE_)(\S+)=.*/$1/,
+                          @tmp;
+        push @config_opts, grep s/^(?:EXIM_)(PERL|PYTHON)=.*/$1/,
+                           @tmp;
+        # OpenSSL doesn't have a specific USE flag
+        push @config_opts, grep s/^(TLS_LIBS.*-l(ssl|crypto)).*/OPENSSL/,
+                           @tmp;
+        $EximBuild::conf{config_opts} = \@config_opts;
+        
         # Does not matter what the Exim version is, as long as it is valid.
         my $exim_ver = $EximBuild::conf{exim_test_version} || '4.82';
         `cd $exim