Index: build
==================================================================
--- build
+++ build
@@ -74,10 +74,36 @@
 		*)
 			"${decompress}" -dc "${pkgarchive}" | tar -xf - || die 'Unable to uncompress archive'
 			;;
 	esac
 }
+
+function apply_patches() {
+	local patch
+
+	for patch in "${pkgdir}/patches"/*; do
+		if [ ! -e "${patch}" ]; then
+			continue
+		fi
+
+		case "${patch}" in
+			*.diff|*.patch)
+				;;
+			*)
+				continue
+				;;
+		esac
+
+		if [ -e "${patch}.sh" ]; then
+			if ! sh "${patch}.sh"; then
+				continue
+			fi
+		fi
+
+		patch -p1 < "${patch}"
+	done
+}
 
 function verifyRequiredPackages() {
 	local pkg pkgdomain pkgversion
 	local pkgdir pkgconfigdir pkgfound
 
@@ -286,14 +312,14 @@
 if [ -f 'build.conf' ]; then
 	. 'build.conf'
 fi
 
 if [ -d "pkgs/${pkg}" ]; then
-	pkgdir="pkgs/${pkg}"
+	pkgdir="$(pwd)/pkgs/${pkg}"
 	pkgfile="${pkgdir}/info"
 else
-	pkgfile="pkgs/${pkg}"
+	pkgfile="$(pwd)/pkgs/${pkg}"
 	pkgdir="${pkgfile}"
 fi
 
 if [ ! -e "${pkgfile}" ]; then
 	echo "Invalid package." >&2
@@ -335,10 +361,13 @@
 # Start logging
 set -x
 
 # Determine properties
 determinePrefix
+
+# Apply patches
+apply_patches
 
 # Start the build
 preconfigure || die 'preconfigure failed'
 configure || die 'configure failed'
 postconfigure || die 'postconfigure failed'