severity 270967 normal clone 270967 -1 retitle 270967 gconf2-common fails to purge when /etc isn't removable reassign -1 coreutils retitle -1 rmdir should check emptiness before permissions thanks
Le lundi 30 janvier 2006 à 03:23 +0100, Adrian Bunk a écrit : > severity 270967 critical > thanks This is by no means a critical bug. There's no way this script can wipe out your /etc. > Hi Sebastien, > > I think I can answer the following question you raised: > > <-- snip --> > > The weird point is that running "sh /var/lib/dpkg/info/gconf2.postrm > purge" doesn't display any error, but the same line called by apt raises > an error ... > > <-- snip --> > > The problem is only triggered when /etc/gconf2/ is empty. This error message is triggered by rmdir trying to remove /etc. Normally, rmdir -p --ignore-fail-on-non-empty will try to remove /etc/gconf/2, then /etc/gconf, then /etc, and will stop with /etc because it isn't empty. On your system, the chattr -i prevents the removal of /etc, and rmdir fails on "permission denied" instead of "directory not empty". I'd say that, so that rmdir -p --ignore-fail-on-non-empty can work on such systems, it should be made to check first if the directory is empty, and then if it has the permissions to remove it. I'm creating a clone report on coreutils, but maybe it is caused directly by the kernel or libc - in which case it should still be possible to work around the issue in coreutils. Currently, rmdir --ignore-fail-on-non-empty seems to do the following: * call rmdir(2) * check errno * ignore ENOTEMPTY Maybe it could be modified to do the following: * check if the directory is empty * call rmdir(2) I don't know whether this would be acceptable. Depending on the coreutils maintainers' advice and decision, I will modify - or not - the gconf2 scripts. Regards, -- .''`. Josselin Mouette /\./\ : :' : [EMAIL PROTECTED] `. `' [EMAIL PROTECTED] `- Debian GNU/Linux -- The power of freedom