FreeBSD has a Linux compatibility feature that lets you run native Linux binaries. I've never used it so I can't say how good it is, though - all the stuff I use runs fine natively.
The major BSDs have decent package management and sizeable repositories, with the option to build software (and customize compile-time options) using the ports or pkgsrc systems. You can also rebuild and customize the kernel and base system (aka "make world") but that's strictly optional these days.
I seem to remember there was some GNOME stuff that had a hard systemd dependency and wouldn't run on the BSDs. That was a while back though and I don't run GNOME so I don't know whatever happened there or what the status is.