1 |
El mié, 06-06-2012 a las 02:17 -0700, Zac Medico escribió: |
2 |
> On 06/06/2012 01:28 AM, Pacho Ramos wrote: |
3 |
> > El mar, 05-06-2012 a las 16:07 -0700, Zac Medico escribió: |
4 |
> >> The "SLOT operator" dependencies that Ciaran has been advocating are |
5 |
> >> very close to a good solution. However, if we want it to work with |
6 |
> >> unslotted packages, then we need to introduce a separate ABI_SLOT |
7 |
> >> variable as discussed here: |
8 |
> >> |
9 |
> >> https://bugs.gentoo.org/show_bug.cgi?id=192319#c18 |
10 |
> >> |
11 |
> >> It's really no more difficult to do than "SLOT operator" dependencies, |
12 |
> >> it's more flexible, and we can do it in EAPI 5. |
13 |
> > |
14 |
> > In that case, I obviously wouldn't have any problem with that approach |
15 |
> > (it sound even better :)). Is there any place where I could get a bit |
16 |
> > more documentation about how this "SLOT operator" way would work? For |
17 |
> > example, how would work for rebuilding x11 drivers after updating xorg |
18 |
> > or rebuilding gobject-introspection after major glib update... |
19 |
> |
20 |
> Whenever you have an ABI change, the developer doing the version bump |
21 |
> needs to increment the SLOT (or ABI_SLOT if we use a separate variable) |
22 |
> in the package. Packages that depend on the package with the ABI change |
23 |
> (reverse dependencies) append a := operator to their dependency atoms, |
24 |
> indicating that they are locked to the ABI of the SLOT that they are |
25 |
> built against. The package manager translates the := operators into a |
26 |
> dependencies on specific SLOTs at build time, so that when you update |
27 |
> your system next time, it can use this information to trigger rebuilds |
28 |
> automatically when necessary. |
29 |
|
30 |
That looks nice, only two notes: |
31 |
- Looks like would be more sense on distinguish between "SLOT" and |
32 |
ABI_SLOT, for example: |
33 |
* dbus-glib would rdepend on glib:2 |
34 |
* if glib:2 abi changes, we would pull a ABI_SLOT="2.32" inside glib-2 |
35 |
ebuild |
36 |
* dbus-glib rdepending on glib:=2 would get rebuilt |
37 |
If we would use "SLOT" for all the cases, how would we handle it? I |
38 |
mean, glib slot would be bumped to "2.32" and dbus-glib ebuilds updated |
39 |
to rdepend on every new slot? Or would package managers distinct between |
40 |
"versions" inside the same SLOT variable? |
41 |
- What would occur with packages forced to use eapi0 due backwards |
42 |
compat? We could probably deprecate eapis older than 5 to allow all the |
43 |
tree be consistent with this rebuilds forcing, but no idea what to do |
44 |
with system packages still needing to use eapi0 and maybe changing their |
45 |
ABI too :/ |