Re: maintainer script factorization
On Fri, Feb 22, 2008 at 07:07:54PM +0100, Martin Fuzzey wrote:
> Hi all,
>
> frequently maintainer scripts modify the same files and to avoid duplication
> of path names etc in all scripts I was wondering if they could be factorized
> anywhere.
> The obvious solution of installing something like
> /usr/share/package/common.sh and sourcing it in the maintainer scripts
> doesn't work as the package files may already have been removed.
>
> Any ideas or is this impossible?
You can include some kind of common script and use .in files parsed as
with #DEBHELPER# or such. Perhaps use cpp instead of sed for this, or
someone will suggest a better way yet.
./debian/maintscript-common:
# Begin debian/maintscript-common shell fragment
[...]
# End maintscript-common
./debian/postinst.in:
#! /bin/sh
# Postinstallation script for foo
#MAINTSCRIPT-COMMON#
[...]
./debian/rules:
clean:
dh_clean debian/postinst debian/preinst debian/postrm debian/prerm
binary:
[...]
set -e; cd debian; for m in postinst preinst postrm prerm; \
do \
f='maintscript-common'; \
[ ! -e "$$m.in" ] && continue; \
exec <"$$m.in" >"$$m"; \
sed -e "s/^#MAINTSCRIPT-COMMON#$$//; T; r $$f"; \
done
[...]
dh_installdeb
[...]
Colin watson wrote about a scenario where he apparently needed to do
this:
http://lists.debian.org/debian-devel/2006/12/msg00647.html
Justin
Reply to: