[Resolvconf-devel] Bug#773749: Resolvconf vs wicd
Axel Beckert
abe at debian.org
Wed Jan 14 15:18:26 UTC 2015
Hi,
Thomas Hood wrote:
> On 14 January 2015 at 15:08, Vincent Lefevre <vincent at vinc17.net> wrote:
> > On 2015-01-14 14:14:22 +0100, Thomas Hood wrote:
> >> This is an allowed configuration (which is sometimes even useful). [...]
> >
> > OK, but this is a very atypical usage for users of wicd, whose goal
> > is to make things work without needing to be root. So what about an
> > option for /etc/default/resolvconf to force the link creation when
> > using dhclient?
>
> 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.
> >> 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')
And from /usr/share/pyshared/wicd/wnettools.py:
679 if self.resolvconf_cmd:
680 cmd = [self.resolvconf_cmd, '-a', self.iface]
681 if self.verbose: print cmd
682 p = misc.Run(cmd, include_stderr=True, return_obj=True)
683 p.communicate(input=resolv_params)
684 else:
685 resolv = open("/etc/resolv.conf", "w")
686 resolv.write(resolv_params + "\n")
687 resolv.close()
Looks all sane to me.
Regards, Axel
--
,''`. | Axel Beckert <abe at debian.org>, http://people.debian.org/~abe/
: :' : | Debian Developer, ftp.ch.debian.org Admin
`. `' | 4096R: 2517 B724 C5F6 CA99 5329 6E61 2FF9 CD59 6126 16B5
`- | 1024D: F067 EA27 26B9 C3FC 1486 202E C09E 1D89 9593 0EDE
More information about the Resolvconf-devel
mailing list