BSD's don't tend to have distros. So for example OpenBSD has a ports tree maintained by the ports team for OpenBSD. The operating system is free to break ABI's from release to release as the ports tree is audited, fixed, and recompiled for the new release.
The Linux kernel can't freely do this as then the ABI break is placed on various distro maintainers and software authors because there is no clear point in time they can say ABI $FOO will break on date $BAR.
BSDs typically have all their userspace tools in the same tree as the kernel, it's easier for them to make these breaking changes than it is for linux where the kernel live in one place and the rest of the code is scattered far and wide
Generally people build BSD packages from source instead of installing binaries. (I think; I've not used BSD.)
OpenBSD user since 2009. I have never compiled a package from source.
But they can break the ABI because they do not want to maintain compatibility with old proprietary binaries. It's a source world, in the sense that any software can and will be recompiled if and when needed. That doesn't mean every user has to compile their own system.
The only time I build from source (ports) on FreeBSD is because the package maintainer picked "crappy"[1] options. On OpenBSD, I can generally find the flavor of port that has the options I want. If I cannot I resort to ports.
1) for my definition of crappy, not compiling PostgreSQL support is the most common for me
Re:2038: Only 21 years away
by madphrodite on Wednesday March 22, 2017 @07:46PM
(#13936189)
I've used both, most bsd users have. Prefer packages but ports is useful for custom builds and desktop systems.
I don't understand, not knowing much about BSD. Is this an LTS/support thing? Can someone explain?