use $(LIBENSCVECTOR) instead of libensc_vector.a
[util-vserver.git] / util-vserver / doc / configuration.xml
index b86fec8..38e5741 100644 (file)
-<?xml version="1.0"?>
-<!DOCTYPE cfgdirdoc SYSTEM "configuration.dtd" [
-<!ENTITY init-scriptlet-params
-         "<params>
-           <param id='vserver-dir'>
-             <description>The configuration directory of the current vserver</description>
-           </param>
-           <param id='vserver-name'>
-             <description>The name of the current vserver</description>
-           </param>
-           <param id='action'>
-             <description>The fixed value of the current action (e.g. 'prepre-start', 'post-stop', ...).</description>
-           </param>
-         </params>">
-<!ENTITY init-script-text     "The scriptlet">
-<!ENTITY init-dir-text        "A directory with scriptlets">
-<!ENTITY init-dir-script-text "A scriptlet">
-
-<!ENTITY init-prepre-start "which will be executed before the network-interfaces are enabled
-                           and the directories are mounted.">
-<!ENTITY init-pre-start  "which will be executed after network-interfaces were enabled and
-                          the directories mounted, but before the vserver itself has been
-                          started.">
-<!ENTITY init-post-start "which will be executed after the vserver has been started.">
-<!ENTITY init-pre-stop   "which will be executed before the vserver will be stopped.">
-<!ENTITY init-post-stop  "which will be executed after the vserver has been stopped, but
-                         before the directories will be umounted and the the interfaces
-                          disabled.">
-<!ENTITY init-postpost-stop "which will be executed after the vserver has been stopped
-                            completely.">
-]>
-
-<cfgdirdoc>
-  <topleveldir type="confdir">
-    <description>The base configuration directory.</description>
-
-    <dir name=".defaults" type="fixed" optional="yes">
-      <dir name="init" type="fixed">
-       <file name="mtab">
-         <description>Default mtab-file</description>
-       </file>
-      </dir>
-
-      <symlink name="vdirbase">
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE database SYSTEM "configuration.dtd" []>
+<!-- $Id$ -->
+
+<database xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:noNamespaceSchemaLocation="file:configuration.xsd">
+
+  <!-- Global configuration -->
+  <collection name=".defaults" use="optional">
+    <collection name="init" type="fixed">
+      <data name="mtab">
+       <description>Default mtab file</description>
+      </data>
+    </collection>
+
+    <link name="vdirbase">
+      <default>/vservers</default>
+      <description>A link to the default vserver rootdirectory.</description>
+    </link>
+
+
+    <boolean name="nonamespace">
+      <description>
+Disable namespace usage globally. It can be overridden for a single
+vserver by setting the 'namespace' flag there.
+
+In this mode the /vservers directory must have the 'barrier'
+attribute. Else, common chroot(2) exploits are possible.
+      </description>
+    </boolean>
+
+    <link name="run.rev">
+      <description>
+Path of the vserver run reverse directory. This directory contains
+symlinks named with XID numbers which point back to the configuration
+directory of vservers. Under kernel 2.4 this is required for the XID
+to VSERVER mapping; Under kernel 2.6 it is unused.
+
+NOTE: this link exists in 0.30.202+ only; in previous versions it was
+a vserver specific setting.
+      </description>
+    </link>
+    
+    <collection name="apps">
+      <collection name="pkgmgmt">
+       <link name="base">
+         <default>/vservers/.pkg</default>
+       </link> 
+       <data name="apt.conf">
+         <description>The default apt.conf which is going to be used. It is overridden by
+distribution specific configuration file.
+          </description>
+       </data>
+      </collection>
+      
+      <collection name="debootstrap">
+       <scalar name="mirror">
+         <description>
+The Debian mirror to use with the 'debootstrap' program
+          </description>
+       </scalar>
+       <scalar name="uri">
+         <description>
+When the 'debootstrap' package is not installed; fetch it from this
+uri and install it at a temporary place.
+          </description>
+       </scalar>
+      </collection>
+
+      <collection name="vshelper">
+       <link name="logfile">
+         <description>
+The file where output will be logged to when 'vshelper' is invoked
+from the kernel. This should point somewhere e.g. into /var/log.
+          </description>
+       </link>
+
+       <collection name="vshelper-methods">
+         <program name="handler" type="symbolic">
+           <description>
+See vshelper/action.
+            </description>
+         </program>
+       </collection>
+
+       <boolean name="disabled">
+         <description>
+When existing, the vshelper functionality will be disabled for all
+vservers.
+          </description>
+       </boolean>
+
+       <boolean name="debug">
+         <description>
+When existing, the vshelper execution will be traced.
+          </description>
+       </boolean>
+       
+       <boolean name="warning-disabled">
+         <description>
+When existing, sanity checks for the vshelper functionality will be
+skipped.
+          </description>
+       </boolean>
+
+      </collection>
+      
+      <collection name="vprocunhide">
+       <list name="files">
+         <description>
+A list of files which will be made visibly by vprocunhide. Wildcards are
+allowed and anything ending in '/' will be processed recursively. When this file exists,
+it overrides the defaults in SYSDEFAULTDIR/vprocunhide-files. The entries there must be
+absolute filenames inclusive the leading '/proc'.
+          </description>
+       </list>
+      </collection>
+      
+      <collection name="init">
+       <link name="tty">
+         <description>
+A symlink to the TTY device where input/output will be redirected from/to
+at startup via initscript.
+          </description>
+       </link>
+      </collection>
+      
+      <collection name="vunify">
+       <list name="exclude">
+         <description>Static list of excluded files.</description>
+       </list>
+
+       <collection name="hash" since="0.30.205">
+         <description>
+A directory which will be used as the storage place for the 'vhashify'
+command.
+          </description>
+         <link name="id" type="symbolic">
+           <description>
+Points to a directory within the filesystems which are used for the
+vservers. There must be not more than one of such a directory per
+filesystem.
+            </description>
+         </link>
+
+         <scalar name="method" since="0.30.299">
+           <default>SHA1</default>
+           <description>The used hash method.</description>
+         </scalar>
+       </collection>
+
+       <boolean name="pkgmgmt-ignore" default="off" since="0.30.205">
+         <description>
+When existing, information from packagemanagement will not be used to
+create dynamic exclude-lists.
+          </description>
+       </boolean>
+
+       <boolean name="pgkmgmt-force" default="off" since="0.30.205">
+         <description>
+When existing, information from packagemanagement will be used to
+create dynamic exclude-lists. This option requires that (a known)
+packagemanagement is configured for the vserver; else the requested
+operation will fail. Most tools assume 'on' as the default value.
+          </description>
+       </boolean>
+
+      </collection>
+    </collection>
+  </collection>
+    
+  <collection name=".distributions" use="optional">
+    <collection name="dist" type="symbolic">
+      <scalar name="dev">
        <description></description>
-       <default>/vservers</default>
-      </symlink>
-
-      <dir name="apps" type="fixed">
-       <dir name="pkgmgmt" type="fixed">
-         <symlink name="base">
-           <description></description>
-           <default>/vservers/.pkg</default>
-         </symlink>
-
-         <file name="apt.conf">
-           <description>The default apt.conf which is going to be used. It is overridden by
-           distribution specific configuration file.</description>
-         </file>
-       </dir>
-
-       <dir name="debootstrap" type="fixed">
-         <file name="mirror">
-           <description>The Debian mirror which is used for 'debootstrap'.</description>
-         </file>
-
-         <file name="uri">
-           <description>When the 'debootstrap' package is not installed; fetch it from this uri and
-           install it at a temporary place.</description>
-         </file>
-       </dir>
-
-       <dir name="vprocunhide" type="fixed">
-         <file name="files">
-           <description>A list of files which will be made visibly by vprocunhide. Wildcards are
-           allowed and anything ending in '/' will be processed recursively. When this file exists,
-           it overrides the defaults in SYSDEFAULTDIR/vprocunhide-files.</description>
-         </file>
-       </dir>
-
-       <dir name="init" type="fixed">
-         <symlink name="tty">
-           <description>A symlink to the TTY device where input/output will be redirected from/to
-           at startup via initscript.</description>
-         </symlink>
-       </dir>
-      </dir>
-    </dir>
-
-    <dir name=".distributions" type="fixed" optional="yes">
-      <dir name="dist" type="symbolic">
-       <file name="dev">
-         <description></description>
-       </file>
-
-       <file name="apt.conf">
-         <description>The default apt.conf which is going to be used. It overrides the apt.conf
-         from CONFDIR/.defaults/apps/pkgmgmt.</description>
-       </file>
-
-       <script name="initpre">
-         <description>Script which will be executed before packages will be installed.</description>
-         <params>
-           <param id="confdir">
-             <description>The configuration directory of the vserver which is going to be set
-             up.</description>
-           </param>
-
-           <param id="vserver">
-             <description>The pathname of the vserver binary.</description>
-           </param>
-         </params>
-       </script>
-
-       <script name="initpost">
-         <description>Script which will be executed after packages are installed.</description>
-         <params>
-           <param id="confdir">
-             <description>The configuration directory of the vserver which is going to be set
-             up.</description>
-           </param>
-
-           <param id="vserver">
-             <description>The pathname of the vserver binary.</description>
-           </param>
-         </params>
-       </script>
-
-       <dir name="pkgs" type="fixed">
-         <description>Contains files with packages.</description>
-         <file name="list" type="symbolic">
-           <description>File which contains the name of packages. On top of file the special
-           keywords '--reinstall' and '--can-fail' are possible.</description>
-         </file>
-       </dir>
-
-       <dir name="pubkeys" type="fixed">
-         <description>Directory with GPG pubkeys which are used to sign the packages of this
-         distribution.</description>
-       </dir>
-
-       <dir name="apt" type="fixed">
-         <description>Default content of the /etc/apt/ directory.</description>
-       </dir>
-
-       <dir name="rpm" type="fixed">
-         <description>Default content of the /etc/rpm directory.</description>
-       </dir>
-
-       <symlink name="rpmlib">
-         <description>Directory which overrides /usr/lib/rpm.</description>
-       </symlink>
+      </scalar>
+      <collection name="yum">
+       <description>
+The default, yum-related content of the /etc directory.
+        </description>
+       <scalar name="yum.conf">
+         <description>
+The master yum configuration file. It supports the @YUMETCDIR@,
+@YUMCACHEDIR@ and @YUMLOGDIR@ placeholder which will be replaced at
+'vserver ... build' time.
+          </description>
+       </scalar>
+      </collection>
+      <collection name="yum.repos.d">
+       <description>A directory with yum repositories.</description>
+      </collection>
+      <data name="apt.conf">
+       <description>
+The default apt.conf which is going to be used. It overrides the
+apt.conf from CONFDIR/.defaults/apps/pkgmgmt.
+        </description>
+      </data>
+      <program name="initpre">
+       <description>
+Script which will be executed before packages will be installed.
+          </description>
+       <parameterList>
+         <parameter name="confdir">
+           <description>
+The configuration directory of the vserver which is going to be set up.
+            </description>
+         </parameter>
+         <parameter name="vserver">
+           <description>
+The pathname of the vserver binary.
+            </description>
+         </parameter>
+       </parameterList>
+      </program>
+      <program name="initpost">
+       <description>
+Script which will be executed after packages are installed.
+          </description>
+       <parameterList>
+         <parameter name="confdir">
+           <description>
+The configuration directory of the vserver which is going to be set up.
+            </description>
+         </parameter>
+         <parameter name="vserver">
+           <description>
+The pathname of the vserver binary.
+            </description>
+         </parameter>
+       </parameterList>
+      </program>
+      
+      <collection name="pkgs">
+       <description>
+Contains files with packages.
+        </description>
+       <list name="list">
+         <description>
+File which contains the name of packages. On top of file the special
+keywords '--reinstall' and '--can-fail' are possible.
+          </description>
+       </list>
+      </collection>
+      
+      <collection name="pubkeys">
+       <description>
+Directory with GPG pubkeys which are used to sign the packages of this
+distribution.
+        </description>
+      </collection>
+      
+      <collection name="apt">
+       <description>
+Default content of the /etc/apt/ directory.
+        </description>
+      </collection>
+      
+      <collection name="rpm">
+       <description>
+Default content of the /etc/rpm directory.
+        </description>
+      </collection>
+      
+      <link name="rpmlib">
+       <description>
+Directory which overrides /usr/lib/rpm.
+        </description>
+      </link>
+      <link name="execdir">
+       <description>
+Directory with all executables and libraries which are required for
+this distribution.
+        </description>
+      </link>
+    </collection>
+  </collection>
+  
+  <!-- Vserver configuration -->
+  <collection name="vserver-name" type="symbolic">
+    <description>
+The configuration directory for the vserver vserver-name.
+    </description>
+    
+    <link name="vdir">
+      <description>
+Path of the vserver root directory
+      </description>
+    </link>
+
+    <link name="run">
+      <description>
+Points to a file which will contain the XID of the running vserver. When
+the vserver is stopped, this can be a dangling symlink.
+      </description>
+    </link>
+
+    <list name="bcapabilities">
+      <description>
+[experimental; name is subject of possible change] Contains the system capabilities. See
+<ulink url="http://savannah.nongnu.org/cgi-bin/viewcvs/util-vserver/util-vserver/lib/bcaps-v13.c?rev=HEAD">lib/bcaps-v13.c</ulink>
+for possible values.
+      </description>
+    </list>
+    <list name="ccapabilities">
+      <description>
+[experimental; name is subject of possible change] Contains the
+context capabilities. See <ulink
+url="http://savannah.nongnu.org/cgi-bin/viewcvs/util-vserver/util-vserver/lib/ccaps-v13.c?rev=HEAD">lib/ccaps-v13.c</ulink>
+for possible values.
+      </description>
+    </list>
+
+    <boolean name="namespace">
+      <description>
+Overrides the global 'nonamespace' flag and enables namespace usage
+for the current vserver.
+      </description>
+    </boolean>
+
+    <boolean name="nonamespace">
+      <description>
+Disables namespace usage for the current vserver.
+
+In this mode the /vservers directory must have the 'barrier'
+attribute. Else, common chroot(2) exploits are possible.
+      </description>
+    </boolean>
+
+    <hash name="schedule">
+      <description>
+[experimental; name is subject of possible change] Contains the
+scheduler parameters, one per line.
+
+The Hard CPU limit uses a mechanism called a Token Bucket.  the
+concept is simple: you have a bucket of a certain size which is
+filled with a specified amount R of tokens each interval T until the
+maximum is reached (excess tokens are spilled). At each timer tick,
+a running process consumes one token from the bucket, unless the
+bucket is empty. If the bucket is empty the process is put in the
+hold queue. When the bucket has been refilled to at least M tokens,
+all on hold processes are rescheduled.
+      </description>
+      <keys>
+       <key name="fill-rate">
+         <description>
+Amount of tokens append to the bucket each interval.
+            </description>
+       </key>
+       <key name="interval">
+         <description>
+The intervall between refills of amount 'fill_rate'. This value is
+express in ticks.
+          </description>
+       </key>
+       <key name="tokens">
+         <description>
+Initial bucket contents.
+          </description>
+       </key>
+       <key name="tokens-min">
+         <description>
+The minimum amount of tokens required to unhold processes
+          </description>
+       </key>
+       <key name="tokens-max">
+         <description>
+The bucket size.
+          </description>
+       </key>
+       <key name="priority-bias">
+         <description>
+???
+          </description>
+       </key>
+      </keys>
+    </hash>
+    <scalar name="name">
+      <description>
+Contains the name of the vserver. When not given, the basename of the directory
+will be assumed as this name.
+      </description>
+    </scalar>
+    <scalar name="nice">
+      <description>
+The nice-level on which the vserver will be started.
+      </description>
+    </scalar>
+    <list name="capabilities">
+      <description>
+Contains per line a capability. This file is used for the 2.4 kernel
+only; for 2.6 use 'bcapabilities'.
+      </description>
+    </list>
+    <scalar name="shell">
+      <description>
+Contains the pathname of the shell which will be used by the "vserver
+... enter" command.
+      </description>
+    </scalar>
+    <list name="flags">
+      <description>
+Contains per line a flag. See <ulink
+url="http://savannah.nongnu.org/cgi-bin/viewcvs/util-vserver/util-vserver/lib/cflags-v13.c?rev=HEAD">lib/cflags-v13.c</ulink>
+for possible values.
+      </description>
+      <elements>
+       <element name="fakeinit">
+         <description>
+The new process will believe it is process number 1. Useful to run a
+real /sbin/init in a vserver. Warning: this flag should not be used
+unless you know what you are doing. Often, it is better to use the
+'plain' initstyle.
+          </description>
+       </element>
+       <element name="lock">
+         <description>
+The new process is trapped and can't use chcontext anymore.
+          </description>
+       </element>
+       <element name="sched">
+         <description>
+The new process and its children will share a common
+          </description>
+       </element>
+       <element name="nproc">
+         <description>
+Limit the number of process in the vserver according to
+ulimit setting. Normally, ulimit is a per user thing.
+With this flag, it becomes a per vserver thing.  
+          </description>
+       </element>
+       <element name="private">
+         <description>
+No one can join this security context once created.
+          </description>
+       </element>
+       <element name="ulimit">
+         <description>
+Apply the current ulimit to the whole context
+          </description>
+       </element>
+      </elements>
+    </list>
+    <scalar name="context">
+      <description>
+Contains the context which shall be used for the vserver.
+        </description>
+    </scalar>
+    <data name="fstab">
+      <description>
+The fstab file for the vserver. Entries in this file will be mounted
+within the network context of the vserver; this means that mount will
+be called as 'chbind &lt;options&gt; mount ...'. Use the 'fstab.local'
+file when you do not want this behavior, but in most cases the 'fstab'
+file should be used.
+      </description>
+    </data>
+    <data name="fstab.local">
+      <description>
+The fstab file for the vserver. In opposite to the normal 'fstab'
+file, the mounting happens in the local network context. Currently
+there is no way to mix entries of both files; 'fstab' will be always
+processed before 'fstab.local'.
+      </description>
+    </data>
+    
+    <collection name="apps">
+      <collection name="init">
+       <data name="mtab">
+         <description>
+The initial-mtab which will be used for the vserver.
+          </description>
+       </data>
+       
+       <scalar name="style">
+         <description>
+Contains the init-style.
+          </description>
+         <restriction>
+           <enumeration value="sysv"/>
+           <enumeration value="plain"/>
+           <enumeration value="minit"/>
+           <enumeration value="gento"/>
+         </restriction>
+       </scalar>
+       
+       <scalar name="runlevel">
+         <description>The start runlevel.</description>
+       </scalar>
+       
+       <scalar name="runlevel.start">
+         <description>The start runlevel.</description>
+       </scalar>
+       
+       <scalar name="runlevel.stop">
+         <description>The stop runlevel.</description>
+       </scalar>
+       
+       <scalar name="killseq">
+         <description>
+Contains the 'signal [wait signal]*' sequence which is used to stop
+the vserver.
+          </description>
+       </scalar>
+       
+       <list name="cmd.start">
+         <description>
+The command which is used to start the vserver. Each option must be on
+a separate line.
+          </description>
+       </list>
+       
+       <list name="cmd.start-sync">
+         <description>
+The command which is used to wait on the vserver after it has been
+started. Each option must be on a separate line. This file will be
+ignored when the 'sync' does not exist and the '--sync' option was not
+used.
+         </description>
+       </list>
+       
+       <list name="cmd.stop">
+         <description>
+The command which is used to stop the vserver. Each option must be on
+a separate line.
+          </description>
+       </list>
+       
+       <list name="cmd.stop-sync">
+         <description>
+The command which is used to wait on the vserver after it has been
+stopped. Each option must be on a separate line. This file will be
+ignored when the 'sync' does not exist and the '--sync' option was not
+used.
+          </description>
+       </list>
+       
+       <list name="cmd.prepare">
+         <description>
+The command which is used to setup the init-system (e.g. to set the
+runlevel in the utmp-file). Each option must be on a separate line.
+         </description>
+       </list>
        
-       <symlink name="execdir">
-         <description>Directory with all executables and libraries which are required for this
-         distribution.</description>
-       </symlink>
-      </dir>
-    </dir> <!-- .distributions -->
-
-    <dir name="vserver-name" type="symbolic">
-      <description>The configuration directory for the vserver vserver-name.</description>
-
-      <file name="hostname">
-       <description>Contains the hostname of the vserver.</description>
-      </file>
-
-      <file name="name">
-       <description>Contains the name of the vserver. When not given, the basename of the directory
-       will be assumed as this name.</description>
-      </file>
-
-      <file name="domainname">
-       <description>The domainname of the vserver.</description>
-      </file>
-
-      <file name="nice">
-       <description>The nice-level on which the vserver will be started.</description>
-      </file>
-
-      <file name="capabilities">
-       <description>Contains per line a capability.</description>
-      </file>
-
-      <file name="shell">
-       <description>Contains the pathname of the shell which will be used by the "vserver ... enter"
-       command.</description>
-      </file>
-
-      <file name="flags">
-       <description>Contains per line a flag.</description>
-      </file>
-
-      <file name="context">
-       <description>Contains the context which shall be used for the vserver.</description>
-      </file>
-
-      <file name="fstab">
-       <description>The fstab file for the vserver.</description>
-      </file>
+       <boolean name="sync">
+         <description>
+If this file is not present, all 'cmd.*-sync files will be ignored.
+           </description>
+       </boolean>
+       
+       <link name="tty">
+         <description>
+A symlink to the TTY device where input/output will be redirected
+from/to at startup via initscript.
+         </description>
+       </link>
+       
+       <scalar name="mark">
+         <description>
+This file is used to mark group of vservers which shall be started/stopped
+together by the initscript. Content is a simple string like 'default'.
+         </description>
+       </scalar>
+       
+       <list name="depends">
+         <description>
+This file is used to configure vservers which must be running before
+the current vserver can be started. At shutdown, the current vserver
+will be stopped before its dependencies. Content of this file are
+vserver ids (one name per line).
+          </description>
+       </list>
+      </collection>
+      
+      <collection name="vshelper">
+       <scalar name="sync-timeout">
+         <default>30</default>
+         <description>
+The timeout in seconds which is used when synchronising vserver
+startup/shutdown with the vshelper. When no set, 30 seconds will be
+assumed.
+         </description>
+       </scalar>
+       
+       <scalar name="action">
+         <default>restart</default>
+         <description>
+The action which is going to be executed when a vshelper event occurs. The
+default value is 'restart', but there can be defined own methods by placing
+scripts into the 'vshelper-methods' directories. These scripts are fed with
+the same arguments as the 'vshelper' script.
+          </description>
+       </scalar>
+       
+       <program name="event" type="symbolic">
+         <description>
+When existing. these scripts will be executed *instead* of the default
+handler defined in 'action'. Their name must match the event which
+caused the execution of 'vshelper'; e.g. 'restart' or 'poweroff'. See
+the vs_reboot() function in the kernel for more details.
+          </description>
+         <parameterList>
+           <parameter name="xid">
+             <description>
+The xid of the context calling the vshelper
+              </description>
+           </parameter>
+           <parameter name="event">
+             <description>
+The reboot-event.
+              </description>
+           </parameter>
+         </parameterList>
+       </program>
+       
+       <boolean name="disabled">
+         <description>
+When existing, the vshelper functionality will be disabled for this
+vserver.
+          </description>
+       </boolean>
+
+       <boolean name="debug">
+         <description>
+When existing, the vshelper execution will be traced for this vserver.
+          </description>
+       </boolean>
+       
+       <boolean name="warning-disabled">
+         <description>
+When existing, sanity checks for the vshelper functionality will be
+skipped.
+          </description>
+       </boolean>
+       
+      </collection>
+      
+      <collection name="vshelper-methods">
+       <program name="handler" type="symbolic">
+         <description>
+See vshelper/action.
+          </description>
+       </program>
+      </collection>
+      
+      <collection name="vunify">
+       <description>
+This directory contains configuration data required for vserver
+unification.
+        </description>
+       
+       <list name="exclude">
+         <description>
+Static list of excluded files. This list supports an rsync syntax:
+when a file is prefixed by '+', it is a candidate for unification;
+when there is no prefix or a '-' it will be excluded. Shell-wildcards
+are allowed for the filenames.
+          </description>
+       </list>
+       
+       <link name="refserver.X" type="symbolic">
+         <description>
+These are symlinks to the configuration directory
+(e.g. CONFDIR/vservers/&lt;id&gt;) of a refserver. There may be
+multiple such symlinks but they must be prefixed by 'refserver.' and
+will be processed in alphanumerical order.
+          </description>
+       </link>
+
+       <collection name="hash" since="0.30.205">
+         <description>
+A directory which will be used as the storage place for the 'vhashify'
+command.
+          </description>
+         <link name="id" type="symbolic">
+           <description>
+Points to a directory within the filesystems which are used for the
+vservers. There must be not more than one of such a directory per
+filesystem.
+            </description>
+         </link>
+
+         <scalar name="method"  since="0.30.299">
+           <default>SHA1</default>
+           <description>The used hash method.</description>
+         </scalar>
+       </collection>
+
+       <boolean name="pkgmgmt-ignore" default="off" since="0.30.205">
+         <description>
+When existing, information from packagemanagement will not be used to
+create dynamic exclude-lists.
+          </description>
+       </boolean>
+
+       <boolean name="pgkmgmt-force" default="off" since="0.30.205">
+         <description>
+When existing, information from packagemanagement will be used to
+create dynamic exclude-lists. This option requires that (a known)
+packagemanagement is configured for the vserver; else the requested
+operation will fail. Most tools assume 'on' as the default value.
+          </description>
+       </boolean>
+       
+      </collection>
+    </collection>
+    
+    <collection name="scripts">
+      <description>
+A directory for scripts. By default, when one of these scripts will be
+executed, the execution of defaultscripts (within .../.defaults/scripts)
+will be skipped. To execute them nevertheless, the $DONT_SKIP_DEFAULTS
+environment variable must be set by one of the in-shellcontext scripts
+(the non-executable ones).
+      </description>
+      
+      <program name="prepre-start">
+       <description>
+The scriptlet which will be executed before the network-interfaces are
+enabled and the directories are mounted."
+        </description>
+       <parameterList>
+         <parameter name="vserver-dir">
+           <description>
+The configuration directory of the current vserver.
+            </description>
+         </parameter>
+         <parameter name="vserver-name">
+           <description>
+The name of the current vserver.
+            </description>
+         </parameter>
+         <parameter name="action">
+           <description>
+The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
+            </description>
+         </parameter>
+       </parameterList>
+      </program>
+      <collection name="prepre-start.d">
+       <description>
+Repository of prepre-start like scripts
+        </description>                                                                                                                 
+       <program name="script" type="symbolic">
+         <description>See prepre-start.</description>
+         <parameterList>
+           <parameter name="vserver-dir">
+             <description>
+The configuration directory of the current vserver.
+              </description>
+           </parameter>
+           <parameter name="vserver-name">
+             <description>
+The name of the current vserver.
+              </description>
+           </parameter>
+           <parameter name="action">
+             <description>
+The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
+              </description>
+           </parameter>
+         </parameterList>
+       </program>
+      </collection>
+      
+      <program name="pre-start">
+       <description>
+The scriptlet which will be executed after network-interfaces were
+enabled and the directories mounted, but before the vserver itself has
+been started.
+        </description>
+       <parameterList>
+         <parameter name="vserver-dir">
+           <description>
+The configuration directory of the current vserver.
+            </description>
+         </parameter>
+         <parameter name="vserver-name">
+           <description>
+The name of the current vserver.
+            </description>
+         </parameter>
+         <parameter name="action">
+           <description>
+The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
+            </description>
+         </parameter>
+       </parameterList>
+      </program>
+      <collection name="pre-start.d">
+       <description>
+Repository of pre-start like scripts
+        </description>                                                                                                                 
+       <program name="script" type="symbolic">
+         <description>See pre-start.</description>
+         <parameterList>
+           <parameter name="vserver-dir">
+             <description>
+The configuration directory of the current vserver.
+              </description>
+           </parameter>
+           <parameter name="vserver-name">
+             <description>The name of the current vserver.</description>
+           </parameter>
+           <parameter name="action">
+             <description>
+The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
+              </description>
+           </parameter>
+         </parameterList>
+       </program>
+      </collection>
       
-      <dir name="apps" type="fixed">
-       <dir name="init" type="fixed">
-         <file name="mtab">
-           <description>The initial-mtab which will be used for the vserver.</description>
-         </file>
-
-         <file name="style">
-           <description>Contains the init-style; possible values are 'sysv', 'plain' and
-           'minit'.</description>
-         </file>
-
-         <file name="runlevel">
-           <description>The start runlevel.</description>
-         </file>
-
-         <file name="runlevel.start">
-           <description>The start runlevel.</description>
-         </file>
-
-         <file name="runlevel.stop">
-           <description>The stop runlevel.</description>
-         </file>
-
-         <file name="killseq">
-           <description>Contains the 'signal [wait signal]*' sequence which is used to stop the
-           vserver.</description>
-         </file>
-
-         <file name="cmd.start">
-           <description>The command which is used to start the vserver. Each option must be on a
-           separate line.</description>
-         </file>
-
-         <file name="cmd.start-sync">
-           <description>The command which is used to wait on the vserver after it has been
-           started. Each option must be on a separate line. This file will be ignored when the
-           'sync' does not exist and the '--sync' option was not used.</description>
-         </file>
-         
-         <file name="cmd.stop">
-           <description>The command which is used to stop the vserver. Each option must be on a
-           separate line.</description>
-         </file>
-
-         <file name="cmd.stop-sync">
-           <description>The command which is used to wait on the vserver after it has been
-           stopped. Each option must be on a separate line. This file will be ignored when the
-           'sync' does not exist and the '--sync' option was not used.</description>
-         </file>
-
-         <file name="cmd.prepare">
-           <description>The command which is used to setup the init-system (e.g. to set the runlevel
-           in the utmp-file). Each option must be on a separate line.</description>
-         </file>
-
-         <file name="sync">
-           <description>Without this file, the 'cmd.*-sync' files will be ignored.</description>
-         </file>
-
-         <symlink name="tty">
-           <description>A symlink to the TTY device where input/output will be redirected from/to
-           at startup via initscript.</description>
-         </symlink>
-       </dir>
-      </dir>
-
-      <dir name="scripts" type="fixed">
-       <script name="prepre-start">
-         <description>&init-script-text; &init-prepre-start;</description>
-         &init-scriptlet-params;
-       </script>
-       <dir name="prepre-start.d" type="fixed">
-         <description>&init-dir-text; &init-prepre-start;</description>
-
-         <script name="script">
-           <description>&init-dir-script-text; &init-prepre-start;</description>
-           &init-scriptlet-params;
-         </script>
-       </dir>
-
-       <script name="pre-start">
-         <description>&init-script-text; &init-pre-start;</description>
-         &init-scriptlet-params;
-       </script>
-
-       <dir name="pre-start.d">
-         <description>&init-dir-text; &init-pre-start;</description>
-         
-         <script name="script">
-           <description>&init-dir-script-text; &init-pre-start;</description>
-           &init-scriptlet-params;
-         </script>
-       </dir>
-
-       <script name="post-start">
-         <description>&init-script-text; &init-post-start;</description>
-         &init-scriptlet-params;
-       </script>
-
-       <dir name="post-start.d">
-         <description>&init-dir-text; &init-post-start;</description>
-         
-         <script name="script">
-           <description>&init-dir-script-text; &init-post-start;</description>
-           &init-scriptlet-params;
-         </script>
-       </dir>
-
-       <script name="pre-stop">
-         <description>&init-script-text; &init-pre-stop;</description>
-         &init-scriptlet-params;
-       </script>
-
-       <dir name="pre-stop.d" type="fixed">
-         <description>&init-dir-text; &init-pre-stop;</description>
-         <script name="script">
-           <description>&init-dir-script-text; &init-pre-stop;</description>
-           &init-scriptlet-params;
-         </script>
-       </dir>
-
-       <script name="post-stop">
-         <description>&init-script-text; &init-post-stop;</description>
-         &init-scriptlet-params;
-       </script>
-
-       <dir name="post-stop.d" type="fixed">
-         <description>&init-dir-text; &init-post-stop;</description>
-         <script name="script">
-           <description>&init-dir-script-text; &init-post-stop;</description>
-           &init-scriptlet-params;
-         </script>
-       </dir>
-
-       <script name="postpost-stop">
-         <description>&init-script-text; &init-postpost-stop;</description>
-         &init-scriptlet-params;
-       </script>
-
-       <dir name="postpost-stop.d" type="fixed">
-         <description>&init-dir-text; &init-postpost-stop;</description>
-         <script name="script">
-           <description>&init-dir-script-text; &init-postpost-stop;</description>
-           &init-scriptlet-params;
-         </script>
-       </dir>
-      </dir>
-
 
+      <program name="post-start">
+       <description>
+The scriptlet which will be executed after the vserver has been started.
+        </description>
+       <parameterList>
+         <parameter name="vserver-dir">
+           <description>The configuration directory of the current vserver.</description>
+         </parameter>
+         <parameter name="vserver-name">
+           <description>The name of the current vserver.</description>
+         </parameter>
+         <parameter name="action">
+           <description>
+The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
+            </description>
+         </parameter>
+       </parameterList>
+      </program>
+      <collection name="post-start.d">
+       <description>Repository of post-start like scripts</description>
+       <program name="script" type="symbolic">
+         <description>See post-start.</description>
+         <parameterList>
+           <parameter name="vserver-dir">
+             <description>The configuration directory of the current vserver.</description>
+           </parameter>
+           <parameter name="vserver-name">
+             <description>The name of the current vserver.</description>
+           </parameter>
+           <parameter name="action">
+             <description>
+The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
+              </description>
+           </parameter>
+         </parameterList>
+       </program>
+      </collection>
+
+
+      <program name="pre-stop">
+       <description>
+The scriptlet which will be executed before the vserver will be stopped.
+        </description>
+       <parameterList>
+         <parameter name="vserver-dir">
+           <description>The configuration directory of the current vserver.</description>
+         </parameter>
+         <parameter name="vserver-name">
+           <description>The name of the current vserver.</description>
+         </parameter>
+         <parameter name="action">
+           <description>
+The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
+            </description>
+         </parameter>
+       </parameterList>
+      </program>
+      <collection name="pre-stop.d">
+       <description>
+Repository of pre-stop like scripts
+        </description>                                                                                                                 
+       <program name="script" type="symbolic">
+         <description>See pre-stop.</description>
+         <parameterList>
+           <parameter name="vserver-dir">
+             <description>The configuration directory of the current vserver.</description>
+           </parameter>
+           <parameter name="vserver-name">
+             <description>The name of the current vserver.</description>
+           </parameter>
+           <parameter name="action">
+             <description>
+The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
+              </description>
+           </parameter>
+         </parameterList>
+       </program>
+      </collection>
+
+      <program name="post-stop">
+       <description>
+The scriptlet which will be executed after the vserver has been
+stopped, but before the directories will be umounted and the the
+interfaces disabled.
+        </description>
+       <parameterList>
+         <parameter name="vserver-dir">
+           <description>The configuration directory of the current vserver.</description>
+         </parameter>
+         <parameter name="vserver-name">
+           <description>The name of the current vserver.</description>
+         </parameter>
+         <parameter name="action">
+           <description>
+The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
+            </description>
+         </parameter>
+       </parameterList>
+      </program>
+      <collection name="post-stop.d">
+       <description>Repository of post-stop like scripts</description>
+       <program name="script" type="symbolic">
+         <description>See post-stop.</description>
+         <parameterList>
+           <parameter name="vserver-dir">
+             <description>The configuration directory of the current vserver.</description>
+           </parameter>
+           <parameter name="vserver-name">
+             <description>The name of the current vserver.</description>
+           </parameter>
+           <parameter name="action">
+             <description>
+The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
+              </description>
+           </parameter>
+         </parameterList>
+       </program>
+      </collection>
+      
+      <program name="postpost-stop">
+       <description>
+The scriptlet which will be executed after the vserver has been stopped
+completely.
+        </description>
+       <parameterList>
+         <parameter name="vserver-dir">
+           <description>The configuration directory of the current vserver.</description>
+         </parameter>
+         <parameter name="vserver-name">
+           <description>The name of the current vserver.</description>
+         </parameter>
+         <parameter name="action">
+           <description>
+The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
+            </description>
+         </parameter>
+       </parameterList>
+      </program>
+      <collection name="postpost-stop.d">
+       <description>Repository of postpost-stop like scripts</description>
+       <program name="script" type="symbolic">
+         <description>See postpost-stop.</description>
+         <parameterList>
+           <parameter name="vserver-dir">
+             <description>The configuration directory of the current vserver.</description>
+           </parameter>
+           <parameter name="vserver-name">
+             <description>The name of the current vserver.</description>
+           </parameter>
+           <parameter name="action">
+             <description>
+The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).
+              </description>
+           </parameter>
+         </parameterList>
+       </program>
+      </collection>
+    </collection>
+    
+    <collection name="interfaces">
+      <scalar name="bcast">
+       <description>The default broadcast address.</description>
+      </scalar>
+      <scalar name="dev">
+       <description>The default network device.</description>
+      </scalar>
+      <scalar name="prefix">
+       <description>The default network prefix-length.</description>
+      </scalar>
+      <scalar name="mask">
+       <description>The default network mask.</description>
+      </scalar>
+      <scalar name="scope">
+       <description>The default scope of the network interfaces.</description>
+      </scalar>
       
-      <dir name="interfaces" type="fixed">
-       <file name="bcast">
-         <description>The deafult broadcast address.</description>
-       </file>
-       <file name="dev">
-         <description>The default network-device.</description>
-       </file>
-       <file name="prefix">
-         <description>The default network-prefix.</description>
-       </file>
-       <file name="mask">
-         <description>The default network-mask.</description>
-       </file>
-       <file name="scope">
-         <description>The default scope of the network interfaces.</description>
-       </file>
-
-       <dir name="iface" type="symbolic">
-         <file name="disabled">
-           <description>When this file exists, this interface will be ignored.</description>
-         </file>
-         
-         <file name="ip">
-           <description>The ip which will be assigned to this interface.</description>
-         </file>
-         <file name="bcast">
-           <description>The broadcast address.</description>
-         </file>
-         <file name="dev">
-           <description>The network-device.</description>
-         </file>
-         <file name="prefix">
-           <description>The network-prefix.</description>
-         </file>
-         <file name="mask">
-           <description>The network-mask.</description>
-         </file>
-         <file name="scope">
-           <description>The scope of the network interfaces.</description>
-         </file>
-         <file name="name">
-           <description>When this file exists, the interface will be named with the text in this file.</description>
-         </file>
-         <file name="nodev">
-           <description>When this file exists, the interface will be assumed to exist already. A
-           former name for this flag was 'only_ip' which is deprecated now.</description>
-         </file>
-       </dir>
-      </dir>
-
-      <dir name="ulimits" type="fixed">
-       <description>A directory with ulimits. Possible resources are cpu, data, fsize, locks,
-       memlock, nofile, nproc, rss and/or stack.</description>
-
-       <file name="resource" type="symbolic">
-         <description>A file which contains the hard- and soft-limit of the given resource in the
-         first line. The special keyword 'inf' is recognized.</description>
-       </file>
-
-       <file name="resource.hard" type="symbolic">
-         <description>A file which contains the hard- of the given resource in the first line. The
-         special keyword 'inf' is recognized.</description>
-       </file>
-
-       <file name="resource.soft" type="symbolic">
-         <description>A file which contains the soft- of the given resource in the first line. The
-         special keyword 'inf' is recognized.</description>
-       </file>
-      </dir>
-
-      <dir name="rlimits" type="fixed">
-       <description>see ulimits</description>
-      </dir>
-
-      <dir name="uts" type="fixed">
-       <file name="context">
-         <description>The context-name of the vserver</description>
-       </file>
-       <file name="sysname">
-         <description>The sysname of the vserver</description>
-       </file>
-       <file name="nodename">
-         <description>The node-/hostname of the vserver</description>
-       </file>
-       <file name="release">
-         <description>The OS-release of the vserver</description>
-       </file>
-       <file name="version">
-         <description>The OS-version of the vserver</description>
-       </file>
-       <file name="machine">
-         <description>The machine-type of the vserver</description>
-       </file>
-       <file name="domainname">
-         <description>The NIS domainname of the vserver</description>
-       </file>
-      </dir>
-    </dir>
-  </topleveldir>
-</cfgdirdoc>
-
-
-<!--
-!! Local Variables:
-!! fill-column: 100
-!! End:
--->
+      <collection name="iface" type="symbolic">
+       <description>
+'iface' is an arbitrary name for the interface; the value itself is
+not important but may be interesting regarding interface-creation and
+usage with 'chbind'. Both happens in alphabetical order and numbers
+like '00' are good names for these directories.
+        </description>
+       
+       <boolean name="disabled">
+         <description>When this file exists, this interface will be ignored.</description>
+       </boolean>
+       
+       <scalar name="ip">
+         <description>The ip which will be assigned to this interface.</description>
+       </scalar>
+       <scalar name="bcast">
+         <description>The broadcast address.</description>
+       </scalar>
+       <scalar name="dev">
+         <description>The network device.</description>
+       </scalar>
+       <scalar name="prefix">
+         <description>The network prefix-length.</description>
+       </scalar>
+       <scalar name="mask">
+         <description>The network mask.</description>
+       </scalar>
+       <scalar name="scope">
+         <description>The scope of the network interface.</description>
+       </scalar>
+       <scalar name="name">
+         <description>
+When this file exists, the interface will be named with the text in this
+file. Without such an entry, the IP will not be shown by 'ifconfig' but
+by 'ip addr ls' only.  Such a labeled interface is known as an "alias"
+also (e.g. 'eth0:foo').
+          </description>
+       </scalar>
+       <boolean name="nodev">
+         <description>
+When this file exists, the interface will be assumed to exist
+already. This can be used to assign primary interfaces which are
+created by the host or another vserver.
+         </description>
+       </boolean>
+      </collection>
+    </collection>
+    
+    <collection name="ulimits">
+      <description>
+A directory with ulimits. Possible resources are cpu, data, fsize,
+locks, memlock, nofile, nproc, rss and/or stack. This configuration
+will be honored for kernel 2.4 only.
+      </description>                                                                                                                 
+      <scalar name="resource" type="symbolic">
+       <description>
+A file which contains the hard- and soft-limit of the given resource
+in the first line. The special keyword 'inf' is recognized.
+       </description>
+      </scalar>                                                                            
+      <scalar name="resource.hard" type="symbolic">
+       <description>
+A file which contains the hard- of the given resource in the first
+line. The special keyword 'inf' is recognized.
+       </description>
+      </scalar>                                                                                             
+      <scalar name="resource.soft" type="symbolic">
+       <description>
+A file which contains the soft- of the given resource in the first
+line. The special keyword 'inf' is recognized.
+       </description>
+      </scalar>
+    </collection>
+    
+    <collection name="rlimits">
+      <description>
+A directory with resource limits. Possible resources are cpu, fsize,
+data, stack, core, rss, nproc, nofile, memlock, as and locks. This
+configuration will be honored for kernel 2.6 only.
+      </description>                                                                                                                 
+      <scalar name="resource" type="symbolic">
+       <description>
+A file which contains the hard- and soft-limit of the given resource
+in the first line. The special keyword 'inf' is recognized.
+       </description>
+      </scalar>                                                                            
+      <scalar name="resource.hard" type="symbolic">
+       <description>
+A file which contains the hard- of the given resource in the first
+line. The special keyword 'inf' is recognized.
+       </description>
+      </scalar>                                                                                             
+      <scalar name="resource.soft" type="symbolic">
+       <description>
+A file which contains the soft- of the given resource in the first
+line. The special keyword 'inf' is recognized.
+       </description>
+      </scalar>
+      <scalar name="resource.min" type="symbolic">
+       <description>
+A file which contains the guaranted minimum of the given resource in
+the first line. The special keyword 'inf' is recognized.
+        </description>
+      </scalar>
+    </collection>
+    
+    <collection name="uts">
+      <scalar name="context">
+       <description>
+The context-name of the vserver. This file is listed for completeness
+only; the 'context' name is used and set internally by the util-vserver
+tools and can *not* be modified.
+       </description>
+      </scalar>
+      <scalar name="sysname">
+       <description>The sysname of the vserver</description>
+      </scalar>
+      <scalar name="nodename">
+       <description>The node-/hostname of the vserver</description>
+      </scalar>
+      <scalar name="release">
+       <description>The OS-release of the vserver</description>
+      </scalar>
+      <scalar name="version">
+       <description>The OS-version of the vserver</description>
+      </scalar>
+      <scalar name="machine">
+       <description>The machine-type of the vserver</description>
+      </scalar>
+      <scalar name="domainname">
+       <description>The NIS domainname of the vserver</description>
+      </scalar>
+    </collection>
+  </collection>
+  </database>