@@ -56,11 +56,56 @@ mkdir -p "$(dirname "${SRC}")" >/dev/null 2>/dev/null download "${SRC}" "${SRCURL}" || exit 1 fi } + +function extract_src () { + rm -rf build + mkdir build + + ( + cd build/ || exit 1 + + gzip -dc "../${SRC}" | tar -xf - + cd "${BUILDDIR}" || exit 1 + ) || exit 1 +} + +function apply_patches () { + local patchroot patchdir patchfiles patchfile idx + + patchroot="$(pwd)/patches" + + for patchdir in "${patchroot}/all" "${patchroot}/${VERS}"; do + unset patchfiles + + if [ -f "${patchdir}/series" ]; then + idx=0 + for patchfile in $(cat "${patchdir}/series"); do + patchfiles[${idx}]="${patchdir}/${patchfile}" + idx=$[${idx} + 1] + done + else + patchfiles=("${patchdir}"/*.diff) + fi + + for patchfile in "${patchfiles[@]}"; do + if [ ! -f "${patchfile}" ]; then + continue + fi + + ( + cd "build/${BUILDDIR}" || exit 1 + + echo "* Applying patch \"${patchfile}\"" + "${PATCH:-patch}" -p1 < "${patchfile}" + ) + done + done +} WORKDIR="${TMPDIR:-/tmp}/tcl-buildpkgs-$$${RANDOM}${RANDOM}${RANDOM}" PLATDIR="$(pwd)/out/${PLATFORM}" export WORKDIR PLATDIR setup_tcl84