Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[LOG4CXX-548] Reproducible Doxygen doc generation #99

Merged

Conversation

coldtobi
Copy link
Contributor

@coldtobi coldtobi commented Jan 8, 2022

The way the doxygen documenation is generated with CMake, it is unfortunatly
not reproducible (as in https://reproducible-builds.org/).

This is a regression as log4cxx has been previously reproducible (at least on
Debian –
https://tests.reproducible-builds.org/debian/rb-pkg/experimental/amd64/log4cxx.html)

The problem is that doxygen's configure has several absolute paths, which it
then bakes into the generated documentation, for example in this snippt, the
bold part dependent on the build path:

@rm5248
Copy link
Contributor

rm5248 commented Jan 8, 2022

The patch as given requires CMake 3.20+, but doesn't update the minimum required version. I'd like to not have to bump the CMake version if possible.

I changed the cmake_path directive to file(RELATIVE_PATH LOG4CXX_REL_BIN_TO_SRC_DIR "${LOG4CXX_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}") on my side which seems to work fine, would you be able to validate that? I don't see where the particular example that you showed is coming in from, that only seems to be a problem with the MapFilter page.

@coldtobi
Copy link
Contributor Author

coldtobi commented Jan 8, 2022

The patch as given requires CMake 3.20+, but doesn't update the minimum required version. I'd like to not have to bump the CMake version if possible.

Ack.

I changed the cmake_path directive to file(RELATIVE_PATH LOG4CXX_REL_BIN_TO_SRC_DIR "${LOG4CXX_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}") on my side which seems to work fine, would you be able to validate that?

LGTM, it builds reproducible as well on my machine. I'll update my PR accordingly.

I don't see where the particular example that you showed is coming in from, that only seems to be a problem with the MapFilter page.

It seems everything in site/markdown triggering the differences... Here's a (local created) complete diff: https://pastebin.com/6BLaEa0K. (So it is quite possible that only the INPUT configuration of Doxyfile.in would need to be relative, but I believe making the other relative won't hurt.)

The way the doxygen documenation is generated with CMake, it is unfortunatly
not reproducible (as in https://reproducible-builds.org/).

This is a regression as log4cxx has been previously reproducible (at least on
Debian –
https://tests.reproducible-builds.org/debian/rb-pkg/experimental/amd64/log4cxx.html)

The problem is that doxygen's configure has several absolute paths, which it
then bakes into the generated documentation, for example in this snippt, the
bold part dependent on the build path:

<div class="contents">
<div class="textblock"><p><a class="anchor" id="md__build_log4cxx_0_12_1_src_site_markdown_index"></a></p>
@coldtobi coldtobi force-pushed the LOGCXX_548-make-doxygen-reproducible branch from 0305435 to cda9316 Compare January 8, 2022 23:54
@rm5248 rm5248 merged commit 6a6be61 into apache:master Jan 9, 2022
@coldtobi coldtobi deleted the LOGCXX_548-make-doxygen-reproducible branch January 9, 2022 15:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants