[MacPorts] #35914: subversion-perlbindings-5.12 configure fails to find Berkeley DB

MacPorts noreply at macports.org
Fri Aug 31 19:04:34 PDT 2012


#35914: subversion-perlbindings-5.12 configure fails to find Berkeley DB
-------------------------------------+--------------------------------------
 Reporter:  mina.macports@…          |       Owner:  dluke@…                
     Type:  defect                   |      Status:  assigned               
 Priority:  Normal                   |   Milestone:                         
Component:  ports                    |     Version:  2.1.2                  
 Keywords:                           |        Port:  subversion-perlbindings
-------------------------------------+--------------------------------------

Comment(by mina.macports@…):

 Replying to [comment:4 dluke@…]:
 > ok, inside the build directory there should be a config.log  which
 should shed some light on why the test for BDB is failing.

 Here's the relevant portion:
 {{{

 configure:17904: checking for availability of Berkeley DB
 configure:17976: gcc -o conftest -g -O2    -I/opt/local/include/db46
 -I/opt/local/include/apr-1 -I/opt/local/include    -DDARWIN
 -DSIGPROCMASK_SETS_THREAD_MA
 SK -no-cpp-precomp   -L/opt/local/lib -L/opt/local/lib/db46 conftest.c
 -L/opt/local/lib -ldb-4.6  >&5
 conftest.c: In function 'main':
 conftest.c:42: error: 'DB_VERSION_MAJOR' undeclared (first use in this
 function)
 conftest.c:42: error: (Each undeclared identifier is reported only once
 conftest.c:42: error: for each function it appears in.)
 conftest.c:43: error: 'DB_VERSION_MINOR' undeclared (first use in this
 function)
 conftest.c:44: error: 'DB_VERSION_PATCH' undeclared (first use in this
 function)
 configure:17976: $? = 1
 configure: program exited with status 1
 configure: failed program was:
 | /* confdefs.h */
 | #define PACKAGE_NAME "subversion"
 | #define PACKAGE_TARNAME "subversion"
 | #define PACKAGE_VERSION "1.7.6"
 | #define PACKAGE_STRING "subversion 1.7.6"
 | #define PACKAGE_BUGREPORT "http://subversion.apache.org/"
 | #define PACKAGE_URL ""
 | #define SVN_NEON_0_26 1
 | #define SVN_NEON_0_27 1
 | #define SVN_NEON_0_28 1
 | #define SVN_HAVE_NEON 1
 | #define STDC_HEADERS 1
 | #define HAVE_SYS_TYPES_H 1
 | #define HAVE_SYS_STAT_H 1
 | #define HAVE_STDLIB_H 1
 | #define HAVE_STRING_H 1
 | #define HAVE_MEMORY_H 1
 | #define HAVE_STRINGS_H 1
 | #define HAVE_INTTYPES_H 1
 | #define HAVE_STDINT_H 1
 | #define HAVE_UNISTD_H 1
 | #define HAVE_SERF_H 1
 | #define SVN_HAVE_SERF 1
 | #define SVN_HAVE_MEMCACHE 1
 | #define SVN_BINDIR "/opt/local/bin"
 | #define SVN_LOCALE_DIR "/opt/local/share/locale"
 | #define HAVE_DLFCN_H 1
 | #define LT_OBJDIR ".libs/"
 | /* end confdefs.h.  */
 |
 | #include <stdlib.h>
 | #define APU_WANT_DB
 | #include <apu_want.h>
 |
 | int main ()
 | {
 |   int major, minor, patch;
 |
 |   db_version (&major, &minor, &patch);
 |
 |   /* Sanity check: ensure that db.h constants actually match the db
 library */
 |   if (major != DB_VERSION_MAJOR
 |       || minor != DB_VERSION_MINOR
 |       || patch != DB_VERSION_PATCH)
 |     exit (1);
 |
 |   /* Run-time check:  ensure the library claims to be the correct
 version. */
 |
 |   if (major < 4)
 |     exit (1);
 |   if (major > 4)
 |     exit (0);
 |
 |   if (minor < 0)
 |     exit (1);
 |   if (minor > 0)
 |     exit (0);
 |
 |   if (patch >= 14)
 |     exit (0);
 |   else
 |     exit (1);
 | }
 |
 configure:17995: result: no
 configure:17999: error: Berkeley DB 4.0.14 or newer wasn't found.
 }}}

 Hmm. Notably absent is an {{{ #include <db.h> }}} I'd expect to see there.

 Perhaps the test intentionally shouldn't load it (the {{{ #define
 APU_WANT_DB }}} {{{ #include <apu_want.h> }}} suspiciously looks like it
 might be a replacement), but its simply not happening - as db.h needs to
 make it there for these defines its failing on to exist.

 On a whim, I took another look at the failing command:
 {{{
 cd
 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports
 .org_release_ports_devel_subversion-perlbindings/subversion-
 perlbindings-5.12/work/subversion-1.7.6" && ./configure
 --prefix=/opt/local --with-berkeley-
 db=:/opt/local/include/db46:/opt/local/lib/db46:db-4.6 --with-
 neon=/opt/local --with-apr=/opt/local/bin/apr-1-config --with-apr-
 util=/opt/local/bin/apu-1-config --without-apxs
 --mandir=\${prefix}/share/man --disable-neon-version-check --with-
 serf=/opt/local --with-sasl=/opt/local
 }}}

 Tweaked it slightly (specifically --with-berkeley-db=db.h:THEREST...), and
 it appears to have worked:
 {{{
 cd
 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports
 .org_release_ports_devel_subversion-perlbindings/subversion-
 perlbindings-5.12/work/subversion-1.7.6" && ./configure
 --prefix=/opt/local --with-berkeley-
 db=db.h:/opt/local/include/db46:/opt/local/lib/db46:db-4.6 --with-
 neon=/opt/local --with-apr=/opt/local/bin/apr-1-config --with-apr-
 util=/opt/local/bin/apu-1-config --without-apxs
 --mandir=\${prefix}/share/man --disable-neon-version-check --with-
 serf=/opt/local --with-sasl=/opt/local
 ...
 ...
 checking for socket in -lsocket... no
 checking for availability of Berkeley DB... yes
 checking whether to look for SASL... yes
 ...
 ...
 }}}

 I'm not sure however why its not there in the first place, or how this can
 actually be fixed in the port/configure script to invoke it this way...

-- 
Ticket URL: <https://trac.macports.org/ticket/35914#comment:5>
MacPorts <http://www.macports.org/>
Ports system for Mac OS


More information about the macports-tickets mailing list