public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog multibuild.eclass
@ 2013-05-24 17:42 Michal Gorny (mgorny)
  0 siblings, 0 replies; 18+ messages in thread
From: Michal Gorny (mgorny) @ 2013-05-24 17:42 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/05/24 17:42:06

  Modified:             ChangeLog multibuild.eclass
  Log:
  Fix the race condition in locking code by using $BASHPID instead of $$.

Revision  Changes    Path
1.837                eclass/ChangeLog

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

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.836
retrieving revision 1.837
diff -u -r1.836 -r1.837
--- ChangeLog	23 May 2013 20:19:28 -0000	1.836
+++ ChangeLog	24 May 2013 17:42:05 -0000	1.837
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.836 2013/05/23 20:19:28 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.837 2013/05/24 17:42:05 mgorny Exp $
+
+  24 May 2013; Michał Górny <mgorny@gentoo.org> multibuild.eclass:
+  Fix the race condition in locking code by using $BASHPID instead of $$.
 
   23 May 2013; Michał Górny <mgorny@gentoo.org> multibuild.eclass:
   Use portable locking code from Fabian Groffen. Bug #466554.



1.11                 eclass/multibuild.eclass

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

Index: multibuild.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- multibuild.eclass	23 May 2013 20:19:28 -0000	1.10
+++ multibuild.eclass	24 May 2013 17:42:05 -0000	1.11
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.10 2013/05/23 20:19:28 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.11 2013/05/24 17:42:05 mgorny Exp $
 
 # @ECLASS: multibuild
 # @MAINTAINER:
@@ -252,7 +252,7 @@
 	local dest=${2}
 
 	local lockfile=${T}/.multibuild_merge_lock
-	local lockfile_l=${lockfile}.${$}
+	local lockfile_l=${lockfile}.${BASHPID}
 	local ret
 
 	# Lock the install tree for merge. The touch+ln method ensures race





^ permalink raw reply	[flat|nested] 18+ messages in thread
* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog multibuild.eclass
@ 2014-12-13  8:42 Michal Gorny (mgorny)
  0 siblings, 0 replies; 18+ messages in thread
From: Michal Gorny (mgorny) @ 2014-12-13  8:42 UTC (permalink / raw
  To: gentoo-commits

mgorny      14/12/13 08:42:42

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

Revision  Changes    Path
1.1461               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1461&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1461&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1460&r2=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 -0000	1.1460
+++ ChangeLog	13 Dec 2014 08:42:42 -0000	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 <mgorny@gentoo.org> multibuild.eclass:
+  Disable parallel run support.
 
   13 Dec 2014; Michał Górny <mgorny@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.20&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?rev=1.20&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?r1=1.19&r2=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 -0000	1.19
+++ multibuild.eclass	13 Dec 2014 08:42:42 -0000	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 "${lockfile}" || die
-
 	if [[ ${ret} -ne 0 ]]; then
 		die "${MULTIBUILD_VARIANT:-(unknown)}: merging image failed."
 	fi





^ permalink raw reply	[flat|nested] 18+ messages in thread
* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog multibuild.eclass
@ 2014-10-31  0:57 Davide Pesavento (pesa)
  0 siblings, 0 replies; 18+ messages in thread
From: Davide Pesavento (pesa) @ 2014-10-31  0:57 UTC (permalink / raw
  To: gentoo-commits

pesa        14/10/31 00:57:49

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

Revision  Changes    Path
1.1397               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1397&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1397&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1396&r2=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 -0000	1.1396
+++ ChangeLog	31 Oct 2014 00:57:49 -0000	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 <pesa@gentoo.org> multibuild.eclass:
+  Make sure BUILD_DIR exists before pushd'ing into it.
 
   30 Oct 2014; Pacho Ramos <pacho@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.19&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?rev=1.19&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?r1=1.18&r2=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 -0000	1.18
+++ multibuild.eclass	31 Oct 2014 00:57:49 -0000	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=${?}





^ permalink raw reply	[flat|nested] 18+ messages in thread
* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog multibuild.eclass
@ 2014-05-10 21:36 Michal Gorny (mgorny)
  0 siblings, 0 replies; 18+ messages in thread
From: Michal Gorny (mgorny) @ 2014-05-10 21:36 UTC (permalink / raw
  To: gentoo-commits

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  Changes    Path
1.1249               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1249&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1249&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1248&r2=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 -0000	1.1248
+++ ChangeLog	10 May 2014 21:36:49 -0000	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 <mgorny@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 <mgorny@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.18&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?rev=1.18&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?r1=1.17&r2=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 -0000	1.17
+++ multibuild.eclass	10 May 2014 21:36:49 -0000	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*





^ permalink raw reply	[flat|nested] 18+ messages in thread
* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog multibuild.eclass
@ 2014-04-15 15:54 Michal Gorny (mgorny)
  0 siblings, 0 replies; 18+ messages in thread
From: Michal Gorny (mgorny) @ 2014-04-15 15:54 UTC (permalink / raw
  To: gentoo-commits

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 <mgorny@gentoo.org> multibuild.eclass:
+  multibuild_merge_root: re-introduce userland_BSD tar fallback, bug #507626.
 
   14 Apr 2014; Tom Wijsman <TomWij@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





^ permalink raw reply	[flat|nested] 18+ messages in thread
* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog multibuild.eclass
@ 2014-04-11  8:30 Michal Gorny (mgorny)
  0 siblings, 0 replies; 18+ messages in thread
From: Michal Gorny (mgorny) @ 2014-04-11  8:30 UTC (permalink / raw
  To: gentoo-commits

mgorny      14/04/11 08:30:44

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

Revision  Changes    Path
1.1204               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1204&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1204&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1203&r2=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 -0000	1.1203
+++ ChangeLog	11 Apr 2014 08:30:44 -0000	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 <mgorny@gentoo.org> multibuild.eclass:
+  Enable reflinking in multibuild_copy_sources.
 
   10 Apr 2014; Michał Górny <mgorny@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.16&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?rev=1.16&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?r1=1.15&r2=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 -0000	1.15
+++ multibuild.eclass	11 Apr 2014 08:30:44 -0000	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





^ permalink raw reply	[flat|nested] 18+ messages in thread
* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog multibuild.eclass
@ 2014-04-10 16:43 Michal Gorny (mgorny)
  0 siblings, 0 replies; 18+ messages in thread
From: Michal Gorny (mgorny) @ 2014-04-10 16:43 UTC (permalink / raw
  To: gentoo-commits

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  Changes    Path
1.1203               eclass/ChangeLog

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1203&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1203&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1202&r2=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 -0000	1.1202
+++ ChangeLog	10 Apr 2014 16:43:25 -0000	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 <mgorny@gentoo.org> multibuild.eclass:
+  Use a more portable and clobbering "cp" call for multibuild_merge_root().
 
   09 Apr 2014; Tim Harder <radhermit@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.15&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?rev=1.15&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?r1=1.14&r2=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 -0000	1.14
+++ multibuild.eclass	10 Apr 2014 16:43:25 -0000	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
 





^ permalink raw reply	[flat|nested] 18+ messages in thread
* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog multibuild.eclass
@ 2013-09-18  8:49 Michal Gorny (mgorny)
  0 siblings, 0 replies; 18+ messages in thread
From: Michal Gorny (mgorny) @ 2013-09-18  8:49 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/09/18 08:49:33

  Modified:             ChangeLog multibuild.eclass
  Log:
  Fix coreutils dep to be build-time.

Revision  Changes    Path
1.975                eclass/ChangeLog

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

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.974
retrieving revision 1.975
diff -u -r1.974 -r1.975
--- ChangeLog	17 Sep 2013 19:40:56 -0000	1.974
+++ ChangeLog	18 Sep 2013 08:49:33 -0000	1.975
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.974 2013/09/17 19:40:56 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.975 2013/09/18 08:49:33 mgorny Exp $
+
+  18 Sep 2013; Michał Górny <mgorny@gentoo.org> multibuild.eclass:
+  Fix coreutils dep to be build-time.
 
   17 Sep 2013; Michał Górny <mgorny@gentoo.org> python-utils-r1.eclass:
   Fix missing variable replacement in _python_ln_rel.



1.14                 eclass/multibuild.eclass

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

Index: multibuild.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- multibuild.eclass	10 Sep 2013 09:10:22 -0000	1.13
+++ multibuild.eclass	18 Sep 2013 08:49:33 -0000	1.14
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.13 2013/09/10 09:10:22 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.14 2013/09/18 08:49:33 mgorny Exp $
 
 # @ECLASS: multibuild
 # @MAINTAINER:
@@ -28,7 +28,7 @@
 
 inherit multiprocessing
 
-RDEPEND="userland_GNU? ( >=sys-apps/coreutils-8.5 )"
+DEPEND="userland_GNU? ( >=sys-apps/coreutils-8.5 )"
 
 # @ECLASS-VARIABLE: MULTIBUILD_VARIANTS
 # @DESCRIPTION:





^ permalink raw reply	[flat|nested] 18+ messages in thread
* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog multibuild.eclass
@ 2013-09-10  9:10 Michal Gorny (mgorny)
  0 siblings, 0 replies; 18+ messages in thread
From: Michal Gorny (mgorny) @ 2013-09-10  9:10 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/09/10 09:10:22

  Modified:             ChangeLog multibuild.eclass
  Log:
  Add new enough coreutils dep wrt bug #484454.

Revision  Changes    Path
1.955                eclass/ChangeLog

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

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.954
retrieving revision 1.955
diff -u -r1.954 -r1.955
--- ChangeLog	9 Sep 2013 16:01:16 -0000	1.954
+++ ChangeLog	10 Sep 2013 09:10:22 -0000	1.955
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.954 2013/09/09 16:01:16 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.955 2013/09/10 09:10:22 mgorny Exp $
+
+  10 Sep 2013; Michał Górny <mgorny@gentoo.org> multibuild.eclass:
+  Add new enough coreutils dep wrt bug #484454.
 
   09 Sep 2013; Michał Górny <mgorny@gentoo.org> git-r3.eclass:
   Introduce smart switching between "git fetch" and "git fetch --depth 1" to



1.13                 eclass/multibuild.eclass

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

Index: multibuild.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- multibuild.eclass	21 Jun 2013 10:31:18 -0000	1.12
+++ multibuild.eclass	10 Sep 2013 09:10:22 -0000	1.13
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.12 2013/06/21 10:31:18 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.13 2013/09/10 09:10:22 mgorny Exp $
 
 # @ECLASS: multibuild
 # @MAINTAINER:
@@ -28,6 +28,8 @@
 
 inherit multiprocessing
 
+RDEPEND="userland_GNU? ( >=sys-apps/coreutils-8.5 )"
+
 # @ECLASS-VARIABLE: MULTIBUILD_VARIANTS
 # @DESCRIPTION:
 # An array specifying all enabled variants which multibuild_foreach*





^ permalink raw reply	[flat|nested] 18+ messages in thread
* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog multibuild.eclass
@ 2013-06-21 10:31 Michal Gorny (mgorny)
  0 siblings, 0 replies; 18+ messages in thread
From: Michal Gorny (mgorny) @ 2013-06-21 10:31 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/06/21 10:31:18

  Modified:             ChangeLog multibuild.eclass
  Log:
  Enable EAPI 4 per bug #474000.

Revision  Changes    Path
1.861                eclass/ChangeLog

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

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.860
retrieving revision 1.861
diff -u -r1.860 -r1.861
--- ChangeLog	18 Jun 2013 04:31:44 -0000	1.860
+++ ChangeLog	21 Jun 2013 10:31:18 -0000	1.861
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.860 2013/06/18 04:31:44 ottxor Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.861 2013/06/21 10:31:18 mgorny Exp $
+
+  21 Jun 2013; Michał Górny <mgorny@gentoo.org> multibuild.eclass:
+  Enable EAPI 4 per bug #474000.
 
   18 Jun 2013; Christoph Junghans <ottxor@gentoo.org> cvs.eclass:
   fixed use of proxy variables



1.12                 eclass/multibuild.eclass

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

Index: multibuild.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- multibuild.eclass	24 May 2013 17:42:05 -0000	1.11
+++ multibuild.eclass	21 Jun 2013 10:31:18 -0000	1.12
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.11 2013/05/24 17:42:05 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.12 2013/06/21 10:31:18 mgorny Exp $
 
 # @ECLASS: multibuild
 # @MAINTAINER:
@@ -14,10 +14,10 @@
 # implementations).
 
 case "${EAPI:-0}" in
-	0|1|2|3|4)
+	0|1|2|3)
 		die "Unsupported EAPI=${EAPI:-0} (too old) for ${ECLASS}"
 		;;
-	5)
+	4|5)
 		;;
 	*)
 		die "Unsupported EAPI=${EAPI} (unknown) for ${ECLASS}"





^ permalink raw reply	[flat|nested] 18+ messages in thread
* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog multibuild.eclass
@ 2013-05-23 20:19 Michal Gorny (mgorny)
  0 siblings, 0 replies; 18+ messages in thread
From: Michal Gorny (mgorny) @ 2013-05-23 20:19 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/05/23 20:19:29

  Modified:             ChangeLog multibuild.eclass
  Log:
  Use portable locking code from Fabian Groffen. Bug #466554.

Revision  Changes    Path
1.836                eclass/ChangeLog

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

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.835
retrieving revision 1.836
diff -u -r1.835 -r1.836
--- ChangeLog	22 May 2013 05:10:29 -0000	1.835
+++ ChangeLog	23 May 2013 20:19:28 -0000	1.836
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.835 2013/05/22 05:10:29 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.836 2013/05/23 20:19:28 mgorny Exp $
+
+  23 May 2013; Michał Górny <mgorny@gentoo.org> multibuild.eclass:
+  Use portable locking code from Fabian Groffen. Bug #466554.
 
   22 May 2013; Michał Górny <mgorny@gentoo.org> eutils.eclass:
   Fix the libtool check, bug #470938.



1.10                 eclass/multibuild.eclass

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

Index: multibuild.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- multibuild.eclass	1 Apr 2013 09:17:53 -0000	1.9
+++ multibuild.eclass	23 May 2013 20:19:28 -0000	1.10
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.9 2013/04/01 09:17:53 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.10 2013/05/23 20:19:28 mgorny Exp $
 
 # @ECLASS: multibuild
 # @MAINTAINER:
@@ -251,38 +251,39 @@
 	local src=${1}
 	local dest=${2}
 
-	local lockfile=${T}/multibuild_merge_lock
+	local lockfile=${T}/.multibuild_merge_lock
+	local lockfile_l=${lockfile}.${$}
 	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
-		# Locking is done by 'lockf' which can wrap a command.
 		# '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 . \
-			| lockf "${lockfile}" tar -x -f - -C "${dest}"
+			| tar -x -f - -C "${dest}"
 		[[ ${PIPESTATUS[*]} == '0 0' ]]
 		ret=${?}
 	elif use userland_GNU; then
-		# GNU has 'flock' which can't wrap commands but can lock
-		# a fd which is good enough for us.
-		# and cp works with '-a -n'.
-
-		local lock_fd
-		redirect_alloc_fd lock_fd "${lockfile}" '>>'
-		flock ${lock_fd}
+		# cp works with '-a -n'.
 
 		cp -a -l -n "${src}"/. "${dest}"/
 		ret=${?}
-
-		# Close the lock file when we are done with it.
-		# Prevents deadlock if we aren't in a subshell.
-		eval "exec ${lock_fd}>&-"
 	else
 		die "Unsupported userland (${USERLAND}), please report."
 	fi
 
+	# Remove the lock.
+	rm "${lockfile}" || die
+
 	if [[ ${ret} -ne 0 ]]; then
 		die "${MULTIBUILD_VARIANT:-(unknown)}: merging image failed."
 	fi





^ permalink raw reply	[flat|nested] 18+ messages in thread
* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog multibuild.eclass
@ 2013-03-10 21:44 Michal Gorny (mgorny)
  0 siblings, 0 replies; 18+ messages in thread
From: Michal Gorny (mgorny) @ 2013-03-10 21:44 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/03/10 21:44:01

  Modified:             ChangeLog multibuild.eclass
  Log:
  Make the log output redirection much simpler. Fix bash-3.2 compatibility.

Revision  Changes    Path
1.735                eclass/ChangeLog

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

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.734
retrieving revision 1.735
diff -u -r1.734 -r1.735
--- ChangeLog	10 Mar 2013 21:00:28 -0000	1.734
+++ ChangeLog	10 Mar 2013 21:44:00 -0000	1.735
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.734 2013/03/10 21:00:28 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.735 2013/03/10 21:44:00 mgorny Exp $
+
+  10 Mar 2013; Michał Górny <mgorny@gentoo.org> multibuild.eclass:
+  Make the log output redirection much simpler. Fix bash-3.2 compatibility.
 
   10 Mar 2013; Michał Górny <mgorny@gentoo.org> multibuild.eclass:
   Fix compatibility with bash-4.1 -- it does not support negative array



1.8                  eclass/multibuild.eclass

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

Index: multibuild.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- multibuild.eclass	10 Mar 2013 21:00:29 -0000	1.7
+++ multibuild.eclass	10 Mar 2013 21:44:01 -0000	1.8
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.7 2013/03/10 21:00:29 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.8 2013/03/10 21:44:01 mgorny Exp $
 
 # @ECLASS: multibuild
 # @MAINTAINER:
@@ -113,11 +113,6 @@
 		local MULTIBUILD_VARIANT=${v}
 		local MULTIBUILD_ID=${prev_id}${v}
 		local BUILD_DIR=${bdir%%/}-${v}
-		local log_fd
-
-		# redirect_alloc_fd accepts files only. so we need to open
-		# a random file and then reuse the fd for logger process.
-		redirect_alloc_fd log_fd /dev/null
 
 		_multibuild_run() {
 			# find the first non-private command
@@ -130,14 +125,9 @@
 			"${@}"
 		}
 
-		# bash can't handle ${log_fd} in redirections,
-		# we need to use eval to pass fd numbers directly.
-		eval "
-			exec ${log_fd}> >(exec tee -a \"\${T}/build-\${MULTIBUILD_ID}.log\")
-			_multibuild_run \"\${@}\" >&${log_fd} 2>&1
-			lret=\${?}
-			exec ${log_fd}>&-
-		"
+		_multibuild_run "${@}" \
+			> >(exec tee -a "${T}/build-${MULTIBUILD_ID}.log") 2>&1
+		lret=${?}
 	done
 	[[ ${ret} -eq 0 && ${lret} -ne 0 ]] && ret=${lret}
 





^ permalink raw reply	[flat|nested] 18+ messages in thread
* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog multibuild.eclass
@ 2013-03-10 21:00 Michal Gorny (mgorny)
  0 siblings, 0 replies; 18+ messages in thread
From: Michal Gorny (mgorny) @ 2013-03-10 21:00 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/03/10 21:00:29

  Modified:             ChangeLog multibuild.eclass
  Log:
  Fix compatibility with bash-4.1 -- it does not support negative array subscripts.

Revision  Changes    Path
1.734                eclass/ChangeLog

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

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.733
retrieving revision 1.734
diff -u -r1.733 -r1.734
--- ChangeLog	10 Mar 2013 09:05:32 -0000	1.733
+++ ChangeLog	10 Mar 2013 21:00:28 -0000	1.734
@@ -1,6 +1,10 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.733 2013/03/10 09:05:32 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.734 2013/03/10 21:00:28 mgorny Exp $
+
+  10 Mar 2013; Michał Górny <mgorny@gentoo.org> multibuild.eclass:
+  Fix compatibility with bash-4.1 -- it does not support negative array
+  subscripts.
 
   10 Mar 2013; Michał Górny <mgorny@gentoo.org> multibuild.eclass:
   multibuild_copy_sources: fix outputting variant name.



1.7                  eclass/multibuild.eclass

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

Index: multibuild.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- multibuild.eclass	10 Mar 2013 09:05:32 -0000	1.6
+++ multibuild.eclass	10 Mar 2013 21:00:29 -0000	1.7
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.6 2013/03/10 09:05:32 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.7 2013/03/10 21:00:29 mgorny Exp $
 
 # @ECLASS: multibuild
 # @MAINTAINER:
@@ -201,7 +201,10 @@
 	[[ ${MULTIBUILD_VARIANTS} ]] \
 		|| die "MULTIBUILD_VARIANTS need to be set"
 
-	local MULTIBUILD_VARIANTS=( "${MULTIBUILD_VARIANTS[-1]}" )
+	# bash-4.1 can't handle negative subscripts
+	local MULTIBUILD_VARIANTS=(
+		"${MULTIBUILD_VARIANTS[$(( ${#MULTIBUILD_VARIANTS[@]} - 1 ))]}"
+	)
 	multibuild_foreach_variant "${@}"
 }
 





^ permalink raw reply	[flat|nested] 18+ messages in thread
* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog multibuild.eclass
@ 2013-03-10  9:05 Michal Gorny (mgorny)
  0 siblings, 0 replies; 18+ messages in thread
From: Michal Gorny (mgorny) @ 2013-03-10  9:05 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/03/10 09:05:32

  Modified:             ChangeLog multibuild.eclass
  Log:
  multibuild_copy_sources: fix outputting variant name.

Revision  Changes    Path
1.733                eclass/ChangeLog

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

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.732
retrieving revision 1.733
diff -u -r1.732 -r1.733
--- ChangeLog	10 Mar 2013 02:02:30 -0000	1.732
+++ ChangeLog	10 Mar 2013 09:05:32 -0000	1.733
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.732 2013/03/10 02:02:30 ottxor Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.733 2013/03/10 09:05:32 mgorny Exp $
+
+  10 Mar 2013; Michał Górny <mgorny@gentoo.org> multibuild.eclass:
+  multibuild_copy_sources: fix outputting variant name.
 
   10 Mar 2013; Christoph Junghans <ottxor@gentoo.org> vim.eclass:
   add sys-apps/gawk dep



1.6                  eclass/multibuild.eclass

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

Index: multibuild.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- multibuild.eclass	9 Mar 2013 13:51:02 -0000	1.5
+++ multibuild.eclass	10 Mar 2013 09:05:32 -0000	1.6
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.5 2013/03/09 13:51:02 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.6 2013/03/10 09:05:32 mgorny Exp $
 
 # @ECLASS: multibuild
 # @MAINTAINER:
@@ -219,7 +219,7 @@
 	einfo "Will copy sources from ${_MULTIBUILD_INITIAL_BUILD_DIR}"
 
 	_multibuild_create_source_copy() {
-		einfo "${impl}: copying to ${BUILD_DIR}"
+		einfo "${MULTIBUILD_VARIANT}: copying to ${BUILD_DIR}"
 		cp -pr "${_MULTIBUILD_INITIAL_BUILD_DIR}" "${BUILD_DIR}" || die
 	}
 





^ permalink raw reply	[flat|nested] 18+ messages in thread
* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog multibuild.eclass
@ 2013-03-09 13:51 Michal Gorny (mgorny)
  0 siblings, 0 replies; 18+ messages in thread
From: Michal Gorny (mgorny) @ 2013-03-09 13:51 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/03/09 13:51:02

  Modified:             ChangeLog multibuild.eclass
  Log:
  Introduce multibuild_copy_sources as a generic source duplicating function.

Revision  Changes    Path
1.722                eclass/ChangeLog

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

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.721
retrieving revision 1.722
diff -u -r1.721 -r1.722
--- ChangeLog	9 Mar 2013 13:13:02 -0000	1.721
+++ ChangeLog	9 Mar 2013 13:51:02 -0000	1.722
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.721 2013/03/09 13:13:02 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.722 2013/03/09 13:51:02 mgorny Exp $
+
+  09 Mar 2013; Michał Górny <mgorny@gentoo.org> multibuild.eclass:
+  Introduce multibuild_copy_sources as a generic source duplicating function.
 
   09 Mar 2013; Michał Górny <mgorny@gentoo.org> distutils-r1.eclass:
   Use doins instead of dodoc to install examples, due to PMS limitations. Bug



1.5                  eclass/multibuild.eclass

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

Index: multibuild.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- multibuild.eclass	4 Mar 2013 19:27:24 -0000	1.4
+++ multibuild.eclass	9 Mar 2013 13:51:02 -0000	1.5
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.4 2013/03/04 19:27:24 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.5 2013/03/09 13:51:02 mgorny Exp $
 
 # @ECLASS: multibuild
 # @MAINTAINER:
@@ -205,6 +205,27 @@
 	multibuild_foreach_variant "${@}"
 }
 
+# @FUNCTION: multibuild_copy_sources
+# @DESCRIPTION:
+# Create per-variant copies of source tree. The source tree is assumed
+# to be in ${BUILD_DIR}, or ${S} if the former is unset. The copies will
+# be placed in directories matching BUILD_DIRs used by
+# multibuild_foreach().
+multibuild_copy_sources() {
+	debug-print-function ${FUNCNAME} "${@}"
+
+	local _MULTIBUILD_INITIAL_BUILD_DIR=${BUILD_DIR:-${S}}
+
+	einfo "Will copy sources from ${_MULTIBUILD_INITIAL_BUILD_DIR}"
+
+	_multibuild_create_source_copy() {
+		einfo "${impl}: copying to ${BUILD_DIR}"
+		cp -pr "${_MULTIBUILD_INITIAL_BUILD_DIR}" "${BUILD_DIR}" || die
+	}
+
+	multibuild_foreach_variant _multibuild_create_source_copy
+}
+
 # @FUNCTION: run_in_build_dir
 # @USAGE: <argv>...
 # @DESCRIPTION:





^ permalink raw reply	[flat|nested] 18+ messages in thread
* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog multibuild.eclass
@ 2013-03-04 19:27 Michal Gorny (mgorny)
  0 siblings, 0 replies; 18+ messages in thread
From: Michal Gorny (mgorny) @ 2013-03-04 19:27 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/03/04 19:27:24

  Modified:             ChangeLog multibuild.eclass
  Log:
  Add multibuild_for_best_variant.

Revision  Changes    Path
1.708                eclass/ChangeLog

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

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.707
retrieving revision 1.708
diff -u -r1.707 -r1.708
--- ChangeLog	4 Mar 2013 19:27:00 -0000	1.707
+++ ChangeLog	4 Mar 2013 19:27:24 -0000	1.708
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.707 2013/03/04 19:27:00 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.708 2013/03/04 19:27:24 mgorny Exp $
+
+  04 Mar 2013; Michał Górny <mgorny@gentoo.org> multibuild.eclass:
+  Add multibuild_for_best_variant.
 
   04 Mar 2013; Michał Górny <mgorny@gentoo.org> multibuild.eclass:
   Print only the "public" part of commands.



1.4                  eclass/multibuild.eclass

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

Index: multibuild.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- multibuild.eclass	4 Mar 2013 19:27:00 -0000	1.3
+++ multibuild.eclass	4 Mar 2013 19:27:24 -0000	1.4
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.3 2013/03/04 19:27:00 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.4 2013/03/04 19:27:24 mgorny Exp $
 
 # @ECLASS: multibuild
 # @MAINTAINER:
@@ -185,6 +185,26 @@
 	return ${ret}
 }
 
+# @FUNCTION: multibuild_for_best_variant
+# @USAGE: [<argv>...]
+# @DESCRIPTION:
+# Run the passed command once, for the best of the enabled package
+# variants.
+#
+# The run will have a proper, variant-specificBUILD_DIR set, and output
+# teed to a separate log in ${T}.
+#
+# The function returns command exit status.
+multibuild_for_best_variant() {
+	debug-print-function ${FUNCNAME} "${@}"
+
+	[[ ${MULTIBUILD_VARIANTS} ]] \
+		|| die "MULTIBUILD_VARIANTS need to be set"
+
+	local MULTIBUILD_VARIANTS=( "${MULTIBUILD_VARIANTS[-1]}" )
+	multibuild_foreach_variant "${@}"
+}
+
 # @FUNCTION: run_in_build_dir
 # @USAGE: <argv>...
 # @DESCRIPTION:





^ permalink raw reply	[flat|nested] 18+ messages in thread
* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog multibuild.eclass
@ 2013-03-04 19:27 Michal Gorny (mgorny)
  0 siblings, 0 replies; 18+ messages in thread
From: Michal Gorny (mgorny) @ 2013-03-04 19:27 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/03/04 19:27:00

  Modified:             ChangeLog multibuild.eclass
  Log:
  Print only the "public" part of commands.

Revision  Changes    Path
1.707                eclass/ChangeLog

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

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.706
retrieving revision 1.707
diff -u -r1.706 -r1.707
--- ChangeLog	4 Mar 2013 19:22:13 -0000	1.706
+++ ChangeLog	4 Mar 2013 19:27:00 -0000	1.707
@@ -1,6 +1,9 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.706 2013/03/04 19:22:13 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.707 2013/03/04 19:27:00 mgorny Exp $
+
+  04 Mar 2013; Michał Górny <mgorny@gentoo.org> multibuild.eclass:
+  Print only the "public" part of commands.
 
   04 Mar 2013; Michał Górny <mgorny@gentoo.org> multibuild.eclass,
   python-r1.eclass:



1.3                  eclass/multibuild.eclass

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

Index: multibuild.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- multibuild.eclass	4 Mar 2013 19:22:13 -0000	1.2
+++ multibuild.eclass	4 Mar 2013 19:27:00 -0000	1.3
@@ -1,6 +1,6 @@
 # Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.2 2013/03/04 19:22:13 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.3 2013/03/04 19:27:00 mgorny Exp $
 
 # @ECLASS: multibuild
 # @MAINTAINER:
@@ -118,12 +118,23 @@
 		# redirect_alloc_fd accepts files only. so we need to open
 		# a random file and then reuse the fd for logger process.
 		redirect_alloc_fd log_fd /dev/null
+
+		_multibuild_run() {
+			# find the first non-private command
+			local i=1
+			while [[ ${!i} == _* ]]; do
+				(( i += 1 ))
+			done
+
+			[[ ${i} -le ${#} ]] && einfo "${v}: running ${@:${i}}"
+			"${@}"
+		}
+
 		# bash can't handle ${log_fd} in redirections,
 		# we need to use eval to pass fd numbers directly.
 		eval "
 			exec ${log_fd}> >(exec tee -a \"\${T}/build-\${MULTIBUILD_ID}.log\")
-			einfo \"\${v}: running \${@}\" >&${log_fd} 2>&1
-			\"\${@}\" >&${log_fd} 2>&1
+			_multibuild_run \"\${@}\" >&${log_fd} 2>&1
 			lret=\${?}
 			exec ${log_fd}>&-
 		"





^ permalink raw reply	[flat|nested] 18+ messages in thread
* [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog multibuild.eclass
@ 2013-03-04 19:21 Michal Gorny (mgorny)
  0 siblings, 0 replies; 18+ messages in thread
From: Michal Gorny (mgorny) @ 2013-03-04 19:21 UTC (permalink / raw
  To: gentoo-commits

mgorny      13/03/04 19:21:27

  Modified:             ChangeLog
  Added:                multibuild.eclass
  Log:
  Introduce multibuild.eclass to handle building multiple variants of the same package in a common manner.

Revision  Changes    Path
1.705                eclass/ChangeLog

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

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v
retrieving revision 1.704
retrieving revision 1.705
diff -u -r1.704 -r1.705
--- ChangeLog	4 Mar 2013 19:10:31 -0000	1.704
+++ ChangeLog	4 Mar 2013 19:21:27 -0000	1.705
@@ -1,6 +1,10 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.704 2013/03/04 19:10:31 robbat2 Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.705 2013/03/04 19:21:27 mgorny Exp $
+
+  04 Mar 2013; Michał Górny <mgorny@gentoo.org> +multibuild.eclass:
+  Introduce multibuild.eclass to handle building multiple variants of the same
+  package in a common manner.
 
   04 Mar 2013; Robin H. Johnson <robbat2@gentoo.org> mysql-cmake.eclass:
   MySQL 5.6 needs to NOT have -fno-implicit-templates, also support



1.1                  eclass/multibuild.eclass

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/multibuild.eclass?rev=1.1&content-type=text/plain

Index: multibuild.eclass
===================================================================
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/eclass/multibuild.eclass,v 1.1 2013/03/04 19:21:27 mgorny Exp $

# @ECLASS: multibuild
# @MAINTAINER:
# Michał Górny <mgorny@gentoo.org>
# @AUTHOR:
# Author: Michał Górny <mgorny@gentoo.org>
# @BLURB: A generic eclass for building multiple variants of packages.
# @DESCRIPTION:
# The multibuild eclass aims to provide a generic framework for building
# multiple 'variants' of a package (e.g. multilib, Python
# implementations).

case "${EAPI:-0}" in
	0|1|2|3|4)
		die "Unsupported EAPI=${EAPI:-0} (too old) for ${ECLASS}"
		;;
	5)
		;;
	*)
		die "Unsupported EAPI=${EAPI} (unknown) for ${ECLASS}"
		;;
esac

if [[ ! ${_MULTIBUILD} ]]; then

inherit multiprocessing

# @ECLASS-VARIABLE: MULTIBUILD_VARIANTS
# @DESCRIPTION:
# An array specifying all enabled variants which multibuild_foreach*
# can execute the process for.
#
# In ebuild, it can be set in global scope. Eclasses should set it
# locally in function scope to support nesting properly.
#
# Example:
# @CODE
# python_foreach_impl() {
#	local MULTIBUILD_VARIANTS=( python{2_5,2_6,2_7} ... )
#	multibuild_foreach_variant python_compile
# }
# @CODE

# @ECLASS-VARIABLE: MULTIBUILD_VARIANT
# @DESCRIPTION:
# The current variant which the function was executed for.
#
# Example value:
# @CODE
# python2_6
# @CODE

# @ECLASS-VARIABLE: MULTIBUILD_ID
# @DESCRIPTION:
# The unique identifier for a multibuild run. In a simple run, it is
# equal to MULTIBUILD_VARIANT. In a nested multibuild environment, it
# contains the complete selection tree.
#
# It can be used to create variant-unique directories and files.
#
# Example value:
# @CODE
# amd64-double
# @CODE

# @ECLASS-VARIABLE: BUILD_DIR
# @DESCRIPTION:
# The current build directory. In global scope, it is supposed
# to contain an 'initial' build directory. If unset, ${S} is used.
#
# multibuild_foreach_variant() sets BUILD_DIR locally
# to variant-specific build directories based on the initial value
# of BUILD_DIR.
#
# Example value:
# @CODE
# ${WORKDIR}/foo-1.3-python2_6
# @CODE

# @FUNCTION: multibuild_foreach_variant
# @USAGE: [<argv>...]
# @DESCRIPTION:
# Run the passed command repeatedly for each of the enabled package
# variants.
#
# Each of the runs will have variant-specific BUILD_DIR set, and output
# teed to a separate log in ${T}.
#
# The function returns 0 if all commands return 0, or the first non-zero
# exit status otherwise. However, it performs all the invocations
# nevertheless. It is preferred to call 'die' inside of the passed
# function.
multibuild_foreach_variant() {
	debug-print-function ${FUNCNAME} "${@}"

	[[ ${MULTIBUILD_VARIANTS} ]] \
		|| die "MULTIBUILD_VARIANTS need to be set"

	local bdir=${BUILD_DIR:-${S}}

	# Avoid writing outside WORKDIR if S=${WORKDIR}.
	[[ ${bdir%%/} == ${WORKDIR%%/} ]] && bdir=${WORKDIR}/build

	local prev_id=${MULTIBUILD_ID:+${MULTIBUILD_ID}-}
	local ret=0 lret=0 v

	debug-print "${FUNCNAME}: initial build_dir = ${bdir}"

	for v in "${MULTIBUILD_VARIANTS[@]}"; do
		local MULTIBUILD_VARIANT=${v}
		local MULTIBUILD_ID=${prev_id}${v}
		local BUILD_DIR=${bdir%%/}-${v}
		local log_fd

		# redirect_alloc_fd accepts files only. so we need to open
		# a random file and then reuse the fd for logger process.
		redirect_alloc_fd log_fd /dev/null
		# bash can't handle ${log_fd} in redirections,
		# we need to use eval to pass fd numbers directly.
		eval "
			exec ${log_fd}> >(exec tee -a \"\${T}/build-\${MULTIBUILD_ID}.log\")
			einfo \"\${v}: running \${@}\" >&${log_fd} 2>&1
			\"\${@}\" >&${log_fd} 2>&1
			lret=\${?}
			exec ${log_fd}>&-
		"
	done
	[[ ${ret} -eq 0 && ${lret} -ne 0 ]] && ret=${lret}

	return ${ret}
}

# @FUNCTION: multibuild_parallel_foreach_variant
# @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.
#
# The function returns 0 if all commands return 0, or the first non-zero
# exit status otherwise. However, it performs all the invocations
# nevertheless. It is preferred to call 'die' inside of the passed
# function.
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=1
fi





^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2014-12-13  8:42 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-24 17:42 [gentoo-commits] gentoo-x86 commit in eclass: ChangeLog multibuild.eclass Michal Gorny (mgorny)
  -- strict thread matches above, loose matches on Subject: below --
2014-12-13  8:42 Michal Gorny (mgorny)
2014-10-31  0:57 Davide Pesavento (pesa)
2014-05-10 21:36 Michal Gorny (mgorny)
2014-04-15 15:54 Michal Gorny (mgorny)
2014-04-11  8:30 Michal Gorny (mgorny)
2014-04-10 16:43 Michal Gorny (mgorny)
2013-09-18  8:49 Michal Gorny (mgorny)
2013-09-10  9:10 Michal Gorny (mgorny)
2013-06-21 10:31 Michal Gorny (mgorny)
2013-05-23 20:19 Michal Gorny (mgorny)
2013-03-10 21:44 Michal Gorny (mgorny)
2013-03-10 21:00 Michal Gorny (mgorny)
2013-03-10  9:05 Michal Gorny (mgorny)
2013-03-09 13:51 Michal Gorny (mgorny)
2013-03-04 19:27 Michal Gorny (mgorny)
2013-03-04 19:27 Michal Gorny (mgorny)
2013-03-04 19:21 Michal Gorny (mgorny)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox