mgorny 14/04/15 15:54:13 Modified: ChangeLog multibuild.eclass Log: multibuild_merge_root: re-introduce userland_BSD tar fallback, bug #507626.
Revision Changes Path 1.1207 eclass/ChangeLog file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1207&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1207&content-type=text/plain diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1206&r2=1.1207 Index: ChangeLog =================================================================== RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v retrieving revision 1.1206 retrieving revision 1.1207 diff -u -r1.1206 -r1.1207 --- ChangeLog 14 Apr 2014 20:21:42 -0000 1.1206 +++ ChangeLog 15 Apr 2014 15:54:12 -0000 1.1207 @@ -1,6 +1,9 @@ # ChangeLog for eclass directory # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1206 2014/04/14 20:21:42 tomwij Exp $ +# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1207 2014/04/15 15:54:12 mgorny Exp $ + + 15 Apr 2014; Michał Górny <mgo...@gentoo.org> multibuild.eclass: + multibuild_merge_root: re-introduce userland_BSD tar fallback, bug #507626. 14 Apr 2014; Tom Wijsman <tom...@gentoo.org> kernel-2.eclass: Temporarily fix up >=sys-kernel/git-sources-3.15_rc1.ebuild, bug #507656. 1.17 eclass/multibuild.eclass file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?rev=1.17&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?rev=1.17&content-type=text/plain diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?r1=1.16&r2=1.17 Index: multibuild.eclass =================================================================== RCS file: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- multibuild.eclass 11 Apr 2014 08:30:44 -0000 1.16 +++ multibuild.eclass 15 Apr 2014 15:54:13 -0000 1.17 @@ -1,6 +1,6 @@ # Copyright 1999-2014 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.16 2014/04/11 08:30:44 mgorny Exp $ +# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.17 2014/04/15 15:54:13 mgorny Exp $ # @ECLASS: multibuild # @MAINTAINER: @@ -272,21 +272,31 @@ done rm "${lockfile_l}" || die - local cp_args=() - - if cp -a --version &>/dev/null; then - cp_args+=( -a ) + if use userland_BSD; then + # Most of BSD variants fail to copy broken symlinks, #447370 + # also, they do not support --version + + tar -C "${src}" -f - -c . \ + | tar -x -f - -C "${dest}" + [[ ${PIPESTATUS[*]} == '0 0' ]] + ret=${?} else - cp_args+=( -P -R -p ) - fi + local cp_args=() - if cp --reflink=auto --version &>/dev/null; then - # enable reflinking if possible to make this faster - cp_args+=( --reflink=auto ) - fi + if cp -a --version &>/dev/null; then + cp_args+=( -a ) + else + cp_args+=( -P -R -p ) + fi + + if cp --reflink=auto --version &>/dev/null; then + # enable reflinking if possible to make this faster + cp_args+=( --reflink=auto ) + fi - cp "${cp_args[@]}" "${src}"/. "${dest}"/ - ret=${?} + cp "${cp_args[@]}" "${src}"/. "${dest}"/ + ret=${?} + fi # Remove the lock. rm "${lockfile}" || die