Build Frustrations

Paul Schmehl pauls at utdallas.edu
Mon Nov 19 22:44:47 PST 2007


--On November 19, 2007 11:00:44 PM -0500 "Dan Mahoney, System Admin" 
<danm at prime.gushi.org> wrote:

> On Mon, 19 Nov 2007, Jerry McAllister wrote:
>
>> You can tell ports where to install something.  We used to install
>> all of Apache in its own directory to make it easy to manipulate
>> in a system we were installing in a lot of places.   Check the ports
>> doc and such.
>
> Actually, I just tried this.  This is not what I want.  If I go to cd
> /usr/ports/www/apache22, and do a make PREFIX=/some/other/directory, I
> do NOT get the same thing I'd get building apache from source.  I get
> ALL the apache prerequisites installed under /some/other/dir, as opposed
> to the apache standards places (for example config files which would
> normally be in /usr/local/apache/conf now get installed in
> /some/other/directory/etc (the port installs them in /usr/local/etc).
> As a bonus, dependent packages get added to my package database under
> the same prefix, which shouldn't happen.  (i.e. I want ONLY the
> apache2.2 stuff in a self-contained directory).
>
Silly me.  I had no idea there was a "standard place" for apache to put 
its stuff.  On *some* linux builds, the conf files are in 
/etc/httpd/conf.d/ and the document root in /var/www.  On FreeBSD they're 
in /usr/local/etc/apache{ver.} and /usr/local/www/apache{ver}, 
respectively.  What's the "standard place" I wonder?  I suspect it has a 
lot more to do with the conventions of the particular OS than it does with 
the application.

> And the apache layout is hard coded (the only configure argument to be
> so):
>
> CONFIGURE_ARGS= --prefix=${PREFIX_RELDEST} \
>                  --enable-layout=FreeBSD \
>                  --with-perl=${PERL5} \
>                  --with-port=${WITH_HTTP_PORT} \
>                  --with-expat=${LOCALBASE} \
>                  --with-iconv=${LOCALBASE} \
>                  --enable-http
>
> In short, not at all the same.  Plus, doesn't solve the issue.  I have
> all the necessary binaries I need to build apache, it simply outright
> refuses to build (and also, the APR version in ports is badly broken,

Yet, oddly, I have it installed and it works fine.
 httpd -V
Server version: Apache/2.2.6 (FreeBSD)
Server built:   Oct 21 2007 00:03:07
Server's Module Magic Number: 20051115:5
Server loaded:  APR 1.2.11, APR-Util 1.2.10
Compiled using: APR 1.2.11, APR-Util 1.2.10
Architecture:   32-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_FLOCK_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/usr/local"
 -D SUEXEC_BIN="/usr/local/bin/suexec"
 -D DEFAULT_PIDLOG="/var/run/httpd.pid"
 -D DEFAULT_SCOREBOARD="/var/run/apache_runtime_status"
 -D DEFAULT_LOCKFILE="/var/run/accept.lock"
 -D DEFAULT_ERRORLOG="/var/log/httpd-error.log"
 -D AP_TYPES_CONFIG_FILE="etc/apache22/mime.types"
 -D SERVER_CONFIG_FILE="etc/apache22/httpd.conf"

> nearly a year old, and the APR maintainer can't even commit changes
> without making a PR).
>
And this is a bad thing because?

You *do* know that you can make any changes you want for your system?  You 
can edit the port any way you want or install from source without using 
the port or, oh, whatever you like.  It *is* unix, after all.

> Also, this may seem silly as heck, but it should definitely be POSSIBLE
> to build apache outside of the port (so, again, I feel "use the port" is
> not the right answer...there's a deeper problem here).
>
Not silly at all.  Some people build all their applications that way. 
*But*, you have to know what you're doing.

> I mean, obviously if they've got a standard layout defined in the apache
> tree, the apache people expect the code to build on this OS (otherwise
> if the ports-patches are so necessary, we would just define the layout
> there too)
>
If I understood what you were saying here, I'd respond.  You display all 
the symptoms of a newbie to FreeBSD.  You're used to seeing things in 
certain places, and they're not there, and you're frustrated.

Try asking for help politely instead of insulting the very people who can 
help you and denigrating the OS you're trying to build on.

You catch more flies with honey than vinegar.

Paul Schmehl (pauls at utdallas.edu)
Senior Information Security Analyst
The University of Texas at Dallas
http://www.utdallas.edu/ir/security/



More information about the freebsd-questions mailing list