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.