Package: dhcpcd
Severity: wishlist

Please add the hook script /usr/lib/resolvconf/dpkg-event.d/dhcpcd

The purpose this script is to cause dhcpcd to take notice of the
installation (or removal) of the resolvconf package. If resolvconf
has been installed then dhcpcd should register with resolvconf
IP addresses of nameservers that dhcpcd has obtained during
DHCP negotiation.

See below for an except from resolvconf's README file giving
general information about resolvconf dpkg-event hook scripts.

For a DHCP client the simplest way to implement this might be
for the dpkg-event hook script, on resolvconf install, to trigger
the client to renegotiate the lease.

Usage information for maintainers
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[...] All suppliers of
nameserver information should supply their information to resolvconf after
resolvconf has been installed.

As of resolvconf release 1.55 this is supported via the following mechanism.
Any package, foo, that supports supplying information to resolvconf should
include a hook script /usr/lib/resolvconf/dpkg-event.d/foo which, when
called
with the argument "install", takes whatever actions are necessary to cause
the program(s) in foo to supply their nameserver information to resolvconf;
and when called with the argument "remove" takes whatever actions are
appropriate given that the resolvconf package has been removed (and,
in being removed, may have removed foo's nameserver information).

The hook script thus has the following form.

    #!/bin/sh
    #
    # /usr/lib/resolvconf/dpkg-event.d/foo
    #
    # The resolvconf dpkg-event hook script for the foo package
    #
    if foo_is_running ; then
        if [ "$1" = "install" ] ; then
            foo-ctrl send-nameserver-info-to-resolvconf
        elif [ "$1" = "remove" ] ; then
            ...
        fi
    fi

If foo is controlled by an initscript whose methods take appropriate actions
conditional upon resolvconf's presence then something like the following
might be appropriate.

        force_reload_foo() {
            if which invoke-rc.d >/dev/null 2>&1 ; then
                invoke-rc.d foo force-reload
            elif [ -x /etc/init.d/foo ] ; then
                /etc/init.d/foo force-reload
            fi
        }
        case "$1" in
            install|remove) force_reload_foo ;;
        esac

The hook script is called (with argument "install") from resolvconf's
postinst
"configure" method and (with "remove") from resolvconf's postrm "remove"
method.

Foo's hook script is called with argument "install" if and only if foo is
fully installed both when resolvconf's preinst install runs and when its
postinst configure runs.  The hook script is called with argument "remove"
if and only if foo is fully installed when resolvconf's postrm remove runs.

The hook script must be owned by root and have its execute permission
bit set and must have the same name as the package that owns it.

Arguments other than "install" and "remove" are reserved for future use
and must be silently ignored.

Reply via email to