Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Packaging ringboard #22

Open
GaetanLepage opened this issue Aug 10, 2024 · 6 comments
Open

Packaging ringboard #22

GaetanLepage opened this issue Aug 10, 2024 · 6 comments

Comments

@GaetanLepage
Copy link

Hi !

I would like to package ringboard on nixpkgs.
How would you actually see this software packaged on a distro ?

I ask this question because it is inherently constituted of distinct entities (server, tui client, x11 client, egui...)
Would you have it as a single meta-package shipping all binaries ?
Would each component have its own package that user would install independently ?

Thanks in advance for your help :)

@GaetanLepage GaetanLepage changed the title Packaging Packaging ringboard Aug 11, 2024
@SUPERCILEX
Copy link
Owner

This is awesome, thanks for looking into packaging!

I'm not sure what the best approach is. I think it could make sense to package everything together in an x11 variant (and in the future wayland). But I can also see people not wanting bloat and preferring individual binaries. If we go that approach, then I think it's important to make sure installing the GUI for example also installs the server and a watcher so people aren't confused. Or maybe we could get the best of both worlds by packaging each binary individually with no dependencies and then offering one package which with nothing in it but dependencies on all the other packages so it acts as an everything package. Thoughts?

@GaetanLepage
Copy link
Author

Ok, I think I will start by packaging them all individually.
I would still be able to play with "meta-packages" or dependencies later.

There is a blocker for now though, your code seems to rely on a nightly version of Rust. We are only able to compile code with the current stable rustc.
Do you plan to allow this in the future ?

@SUPERCILEX
Copy link
Owner

Ahhhh, I was wondering when the question of nightly would come up. It would be possible to create a patch that makes things work on stable, but it'll be pretty hard. Is it possible to be packaged with some reasonably recent version of nightly? And if things fail to build then you just come yell at me and I'll update to the latest version.

@msirringhaus
Copy link

I'm also trying to package it for openSUSE at the moment, and am in the same boat: No nightly available in our build-systems.
There is the highly discouraged hack of using export RUSTC_BOOTSTRAP=1, which let's one use nightly-features with stable compilers. With this, I can get it to compile, but it will make a lot of people very angry, once they find out.
Having the project rely only on stable features seems to me to be the only non-hacky solution.

@SUPERCILEX
Copy link
Owner

Is there some discussion about why folks would be mad? I think we'd accept that the package will probably break whenever rustc is updated which seems fine as long as the policy is "get rid of the package until they figure out their broken build."

In terms of nightly features, debug_closure_helpers would probably be the most painful to remove, though they'll all be a pain to deal with.

@lolbinarycat
Copy link

Is there some discussion about why folks would be mad?

RUST_BOOTSTRAP is an escape hatch that exists so that rustc and the standard library can be built with a stable compiler. it is not part of any official api, and it is not intended to be used by anyone except the compiler. it's existence is already a dirty hack that breaks the rust stability model, using it outside of rustc would be even worse.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants