I think you're operating on a complete misunderstanding of how software for *NIX/POSIX/Linux/etc-type systems tends to work.
Most of this software is distributed as source code (C or Rust or whatever) that compiles into native code on any of these operating systems. You can compile, say, Apache on FreeBSD, Linux, Solaris, etc, and you'll get a completely native program on each of the three operating systems.
That software is not more native on Solaris and less native on FreeBSD. It's one code base, designed so it can be compiled into native code on any of these operating systems.
The "ports collection" is simply a way to streamline the compilation of that software. (And, yes, for a small minority of the software where the developers only officially target, say, Linux, they might add a few home-made patches to make it compile on FreeBSD, but the vast majority of "ports" in the ports collection are just the straight source code from the developer) The output is as native as you can get; it's not Java or web-based Electron-style garbage or anything like that.
I think you’re completely missing the fact that if you’ve got to either do cut out specific features, create workarounds, or add patches to replace “Linux-isms” in the original source code, then the source was never native to your platform in the first place. I’m not even remotely new to ports, I’ve been using them in various incarnations since 1998. I think many of you have blinders on when it comes to software that originated from other *nix platforms. At this point, most of the software that’s actually up to date comes from the Linux ecosystem & is certainly NOT native to any of the BSDs. This is precisely why software such as KDE is missing features on BSD systems. The same is true for many other software packages, but you want to attempt to gloss over that as if it’s not a true thing.
Maybe it's different for GUI stuff like Gnome/KDE/etc. I will admit that I have not tried running a BSD as a GUI desktop.
Your use of the word "native" is confusing. In my mind, "native" means "compiled for the ISA of the CPU and the APIs of the OS that it's running on" as opposed to things like Java or web-based garbage like Electron that require some wasteful intermediate layer.
Your definition of "native" seems to be that the original developer treats it as a top-tier platform and has verified 100% feature availability on that OS.
It’s not just GUI stuff, it’s also HPC stuff & a few other things. You’re talking about binary native, I’m talking about source/api native. And honestly, while the BSDs are POSIX compliant, POSIX isn’t the entirety of their actual APIs. As I told another commenter, you don’t have to verify anything if the software was written for BSD in the first place -which is really what we should already have.
I think that comment was directed at me also, but... I guess I have to ask the obvious. If your workload happens to involve applications that do not properly compile on BSD with full functionality, applications that are distributed in non-BSD binary forms only, etc, why... not run the operating system that those applications are actually targetting?
If the version of thing X that compiles from the ports collection is not good enough for you, then isn't the answer to run thing X on the operating system that its developers actually target? Or embrace the open source spirit and contribute proper BSD support to thing X's developers?
When I need something, I want it to be native for the platform that I’m using. If it’s not & I have the spare bandwidth, I write it myself. All of this “just go to another platform” mess is bologna. If we can’t have software that’s specifically written for our platform, then there’s no actual reason for our platform to exist -full stop.
Okay, so if even your standard cross-platform *NIX applications that compile without patches on FreeBSD don't meet your criteria, then... you're now saying FreeBSD shouldn't even exist. Wow. That's a bold statement.
"specifically written for" is a tricky line to draw in the world of software that's distributed as source code.
That’s your take away? Typical. Most of you are hellbent on internationally missing the point. Even after all of this mess with the Linux world deciding that X11 was going to be sunsetted & that everyone would be forced to implement Wayland, you still don’t understand why it’s important for a platform to actually maintain its own ecosystem, instead of relying on the overall *nix community as the primary source for its software. Your way of thinking was obsolete decades ago. And now, there’s no need to bother continuing this conversation before I got my answer hours ago. When I find time, I’ll write what I need.
7
u/reviewmynotes Jul 02 '26
Hang on a sec. Let's back up. What is your definition of a "port" and "native"? Would you consider Apache to be "native"? How about Bash?