Doxygen changes breaks krb5 documentation build

Paolo Greppi paolo.greppi at libpf.com
Tue Sep 12 03:01:05 EDT 2023


Il 11/09/23 20:57, Sam Hartman ha scritto:
>>>>>> "Tianyu" == Tianyu Chen <sweetyfish at deepin.org> writes:
> 
> 
>      Tianyu> During a local rebuild of krb5, your package failed to
>      Tianyu> build.
> 
> So, I'm guessing this is related to the upgrade in Debian from doxygen
> 1.9.4 to 1.9.8.
> 
> The krb5 build process uses doxygen to generate an xml representation of
> the documentation from a bunch of C header files.  Then it uses a pile
> of python scripts which haven't seen much love since the days of python2
> to turn that documentation into rst, and then includes it in a sphinx
> document.
> 
> It expects all the doxygen to be in a file called krb5_8hin.xml.
> Unfortunately the new doxygen is breaking up the sources into a bunch of
> different files and including <member> elements to refer to them rather
> than <memberdef> elements including their definition.  And so the python
> doesn't find the definitions of the documented functions and the build
> fails because not many rst files are generated.
> 
> I am hoping for help at this point.
> I'll continue to look into it, but I'm not familiar with the innards of
> doxygen, nor the xml parser that the krb5 python is using.

I tried running doxygen 1.9.4 and 1.9.8 from the respective Debian 
packages in krb5/src/doc with this Doxyfile:

PROJECT_NAME           = Kerberos_doxygen
OUTPUT_DIRECTORY       = doxy
JAVADOC_AUTOBRIEF      = YES
OPTIMIZE_OUTPUT_FOR_C  = YES
WARN_IF_UNDOCUMENTED   = NO
SHOW_FILES             = NO
EXTENSION_MAPPING      = hin=C
INPUT                  = ../../src/include/krb5/krb5.hin 
../../doc/doxy_examples
EXAMPLE_PATH           = ../../doc/doxy_examples
GENERATE_HTML          = NO
GENERATE_LATEX         = NO
GENERATE_XML           = YES
PREDEFINED             = KRB5_DEPRECATED KRB5_OLD_CRYPTO
CLASS_DIAGRAMS         = NO
CASE_SENSE_NAMES       = NO
QUIET                  = YES

and both produce 77 files in doxy/xml/, but some files are different.

In particular doxy/xml/krb5_8hin.xml shrinks from 1,9M to 742K, and many 
memberdef elements are missing.

This may well be a doxygen bug, can anybody tell if there is any pattern?

Paolo


More information about the krbdev mailing list