diff --git a/doxygen.spec b/doxygen.spec index e512ca09b0993d22cabd6608a34bebcdc9bf1d8e..e874df58b40a112d543d12e05fbf0014cb567935 100644 --- a/doxygen.spec +++ b/doxygen.spec @@ -3,12 +3,15 @@ Name: doxygen Epoch: 1 Version: 1.8.17 -Release: 2 +Release: 3 Summary: A documentation system for C/C++ License: GPL+ Url: http://www.doxygen.nl Source0: http://doxygen.nl/files/%{name}-%{version}.src.tar.gz Source1: doxywizard.desktop + +Patch1: test_suite_is_failing.patch + BuildRequires: python3 ImageMagick gcc-c++ gcc perl-interpreter BuildRequires: tex(dvips) tex(latex) tex(multirow.sty) tex(sectsty.sty) tex(tocloft.sty) BuildRequires: tex(xtab.sty) tex(import.sty) tex(tabu.sty) tex(appendix.sty) @@ -94,6 +97,9 @@ make tests -C %{BuildDir} %{_datadir}/icons/hicolor/*/apps/doxywizard.png %changelog +* Wed Dec 02 2020 shixuantong - 1.8.17-3 +- fix test suite fail + * Tue Dec 01 2020 shixuantong - 1.8.17-2 - add doxygen-help to provides and obsoletes diff --git a/test_suite_is_failing.patch b/test_suite_is_failing.patch new file mode 100644 index 0000000000000000000000000000000000000000..c2c53c5df3483f9b068f8580a716abf97043b065 --- /dev/null +++ b/test_suite_is_failing.patch @@ -0,0 +1,80 @@ +From cd9dee013dc749a10bbe019c350e0e62b6635795 Mon Sep 17 00:00:00 2001 +From: albert-github +Date: Wed, 1 Jan 2020 17:51:53 +0100 +Subject: [PATCH] issue #7464 1.8.17: test suite is failing + +On Windows the syntax with the command and arguments in one string worked but on *nix (and Cygwin) it didn't. +- changed calls to Popen to split command (see also: https://docs.python.org/3/library/subprocess.html). +- explicitly specify files to check for xhtml +- changed call to xmllint for xhtml and docbook (due to stdout overflow in some cases, we are not really interested in the, formatted, output of xmllint). +- in the update part a `read` was left, should have been removed. +--- + testing/runtests.py | 19 ++++++++++++------- + 1 file changed, 12 insertions(+), 7 deletions(-) + +diff --git a/testing/runtests.py b/testing/runtests.py +index a4118b865..10fe50214 100755 +--- a/testing/runtests.py ++++ b/testing/runtests.py +@@ -3,6 +3,7 @@ + from __future__ import print_function + import argparse, glob, itertools, re, shutil, os, sys + import subprocess ++import shlex + + config_reg = re.compile('.*\/\/\s*(?P\S+):\s*(?P.*)$') + +@@ -28,10 +29,10 @@ def xpopen(cmd, cmd1="",encoding='utf-8-sig', getStderr=False): + return os.popen(cmd).read() # Python 2 without encoding + else: + if (getStderr): +- proc = subprocess.run(cmd1,encoding=encoding,capture_output=True) # Python 3 with encoding +- return proc.stderr ++ proc = subprocess.Popen(shlex.split(cmd1),stdout=subprocess.PIPE,stderr=subprocess.PIPE,encoding=encoding) # Python 3 with encoding ++ return proc.stderr.read() + else: +- proc = subprocess.Popen(cmd,stdout=subprocess.PIPE,stderr=subprocess.PIPE,encoding=encoding) # Python 3 with encoding ++ proc = subprocess.Popen(shlex.split(cmd),stdout=subprocess.PIPE,stderr=subprocess.PIPE,encoding=encoding) # Python 3 with encoding + return proc.stdout.read() + + class Tester: +@@ -137,7 +138,7 @@ def prepare_test(self): + print('GENERATE_DOCBOOK=NO', file=f) + if (self.args.xhtml): + print('GENERATE_HTML=YES', file=f) +- # HTML_OUTPUT can also be set locally ++ # HTML_OUTPUT can also have been set locally + print('HTML_OUTPUT=%s/html' % self.test_out, file=f) + print('HTML_FILE_EXTENSION=.xhtml', file=f) + if (self.args.pdf): +@@ -184,7 +185,7 @@ def update_test(self,testmgr): + print('Non-existing file %s after \'check:\' statement' % check_file) + return + # convert output to canonical form +- data = xpopen('%s --format --noblanks --nowarning %s' % (self.args.xmllint,check_file)).read() ++ data = xpopen('%s --format --noblanks --nowarning %s' % (self.args.xmllint,check_file)) + if data: + # strip version + data = re.sub(r'xsd" version="[0-9.-]+"','xsd" version=""',data).rstrip('\n') +@@ -326,7 +327,7 @@ def perform_test(self,testmgr): + tests.append(glob.glob('%s/*.xml' % (docbook_output))) + tests.append(glob.glob('%s/*/*/*.xml' % (docbook_output))) + tests = ' '.join(list(itertools.chain.from_iterable(tests))).replace(self.args.outputdir +'/','').replace('\\','/') +- exe_string = '%s --nonet --postvalid %s' % (self.args.xmllint,tests) ++ exe_string = '%s --noout --nonet --postvalid %s' % (self.args.xmllint,tests) + exe_string1 = exe_string + exe_string += ' %s' % (redirx) + exe_string += ' %s more "%s/temp"' % (separ,docbook_output) +@@ -346,7 +347,11 @@ def perform_test(self,testmgr): + redirx=' 2> %s/temp >nul:'%html_output + else: + redirx='2>%s/temp >/dev/null'%html_output +- exe_string = '%s --path dtd --nonet --postvalid %s/*xhtml' % (self.args.xmllint,html_output) ++ check_file = [] ++ check_file.append(glob.glob('%s/*.xhtml' % (html_output))) ++ check_file.append(glob.glob('%s/*/*/*.xhtml' % (html_output))) ++ check_file = ' '.join(list(itertools.chain.from_iterable(check_file))).replace(self.args.outputdir +'/','').replace('\\','/') ++ exe_string = '%s --noout --path dtd --nonet --postvalid %s' % (self.args.xmllint,check_file) + exe_string1 = exe_string + exe_string += ' %s' % (redirx) + exe_string += ' %s more "%s/temp"' % (separ,html_output)