Changeset 63fc514 for README.BLFS


Ignore:
Timestamp:
02/22/2012 05:09:47 PM (12 years ago)
Author:
Pierre Labastie <pierre@…>
Branches:
ablfs
Children:
c1987b0
Parents:
0216209
Message:

Initial modificaiton of BLFS tools

File:
1 edited

Legend:

Unmodified
Added
Removed
  • README.BLFS

    r0216209 r63fc514  
    331. INTRODUCTION::
    44
    5      If you want to add blfs-tool support into a xLFS base system build,
     5     If you want to add blfs-tool support into an xLFS base system build,
    66  read the "BLFS_TOOL SUPPORT" section found in the README and be sure
    77  to follow the after-booting installation intructions.
     
    3737  is done in several steps:
    3838
    39   3.1  INSTALLED PACKAGES TRACKING SYSTEM
     39  3.1  INSTALLED PACKAGES TRACKING SYSTEM::
    4040
    4141       This tool includes a very simple tracking system to log which packages
     
    4545    management tool.
    4646
    47        The directory where tracking files will be stored needs to be created
    48     before installing blfs-tool. You can place this directory anywhere, taking
    49     care that the user must have read and write privileges on that directory
    50     and on all files it contains.
    51 
    52        To use the default path set in the installation menu, run as root:
    53 
    54     install -d -m1777 /var/lib/jhalfs/BLFS
     47       The tracking system itself is an XML file: instpkg.xml. It is
     48    initialized when make is first run in blfs_root. It resides in a directory
     49    which is created when needed during the process of building custom tools
     50    or blfs tools, after xLFS. You can specify that directory location in
     51    the blfs tools submenu of jhalfs. You may need to update permissions
     52    and/or ownership of this directory before using the blfs tool.
     53
     54       The default location of the tracking directory is /var/lib/jhalfs/BLFS
    5555
    5656  3.2  BLFS_TOOL INSTALLATION::
    5757
    58        Run "make" to launch the jhalfs menuconfig interface. Select the BLFS
    59     book and version. Then set the installation directory (default
    60     $HOME/blfs_root), the BLFS sources directory (default blfs-xml), and
    61     the installed packages tracking directory (default /var/lib/jhalfs/BLFS).
    62 
    63        All required files will be placed in the installation directory and
    64     BLFS XML sources will be installed in the named sub-directory.
    65 
    66        Installed files:
     58       The tools are installed just after the building of xLFS, if the
     59    appropriate options have been selected in the building menu, as per
     60    jhalfs README. If you forgot to select the options and xLFS has been
     61    built, it is possible to go back to selecting the appropriate
     62    BLFS tools options in the jhalfs menu, then tick `Run makefile'
     63    and not `Rebuild files'. You obtain a /blfs_root directory in the
     64    root directory of the new xLFS system, which contains the followings:
    6765
    6866    blfs-xml/*         SVN tree of the selected BLFS book version
    69     lib/*              functions libraries, xsl stylesheets, and auto-generated
    70                        meta-packages dependencies tree files
     67    lib/*              functions libraries
    7168    menu/*             lxdialog and menuconfig source code
     69    xsl/*              XSL stylesheets used at several stages of the process
    7270    README.BLFS        this file
    73     TODO               developers notes
    74     update_book.sh     update the XML book sources and regenerates packages
    75                        database and meta-packages dependencies tree
    76     gen_config.sh      regenerates Config.in
     71    TODO               developers notes (well, not often updated)
    7772    gen_pkg_book.sh    resolves dependencies and generates linear BLFS books
    7873                       and build scripts
    7974    gen-makefile.sh    generates the target Makefile
    8075    progress_bar.sh    the target Makefile progress bar
    81     Makefile           run gen_config.sh to update Config.in,
    82                        then launch the menuconfig interface, and lastly run
     76    gen-special.sh     Helper script for generating the package database
     77    Makefile           Used by make to update the package database from the SVN
     78                       tree, then launch the menuconfig interface, and run
    8379                       gen_pkg_book.sh based on configuration settings
    84     Config.in          menuconfig interface input file
    85     packages           auto-generated packages database
     80    packages.xml       auto-generated packages database
     81    packdesc.dtd       a simple DTD describing the format of the package
     82                       database
    8683    envars.conf        envars needed when running the target build scripts
    8784
     
    8986    root directory.
    9087
    91        When finished the installation, the configuration and target selection
    92     menu is launch.
     88       You may move that directory to the $HOME of a non root user, or build
     89    as root from that directory.
    9390
    9491  3.3  UPDATING BOOK SOURCES::
     
    9895    update the XML sources and packages database.
    9996
    100        To do that run "./update_book.sh"
     97       To do that run "make update". It may happen that the subversion
     98    version of your building host is older than the version you just
     99    built. This may generate weird errors like "'.' omitted". The easiest
     100    thing to do in that case, is to completely remove the blfs-xml directory
     101    and run "make update".
    101102
    102103       On the next configuration run, packages already installed but listed
     
    107108
    108109       The next step is to create a book and build scripts in dependency
    109     build order for a target package. A target can be a package or a
    110     meta-package.
    111 
    112     WARNING:
    113            Only one target (meta-package or individual package) must be
    114            selected on each configuration run.
    115            There is no way to solve dependencies properly when more
    116            than one target are selected.
     110    build order for one or several packages.
    117111
    118112       Run <make> to launch the configuration interface. The main menu contains
    119     three blocks: meta-package selection, individual package selection, and
    120     build options.
    121 
    122        When a meta-package is selected, it is possible to unselect unwanted
    123     components. The unselected components will be skipped if no other components
    124     depends on them.
     113    two blocks: individual package selection, and build options.
    125114
    126115       In the build options section, the dependencies level and default packages
    127     used to solve alternatives are set. You can also select whether the build will
    128     be made as a normal user or as root. That settings are saved to be reused in
    129     future configuration runs.
    130 
    131        If, for example, your target selection is Xsoft-->Graphweb-->galeon, a
    132     directory named "galeon" will be created. Inside that directory you will
    133     find a directory named "HTML" that contains a galeon-based HTML book with
    134     its dependencies in build order, and a "scripts" directory with build
    135     scripts for that packages.
    136 
    137        There are also two other directories ("dependencies" and "xincludes")
    138     that contain files generated while resolving dependencies trees.
     116    used to solve alternatives are set (currently, only for the mTA). You can
     117    also select whether the build will be made as a normal user or as root.
     118    Those settings are saved to be reused in future configuration runs.
     119
     120       When you are done with the menu, a few checks occur, and the book is
     121    generated. When circular dependencies are found, a 3 line message is
     122    printed:
     123           A is a dependency of B
     124           C is a dependency of A
     125           A is a dependency of C
     126    and a question:
     127           Do you want to build A first?
     128    This means that the system has found the dependency chain: B->A->C->A.
     129    You have therefore to choose whether A is built before C, or
     130    C before A: the system cannot make that choice (well, maybe in a few
     131    year, with an AI system able to understand the book). if you answer no,
     132    C is built first. If you answer yes, C is put in place of A as a dependency
     133    of B, then the tree dependency restarts from there, that is with the
     134    layout B->C->... You may then hit the case B->C->A->C, for which you
     135    should answer no, unless you want to enter an infinite (human driven) loop.
     136
     137       You end up with a book.xml file which contains the linearized book,
     138    and a rendered HTML, in the directory book-html, which you can browse with
     139    "lynx book-html/index.html" (or with any other browser).
     140
     141       Furthermore, there is a directory "scripts", which contains the generated
     142    scriptlets.
     143
     144       There is also another directory, "dependencies" that contains files
     145    generated while resolving dependencies.
    139146
    140147  3.5  EDITING BUILD SCRIPTS
    141148
    142        Now it is time to review the generated book and scripts, making any changes
    143     to the scripts necessary to fix generation bugs or to suit your needs.
     149       Now it is time to review the generated book and scripts, making any
     150    changes to the scripts necessary to fix generation bugs or to suit your
     151    needs.
    144152
    145153       Scripts for additional packages (i.e., for non-BLFS packages) can be
    146154    easily inserted. For example, if you want to install the external dependency
    147155    "bar" before "foo" package and the "foo" script is named "064-z-foo", you
    148     need to create a "064-y-bar" build script.
     156    just need to create a "064-y-bar" build script.
    149157
    150158      Remember, the package tracking system isn't a package management tool
     
    157165
    158166       When the build scripts are ready to be run, the Makefile can be
    159     created. Be sure that you cd into the "package" directory and run
    160     ../gen-makefile.sh
    161 
    162     Review the Makefile, and, if all looks sane, start the build.
     167    created. Create an empty directory (for example "mkdir work") and cd
     168    to that directory. Then run ../gen-makefile.sh
     169
     170    Review the Makefile, and, if all looks sane, start the build by running
     171    "make".
    163172
    1641734. GENERATED BUILD SCRIPTS ISSUES::
    165174
    166175      In this section, known issues with the generated build scripts are
    167    discussed. They are due to build procedures and/or BLFS layout particularities
    168    that we can't handle. In several cases, editing the build scripts is mandatory.
     176   discussed. They are due to build procedures and/or BLFS layout
     177   particularities that we can't handle. In several cases, editing the
     178   build scripts is mandatory.
    169179   You may also need to insert some build scripts created by you to resolve
    170180   unhandled dependencies and/or to remove some script installing the affected
     
    173183   4.1  BLFS BOOTSCRIPTS
    174184
    175         For now, bootscripts installation will fail. You will need to edit
    176      the scripts for packages that install bootscripts and fix their
    177      installation command. That could be fixed in the future.
     185      Normally, bootscript installation should work. On the other hand, the
     186   book does not give instruction for running them, so you might have to
     187   manually insert /etc/init.d/<initscript> at some place during the build.
    178188
    179189   4.2  PACKAGE CONFIGURATION
    180190
    181         For those packages that have a "Configuration" section, you should
    182      edit the build script to fit the needs of your system.
    183 
    184    4.4  PDL, Perl modules, and Glib-Bindings.
    185 
    186         The generated scripts for these packages are broken and can not
    187      be fixed. You must rename it as the sub-package to be installed and
    188      edit it to use the proper commads for that sub-package.
    189 
    190         You may need to create additional scripts for these sub-package
    191      dependencies, if any.
     191      For those packages that have a "Configuration" section, you should
     192   edit the build script to fit the needs of your system. Sometimes, the
     193   bash startup files are modified (see for example the instructions for
     194   llvm). You might have to insert something like "source /etc/bash_profile"
     195   at some point during the build.
    192196
    193197   4.4  GCC, JDK, Sane, and KDE-multimedia, freetype2, MesaLib and others
    194198
    195         On the pages for these packages, the BLFS book actually has instructions
     199        On the pages for those packages, the BLFS book actually has instructions
    196200     to download and install two or more packages. You must edit the scripts to
    197201     fix this.
     
    201205   4.5  XORG7
    202206
    203         The generated scripts for Xorg7 pseudo-packages have $SRC_ARCHIVE
     207        The generated scripts for Xorg7 packages have $SRC_ARCHIVE
    204208     support for individual packages, but not for patches nor *.wget and *.md5
    205209     files.
     
    210214       The *.wget and *.md5 files should be downladed always from inside
    211215     the scripts to be sure that the most current individual packages are
    212      used. Thus don't reuse previouly existing ones.
     216     used. Thus don't reuse previously existing ones.
    213217
    214218       In the script for xorg7-font, be sure to move the fonts directories
Note: See TracChangeset for help on using the changeset viewer.