diff --git a/dejagnu.changes b/dejagnu.changes index 614096e..106c979 100644 --- a/dejagnu.changes +++ b/dejagnu.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Jun 30 13:28:31 UTC 2021 - Andreas Schwab + +- testsuite-legacy.patch: support deprecated legacy uses of dejagnu + ------------------------------------------------------------------- Mon Jun 21 08:10:02 UTC 2021 - Andreas Schwab diff --git a/dejagnu.spec b/dejagnu.spec index b8bfa69..66f25b1 100644 --- a/dejagnu.spec +++ b/dejagnu.spec @@ -27,6 +27,7 @@ Source0: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.gz Source1: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.gz.sig Source2: https://savannah.gnu.org/project/release-gpgkeys.php?group=dejagnu&download=1#/%{name}.keyring Source3: site.exp +Patch0: testsuite-legacy.patch BuildRequires: expect BuildRequires: fdupes BuildRequires: gcc-c++ @@ -65,6 +66,7 @@ suites themselves. %prep %setup -q +%patch0 -p1 %build # 49078@debbugs.gnu.org: bug in Expect 5.45.4 triggers a testsuite failure diff --git a/testsuite-legacy.patch b/testsuite-legacy.patch new file mode 100644 index 0000000..bdba334 --- /dev/null +++ b/testsuite-legacy.patch @@ -0,0 +1,50 @@ +From: Jacob Bachmeyer +Subject: bug#49250: dejagnu 1.6.3 breaks automake 1.16.3 testsuite +Date: Tue, 29 Jun 2021 23:49:09 -0500 + +The Automake tests are using a legacy layout that does not meet a +long-documented requirement. + +The DejaGnu manual has for years (including all available revision +history) stated that a DejaGnu testsuite is required to be in a +directory tree named "testsuite" at its root. Previous versions of +DejaGnu did not actually care, but this led to an ambiguity that made +integrating DejaGnu with non-recursive Automake build systems very +difficult. This caused significant difficulties with DejaGnu's own +testsuite, and fixing it was needed to actually run the DejaGnu +testsuite properly. + +The simple fix is to move the DejaGnu testsuites in the Automake test +cases into "testsuite" directories, but this causes the tests to fail +with older versions of DejaGnu. This broken legacy case is deprecated +in 1.6.3 but still supposed to be supported, even though the manual has +always said that DejaGnu testsuites are required to be in testsuite/ +directories. + +The code that detects this legacy case was written to match conditions +observed with DejaGnu's own testsuite, with an older version of Automake +in use at that time. As a result, that code branch fails to catch the +situations in the Automake 1.16.3 testsuite and DejaGnu falls back to a +"deep legacy" mode in which some features do not work. One of the +features that does not work in this mode is limiting testing to a single +tool at a time; this appears to cause most of the failures. + + +An experimental patch is attached. + + + +-- Jacob + +diff -urN -x '*~' dejagnu-1.6.3/runtest.exp dejagnu-1.6.3-patch/runtest.exp +--- dejagnu-1.6.3/runtest.exp 2021-06-16 21:15:25.000000000 -0500 ++++ dejagnu-1.6.3-patch/runtest.exp 2021-06-29 21:41:28.735667904 -0500 +@@ -741,7 +741,7 @@ + set testsuitedir $base_dir + set testbuilddir $base_dir + } else { +- if { $testsuitedir eq "testsuite" && $srcdir eq "." && $objdir eq "." } { ++ if { $testsuitedir eq "testsuite" && $testbuilddir eq "testsuite" } { + # Broken legacy case -- testsuite not actually in testsuite/ + # Produce a warning, but continue. + send_error "WARNING: testsuite is not in a testsuite/ directory.\n"