[Pkg-rust-maintainers] Rust multiarch-friendly package/filesystem layout proposal

Jordan Justen jljusten at gmail.com
Wed May 20 15:15:54 UTC 2015


On 2015-05-05 22:10:45, Angus Lees wrote:
>    On Mon, 27 Apr 2015 at 20:03 Sylvestre Ledru <sylvestre at debian.org> wrote:
> 
>      Le 27/04/2015 10:43, Angus Lees a A(c)critA :
> 
>        On Mon, 27 Apr 2015 at 17:17 Sylvestre Ledru <sylvestre at debian.org>
>        wrote:
> 
>          I like the idea and I think it makes sense.
>          I am just afraid about the libstd-$hash having to through new every
>          time...
> 
>        This shouldn't be any different to regular lib$soname bumps for
>        C-based packages.
> 
>      Except that they will change at every release for a while, don't you
>      think?
> 
>    Yes, it looks like the plan is to change the hash every release, which
>    means every 6 weeks.
>    I don't know what the threshold is for "too often", so we might need to
>    just try this for a bit and see(?).

I still don't think it is a good idea to put lib*-hash* into the
standard library paths.

The rust team doesn't seem to recommend this yet.

Go seems to use private locations for libraries:
https://packages.debian.org/jessie/amd64/golang-go-linux-amd64/filelist

So does gcc:
https://packages.debian.org/jessie/amd64/libgcc-4.8-dev/filelist

How will this libstd-rust-4e7c5e5c package possibly work? Once we rev
the rustc source package to build libstd-rust-nexthash, it will no
longer be possible to build/install the old package. So, what about
packages that tried to depend on it?

I also don't understand why libstd-rust-4e7c5e5c will provide this
binary: /usr/lib/x86_64-linux-gnu/libgraphviz-4e7c5e5c.so. How does
this make sense?

My thought is that perhaps libgraphviz-rust-1.0.so could make sense...
Or, librust-1.0-graphviz.so?

It is frustrating that the rust language is sending mixed messages on
this issue. On the one hand they recommend *not* dynamically linking
with rust at this time. On the other hand they put the libraries in
the standard library paths and make it easy to depend on them.

I think it the rust language needs to mature more to figure this issue
out. Maybe rust is waiting for go to solve it first, so they can
follow them? :) (Actually, not necessarily a bad plan.)

-Jordan

>        A  I haven't maintained a C library package before, but afaik you only
>        go through the NEW process for new source packages, not renamed binary
>        packages.
> 
>      No, ditto for renamed binaries.
> 
>    Huh, I learnt something new :)
>    Yes, the above means we'll need to go through the "binary-only" version of
>    the NEW process for each new upstream release.A  Again, I don't know how
>    much of a delay there will be in that.
>    A ----------
>    I've pushed an update that implements the proposal to a new
>    alioth/multiarch branch.A  Let me know if you see any blockers to merging
>    it onto master.A  The only lintian warnings currently are that
>    rust-{gdb,lldb} don't have manpages, and that "epub" isn't a recognised
>    doc-base format (I'm still unsure whether I want to file the feature
>    request or just remove the epub doc-base entries).
>    Re the libstd-rust-$hash package name: A  I attempted to name it just
>    "libstd-rust" but this requires an additional "<< $next_upstream"
>    dependency restriction in shlibs.A  We can add that, but doing so seemed
>    to be strongly advised against in the library packaging guide that I was
>    browsing through at the time - and they pointed to previous examples where
>    not just using the soname as was intended led to various corner-case
>    issues.
>    I've implemented the libstd-rust-$hash package as would be expected
>    without concern for release frequency because I would like to gain
>    experience with the "right" thing and have actual data before making
>    compromises.A  If it turns out we _are_ releasing "too frequently", A I
>    think our next best alternative is to abandon the libstd-rust-$hash split
>    out for now and just roll the runtime libs into libstd-rust-dev, rather
>    than making a non-soname "libstd-rust" package.A  This alternative means
>    we won't be able to depend on dylibs from other Debian packages, which is
>    the use case we expect to not handle at present anyway.A  One day it is
>    inevitable that we _will_ have a package that needs the dylibs and then we
>    won't have a choice, but this alternative would let us postpone any
>    maintenance costs until that day.
>    A - Gus
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-rust-maintainers/attachments/20150520/7425289f/attachment.sig>


More information about the Pkg-rust-maintainers mailing list