On Fri, 7 Apr 2006, Ludovic Drolez wrote:

> On Thu, Mar 30, 2006 at 09:15:11AM -0500, Matthew Gabeler-Lee wrote:
> > Package: swish-e
> > Version: 2.4.3-3
> > Severity: important
> > 
> > 
> > The XS part of the swish-e perl library is not built correctly on amd64,
> > though it does appear to be correct on i386.  The problem is that
> > /usr/lib/perl5/auto/SWISH/API/API.so is not linked against libswish-e or
> > libxml2, thus producing undefined symbol errors when perl code tries to use
> > it.  E.g.:
> 
> Hello, 
> 
> It seems to be the same problem as Bug#359901.
> I merge them.

Indeed.

Thinking this might be something simple for which I could provide a 
patch, I tried to build from source, which failed thusly:

rm -f blib/arch/auto/SWISH/API/API.so
cc  -shared -L/usr/local/lib API.o  -o blib/arch/auto/SWISH/API/API.so  
\
           -L/usr/lib -lswish-e -lz -lm         \
          
/usr/bin/ld: cannot find -lswish-e
collect2: ld returned 1 exit status
make: *** [blib/arch/auto/SWISH/API/API.so] Error 1

I believe the cause for this was that I had swish-e already installed, 
but not swish-e-dev, so Makefile.PL could find libswish-e, but the 
linker couldn't.  Installing swish-e-dev resulted in an API.so linked 
against libswish-e, but a package can't depend on already being 
installed in order to build from source :)

Digging further, I removed swish-e and swish-e-dev, and started the 
build again from scratch.  This time I noticed in the perl section:

(chmod 755 swish-config;cd perl; env PATH=..:ATH SWISHSKIPTEST=1 
SWISHIGNOREVER=1 /usr/bin/perl Makefile.PL INSTALLDIRS=vendor < 
/dev/null \
                && /usr/bin/make OPTIMIZE="-Wall -g -fPIC -O2 -I../src/" 
CC=gcc LD=gcc LD_RUN_PATH=)
Using swish-config found at [../swish-config]
Checking if your kit is complete...
Looks good
Note (probably harmless): No library found for -lswish-e
Writing Makefile for SWISH::API

That "probably harmless" bit seems to be precisely the source of harm.  
I'm not that familiar with the guts of the debian package build process, 
but I'd guess that one of two things needs to happen:

1) The "make install" part of swish-e needs to happen before the perl 
build

2) The perl build needs to have an -rpath (or LD_RUN_PATH) sent to it to 
find the libraries in the build folder

Hope this helps,
-- 
        -Cheetah
"Reality is that which, when you stop believing in it, doesn't go away".
                -- Philip K. Dick
GPG pubkey fingerprint: A57F B354 FD30 A502 795B 9637 3EF1 3F22 A85E 2AD1


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to