www-apache-bugdb mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Lack Mr G M <gml4...@ggr.co.uk>
Subject Re: pending/3259: AuthDBMUserFile - Apache complains 'File not found'
Date Fri, 23 Oct 1998 14:40:00 GMT
The following reply was made to PR pending/3259; it has been noted by GNATS.

From: Lack Mr G M <gml4410@ggr.co.uk>
To: marc@apache.org
Cc: apache-bugdb@apache.org, gnats-admin@hyperreal.org, apbugs@Apache.Org,
Subject: Re: pending/3259: AuthDBMUserFile - Apache complains 'File not found'
Date: Fri, 23 Oct 1998 15:38:36 +0100

 This is a multi-part message in MIME format.
 Content-Type: text/plain; charset=us-ascii
 Content-Transfer-Encoding: 7bit
    Ok, this was *originally* PR 2809.  I expct that my attempt to
 comemnt on a report that wasn't mine resulted in a new call (3259).
    Anwyay, I have tracked down the problem (at least, I;ve tracked down
 what was *my* problem).
    When I build perl, I include the GDBM_FIle extension.  So the perl
 config end ups including "-lgdbm" in its list of libraries to load.  The
 mod_perl config picks this up and uses it for *its* load.
    However, the gdbm libraries include an ndbm interface - the calls are
 dbm_open() etc., but the underlyign implementation is a gdbm file.
    Consequently, the mod_perl linking ends up using gdbm for AuthDbm
 files (and yess, the gdbm implementation does open a *.pag file
    So, the mod_pelr build needs to get the lgdbm out of the way.  But it
 can't, as the loading of libperl.a needs it....
    So, what I did was to run a little script (appended) from within the
 apache_1.3.3 directory thus:
    ./preempt-gdbm.pl `find . -name Makefile -exec fgrep -l lgdbm {} \;`
 to change all "-lgdm" in Makefile to "-lc -lgdbm".  At least it
 works.....   There might be a neater way to do this within the
 mod_perl/apapche config - I don't know.
    My personal feeling is that this is a bug in gdbm, for not giving you
 the option to not have the ndbm entrypoints in your library.
 Content-Type: application/x-perl;
 Content-Transfer-Encoding: 7bit
 Content-Disposition: inline;
 #!/usr/central/bin/perl -swi.bak
 use vars qw( $v *ARGVOUT );
 use File::Copy;
 # We need to change all instances of '-lgdbm' to '-lc -lgdbm'
 # The original files are kept as .bak is there are changes.
 # If there are no changes the original is moved back into place.
 $changed = 0;
 while (<>) {
    if (s/-lgdbm/-lc -lgdbm/g) {
       $changed = 1;
    if (eof) {
 # Close handles to avoid warnings...
       close ARGV;
       close ARGVOUT;
       move "$ARGV.bak", $ARGV if (not $changed);
       print STDERR "$ARGV done\n" if (defined $v);
       $changed = 0;

View raw message