This branch introduces a new layout for python modules, similar
to what is done for perl modules. This allows to have useful python
modules in the book (sphinx, pytest, requests, gi-docgen), together
with their dependencies.
As a convenience for users who build by hand, a "Building
pythonhosted.org Files" section is added, which allows building all
the python modules dependencies in one go. It is generated from
the individual module pages, so the authoritative instructions are
on those individual pages.
- Add `locked-deps = true` and `vendor = true`. These allows building
the package w/o downloading from crates.io (the bootstrap compiler
still needs to be downloaded though), and eliminates the necessity of
using a DESTDIR installation. Note that in LFS we already do DESTDIR
installation for ncurses so we won't lose too much educational
material.
- Add `description = "for BLFS &version;"` so BLFS version will show up
in the output of `rustc --version`.
- Remove `rpath = false`. With rpath we can skip the modification of
`/etc/ld.so.conf` file. Note that rpath is coded as
`$ORIGIN/../lib`, so if you run `ldd` on the executable in the build
directory, it will show the path to the build directory; but if you
run `ldd` on the installed executable, it will show the correct path
to the installed library. See `man ld.so` for more information about
`$ORIGIN`.
This option is not needed for recent versions of gnutls, as
the build system does exactly what is expected: link binaries and
libraries with rpath pointing to the build tree at first, then
remove rpath completely when relinking at install time.
the python module pages include general.ent, which needs
conditional.ent and version.ent, so that should exist for generating
pythonhosted.xml. OTOH, what is in version.ent doesn't matter.
Makefile's use files for their dependency calculations. Since
git-version.sh generates files (version.ent and conditional.ent)
use version.ent to see whether git-version.sh has been run.
The only target that should depend on version.ent is then
$(BLFS_FULL) since all other targets depend (directly or indirectly
on this one).
version.ent itself depends on any change made to xml files, xsl files,
packages.ent, general.ent. We could add more (Makefile, gnome.ent, some
scripts), but let's see whether we really want it.