diff --git a/multibuild.eclass b/multibuild.eclass index 4dc9b19..914e498 100644 --- a/multibuild.eclass +++ b/multibuild.eclass @@ -214,14 +214,14 @@ multibuild_copy_sources() { einfo "Will copy sources from ${_MULTIBUILD_INITIAL_BUILD_DIR}" local cp_args=() - if cp --reflink=auto --version &>/dev/null; then + if $(multibuild_cpcmd) --reflink=auto --version &>/dev/null; then # enable reflinking if possible to make this faster cp_args+=( --reflink=auto ) fi _multibuild_create_source_copy() { einfo "${MULTIBUILD_VARIANT}: copying to ${BUILD_DIR}" - cp -pr "${cp_args[@]}" \ + $(multibuild_cpcmd) -pr "${cp_args[@]}" \ "${_MULTIBUILD_INITIAL_BUILD_DIR}" "${BUILD_DIR}" || die } @@ -274,18 +274,18 @@ multibuild_merge_root() { local cp_args=() - if cp -a --version &>/dev/null; then + if $(multibuild_cpcmd) -a --version &>/dev/null; then cp_args+=( -a ) else cp_args+=( -P -R -p ) fi - if cp --reflink=auto --version &>/dev/null; then + if $(multibuild_cpcmd) --reflink=auto --version &>/dev/null; then # enable reflinking if possible to make this faster cp_args+=( --reflink=auto ) fi - cp "${cp_args[@]}" "${src}"/. "${dest}"/ + $(multibuild_cpcmd) "${cp_args[@]}" "${src}"/. "${dest}"/ ret=${?} # Remove the lock. @@ -298,5 +298,14 @@ multibuild_merge_root() { rm -rf "${src}" } +# fix bug 447370 +multibuild_cpcmd() { + if type -P gcp &> /dev/null; then + echo gcp + else + echo cp + fi +} + _MULTIBUILD=1 fi