Subject: pkg/31088: perl5 required databases/gdbm
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <pancake@phreaker.net>
List: pkgsrc-bugs
Date: 08/29/2005 19:19:00
>Number:         31088
>Category:       pkg
>Synopsis:       perl5 requires gdbm
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          support
>Submitter-Id:   net
>Arrival-Date:   Mon Aug 29 19:19:00 +0000 2005
>Originator:     pancake@phreaker.net
>Release:        Linux 2.6.9pl2
>Organization:
	
>Environment:
	
	
System: Linux pl2 2.6.9pl2 #10 Mon Jul 4 04:19:21 CEST 2005 i686 GNU/Linux
Architecture: i686
Machine: i686
>Description:
	It's strange, but only one of by two GNU/Linux/PkgSrc boxes was able
	to build perl5, the only different I saw was in the base system:

pancake@pl2:~$ dpkg -la| grep gdbm
ii  libgdbm3       1.8.3-2        GNU dbm database routines (runtime version)
ii  libgdbmg1      1.7.3-28       GNU dbm database routines (runtime version)
pancake@pl2:~$ 
pancake@pl2:~$ ssh bare
pancake@bare's password: 
Last login: Mon Aug 29 01:20:33 2005 from pl2
pancake@bare:~$ dpkg -la| grep gdbm
ii  libgdbm3               1.8.3-2            GNU dbm database routines (runtime version)
pancake@bare:~$ 

The first machine crashes in perl's Configure with:

...
Checking for optional libraries...
What libraries to use? [-lnsl -lgdbm -ldl -lm -lcrypt -lutil -lpthread -lc]  
What optimizer/debugger flag should be used?
[-O2 -march=pentium4m -pthread -I/usr/include]  
Any additional cc flags?
[-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -fno-strict-aliasing -pipe -I/usr/pkg/include]  
Let me guess what the preprocessor flags are...
Any additional ld flags (NOT including libraries)? [ -L/usr/pkg/lib]  
Checking your choice of C compiler and flags for coherency...
I've tried to compile and run the following simple program:

#include <stdio.h>
int main() { printf("Ok\n"); return(0); }

I used the command:

        gcc -o try -O2 -march=pentium4m -pthread -I/usr/include -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -fno-strict-aliasing -pipe -I/usr/pkg/include -L/usr/pkg/lib try.c -lnsl -lgdbm -ldl -lm -lcrypt -lutil -lpthread -lc
         ./try

and I got the following output:

/usr/bin/ld: cannot find -lgdbm
collect2: ld returned 1 exit status
I can't compile the test program.
You have a BIG problem.  Shall I abort Configure [y]  
Ok.  Stopping Configure.
*** Error code 1

Stop.
bmake: stopped in /usr/pkgsrc/lang/perl5
===> 

...

	
>How-To-Repeat:
	IMHO perl must require gdbm.
	
>Fix:
	The solution is as easy as the error message:

Index: Makefile
===================================================================
RCS file: /cvsroot/pkgsrc/lang/perl5/Makefile,v
retrieving revision 1.102
diff -r1.102 Makefile
353a354
> .include "../../databases/gdbm/buildlink3.mk"

	

>Unformatted: