1 |
On Wed, May 11, 2005 at 06:01:17PM +0900, Georgi Georgiev wrote: |
2 |
> maillog: 11/05/2005-03:40:04(-0500): Brian Harring types |
3 |
> > > On Wed, May 11, 2005 at 09:46:03AM +0200, Kevin F. Quinn wrote: |
4 |
> > > Here's my suggestion, for what it's worth :) |
5 |
> > > |
6 |
> > > The layout on disk and the semantics of categories do not need to be related. |
7 |
> > Yes and no. You're assuming that people don't use the layout on disk for digging |
8 |
> > around without calling portage. Personally, I do. |
9 |
> > |
10 |
> > > I like the idea of using the first character of a package name as the |
11 |
> > > sub-directory name. This can be extended more deeply as and when necessary to |
12 |
> > > avoid over-large directories which cause problems on some filesystems. e.g. |
13 |
> > > for sudo you get "s/sudo" and vim-sudo "v/vim-sudo". This is |
14 |
> > > architecture-neutral, rsyncable, scalable, and not too difficult for users to |
15 |
> > > parse manually (see later for searching through categories). If the algorithm |
16 |
> > > portage would use to locate a package is such that it doesn't mandate the depth |
17 |
> > > (i.e. tries "package", "p/package" if "p/" exists, "p/a/package" if "p/a/" |
18 |
> > > exists) then overlays can have a different depth to the rsync tree; if you only |
19 |
> > > have a few packages in overlay then they need not be in subdirectories at all. |
20 |
> > Re-asserting that the fs layout *does* matter, how is that more intuitive when trying |
21 |
> > to track down the ebuild for dev-util/diffball ? |
22 |
> |
23 |
> |
24 |
> The fact that the directory where diffball is is easily deducable by its |
25 |
> name. As it is, I'd be a bit lost if I had to guess whether diffball is |
26 |
> in app-arch or dev-util. Even if I remembered it was something |
27 |
> dev-related I'd still be inclined to look in sys-devel. |
28 |
dev-util is accurate (it's a compressor, but a specialized variant, |
29 |
same as patch is). From it's current fs location/layout, we get thus- |
30 |
quick lookup on the atom, and inference of it's intentions. This is |
31 |
why we have xml at the category level, for example. |
32 |
|
33 |
One thing that's being unstated also- it's implicitly stated that this |
34 |
directory structure is somehow easier to look up a package. If you |
35 |
know the _exact_ package name, maybe. Otherwise, you're falling back |
36 |
to a search tool (which defeats to some degree the whole arguement for |
37 |
flattened namespace). |
38 |
Some quicky python, grouping by first char of the package name, and |
39 |
you wind up with (top 8)- |
40 |
421, 521, 571, 582, 657, 663, 664, 746 |
41 |
Seperate directories within an individual directory. Say 'd' for |
42 |
example, and we'll pretend 746 is the count of packages that start |
43 |
with 'd'. That's a butload of directories to go digging in. |
44 |
|
45 |
The response would be, "well then extend it to the first two chars |
46 |
after the first dir". You narrow it down, but add another layer of |
47 |
dirs, again, for what gain? |
48 |
|
49 |
See, the thing I find odd about this thread/request is that |
50 |
essentially breaking it down to first letter groupping, is being |
51 |
argued as being _easier_ for people, while allowing multi cats, or |
52 |
just flat out dropping the category aspect. The example above, imo, |
53 |
proves otherwise. |
54 |
|
55 |
Keep in mind at this point, the discussion is whats easiest for |
56 |
_humans_. What's easiest for code/comp is another matter, and (within |
57 |
limits) can work with anything that's thrown at it. |
58 |
|
59 |
> > How many directories deep would I have to go before I reached the |
60 |
> > ebuild? |
61 |
> |
62 |
> Does it matter? You know the path exactly. It's p/portage. It's |
63 |
> not ... "was it sys-apps/portage or app-portage/portage"? |
64 |
I know the path as sys-apps/portage already though. Doesn't that |
65 |
count for something? :) |
66 |
|
67 |
Or, a bit more likely case, I know the type of the package, the |
68 |
category, but don't recall it's exact name. What y'all are proposing |
69 |
forces the user to use a tool, rather then just a quicky ls. |
70 |
|
71 |
> > > Having said that, some things could be done now. If a flat package namespace |
72 |
> > > is desirable, the existing package name clashes could be resolved by renaming |
73 |
> > > the few packages that clash. |
74 |
> > 74 packages, roughly, out of 9429 roughly. |
75 |
> |
76 |
> 76/9295, which is not that bad, considering about half of them are |
77 |
> emacs/xemacs related. |
78 |
'cept either you, or someone else was proposing a totally flat |
79 |
namespace, no cats in the atoms. That means the count of changes (the |
80 |
76 above is just # of conflicting packages) is around 19000, plus a |
81 |
fairly large amount of portage modifications. |
82 |
|
83 |
> > > Category could be added as a field in |
84 |
> > > metadata.xml, so that a package could "belong" to multiple categories. |
85 |
> > > The query/search tools could be enhanced to scan this metadata (perhaps including |
86 |
> > > the current category directory as an implied entry in the metadata.xml). |
87 |
> > If that's the goal of the "belong to N categories" thread, strictly searching, |
88 |
> > sure, although I don't like it. It can't become an atom for *DEPEND due to the cpv |
89 |
> > nonconflicting bit. |
90 |
> |
91 |
> I personally want to see the category part *disappear* from the *DEPEND |
92 |
> which is one of the reasons to advocate a flat tree. If the category (or |
93 |
> part of it) goes in the package name, so be it, but at least there will |
94 |
> be no package moves to break older ebuilds or outdated overlays. |
95 |
Frankly, you need to give a *really* damn good reason for why this is |
96 |
better. I don't think it is, convince me otherwise. |
97 |
|
98 |
What do we gain from a flat namespace? |
99 |
Right now, I can infer an atom out of a DEPEND string's purpose to |
100 |
some degree, based upon it's category. To head off the "well you |
101 |
don't need to know the category, you should know the packages |
102 |
intentions if you're modifying the ebuild", that dodges the point; via |
103 |
the category portion of an atom, I can infer at least -intention- of a |
104 |
package. |
105 |
|
106 |
Ignoring changes required (have stated them already, no point in |
107 |
sniping ya over it), what _exactly_ do we gain from the change? |
108 |
~brian |
109 |
-- |
110 |
gentoo-dev@g.o mailing list |