diff options
Diffstat (limited to 'subr/pkg_configure_patch.subr')
-rw-r--r-- | subr/pkg_configure_patch.subr | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/subr/pkg_configure_patch.subr b/subr/pkg_configure_patch.subr index 45ee3601..366a9e52 100644 --- a/subr/pkg_configure_patch.subr +++ b/subr/pkg_configure_patch.subr @@ -1,24 +1,20 @@ # -# set -o errexit -o noglob are assumed. +# set +o errexit -o noglob is assumed. # pkg_configure_patch() { - local _pkg_name="${PKG_NAME}" _pkg_name_full="" _patch_dir="" _patch_fname="" _patches_done=""; - if [ -z "${_pkg_name}" ]; then - continue; - else - _pkg_name_full="${_pkg_name}${PKG_VERSION:+-${PKG_VERSION}}"; - _patch_dir="${MIDIPIX_BUILD_PWD}/patches"; - fi; - set +o noglob; for _patch_fname in \ - ${_patch_dir}/${_pkg_name}/*.patch \ - ${_patch_dir}/${_pkg_name_full}.local.patch \ - ${_patch_dir}/${_pkg_name_full}.local@${BUILD_HNAME}.patch \ - "${PKG_PATCHES_EXTRA}"; do + local _patch_dir="${MIDIPIX_BUILD_PWD}/patches" _patch_fname="" \ + _patches_done="" _pkg_name_full="${PKG_NAME}${PKG_VERSION:+-${PKG_VERSION}}"; + set +o noglob; + for _patch_fname in \ + "${_patch_dir}/${_pkg_name}/"*.patch \ + "${_patch_dir}/${_pkg_name_full}.local.patch" \ + "${_patch_dir}/${_pkg_name_full}.local@${BUILD_HNAME}.patch" \ + ${PKG_PATCHES_EXTRA}; do if [ -r "${_patch_fname}" ]\ - && ! ex_rtl_lmatch "${_patches_done}" " " "${_patch_fname}"; then - patch -b -d "${PKG_BASE_DIR}/${PKG_SUBDIR}" -p1 < "${_patch_fname}"; - _patches_done="${_patches_done:+${_patches_done} }${_patch_fname}"; + && ! ex_rtl_lmatch "${_patches_done}" "${_patch_fname}"; then + patch -b -d "${PKG_BASE_DIR}/${PKG_SUBDIR}" -p1 < "${_patch_fname}" || return "${?}"; + _patches_done="$(ex_rtl_lconcat "${_patches_done}" "${_patch_fname}")"; fi; done; set -o noglob; }; |