For Rust or in general?
In former case you mind end up with 2 (or even 3-4) versions of same crate in buildroot (usually because dependencies are not ported to latest version while your app does). Sometimes it is essential because depending on same version breaks your binary — https://github.com/rust-lang/cargo/issues/2589.
And in general, just simple example:
⋊> ~/P/u/rust2rpm on master ⨯ rpm -qR beignet | grep LLVM 14:56:33 libLLVM-6.0.so()(64bit) libLLVM-6.0.so(LLVM_6.0)(64bit) ⋊> ~/P/u/rust2rpm on master ⨯ rpm -qR mesa-dri-drivers | grep LLVM 14:56:42 libLLVM-7.so()(64bit) libLLVM-7.so(LLVM_7)(64bit)
If I want to use
beignet, that would mean that I need to uninstall
mesa-dri-drivers which would result in broken system (I mean no graphics).
Another example might be python interpreters, right now we allow all python2 and python3 versions to be installed at the same time which helps developers to run
tox and test their library against all python versions. It is essential to support their workflow.
I understand that we don’t want to allow all streams of all modules enabled at the same time (because it is insane), but we should allow doing so in easy way for case by case (not creating
llvm7:7 modules and such.