From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id B777D1382C5 for ; Fri, 23 Mar 2018 17:45:02 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 433F2E0932; Fri, 23 Mar 2018 17:44:56 +0000 (UTC) Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id E61E5E08F2 for ; Fri, 23 Mar 2018 17:44:55 +0000 (UTC) Received: from [10.128.12.82] (unknown [100.42.98.196]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: chutzpah) by smtp.gentoo.org (Postfix) with ESMTPSA id 13A89335C07 for ; Fri, 23 Mar 2018 17:44:54 +0000 (UTC) Subject: Re: [gentoo-dev] New Portage fork: sys-apps/portage-mgorny To: gentoo-dev@lists.gentoo.org References: <23220.52565.280134.566970@a1i15.kph.uni-mainz.de> <23220.56844.278087.25609@a1i15.kph.uni-mainz.de> From: Patrick McLean Message-ID: <75a38489-f567-a59c-c877-c650ed28be14@gentoo.org> Date: Fri, 23 Mar 2018 10:44:52 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit X-Archives-Salt: eba0c054-570a-446f-a15f-86f8b9493a2d X-Archives-Hash: b29ab629370854859a068dbdc4a5efeb On 2018-03-23 06:27 AM, Rich Freeman wrote: > On Fri, Mar 23, 2018 at 6:59 AM, Ulrich Mueller wrote: >>>>>>> On Fri, 23 Mar 2018, Roy Bamford wrote: >> >>> games-emulation/sdlmame is masked. I have a higher version in my >>> overlay than the one in the tree and it gets masked too. >>> Its not a problem to me as I know how to manage it. Its just untidy. >> >> You still don't need a repository specific mask for this. Version >> specific masking and unmasking is entirely sufficient to express that >> the higher version is fine. >> > > It sounds to me that one of the intended behaviors is to tell portage > that for a particular package we want to ignore a particular > repository entirely. Suppose for example an overlay contains > misc/foo-3, and the main repo introduces misc/foo-4. Perhaps we want > portage to stick with foo-3 from the overlay. However, if the overlay > adds foo-4, or foo-4.1 we want this installed. A version mask would > not really cover this use case. > > IMO this sounds like a useful feature. Having it in profiles could > probably also be useful in some testing scenarios, such as when making > changes to a large number of packages that are already in the main > tree (think something analogous to a feature branch in git, where the > master branch continues to advance).> > Perhaps I'm misunderstanding the intent here, but I would suggest that > we describe the end goal in emails like these otherwise people focus > on the implementation details first. > Having the ability to specify a repository in atoms in profile is very useful to people who have large overlays and make heavy use of profiles. At my (and zmedico's) employer we use Gentoo heavily (all of our servers run it), and have a few large internal overlays and hundreds of internal profiles. There are packages in upstream Gentoo that we maintain an internal fork of, and it would be extremely useful if we could mask the ::gentoo version of something so a version bump does not cause it to be installed instead of our forked version. To address ulm's comments, we want our internal fork to satisfy dependencies in ::gentoo for the package without having to fork dozens of ebuilds. Generally the forks are just for minor changes that do not break dependency compatibility, but do something that we need for whatever reason. In case there are questions about why we have hundreds of profiles, we use profile to define machine roles. Each internal machine type or role has a profile in one of our internal repositories. This allows us to manipulate USE flags, packages etc in each machine type with a fair bit of fine-grained control. Adding repository support to profile atoms will give us even more control, and having fine grained control over what we have on our servers is the main reason we run Gentoo.