Gentoo Archives: gentoo-dev

From: Ulrich Mueller <ulm@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] rfc: moving default location of portage tree (was: [gentoo-project] Call for agenda items - Council meeting 2018-07-29)
Date: Wed, 18 Jul 2018 13:30:24
Message-Id: 23375.16600.915882.276261@a1i15.kph.uni-mainz.de
In Reply to: Re: [gentoo-dev] rfc: moving default location of portage tree (was: [gentoo-project] Call for agenda items - Council meeting 2018-07-29) by Rich Freeman
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

Replies