bootstrap && make distclean broken
vbraun opened this issue · 17 comments
- #26964 now creates documentation files during bootstrap
- make distclean blows away these generated files
- subsequent make fails when building documentation
This ticket fixes it by deleting the generated files in bootstrap-clean instead of misc-clean.
CC: @dimpase @embray @jhpalmieri
Component: build: configure
Author: Matthias Koeppe
Branch/Commit: 0dc97db
Reviewer: Dima Pasechnik
Issue created by migration from https://trac.sagemath.org/ticket/29233
[dochtml] [installat] The HTML pages are in
local/share/doc/sage/html/en/installation.
[dochtml] Error building the documentation.
[dochtml] Traceback (most recent call last):
[dochtml] File "/home/release/Sage/local/lib/python2.7/runpy.py", line
174, in _run_module_as_main
[dochtml] "__main__", fname, loader, pkg_name)
[dochtml] File "/home/release/Sage/local/lib/python2.7/runpy.py", line
72, in _run_code
[dochtml] exec code in run_globals
[dochtml] File "/home/release/Sage/local/lib/python2.7/site-
packages/sage_setup/docbuild/__main__.py", line 2, in <module>
[dochtml] main()
[dochtml] File "/home/release/Sage/local/lib/python2.7/site-
packages/sage_setup/docbuild/__init__.py", line 1720, in main
[dochtml] builder()
[dochtml] File "/home/release/Sage/local/lib/python2.7/site-
packages/sage_setup/docbuild/__init__.py", line 336, in _wrapper
[dochtml] build_many(build_other_doc, L)
[dochtml] File "/home/release/Sage/local/lib/python2.7/site-
packages/sage_setup/docbuild/__init__.py", line 280, in build_many
[dochtml] _build_many(target, args, processes=NUM_THREADS)
[dochtml] File "/home/release/Sage/local/lib/python2.7/site-
packages/sage_setup/docbuild/utils.py", line 283, in build_many
[dochtml] raise worker_exc.original_exception
[dochtml] OSError:
/home/release/Sage/src/doc/en/installation/source.rst:228: WARNING:
Include file u'/home/release/Sage/src/doc/en/installation/debian.txt' not
found or reading it failed
make distclean should remove ./configure
Volker, are you sure you regenerated the configure tar ball?
Our distclean doesn't remove ./configure, neither should it ihmo. Distclean should remove whatever configure output there is, but it should keep the actual configure script which would go into a proper tarball.
well, then it's a bug that make distclean removes stuff not made by make all or by ./configure
Correct. And to fix it we can either kludge around with make distclean to not delete what should be build artifacts, or move building the documentation from bootstrap to make doc.
it's not just documentation. One possible way to use these is to generate help info before the build, something like: "you're on Debian, to make use of as many
Debian external packages as possible do apt-get install ..."
also, it's used for CI. You need to tell your CI host what to install to minimise build time, and this is OS-specific and pre-build.
OK, deletion should be done by bootstrap-clean, not misc-clean. My bad.
However, note that bootstrap is the correct build phase for making these files. This build phase, after all, prepares src for sdist, the distribution for dist and for configure.
New commits:
0dc97db | Clean src/doc/en/installation/*.txt in bootstrap-clean, not misc-clean |
Author: Matthias Koeppe
Description changed:
---
+++
@@ -2,4 +2,5 @@
* make distclean blows away these generated files
* subsequent make fails when building documentation
-Fundamentally, I think bootstrap is just not the right place to generate documentation. You should just bootstrap the absolute minimum to run the actual build. Bootstrap is not a dump for miscellaneous build steps. The more you do the more likely you are to run into conflicts with other make targets.
+This ticket fixes it by deleting the generated files in `bootstrap-clean` instead of `misc-clean`.
+Reviewer: Dima Pasechnik
lgtm
Changed branch from u/mkoeppe/bootstrap____make_distclean_broken to 0dc97db