From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29822 invoked from network); 12 May 2004 03:06:48 +0000 Received: from smtp.gentoo.org (128.193.0.39) by eagle.gentoo.oregonstate.edu with DES-CBC3-SHA encrypted SMTP; 12 May 2004 03:06:48 +0000 Received: from lists.gentoo.org ([128.193.0.34] helo=eagle.gentoo.org) by smtp.gentoo.org with esmtp (Exim 4.24) id 1BNk50-0007fo-8t for arch-gentoo-portage-dev@lists.gentoo.org; Wed, 12 May 2004 03:06:46 +0000 Received: (qmail 18322 invoked by uid 50004); 12 May 2004 03:06:45 +0000 Mailing-List: contact gentoo-portage-dev-help@gentoo.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail Reply-To: gentoo-portage-dev@lists.gentoo.org X-BeenThere: gentoo-portage-dev@gentoo.org Received: (qmail 12896 invoked from network); 12 May 2004 03:06:44 +0000 Message-ID: <40A193B5.9080206@skylineaero.com> Date: Tue, 11 May 2004 22:02:13 -0500 From: Andrew Gaffney User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7rc1) Gecko/20040503 X-Accept-Language: en-us, en MIME-Version: 1.0 To: gentoo-portage-dev@lists.gentoo.org Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Subject: [gentoo-portage-dev] building dependency tree X-Archives-Salt: 7044cf8b-7cfd-4dad-b841-94e92a7ec303 X-Archives-Hash: 3516dbc26dabacac639e4f70980eaecf I am writing a Perl program that does the same thing as 'emerge'. Yes, I started a thread about this on -dev about 6 months back, but I'm better prepared to do this now. I've already written functions that: * Build a list of USE flags from /etc/make.profile/make.defaults, /etc/make.conf, and $ENV{USE} * Build a list of masked packages from /etc/make.profile/package.(un)mask and /etc/portage/package.(un)mask * Build a list of matching ebuild versions from a '>category/package-version' type string taking masked packages into account * Extract the DEPEND line from a particular ebuild * Parse a DEPEND line using active USE flags and build a list of needed packages I'm starting work on the code that generates the actual dependency tree and then the list of packages to be installed. I don't have any Python skill, so I don't think that reading the code will help me much. Can anyone who deals with the Portage code a lot give me a general breakdown of the way that 'emerge' generates the dependency tree and then the list of packages to emerge? -- Andrew Gaffney Network Administrator Skyline Aeronautics, LLC. 636-357-1548 -- gentoo-portage-dev@gentoo.org mailing list