Opened 16 years ago

Closed 15 years ago

#228 closed defect (worksforme)

Trying to build xapian package for dapper fails during fakeroot apt-get source -b xapian-core

Reported by: Bob Owned by: Olly Betts
Priority: normal Milestone:
Component: Build system Version: 1.0.5
Severity: normal Keywords:
Cc: Richard Boulton Blocked By:
Blocking: Operating System: Linux

Description (last modified by Olly Betts)

Building ubuntu dapper or gutsy gives a similar failure for command fakeroot apt-get source -b xapian-core.

g++ -DHAVE_CONFIG_H -I. -I.. -I../common -I../include -I./include

-I../languages -Ilanguages -I../queryparser -Wall -W -Wredundant-decls -Wpointer-arith -Wcast-qual -Wcast-align -Wno-multichar -Wno-long-long -fno-gnu-keywords -Wundef -Wshadow -fvisibility=hidden -O2 -c ../api/editdistance.cc -o api/editdistance.o >/dev/null 2>&1 /bin/sh ./libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I../common -I../include -I./include -I../languages -Ilanguages -I../queryparser

-Wall -W -Wredundant-decls -Wpointer-arith -Wcast-qual -Wcast-align

-Wno-multichar -Wno-long-long -fno-gnu-keywords -Wundef -Wshadow -fvisibility=hidden -O2 -c -o api/error.lo ../api/error.cc

g++ -DHAVE_CONFIG_H -I. -I.. -I../common -I../include -I./include

-I../languages -Ilanguages -I../queryparser -Wall -W -Wredundant-decls -Wpointer-arith -Wcast-qual -Wcast-align -Wno-multichar -Wno-long-long -fno-gnu-keywords -Wundef -Wshadow -fvisibility=hidden -O2 -c ../api/error.cc -fPIC -DPIC -o api/.libs/error.o In file included from ../api/error.cc:25: ../common/safeerrno.h:25:3: error: #error You must #include <config.h> before #include "safeerrno.h" make[3]: * [api/error.lo] Error 1 make[3]: Leaving directory `/home/rhatch/xapian-core-1.0.5/xapian-core-1.0.5/build' make[2]: * [all-recursive] Error 1 make[2]: Leaving directory `/home/rhatch/xapian-core-1.0.5/xapian-core-1.0.5/build' make[1]: * [all] Error 2 make[1]: Leaving directory `/home/rhatch/xapian-core-1.0.5/xapian-core-1.0.5/build' make: * [build-stamp] Error 2 Build command 'cd xapian-core-1.0.5 && dpkg-buildpackage -b -uc' failed. E: Child process failed

Prior to this failure the command below does not seem to work. sudo apt-get build-dep xapian-core Reading package lists... Done Building dependency tree... Done 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Change History (12)

comment:1 by Olly Betts, 16 years ago

Owner: changed from New Bugs to Olly Betts
Priority: highestnormal
Severity: blockernormal

This command works for me on x86-64 gutsy:

fakeroot apt-get source -b xapian-core

Can you post the full output of this command for you (not just the last part)?

comment:2 by Olly Betts, 16 years ago

Status: newassigned

comment:3 by Bob, 16 years ago

fakeroot apt-get source -b xapian-core Reading package lists... Done Building dependency tree... Done Need to get 3467kB of source archives. Get:1 http://www.xapian.org dapper/main xapian-core 1.0.5-1.99dapper (dsc) [441B] Get:2 http://www.xapian.org dapper/main xapian-core 1.0.5-1.99dapper (tar) [3456kB] Get:3 http://www.xapian.org dapper/main xapian-core 1.0.5-1.99dapper (diff) [10.3kB] Fetched 3467kB in 6s (568kB/s) dpkg-source: extracting xapian-core in xapian-core-1.0.5 dpkg-source: unpacking xapian-core_1.0.5.orig.tar.gz dpkg-source: applying ./xapian-core_1.0.5-1.99dapper.diff.gz dpkg-buildpackage: source package is xapian-core dpkg-buildpackage: source version is 1.0.5-1.99dapper dpkg-buildpackage: source changed by Olly Betts <olly@…> dpkg-buildpackage: host architecture i386

debian/rules clean

dh_testdir dh_testroot rm -rf build rm -f config.sub config.guess dh_clean rm -f build-stamp configure-stamp

debian/rules build

dh_testdir # Use the latest config.sub and config.guess from the autotools-dev # package. rm -f config.sub config.guess ln -s /usr/share/misc/config.sub config.sub ln -s /usr/share/misc/config.guess config.guess # Report kernel and compiler version so upstream PLATFORMS file can be # updated from buildd logs. uname -a Linux rhatch-laptop 2.6.15-51-386 #1 PREEMPT Thu Dec 6 20:20:49 UTC 2007 i686 GNU/Linux g++ --version g++ (GCC) 4.0.3 (Ubuntu 4.0.3-1ubuntu5) Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

# Configure in a subdirectory, for neatness. mkdir -p build cd build && ../configure --build i486-linux-gnu CFLAGS="-O2" CXXFLAGS="-O2" --prefix=/usr --sysconfdir=/etc --disable-dependency-tracking checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking how to create a ustar tar archive... gnutar checking build system type... i486-pc-linux-gnu checking host system type... i486-pc-linux-gnu checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... none checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognize dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... none checking how to run the C++ preprocessor... g++ -E checking the maximum length of command line arguments... 98304 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether to enable maintainer-specific portions of Makefiles... no checking whether we are using the GNU C++ compiler... (cached) yes checking whether g++ accepts -g... (cached) yes checking dependency style of g++... (cached) none checking whether g++ is a working C++ compiler... yes checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) none checking for g++ options to enable ANSI C++ mode... none required checking if -lm is required for maths functions... no checking if RTTI is supported... yes checking for gettimeofday... yes checking for ftime... yes checking return type of ftime... int checking for sys/utsname.h... yes checking for gethostname... yes checking for ssize_t... yes checking for pid_t... yes checking for mode_t... yes checking for streambuf... yes checking for perl... /usr/bin/perl checking for fcntl.h... yes checking for limits.h... yes checking for sys/errno.h... yes checking for sys/select.h... yes checking for valgrind... no checking for working memcmp... yes checking for strerror... yes checking for hstrerror... yes checking for working ISO C90 conforming snprintf... snprintf checking for zlib.h... yes checking for library containing zlibVersion... -lz checking for fork... yes checking for library containing socketpair... none required checking for library containing gethostbyname... none required checking for library containing gethostbyaddr... none required checking for type to use for 5th parameter to getsockopt... socklen_t checking for library containing fdatasync... none required checking for fsync... yes checking for pread... yes checking for any prototype needed for pread... none required checking for pwrite... yes checking for any prototype needed for pwrite... none required checking for link... yes checking whether to use STLport... no checking for g++ -Wl,-Bsymbolic-functions... no checking for special C compiler options needed for large files... no checking for _FILE_OFFSET_BITS value needed for large files... 64 configure: creating ./config.status config.status: creating Makefile config.status: creating tests/Makefile config.status: creating docs/Makefile config.status: creating docs/doxygen_api_conf config.status: creating docs/doxygen_full_conf config.status: creating xapian-core.spec config.status: creating tests/runtest config.status: creating tests/runsrv config.status: creating xapian-config config.status: creating makemanpage config.status: creating docs/gen_codestructure_doc config.status: creating generate-exceptions config.status: creating languages/generate-allsnowballheaders config.status: creating config.h config.status: executing depfiles commands # Touch the stamp file, to avoid repeating the configure step. touch configure-stamp dh_testdir /usr/bin/make -C build make[1]: Entering directory `/tmp/xapian-core-1.0.4/xapian-core-1.0.5/build' /usr/bin/make all-recursive make[2]: Entering directory `/tmp/xapian-core-1.0.4/xapian-core-1.0.5/build' Making all in . make[3]: Entering directory `/tmp/xapian-core-1.0.4/xapian-core-1.0.5/build' /bin/sh ./libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I../common -I../include -I./include -I../languages -Ilanguages -I../queryparser

-Wall -W -Wredundant-decls -Wpointer-arith -Wcast-qual -Wcast-align

-Wno-multichar -Wno-long-long -fno-gnu-keywords -Wundef -Wshadow -fvisibility=hidden -O2 -c -o api/editdistance.lo ../api/editdistance.cc mkdir api/.libs

g++ -DHAVE_CONFIG_H -I. -I.. -I../common -I../include -I./include

-I../languages -Ilanguages -I../queryparser -Wall -W -Wredundant-decls -Wpointer-arith -Wcast-qual -Wcast-align -Wno-multichar -Wno-long-long -fno-gnu-keywords -Wundef -Wshadow -fvisibility=hidden -O2 -c ../api/editdistance.cc -fPIC -DPIC -o api/.libs/editdistance.o

g++ -DHAVE_CONFIG_H -I. -I.. -I../common -I../include -I./include

-I../languages -Ilanguages -I../queryparser -Wall -W -Wredundant-decls -Wpointer-arith -Wcast-qual -Wcast-align -Wno-multichar -Wno-long-long -fno-gnu-keywords -Wundef -Wshadow -fvisibility=hidden -O2 -c ../api/editdistance.cc -o api/editdistance.o >/dev/null 2>&1 /bin/sh ./libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I../common -I../include -I./include -I../languages -Ilanguages -I../queryparser

-Wall -W -Wredundant-decls -Wpointer-arith -Wcast-qual -Wcast-align

-Wno-multichar -Wno-long-long -fno-gnu-keywords -Wundef -Wshadow -fvisibility=hidden -O2 -c -o api/error.lo ../api/error.cc

g++ -DHAVE_CONFIG_H -I. -I.. -I../common -I../include -I./include

-I../languages -Ilanguages -I../queryparser -Wall -W -Wredundant-decls -Wpointer-arith -Wcast-qual -Wcast-align -Wno-multichar -Wno-long-long -fno-gnu-keywords -Wundef -Wshadow -fvisibility=hidden -O2 -c ../api/error.cc -fPIC -DPIC -o api/.libs/error.o In file included from ../api/error.cc:25: ../common/safeerrno.h:25:3: error: #error You must #include <config.h> before #include "safeerrno.h" make[3]: * [api/error.lo] Error 1 make[3]: Leaving directory `/tmp/xapian-core-1.0.4/xapian-core-1.0.5/build' make[2]: * [all-recursive] Error 1 make[2]: Leaving directory `/tmp/xapian-core-1.0.4/xapian-core-1.0.5/build' make[1]: * [all] Error 2 make[1]: Leaving directory `/tmp/xapian-core-1.0.4/xapian-core-1.0.5/build' make: * [build-stamp] Error 2 Build command 'cd xapian-core-1.0.5 && dpkg-buildpackage -b -uc' failed. E: Child process failed

comment:4 by Olly Betts, 16 years ago

Cc: richard@… added
Operating System: Linux

Hmm, it looks like configure runs OK.

And it also builds cleanly for me in a dapper i386 chroot with the same command.

Do you have an installed "config.h" from some rogue project - /usr/include/config.h or similar? We should check the build directory first, but perhaps that's not working as intended.

Otherwise, what's in build/config.h? It should have:

#define PACKAGE "xapian-core"

comment:5 by Bob, 16 years ago

/* Name of package */ #define PACKAGE "xapian-core" /home/rhatch/xapian-core-1.0.5/build

comment:6 by Olly Betts, 16 years ago

But do you have an installed config.h anywhere?

Probably this command should reveal if so:

locate include/config.h

Otherwise, I'm a bit baffled since it works for me, and your config.h seems to have the expected define in.

comment:7 by Bob, 16 years ago

I found the config.h in the build root directory, I needed to move config.h to the include directory to make it work.

comment:8 by Olly Betts, 16 years ago

No, config.h is meant to be in the build root directory, not in include. Look at how g++ is being invoked - it has "-I." and the current directory is the build root directory:

g++ -DHAVE_CONFIG_H -I. -I.. -I../common -I../include -I./include -I../languages -Ilanguages -I../queryparser -Wall -W -Wredundant-decls -Wpointer-arith -Wcast-qual -Wcast-align -Wno-multichar -Wno-long-long -fno-gnu-keywords -Wundef -Wshadow -fvisibility=hidden -O2 -c ../api/error.cc -fPIC -DPIC -o api/.libs/error.o

Could you please post the output of:

locate include/config.h

If you don't provide the information I ask for, it's hard to help you...

comment:9 by Bob, 16 years ago

rhatch@rhatch-laptop:~$ locate include/config.h rhatch@rhatch-laptop:~$

comment:10 by Olly Betts, 16 years ago

Hmm, let's see if we can track down what's happening differently then.

Can you post the preprocessed output - to do this run the g++ command with -save-temps appended:

g++ -DHAVE_CONFIG_H -I. -I.. -I../common -I../include -I./include \ -I../languages -Ilanguages -I../queryparser -Wall -W -Wredundant-decls \ -Wpointer-arith -Wcast-qual -Wcast-align -Wno-multichar -Wno-long-long \ -fno-gnu-keywords -Wundef -Wshadow -fvisibility=hidden -O2 -c ../api/error.cc \ -fPIC -DPIC -o api/.libs/error.o -save-temps

(you can just cut and paste that to your terminal as "\" followed by newline continues a line).

That should create the file "error.ii". Attach this to the bug using "Create a New Attachment" (this allows me to download it without word wrapping interfering, so I can easily diff it against the output I get for the same command).

comment:11 by Olly Betts, 16 years ago

Bob: Have you resolved this now? If not, can you attach the output from the commands in comment#9?

comment:13 by Olly Betts, 15 years ago

Description: modified (diff)
Resolution: worksforme
Status: assignedclosed

No feedback from the reporter for a year, and we can't reproduce this ourselves so resolving as WORKSFORME.

Bob: if you are still seeing this and want us to investigate, please attach error.ii as described in comment:11.

Note: See TracTickets for help on using tickets.