@@ -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'