Opened 13 years ago

Closed 13 years ago

#559 closed defect (wontfix)

Can't build xapian-core on CentOS 6

Reported by: Jonathan Gonzalez V. Owned by: Olly Betts
Priority: normal Milestone:
Component: Build system Version: 1.0.23
Severity: normal Keywords:
Cc: Blocked By:
Blocking: Operating System: Linux

Description

I'm currently trying to build my own rpm package for CentOS 6 and I figure out that it can't be build because of the follow line in the xapian-core.spec in the %build section

autoreconf --force

I checkout the code of 1.2.x and figure out that this line it's commented, so I think it should be commented at 1.0.x too.

I commented the line and the build process for the rpm package worked fine with this line:

rpmbuild -tb xapian-core-1.0.23.tar.gz

Regards

Change History (7)

comment:1 by Jonathan Gonzalez V., 13 years ago

I just tried to compile xapian-bindings and the same problem ocurred and I applied the same solution.

comment:2 by Olly Betts, 13 years ago

Milestone: 1.0.24

Running autoreconf is needed for some RPM-based platforms with Xapian 1.0. These use /usr/lib64 for libraries, and by default libtool thinks this isn't on the default dynamic linker search path, so it sets an rpath on libxapian.so. These platforms have a patched version of libtool which adds /usr/lib64 to the list.

http://fedoraproject.org/wiki/Packaging:Guidelines#Beware_of_Rpath

So removing this line from 1.0 is wrong, though it might work for you if you're on a 32-bit architecture, and it will probably appear to work on 64-bit platforms as the problems the unnecessary rpath causes are fairly obscure.

In Xapian 1.2, we override libtool's logic with a version which looks up the actual path the dynamic linker uses, so there's no longer a reason to re-run autoreconf.

The change in 1.2 is too major to backport for 1.0, and anyway 1.0 is now only receiving critical fixes.

Perhaps you should show us the actual error you get?

comment:3 by Jonathan Gonzalez V., 13 years ago

Hi!

Sorry for the delay but I had lot of work here. Well I forgot to write but yes, I'm currently compiling in a 64-bit machine, and yes, the lib64 path it's been a pain now that I'm trying to migrate from CentOS5.6 x86_64 to CentOS6 x86_64.

Well, I'll paste the error because I think isn't a path problem, take a look:

+ make make all-recursive make[1]: Entering directory `/root/rpmbuild/BUILD/xapian-core-1.0.23' Making all in . make[2]: Entering directory `/root/rpmbuild/BUILD/xapian-core-1.0.23' depbase=echo api/editdistance.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||';\

/bin/sh ./libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I./common -I./include -Wall -W -Wredundant-decls -Wpointer-arith -Wcast-qual -Wcast-align -Wno-long-long -Wformat-security -fno-gnu-keywords -Woverloaded-virtual -Wundef -Wshadow -Wstrict-null-sentinel -Wshadow -Wstrict-overflow=1 -Winit-self -Wlogical-op -Wmissing-declarations -fvisibility=hidden -O2 -g -MT api/editdistance.lo -MD -MP -MF $depbase.Tpo -c -o api/editdistance.lo api/editdistance.cc &&\ mv -f $depbase.Tpo $depbase.Plo

./libtool: line 841: X--tag=CXX: command not found ./libtool: line 874: libtool: ignoring unknown tag : command not found ./libtool: line 841: X--mode=compile: command not found ./libtool: line 1008: * Warning: inferring the mode of operation is deprecated.: command not found ./libtool: line 1009: * Future versions of Libtool will require --mode=MODE be specified.: command not found ./libtool: line 1152: Xg++: command not found ./libtool: line 1152: X-DHAVE_CONFIG_H: command not found ./libtool: line 1152: X-I.: command not found ./libtool: line 1152: X-I./common: No such file or directory ./libtool: line 1152: X-I./include: No such file or directory ./libtool: line 1152: X-Wall: command not found ./libtool: line 1152: X-W: command not found ./libtool: line 1152: X-Wredundant-decls: command not found ./libtool: line 1152: X-Wpointer-arith: command not found ./libtool: line 1152: X-Wcast-qual: command not found ./libtool: line 1152: X-Wcast-align: command not found ./libtool: line 1152: X-Wno-long-long: command not found ./libtool: line 1152: X-Wformat-security: command not found ./libtool: line 1152: X-fno-gnu-keywords: command not found ./libtool: line 1152: X-Woverloaded-virtual: command not found ./libtool: line 1152: X-Wundef: command not found ./libtool: line 1152: X-Wshadow: command not found ./libtool: line 1152: X-Wstrict-null-sentinel: command not found ./libtool: line 1152: X-Wshadow: command not found ./libtool: line 1152: X-Wstrict-overflow=1: command not found ./libtool: line 1152: X-Winit-self: command not found ./libtool: line 1152: X-Wlogical-op: command not found ./libtool: line 1152: X-Wmissing-declarations: command not found ./libtool: line 1152: X-fvisibility=hidden: command not found ./libtool: line 1152: X-O2: command not found ./libtool: line 1152: X-g: command not found ./libtool: line 1152: X-MT: command not found ./libtool: line 1152: Xapi/editdistance.lo: No such file or directory ./libtool: line 1152: X-MD: command not found ./libtool: line 1152: X-MP: command not found ./libtool: line 1152: X-MF: command not found ./libtool: line 1152: Xapi/.deps/editdistance.Tpo: No such file or directory ./libtool: line 1152: X-c: command not found ./libtool: line 1205: Xapi/editdistance.lo: No such file or directory ./libtool: line 1210: libtool: compile: cannot determine name of library object from `': command not found make[2]: * [api/editdistance.lo] Error 1 make[2]: Leaving directory `/root/rpmbuild/BUILD/xapian-core-1.0.23' make[1]: * [all-recursive] Error 1 make[1]: Leaving directory `/root/rpmbuild/BUILD/xapian-core-1.0.23' make: * [all] Error 2 error: Bad exit status from /var/tmp/rpm-tmp.ZkCskM (%build)

If you need more data just ask, if you want I can try to compile it on a CentOS 6 32-bit machine, I may be able to get one here at my work.

Regards!

comment:4 by Olly Betts, 13 years ago

If you're supplying logs or similar, it's better to either attach the file, or put {{{ before the paste and }}} after it, so trac will treat it as preformatted.

This looks like you have ended up doing a partial update of libtool, so you have the macros from one version but the script template from another. As a result, the echo variable isn't set and $echo expands to empty.

What was the output from the autoreconf step? Do you have autoconf, automake, and libtool installed?

comment:5 by Jonathan Gonzalez V., 13 years ago

Olly

sorry for the delay in my answer but I'm a bit sick and resting in bed, I work slow.

The ouput of the 'autoreconf --force' command it's nothing and yes I have autoconf, automake and libtool installed

autoconf: autoconf-2.63-5.1.el6.noarch automake: automake-1.11.1-1.2.el6.noarch libtool: libtool-2.2.6-15.5.el6.x86_64

There's a way to froce the update of libtool in the package?, maybe I can do it manually for test purposes.

Regards

comment:6 by Olly Betts, 13 years ago

I thought autoreconf --force would force the update of libtool, but you could try: autoreconf --force --verbose --install

comment:7 by Olly Betts, 13 years ago

Resolution: wontfix
Status: newclosed

We don't intend to make further Xapian 1.0.x releases now, and this issue doesn't apply to 1.2.x or later, so I don't think it's useful to keep this ticket open, and I'm closing it as "wontfix".

Note: See TracTickets for help on using tickets.