jhalfs TODO
          ---------------

CODE STYLE
----------

  - To use the same coding style in all modules. The current used
    for HLFS module (colors, error-handling, etc) look a good starting
    point for me, with two notes (to be discussed):

    - Bash code: to use two-spaces indentation (no tabs).
    - Makefile code: to use eight-characters tabs.

  - To set the "Date" and "Id" svn:keywords properties on all files
    setting the "Id" key on the header of each file and using the
    "Date" key when needed (like in the -v output of jhalfs)


MASTER SCRIPT
-------------

  - Make jhalfs a "master script" that will control and run each
    book's module. When doing that reestructuration we coulud to change
    the tool's name, if wanted.

  - Common code for all modules should be placed in this master script.

  - Common configuration options should be placed in a master configuration
    file.

  - The LFS, CLFS and HLFS modules should be exclusives. I.e., when
    one is called the others must be ignored.

  - The BLFS moudule should can be called in conjunction with any of
    LFS, CLFS or HLFS modules.

  - Addapt the Makefile to install all modules system-wide.



LFS MODULE (some of this is applicable also to CLFS and HLFS modules)
----------

  - To move the LFS module to their own subdir.

  - To fix the now missing locales installation needed by testsuites
    in Chapter05 Glibc.

  - Chapter05 testsuites should be optionals. Run by default Chapter06
    testsuites only.

  - Look that there is no need now to keep the Binutils source.

  - Fix the unpack code to don't hang when both the bz2 and gz formats
    of the same package are founds in the sources dir.

  - To add a switch to build the BLFS module dependencies at the end of
    the LFS build, that is, wget and sudo. SVN and libxslt aren't needed
    at this stage due that the BLFS book could be downloaded and parser
    at the same time that the LFS book. Plus links or lynx to read the
    (to be) generated BLFS HTML pages and, maybe, gpm.


CLFS MODULE
-----------

  - Start the module creation.


HLFS MODULE
-----------

  - To review and fix, if needed, the bash and XSL code.

  - Be sure that the book's XML code is in a sane state.

  - To do several build test for both Glibc and uClibc based systems.


BLFS MODULE
-----------

  - The SourceForge download links don't work.

  - To fix files creation using sudo. Comment from Ag Hatzim:

      Commands, that using cat with sudo, to redirect the output to
      certain files that users have no write access, will fail.

      Eg. fcron.

      #-------------------------------#
      (~/jhablfs)sudo cat >> /etc/syslog.conf << "EOF"
      # Begin fcron addition to /etc/syslog.conf

      cron.* -/var/log/cron.log

      # End fcron addition
      EOF
      zsh: permission denied: /etc/syslog.conf
      #-------------------------------#

      Since the shell is doing the redirection (man bash -REDIRECTION),
      *before* the command is executed, sudo can not see the redirection,
      so a new shell is needed for sudo to execute the actual command.

      Like so, the previous command should be something like this.

      #-------------------------------#
      (~/jhablfs)sudo sh -c "cat >> /etc/syslog.conf << "EOF"
      # Begin fcron addition to /etc/syslog.conf

      cron.* -/var/log/cron.log

      # End fcron addition
      EOF"
      #-------------------------------#

  - Figure out how to handle Perl modules installation and other pages
    that have commands to install more that one package (e.g., Gnat in GCC
    Java-bin in Java, sane-backends and sane-frotnends in Sane, etc)


OTHERS
------

  - To add support for ICA/farce? Can be done as a separate module?

  - To add support for package management???