Dear fellow developers,

I hope this will be trivial to most of you but after seeing bug #455900
and the vast majority of developers not even thinking twice before
sedding their dep strings, I believe this needs some attention.

What do subslots do: You set a subslot to a package and every time said
package subslot changes (e.g. with an update), others packages
depending on it with a := dep will be rebuilt. Nothing more, nothing
less.

Now, this solves a real problem: haskell, perl and ocaml packages need
to be rebuilt after updating their respective compiler/interpreter and,
in some cases, even after updating the libraries they use. Subslots
would make haskell-updater, perl-cleaner and ocaml-rebuild not needed
in the future.

You can also use subslots to notify an ABI change in a shared library,
in order to avoid having to use preserve-libs or run revdep-rebuild.
However, this week I had to rebuild webkit-gtk three or four times and
libreoffice twice...
If you want to notify ABI changes, then you should set subslot to
something representing the ABI, $PV as subslot is most certainly wrong
in that case. Subslot is *not* a substitute to checking your library
ABI, checking if its reverse dependencies work fine after the update,
and notifying upstream if something went wrong so they can make a quick
release fixing their mistake. Subslot is also *not* a substitute to
soname and ensuring ABI compatibility (at least forward) between
libraries with the same major. Using subslot only to be on the safe
side and forcing a rebuild of all the dependent packages because it is
too much work to check the ABI and work with upstream is, IMHO, a
serious QA issue.

Thank you for your attention,

Alexis.

Reply via email to