From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-14) on finch.gentoo.org X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=DATE_IN_PAST_12_24, INVALID_DATE,MAILING_LIST_MULTI,NO_RELAYS autolearn=no autolearn_force=no version=4.0.0 Received: from drobbins by cvs.gentoo.org with local (Exim 3.22 #1) id 14oVoS-0008Cc-00 for gentoo-dev@gentoo.org; Sat, 14 Apr 2001 13:34:28 -0600 From: Daniel Robbins To: gentoo-dev@gentoo.org Subject: Re: [gentoo-dev] package.mask Message-ID: <20010414133428.F25655@cvs.gentoo.org> References: <20010413151846.A6982@cvs.gentoo.org> <3AD864AC.F157EDCD@gentoo.org> <20010414102010.B25655@cvs.gentoo.org> <3AD88590.67EF0128@gentoo.org> <20010414121853.D25655@cvs.gentoo.org> <3AD892B2.C04083A8@gentoo.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <3AD892B2.C04083A8@gentoo.org>; from AGottinger@t-online.de on Sat, Apr 14, 2001 at 08:10:58PM +0200 Sender: gentoo-dev-admin@gentoo.org Errors-To: gentoo-dev-admin@gentoo.org X-BeenThere: gentoo-dev@gentoo.org X-Mailman-Version: 2.0 Precedence: bulk Reply-To: gentoo-dev@gentoo.org List-Help: List-Post: List-Subscribe: , List-Id: Gentoo Linux development list List-Unsubscribe: , List-Archive: Date: Sat Apr 14 13:35:02 2001 X-Original-Date: Sat, 14 Apr 2001 13:34:28 -0600 X-Archives-Salt: 51b7430e-cdcc-46fc-8bc4-2684d206e16d X-Archives-Hash: 323d844bbb02f2950c65a168f9899c15 On Sat, Apr 14, 2001 at 08:10:58PM +0200, Achim Gottinger wrote: > > Soon, we'll have all the features in Portage to ensure that the *right* > > versions of packages get installed (not just the most recent that satisifies > > the dependency). If we then focus on ensuring that all the various ebuilds on > > CVS will compile under any version of Gentoo Linux, then I don't think we have > > a problem anymore. > > And this is less work that maintaining different branches? > I think this is MI-3 Odysee-2100 to jupiter. :-) No, it isn't that complicated. > > We can have certain expectations as to ebuild compatibility > > -- for example, we can make a rule that any Gentoo Linux 1.x ebuild should be > > able to compile on any other Gentoo Linux 1.x system (whether "stable" or > > "current"). If an ebuild doesn't meet this rule, then this particular version > > should be blocked out of the appropriate packages files, i.e. > > <=sys-apps/bash-2.05 would block out sys-apps/bash-2.06 or later. > does this work > > !sys-apps/bash-2.04 > > if I only want to use bash-2.04 and no other version? > You know, never touch a running system. :-) If you don't want to change any of your packages, then what are you doing running "emerge system" in the first place? :) If you just wanted sys-apps/bash-2.04 to be considered during an "emerge system", then you should have this in your packages file: =sys-apps/bash-2.04 Right now, the packages file is only used during an "emerge system", but it will be used more extensively in the very near future. I'd like it to be used for *all* dependency checking. I'm thinking that each line in "packages" can specify two things at the same time. First, it specifies a package or range of packages that *must* be installed (or *must not* be installed) in order to make the system profile-compliant. Secondly, each entry in "packages" also specifies a subrange of packages that will be considered for resolving dependencies -- the opposite of package.mask. If you want to specify a required package without a subrange, you would simply enter: sys-apps/bash But, if you have "=sys-apps/bash-2.04" in the packages file, then only this version will be listed as available and used to resolve deps. If a package *isn't* listed in "packages", then: 1. There is no requirement for this particular package to be installed, 2. There is no requirement for this particular package to *not* be installed, 3. There are no restrictions placed on what versions of this package are considered when resolving auto-dependencies. If "!sys-apps/bash-2.04" were in the packages file, then every package *but* bash-2.04 would be considered in resolving sys-apps/bash deps. This solution should give everyone lots of control over what gets installed and create a clear dependency "command structure". My previous concept would allow for DEPEND and RDEPEND to "clash" with the packages file. With the above proposal, this is no longer possible -- the "packages" file has authority. emerge chain of command is as follows: 1. package.mask eliminates unstable ebuilds 2. packages specifies required packages and optionally eliminates certain versions of packages from consideration. 3. DEPEND and RDEPEND are evaluated as usual, except all ebuilds eliminated during steps 1 and 2 are effectively ignored. "ebuild" would still allow you to manually install a package if you absolutely wanted to -- we will begin considering ebuild a low-level developer's tool as emerge and pkgmerge become more feature-rich. Let's think about this proposed use of "packages" for a bit, and then I'll implement it if everyone is OK with it. -- Daniel Robbins President/CEO http://www.gentoo.org Gentoo Technologies, Inc.