Updates to README and README.BLFS. First "alpha release"
This commit is contained in:
parent
96a30c7a23
commit
d7818f5134
2 changed files with 100 additions and 54 deletions
37
README
37
README
|
@ -77,23 +77,28 @@ $Id$
|
|||
|
||||
6. BLFS_TOOL SUPPORT::
|
||||
|
||||
For books that support it, there is an option to install blfs-tool and its
|
||||
dependencies on the final system. The pre-made build dependencies
|
||||
For books that support it (TODO: which ones?), there is an option
|
||||
to install an automated framework for building BLFS packages. Let
|
||||
us call it blfs-tool for now. When you tick `BOOK Settings/Add
|
||||
blfs-tool support' in jhalfs configuration menu, the tools are
|
||||
installed in $BLFS_ROOT (default /blfs_root) on the xLFS system,
|
||||
and a few dependencies (which you may select) are built at the
|
||||
end of the jhalfs run. The pre-made build dependencies
|
||||
scripts has been written based on a LFS build. For CLFS and HLFS
|
||||
builds you may need to adjust that scripts, that are found into the
|
||||
builds you may need to adjust those scripts, that are found into the
|
||||
common/blfs-tool-deps directory in the jhalfs sources tree.
|
||||
|
||||
(TODO: is this relevant to present CLFS?)
|
||||
WARNING:: If you add blfs-tool support on a CLFS Sysroot build
|
||||
you MUST to edit the dependencies scripts to fix the
|
||||
installation paths.
|
||||
Be careful when you modify the scripts as you can
|
||||
easily disable the host system.
|
||||
you MUST edit the scripts to fix the installation paths.
|
||||
|
||||
After booting the new xLFS system some steps are needed to finish
|
||||
blfs-tool installation:
|
||||
the installation of the automated tools:
|
||||
|
||||
- A user account must be created. You must be logged on that user
|
||||
account to use blfs-tool.
|
||||
account to use blfs-tool. This is not strictly necessary,
|
||||
since the packages can be built as root, too, but it is
|
||||
never a good idea to build packages as root.
|
||||
|
||||
- Move /blfs-root to that user's home and change ownership of the
|
||||
directory and files to the user.
|
||||
|
@ -104,13 +109,21 @@ $Id$
|
|||
- If you think that you may need the libxml2/libxslt Python modules,
|
||||
remove the libxml2 and libxslt trackin files found in $TRACKING_DIR.
|
||||
|
||||
- Configure sudo, adding the needed privileges for the user.
|
||||
- Configure sudo, adding the needed privileges for the user. For
|
||||
newer sudo version, do not forget to add a line Defaults secure_path=
|
||||
containing /sbin and /usr/sbin (in /etc/sudoers), otherwise some
|
||||
executables are not found.
|
||||
|
||||
- Although it is not strictly necessary, it is recommended to install
|
||||
the bash shell startup files (as per `3.After LFS Configuration
|
||||
Issues' of the BLFS book), as some instructions in BLFS rely on
|
||||
their being present.
|
||||
|
||||
We assume that blfs-tool will be used on a running fresh xLFS system.
|
||||
To use it to build BLFS packages from the chroot jail is also possible,
|
||||
but is for you to figure out how to do that.
|
||||
but not supported.
|
||||
|
||||
To know how to blfs-tool works, see README.BLFS.
|
||||
To know how to use blfs-tool, see README.BLFS.
|
||||
|
||||
7. LAYOUT::
|
||||
|
||||
|
|
117
README.BLFS
117
README.BLFS
|
@ -45,13 +45,16 @@ $Id$
|
|||
management tool.
|
||||
|
||||
The tracking system itself is an XML file: instpkg.xml. It is
|
||||
initialized when make is first run in blfs_root. It resides in a directory
|
||||
which is created when needed during the process of building custom tools
|
||||
or blfs tools, after xLFS. You can specify that directory location in
|
||||
the blfs tools submenu of jhalfs. You may need to update permissions
|
||||
and/or ownership of this directory before using the blfs tool.
|
||||
initialized when <make> is first run in blfs_root. It resides in a
|
||||
directory, which is created when needed during the process of building
|
||||
custom tools or blfs dependencies, right after xLFS. You can specify
|
||||
that directory location in the blfs-tools submenu of jhalfs. You may
|
||||
need to update permissions and/or ownership of this directory before
|
||||
using the blfs tool (see README in jhalfs).
|
||||
|
||||
The default location of the tracking directory is /var/lib/jhalfs/BLFS
|
||||
The default location of the tracking directory is /var/lib/jhalfs/BLFS.
|
||||
NB : after the initial build, that directory is only used to contain
|
||||
instpkg.xml
|
||||
|
||||
3.2 BLFS_TOOL INSTALLATION::
|
||||
|
||||
|
@ -63,24 +66,44 @@ $Id$
|
|||
and not `Rebuild files'. You obtain a /blfs_root directory in the
|
||||
root directory of the new xLFS system, which contains the followings:
|
||||
|
||||
blfs-xml/* SVN tree of the selected BLFS book version
|
||||
lib/* functions libraries
|
||||
menu/* lxdialog and menuconfig source code
|
||||
xsl/* XSL stylesheets used at several stages of the process
|
||||
README.BLFS this file
|
||||
TODO developers notes (well, not often updated)
|
||||
gen_pkg_book.sh resolves dependencies and generates linear BLFS books
|
||||
and build scripts
|
||||
gen-makefile.sh generates the target Makefile
|
||||
progress_bar.sh the target Makefile progress bar
|
||||
gen-special.sh Helper script for generating the package database
|
||||
Makefile Used by make to update the package database from the SVN
|
||||
tree, then launch the menuconfig interface, and run
|
||||
gen_pkg_book.sh based on configuration settings
|
||||
packages.xml auto-generated packages database
|
||||
packdesc.dtd a simple DTD describing the format of the package
|
||||
database
|
||||
envars.conf envars needed when running the target build scripts
|
||||
blfs-xml/* SVN tree of the selected BLFS book version
|
||||
lib/constants.inc functions libraries
|
||||
/func_dependencies for building the dependency tree
|
||||
menu/* lxdialog and menuconfig source code
|
||||
xsl/gen_pkg_list.xsl XSL stylesheet to generate the package database
|
||||
/gen_config.xsl XSL stylesheet to generate the Config.in file
|
||||
for use in the menuconfig system
|
||||
/dependencies.xsl XSL stylesheet to generate the dependency list
|
||||
of a package
|
||||
/make_book.xsl XSL stylesheet to generate the linear book.xml
|
||||
/scripts.xsl XSL stylesheet to generate the scriptlets from
|
||||
book.xml
|
||||
/bump.xsl XSL stylesheet to generate to update the tracking
|
||||
file
|
||||
README.BLFS this file
|
||||
TODO developers notes (well, not updated often)
|
||||
gen_pkg_book.sh resolves dependencies and generates linear BLFS
|
||||
books and build scripts
|
||||
gen-makefile.sh generates the target Makefile
|
||||
progress_bar.sh the target Makefile progress bar
|
||||
gen-special.sh Helper script for generating the package database
|
||||
Makefile Used by make to update the package database from
|
||||
the SVN tree, then launch the menuconfig interface,
|
||||
and run gen_pkg_book.sh based on configuration
|
||||
settings
|
||||
packdesc.dtd a simple DTD describing the format of the package
|
||||
database and the tracking file.
|
||||
envars.conf envars needed when running the target build scripts
|
||||
|
||||
Several files are generated during the process:
|
||||
|
||||
packages.xml auto-generated packages database
|
||||
Config.in input file for the menu driven choices
|
||||
configuration file generated by the menuconfig process
|
||||
dependencies/* files recording the dependency tree
|
||||
book.xml the linearized book
|
||||
book-html/* the linearized book rendered in html
|
||||
scripts/* the scriptlets
|
||||
|
||||
From now on, all the work must be done from inside the installation
|
||||
root directory.
|
||||
|
@ -92,7 +115,8 @@ $Id$
|
|||
|
||||
If you are using the development book version and you want to update
|
||||
installed packages to the latest version found in that book, you need to
|
||||
update the XML sources and packages database.
|
||||
update the XML sources and packages database. This is not necessary if
|
||||
you just built xLFS, and you can skip to step 3.4.
|
||||
|
||||
To do that run "make update". It may happen that the subversion
|
||||
version of your building host is older than the version you just
|
||||
|
@ -113,10 +137,14 @@ $Id$
|
|||
two blocks: individual package selection, and build options.
|
||||
|
||||
In the build options section, the dependencies level and default packages
|
||||
used to solve alternatives are set (currently, only for the mTA). You can
|
||||
used to solve alternatives are set (currently, only for the MTA). You can
|
||||
also select whether the build will be made as a normal user or as root.
|
||||
Those settings are saved to be reused in future configuration runs.
|
||||
|
||||
Note that you may select as many targets as you want, not just one
|
||||
as in the previous version of this tool. But we suggest to not select
|
||||
too many at a time to be able to sort issues!
|
||||
|
||||
When you are done with the menu, a few checks occur, and the book is
|
||||
generated. When circular dependencies are found, a 3 line message is
|
||||
printed:
|
||||
|
@ -128,7 +156,7 @@ $Id$
|
|||
This means that the system has found the dependency chain: B->A->C->A.
|
||||
You have therefore to choose whether A is built before C, or
|
||||
C before A: the system cannot make that choice (well, maybe in a few
|
||||
year, with an AI system able to understand the book). if you answer no,
|
||||
year, with an AI system able to understand the book). If you answer no,
|
||||
C is built first. If you answer yes, C is put in place of A as a dependency
|
||||
of B, then the tree dependency restarts from there, that is with the
|
||||
layout B->C->... You may then hit the case B->C->A->C, for which you
|
||||
|
@ -144,7 +172,7 @@ $Id$
|
|||
There is also another directory, "dependencies" that contains files
|
||||
generated while resolving dependencies.
|
||||
|
||||
3.5 EDITING BUILD SCRIPTS
|
||||
3.5 EDITING BUILD SCRIPTS::
|
||||
|
||||
Now it is time to review the generated book and scripts, making any
|
||||
changes to the scripts necessary to fix generation bugs or to suit your
|
||||
|
@ -161,7 +189,7 @@ $Id$
|
|||
Also, review and edit envars.conf. This file is used to set global envars
|
||||
needed by the build scripts.
|
||||
|
||||
3.6 CREATING THE MAKEFILE
|
||||
3.6 CREATING THE MAKEFILE::
|
||||
|
||||
When the build scripts are ready to be run, the Makefile can be
|
||||
created. Create an empty directory (for example "mkdir work") and cd
|
||||
|
@ -180,13 +208,13 @@ $Id$
|
|||
unhandled dependencies and/or to remove some script installing the affected
|
||||
package by hand.
|
||||
|
||||
4.1 BLFS BOOTSCRIPTS
|
||||
4.1 BLFS BOOTSCRIPTS::
|
||||
|
||||
Normally, bootscript installation should work. On the other hand, the
|
||||
book does not give instruction for running them, so you might have to
|
||||
manually insert /etc/init.d/<initscript> at some place during the build.
|
||||
manually insert /etc/init.d/rd.d/<initscript> at some place during the build.
|
||||
|
||||
4.2 PACKAGE CONFIGURATION
|
||||
4.2 PACKAGE CONFIGURATION::
|
||||
|
||||
For those packages that have a "Configuration" section, you should
|
||||
edit the build script to fit the needs of your system. Sometimes, the
|
||||
|
@ -194,7 +222,7 @@ $Id$
|
|||
llvm). You might have to insert something like "source /etc/bash_profile"
|
||||
at some point during the build.
|
||||
|
||||
4.4 GCC, JDK, Sane, and KDE-multimedia, freetype2, MesaLib and others
|
||||
4.3 GCC, JDK, Sane, and KDE-multimedia, freetype2, MesaLib and others
|
||||
|
||||
On the pages for those packages, the BLFS book actually has instructions
|
||||
to download and install two or more packages. You must edit the scripts to
|
||||
|
@ -202,7 +230,7 @@ $Id$
|
|||
|
||||
We will try to fix some of them, but this may not be possible.
|
||||
|
||||
4.5 XORG7
|
||||
4.4 XORG7
|
||||
|
||||
The generated scripts for Xorg7 packages have $SRC_ARCHIVE
|
||||
support for individual packages, but not for patches nor *.wget and *.md5
|
||||
|
@ -215,10 +243,7 @@ $Id$
|
|||
the scripts to be sure that the most current individual packages are
|
||||
used. Thus don't reuse previously existing ones.
|
||||
|
||||
In the script for xorg7-font, be sure to move the fonts directories
|
||||
symlinks creation to after the "for ... done" loop.
|
||||
|
||||
4.6 PATCHES
|
||||
4.5 PATCHES
|
||||
|
||||
By default, all required patches will be downloaded from the NET.
|
||||
|
||||
|
@ -228,17 +253,25 @@ $Id$
|
|||
Also, be sure that all scripts have the commands to download/apply the
|
||||
required patches. Due to book layout issues, some patches may be missing.
|
||||
|
||||
4.7 ROOT COMMANDS
|
||||
4.6 ROOT COMMANDS
|
||||
|
||||
If building as a normal user (the default setting), be sure that all
|
||||
commands that require root privileges are run using sudo. Also make sure
|
||||
necessary root privilege commands are visible in your PATH.
|
||||
necessary root privilege commands are visible in your PATH. Or use
|
||||
the `Defaults secure_path=' in /etc/sudoers. Also, the scripts use a
|
||||
fragile construct:
|
||||
sudo bash -c '<commands to be executed as root>'
|
||||
which fail if the commands to be executed contain themselves a ' or access
|
||||
a bash variable $XXX. So carefully review them.
|
||||
|
||||
Due to book layout issues, some sudo commands may be missing.
|
||||
|
||||
4.8 OTHERS
|
||||
4.7 OTHERS
|
||||
|
||||
There may be other issues that we are not aware of. If you find
|
||||
any, please report it to <alfs-discuss@linuxfromscratch.org>.
|
||||
|
||||
|
||||
Presently, there is an error in the book in file
|
||||
x/installing/x7proto.xml. You should change the role='required' to
|
||||
role='optional' in the optional dependencies, if you plan to build
|
||||
X.
|
||||
|
|
Reference in a new issue