[Resolvconf-devel] Bug#773749: Resolvconf vs wicd
Vincent Lefevre
vincent at vinc17.net
Wed Jan 14 16:33:24 UTC 2015
On 2015-01-14 15:24:53 +0100, Thomas Hood wrote:
> It's up to the admin to change things in /etc/. Programs that play
> around with things in /etc/ at runtime are not well behaved by Debian
> standards.
dhclient does this by default.
> > Otherwise the user needs to modify
> > /etc/dhcp/dhclient-enter-hooks.d/resolvconf to get this behavior.
>
> Now I have the feeling I'm missing something. Is there some reason
> that the symlink at /etc/resolv.conf has to be created at run time?
> Why can't the administrator just do "ln -s /run/resolvconf/resolv.conf
> /etc/resolv.conf" to restore the symlink?
This is now done, but just in case the symlink gets removed again.
I don't want to waste my time finding why the network doesn't work.
On 2015-01-14 16:18:26 +0100, Axel Beckert wrote:
> Thomas Hood wrote:
> > It's up to the admin to change things in /etc/. Programs that play
> > around with things in /etc/ at runtime are not well behaved by Debian
> > standards.
>
> Depends. I agree for anything in the maintainer scripts, but I
> disagree for anything which can be seen as (configuration) editor.
>
> From my point of view, wicd acts as configuration editor (or profile
> chooser + editor) on behalf of the local administrator, at least for
> static DNS servers, search domains, IP addresses, etc.
Exactly my point.
> > >> When the resolvconf package is initially installed it optionally and
> > >> by default creates the symlink at /etc/resolv.conf,
> > >
> > > But the symlink got removed for some reason I ignore. I'm wondering
> > > whether wicd was the cause (with the code related to the backup file).
>
> Interesting idea. I agree that editing that file is the proper way.
> From what I saw of wicd's code, I remembered a "move":
>
> /usr/share/wicd/daemon/wicd-daemon.py:1763: shutil.move(backup_location, '/etc/resolv.conf')
>
> But that's a) only the reverse direction and b) wicd cares about
> symlinks in both directions:
>
> 1705 if not os.path.exists(backup_location):
> 1706 if os.path.islink('/etc/resolv.conf'):
> 1707 dest = os.readlink('/etc/resolv.conf')
> 1708 os.symlink(dest, backup_location)
> 1709 else:
> 1710 shutil.copy2('/etc/resolv.conf', backup_location)
> […]
> 1757 backup_location = wpath.varlib + 'resolv.conf.orig'
> 1758 if os.path.islink(backup_location):
> 1759 dest = os.readlink(backup_location)
> 1760 os.remove('/etc/resolv.conf')
> 1761 os.symlink(dest, '/etc/resolv.conf')
> 1762 else:
> 1763 shutil.move(backup_location, '/etc/resolv.conf')
I'm not convinced. It seems that /etc/resolv.conf is "restored"
when wicd is killed. But what if /etc/resolv.conf has changed
while wicd was running? Typically, wicd is running and one installs
resolvconf, which creates the /etc/resolv.conf symlink.
Otherwise the problem could have come from an old version. I'm also
wondering whether network-manager got installed for a short period
due to a dependency from a GNOME application; I don't know what it
does with /etc/resolv.conf when the package is installed.
--
Vincent Lefèvre <vincent at vinc17.net> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)
More information about the Resolvconf-devel
mailing list