1 |
Second step, shortcomings. |
2 |
|
3 |
Luca Barbato wrote: |
4 |
> main problem: |
5 |
> - have the possibility to track upstream w/out having to take a manual |
6 |
> snapshot of their sources, but having portage automatically fetch them |
7 |
> from their tree. |
8 |
|
9 |
This issue isn't and shouldn't something that touches directly our |
10 |
normal users, tracking upstream isn't something a common user would do |
11 |
for any software, upstream releases should be more than enough for |
12 |
normal usage. |
13 |
|
14 |
Keyword here being "normal". |
15 |
|
16 |
Additional concern from ferdy is the fact you may want to track multiple |
17 |
branches/repos for a software and those do not have a version target. |
18 |
|
19 |
Ciaranm pointed out already that for such cases you may rely on useflags |
20 |
to switch between tip repos/branches. I'm not sure useflag should |
21 |
trigger slot changes (see discussions about binutils usage of useflags), |
22 |
but still that is a simple and clean enough solution for a quite small |
23 |
corner case. |
24 |
|
25 |
Alternatively one could set a virtual and use different package names. |
26 |
This solution is uglier but I guess would be ok for an overlay. |
27 |
|
28 |
> current situation: |
29 |
> - we have some eclasses that on unpack phase fetch the sources from the |
30 |
> upstream server, prepare them and then the usual ebuild process follows. |
31 |
> - in order to make an ebuild using those eclasses be valued as the |
32 |
> highest possible, the simplest solution had been give it a version "high |
33 |
> enough", namely -9999. That makes simple track a single tree per package. |
34 |
> - The same could be done with any version component in order to try to |
35 |
> track multiple instances, so to track what will be the next 1.5 version, |
36 |
> somebody could create an ebuild as 1.4.9999 or 1.5_pre9999, 9999 being |
37 |
> an arbitrary big number. |
38 |
|
39 |
The main issues so far: |
40 |
- you have to hand produce "high enough" version values |
41 |
- you cannot track what did you install since you don't have such |
42 |
information |
43 |
- you cannot do reemerge (useful for revdep rebuilds) |
44 |
- in order to refresh them you need either to rely on script or on sets |
45 |
hand produced or heuristically defined ("all ebuilds that inherit eclass |
46 |
svn go in svn set"). |
47 |
- since you fetch on unpack phase you cannot use emerge -f consistently |
48 |
|
49 |
> -scm proposal: |
50 |
> - use a component version that makes whatever before it valued as "the |
51 |
> highest within that component", likely -r or _p do, that includes the |
52 |
> case "the highest version in absolute" in order to arbitrary decide an |
53 |
> "high enough" value, namely -9999. |
54 |
> - from what you can find in the glep, the change is apparently purely |
55 |
> cosmetic beside the hinted but not expressed possibilities having |
56 |
> portage fully aware those ebuild manage something "live" could give. |
57 |
|
58 |
The issues so far: |
59 |
- it makes the definition of "high enough number" and marks ebuilds as |
60 |
live but doesn't address the other issues |
61 |
- the glep is quite implicit and doesn't tell enough |
62 |
- it requires changes that aren't exactly low impact for almost no |
63 |
return, at least apparently since the glep doesn't tell enough. |
64 |
|
65 |
[I hope that explains better why this proposal had been on hold for this |
66 |
long and why the main requirement to reconsider it had been to add more |
67 |
informations in the glep] |
68 |
|
69 |
> live-properity proposal: |
70 |
> - have a property to make portage aware that the ebuild is using live |
71 |
> sources. |
72 |
> - it doesn't add components to the ebuild version but just marks the |
73 |
> ebuild. So this proposal aims to improve portage internal management but |
74 |
> doesn't add or detract anything regarding version resolution. |
75 |
|
76 |
The issue so far: |
77 |
- it just solves the fact ebuilds aren't marked as "live" but doesn't |
78 |
address any of the other problems. |
79 |
- it has little impact on portage but also gives a little in itself |
80 |
|
81 |
[That makes this proposal interesting since you may build on it |
82 |
solutions to the other issues with low impact as well] |
83 |
|
84 |
> live-template proposal: |
85 |
> - you still have a new version component, in this case either ".live" or |
86 |
> "_live", but in the template. |
87 |
> - it isn't used directly in resolution but it generates automatically a |
88 |
> normal version that get resolved as usual. |
89 |
> - tries to make sure there is a way to get reproducible results |
90 |
> regarding installed packages by embedding the informations to get again |
91 |
> the same sources. So you can also re-emerge the very same package again |
92 |
> you emerged it once since it has a defined version number. |
93 |
> - tries to give developers willing to track upstream and then provide |
94 |
> snapshots the ability to do that automatically. |
95 |
|
96 |
The issue so far: |
97 |
- it tries to scratches all the itches at the same time. |
98 |
- it could be as invasive as the -scm proposal but tries to address |
99 |
every issue in order to make worthy doing such radical changes in one go. |
100 |
- The proposal itself hasn't covered many implementation and usage |
101 |
details yet. |
102 |
|
103 |
[What puzzles me is that some people claims you cannot do something with |
104 |
live templates while you can with -scm] |
105 |
|
106 |
lu |
107 |
|
108 |
-- |
109 |
|
110 |
Luca Barbato |
111 |
Gentoo Council Member |
112 |
Gentoo/linux Gentoo/PPC |
113 |
http://dev.gentoo.org/~lu_zero |