#! /bin/sh -e if [ "$1" = "configure" ]; then if [ -d /usr/doc -a ! -e /usr/doc/maintainer-scripts -a -d /usr/share/doc/maintainer-scripts ]; then ln -sf ../share/doc/maintainer-scripts /usr/doc/maintainer-scripts fi fi # valid . /usr/share/lintian/shell || exit 0 . /usr/share/lintian/shell >/dev/null . /usr/share/lintian/shell 2>/dev/null . /usr/share/lintian/shell /dev/null update-rc.d $FOO defaults update-rc.d foo remove # valid FOO=/tmp FOO=/var/tmp : ${FOO:=/tmp} FOO=`mktemp /tmp/scripts.XXXXXX` rm "$FOO" FOO=`tempfile -n/tmp/scripts.tmp` mkdir /var/tmp/scripts # invalid echo foo >>/tmp/scripts.tmp rm /tmp/scripts.tmp rmdir /var/tmp/scripts # invalid, maintainer-script-hides-init-failure invoke-rc.d foo start || exit 0 # The right way to invoke an rc script if which invoke-rc.d >/dev/null 2>&1; then invoke-rc.d package start else /etc/init.d/package start fi # Example ucf invocation. ucf /usr/share/foo/configuration /etc/foo.conf # Calling gconftool directly. gconftool-2 --makefile-install-rule foo.schema # Calling gconf-schemas with no dependency. gconf-schemas --register foo.schema # Calling update-xmlcatalog with no dependency. update-xmlcatalog --add --type system --id "/usr/share/sgml/dtd/foo" \ --package maintainer-scripts --root # Maintainer scripts shouldn't touch /var/lib/dpkg/status. This is the old # recipe from the dpkg wiki that should be replaced with dpkg-query. sed -n -e \"/^Conffiles:/,/^[^ ]/{\\\\' /etc/conffile'{s/.* //;p}}\" \ /var/lib/dpkg/status # Don't modify these files. echo 'broken 6714/tcp' >> /etc/services cp /nonexistent /etc/protocols mv /usr/share/doc/rpc /etc/rpc # But this is okay. cp /etc/protocols /etc/protocols.new # This is also wrong. echo 'broken' > /etc/inetd.conf cp /etc/inetd.conf.new /etc/inetd.conf # But this is fine. cp /etc/inetd.conf /srv/chroot/etc/inetd.conf # Deprecated and not allowed except the second one. install-sgmlcatalog --install package install-sgmlcatalog --remove package # This too is a heredoc. some-program > /etc/config-file <<'EOF' echo "All of the array is: ${H[@]}" EOF # But this isn't. cat '<