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, _)