libgeos / geos

Geometry Engine, Open Source
https://libgeos.org
GNU Lesser General Public License v2.1
1.22k stars 363 forks source link

test_docs fails with doxygen 1.12.0 #1153

Closed sebastic closed 2 months ago

sebastic commented 2 months ago

As reported in Debian Bug #1080182:

Hi! I have rebuilt a few packages: https://salsa.debian.org/debian/doxygen/-/wikis/ratt_doxygen_1.12.0+ds-1-partial with the upcoming doxygen 1.12.0+ds-1 I am preparing here: https://salsa.debian.org/debian/doxygen/-/wikis/home

Of 572 tested packages, only 3 seem to fail the build due to doxygen, and one of those is this one.

The failure seem to happen here:

The following tests FAILED:
      467 - test_docs (Failed)

In any case I attach the full build log.

P.S. since just a handful of packages break, I plan to upload the newer doxygen to unstable in a couple of weeks, but we can negotiate!

geos_3.12.2-1.xz

From the buildlog:

        Start 467: test_docs

467: Test command: /usr/bin/cmake "-D" "DOXYGEN_LOGFILE="/<<PKGBUILDDIR>>/build/doxygen/doxygen.log"" "-P" "/<<PKGBUILDDIR>>/build/doxygen/check_doxygen_errors.cmake"
467: Working Directory: /<<PKGBUILDDIR>>/build/doxygen
467: Test timeout computed to be: 1500
467: -- Doxygen issued 2367 warning(s), see /<<PKGBUILDDIR>>/build/doxygen/doxygen.log
467: CMake Error at check_doxygen_errors.cmake:44 (message):
467:   /<<PKGBUILDDIR>>/include/geos/math/DD.h:75: warning: found
467:   </blockquote> tag without matching <blockquote>
467: 
467: 
464/467 Test #467: test_docs ..................................................***Failed    0.05 sec
-- Doxygen issued 2367 warning(s), see /<<PKGBUILDDIR>>/build/doxygen/doxygen.log
CMake Error at check_doxygen_errors.cmake:44 (message):
  /<<PKGBUILDDIR>>/include/geos/math/DD.h:75: warning: found
  </blockquote> tag without matching <blockquote>
pramsey commented 2 months ago

When I grep the source for blockquote I find exactly nothing. Seems really odd.

sebastic commented 2 months ago

That's what I noticed too, the line it references is empty:

 70  * <p>
 71  * This implementation uses algorithms originally designed variously by
 72  * Knuth, Kahan, Dekker, and Linnainmaa.
 73  * Douglas Priest developed the first C implementation of these techniques.
 74  * Other more recent C++ implementation are due to Keith M. Briggs and David Bailey et al.
 75  *
 76  * <h3>References</h3>
 77  * <ul>
 78  * <li>Priest, D., <i>Algorithms for Arbitrary Precision Floating Point Arithmetic</i>,
 79  * in P. Kornerup and D. Matula, Eds., Proc. 10th Symposium on Computer Arithmetic,
 80  * IEEE Computer Society Press, Los Alamitos, Calif., 1991.
 81  * <li>Yozo Hida, Xiaoye S. Li and David H. Bailey,
 82  * <i>Quad-Double Arithmetic: Algorithms, Implementation, and Application</i>,
 83  * manuscript, Oct 2000; Lawrence Berkeley National Laboratory Report BNL-46996.
 84  * <li>David Bailey, <i>High Precision Software Directory</i>;
 85  * <tt>http://crd.lbl.gov/~dhbailey/mpdist/index.html</tt>
 86  * </ul>

Perhaps it's stricter about missing closing tags like the <p> & <li>. But I'd expect it to complain about include/geos/algorithm/InteriorPointArea.h too, which has similar markup in its comments.

Testing with the doxygen 1.20.0 package from the Salsa CI artifacts shows that it's indeed choking on the empty lines. Removing the empty line 75 moves the error to the next empty line and so forth.

I think we should just ignore this warning:

--- geos-3.13.0~beta1.orig/doxygen/check_doxygen_errors.cmake
+++ geos-3.13.0~beta1/doxygen/check_doxygen_errors.cmake
@@ -32,7 +32,7 @@ if(EXISTS "${DOXYGEN_LOGFILE}")

   foreach(LINE ${LOGFILE})
     string(REGEX MATCH
-      ".*(not documented|ignoring unsupported tag).*" IGNORE ${LINE})
+      ".*(not documented|ignoring unsupported tag|tag without matching).*" IGNORE ${LINE})
     if("${IGNORE}" STREQUAL "")
       list(APPEND ERRORS ${LINE})
     endif()
pramsey commented 2 months ago

Good plan, I have patched that suggestion back to 3.10.