Mel_Flynn said:
I think in this thread compile options are used for 2 distinct things:
- Optimizations, that make software arbitrarily run faster
- Options to packages, removing or adding features
The latter, is the most used reason to use ports or compile your own packages.
I trust that
you use ports for the latter reason, but I have the impression that many people do so indiscriminately, not in order to customize the application, even when an equivalent package that will lead to an
identical installation exists. They seem to think that installing from a package is inferior. I think your reasons for installing from ports is legitimate when the need arises, but there were frequent mentions in this thread of ports being preferable because they are allegedly more up-to-date. But that ain't always so: not everything in ports is the latest version of a particular piece of software.
I don't care to be on the bleeding edge, even though it may be more up-to-date. Up-to-date does not necessarily mean better, unless security issues or critical bugs exist that cannot wait until a package -- or port -- is available. Then I will go to the source and compile the application myself, whether or not a FreeBSD port or package exists.
(When I go to
http://www.freebsd.org/ports to search for the odd application, I always grab the package if one exists. It is my understanding that using
pkg_add to install that package is identical to running
make && make install from an up-to-date ports tree. If so, how can installing from the identical port used to create the corresponding package be preferable in the absence of customization? It seems like wasted time to me.)
I now run RELEASE, recompiling the kernel only in response to security advisories. As a user, my most frequently used applications are plain-vanilla Firefox, Thunderbird, and OpenOffice.org. My impression of these applications is that they are stable, mature, and nontrivial projects. I assume that the default package install options are time-tested to be the "best" for the overwhelming majority of users on a platform-by-platform basis.
My experience with installing nontrivial applications from ports is that doing so at the very least takes significantly more time than installing from packages, and often causes more problems than I want to be bothered with. About the worst experiences involved installing ports that stomp on shared libraries -- by changing their versions, deleting them, or some other alchemy -- causing a cascade of failures in applications that were working just fine before
make install.
When installing with packages, even when dependencies need to be satisfied, I can generally fetch the dependency package, install it and be on my merry way.
Let's not forget why compiling third-party applications became so commonplace: *nix implementations differed in so many respects -- manufacturer, machine, compiler, word size, peripherals, etc. -- that it was impractical to ship binaries even when the user and manufacturer would have preferred to do so.
As far as configuration options are concerned, shouldn't a well designed application provide utilities, configuration files, etc.? Consider FreeBSD itself: we use /boot/loader.conf, /etc/sysctl.conf, /etc/rc.conf, and so on to configure the system. We also use
sysctl to customize a running system.
As a desktop user I value stability and my time above all. Imagine what my attitude is about infrastructure servers!