From owner-freebsd-ports Wed Nov 11 16:13:26 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id QAA24887 for freebsd-ports-outgoing; Wed, 11 Nov 1998 16:13:26 -0800 (PST) (envelope-from owner-freebsd-ports@FreeBSD.ORG) Received: from mail.HiWAAY.net (fly.HiWAAY.net [208.147.154.56]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id QAA24878; Wed, 11 Nov 1998 16:13:20 -0800 (PST) (envelope-from sprice@hiwaay.net) Received: from localhost (sprice@localhost) by mail.HiWAAY.net (8.9.0/8.9.0) with SMTP id SAA27877; Wed, 11 Nov 1998 18:13:02 -0600 (CST) Date: Wed, 11 Nov 1998 18:13:02 -0600 (CST) From: Steve Price To: Satoshi Asami cc: ports@FreeBSD.ORG, msmith@FreeBSD.ORG Subject: Re: auto ports build script In-Reply-To: <199811120004.QAA17185@silvia.hip.berkeley.edu> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-ports@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org On Wed, 11 Nov 1998, Satoshi Asami wrote: # * Yes they are DAG's. And yes parallelizing within a DAG might # * be difficult to achieve, but with 746 of these little beasties # * it is trivial to do it among them. That is, theoretically # * all 746 could be run concurrently. :) # # I'm not sure I follow you here. What exactly do we have 746 of? If you consider the dependencies for each port and you clump them together based on these dependencies into a DAG, you end up with 746 of them. Suppose you had 5 ports, A-E, and the following dependencies. A depends on B B is standalone C depends on A D depends on E E is standalone This would form two DAGs: one with {A, B, C} and one with {D, E}. # * The recurse method takes care of it. It would do something # * like this: # * # * 1) build C's package # * 2) build B's pacakge # * 3) build D's package, pkg_delete D # * 4) build A's package, pkg_delete A B C # # I'm not saying your script won't work, I'm just asking how it can be # taught to coordinate between parallel builds. Working on it right now. # * # * Another example of a more complex tree could be: A depends # * # * on C, B depends on C, and C is standalone. Your approach # * # * would do this: # * # * # * # * 1) build C's package and pkg_delete C # * # * 2) pkg_add C, build A's package, pkg_delete A C # * # * 3) pkg_add C, build B's package, pkg_delete B C # * # # * # Note 2 and 3 can be done in parallel. # * # * Yes, they can but only in separate chroot envs. # # Sorry, I thought I made it clear that I'm running these on different # machines (and in different chroot envs). Yes, you did. My point was that this approach was only one way of achieving parallelism. -steve # Satoshi # To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message