Package: bcfg2
Version: 1.0.1-3
Severity: normal
Tags: patch

The Bcfg2 client ignores configuration entries such as

    <Path name='/tmp/delete-me' type='nonexistent'/>

which are used to specify that the named file path shouldn't exist.  The
problem can be reproduced like this:

    # touch /tmp/delete-me
    # cat >/tmp/config.xml <<'EOF'
    > <Configuration>
    >   <Independent>
    >     <Path name='/tmp/delete-me' type='nonexistent'/>
    >   </Independent>
    > </Configuration>
    > EOF
    # bcfg2 -v -f /tmp/config.xml
    # ls /tmp/delete-me

Upstream fixed this bug in Git commit 5eaff14ec2:

    http://git.mcs.anl.gov/bcfg2.git/commit/5eaff14ec2

It would be nice if this (trivial) fix could be backported to squeeze,
see the attached patch.

-- System Information:
Debian Release: 6.0.1
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: i386 (i686)

Kernel: Linux 2.6.32-5-686-bigmem (SMP w/4 CPU cores)
Locale: LANG=C, LC_CTYPE=de_DE@euro (charmap=ISO-8859-15)
Shell: /bin/sh linked to /bin/dash

Versions of packages bcfg2 depends on:
ii  debsums                 2.0.48+nmu3      tool for verification of installed
ii  lsb-base                3.2-23.2squeeze1 Linux Standard Base 3.2 init scrip
ii  python                  2.6.6-3+squeeze6 interactive high-level object-orie
ii  python-apt              0.7.100.1        Python interface to libapt-pkg
ii  python-lxml             2.2.8-2          pythonic binding for the libxml2 a
ii  python-support          1.0.10           automated rebuilding support for P
ii  ucf                     3.0025+nmu1      Update Configuration File: preserv

bcfg2 recommends no packages.

bcfg2 suggests no packages.

-- no debconf information
diff -ur bcfg2-1.0.1.orig/src/lib/Client/Tools/POSIX.py bcfg2-1.0.1/src/lib/Client/Tools/POSIX.py
--- bcfg2-1.0.1.orig/src/lib/Client/Tools/POSIX.py	2009-10-30 03:09:15.000000000 +0100
+++ bcfg2-1.0.1/src/lib/Client/Tools/POSIX.py	2011-04-29 20:56:34.866339231 +0200
@@ -698,14 +698,6 @@
         ret = getattr(self, 'InstallConfigFile')
         return ret(entry)
 
-    def Verifynonexistent(self, entry, _):
-        # FIXME: not implemented
-        return True
-
-    def Installnonexistent(self, entry):
-        # FIXME: not implemented
-        return True
-
     def Verifypermissions(self, entry, _):
         ret = getattr(self, 'VerifyPermissions')
         return ret(entry, _)

Reply via email to