[Zope] gvib InterBase DA, undefined symbol crypt

David Trudgett dkt@registriesltd.com.au
Thu, 20 Jul 2000 20:11:57 -1000


At 2000-07-21 00:40 -0400, Jeff Hoffman <jeff.hoffman@goingv.com> wrote:

>On Thu, 20 Jul 2000, David Trudgett wrote:
>
> > Hi all,
> >
> > After having successfully installed the gvib InterBase DA on a test 
> machine
> > running Red Hat Linux 6.1, I'm not having the same luck on the production
> > box running RH 6.0. Here's what happens:
> >
> > $ python
> >  >>> import gvib
> > Traceback (innermost last):
> >    File "<stdin>", line 1, in ?
> >    File "/usr/local/Zope-2.1.6/lib/python/Products/gvibDA/gvib/gvib.py",
> > line 46, in ?
> >      import gvibBase
> > ImportError: /usr/lib/libgds.so: undefined symbol: crypt
>
>I'm perplexed. The only time I've run into this problem was when I forgot
>to link with libcrypt. Deja didn't turn up anything useful, either.
>
>I hate to point out the obvious, but, by default the Linux section in
>Setup.in reads:
>
>   #
>   # Use this on Linux.
>   #
>   #gvibBase gvibBase.c -D$(GVDEF) -I$(PYDIR) -L$(IBLIB)  -lgds -lcrypt
>
>Note the comment. You need to comment the Solaris line, and uncomment the
>Linux line. In reality, the link with libcrypt is the only thing
>differentiating the two.
>
>Unfortunately, the compile will still succeed without -lcrypt being
>specified. You won't see the problem until you try to import the module,
>as seen above.
>
> > so is there anyone here who can suggest how I might fix this? (By the way,
> > the compile went through without a problem, and there was a -lcrypt on the
> > appropriate Setup.in line).
>
>One other thought. The first time you run:
>
>   make -f Makefile.pre.in boot
>
>a Setup file is created. If you then change Setup.in, you need to delete
>Setup and re-execute the above line. Otherwise, the changes won't be
>reflected.

Jeff hit the nail on the head with that one. I've replied to him personally 
and thanked him. What I had done was inadvertently run the make -f before I 
had edited the Setup.in file. I then edited the file as I should have and 
re-ran make -f without realising I had to delete the file called "Setup". 
Ignorance is a curse. Anyway, this little tip will no doubt help someone 
else in the future.

David Trudgett