Add list_patches() to sort patches by their names

This commit is contained in:
Yamashita Yuu 2013-12-26 16:31:43 +09:00
parent 008a5a1ff9
commit b70dcb9f2d

View file

@ -163,31 +163,47 @@ install_package_using() {
apply_patches() {
local package_name="$1"
# Support PYTHON_PATCH_PATH, PYTHON_PATCH_OPTS, etc.
# Support PYTHON_PATCH, PYTHON_PATCH_OPTS, etc.
local package_var_name="$(capitalize "${package_name%%-*}")"
local PACKAGE_PATCH="${package_var_name}_PATCH"
local PACKAGE_PATCH_PATH="${package_var_name}_PATCH_PATH"
local PACKAGE_PATCH_OPTS="${package_var_name}_PATCH_OPTS"
if [ -z "${PATCH_OPTS+defined}" ] && [ -z "${!PACKAGE_PATCH_OPTS+defined}" ]; then
local PATCH_OPTS="-p0"
fi
local patch_path="${!PACKAGE_PATCH_PATH:-${PYTHON_BUILD_PATCH_PATH}/${package_name}}"
# path may be given in relative from working directory
[ -e "${patch_path}" ] || patch_path="${CWD}/${patch_path}"
# FIXME: patches should be sorted in their names
local patch
for patch in "${patch_path}"/*; do
if [ -f "$patch" ]; then
echo "Applying ${patch##*/} to ${package_name}..." >&2
{ ${!PACKAGE_PATCH:-patch} $PATCH_OPTS ${!PACKAGE_PATCH_OPTS} < "$patch"
} >&4 2>&1
fi
for patch in $(list_patches "${package_name}"); do
echo "Applying ${patch##*/} to ${package_name}..." >&2
{ ${!PACKAGE_PATCH:-patch} $PATCH_OPTS ${!PACKAGE_PATCH_OPTS} < "$patch"
} >&4 2>&1
done
}
list_patches() {
local package_name="$1"
# Support PYTHON_PATCH_PATH, etc.
local package_var_name="$(capitalize "${package_name%%-*}")"
local PACKAGE_PATCH_PATH="${package_var_name}_PATCH_PATH"
if [ "${!PACKAGE_PATCH_PATH+defined}" ]; then
# patch path may be given in relative from working directory
if [[ "${!PACKAGE_PATCH_PATH}" != /* ]]; then
local patch_path="${CWD}/${!PACKAGE_PATCH_PATH}"
else
local patch_path="${!PACKAGE_PATCH_PATH}"
fi
else
local patch_path="${PYTHON_BUILD_PATCH_PATH}/${package_name}"
fi
{ for patch in "${patch_path}"/*; do
[ -f "${patch}" ] && echo "${patch}"
done
} | sort
}
make_package() {
local package_name="$1"
shift