RRFW to Torrus transition roadmap

Introduction

The name "RRFW" appeared to be quite difficult to remember and to pronounce. There has been a call for a new name, and recently a good suggestion came from Francois Mikus:

    --- Francois Mikus <fmikus[at]acktomic.com> wrote:
    > Here is my humble flash, which I think may be appropriate. Which I will 
    > explain why below...
    > 
    > The name I would suggest is;
    > 
    > Torrus
    > 
    > Has a mythical sounding name without the actual history. Has a resonance 
    > with Torrent, where rrfw deals with a torrent of information. A google 
    > search comes up with near nothing, and nothing commercial. Has a 
    > resonance with Taurus, which is mythical, astrological and has an 
    > underlying strength connotation.
    > 
    > Anyway, this is the best I could think of. And it provides an opening to 
    > have a semi-mythical/comic style yet serious mascot.
    > 
    > You have a LOT of documentation. web pages, code, etc.. But marketing is 
    > the way to win hearts and minds, create a following and get rabid 
    > developpers on-board!

Thus the project will be renamed to Torrus, and few other structural changes will accompany the transition.

Releases roadmap

Version 0.1.8 will be the last of RRFW, unless some urgencies arise.

The first Torrus release will be 1.0.0.

Multiple XML cofiguration directories

During XML compilation, the datasource configuration files will be searched in multiple directories. The list of directories and the search sequence will be configurable. This will allow not to mix the distribution XML files and the ones created locally.

Separated directories for templates and configuration

Perl configuration files and HTML templates will also be separated into different directories, so that user-editable files don't mix with the ones from distribution.

Commandline launcher

A small shell script will be installed as /usr/local/bin/torrus, and it will pass all arguments to appropriate torrus executables. For example,

  torrus compile --tree=main

will execute compilexml torrus utility with the argument --tree=main.

New directory hierarchy

Filesystem Hierarchy Standard <http://www.pathname.com/fhs/> proposes to put the software add-on packages into /opt directory and user services data, such as database contents or RRD files, in /srv directory.

However, FreeBSD and some other systems are not FHS-compliant, and require to install all additional software into /usr/local hierarchy.

We propose that Torrus distribution will support three different directory layouts, and the system administrator will decide the most suitable one:

  1. Default layout based in /usr/local;

  2. FHS compliant layout, set by running ./configure_fhs instead of ./configure;

  3. Custom layout, tunable with standard options and variables in ./configure.

Default layout

Although many systems like FreeBSD discourage creation of new package-specific subdirectories in /usr/local, we find it quite a common practice, and quite convenient for keeping the files together.

  /usr/local/torrus/    Home directory for Torrus distribution files
        |
        +- conf_defaults/  torrus-config.pl and others
        |
        +- bin/         Command-line executables
        |
        +- doc/         POD and TXT documentation files
        |
        +- examples/    Miscelaneous example files
        |
        +- perllib/     Perl libraries
        |
        +- plugins/     Plugins configuration
        |
        +- scripts/     Scripts
        |
        +- sup/         Supplementary files, DTDs, MIBs, color schemas,
        |               Web plain files
        |
        +- templates/   Renderer output templates
        |
        +- xmlconfig/   Distrubution XML files
  /usr/local/etc/torrus/   Site configurable files
        |
        +- conf/        Place for torrus-siteconfig.pl and other siteconfigs
        |
        +- discovery/   Devdiscover input files
        |
        +- templates/   User-defined Renderer output templates
        |
        +- xmlconfig/   User XML configuration files
  /usr/local/man/       Place for man pages. All articles will have the
                        prefix C<torrus_>
  /var/log/torrus/      Daemon logfiles
  /var/run/torrus/      Daemon PID files
  /var/torrus/cache/    Renderer cache
  /var/torrus/db/       Configuration databases
  /var/torrus/session_data/  Web interface session files
  /srv/torrus/collector_rrd/  Default directory for collector
                              generated RRD files

FHS compliant layout

  /opt/torrus/          Home directory for Torrus distribution files
        |
        +- conf_defaults/  torrus-config.pl and others
        |
        +- bin/         Command-line executables
        |
        +- doc/         POD and TXT documentation files
        |
        +- examples/    Miscelaneous example files
        |
        +- perllib/     Perl libraries
        |
        +- plugins/     Plugins configuration
        |
        +- scripts/     Scripts
        |
        +- sup/         Supplementary files, DTDs, MIBs, color schemas
        |
        +- templates/   Renderer output templates
        |
        +- xmlconfig/   Distrubution XML files
  /etc/opt/torrus/   Site configurable files
        |
        +- conf/        Place for torrus-siteconfig.pl and other siteconfigs
        |
        +- discovery/   Devdiscover input files
        |
        +- xmlconfig/   User XML configuration files
  /opt/torrus/share/man/  Place for man pages. All articles will have the
                          prefix C<torrus_>
  /var/log/torrus/      Daemon logfiles
  /var/run/torrus/      Daemon PID files
  /var/torrus/cache/    Renderer cache
  /var/torrus/session_data/  Web interface session files
  /srv/torrus/db/       Configuration databases
  /srv/torrus/collector_rrd/  Default directory for collector
                              generated RRD files

New plugins design

Unlike RRFW, the plugins in Torrus will be installed independently. This will allow to easily add new plugins to an existing installation.

The Torrus installer stores all important variable settings in a special file, conf_defaults/instvars. Then the plugin installer is able to access the settings without accessing the Torrus distribution directory.

There is a helper utility, install_plugin, which applies all configure variables to the plugin configuration utility. It follows then the standard installation way:

 ./configure && make && make install

Thus the OS-dependent package installators may follow the standard configuration procedure, while those who manually install the software, will use the helper.

There are two special directories: /usr/local/torrus/plugins/torrus-config and /usr/local/torrus/plugins/devdiscover-config. Plugins are allowed to add Perl files there. They will be automatically require'd by torrus-config.pl and devdiscover-config.pl.

Authors

Copyright (c) 2004 Stanislav Sinyagin