Email or username:

Password:

Forgot your password?
Top-level
Ben S.

@aphyr is this a symptom of people wanting to deliver one binary instantiation of their stuff that works on the widest possible array of Linux instantiations?

As a hobbyist C++ developer, I have NO idea how I could release something that would ever be useful to non-developer Linux server admins, because there's no way I'm going to navigate a massively heterogenous set of distro runtime environments, packaging ecosystems, hardware architectures, etc.

For Windows I just provide one .exe file!

16 comments
Irenes (many)

@HunterZ @aphyr we do think it's partly that

but also... the unpleasant truth is that there is a ton of professionally written documentation out there on how to distribute software with containers, and a lot of marketing budgets have been spent on making sure it's easy to find

mos_8502 :verified:

@HunterZ @aphyr You don’t. That’s the distro maintainers’ job. You provide a source tarball.

mos_8502 :verified:

@HunterZ @aphyr Containerization has ruined the whole software distribution model.

Ben S.

@mos_8502 @aphyr so if a game server admin who is not a developer wants to run my stuff on Linux, they have to convince a distro package maintainer to produce an ongoing formal release of my hobby stuff? That sounds terrible for both of us.

mos_8502 :verified:

@HunterZ @aphyr You don't need to be a developer to install a package from source. If it's built correctly, you just invoke

./configure && make && sudo make install

and it installs in /usr/local where third-party software goes.

Ben S.

@mos_8502 @aphyr my software depends on third party libraries. Users may not have those at hand. They may not even have development tools installed, since they may not be developers. You're not seeing past the cushy bubble we exist in as developers.

mos_8502 :verified:

@HunterZ @aphyr I mean, none of this is your problem as the software author. Your job is to be the upstream source. Responsibility for making software available starts with you, making it available as a source tarball to distro maintainers (and anyone else who wants it), who then make it available to system admins, who then make it available to users. If the users are their own system admins, and they can't install a package from source, that's a "them" problem.

Ben S.

@mos_8502 @aphyr so if it's a niche hobby project then there's no point bothering to support Linux, because it's not worth anyone's time to push through the friction of the package maintainer cathedral.

mos_8502 :verified:

@HunterZ @aphyr You can get most of the way there just publishing your package as a .deb and a .rpm. And I can't speak on Fedora, but getting packages into Debian isn't very hard. They don't even have to be free software.

mos_8502 :verified:

@HunterZ @aphyr You could also do the "homebrew" thing and have a command line you can copy and paste to download and run a script that handles it all, but that is a touchy subject with some.

Yuki 膤 ❄️ 🏳️‍⚧️

@mos_8502@studio8502.ca @HunterZ@mastodon.sdf.org @aphyr@woof.group you can also get away with statically compiling or shipping your app with every library needed to run your app, and targetting an old enough version of glibc, it usually does the trick

Chartreuse

@mos_8502 @HunterZ @aphyr You don't even need to get the package into an official repo if you want, you can host your own with just your software or even just a .deb download on github or stuff.

Chartreuse

@HunterZ @mos_8502 @aphyr I'd say the common thing most software I build from source does is have build notes in a Readme that lists the package names for those required libraries for a few common distros.

Amber

@HunterZ@mastodon.sdf.org @aphyr@woof.group (as a C++ developer, and a hobbyist one that worked on distributing a cross platform C++ api wrapper for a popular chat application) We have things like GNU autotools with configure that help minimize the amount of work. Honestly? It didn't come up as much as you'd expect. We were not using autotools, but instead cmake and although we had difficulty with making FindWhatever.cmake we eventually got the hang of it and dropped the recommendation to use vcpkg, instead hoping that users would rely on their system's package manager. Another thing to consider is that thanks to the great work of musl (i know it's a lib c) i've seen a variety of things be statically linked to it, running on glibc systems, musl perfectly fine. Static linking is very well optimized it does not include everything, just the stuff you need for your program to run.

@HunterZ@mastodon.sdf.org @aphyr@woof.group (as a C++ developer, and a hobbyist one that worked on distributing a cross platform C++ api wrapper for a popular chat application) We have things like GNU autotools with configure that help minimize the amount of work. Honestly? It didn't come up as much as you'd expect. We were not using autotools, but instead cmake and although we had difficulty with making FindWhatever.cmake we eventually got the hang of it and dropped the recommendation to use vcpkg,...

draeath

@HunterZ @aphyr do you support windows XP? 7? 10? Just 11? Which vcredist do you need? Do you expect and handle UAC? If you look at C# now we need to ask talk about .NET runtimes. (and a few years ago we had to worry about 16 vs 32 vs 64 (with PAE in there to be annoying to)) - since 32bit has finally essentially died off that's better, but watch out for ARM - are you building a universal binary?

Don't confuse simple with used to it.

Ben S.

@draeath @aphyr my friend in christ have you heard the good news about MSYS2 MinGW?

CPU architecture is always going to be a bear unfortunately, at least until ARM takes over.

Go Up