8db5cdd512
Docs are included with the rpm, so the .spec needs a number of packages as BuildRequires in order for Sphinx to run.
68 lines
2.0 KiB
ReStructuredText
68 lines
2.0 KiB
ReStructuredText
Introduction to Lorax
|
|
=====================
|
|
|
|
I am the Lorax. I speak for the trees [and images].
|
|
|
|
Lorax is used to build the Anaconda Installer boot.iso, it consists of a
|
|
library, pylorax, a set of templates, and the lorax script. Its operation
|
|
is driven by a customized set of Mako templates that lists the packages
|
|
to be installed, steps to execute to remove unneeded files, and creation
|
|
of the iso for all of the supported architectures.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Before Lorax
|
|
============
|
|
|
|
Tree building tools such as pungi and revisor rely on 'buildinstall' in
|
|
anaconda/scripts/ to produce the boot images and other such control files
|
|
in the final tree. The existing buildinstall scripts written in a mix of
|
|
bash and Python are unmaintainable. Lorax is an attempt to replace them
|
|
with something more flexible.
|
|
|
|
|
|
EXISTING WORKFLOW:
|
|
|
|
pungi and other tools call scripts/buildinstall, which in turn call other
|
|
scripts to do the image building and data generation. Here's how it
|
|
currently looks:
|
|
|
|
-> buildinstall
|
|
* process command line options
|
|
* write temporary yum.conf to point to correct repo
|
|
* find anaconda release RPM
|
|
* unpack RPM, pull in those versions of upd-instroot, mk-images,
|
|
maketreeinfo.py, makestamp.py, and buildinstall
|
|
|
|
-> call upd-instroot
|
|
|
|
-> call maketreeinfo.py
|
|
|
|
-> call mk-images (which figures out which mk-images.ARCH to call)
|
|
|
|
-> call makestamp.py
|
|
|
|
* clean up
|
|
|
|
|
|
PROBLEMS:
|
|
|
|
The existing workflow presents some problems with maintaining the scripts.
|
|
First, almost all knowledge of what goes in to the stage 1 and stage 2
|
|
images lives in upd-instroot. The mk-images* scripts copy things from the
|
|
root created by upd-instroot in order to build the stage 1 image, though
|
|
it's not completely clear from reading the scripts.
|
|
|
|
|
|
NEW IDEAS:
|
|
|
|
Create a new central driver with all information living in Python modules.
|
|
Configuration files will provide the knowledge previously contained in the
|
|
upd-instroot and mk-images* scripts.
|
|
|
|
|
|
|