[RFC] SRS Section 2

Jeremy Huntwork jhuntwork at linuxfromscratch.org
Tue Feb 1 08:10:53 PST 2005

Hey again:

Considering that the first section of the SRS is fairly straightforward 
and generalized and not very technical, I don't foresee that we'll need 
to discuss it much.  Of course, comments on it are still welcome, but I 
thought I'd open up section 2 for discussion now as well.

Jeremy H.

2. Overall Description

{This section of the SRS describes the general factors that affect the 
product and its requirements. This section does not state specific 
requirements. Instead, it provides a background for those requirements, 
which are defined in detail in Section 3, and makes them easier to 
understand. Include such items as: product perspective, product 
functions, user characteristics, constraints, assumptions and 
dependencies, and requirements subsets}

2.1 alfs Functions

alfs is designed to be the most complete implementation of the ALFS DTD 
syntax specification. It is designed to support complete automation in 
the creation (build) of Linux From Scratch systems. The ALFS DTD is an 
XML specification that handles the outline of a procedure to be 
processed by the application. This outline is referred to as a profile. 
Each profile can be a small set of commands for basic tasks or a large 
set of commands to build an entire system including all LFS and BLFS 
packages. When alfs reads a profile, it parses the XML into internal 
command structures and uses its own library of internal shared objects 
to perform the actual work. alfs will not "reinvent the wheel" so to 
speak with regards to basic system commands like make, or cp. The shared 
objects are wrappers and translators for alfs to use to take the XML 
profile and run system commands.

alfs will also support an extensive logging XML DTD. This new DTD is 
designed to provide a large amount of logging facilities that current 
Linux systems support, but not in one place or within one tool. Most 
Linux users must use Bash shell scritps or other wrapper type scripts to 
pull these tools together to perform debugging, troubleshooting or 
comparitive analysis of a build.

2.2 Similar Systems

alfs is the natural successor to nALFS. It will provide backwards 
compatibility but with extended, optional, functionality. alfs can be 
used as a direct replacement for nALFS. It should be noted here that 
alfs will be a complete rewrite of nALFS.

2.3 alfs Implementation Highlights

alfs will support the following concepts :

         * Complete separation of a backend server daemon which carries 
out the specific tasks and a frontend client that initiates the 
         * Validation of profiles before any other actions take place.
         * Downloading and checking of packages from both local and 
external locations.
         * Dependency resolution to ensure a package never gets 
installed unless it has its dependencies satisfied.
         * A comprehensive and informational logging system.
         * A package uninstallation feature.
         * Allow support for different clients.
         * Ability to handle conditional executions.

More information about the alfs-discuss mailing list