On Mon, 2021-11-08 at 12:18 +0100, Michał Górny wrote:
> Hi,
>
> A few years back I've slotted LLVM and Clang to make the life with
> revdeps easier. Long story short, every major LLVM release (which
> happens twice a year) breaks API and it takes some time for revdeps to
> adjust. Slotting made it possible to install multiple versions
> simultaneously, and therefore let "faster" packages use newer LLVM
> without being blocked by "slower" packages on the user's system.
>
> Unfortunately, this ended up pretty bothersome to maintain. Besides
> making ebuilds quite complex (and prone to mistakes), I'm hearing more
> and more reports of programs being broken through getting multiple LLVM
> versions in the link chain.
>
> This is not something that can be easily solved. In other words, it's
> a mess and I don't think we're really getting anywhere. For this
> reason, I'm considering dropping slotting and going back to permitting
> only a single version of LLVM and Clang being installed.
>
> This would have two major implications:
>
> 1. If you installed any package that requires older LLVM, it'd block all
> other packages from updating. If you hit two packages that do not have
> a common supported LLVM version, you won't be able to install them
> at all.
>
> On the plus side, this will motivate developers to actually start fixing
> these packages rather than letting them rot until I start removing old
> LLVM versions.
>
> 2. We will no longer support having multiple clang versions installed.
> While it was convenient for testing stuff, it's not really a killer
> feature though.
>
> The only real alternative I see is actively limiting supported LLVM
> versions in packages to ensure that all libraries in the depgraph end up
> using the same LLVM version. However, I don't think it's really worth
> the effort.
>
> I don't have a ready unslotting plan yet.
>
> WDYT?
>
I've got the message and slotted LLVM and Clang are going to stay for
the time being.
--
Best regards,
Michał Górny