Hi, I think there isn't a real need to split PKGBUILD and $pkgname.install, this patch allows you to put the scriptlets functions into the PKGBUILD. This IMHO follows the KISS philosophy. If at least a {post,pre}_{install,upgrade,remove} function is found in the PKGBUILD, then the install file (if it exists) is ignored; otherwise, if there isn't any scriptlet function in the PKGBUILD the install file is included, as usually. Enjoy: From e206a96ebe1e9a11f85de1502fc46e75321ba192 Mon Sep 17 00:00:00 2001 From: Alessio 'mOLOk' Bolognino <themolok@gmail.com> Date: Sat, 21 Jul 2007 06:15:34 +0200 Subject: [PATCH] Added support for scriptlets functions embedded in $BUILDSCRIPT --- scripts/makepkg.sh.in | 14 ++++++++++++-- 1 files changed, 12 insertions(+), 2 deletions(-) diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index a3e4d9c..fb931a7 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -831,9 +831,18 @@ create_package() { local comp_files=".PKGINFO .FILELIST" - # check for an install script + # check for scriptlets fuctions or an install script # TODO: should we include ${pkgname}.install if it exists and $install is unset? - if [ "$install" != "" ]; then + scriptlet=$(declare -f {post,pre}_{install,remove,upgrade} || return 0) + if [ "$scriptlet" != "" ]; then + msg2 "$(gettext "Adding scriptlet functions (install script will be ignored)...")" + ( echo "$scriptlet" + echo 'op=$1' + echo 'shift' + echo '[ "$(type -t "$op")" = "function" ] && $op "$@"' + ) > .INSTALL + comp_files="$comp_files .INSTALL" + elif [ "$install" != "" ]; then msg2 "$(gettext "Adding install script...")" cp "$startdir/$install" .INSTALL comp_files="$comp_files .INSTALL" @@ -1175,6 +1184,7 @@ fi unset pkgname pkgver pkgrel pkgdesc url license groups provides md5sums force unset replaces depends conflicts backup source install build makedepends unset options noextract +unset {post,pre}_{install,remove,upgrade} if [ ! -f "$BUILDSCRIPT" ]; then error "$(gettext "%s does not exist.")" "$BUILDSCRIPT" -- 1.5.2.4 -- Alessio 'mOLOk' Bolognino Arch Linux Trusted User Please send personal email to themolok@gmail.com Public Key http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xFE0270FB GPG Key ID = 1024D / FE0270FB 2007-04-11 Key Fingerprint = 9AF8 9011 F271 450D 59CF 2D7D 96C9 8F2A FE02 70FB