1 |
Dear fellow developers, |
2 |
|
3 |
I hope this will be trivial to most of you but after seeing bug #455900 |
4 |
and the vast majority of developers not even thinking twice before |
5 |
sedding their dep strings, I believe this needs some attention. |
6 |
|
7 |
What do subslots do: You set a subslot to a package and every time said |
8 |
package subslot changes (e.g. with an update), others packages |
9 |
depending on it with a := dep will be rebuilt. Nothing more, nothing |
10 |
less. |
11 |
|
12 |
Now, this solves a real problem: haskell, perl and ocaml packages need |
13 |
to be rebuilt after updating their respective compiler/interpreter and, |
14 |
in some cases, even after updating the libraries they use. Subslots |
15 |
would make haskell-updater, perl-cleaner and ocaml-rebuild not needed |
16 |
in the future. |
17 |
|
18 |
You can also use subslots to notify an ABI change in a shared library, |
19 |
in order to avoid having to use preserve-libs or run revdep-rebuild. |
20 |
However, this week I had to rebuild webkit-gtk three or four times and |
21 |
libreoffice twice... |
22 |
If you want to notify ABI changes, then you should set subslot to |
23 |
something representing the ABI, $PV as subslot is most certainly wrong |
24 |
in that case. Subslot is *not* a substitute to checking your library |
25 |
ABI, checking if its reverse dependencies work fine after the update, |
26 |
and notifying upstream if something went wrong so they can make a quick |
27 |
release fixing their mistake. Subslot is also *not* a substitute to |
28 |
soname and ensuring ABI compatibility (at least forward) between |
29 |
libraries with the same major. Using subslot only to be on the safe |
30 |
side and forcing a rebuild of all the dependent packages because it is |
31 |
too much work to check the ABI and work with upstream is, IMHO, a |
32 |
serious QA issue. |
33 |
|
34 |
Thank you for your attention, |
35 |
|
36 |
Alexis. |