[Pkg-rust-maintainers] Please consider packaging a Rust version that allows #![feature(...)]
infinity0 at debian.org
Mon Aug 31 10:32:55 UTC 2015
On 31/08/15 11:59, Luca Bruno wrote:
> [Also moving this part of the thread out BTS, back to ML]
> On Monday 31 August 2015 11:26:13 Ximin Luo wrote:
>> So this actually contains no extra information than the strings (e.g.)
>> "1.3.0" or "1.3.0-beta.3" or "1.3.0-nightly" etc, but has the disadvantage
>> of not being comparable. I am wondering if we should just (a) patch this to
>> use $(CFG_RELEASE) instead, and maybe (b) call the package libstd-rust-1,
>> since semantic versioning is supposed to mean backwards compatibility
>> between 1.3.0 and 1.2.0. That would be more sane, and I've asked in #rust
>> about it.
> We are talking here about the SONAME of rustc-provided shared objects (.so)
> here, and the idea is that package name match the libraries' suffix.
> Given that rust doesn't have a stable ABI, I'm pretty sure that talking about
> semver stability doesn't apply here (but I haven't checked the symbols).
> Moreover, this hash suffix is deeply rooted into rust/cargo dylib generation,
> so I would avoid patching stuff on our side.
I've filed  to ask at least whether we can make it human-readable.
On another note, I'm pretty sure we don't need to do the Conflicts/Replaces. Isn't the whole point of using a name like libstd-rust-xxxx is to be able to install two of them side-by-side? For example, (in the future) if one rust binary links against 1.2.0, and later another binary links against 1.3.0, and we don't want to have to rebuild the first one, then we actually would *need* to install libstd-rust-62abc69f and libstd-rust-198068b3 at the same time.
OTOH, if they *actually can't be installed* at the same time (e.g. if the linker is incapable of choosing between the two versions), or if we are happy rebuilding everything all the time, then there is *no point* renaming the package - we can just call it libstd-rust, and have dependencies of the form "Depends: libstd-rust (= 1.3.0)".
So the Conflicts/Replaces is redundant in both scenarios.
More information about the Pkg-rust-maintainers