sagemath/sage

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

comment:1
 [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
comment:2

make distclean should remove ./configure

comment:3

Volker, are you sure you regenerated the configure tar ball?

comment:4

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.

comment:5

well, then it's a bug that make distclean removes stuff not made by make all or by ./configure

comment:6

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.

comment:7

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 ..."

comment:8

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.

comment:9

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:

0dc97dbClean src/doc/en/installation/*.txt in bootstrap-clean, not misc-clean

Author: Matthias Koeppe

Commit: 0dc97db

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

comment:13

lgtm