[Pkg-utopia-maintainers] Bug#639803: Please add resolvconf packaging-event hook script

Thomas Hood jdthood at gmail.com
Tue Aug 30 12:57:49 UTC 2011


Package: network-manager
Severity: wishlist

Please add the hook script /etc/resolvconf/packaging-event.d/network-manager.

The purpose of this script is to cause network-manager to take notice
of the installation or removal of the resolvconf package.  If resolvconf
has been installed then network-manager should register any known
nameserver addresses with resolvconf.

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

=== Excerpt from resolvconf README file ===

Usage information for maintainers
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[...]          All suppliers of
nameserver information to 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"
The hook script thus has the following form.

    #!/bin/sh
    #
    # /etc/resolvconf/packaging-event.d/foo
    #
    # The resolvconf packaging 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.

        case "$1" in
            install|remove) invoke-rc.d foo force-reload ;;
        esac

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

The 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.
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.





More information about the Pkg-utopia-maintainers mailing list