[gentoo-commits] gentoo-x86 commit in eclass: ChangeLog multibuild.eclass

2014-12-13 Thread Michal Gorny (mgorny)
mgorny  14/12/13 08:42:42

  Modified: ChangeLog multibuild.eclass
  Log:
  Disable parallel run support.

Revision  ChangesPath
1.1461   eclass/ChangeLog

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1461view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1461content-type=text/plain
diff : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1460r2=1.1461

Index: ChangeLog
===
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1460
retrieving revision 1.1461
diff -u -r1.1460 -r1.1461
--- ChangeLog   13 Dec 2014 08:41:37 -  1.1460
+++ ChangeLog   13 Dec 2014 08:42:42 -  1.1461
@@ -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.1460 2014/12/13 
08:41:37 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1461 2014/12/13 
08:42:42 mgorny Exp $
+
+  13 Dec 2014; Michał Górny mgo...@gentoo.org multibuild.eclass:
+  Disable parallel run support.
 
   13 Dec 2014; Michał Górny mgo...@gentoo.org multilib-build.eclass,
   multilib-minimal.eclass:



1.20 eclass/multibuild.eclass

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?rev=1.20view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?rev=1.20content-type=text/plain
diff : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?r1=1.19r2=1.20

Index: multibuild.eclass
===
RCS file: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- multibuild.eclass   31 Oct 2014 00:57:49 -  1.19
+++ multibuild.eclass   13 Dec 2014 08:42:42 -  1.20
@@ -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.19 2014/10/31 
00:57:49 pesa Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.20 2014/12/13 
08:42:42 mgorny Exp $
 
 # @ECLASS: multibuild
 # @MAINTAINER:
@@ -26,8 +26,6 @@
 
 if [[ ! ${_MULTIBUILD} ]]; then
 
-inherit multiprocessing
-
 # @ECLASS-VARIABLE: MULTIBUILD_VARIANTS
 # @DESCRIPTION:
 # An array specifying all enabled variants which multibuild_foreach*
@@ -138,8 +136,8 @@
 # @USAGE: [argv...]
 # @DESCRIPTION:
 # Run the passed command repeatedly for each of the enabled package
-# variants alike multibuild_foreach_variant. Multiple invocations of the 
command
-# will be performed in parallel, up to MULTIBUILD_JOBS tasks.
+# variants. This used to run the commands in parallel but now it's
+# just a deprecated alias to multibuild_foreach_variant.
 #
 # The function returns 0 if all commands return 0, or the first non-zero
 # exit status otherwise. However, it performs all the invocations
@@ -148,31 +146,7 @@
 multibuild_parallel_foreach_variant() {
debug-print-function ${FUNCNAME} ${@}
 
-   local ret lret
-
-   _multibuild_parallel() {
-   (
-   multijob_child_init
-   ${@}
-   ) 
-   multijob_post_fork
-   }
-
-   local opts
-   if [[ ${MULTIBUILD_JOBS} ]]; then
-   opts=-j${MULTIBUILD_JOBS}
-   else
-   opts=${MAKEOPTS}
-   fi
-
-   multijob_init ${opts}
-   multibuild_foreach_variant _multibuild_parallel ${@}
-   ret=${?}
-   multijob_finish
-   lret=${?}
-
-   [[ ${ret} -eq 0 ]]  ret=${lret}
-   return ${ret}
+   multibuild_foreach_variant ${@}
 }
 
 # @FUNCTION: multibuild_for_best_variant
@@ -252,25 +226,12 @@
 # Merge the directory tree (fake root) from src-root to dest-root
 # (the real root). Both directories have to be real, absolute paths
 # (i.e. including ${D}). Source root will be removed.
-#
-# This functions uses locking to support merging during parallel
-# installs.
 multibuild_merge_root() {
local src=${1}
local dest=${2}
 
-   local lockfile=${T}/.multibuild_merge_lock
-   local lockfile_l=${lockfile}.${BASHPID}
local ret
 
-   # Lock the install tree for merge. The touch+ln method ensures race
-   # condition-free locking with maximum portability.
-   touch ${lockfile_l} || die
-   until ln ${lockfile_l} ${lockfile} /dev/null; do
-   sleep 1
-   done
-   rm ${lockfile_l} || die
-
if use userland_BSD; then
# Most of BSD variants fail to copy broken symlinks, #447370
# also, they do not support --version
@@ -297,9 +258,6 @@
ret=${?}
fi
 
-   # Remove the lock.
-   rm 

[gentoo-commits] gentoo-x86 commit in eclass: ChangeLog multibuild.eclass

2014-10-30 Thread Davide Pesavento (pesa)
pesa14/10/31 00:57:49

  Modified: ChangeLog multibuild.eclass
  Log:
  Make sure BUILD_DIR exists before pushd'ing into it.

Revision  ChangesPath
1.1397   eclass/ChangeLog

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1397view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1397content-type=text/plain
diff : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1396r2=1.1397

Index: ChangeLog
===
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1396
retrieving revision 1.1397
diff -u -r1.1396 -r1.1397
--- ChangeLog   30 Oct 2014 13:21:25 -  1.1396
+++ ChangeLog   31 Oct 2014 00:57:49 -  1.1397
@@ -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.1396 2014/10/30 
13:21:25 pacho Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1397 2014/10/31 
00:57:49 pesa Exp $
+
+  31 Oct 2014; Davide Pesavento p...@gentoo.org multibuild.eclass:
+  Make sure BUILD_DIR exists before pushd'ing into it.
 
   30 Oct 2014; Pacho Ramos pa...@gentoo.org vala.eclass:
   Fix repoman warnings (#521980 by Arfrever Frehtes Taifersar Arahesis)



1.19 eclass/multibuild.eclass

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?rev=1.19view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?rev=1.19content-type=text/plain
diff : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?r1=1.18r2=1.19

Index: multibuild.eclass
===
RCS file: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- multibuild.eclass   10 May 2014 21:36:49 -  1.18
+++ multibuild.eclass   31 Oct 2014 00:57:49 -  1.19
@@ -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.18 2014/05/10 
21:36:49 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.19 2014/10/31 
00:57:49 pesa Exp $
 
 # @ECLASS: multibuild
 # @MAINTAINER:
@@ -237,6 +237,7 @@
[[ ${#} -ne 0 ]] || die ${FUNCNAME}: no command specified.
[[ ${BUILD_DIR} ]] || die ${FUNCNAME}: BUILD_DIR not set.
 
+   mkdir -p ${BUILD_DIR} || die
pushd ${BUILD_DIR} /dev/null || die
${@}
ret=${?}






[gentoo-commits] gentoo-x86 commit in eclass: ChangeLog multibuild.eclass

2014-05-10 Thread Michal Gorny (mgorny)
mgorny  14/05/10 21:36:49

  Modified: ChangeLog multibuild.eclass
  Log:
  Remove the coreutils dependency since the old copying code has been replaced 
by a more portable function. Bug #509984.

Revision  ChangesPath
1.1249   eclass/ChangeLog

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1249view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1249content-type=text/plain
diff : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1248r2=1.1249

Index: ChangeLog
===
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1248
retrieving revision 1.1249
diff -u -r1.1248 -r1.1249
--- ChangeLog   9 May 2014 10:48:59 -   1.1248
+++ ChangeLog   10 May 2014 21:36:49 -  1.1249
@@ -1,6 +1,10 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1248 2014/05/09 
10:48:59 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1249 2014/05/10 
21:36:49 mgorny Exp $
+
+  10 May 2014; Michał Górny mgo...@gentoo.org multibuild.eclass:
+  Remove the coreutils dependency since the old copying code has been replaced
+  by a more portable function. Bug #509984.
 
   09 May 2014; Michał Górny mgo...@gentoo.org cmake-multilib.eclass:
   Use multilib-minimal for phase functions.



1.18 eclass/multibuild.eclass

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?rev=1.18view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?rev=1.18content-type=text/plain
diff : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?r1=1.17r2=1.18

Index: multibuild.eclass
===
RCS file: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- multibuild.eclass   15 Apr 2014 15:54:13 -  1.17
+++ multibuild.eclass   10 May 2014 21:36:49 -  1.18
@@ -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.17 2014/04/15 
15:54:13 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.18 2014/05/10 
21:36:49 mgorny Exp $
 
 # @ECLASS: multibuild
 # @MAINTAINER:
@@ -28,8 +28,6 @@
 
 inherit multiprocessing
 
-DEPEND=userland_GNU? ( =sys-apps/coreutils-8.5 )
-
 # @ECLASS-VARIABLE: MULTIBUILD_VARIANTS
 # @DESCRIPTION:
 # An array specifying all enabled variants which multibuild_foreach*






[gentoo-commits] gentoo-x86 commit in eclass: ChangeLog multibuild.eclass

2014-04-15 Thread Michal Gorny (mgorny)
mgorny  14/04/15 15:54:13

  Modified: ChangeLog multibuild.eclass
  Log:
  multibuild_merge_root: re-introduce userland_BSD tar fallback, bug #507626.

Revision  ChangesPath
1.1207   eclass/ChangeLog

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1207view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1207content-type=text/plain
diff : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1206r2=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 -  1.1206
+++ ChangeLog   15 Apr 2014 15:54:12 -  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.17view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?rev=1.17content-type=text/plain
diff : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?r1=1.16r2=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 -  1.16
+++ multibuild.eclass   15 Apr 2014 15:54:13 -  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






[gentoo-commits] gentoo-x86 commit in eclass: ChangeLog multibuild.eclass

2014-04-11 Thread Michal Gorny (mgorny)
mgorny  14/04/11 08:30:44

  Modified: ChangeLog multibuild.eclass
  Log:
  Enable reflinking in multibuild_copy_sources.

Revision  ChangesPath
1.1204   eclass/ChangeLog

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1204view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1204content-type=text/plain
diff : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1203r2=1.1204

Index: ChangeLog
===
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1203
retrieving revision 1.1204
diff -u -r1.1203 -r1.1204
--- ChangeLog   10 Apr 2014 16:43:25 -  1.1203
+++ ChangeLog   11 Apr 2014 08:30:44 -  1.1204
@@ -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.1203 2014/04/10 
16:43:25 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1204 2014/04/11 
08:30:44 mgorny Exp $
+
+  11 Apr 2014; Michał Górny mgo...@gentoo.org multibuild.eclass:
+  Enable reflinking in multibuild_copy_sources.
 
   10 Apr 2014; Michał Górny mgo...@gentoo.org multibuild.eclass:
   Use a more portable and clobbering cp call for multibuild_merge_root().



1.16 eclass/multibuild.eclass

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?rev=1.16view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?rev=1.16content-type=text/plain
diff : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?r1=1.15r2=1.16

Index: multibuild.eclass
===
RCS file: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- multibuild.eclass   10 Apr 2014 16:43:25 -  1.15
+++ multibuild.eclass   11 Apr 2014 08:30:44 -  1.16
@@ -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.15 2014/04/10 
16:43:25 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.16 2014/04/11 
08:30:44 mgorny Exp $
 
 # @ECLASS: multibuild
 # @MAINTAINER:
@@ -213,9 +213,16 @@
 
einfo Will copy sources from ${_MULTIBUILD_INITIAL_BUILD_DIR}
 
+   local cp_args=()
+   if cp --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 ${_MULTIBUILD_INITIAL_BUILD_DIR} ${BUILD_DIR} || die
+   cp -pr ${cp_args[@]} \
+   ${_MULTIBUILD_INITIAL_BUILD_DIR} ${BUILD_DIR} || die
}
 
multibuild_foreach_variant _multibuild_create_source_copy






[gentoo-commits] gentoo-x86 commit in eclass: ChangeLog multibuild.eclass

2014-04-10 Thread Michal Gorny (mgorny)
mgorny  14/04/10 16:43:25

  Modified: ChangeLog multibuild.eclass
  Log:
  Use a more portable and clobbering cp call for multibuild_merge_root().

Revision  ChangesPath
1.1203   eclass/ChangeLog

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1203view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1203content-type=text/plain
diff : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1202r2=1.1203

Index: ChangeLog
===
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.1202
retrieving revision 1.1203
diff -u -r1.1202 -r1.1203
--- ChangeLog   9 Apr 2014 21:55:12 -   1.1202
+++ ChangeLog   10 Apr 2014 16:43:25 -  1.1203
@@ -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.1202 2014/04/09 
21:55:12 radhermit Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1203 2014/04/10 
16:43:25 mgorny Exp $
+
+  10 Apr 2014; Michał Górny mgo...@gentoo.org multibuild.eclass:
+  Use a more portable and clobbering cp call for multibuild_merge_root().
 
   09 Apr 2014; Tim Harder radher...@gentoo.org java-utils-2.eclass:
   Only refer to DESTTREE within the src_install phase.



1.15 eclass/multibuild.eclass

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?rev=1.15view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?rev=1.15content-type=text/plain
diff : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?r1=1.14r2=1.15

Index: multibuild.eclass
===
RCS file: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- multibuild.eclass   18 Sep 2013 08:49:33 -  1.14
+++ multibuild.eclass   10 Apr 2014 16:43:25 -  1.15
@@ -1,6 +1,6 @@
-# Copyright 1999-2013 Gentoo Foundation
+# 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.14 2013/09/18 
08:49:33 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.15 2014/04/10 
16:43:25 mgorny Exp $
 
 # @ECLASS: multibuild
 # @MAINTAINER:
@@ -265,24 +265,22 @@
done
rm ${lockfile_l} || die
 
-   if use userland_BSD; then
-   # 'cp -a -n' is broken:
-   # http://www.freebsd.org/cgi/query-pr.cgi?pr=174489
-   # using tar instead which is universal but terribly slow.
-
-   tar -C ${src} -f - -c . \
-   | tar -x -f - -C ${dest}
-   [[ ${PIPESTATUS[*]} == '0 0' ]]
-   ret=${?}
-   elif use userland_GNU; then
-   # cp works with '-a -n'.
+   local cp_args=()
 
-   cp -a -l -n ${src}/. ${dest}/
-   ret=${?}
+   if cp -a --version /dev/null; then
+   cp_args+=( -a )
else
-   die Unsupported userland (${USERLAND}), please report.
+   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=${?}
+
# Remove the lock.
rm ${lockfile} || die