I have finished implementing the basics of package splitting in makepkg. Everything works as expected when just making packages and capturing logs but there is some small output issues that need tidying up and checking that other functionality work (e.g. repackaging is an issue....) Anyway you can see the work on my "splitpkg" branch: http://dev.archlinux.org/~allan/gitweb/gitweb.cgi?p=pacman.git;a=shortlog;h=... For your interest, I have attached the same package written in three different ways to show you what makepkg can now do: PKGBUILD.1 - Traditional build PKGBUILD.2 - Splitting the packaging step from build step. Limits fakeroot usage PKGBUILD.3 - Package splitting # $Id: PKGBUILD 366 2008-04-19 13:01:23Z travis $ # Maintainer: Allan McRae <allan@archlinux.org> pkgname=abs pkgver=2.3 pkgrel=1 pkgdesc="Utilities to download and work with the Arch Build System (ABS)" arch=('i686' 'x86_64') url="http://projects.archlinux.org/git/?p=abs.git" license=('GPL') depends=('bash' 'rsync') backup=(etc/abs.conf) install=abs.install source=(ftp://ftp.archlinux.org/other/abs/${pkgname}-${pkgver}.tar.gz) md5sums=('d6fd791aa487ba8bb5ff48c3ace20592') build() { cd ${srcdir}/${pkgname} make CONFDIR=/etc/ || return 1 make CONFDIR=/etc/ DESTDIR=${pkgdir} install || return 1 # Add readme file, and make base /var/abs path install -dm0755 ${pkgdir}/var/abs/local/ install -Dm0644 ${srcdir}/abs/README ${pkgdir}/var/abs/README # change ABS tags for x86_64 to correct values if [ "$CARCH" = "x86_64" ]; then sed -i "s|i686|x86_64|g" ${pkgdir}/etc/abs.conf fi } # vim: set ts=2 sw=2 noet: # $Id: PKGBUILD 366 2008-04-19 13:01:23Z travis $ # Maintainer: Allan McRae <allan@archlinux.org> pkgname=abs pkgver=2.3 pkgrel=1 pkgdesc="Utilities to download and work with the Arch Build System (ABS)" arch=('i686' 'x86_64') url="http://projects.archlinux.org/git/?p=abs.git" license=('GPL') depends=('bash' 'rsync') backup=(etc/abs.conf) install=abs.install source=(ftp://ftp.archlinux.org/other/abs/${pkgname}-${pkgver}.tar.gz) md5sums=('d6fd791aa487ba8bb5ff48c3ace20592') build() { cd ${srcdir}/${pkgname} make CONFDIR=/etc/ || return 1 # change ABS tags for x86_64 to correct values if [ "$CARCH" = "x86_64" ]; then sed -i "s|i686|x86_64|g" ${pkgdir}/etc/abs.conf fi } package() { cd ${srcdir}/${pkgname} make CONFDIR=/etc/ DESTDIR=${pkgdir} install || return 1 # Add readme file, and make base /var/abs path install -dm0755 ${pkgdir}/var/abs/local/ install -Dm0644 ${srcdir}/abs/README ${pkgdir}/var/abs/README } # vim: set ts=2 sw=2 noet: # $Id: PKGBUILD 366 2008-04-19 13:01:23Z travis $ # Maintainer: Allan McRae <allan@archlinux.org> pkgname=('abs-core' 'abs-readme') pkgver=2.3 pkgrel=1 arch=('i686' 'x86_64') url="http://projects.archlinux.org/git/?p=abs.git" license=('GPL') source=(ftp://ftp.archlinux.org/other/abs/abs-${pkgver}.tar.gz) md5sums=('d6fd791aa487ba8bb5ff48c3ace20592') build() { cd ${srcdir}/abs make CONFDIR=/etc/ || return 1 # change ABS tags for x86_64 to correct values if [ "$CARCH" = "x86_64" ]; then sed -i "s|i686|x86_64|g" ${pkgdir}/etc/abs.conf fi } package_abs-core() { pkgdesc="Utilities to download and work with the Arch Build System (ABS)" depends=('bash' 'rsync') backup=(etc/abs.conf) cd ${srcdir}/abs make CONFDIR=/etc/ DESTDIR=${pkgdir} install || return 1 } package_abs-readme() { pkgdesc="ABS base directory and README file" depends=('abs') install=abs.install # Add readme file, and make base /var/abs path install -dm0755 ${pkgdir}/var/abs/local/ install -Dm0644 ${srcdir}/abs/README ${pkgdir}/var/abs/README } # vim: set ts=2 sw=2 noet: