@@ -75,8 +75,34 @@ "${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 @@ -287,12 +313,12 @@ . '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 @@ -336,8 +362,11 @@ set -x # Determine properties determinePrefix + +# Apply patches +apply_patches # Start the build preconfigure || die 'preconfigure failed' configure || die 'configure failed'