[tor-commits] [rbm/master] Bug 34320: Set TMPDIR when running scripts

gk at torproject.org gk at torproject.org
Sun Jun 21 19:35:14 UTC 2020


commit c50d8e22c4fcddc4ed567815b1b0135419c2a53c
Author: Nicolas Vigier <boklm at torproject.org>
Date:   Fri May 29 20:34:23 2020 +0200

    Bug 34320: Set TMPDIR when running scripts
---
 doc/rbm_config.asc | 3 ++-
 lib/RBM.pm         | 5 +++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/doc/rbm_config.asc b/doc/rbm_config.asc
index 1935cd3..43feb9a 100644
--- a/doc/rbm_config.asc
+++ b/doc/rbm_config.asc
@@ -139,7 +139,8 @@ tmp_dir::
 rbm_tmp_dir::
         A directory created inside +tmp_dir+ using +File::Temp+, that
         you can use to store temporary files. This directory is removed
-        automatically when rbm exits.
+        automatically when rbm exits. When running scripts, the TMPDIR
+        environment variable is also set to this directory.
 
 output_dir::
         The directory where output files (tarballs, spec files or
diff --git a/lib/RBM.pm b/lib/RBM.pm
index 7cc9e24..b9ad1ad 100644
--- a/lib/RBM.pm
+++ b/lib/RBM.pm
@@ -461,8 +461,9 @@ sub run_script {
     my ($project, $cmd, $f) = @_;
     $f //= \&capture_exec;
     my @res;
+    local $ENV{TMPDIR} = project_config($project, 'rbm_tmp_dir');
     if ($cmd =~ m/^#/) {
-        my (undef, $tmp) = File::Temp::tempfile(DIR => get_tmp_dir($project));
+        my (undef, $tmp) = File::Temp::tempfile(DIR => $ENV{TMPDIR});
         path($tmp)->spew_utf8($cmd);
         chmod 0700, $tmp;
         @res = $f->($tmp);
@@ -1146,7 +1147,7 @@ sub build_run {
         foreach my $s (@scripts) {
             my $cmd = $scripts_root{$s} ? project_config($project, 'suexec',
                 { suexec_cmd => "$srcdir/$s" }) : "$srcdir/$s";
-            if (system_log($build_log, $cmd) != 0) {
+            if (run_script($project, $cmd, sub { system_log($build_log, @_) }) != 0) {
                 $error = "Error running $script_name";
                 if (project_config($project, 'debug', $options)) {
                     print STDERR $error, "\nOpening debug shell\n";



More information about the tor-commits mailing list