Mailinglist Archive: opensuse-factory (454 mails)

< Previous Next >
Re: [opensuse-factory] RFC Generic Packaging for Languages that have vendor/ Trees
On Tue, Dec 19, 2017 at 11:54 PM, Aleksa Sarai <asarai@xxxxxxx> wrote:
On 2017-12-19, Neal Gompa <ngompa13@xxxxxxxxx> wrote:
* The current vendoring of rust crates is temporary. We're waiting on
RPM 4.14[1] and the new product builder to come online (DimStar
already slapped me once for breaking Tumbleweed with rich deps
before...). I'm working on making rust2rpm make openSUSE-friendly spec
files (mainly add the boilerplate header, skip conversion of SPDX to
Fedora license tags, generate changes file) so that crates can be
easily packaged and shipped in the distribution. Right now, Fedora has
well over 230 Rust crates packaged[2], and the packaging for them is
pretty trivial[3]. We've also got a good handle on cargo integration,
so crates function as if they're in a local cargo registry for things
to depend on.

Is there a document somewhere that explains how it works? I read through
the Fedora wiki page on Rust packaging[1] last time the RPM feature was
mentioned on this list, but it doesn't explain anything about the
current status (unless "rust2rpm" is the current status?).


Well, if you want to do it by hand, we do document how you're supposed
to do it: https://fedoraproject.org/wiki/Packaging:Rust

Unlike Go, which is mostly B.S. on packaging, we have been taking a
careful approach to ensure we're on a solid path for Rust.

* I'm not sure why openSUSE hasn't adopted the bundled() Provides
thing across the board anyway. There are plenty of packages that ship
vendored trees/libraries and no one knows what they are. In general,
it's really not a bad idea to do that. In my opinion, it's
irresponsible to not require what you bundle to be defined.

Generally speaking, I think this is a solid idea, but I solidly do not
believe we will be continuing the vendored crates practice for much
longer in Rust.

Okay. I just want to make sure that we don't run into the same
maintainence problem we already have with Ruby packages (which will end
up being worse due to the multi-versioning support in Rust, as well as
the existence of far more micro-packages than in the Ruby universe).
Does the current plan for Rust packaging account for that?

[1]: https://fedoraproject.org/wiki/SIGs/Rust


Our design of Rust packaging is deliberately because of needing to
package multiple versions of things. Though it is encouraged that when
we encounter such situations, to try to upgrade to latest crate
versions and submit patches upstream. Igor Gnatenko has been like a
machine and doing just that across most of Fedora's crates.

But yes, we handle multiple versions of crates within a dep tree
perfectly fine. :)

--
Aleksa Sarai
Senior Software Engineer (Containers)
SUSE Linux GmbH
<https://www.cyphar.com/>



--
真実はいつも一つ!/ Always, there's only one truth!
--
To unsubscribe, e-mail: opensuse-factory+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-factory+owner@xxxxxxxxxxxx

< Previous Next >