diff --git a/abuild.in b/abuild.in
index b8926486b06103cb741d8948161defa1da7c7068..d4b0a0f304461fb08eeac66ecc8ce4a5c0237de5 100755
--- a/abuild.in
+++ b/abuild.in
@@ -427,6 +427,12 @@ trace_apk_deps() {
 	for i in $autodeps; do
 		echo "depend = $i" >> "$dir"/.PKGINFO
 	done
+	# add pkgconfig if usr/lib/pkgconfig is found
+	if [ -d "$pkgbasdir"/$name/usr/lib/pkgconfig ] \
+			&& ! grep -q '^depend = pkgconfig' "$dir"/.PKGINFO; then
+		msg "Added pkgconfig as dependency"
+		echo "depend = pkgconfig" >> "$dir"/.PKGINFO
+	fi
 }
 
 create_apks() {
@@ -443,7 +449,12 @@ create_apks() {
 		(
 		cd "$datadir"
 		# data.tar.gz
-		tar -c . | abuild-tar --hash | gzip -9 >"$dir"/data.tar.gz
+		set -- *
+		if [ "$1" = '*' ]; then
+			touch .dummy
+			set -- .dummy
+		fi
+		tar -c "$@" | abuild-tar --hash | gzip -9 >"$dir"/data.tar.gz
 
 		# append the hash for data.tar.gz
 		local sha256=$(sha256sum "$dir"/data.tar.gz | cut -f1 -d' ')
@@ -727,6 +738,13 @@ builddeps() {
 	fi
 	
 	[ -z "$recursive" ] && return 1
+
+	# find dependencies that are installed but missing in repo.
+	for i in $deps; do
+		if [ -z "$(apk search --repo "$apkcache" $i)" ]; then
+			missing="$missing $i"
+		fi
+	done
 	
 	for i in $(deptrace $missing); do
 		# i = pkg:dir