From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from egr.msu.edu (jeeves.egr.msu.edu [35.9.37.127]) by robin.gentoo.org (8.13.4/8.13.4) with ESMTP id j4BFAiFh018446 for ; Wed, 11 May 2005 15:10:45 GMT Received: from [192.168.0.101] (pcp09044318pcs.rocsth01.mi.comcast.net [68.60.39.177]) (authenticated bits=0) by egr.msu.edu (8.13.4/8.13.4) with ESMTP id j4BFAnPT022194 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Wed, 11 May 2005 11:10:50 -0400 (EDT) Message-ID: <42822086.8080208@egr.msu.edu> Date: Wed, 11 May 2005 11:11:02 -0400 From: Alec Warner User-Agent: Mozilla Thunderbird 1.0.2 (X11/20050425) X-Accept-Language: en-us, en Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@gentoo.org Reply-to: gentoo-dev@lists.gentoo.org MIME-Version: 1.0 To: gentoo-dev@lists.gentoo.org Subject: Re: [gentoo-dev] Re: New category proposal References: <20050511050920.GC17034@exodus.wit.org> <91AEL.27774KEO@kevquinn.com> <20050511084004.GB13132@exodus.wit.org> <20050511090116.GA3093@ols-dell.gg3.net> <20050511104218.GC13132@exodus.wit.org> In-Reply-To: <20050511104218.GC13132@exodus.wit.org> X-Enigmail-Version: 0.90.2.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Archives-Salt: 62061b8d-d543-4b4d-8b1e-e212f042a90c X-Archives-Hash: ff629347ea4fa3995f63343c9e2a68db -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Brian Harring wrote: > On Wed, May 11, 2005 at 06:01:17PM +0900, Georgi Georgiev wrote: > >>maillog: 11/05/2005-03:40:04(-0500): Brian Harring types >> >>>>On Wed, May 11, 2005 at 09:46:03AM +0200, Kevin F. Quinn wrote: >>>>Here's my suggestion, for what it's worth :) >>>> >>>>The layout on disk and the semantics of categories do not need to be related. >>> >>>Yes and no. You're assuming that people don't use the layout on disk for digging >>>around without calling portage. Personally, I do. Not need to be related, but shouldn't be related. In essence this allows people to put the tree where-ever, as long as that storage mechanism supports the database operations required ( stuffing everything in a SQL db fex ). I don't know why someone would....but hey ;) >>> >>> >>>>I like the idea of using the first character of a package name as the >>>>sub-directory name. This can be extended more deeply as and when necessary to >>>>avoid over-large directories which cause problems on some filesystems. e.g. >>>>for sudo you get "s/sudo" and vim-sudo "v/vim-sudo". This is >>>>architecture-neutral, rsyncable, scalable, and not too difficult for users to >>>>parse manually (see later for searching through categories). If the algorithm >>>>portage would use to locate a package is such that it doesn't mandate the depth >>>>(i.e. tries "package", "p/package" if "p/" exists, "p/a/package" if "p/a/" >>>>exists) then overlays can have a different depth to the rsync tree; if you only >>>>have a few packages in overlay then they need not be in subdirectories at all. >>> >>>Re-asserting that the fs layout *does* matter, how is that more intuitive when trying >>>to track down the ebuild for dev-util/diffball ? >> >> >>The fact that the directory where diffball is is easily deducable by its >>name. As it is, I'd be a bit lost if I had to guess whether diffball is >>in app-arch or dev-util. Even if I remembered it was something >>dev-related I'd still be inclined to look in sys-devel. > > dev-util is accurate (it's a compressor, but a specialized variant, > same as patch is). From it's current fs location/layout, we get thus- > quick lookup on the atom, and inference of it's intentions. This is > why we have xml at the category level, for example. > > One thing that's being unstated also- it's implicitly stated that this > directory structure is somehow easier to look up a package. If you > know the _exact_ package name, maybe. Otherwise, you're falling back > to a search tool (which defeats to some degree the whole arguement for > flattened namespace). > Some quicky python, grouping by first char of the package name, and > you wind up with (top 8)- > 421, 521, 571, 582, 657, 663, 664, 746 Assuming the directories are ordered by letter, ( a,b,c,d ) and subdirectories if present as well, a bsearch wouldn't be bad. Both are ordered sets and you can quickly determine the location of a package in log(n) time. I don't see a big deal here. > Seperate directories within an individual directory. Say 'd' for > example, and we'll pretend 746 is the count of packages that start > with 'd'. That's a butload of directories to go digging in. > > The response would be, "well then extend it to the first two chars > after the first dir". You narrow it down, but add another layer of > dirs, again, for what gain? > > See, the thing I find odd about this thread/request is that > essentially breaking it down to first letter groupping, is being > argued as being _easier_ for people, while allowing multi cats, or > just flat out dropping the category aspect. The example above, imo, > proves otherwise. > > Keep in mind at this point, the discussion is whats easiest for > _humans_. What's easiest for code/comp is another matter, and (within > limits) can work with anything that's thrown at it. > > >>>How many directories deep would I have to go before I reached the >>>ebuild? >> >>Does it matter? You know the path exactly. It's p/portage. It's >>not ... "was it sys-apps/portage or app-portage/portage"? > > I know the path as sys-apps/portage already though. Doesn't that > count for something? :) > > Or, a bit more likely case, I know the type of the package, the > category, but don't recall it's exact name. What y'all are proposing > forces the user to use a tool, rather then just a quicky ls. *tongue in cheek* and what is ls but another tool for listing the contents of a directory :) >>>>Having said that, some things could be done now. If a flat package namespace >>>>is desirable, the existing package name clashes could be resolved by renaming >>>>the few packages that clash. >>> >>>74 packages, roughly, out of 9429 roughly. >> >>76/9295, which is not that bad, considering about half of them are >>emacs/xemacs related. > > 'cept either you, or someone else was proposing a totally flat > namespace, no cats in the atoms. That means the count of changes (the > 76 above is just # of conflicting packages) is around 19000, plus a > fairly large amount of portage modifications. > > >>>> Category could be added as a field in >>>>metadata.xml, so that a package could "belong" to multiple categories. >>>> The query/search tools could be enhanced to scan this metadata (perhaps including >>>>the current category directory as an implied entry in the metadata.xml). >>> >>>If that's the goal of the "belong to N categories" thread, strictly searching, >>>sure, although I don't like it. It can't become an atom for *DEPEND due to the cpv >>>nonconflicting bit. >> >>I personally want to see the category part *disappear* from the *DEPEND >>which is one of the reasons to advocate a flat tree. If the category (or >>part of it) goes in the package name, so be it, but at least there will >>be no package moves to break older ebuilds or outdated overlays. > > Frankly, you need to give a *really* damn good reason for why this is > better. I don't think it is, convince me otherwise. > > What do we gain from a flat namespace? > Right now, I can infer an atom out of a DEPEND string's purpose to > some degree, based upon it's category. To head off the "well you > don't need to know the category, you should know the packages > intentions if you're modifying the ebuild", that dodges the point; via > the category portion of an atom, I can infer at least -intention- of a > package. The CPV thing.....is a big fix :( > Ignoring changes required (have stated them already, no point in > sniping ya over it), what _exactly_ do we gain from the change? > ~brian -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iQIVAwUBQoIghmzglR5RwbyYAQJa4w//WOTxQGm59JK96uX2MlLTlIG9kjFRhKTk AJjPybvOrJEngUuqhCogzxtsz0FXOX096bUyBO0CZb0mfN7hwW4jZIMDHycYD/kI AW22E/SrlH4iHi/UrQNzOm2kT6hgg1Vnnt/PqU/W1CqWF3xs8hFOYui61FW9U1WO Wq5vfxPZQd3cjRT1JQbIX3KJtmzYq8tnfWEaUo9kkSMlIWViFlvH0chEi7s61Na/ W/jfmscHBfx2y2pkITaRHO+JO3DgG412YKmfRe0JuOmcjGLwnrChQZqgSpTaE8e6 6d+ocqtTdAnJc52CbGCNN5RLnkmmYsOFGBtDEc4JKmYoRZZeWszI9QE6Dt+0i+mm rZAMtVvdRHE3A72cKF+4UiqvhIO2hAdzRE4i4m0h5WAsKrMDXIobeGunROHGCCyu ctsgH24OcTxX1D0syiQcvB+lvSyxDb2JBnd4gMSDpwEEQrZ9YxLkEVN830XZ6kaV FLxUj4zyl67iejabfNNBmTymV1i84z3BMeXKayrVp77NUF0swCOC6rlciCFfoSLQ N5vyFjwEcMsUWnSO2cq5laNDRqIjlw/YfO0Hiy55TCFi/vm5sH44rehntMyq1b3h xcLJhq7MIPmkfO2qZSZfD8ouB621bAlh4Vc+x+7kyLFaFRdAIQHYIY3rB3DFR5k9 ETcl3w/XVq8= =SN4n -----END PGP SIGNATURE----- -- gentoo-dev@gentoo.org mailing list