It used to be that if you were going to run BSD that meant either compiling from ports or source. Packages were only available for the most common components, but the default was ports and most admins went along with that because you got greater flexibility/opportunities to optimize. Back then source compiles of software like Apache were the norm for even the Solaris boxes I worked on. Same for most perl modules (I had a decade-long war with Math::Pari).