Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 28 Jul 2011 19:19:09 -0700
From:      Jo Rhett <jrhett@netconsonance.com>
To:        freebsd-apache@freebsd.org
Subject:   How to compile apr1 with bdb 1.85 support?
Message-ID:  <91FCB5C7-D791-438E-84A6-C2831B41D42F@netconsonance.com>
In-Reply-To: <BEA8B970-6C8F-4699-B857-910CAE2D60BF@netconsonance.com>
References:  <B11948A9-A085-4D97-B8E8-700D7169E7C7@netconsonance.com> <4E2F3B16.7060204@p6m7g8.com> <FD27D76B-04E5-4D61-98D1-2B76BB02C50C@netconsonance.com> <B4CA9D00-9EDD-4632-8A7F-3E0C45A89088@netconsonance.com> <BEA8B970-6C8F-4699-B857-910CAE2D60BF@netconsonance.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Does anyone know how to compile devel/apr1 with support for Berkeley DB =
1.85 from the OS distribution?

On Jul 27, 2011, at 1:50 AM, Jo Rhett wrote:
> Okay, by compiling apr with BDB support (db48 since that's what I have =
installed) I got that .so file to exist, but apr can't read the file.  =
It would appear that the root of this problem is that I can compile =
apache with db185 support, but there's no way I have found to compile =
apr with support for db185?
>=20
> 54579 initial thread NAMI  "/path/to/passwd.dat"
> 54579 initial thread STRU  struct stat {dev=3D94, ino=3D14790906, =
mode=3D-rw-r----- , nlink=3D1, uid=3D1001, gid=3D80, rdev=3D59123456, =
atime=3D1311756287, stime=3D117346
> 0427, ctime=3D1173460427, birthtime=3D1173460427, size=3D16384, =
blksize=3D16384, blocks=3D32, flags=3D0x0 }
> 54579 initial thread RET   stat 0
> 54579 initial thread CALL  open(0x884b1100,O_RDONLY,<unused>0)
> 54579 initial thread NAMI  "/path/to/passwd.dat"
> 54579 initial thread RET   open 13/0xd
> 54579 initial thread CALL  fcntl(0xd,F_GETFD,0)
> 54579 initial thread RET   fcntl 0
> 54579 initial thread CALL  fcntl(0xd,F_SETFD,FD_CLOEXEC)
> 54579 initial thread RET   fcntl 0
> 54579 initial thread CALL  read(0xd,0xbfbfe484,0x200)
> 54579 initial thread GIO   fd 13 read 512 bytes
> 54579 initial thread RET   read 512/0x200
> 54579 initial thread CALL  write(0x2,0xbfbfda50,0x5b)
> 54579 initial thread GIO   fd 2 wrote 91 bytes
>       "__db_meta_setup: /path/to/passwd.dat: unexpected file type or =
format"
> 54579 initial thread RET   write 91/0x5b
> 54579 initial thread CALL  write(0x2,0x883847f3,0x1)
> 54579 initial thread GIO   fd 2 wrote 1 byte
> 54579 initial thread RET   write 1
> 54579 initial thread CALL  close(0xd)
> 54579 initial thread RET   close 0
> 54579 initial thread CALL  gettimeofday(0xbfbfa7c4,0)
> 54579 initial thread RET   gettimeofday 0
> 54579 initial thread CALL  write(0x6,0xbfbfc81c,0xbe)
> 54579 initial thread GIO   fd 6 wrote 190 bytes
>       "[Wed Jul 27 01:44:49 2011] [error] [client 99.124.207.89] =
(120022)APR does not understand this error code: could not open dbm =
(type DB) auth file: /path/to/passwd.dat
>       "
>=20
> On Jul 27, 2011, at 1:31 AM, Jo Rhett wrote:
>=20
>> More interesting.  I explicitly set AuthDBMType to DB and that =
problem disappeared, but the error remained.  Looking at kdump this =
seems to be the problem:
>>=20
>> 3928 httpd    NAMI  "/usr/local/lib/apr-util-1/apr_dbm_db-1.so"
>>      "[Wed Jul 27 01:06:25 2011] [error] [client 99.124.207.89] =
(20019)DSO load failed: could not open dbm (type DB) auth file: =
/path/to/passwd.dat
>>=20
>> # ls -la /usr/local/lib/apr*
>> -rw-r--r--  1 root  wheel  7164 Jul 26 02:36 /usr/local/lib/apr.exp
>> -rw-r--r--  1 root  wheel  4412 Jul 26 02:36 =
/usr/local/lib/aprutil.exp
>>=20
>> This doesn't seem to be a problem of reading the file so much as =
trying to load a DS0 that doesn't exist?
>>=20
>> I've rebuilt apr1 a few times now, and those files simply aren't =
installed.
>>=20
>> On Jul 27, 2011, at 12:31 AM, Jo Rhett wrote:
>>> On Jul 26, 2011, at 3:09 PM, Philip M. Gollucci wrote:
>>>> run httpd -X
>>>> and then use ktrace -i / kdump
>>>> then grep for NAMI and the name of your file
>>>=20
>>> Okay, well this makes sense at least - it's looking for a .dir file =
which of course doesn't exist.  What I don't understand here is that I =
don't have gdbm or sdbm enabled. In fact, I don't even have them =
compiled on the platform.
>>>=20
>>> # kdump |grep /passwd
>>> 724 httpd    NAMI  "/path/to/passwd.dat.dir"
>>>=20
>>> And more to the point, I explicitly told apache not to use anything =
except BDB 185.  You can see this in the configure line built by the =
port:
>>>=20
>>> $ head -10 /usr/ports/www/apache22/work/httpd-2.2.19/config.log
>>> This file contains any messages produced by compilers while
>>> running configure, to aid debugging if configure makes a mistake.
>>>=20
>>> It was created by configure, which was
>>> generated by GNU Autoconf 2.68.  Invocation command line was
>>>=20
>>> $ ./configure --prefix=3D/usr/local --enable-layout=3DFreeBSD =
--with-perl=3D/usr/local/bin/perl5.14.1 --with-port=3D80 =
--with-expat=3D/usr/local --with-iconv=3D/usr/local --enable-http =
--with-pcre=3D/usr/local --with-apr=3D/usr/local/bin/apr-1-config =
--with-apr-util=3D/usr/local/bin/apu-1-config --disable-authn-file =
--disable-authn-default --disable-authz-host --disable-authz-groupfile =
--disable-authz-user --disable-authz-default --disable-auth-basic =
--disable-charset-lite --disable-include --disable-log-config =
--disable-env --disable-setenvif --disable-mime --disable-status =
--disable-autoindex --disable-asis --disable-cgid --disable-cgi =
--disable-negotiation --disable-dir --disable-imagemap --disable-actions =
--disable-userdir --disable-alias --disable-filter --disable-substitute =
--disable-proxy --disable-proxy-connect --disable-proxy-ftp =
--disable-proxy-http --disable-proxy-ajp --disable-proxy-balancer =
--disable-proxy-scgi --disable-reqtimeout --enable-so =
--enable-mods-shared=3Dauth_basic auth_digest authn_file authn_dbm =
authn_anon authn_default authn_alias authz_host authz_groupfile =
authz_user authz_dbm authz_owner authz_default cache disk_cache =
file_cache dav dav_fs actions alias asis autoindex cern_meta cgi =
charset_lite deflate dir dumpio env expires headers imagemap include =
info log_config logio mime mime_magic negotiation rewrite setenvif =
speling status unique_id userdir usertrack vhost_alias filter version =
reqtimeout ssl --with-dbm=3Ddb185 --with-berkeley-db=3D/usr =
--with-ssl=3D/usr --enable-v4-mapped --with-devrandom --with-mpm=3Dprefork=
 --prefix=3D/usr/local --mandir=3D/usr/local/man =
--infodir=3D/usr/local/info/ --build=3Di386-portbld-freebsd8.2
>>>=20
>>>=20
>>>> On 07/26/11 09:35, Jo Rhett wrote:
>>>>> I have a 6.3 system which I just upgraded to 8.2, and obviously =
recompiled all ports from scratch. I cleared out the ports DB entirely, =
cleared out /usr/local entirely except for etc/config files.  Every =
other port on the system recompiled fine, except for apache.  It works =
for everything except reading authentication files. I'd deeply =
appreciate any assistance you can give to solving this.
>>>>>=20
>>>>> For some reason I can't figure out, BDB authentication using the =
built-in db 1.85 no longer works.
>>>>>=20
>>>>> 	dbmmanage /path/to/file view/adduser/delete/etc works fine
>>>>> 	file /path/to/file
>>>>> 		/path/to/file: Berkeley DB 1.85 (Hash, version 2, native =
byte-order)
>>>>>=20
>>>>> Accessing from the web server always returns a 500 error with the =
following in the error log:
>>>>> 	(2)No such file or directory: could not open dbm (type default) =
auth file: /path/to/passwd.dat
>>>>>=20
>>>>> I've recompiled apr and apache with a variety of different =
options, and nothing works.  apr without any databases doesn't work. apr =
with BDB doesn't work, etc.  My options for apache have remained the =
same:
>>>>> 	APACHE_PORT=3Dwww/apache22
>>>>> 	WITH_DBM=3Dbdb
>>>>> 	WITH_BDB_BASE=3Dyes
>>>>> =09
>>>>> apr1$ make showconfig
>>>>> =3D=3D=3D> The following configuration options are available for =
apr-ipv6-devrandom-db48-1.4.5.1.3.12:
>>>>>  THREADS=3Don "Enable Threads in apr"
>>>>>  IPV6=3Don "Enable IPV6 Support in apr"
>>>>>  BDB=3Doff "Enable Berkley BDB support in apr-util"
>>>>>  GDBM=3Doff "Enable GNU dbm support in apr-util"
>>>>>  LDAP=3Doff "Enable LDAP support in apr-util"
>>>>>  MYSQL=3Doff "Enable MySQL suport in apr-util"
>>>>>  NDBM=3Doff "Enable NDBM support in apr-util"
>>>>>  PGSQL=3Doff "Enable Postgresql suport in apr-util"
>>>>>  SQLITE=3Doff "Enable SQLite3 support in apr-util"
>>>>>  DEVRANDOM=3Don "Use /dev/random or compatible in apr"
>>>>> =3D=3D=3D> Use 'make config' to modify these settings
>>>>>=20
>>>>> apache22$ make showconfig
>>>>> =3D=3D=3D> The following configuration options are available for =
apache-2.2.19:
>>>>>  THREADS=3Doff "Enable threads support in APR"
>>>>>  MYSQL=3Doff "Enable MySQL support for apr-dbd"
>>>>>  PGSQL=3Doff "Enable PostgreSQL support for apr-dbd"
>>>>>  SQLITE=3Doff "Enable SQLite support for apr-dbd"
>>>>>  IPV6=3Don "Enable IPv6 support"
>>>>>  BDB=3Don "Enable BerkeleyDB dbm"
>>>>>  AUTH_BASIC=3Don "Enable mod_auth_basic"
>>>>>  AUTH_DIGEST=3Don "Enable mod_auth_digest"
>>>>>  AUTHN_FILE=3Don "Enable mod_authn_file"
>>>>>  AUTHN_DBD=3Doff "Enable mod_authn_dbd"
>>>>>  AUTHN_DBM=3Don "Enable mod_authn_dbm"
>>>>>  AUTHN_ANON=3Don "Enable mod_authn_anon"
>>>>>  AUTHN_DEFAULT=3Don "Enable mod_authn_default"
>>>>>  AUTHN_ALIAS=3Don "Enable mod_authn_alias"
>>>>>  AUTHZ_HOST=3Don "Enable mod_authz_host"
>>>>>  AUTHZ_GROUPFILE=3Don "Enable mod_authz_groupfile"
>>>>>  AUTHZ_USER=3Don "Enable mod_authz_user"
>>>>>  AUTHZ_DBM=3Don "Enable mod_authz_dbm"
>>>>>  AUTHZ_OWNER=3Don "Enable mod_authz_owner"
>>>>>  AUTHZ_DEFAULT=3Don "Enable mod_authz_default"
>>>>>  CACHE=3Don "Enable mod_cache"
>>>>>  DISK_CACHE=3Don "Enable mod_disk_cache"
>>>>>  FILE_CACHE=3Don "Enable mod_file_cache"
>>>>>  MEM_CACHE=3Doff "Enable mod_mem_cache"
>>>>>  DAV=3Don "Enable mod_dav"
>>>>>  DAV_FS=3Don "Enable mod_dav_fs"
>>>>>  BUCKETEER=3Doff "Enable mod_bucketeer"
>>>>>  CASE_FILTER=3Doff "Enable mod_case_filter"
>>>>>  CASE_FILTER_IN=3Doff "Enable mod_case_filter_in"
>>>>>  EXT_FILTER=3Doff "Enable mod_ext_filter"
>>>>>  LOG_FORENSIC=3Doff "Enable mod_log_forensic"
>>>>>  OPTIONAL_HOOK_EXPORT=3Doff "Enable mod_optional_hook_export"
>>>>>  OPTIONAL_HOOK_IMPORT=3Doff "Enable mod_optional_hook_import"
>>>>>  OPTIONAL_FN_IMPORT=3Doff "Enable mod_optional_fn_import"
>>>>>  OPTIONAL_FN_EXPORT=3Doff "Enable mod_optional_fn_export"
>>>>>  LDAP=3Doff "Enable mod_ldap"
>>>>>  AUTHNZ_LDAP=3Doff "Enable mod_authnz_ldap"
>>>>>  ACTIONS=3Don "Enable mod_actions"
>>>>>  ALIAS=3Don "Enable mod_alias"
>>>>>  ASIS=3Don "Enable mod_asis"
>>>>>  AUTOINDEX=3Don "Enable mod_autoindex"
>>>>>  CERN_META=3Don "Enable mod_cern_meta"
>>>>>  CGI=3Don "Enable mod_cgi"
>>>>>  CHARSET_LITE=3Don "Enable mod_charset_lite"
>>>>>  DBD=3Doff "Enable mod_dbd"
>>>>>  DEFLATE=3Don "Enable mod_deflate"
>>>>>  DIR=3Don "Enable mod_dir"
>>>>>  DUMPIO=3Don "Enable mod_dumpio"
>>>>>  ENV=3Don "Enable mod_env"
>>>>>  EXPIRES=3Don "Enable mod_expires"
>>>>>  HEADERS=3Don "Enable mod_headers"
>>>>>  IMAGEMAP=3Don "Enable mod_imagemap"
>>>>>  INCLUDE=3Don "Enable mod_include"
>>>>>  INFO=3Don "Enable mod_info"
>>>>>  LOG_CONFIG=3Don "Enable mod_log_config"
>>>>>  LOGIO=3Don "Enable mod_logio"
>>>>>  MIME=3Don "Enable mod_mime"
>>>>>  MIME_MAGIC=3Don "Enable mod_mime_magic"
>>>>>  NEGOTIATION=3Don "Enable mod_negotiation"
>>>>>  REWRITE=3Don "Enable mod_rewrite"
>>>>>  SETENVIF=3Don "Enable mod_setenvif"
>>>>>  SPELING=3Don "Enable mod_speling"
>>>>>  STATUS=3Don "Enable mod_status"
>>>>>  UNIQUE_ID=3Don "Enable mod_unique_id"
>>>>>  USERDIR=3Don "Enable mod_userdir"
>>>>>  USERTRACK=3Don "Enable mod_usertrack"
>>>>>  VHOST_ALIAS=3Don "Enable mod_vhost_alias"
>>>>>  FILTER=3Don "Enable mod_filter"
>>>>>  SUBSTITUTE=3Doff "Enable mod_substitute"
>>>>>  VERSION=3Don "Enable mod_version"
>>>>>  PROXY=3Doff "Enable mod_proxy"
>>>>>  PROXY_CONNECT=3Doff "Enable mod_proxy_connect"
>>>>>  PATCH_PROXY_CONNECT=3Doff "Patch proxy_connect SSL support"
>>>>>  PROXY_FTP=3Doff "Enable mod_proxy_ftp"
>>>>>  PROXY_HTTP=3Doff "Enable mod_proxy_http"
>>>>>  PROXY_AJP=3Doff "Enable mod_proxy_ajp"
>>>>>  PROXY_BALANCER=3Doff "Enable mod_proxy_balancer"
>>>>>  PROXY_SCGI=3Doff "Enable mod_proxy_scgi"
>>>>>  SSL=3Don "Enable mod_ssl"
>>>>>  SUEXEC=3Doff "Enable mod_suexec"
>>>>>  SUEXEC_RSRCLIMIT=3Doff "SuEXEC rlimits based on login class"
>>>>>  REQTIMEOUT=3Don "Enable mod_reqtimeout"
>>>>>  CGID=3Doff "Enable mod_cgid"
>>>>> =3D=3D=3D> Use 'make config' to modify these settings
>>>>>=20
>>>>>=20
>>>>> As said above, I appreciate any assistance you can give.
>>>>>=20
>>>>=20
>>>>=20
>>>> --=20
>>>> =
------------------------------------------------------------------------
>>>> 1024D/DB9B8C1C B90B FBC3 A3A1 C71A 8E70  3F8C 75B8 8FFB DB9B 8C1C
>>>> Philip M. Gollucci (pgollucci@p6m7g8.com) c: 703.336.9354
>>>> VP Infrastructure,                Apache Software Foundation
>>>> Committer,                        FreeBSD Foundation
>>>> Consultant,                       P6M7G8 Inc.
>>>> Sr. System Admin,                 Ridecharge Inc.
>>>>=20
>>>> Work like you don't need the money,
>>>> love like you'll never get hurt,
>>>> and dance like nobody's watching.
>>>=20
>>> --=20
>>> Jo Rhett
>>> Net Consonance : consonant endings by net philanthropy, open source =
and other randomness
>>>=20
>>=20
>> --=20
>> Jo Rhett
>> Net Consonance : consonant endings by net philanthropy, open source =
and other randomness
>>=20
>> _______________________________________________
>> freebsd-apache@freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-apache
>> To unsubscribe, send any mail to =
"freebsd-apache-unsubscribe@freebsd.org"
>=20
> --=20
> Jo Rhett
> Net Consonance : consonant endings by net philanthropy, open source =
and other randomness
>=20

--=20
Jo Rhett
Net Consonance : consonant endings by net philanthropy, open source and =
other randomness




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?91FCB5C7-D791-438E-84A6-C2831B41D42F>