this post was submitted on 10 Apr 2024
15 points (100.0% liked)

Learn Programming

1634 readers
1 users here now

Posting Etiquette

  1. Ask the main part of your question in the title. This should be concise but informative.

  2. Provide everything up front. Don't make people fish for more details in the comments. Provide background information and examples.

  3. Be present for follow up questions. Don't ask for help and run away. Stick around to answer questions and provide more details.

  4. Ask about the problem you're trying to solve. Don't focus too much on debugging your exact solution, as you may be going down the wrong path. Include as much information as you can about what you ultimately are trying to achieve. See more on this here: https://xyproblem.info/

Icon base by Delapouite under CC BY 3.0 with modifications to add a gradient

founded 1 year ago
MODERATORS
 

Hi, I'm looking to open-source a small CLI application I wrote and I'm struggling with how to provide the built app since just providing the binary will not work. I had a friend test it and he had to compile from source due to glibc version differences.

My first thought was providing it as a flatpak but that isn't really suitable for CLI software.

I've googled around a bit and most guides I find just mention packaging separately for multiple package managers/formats (rpm, apt etc.). This seems really inefficient/hard to maintain. What is the industry standard for packaging a Linux software for multi-distro use?

you are viewing a single comment's thread
view the rest of the comments
[–] fourwd 7 points 7 months ago (2 children)

Just build the app on very old distros like Ubuntu 16.04 if possible. But in general, packaging should be handled by the maintainer. If you want to be both a developer and maintainer, packaging problems will take up 75% of your time.

It's not really hard for us users to follow your README and just copy the built binary to ~/.local/bin.

[–] [email protected] 2 points 7 months ago (1 children)

Hi thanks for the reply. Could you elaborate on why building for an old distro may be benefitial/a good solution? Thanks for mentioning this developer/maintainer dynamic. It's not a concept I was aware of.

Do you have any projects with good READMEs you could point me to, so I can get an idea of what's important to address?

[–] fourwd 1 points 7 months ago

If you build your app with glibc 2.32 and then run it with glibc 2.39, it will run fine. But it won't work the other way around.

There is no best README template, but for my personal projects I use this:

  1. Title
  • Brief description of the project
  • Features
  1. Build
  • List of supported OS
  • List of dependencies (what packages do I need to build your application)
  • Commands to build the application (what do I need to do to build your application)
  • Binary Locations (where can I find the built binary)
  1. Usage
  • Program arguments (what do I need to provide to use your CLI application)

You can find an example here. I'm not saying this is the best README, but I think it's simple and informative.