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




Reply via email to