From 40781a720d6679aa4b84829b022835363dbefd39 Mon Sep 17 00:00:00 2001 From: Vadim Raskhozhev Date: May 20 2019 18:27:24 +0000 Subject: spectool.in: a workaround against https://pagure.io/rpmdevtools/issue/38 and https://bugzilla.redhat.com/show_bug.cgi?id=1711953 --- diff --git a/spectool.in b/spectool.in index 6f7499c..c55c372 100644 --- a/spectool.in +++ b/spectool.in @@ -307,6 +307,20 @@ sub show_version { } sub open_specfile { + # An ugly krutch to address https://pagure.io/rpmdevtools/issue/38 and https://bugzilla.redhat.com/show_bug.cgi?id=1711953 + my ($parsedspec_fh, $parsedspec_filename) = File::Temp::tempfile ( 'rpmspec-P_XXXXXXXXXX', DIR => $tmpdir ); + # We can transparently handle - as a spec file name, but rpmspec(1) cannot. Let's help him + my $rpmspec_p = "rpmspec -P " . (($specfile eq "-") ? "/dev/stdin" : $specfile); + my $spec = `$rpmspec_p`; + if ($? == 0) { + print $parsedspec_fh $spec; + $parsedspec_fh->close (); + } else { + die ("Can't parse '$specfile': $!"); + } + debug "parsed spec filename: $parsedspec_filename\n"; + + $specfile = $parsedspec_filename; $specfile_fh = new FileHandle; $specfile_fh->open ($specfile) or die ("Can't open '$specfile': $!");