Classic confinement for rust-bindgen

Hi there,

I would like to request the classic confinement for rust-bindgen Snap. It’s a Rust-related build tool that needs unrestricted file access to system development files (mainly C/C++ headers).

Thanks!

3 Likes

Hi @liushuyu ,

The link you provided is not working, can you please elaborate more on what the snap does, and what kind of error you’re facing while confining the snap in strict env? Also for “classic” you need to make sure your snap lands in one of the supported categories here

thanks

Ping @liushuyu - this request cannot proceed without your response.

@liushuyu as stated above, this request is still waiting on input from you - can you please respond, otherwise we will close it on our side after another 7 days of inactivity. Thanks.

This is now addressed. rust-bindgen is set to “public” now. Previously, there was an issue with the Launchpad builder, but it seems to have been fixed recently.

Hello @liushuyu , just to clarify, your request for classic is no longer required, right?

I’m sorry, but the request for classic is still required because the system needs to read C/C++ development files.

Hey @liushuyu

So rust-bindgen automatically generates Rust FFI bindings to C (and some C++) libraries. Thus, it clearly needs access to the development files (mainly C/C++ headers).

However, rust-bindgen does not seems to fit very well in any of the supported categories for classic. I wonder if access to the required files via system-files (/var/lib/snapd/hostfs/usr/include ) would be more appropriate for this requirement

Hmm rust-bindgen feels like a compiler to me… and so would fit in that supported category, right?

The issue here is, aside from /usr/include, it might also need to access other locations if the user specified extra include paths (just like clang or GCC). The path might be inside /usr/lib(where we put cross-compilers) if some compile builtin headers are used.

I think rust-bindgen could be classified as a compiler, except it ingests C/C++ sources and outputs Rust source files instead of assembly or binary.

A compiler takes inputs and produces outputs - which is what rust-bindgen does.

Also it needs access to system installed headers etc, very much like a traditional C/C++ compiler. So I still think this fits quite clearly into this category. As such, the requirements for classic confinement are understood. I have vetted the publisher. This is now live.

1 Like

Hi there,

I can see the ppc64el and s390x builds are still in the “pending review” state while the other builds are approved for release. Is this expected?

Apologies, they need to be queued manually and it appears I forgot to do these last two. Done.

1 Like