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

Learn Programming

1624 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
[–] [email protected] 6 points 5 months ago (2 children)

You don't have to!

If a downstream distribution wants your software they will build and package it themselves and maintain that infrastructure.

You could provide an example rpm spec (etc) to make their lives easier but it's not on you to provide a binary package that works everywhere; you released the source code so any given user / distro can compile it for themselves.

Just make sure that your build infrastructure and docs are up to speed, and ideally implement some CI/CD and testing to catch any breaking changes.

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

I see, thanks for the info. I wasn't even aware that this developer/maintainer dynamic exists. It makes a lot of sense though. I'll start by creating some documentation about building the software and then maybe create an example package for rpm.

[–] [email protected] 2 points 5 months ago

This dynamic does exist, but you have to build something useful to the likes of Debian and Redhat and that’s a tall order. You should look into Linux brew, it’s a community maintained package management system that might be more suitable for your scale https://docs.brew.sh/Homebrew-on-Linux

[–] FizzyOrange 1 points 5 months ago* (last edited 5 months ago)

This only applies if your program becomes popular or you go to a huge amount of effort packaging it yourself. And even then updates are going to be a huge pain. Do you want your users to be able to use the latest version easily?

There's quite a big gap between "no users" and "included in all distros" where this advice doesn't apply.