With aiksaurus-1.0.1 installed lyx-1.3.2 (and lyx-1.3.2-r1) fail to compile: bin/sh ../../../libtool --mode=compile g++ -DHAVE_CONFIG_H -I. -I. -I../../../src -I../../../src -I../../../boost -isystem /usr/X11R6/include -march=pentium4 -O2 -pipe -fomit-frame-pointer -fno-exceptions -c -o ControlToc.lo `test -f 'ControlToc.C' || echo './'`ControlToc.C In file included from ControlThesaurus.h:23, from ControlThesaurus.C:17: ../../../src/Thesaurus.h:18:23: Aiksaurus.h: No such file or directory In file included from ControlThesaurus.h:23, from ControlThesaurus.C:17: ../../../src/Thesaurus.h:41: syntax error before `*' token g++ -DHAVE_CONFIG_H -I. -I. -I../../../src -I../../../src -I../../../boost -isystem /usr/X11R6/include -march=pentium4 -O2 -pipe -fomit-frame-pointer -fno-exceptions -c ControlToc.C -MT ControlToc.lo -MD -MP -MF .deps/ControlToc.TPlo make[4]: *** [ControlThesaurus.lo] Error 1 make[4]: *** Waiting for unfinished jobs.... echo timestamp > ControlToc.lo make[4]: Leaving directory `/var/tmp/portage/lyx-1.3.2-r1/work/lyx-1.3.2/src/frontends/controllers' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/var/tmp/portage/lyx-1.3.2-r1/work/lyx-1.3.2/src/frontends' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/var/tmp/portage/lyx-1.3.2-r1/work/lyx-1.3.2/src' make[1]: *** [all] Error 2 make[1]: Leaving directory `/var/tmp/portage/lyx-1.3.2-r1/work/lyx-1.3.2/src' make: *** [all-recursive] Error 1 !!! ERROR: app-office/lyx-1.3.2-r1 failed. !!! Function src_compile, Line 63, Exitcode 2 !!! emake failed This error is occuring because of a change between aiksaurus-0.15 and aiksaurus-1.0.1: aiksaurus-0.15-r1 installs Aiksaurus.h to /usr/include/Aiksaurus.h aiksaurus-1.0.1 installs Aiksaurus.h to /usr/include/Aiksaurus/Aiksaurus.h Reproducible: Always Steps to Reproduce: Portage 2.0.49-r1 (default-x86-1.4, gcc-3.2.3, glibc-2.3.2-r1, 2.4.20-gentoo-r6) ================================================================= System uname: 2.4.20-gentoo-r6 i686 Intel(R) Pentium(R) 4 CPU 2.00GHz ccache version 2.2 [enabled] ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /var/qmail/control /usr/kde/2/share/config /usr/kde/3/share/config /usr/X11R6/lib/X11/xkb /usr/kde/3.1/share/config /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/config" CONFIG_PROTECT_MASK="/etc/afs/C /etc/afs/afsws /etc/gconf /etc/env.d" CXXFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="sandbox autoaddcvs ccache" GENTOO_MIRRORS="http://gentoo.oregonstate.edu http://www.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 oss apm avi crypt cups encode foomaticdb gif gpm jpeg gnome libg++ mad mikmod mmx mpeg ncurses nls pdflib png quicktime spell truetype xml2 xmms xv zlib gtkhtml gdbm berkdb slang readline arts bonobo svga java X sdl tcpd pam libwww ssl perl python esd imlib oggvorbis gtk qt kde motif opengl 3dfx cdr doc dvd sse tcltk tetex -3dnow"
Fortunately the configure script contains options that allow us to specify where lyx can find extra libraries and header files: --with-extra-lib=DIRECTORY, --with-extra-inc=DIRECTORY and --with-extra-prefix[=DIRECTORY] (which is a combination of the other two.) Lyx Bug #383 (http://bugzilla.lyx.org/show_bug.cgi?id=383) tells us that is ok for us to use these for aiksaurus. So a suggested fix is to include the following in the lyx ebuild: if [ -d /usr/include/Aiksaurus ]; then myconf="$myconf --with-extra-inc=/usr/include/Aiksaurus" fi With this inclusion lyx-1.3.2 compiles fine with either of aiksaurus-0.15 or aiksaurus-1.0.1 installed. :)
*** Bug 27650 has been marked as a duplicate of this bug. ***
I can verify this bug on sparc64 platform. Should be merged into lyx-1.3.2-r2 ebuild ASAP as its a blocker.
I tried to run Lyx yesterday and got an error about libAiksaurus, so I unmerged both Lyx and aiksaurus and tried to emerge Lyx but got the same compile error as Brandy.
LyX 1.3.3cvs has a patch to fix compilation, you just need to take it from upstream.
Brandy's suggestion for a fix works great if [ -d /usr/include/Aiksaurus ]; then myconf="$myconf --with-extra-inc=/usr/include/Aiksaurus" fi When can we expect this in the ebuild? Dan
I'll fix this up right now in LyX. kde-guys, is this under your herd, or shall i put it under text-markup ?
added brandy's fix and assigned to the text-markup herd. if that's a problem, by all means change it, and notify me, wont cause any worries. thanks.
The bug fix of brandy would have been fine but the implemented patch broke the unmasked installation of lyx-1.3.2 with aiksaurus-0.15 since the new ebuild for lyx expects the header file to be in /usr/include/Aiksaurus/ but it's located in /usr/include/ so I would suggest to apply the patch of brandy instead or if you really need to check wheather the header file exists add an additional if statement around it.
great catch. fixed in portage, thanks for the heads up.
Hmm... unfortunately, this is not the solution. The problem is the 'die' command. Why die if the directory /usr/include/Aiksaurus does not exist? The patch of Brandy was without the die. Simply remove the 'die' and everything is fine. Since lyx depends of aiksaurus you can be pretty sure that it exists somewhere. The question you have to aware of is where. So you simply have to check that and change myconf variable if necessary as it is done by the patch of Brandy.
yes i see. note to self. do _not_ update cvs when tired. thanks again, good catch.