Package: wicd Version: 1.7.2.4-2 Severity: serious In wicd-daemon.py the main() function backs up and restores /etc/resolv.conf. To back up it does
shutil.copy2('/etc/resolv.conf', wpath.varlib + 'resolv.conf.orig') which is like the following shell command. cp -p /etc/resolv.conf path/resolv.conf.orig Note that if /etc/resolv.conf is a symbolic link to another file, the shutil.copy2() copies the contents to the target; it does not create an equivalent symbolic link at the target. To restore, it does shutil.move(wpath.varlib + 'resolv.conf.orig', '/etc/resolv.conf') which is like the following. mv path/resolv.conf.orig /etc/resolv.conf If /etc/resolv.conf was a symbolic link before the backup-and-restore sequence then afterwards it is a plain file with the contents of the target of that symlink. Put more bluntly, it clobbers the symlink. Resolvconf makes use of a symbolic link /etc/resolv.conf -> ../run/resolvconf/resolv.conf. Therefore it appears that wicd-daemon.py will break any system using resolvconf. I was just reading the wicd code and this bug report arises from that reading, not from testing. But even if the code in question isn't currently executed it should be fixed.