Gentoo Archives: gentoo-user

From: Alan McKinnon <alan.mckinnon@×××××.com>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] Re: distfiles contains extra files?
Date: Wed, 13 Aug 2014 20:30:38
Message-Id: 53EBCAAF.4040107@gmail.com
In Reply to: [gentoo-user] Re: distfiles contains extra files? by James
1 On 13/08/2014 18:46, James wrote:
2 > Neil Bothwick <neil <at> digimed.co.uk> writes:
3 >
4 >
5 >>> I previously thought that /usr/portage/distfiles
6 >>> only contains tar files. I have not clean up the
7 >>> system, as I'm moving (dupicating some files for my
8 >>> /usr/local/ needs.
9 >
10 >> It contains everything downloaded by ebuilds.
11 >
12 > I guess our ebuilds are getting creative on what they allow.....
13
14 ebuilds can do whatever they feel like doing, and there's no sane exact
15 policy on how to deal with the various sources they use (the word
16 sources used very loosely here).
17
18 The general idea is "small files go in the tree, bigger files are
19 downloaded to distfiles when the ebuild is emerged". Obviouslym, there's
20 no policy on what constitutes small and large
21
22 >
23 >>> I thought all patch files where kept in the subdirs where the
24 >>> ebuilds are located (files dir)? It is still where most *.patch
25 >>> files are located.
26
27 True, most patches are small. But there are 36,000 or so packages, what
28 if every one of them had 3 patches? That's 100,000 inodes right there
29 and every gentoo user must have all of them all of the time and they
30 must all be checked somehow with every --sync, and most user will only
31 use a small fraction of them. It makes more sense to download larger
32 patches when the ebuild is emerged. Yes, it makes fetch() take a few
33 seconds longer, but many other things are gained
34
35 >> ISTR the policy is to only include smaller patch files in the tree, large
36 >> patches are downloaded to avoid everyone having to sync them.
37 >
38 > OK, but wny not put them in a subdir under the specific ebuild
39 > requiring those smaller patches? Seems to be a dumb move to me.
40
41 See above.
42
43 >
44 >>> *.exe (like verdan32.exe webdin32.exe )
45 >> These are the installers for the MS corefonts.
46 >
47 > OK, why they need to be in /distfiles/? seriously .exe
48 > files in a repository for sources? ARE YOU KIDDING ME?
49 > Let's just ignor the /bin/sbin and name it /sbinge
50 > as devs must be 'binge drinking' if this is our standard?
51
52 Consider what those .exe files are - they are the "sources" for whatever
53 the ebuild needs to do, and they do not have to be .tar.gz files either.
54 Most .exes in distfiles are things like microsoft corefonts. Now these
55 are redistibutable, but only if the sources are not modified. the
56 sources are what microsoft published - a .exe file. The ebuild downloads
57 them, unpacks them, finds the .ttfs and installs them.
58
59 The fact that the packaging method used in this case is a .exe is
60 completely irrelevant - that is how upstream provides the sources and
61 ebuilds *always* store files fetch()ed to distfiles
62
63
64
65 >
66 > /bin/ms/ ????? /usr/local/bin/ ????
67 >
68 >>> I guess I need "enlightenment" ?
69 >> You can use whichever DE you prefer :)
70 >
71 > U very funny! I use 'enlightenment' compliments to the
72 > Bhagavad Gita. I actually has to read the English version
73 > of the entire book and write a paper on it, in only 3 days.
74 > Academically speaking I got 'enlightenment' from that
75 > literarture class.......ymmv.
76 >
77 >>> cleaning up distfiles/ by hand?
78 >
79 >> You can use eclean to remove obsolete distfiles and packages. But don't
80 >> use eclean on a shared $DISTDIR.
81 >
82 > Yes, agreed. But the point is this sort of stuff belongs in the file
83 > sub-tree under the ebuild that requires it, not as part of /distfiles/
84 > imho. From my perspective strowing random files into /distfiles/
85 > puts it in the category of "cruft".
86
87 Nope. Considering the size and extent of the tree:
88
89 $ find /var/portage -type f | wc
90 153047 153047 8404011
91 $ find /var/portage -type f -size -1024c | wc
92 75350 75350 4304282
93 $ find /var/portage -type d | wc
94 25920 25920 928148
95
96 Holy smoke Batman! One hundred and fifty three thousand files! Half of
97 them are smaller than one kilobyte!
98
99 I doubt you have more than 5000 or so patch files total for everything
100 installed, and that's being generous. Why download and sync all of that
101 with every sync? Makes more sense to just fetch them when you need them
102 and shove them in distfiles.
103
104 Remember the huge efforts a few years back to deal with the unique
105 characteristics of the tree? We were trying out reiserfs with and
106 without tail packing, comparing ext3 to ext2 and wondering if a journal
107 was needed, and much much more. These days ext4 deals with it so much
108 better but the fact still remains that the tree is a unique construct
109 and efforts to reduce it's size for things most poeple don;t use is
110 always a good thing
111
112
113
114
115 >
116 > Do you agree or disagree?
117 >
118 > James
119 >
120 >
121 >
122 >
123 >
124 >
125
126
127 --
128 Alan McKinnon
129 alan.mckinnon@×××××.com