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 |