From 83f9d177ed1bbb76510ea28662c9d69440a36c60 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Fri, 8 May 2009 20:34:30 +0200
Subject: abuild: create symlink to package in tmprepo

The tmprepo is a temporary repository used by abuild to handle the
dependencies of the newly built packages.
---
 abuild.in | 23 +++++++++++++++++++----
 1 file changed, 19 insertions(+), 4 deletions(-)

diff --git a/abuild.in b/abuild.in
index 07dc4ea..50ed038 100755
--- a/abuild.in
+++ b/abuild.in
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-# script to build apk packages (light version og makepkg)
+# script to build apk packages (light version of makepkg)
 # Copyright (c) 2008 Natanael Copa <natanael.copa@gmail.com>
 #
 # Distributed under GPL-2
@@ -17,6 +17,7 @@ pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
 pkgrel=0
 repo=${startdir%/*}
 repo=${repo##*/}
+tmprepo=/var/cache/abuild/tmprepo
 
 # defaults
 SRCDEST=${SRCDEST:-$startdir}
@@ -293,7 +294,6 @@ prepare_metafiles() {
 	
 	[ ! -d "$dir" ] && die "Missing $dir"
 	cd "$dir"
-	msg "Creating ${subpkgname:+sub}package $pkg..."
 	local builddate=$(date -u "+%s")
 	local size=$(du -sk | awk '{print $1 * 1024}')
 
@@ -367,6 +367,7 @@ EOF
 }
 
 prepare_package() {
+	msg "Preparing ${subpkgname:+sub}package ${subpkgname:-$pkgname}..."
 	options_has "!strip" ||	stripbin
 	prepare_metafiles
 }
@@ -383,15 +384,29 @@ create_apks() {
 		local dir="${file%/.PKGINFO}"
 		local name=$(pkginfo_val pkgname $file)
 		local ver=$(pkginfo_val pkgver $file)
-		local apk="$PKGDEST"/$name-$ver.apk
+		local apk=$name-$ver.apk
 		(
 		set *
 		[ "$1" = '*' ] && set --
-		cd "$dir" && tar -zcf "$apk" $(cat .metafiles) $@
+		cd "$dir" && tar -zcf "$PKGDEST"/$apk $(cat .metafiles) $@
 		)
 	done
 }
 
+update_tmprepo() {
+	if ! up2date; then
+		sanitycheck && builddeps && clean && fetch && unpack && rootpkg || return 1
+	fi
+	local apk
+	for apk in $(listpkg); do
+		ln -sf "$PKGDEST"/$apk "$tmprepo"/$apk
+	done
+
+	# update the tmprepo cache here
+	msg "Updating the cached build repository index..."
+	apk index "$tmprepo"/*.apk | gzip > "$tmprepo"/APK_INDEX.gz
+}
+
 # predefined splitfunc doc
 default_doc() {
 	depends="$depends_doc"
-- 
cgit v1.2.3-70-g09d2