fae7c94
commit 9f81f10b0caf6dfc49c4b7ceb7902f45d37b532a (HEAD -> master, origin/master, origin/HEAD)
fae7c94
Author: Frank Ch. Eigler <fche@redhat.com>
fae7c94
Date:   Fri Oct 20 10:01:58 2017 -0400
fae7c94
fae7c94
    rhbz1504009: let dtrace -G -o /dev/null run, as in autoconf
fae7c94
    
fae7c94
    commit c245153ca193c471a8c broke the ability of dtrace to be tested in
fae7c94
    autoconf "-G -o /dev/null" usage, because its output file name was too
fae7c94
    simple a function of the input name, and normal users can't write to
fae7c94
    /dev/null.dtrace-temp.c .  Now we back down to mkstemp, like before,
fae7c94
    upon a failure of the simple concatenated name.
fae7c94
fae7c94
diff --git a/dtrace.in b/dtrace.in
fae7c94
index 2e2e002a5c56..25efc253b708 100644
fae7c94
--- a/dtrace.in
fae7c94
+++ b/dtrace.in
fae7c94
@@ -410,8 +410,12 @@ from tempfile import mkstemp
fae7c94
         else:
fae7c94
             print("header: " + fname)
fae7c94
 
fae7c94
-        fname = filename + ".dtrace-temp.c"
fae7c94
-        fdesc = open(fname, mode='w')
fae7c94
+        try: # for reproducible-builds purposes, prefer a fixed path name pattern
fae7c94
+            fname = filename + ".dtrace-temp.c"
fae7c94
+            fdesc = open(fname, mode='w')
fae7c94
+        except: # but that doesn't work for  -o /dev/null - see rhbz1504009
fae7c94
+            (ignore,fname) = mkstemp(suffix=".c")
fae7c94
+            fdesc = open(fname, mode='w')
fae7c94
         providers.semaphore_write(fdesc)
fae7c94
         fdesc.close()
fae7c94
         cc1 = os.environ.get("CC", "gcc")
fae7c94
diff --git a/testsuite/systemtap.base/dtrace.exp b/testsuite/systemtap.base/dtrace.exp
fae7c94
index fa6b3ec3f6d3..7c60f09d70b8 100644
fae7c94
--- a/testsuite/systemtap.base/dtrace.exp
fae7c94
+++ b/testsuite/systemtap.base/dtrace.exp
fae7c94
@@ -83,6 +83,13 @@ if {[file exists /tmp/XXX.o]} then {
fae7c94
 }
fae7c94
 exec rm -f /tmp/XXX.o
fae7c94
 
fae7c94
+verbose -log "$dtrace -G -s $dpath -o /dev/null"
fae7c94
+if [as_non_root "$python $dtrace -G -s $dpath -o /dev/null"] {
fae7c94
+    fail "$test -G -o /dev/null"
fae7c94
+} else {
fae7c94
+    pass "$test -G -o /dev/null"
fae7c94
+}
fae7c94
+
fae7c94
 verbose -log "$dtrace -G -s $dpath -o /tmp/XXX"
fae7c94
 catch {exec $python $dtrace -G -s $dpath -o /tmp/XXX} res
fae7c94
 if {[file exists /tmp/XXX]} then {