[Pkg-pdns-maintainers] Bug#700850: Please add resolvconf dpkg-event hook script

Thomas Hood jdthood at gmail.com
Mon Feb 18 11:27:01 UTC 2013


Package: pdns-recursor
Severity: wishlist

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

The purpose this script is to cause pdns-recursor to take notice of
the installation or removal of the resolvconf package.  If resolvconf
has just been installed while pdns-recursor is running, for example,
then pdns-recursor should register its local listening IP address with
resolvconf.  (The pdns-recursor initscript already does the right thing
if pdns-recursor is started when resolvconf was already installed.)

See below for an excerpt from resolvconf's README file giving
general information about resolvconf packaging-event hook scripts.
Please see the README file itself for much more background information.

=== Excerpt from resolvconf README file ===
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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/pkg-pdns-maintainers/attachments/20130218/771f5bd4/attachment.html>


More information about the Pkg-pdns-maintainers mailing list