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

Allow usage of shared libraries during build / make Linux packaging easier #2432

Open
2 tasks done
der-eismann opened this issue Jul 17, 2024 · 1 comment
Open
2 tasks done
Labels
enhancement type enhancement

Comments

@der-eismann
Copy link

Search before asking

  • I had searched in the issues and found no similar issues.

Motivation

While the primary use case of kvrocks lies in containerized environments, it would be great to make it easier to use in normal OS environments. One way would be to provide RPM & DEB files, but in #1152 (comment) it was made clear that this won't happen, which is okay. But the only alternatives are OS packages (which are only provided by Arch AUR at this point) or building binaries yourself, which could be an obstacle for some.

My main issue with the build process is that all needed libraries are downloaded and built as static libraries, this is usually a no-go for Linux packagers. For some things like RocksDB it probably makes sense to use a pinned version, but zstd and snappy should be easy targets to use dynamically.

Solution

Make it possible to use locally available libraries and headers instead of downloading all dependencies during the build.

Are you willing to submit a PR?

  • I'm willing to submit a PR!
@der-eismann der-eismann added the enhancement type enhancement label Jul 17, 2024
@PragmaTwice
Copy link
Member

PragmaTwice commented Jul 17, 2024

Refer to https://kvrocks.apache.org/download/third-party-packages.

The Apache Kvrocks PMC doesn't maintain prebuilt binaries for any Linux distro (except the official Docker image).

But out of the PMC, some contributors in the community does maintain some Linux packages for Kvrocks.

Currently it includes:

  • kvrocks-fpm: currently just prebuilt DEB package for Ubuntu, but ideally can be extended to many package format like RPM in other distros... (you can download them via Releases.)
  • kvrocks in AUR: a ArchLinux package for Kvrocks

Actually, both of these projects are mainly maintained by me in my spare time.

Currently, I don't have much time to improve kvrocks-fpm and expand it to other package formats besides DEB. But if anyone is interested and willing to help complete this task, I would be very grateful.

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

No branches or pull requests

2 participants