1 |
That environment.bz relates to the installed package? And "downgrading" |
2 |
means I'm installing a lesser version instead of the current, and not |
3 |
necessarily the prev. one in-line. I might be downgrading to a *very* |
4 |
old version. |
5 |
|
6 |
I can see how a/m archive can aid in removing the current version. |
7 |
However, the replacing package also relies on eclass code, and it might |
8 |
rely on code which was already gone when I initially created the ebuild |
9 |
of the current version. |
10 |
|
11 |
Here's an example timeline: |
12 |
1. Creating myapp-1.0, inheriting myeclass.eclass "version a". |
13 |
2. Modifying myeclass.eclass to "version b". myapp-2.0 is created. |
14 |
eclass is not backward-compatible. |
15 |
3. ... |
16 |
3. Creating myapp-20.0. |
17 |
|
18 |
On a system with myapp-20.0 (and eclass of at-least "version b"), I |
19 |
don't see how I would be able to downgrade to myapp-1.0, as "version a" |
20 |
of the eclass is nowhere to be found. |
21 |
|
22 |
Thanks, |
23 |
Amit |
24 |
|
25 |
Zac Medico wrote: |
26 |
> Amit Dor-Shifer wrote: |
27 |
> > I've been through the list, and also read GLEP #33, in search for |
28 |
> > recommended practices regarding eclasses. |
29 |
> > the way I understand it, when an eclass is modified to accomodate a new |
30 |
> > ebuild, old ebuilds are broken. Specifically, downgrading with those |
31 |
> > broken ebuilds is no longer possible, as the eclass code they used to |
32 |
> > execute is no longer available. |
33 |
> |
34 |
> > So, basically, downgrade is possible only while dependent eclasses |
35 |
> > haven't changed. And AFAIK, portage doesn't test whether inherited |
36 |
> > eclasses were modified since the ebuild was signed. This means that |
37 |
> > there's also no traceability: old ebuilds cannot say "When I was in |
38 |
> > business, my inherited eclass was THIS". |
39 |
> |
40 |
> > I'm wondering how do others address the downgrade issue. |
41 |
> |
42 |
> Since portage-2.1.4, it's not a problem because we reuse |
43 |
> /var/db/pkg/*/*/environment.bz2 which contains code from the |
44 |
> original version of the eclass. |