Re: maintainer script factorization

2008-02-23 Thread Colin Watson
On Fri, Feb 22, 2008 at 03:41:17PM -0500, Justin Pryzby wrote:
 Colin watson wrote about a scenario where he apparently needed to do
 this:
 http://lists.debian.org/debian-devel/2006/12/msg00647.html

Yes, if you need to use the contents of the package's files in the
preinst then you need to do this sort of thing. Of course, that
particular hack is only necessary for upgrades from pre-etch, thank
goodness.

-- 
Colin Watson   [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



maintainer script factorization

2008-02-22 Thread Martin Fuzzey
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?

Thanks,

Martin Fuzzey


Re: maintainer script factorization

2008-02-22 Thread Justin Pryzby
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


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]