--------------------------------------------------------------------------------
Merging other init systems to cinit,
Nico Schottelius, 2005-06-02 (Last Modified: 2005-06-11)
--------------------------------------------------------------------------------

1. Preamble
2. General to do
3. Create a script


1. Preamble

There is no tool available to merge any existing init-system-configuration
to cinit style. This is not because the author of cinit does not
care about support for that. He simply he has

   a) no access to every init-system available
   b) not the time to analyze every init system

He instead spends the time to improve and bugfix cinit.
This does not mean that he does not accepts scripts, which do the work.
In fact, creating and submitting a merge tool is much appreciated!


2. General to do

   1. Choose your target init and possibly target platform:
      - sysvinit may be different on AIX, SuSE and Debian
      - /etc/rc may look different on each *BSD
      - Sometimes even same platforms differ in versions:
         SuSE 5.1 uses a different configuration then SuSE 9.0

      So decide whether you want and can write a general merge tool
      or if you have to specialize.
      After deciding, name the script you want to write with the following
      syntax:

         cinit-merge.$init-$platform-$version

         $platform and $version (either both or only platform) can be omitted.

      Examples:

         cinit-merge.sysvinit-debian-3.0
         cinit-merge.minit
   
   2. Analyze how it works, detect the mechanism in it
      
      Your script has to detect if dependencies exist and resolve
      them. It has to take care of special configurations and possibly
      warn the user.


3. Create a script

Now, after you learned how  the old init system works, you can start creating
the merge-script (naming see above).

This merge script
   a) will perhaps not cover full old system (if so, warnings should be printed
   b) should try to avoid using old (shell)-scripts, as starting
      a shell for every service needed makes starting up slow
   c) will include some basic features, that are needed everytime on this
      platform (setting kernel configuration, hostname, etc)
