1 |
>>>>> On Wed, 18 Jul 2018, Rich Freeman wrote: |
2 |
|
3 |
> On Wed, Jul 18, 2018 at 5:55 AM Ulrich Mueller <ulm@g.o> wrote: |
4 |
>> Also, there is that strange requirement that the |
5 |
>> file hierarchy must not be exposed to users. At least for the |
6 |
>> make.profile link we rely on a well defined hierarchy, and certainly |
7 |
>> expose it to users. |
8 |
|
9 |
> That isn't true at all. When you run eselect profile you have no idea |
10 |
> what it is looking at. |
11 |
|
12 |
If I run eselect profile, it shows a list of pathnames like |
13 |
default/linux/amd64/17.1/desktop. If that doesn't expose the "specific |
14 |
file hierarchy" then I wonder what could ever qualify? |
15 |
|
16 |
Also eselect profile is a tool for convenience only, and nobody is |
17 |
forced to use it. The make.profile symlink and its target are |
18 |
mentioned in our documentation and users can set it manually. |
19 |
|
20 |
> The fact that some of our users like to poke around the internals of |
21 |
> the package manager doesn't change the fact that it has interfaces |
22 |
> that don't require direct modification. |
23 |
|
24 |
Hopefully we will keep having such users who want to understand the |
25 |
inner workings, instead of being satisfied with a black box. :) |
26 |
Ebuild repositories are human readable text, and we shouldn't move |
27 |
them to a hidden location. |
28 |
|
29 |
>> The same is true for license information in |
30 |
>> /usr/portage/licenses. |
31 |
|
32 |
> You have a fair point there. Honestly, I don't really see this as a |
33 |
> good reason on its own to abandon /var/lib, which is where other |
34 |
> distros seem to stick stuff like this. Also, you don't need to poke |
35 |
> around that directory to determine what license a package uses - just |
36 |
> to read the text of the license itself (which could arguably just be |
37 |
> stored on our webserver unless we're actually redistributing something |
38 |
> in the repository under that license, which is unlikely in general |
39 |
> since patches/etc are probably fair use). |
40 |
|
41 |
I totally disagree here. We keep local copies of licenses for good |
42 |
reasons, and storing them on our webserver is no substitute. |
43 |
|
44 |
>> This follows the existing usage in eselect-repositories. Note that |
45 |
>> /var/db is not specified by the FHS (though it is mentioned in a |
46 |
>> footnote [1]) but used by all current BSD variants. Plus, we already |
47 |
>> have /var/db/pkgs and (as pointed out by antarus) we won't get rid of |
48 |
>> it anytime soon. |
49 |
|
50 |
> So, you reject one path on the basis of small conflicts with FHS, and |
51 |
> then just toss FHS out the window entirely to use a path not specified |
52 |
> at all? |
53 |
|
54 |
No, the argument is that we already use /var/db/pkg, and grouping |
55 |
other related things with it seems natural. |
56 |
|
57 |
> If you want to appeal to what BSD is doing then /usr/portage belongs |
58 |
> right where it is today. Oh, and most of our packages should be |
59 |
> installing to /usr/local as well. |
60 |
|
61 |
As I said before, the two important parts are the move from /usr to |
62 |
/var, and that distfiles and packages are moved out of the repository. |
63 |
|
64 |
Apart from this (quoting the devmanual): "Gentoo does not consider |
65 |
the Filesystem Hierarchy Standard to be an authoritative standard, |
66 |
although much of our policy coincides with it." And the discussion so |
67 |
far has shown that the FHS wasn't designed for our use case. We can |
68 |
still use it as a guideline, but maybe we shouldn't jump through |
69 |
hoops, only to make it completely fit. |
70 |
|
71 |
> What other linux distro even has /var/db at all? |
72 |
|
73 |
Many (most?) of those that build from source. Also, Gentoo is not only |
74 |
a Linux distro. |
75 |
|
76 |
>> /usr/portage/packages -> /var/db/binpkgs |
77 |
|
78 |
> Why not put this in /var/cache? It is completely reproducible and |
79 |
> exists to save build time. That's what a cache is. |
80 |
|
81 |
*shrug* I don't have a strong opinion about this. To me, binpkgs look |
82 |
less cache-like than distfiles, but more cache-like than ebuild |
83 |
repositories. So /var/cache/binpkgs would work for me as well. |
84 |
|
85 |
The only thing that seems certain is that regardless of what we will |
86 |
do, we cannot make everybody happy. We shouldn't take that as an |
87 |
excuse to do nothing, because /usr/portage is no good solution either. |
88 |
|
89 |
Ulrich |