1 |
On Fri, Oct 20, 2006 at 11:05:22PM +0000, malverian@g.o wrote: |
2 |
> Hello all, |
3 |
> |
4 |
> In designing an enterprise infrastructure around Gentoo at my place of |
5 |
> employment, I have discovered a feature that would improve Gentoo's |
6 |
> usefulness greatly in this field. |
7 |
> |
8 |
> I'm writing to ask for your opinion on a change to sys-apps/portage that |
9 |
> would allow users to maintain local revisions of ebuilds, such as |
10 |
> "net-www/apache-2.0.58-r2-local1". This would require a modification to |
11 |
> the ebuild version specifications and a patch to two portage source |
12 |
> files which you can review here: |
13 |
|
14 |
Use -rX.Y instead; existing portage will choke on it the same as it'll |
15 |
choke on -local, upshot of -rX.Y is that it's less chars, bit more |
16 |
clear in the intention of trying to sneak an additional version |
17 |
component betwee -rN and -rN+1 |
18 |
|
19 |
|
20 |
> http://dev.gentoo.org/~malverian/portage_local_version.patch |
21 |
> |
22 |
> (Please don't complain about the code quality, I cleaned up areas where |
23 |
> it was desparately needed such as the string.atof() areas, but for the |
24 |
> sake of code coherence, I tried to use the same methodology used elsewhere |
25 |
> in the code as much as possible, such as unqualified except statements :P) |
26 |
|
27 |
Bah. If you know that catch-all except's are bad, that means you |
28 |
can't use that excuse for having it in your new code :P |
29 |
|
30 |
|
31 |
> 2) You are using binary packages and need to simulate a version bump to |
32 |
> force re-installation of a binary package with modified USE flags. |
33 |
> |
34 |
> 3) You are using binary packages and need to simulate a version bump to |
35 |
> force re-installation of binary packages that were rebuilt during |
36 |
> revdep-rebuild |
37 |
|
38 |
Failing here is that it's not a 'simulated' verbump, it *is* a verbump |
39 |
for any deps that are locked via =; =dev-util/diffball-0.7.1 will not |
40 |
pick up =dev-util/diffball-0.7.1-local1 since =dev-util/diffball-0.7.1 |
41 |
is implicitly =dev-util/diffball-0.7.1-local0 . |
42 |
|
43 |
Folks can live with that issue, but should be clear that its there |
44 |
(same for revbumps of course, just picking at the wording). |
45 |
|
46 |
|
47 |
> In all of the above cases, one could simply bump the package up one |
48 |
> revision by creating an ebuild in an overlay for apache-2.0.58-r3. |
49 |
> However, using this solution will result in apache not being upgraded |
50 |
> when apache-2.0.58-r3 is actually committed to the portage tree unless |
51 |
> you perpetuate this bad habit ad nauseum. |
52 |
|
53 |
This particular issue (force usage of an ebuild from PORTDIR if the |
54 |
installed exact version is from an overlay) can be addressed without |
55 |
changing version rules, although admittedly it's a single revbump, no |
56 |
way to do multiple bumps (again, wording is all). |
57 |
|
58 |
|
59 |
> - The new (completely backward compatible) version priority order would be: |
60 |
> |
61 |
> apache-2.0.58 |
62 |
> apache-2.0.58-r1 |
63 |
> apache-2.0.58-r2 |
64 |
> apache-2.0.58-r2-local1 |
65 |
> apache-2.0.58-r2-local2 |
66 |
> apache-2.0.58-r3 |
67 |
> apache-2.0.59 |
68 |
|
69 |
portage_version.ver_regexp specifically anchors -r\d+ to the end of |
70 |
the string, as such this is *not* backwards compatible, 2.1 |
71 |
would choke if it saw these versions in the vdb or in an |
72 |
overlay... |
73 |
|
74 |
~harring |