Skip to content
New issue

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

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

Already on GitHub? # to your account

List dependencies with their version in the readme #743

Open
tsturzl opened this issue Feb 28, 2022 · 4 comments
Open

List dependencies with their version in the readme #743

tsturzl opened this issue Feb 28, 2022 · 4 comments

Comments

@tsturzl
Copy link
Collaborator

tsturzl commented Feb 28, 2022

We should list all the dynamic libraries, and system requirements required to build and run Youki. We currently provide a section that has commands for installing the dependencies, but this does not include the versions. We also have requirements for things like kernel version which should probably be communicated. I don't think anyone has done a deep dive on which kernel version Youki can actually be run on, but we decided to I think kernel 5.4 and up in the discussion on #369.

Having this listed will give a better insight to where youki can be run and hopefully prevent future tickets describing Youki not running or compiling for certain systems.

@utam0k
Copy link
Member

utam0k commented Feb 28, 2022

@tsturzl Thanks for raising the issue. It's a nice idea. I have an idea to provide a check command which checks if there are the libraries youki need? WDYT?

@utam0k
Copy link
Member

utam0k commented Feb 28, 2022

or do we provide more friendly error messages?

@tsturzl
Copy link
Collaborator Author

tsturzl commented Feb 28, 2022

@utam0k I really like that idea, but I'm worried that the way shared libraries are loaded Youki probably can't run at all. In the case that you had the wrong libseccomp version you'd get a failure immediately and won't even be able to execute Youki. At compile time we added a clear compiler warning for libseccomp, and maybe others need to be added as well, but that's the only one that we have direct control over.

I think perhaps the youki info command could provide some useful info in terms of compatibility at runtime (kernel version, distro, architecture, etc), but that would likely be a separate issue. For this I think we'd probably need to list the dependencies in readme or even another markdown document. I'm not sure how we'd get the youki command to run when it's dynamic runtime dependencies aren't met, without some kind of complicated shared lib loader for all shared libs we link against.

@tsturzl
Copy link
Collaborator Author

tsturzl commented Feb 28, 2022

Actually we could add more build checks (like this)[https://github.com/containers/youki/blob/5aad78e9bce853ce9b74617c5e9cbbfb89de456d/crates/libseccomp/build.rs] which can check all compile time dependencies are give informative errors. But I think in terms of runtime we need to provide some info for those who expect to just run the pre-built binary.

# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

No branches or pull requests

2 participants