An install conundrum

Wesley Shields wxs at atarininja.org
Thu Jun 7 18:19:56 UTC 2007


On Thu, Jun 07, 2007 at 11:15:17AM -0500, Paul Schmehl wrote:
>  I'm working on an update to security/bro, and I plan to take over 
>  maintainership.  However, I've run into a problem that I don't know how to 
>  solve.
> 
>  By default this program installs everything in /usr/local/bro.  This 
>  includes the docs, the binaries, the libraries, includes, everything.  I can 
>  use configure args to define datadir, bindir, sysconfdir, libdir and 
>  includedir, but that leaves the rest of the programs directories installing 
>  in /usr/local.  The program creates a number of directories, including 
>  archive, logs, policy, reports, scripts, site and var.
> 
>  If I use the configure arg --prefix=${PREFIX}/bro, that solves the problem 
>  of the "extra" dirs and files, but then it changes --prefix, and so the 
>  bindir, etc. is now in the wrong place again.
> 
>  Has anyone run across this type of problem?  If so, how do you solve it?

I looked into this port a few months ago for an acquaintance.  I
eventually lost my work when I rm'ed the wrong jail (that will teach me
to use more descriptive jail names), and never bothered to start it back
up.

I ran into the same problem and ended up patching the various
Makefile.in to define the proper directories.  As a quick example, take
a look at policy/Makefile.in (this is for 1.1d).  You will find:

bropolicydir = ${prefix}/policy

I was patching these things to be ${prefix}/share/bro/policy.  There are
a few other places you need to do similar things.  This way you can
define prefix to be ${PREFIX} and have the binaries be installed in
${PREFIX}/bin, libraries in ${PREFIX}/lib, etc. and still tweak the
other things which want to install into ${PREFIX}/policy,
${PREFIX}/site, etc. to be in more appropriate places (most likely
${PREFIX}/share/bro/policy).

Also, while I was looking into the port I noticed
http://www.bro-ids.org/broccoli/index.html and thought I would make
broccoli an optional thing.  Turns out the configure script for bro
doesn't like --disable-broccoli despite advertising the option.

wxs at rst bro-1.1d > ./configure --disable-broccoli
checking build system type... amd64-unknown-freebsd6.2
checking host system type... amd64-unknown-freebsd6.2
checking target system type... amd64-unknown-freebsd6.2
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... no
checking for mawk... no
checking for nawk... nawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking dependency style of gcc... gcc3
checking for flex... flex
checking for yywrap in -lfl... yes
checking lex output file root... lex.yy
checking whether yytext is a pointer... yes
checking for bison... bison -y
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking for a BSD-compatible install... /usr/bin/install -c
checking whether make sets $(MAKE)... (cached) yes
checking for gzip... gzip
configure: error: unknown enable option: broccoli
wxs at rst bro-1.1d >

Good luck with this port, I know of at least one person who would like
to see it updated.

-- WXS


More information about the freebsd-ports mailing list