On 10 Nov 2022, at 17:14, Theodore Ts'o
<tytso(a)mit.edu> wrote:
On Thu, Nov 10, 2022 at 12:28:49PM +1100, David Arnold wrote:
a) Today most
identifiably Unix software is “sourceware”, and so the
differences between Linuxes, *BSD, and macOS are fairly easily
taken care of (eg. with autotools).
I'd also argue that (a) the differences between the Linuxes aren't as
big some people would make it out to be --- especially compared to the
differences between AIX and Solaris and HPUX, and (b) *BSD and macOS
has their ports and homebrew systems which also ease any pai that
isn't handled by autoconf and friends.
I agree.
The differences between desktop/server Linux distributions are largely invisible to
application code. THe most obvious exceptions are locations for files. I’ve found it’s
basically easier to deal with that dynamically (in the application code), rather than
doing an autoconf-based distro switch. Init script vs. units, etc, are minor issues too.
Sometimes I’ve found a particular platform doesn’t have a package for eg. the right SSL
library, or the right version of something, but that’s fairly rare, and mostly able to be
worked around by being conservative in dependency choices.
Alpine’s use of musl rather than glibc was a bigger problem, but musl is increasingly
glibc compatible. Other libc versions used by embedded platforms, create more problems,
but then those applications tend to be fairly narrowly targeted anyway.
But all that said … it’s a heap easier than making source code compile across every common
Unix in the mid-to-late 90’s.
d