Rafał Jaros | 22 Jun 2012 10:56
Picon
Gravatar

Problem with running xapian-bindings (php) on Fedora 16 and 17

Hi.
I have problem with running xapian php plugin on Fedora 17 64 bit. Earlier
I had problem with Fedora 16 64 bit. After installing from yum repo or
compiling from source I was getting error : PHP Warning:  PHP Startup:
Unable to load dynamic library '/usr/lib64/php/modules/xapian.so' -
/usr/lib64/php/modules/xapian.so: undefined symbol: zend_error_noreturn in
Unknown on line 0

On Fedora 16 I had php v.5.3.13, and after long time of struggling with
xapian I succeeded with compiling version of xapian 1.2.5 and everything
was working fine.  Since new version of Fedora is out a wanted to upgrade
all my servers to new Fedora 17(php 5.4.3).

After upgrading test server I discovered that xapian(php plugin) doesnt
work. After that i remove compiled version and installed from yum
php-xapian-1.2.9-1.fc17.x86_64. But this version doesnt work and give me
the error PHP Warning:  PHP Startup: Unable to load dynamic library
'/usr/lib64/php/modules/xapian.so' - /usr/lib64/php/modules/xapian.so:
undefined symbol: zend_error_noreturn in Unknown on line 0.

So I downloaded the newest source and compile xapian 1.2.10 and get the
same results like with yum package.

Compiling version that earlier was working fine with Fedora 16 (xapian
1.2.5) was not succesful and now I dont know what to do.

So is there some way, fix, patch that will help me run xapian php plugin on
upgraded to Fedora 17 servers? Why package that is in default Fedora
repository doesn't work? (I use only default Fedora repositories).

(Continue reading)

Olly Betts | 22 Jun 2012 13:14
Favicon
Gravatar

Re: Problem with running xapian-bindings (php) on Fedora 16 and 17

On Fri, Jun 22, 2012 at 10:56:31AM +0200, Rafa? Jaros wrote:
> So is there some way, fix, patch that will help me run xapian php plugin on
> upgraded to Fedora 17 servers?

It's a bug in PHP, or perhaps the compiler toolchain -
zend_error_noreturn() is prototyped with attribute noreturn, but then
symbol aliased to zend_error(), but this doesn't actually work properly
in some cases for some reason.

You can work around this when you build xapian-bindings - just run make
like so:

make CPPFLAGS=-DSWIG_ZEND_ERROR_NORETURN=zend_error

You'll probably get a few warnings about "no return statement in
function returning non-void", or something like that, but you can just
ignore those.

> Why package that is in default Fedora
> repository doesn't work? (I use only default Fedora repositories).

Hmm, does Fedora ship binary packages of Xapian's PHP bindings?  I
thought it was Fedora who originally raised the issue that the GPL vs
PHP licence conflict meant that you can't ship binary packages.

Cheers,
    Olly

Gmane