<?xml version="1.0"?>
<!DOCTYPE compatibility SYSTEM "compatibility.dtd" []>

<compatibility>
  <title>compatibility of util-vserver alpha branch</title>
  
  <program name="capchroot">
    <location>LIBDIR</location>
    <clicompat status="yes"/>
    <funccompat status="yes"/>
  </program>

  <program name="distrib-info" status="removed">
    <location>LIBDIR</location>
    <clicompat status="no">
      <text>replaced by <pref>vpkg</pref></text>
    </clicompat>
    <funccompat status="no"/>
  </program>

  <program name="fakerunlevel">
    <location>LIBDIR</location>
    <clicompat status="yes"/>
    <funccompat status="yes"/>
  </program>

  <program name="filetime">
    <location>LIBDIR</location>
    <clicompat status="yes"/>
    <funccompat status="yes"/>
  </program>

  <program name="ifspec">
    <location>LIBDIR</location>
    <clicompat status="yes"/>
    <funccompat status="yes"/>
  </program>
  
  <program name="install-*" status="removed">
    <location>LIBDIR</location>
    <clicompat status="no">
      <text>Replaced by more general build-methods which are building vservers from apt-repositories.</text>
    </clicompat>
    <funccompat status="no"/>
  </program>
  
  <program name="listdevip">
    <location>LIBDIR</location>
    <clicompat status="yes"/>
    <funccompat status="yes"/>
  </program>

  <program name="parserpmdump">
    <location>LIBDIR</location>
    <clicompat status="yes"/>
    <funccompat status="yes"/>
  </program>

  <program name="readlink">
    <location>LIBDIR</location>
    <clicompat status="yes"/>
    <funccompat status="yes"/>
  </program>

  <program name="rootshell">
    <location>LIBDIR</location>
    <clicompat status="yes"/>
    <funccompat status="yes"/>
  </program>

  <program name="sample.sh" status="removed">
    <location>LIBDIR</location>
    <clicompat status="no">
      <text>incompatible with recent configuration style.</text>
    </clicompat>
    <funccompat status="no"/>
  </program>
  
  <program name="save_s_context" status="removed">
    <location>LIBDIR</location>
    <clicompat status="no">
      <text>incompatible with recent configuration style; partially replaced by <pref>save_ctxinfo</pref>.</text>
    </clicompat>
    <funccompat status="yes"/>
  </program>

  <program name="setattr">
    <location>LIBDIR</location>
    <clicompat status="no">
      <text>Has been moved into SBINDIR. Lots of new option were added to support new functionality.</text>
    </clicompat>
    <funccompat status="no">
      <text>It is possible to recurse directories and it supports
      all vserver related attributes (admin, hide, watch, barrier,
      iunlink).</text>
    </funccompat>
  </program>
  
  <program name="showattr">
    <location>LIBDIR</location>
    <clicompat status="no">
      <text>Has been moved into SBINDIR. Lots of new option were added to support new functionality.</text>
    </clicompat>
    <funccompat status="no">
      <text>It is possible to recurse directories and it supports all
      vserver related attributes (admin, hide, watch, barrier,
      iunlink). The output has been changed: the flags are now in the
      first column and they are displayed in a symbolic manner.</text>
    </funccompat>
  </program>
  
  <program name="showperm">
    <location>LIBDIR</location>
    <clicompat status="yes"/>
    <funccompat status="yes"/>
  </program>

  <program name="vbuild" status="broken">
    <location>LIBDIR</location>
    <clicompat status="yes"/>
    <funccompat status="no">
      <text>will be removed/rewritten soon.</text>
    </funccompat>
  </program>
  
  <program name="vcheck" status="broken">
    <location>LIBDIR</location>
    <clicompat status="yes"/>
    <funccompat status="no">
      <text>will be removed/rewritten soon.</text>
    </funccompat>
  </program>

  <program name="vprofile" status="removed">
    <location>LIBDIR</location>
    <clicompat status="no">
      <text>incompatible with recent configuration style.</text>
    </clicompat>
    <funccompat status="no"/>
  </program>

  <program name="vreboot">
    <location>LIBDIR</location>
    <clicompat status="yes"/>
    <funccompat status="yes"/>
  </program>

  <program name="vserverkillall" status="removed">
    <location>LIBDIR</location>
    <clicompat status="no">
      <text><pref>vkill</pref> contains the needed functionality
      already.</text>
    </clicompat>
    <funccompat status="no"/>
  </program>
  
  <program name="vservers.grabinfo.sh">
    <location>LIBDIR</location>
    <clicompat status="yes"/>
    <funccompat status="yes"/>
  </program>

  <program name="vunify" status="rewritten">
    <location>LIBDIR</location>
    <clicompat status="no">
      <text>CLI has been changed to reflect new functionality. Now, it
      accepts either a single vserver, or (directory,excludelist)
      pairs as arguments. The old "refserver vserver1 vserver2 ..." 
      syntax is gone.</text>
    </clicompat>
    <funccompat status="limited">
      <text>vunify allows to unify generic paths, or vservers with
      preconfigured reference vservers. The filelist is not taken from
      packagemanagement anymore, but every file which has a counterpart
      in the reference-path(s)/vserver(s) and is not in an excludelist
      will be unified. A part of the excludelist will be generated
      dynamically with information from the packagemanagement about
      configfiles.</text>
    </funccompat>
  </program>

  <program name="chbind">
    <location>SBINDIR</location>
    <clicompat status="yes"/>
    <funccompat status="yes"/>
  </program>

  <program name="chcontext">
    <location>SBINDIR</location>
    <clicompat status="yes"/>
    <funccompat status="yes">
      <text>Return code in '--disconnect' case is now more correctly.</text>
    </funccompat>
  </program>

  <program name="rebootmgr">
    <location>SBINDIR</location>
    <clicompat status="yes"/>
    <funccompat status="yes"/>
  </program>

  <program name="reducecap">
    <location>SBINDIR</location>
    <clicompat status="yes"/>
    <funccompat status="yes"/>
  </program>
  
  <program name="vdu">
    <location>SBINDIR</location>
    <clicompat status="yes"/>
    <funccompat status="yes"/>
  </program>

  <program name="vfiles" status="broken">
    <location>SBINDIR</location>
    <clicompat status="yes"/>
    <funccompat status="no">
      <text>will be removed/rewritten soon.</text>
    </funccompat>
  </program>
  
  <program name="vkill" status="rewritten">
    <location>SBINDIR</location>
    <clicompat status="yes"/>
    <funccompat status="limited">
      <text>It uses native kernel interface now and is secure (in
      opposite to the old perl implementation).</text>
    </funccompat>
  </program>

  <program name="vps" status="rewritten">
    <location>SBINDIR</location>
    <clicompat status="yes"/>
    <funccompat status="limited">
      <text>It has been rewritten into C and output might have been changed slightly.</text>
    </funccompat>
  </program>

  <program name="vpstree">
    <location>SBINDIR</location>
    <clicompat status="yes"/>
    <funccompat status="yes"/>
  </program>

  <program name="vrpm" status="rewritten">
    <location>SBINDIR</location>
    <clicompat status="yes"/>
    <funccompat status="limited">
      <text>It has been rewritten into a secure, native C
      implementation. Unpacking of files happens in host-ctx, but
      scriptlets are executed in vserver context. The rpm database
      will/can be hold outside of the vserver and there will never be
      access on it from the inside (neither direct, nor by
      scriptlets). This is implemented through an LD_PRELOAD wrapper
      which provides own, secure NSS functions too.</text>
    </funccompat>
  </program>

  <program name="vserver" status="rewritten">
    <location>SBINDIR</location>
    <clicompat status="limited">
      <text>It accepts all the old arguments, but adds lots of new
      ones. This program is intended as the basic vserver management
      tool; e.g. to unify a vserver you can execute "vserver XX unify",
      to install a package "vserver XX install PKG" and so on.</text>
    </clicompat>
    <funccompat status="limited">
      <text>This tool is rewritten to completely and is now resistant
      against symlink attacks. It uses the new configuration scheme
      and the iproute2 tools instead of ifconfig for network
      setup. Old-style vserver can be still started through this tool,
      but modifications/building of them is not possible
      anymore.</text>
    </funccompat>
  </program>

  <program name="vserver-copy" status="broken">
    <location>SBINDIR</location>
    <clicompat status="yes"/>
    <funccompat status="no">
      <text>will be removed/rewritten soon.</text>
    </funccompat>
  </program>

  <program name="vserver-stat" status="rewritten">
    <location>SBINDIR</location>
    <clicompat status="yes"/>
    <funccompat status="yes">
      <text>It has been rewritten to use the new libvserver API. The
      output has been changed slightly.</text>
    </funccompat>
  </program>

  <program name="vtop">
    <location>SBINDIR</location>
    <clicompat status="yes"/>
    <funccompat status="yes"/>
  </program>

  <program name="exec-cd" status="new">
    <location>SBINDIR</location>
    <funccompat status="yes">
      <text>changes into a directory in a secure manner and executes a
      program there.</text>
    </funccompat>
  </program>

  <program name="rpm-fake-resolver" status="new">
    <location>LIBDIR</location>
    <funccompat status="yes">
      <text>NSS resolver; used by <pref>vrpm</pref> and executed in
      vserver-ctx.</text>
    </funccompat>
  </program>

  <program name="rpm-fake.so" status="new">
    <location>LIBDIR</location>
    <funccompat status="yes">
      <text>LD_PRELOAD wrapper; used by <pref>vrpm</pref>.</text>
    </funccompat>
  </program>

  <program name="vapt-get-worker" status="new">
    <location>LIBDIR</location>
    <funccompat status="yes">
      <text>Helper script for <pref>vapt-get</pref>.</text>
    </funccompat>
  </program>

  <program name="vpkg" status="new">
    <location>LIBDIR</location>
    <funccompat status="yes">
      <text>Generic interface for package management; it allows
      to install, remove or query packages in a distribution
      independent manner. It can be seen as the successor of
      <pref>distrib-info</pref>.</text>
    </funccompat>
  </program>

  <program name="vrpm-preload" status="new">
    <location>LIBDIR</location>
    <funccompat status="yes">
      <text>Helper script for <pref>vrpm</pref>.</text>
    </funccompat>
  </program>
  
  <program name="vrpm-worker" status="new">
    <location>LIBDIR</location>
    <funccompat status="yes">
      <text>Helper script for <pref>vrpm</pref>.</text>
    </funccompat>
  </program>

  <program name="vserver-build" status="new">
    <location>LIBDIR</location>
    <funccompat status="yes">
      <text>Builds a vserver from scratch and allows to select the
      used method. It will be called by the "vserver XY build"
      command.</text>
    </funccompat>
  </program>
  
  <program name="vapt-get" status="new">
    <location>SBINDIR</location>
    <funccompat status="yes">
      <text>Wrapper for apt-get; currently only the apt-rpm port
      is supported. Metadata will/can be stored outside of the
      vserver. This program call <pref>vrpm</pref>.</text>
    </funccompat>
  </program>


  <program name="chxid" status="new">
    <location>SBINDIR</location>
    <funccompat status="yes">
      <text>This program assigns the associated context of an inode. It
      replaces parts of the vserver-quota tools.</text>
    </funccompat>
  </program>

  <program name="lsxid" status="new">
    <location>SBINDIR</location>
    <funccompat status="yes">
      <text>This program shows the associated context of an inode. It
      replaces parts of the vserver-quota tools.</text>
    </funccompat>
  </program>

  <program name="new-namespace" status="new">
    <location>SBINDIR</location>
    <funccompat status="yes">
      <text>This program starts a program within a new namespace which is
      created with CLONE_NEWNS. It is used e.g. by <pref>vrpm</pref> to
      map the rpm-database into the vserver in a secure manner.</text>
    </funccompat>
  </program>

  <program name="vlimit" status="new">
    <location>SBINDIR</location>
    <funccompat status="yes">
      <text>This is an interface to the rlimit syscalls which allow to
      limit resource-usage of contexts.</text>
    </funccompat>
  </program>

  <program name="vrsetup" status="new">
    <location>SBINDIR</location>
    <funccompat status="yes">
      <text>This program allows to setup vroot devices. It replaces
      vrsetup from the vr-tools</text>
    </funccompat>
  </program>
</compatibility>
