Patch attached now.
- Julian
On Mon, 2009-01-05 at 20:33 +0000, Julian Foad wrote:
> > Author: arfrever
> > Date: Fri Jan 2 18:53:25 2009
> > New Revision: 35017
> >
> > Log:
> > Don't ignore optional argument of the '--with-berkeley-db' option.
> >
> > * build/ac-macros/berkeley-db.m4
> > (SVN_LIB_BERKELEY_DB, SVN_LIB_BERKELEY_DB_TRY): Don't ignore optional
> > argument of the '--with-berkeley-db' option.
>
> This change (with r35021, just a tweak to it) breaks detection of BDB on
> my system:
>
> [[[
> $ configure --prefix=/home/julianfoad/usr/local \
> --enable-maintainer-mode --disable-mod-activation --with-ssl \
> --without-serf --without-javahl --with-sqlite=/home/julianfoad
> /home/julianfoad/src/subversion-red/configure: line 21757: -o: command
> not found
> [...]
> You don't seem to have Berkeley DB version 4.0.14 or newer
> ]]]
>
> It was correctly detecting my BDB 4.3 libraries before this change.
>
> See below...
>
>
> (Here I am showing the diff of r35017 and r35021 combined together.)
>
> > Index: build/ac-macros/berkeley-db.m4
> > ===================================================================
> > --- build/ac-macros/berkeley-db.m4 (revision 35016)
> > +++ build/ac-macros/berkeley-db.m4 (working copy)
> > @@ -42,7 +42,7 @@ AC_DEFUN(SVN_LIB_BERKELEY_DB,
> > dnl for headers in HEADER and libraries in LIB.
> >
> > AC_ARG_WITH(berkeley-db, [AS_HELP_STRING(
> > - [--with-berkeley-db=PATH], [
> > + [[--with-berkeley-db=[INCLUDES:LIB_SEARCH_DIRS:LIBS]]], [
> > The Subversion Berkeley DB based filesystem library
> > requires Berkeley DB $db_version or newer. If you
> > specify `--without-berkeley-db', that library will
> > @@ -64,7 +64,7 @@ AC_DEFUN(SVN_LIB_BERKELEY_DB,
> > [
> > if test "$withval" = "no"; then
> > status=skip
> > - else
> > + elif test "$withval" = "yes"; then
> > apu_db_version="`$apu_config --db-version`"
> > if test $? -ne 0; then
> > AC_MSG_ERROR([Can't determine whether apr-util is linked against a
> > @@ -86,11 +86,27 @@ AC_DEFUN(SVN_LIB_BERKELEY_DB,
> > possible to use the specified Berkeley DB: $withval])
> > fi
> >
> > - AC_MSG_WARN([APR-UTIL may or may not be using the specified
> > - Berkeley DB at `$withval'. Using the Berkeley DB
> > - supplied by APR-UTIL.])
> > + status=required
> > + fi
> > + else
> > + if test -n "`echo "$withval" | $GREP -o ":.*:"`"; then
>
> It seems that $GREP is undefined so the command "-o" is attempted.
> Changing "$GREP" to "grep" works for me.
>
> Is "grep -o" portable enough? This option causes grep to only output the
> matching text, not the whole line. It is only used here (and a few lines
> further down - see below) and in the recent KWallet support in
> configure.ac, not anywhere else in our build system.
>
> It looks to me like the "-o" is redundant here anyway. The test is just
> testing whether "$withval" has two colons in it. I can write that more
> simply as:
>
> if echo "$withval" | grep ":.*:" > /dev/null; then
>
>
> > + SVN_DB_INCLUDES=""
> > + for i in [`echo "$withval" | sed -e "s/\([^:]*\):.*/\1/"`]; do
> > + SVN_DB_INCLUDES="$SVN_DB_INCLUDES -I$i"
> > + done
> > + SVN_DB_INCLUDES="${SVN_DB_INCLUDES## }"
> > + for l in [`echo "$withval" | sed -e "s/.*:\([^:]*\):.*/\1/"`]; do
> > + LDFLAGS="$LDFLAGS -L$l"
> > + done
> > + SVN_DB_LIBS=""
> > + for l in [`echo "$withval" | sed -e "s/.*:\([^:]*\)/\1/"`]; do
> > + SVN_DB_LIBS="$SVN_DB_LIBS -l$l"
> > + done
> > + SVN_DB_LIBS="${SVN_DB_LIBS## }"
> >
> > status=required
> > + else
> > + AC_MSG_ERROR([Invalid syntax of argument of --with-berkeley-db option])
> > fi
> > fi
> > ],
> > @@ -125,7 +141,7 @@ AC_DEFUN(SVN_LIB_BERKELEY_DB,
> > AC_MSG_RESULT([no])
> > svn_lib_berkeley_db=no
> > if test "$status" = "required"; then
> > - AC_MSG_ERROR([Berkeley DB $db_version wasn't found.])
> > + AC_MSG_ERROR([Berkeley DB $db_version or newer wasn't found.])
> > fi
> > fi
> > fi
> > @@ -171,10 +187,10 @@ AC_DEFUN(SVN_LIB_BERKELEY_DB_TRY,
> > # Or that it resides in a non-standard location which we would have
> > # to compensate with using something like -R`$apu_config --prefix`/lib.
> > #
> > - svn_apu_bdb_lib=["`$apu_config --libs | sed -e 's/.*\(-ldb[^ ]*\).*/\1/'`"]
> > + SVN_DB_LIBS=["${SVN_DB_LIBS-`$apu_config --libs | $GREP -o -- '-ldb[^[:space:]]*'`}"]
>
> Is the change from the "sed" command to the "$GREP -o" command
> necessary? It looks to me like it is just another way of writing the
> same thing. If so, I think we should change it back to the "sed" form.
>
> > - CPPFLAGS="$SVN_APRUTIL_INCLUDES $CPPFLAGS"
> > - LIBS="`$apu_config --ldflags` $svn_apu_bdb_lib $LIBS"
> > + CPPFLAGS="$SVN_APRUTIL_INCLUDES $SVN_DB_INCLUDES $CPPFLAGS"
> > + LIBS="`$apu_config --ldflags` $SVN_DB_LIBS $LIBS"
> >
> > AC_RUN_IFELSE([AC_LANG_SOURCE([[
> > #include <stdlib.h>
>
> Can someone familiar with AutoConf/M4 cast an eye over this and let me
> know if it looks reasonable? Thanks.
>
> - Julian
>
> ------------------------------------------------------
> http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1005996
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1006019
Received on 2009-01-05 21:55:03 CET