berkeley-db.m4

Checkout Tools
  • last updated 5 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Fix a problem with the Unix build that could result in linking to the wrong

Subversion libraries at build time or at run time.

The bug shows up when all of these conditions are met:

* there is a development package of Subversion libraries, that we don't

want to use, installed somewhere (such as /usr);

* the 'serf' package that we are building against is installed under that

same prefix (such as /usr);

* 'pkgconfig' is not being used to find the 'serf' package;

* the libtool in use does not strip out indirect dependencies.

See the email thread "Issues with bindings tests" started by Julian Foad on

2014-05-12, at e.g. <http://svn.haxx.se/dev/archive-2014-05/0066.shtml>.

Thanks to Philip for help in tracking down the cause.

* build/ac-macros/serf.m4

(SVN_SERF_PREFIX_CONFIG): Remove standard paths from LDFLAGS additions,

like we already do for other packages.

* build/ac-macros/berkeley-db.m4

(SVN_LIB_BERKELEY_DB): Same.

  1. … 1 more file in changeset.
* build/ac-macros/berkeley-db.m4: Change --disable-bdb6 to --enable-bdb6

in the docstring, for consistency with every other helpstring in our

configure.

Found by: breser

Rename --enable-banging-head-against-wall to --enable-bdb6. I still like the

former name for this option, however using a clear name will help packagers

and people trying to read packaging scripts, and that's more important than

making a joke.

* build/ac-macros/berkeley-db.m4

configure.ac: Rename --enable-banging-head-against-wall to --enable-bdb6.

  1. … 1 more file in changeset.
configure: Add an opt-in for BDB 6.

Review by: stsp

(He co-authored the warning text, too.)

* build/ac-macros/berkeley-db.m4

(--enable-banging-head-against-wall): New option.

(SVN_LIB_BERKELEY_DB_TRY): Grow new parameter, add a possible return value.

(SVN_LIB_BERKELEY_DB): Add a new failure mode when bdb6 was found but the

opt-in not used.

* configure.ac: Add a detailed warning message for "Found, but not opt-in" case.

  1. … 1 more file in changeset.
Block building with BDB 6.

* build/ac-macros/berkeley-db.m4

(SVN_LIB_BERKELEY_DB_TRY): Block building with BDB 6, with a comment

explaining why.

(SVN_LIB_BERKELEY_DB): Document that only 4.x and 5.x are supported.

(--with-berkeley-db): Ditto. The help string does not evaluate the $,

but that is a preexisting bug that should be fixed separately.

* build/generator/gen_win.py

(GeneratorBase._find_bdb): Add a comment cautioning against enabling

BDB 6.

* configure.ac: Define $db_alt_version and use it in an error message.

  1. … 2 more files in changeset.
* build/ac-macros/berkeley-db.m4

(SVN_LIB_BERKELEY_DB_TRY): Cleanup some formatting.

Deal with APR-Util before 1.3.8 which does not have the --dbm-libs on apu-config.

* build/ac-macros/berkeley-db.m4

(SVN_LIB_BERKELEY_DB_TRY): Fall back to not passing --dbm-libs if apu-config

returns an error to our attempt to use it.

Allow configure to detect BDB on Debian based distros.

Debian modified their apu-config script to not return the BDB

library unless --dbm-libs flag is passed. Their change is wrong

but it is in the wild so we ought to deal with it. Reference to the

bug Debian made their change in reaction to:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=622081

* build/ac-macros/berkeley-db.m4

(SVN_LIB_BERKELEY_DB_TRY): Add --dbm-libs to our detection of SVN_DB_LIBS

* build/ac-macros/berkeley-db.m4

(SVN_LIB_BERKELEY_DB): Adjust an error message to make more sense.

Another follow-up to r1149456: fix m4 escaping.

* build/ac-macros/berkeley-db.m4

(SVN_LIB_BERKELEY_DB_TRY): Restore a lost set of []s.

Fix a thinko in r1149456.

* build/ac-macros/berkeley-db.m4

(SVN_LIB_BERKELEY_DB_TRY): Invert a conditional that r1149456 touched in

a should-have-been-but-wasn't no-op manner.

* build/ac-macros/berkeley-db.m4:

Rename 'status' to 'bdb_status' throughout to avoid warnings. No functional change.

Support Berkeley DB 5. This addresses issue #3760.

Patch by: Bernhard Rosenkraenzer <bero@tigris.org>

* build/ac-macros/berkeley-db.m4

(SVN_LIB_BERKELEY_DB): Support Berkeley DB 5.

Apply ASF license headers to a number of files included under that license

but lacking said header.

Patch by: Niall Pemberton <niallp{_AT_}apache.org>

  1. … 175 more files in changeset.
Fix Issue #3458: Use '$SED' instead of 'sed'.

* configure.ac:

* build/ac-macros/berkeley-db.m4

(SVN_LIB_BERKELEY_DB, SVN_LIB_BERKELEY_DB_TRY):

* build/ac-macros/neon.m4

(SVN_NEON_CONFIG):

* build/ac-macros/svn-macros.m4

(SVN_EXTERNAL_PROJECT):

* build/ac-macros/swig.m4

(SVN_FIND_SWIG): Use '$SED' instead of 'sed'.

  1. … 4 more files in changeset.
Fix Issue 3453: Building Subversion 1.6 requires GNU grep 2.5.

* build/ac-macros/berkeley-db.m4

(SVN_LIB_BERKELEY_DB): Don't use the -o option of grep.

Revert r38218. Buildbots now provide 'config.log' when an error occurs.

  1. … 16 more files in changeset.
Make `configure` sometimes print the content of 'config.log' when an error occurs.

* build/ac-macros/svn-macros.m4

(SVN_MSG_ERROR): New.

* build/ac-macros/apache.m4:

* build/ac-macros/apr.m4:

* build/ac-macros/apr_memcache.m4:

* build/ac-macros/aprutil.m4:

* build/ac-macros/berkeley-db.m4:

* build/ac-macros/ctypesgen.m4:

* build/ac-macros/gssapi.m4:

* build/ac-macros/java.m4:

* build/ac-macros/kwallet.m4:

* build/ac-macros/neon.m4:

* build/ac-macros/sasl.m4:

* build/ac-macros/serf.m4:

* build/ac-macros/sqlite.m4:

* build/ac-macros/swig.m4:

* build/ac-macros/zlib.m4:

* configure.ac: Use SVN_MSG_ERROR() instead of AC_MSG_ERROR().

[Reverted in r38285.]

  1. … 16 more files in changeset.
Fix detection of Berkeley DB when multiple versions of Berkeley DB are installed.

* build/ac-macros/berkeley-db.m4

(SVN_LIB_BERKELEY_DB_TRY): Fix the order of includes in CPPFLAGS variable.

Fix support for primitive greps.

* build/ac-macros/berkeley-db.m4

(SVN_LIB_BERKELEY_DB_TRY): Don't use the '-o' option of grep.

Fix typo in --help output of configure,

for new syntax of --with-berkeley-db arg.

* configure

(help text): Show proper syntax for omitting the optional arg.

Approved by: dlr

Follow-up to r35665:

Don't use very useful features supported only by GNU sed.

* build/ac-macros/berkeley-db.m4

(SVN_LIB_BERKELEY_DB_TRY): Don't use '\n' in the replacement argument

of the 's' command of sed.

* configure.ac: Don't pass the '-i' option to sed.

Found by: hwright

stsp

  1. … 1 more file in changeset.
Follow-up to r35017:

Allow to specify Berkeley DB header.

(It allows to build libsvn_fs_base when APR-Util isn't built with support for Berkeley DB.)

* build/ac-macros/berkeley-db.m4

(SVN_LIB_BERKELEY_DB, SVN_LIB_BERKELEY_DB_TRY): Allow to specify Berkeley DB

header in argument of the '--with-berkeley-db' option. Add conditional

inclusion of Berkeley DB header to 'subversion/svn_private_config.h'.

* configure.ac: Substitute '@SVN_DB_HEADER@' with appropriate value

in 'subversion/svn_private_config.h'.

* subversion/svn_private_config.hw: Include Berkeley DB header when

SVN_WANT_BDB is defined.

* subversion/libsvn_fs_base/bdb/bdb_compat.h:

* subversion/libsvn_fs_base/bdb/bdb-err.c:

* subversion/libsvn_fs_base/bdb/changes-table.h:

* subversion/libsvn_fs_base/bdb/dbt.c:

* subversion/libsvn_fs_base/bdb/dbt.h:

* subversion/libsvn_fs_base/bdb/env.h:

* subversion/libsvn_fs_base/bdb/nodes-table.h:

* subversion/libsvn_fs_base/bdb/reps-table.h:

* subversion/libsvn_fs_base/bdb/rev-table.h:

* subversion/libsvn_fs_base/bdb/strings-table.h:

* subversion/libsvn_fs_base/bdb/uuids-table.h:

* subversion/libsvn_fs_base/fs.c:

* subversion/libsvn_fs_base/fs.h:

* subversion/libsvn_fs_base/node-rev.c:

* subversion/libsvn_fs_base/node-rev.h:

* subversion/libsvn_fs_base/reps-strings.c:

* subversion/libsvn_fs_base/reps-strings.h:

* subversion/libsvn_fs_base/revs-txns.h:

* subversion/libsvn_fs_base/trail.c:

* subversion/libsvn_fs_base/trail.h:

* subversion/libsvn_fs_base/util/fs_skels.h: Define SVN_WANT_BDB and

include "svn_private_config.h" instead of defining APU_WANT_DB and

including <apu_want.h>.

  1. … 23 more files in changeset.
Fix detection of Berkeley DB. A follow-up to r35017 and r35021.

* build/ac-macros/berkeley-db.m4

(SVN_LIB_BERKELEY_DB, SVN_LIB_BERKELEY_DB_TRY): Avoid "$GREP" as it was not

defined in autoconf versions before 2.60. Use "$EGREP" which was.

Follow-up to r35017:

* build/ac-macros/berkeley-db.m4

(SVN_LIB_BERKELEY_DB): Fix a typo.

(SVN_LIB_BERKELEY_DB_TRY): Improve check for SVN_DB_LIBS.

Don't ignore optional argument of the '--with-berkeley-db' option.

This change allows to build support for Berkeley DB repositories when using

APR-Util 1.4. When APR supports DSO and APR-Util is configured without

'--disable-util-dso', then apr-util-1/apr_dbm_db-1.so instead of libaprutil-1.so

is linked against libdb-*.so. libaprutil-1.so dynamically loads apr_dbm_db-1.so

when needed. $(apu-1-config --libs) doesn't contain '-ldb-*'.

* 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. Fix the extraction of the

BDB library option ('-ldb...') from the '$apu_config' command: it worked

incorrectly when `$apu_config --libs` doesn't contain '-ldb[^[:space:]]*'.

* configure.ac

(SVN_DB_INCLUDES, SVN_DB_LIBS): Mark for substitution.

* Makefile.in

(SVN_DB_LIBS): Set to @SVN_DB_LIBS@.

(INCLUDES): Add @SVN_DB_INCLUDES@.

  1. … 2 more files in changeset.
Introduce AS_HELP_STRING use where it was missing.

* build/ac-macros/apache.m4

* build/ac-macros/berkeley-db.m4

* build/ac-macros/sasl.m4

  1. … 2 more files in changeset.
* build/ac-macros/berkeley-db.m4:

AC_TRY_RUN -> AC_RUN_IFELSE and AC_LANG_SOURCE.

* build/ac-macros/svn-macros.m4:

AC_TRY_COMPILE -> AC_COMPILE_IFELSE and AC_LANG_PROGRAM.

  1. … 1 more file in changeset.
Fix bugs in Berkeley DB test that caused detection to fail when using

"-Wall -Werror".

* build/ac-macros/berkeley-db.m4 (SVN_LIB_BERKELEY_DB_TRY):

In the AC_TRY_RUN call, include <stdlib.h>, not <stdio.h>.

Specify a return type for main.

Buildsystem: M4 changequote is nasty, and the autoconf manual reviles it.

Stop using it. Simple quoting does the job just as well.

* configure.in:

* build/ac-macros/berkeley-db.m4:

* build/ac-macros/svn-macros.m4:

* build/ac-macros/neon.m4:

Use [quotes], not changequote().

  1. … 3 more files in changeset.