Mike, abiword might benefit from the eclass, looking at its ebuild
i dont know what this bug report is actually about (im an abiword contributor not a gentoo user) but anyway ... direct feedback from people actually using the Perl enabled Abiword builds would be appreciated if you write any scripts for abiword please tell the developers about them as they would love to be able to include example scripts. Report stuff in Abiwords bugzilla http://bugzilla.abisource.com on the developer mailing list (the user list is not really aimed at people who compile their own)
Alan, The bug report is more an enhancement request to gentoo that just snowballed with perl 5.8. There are two parts to it - one, to clean up our intallation of abiword, in particular (at least in my case) the perl-module/scripting portion. With perl 5.8, however, we are running into problems with the scripting portion working - failures to locate /xsubpp (it appears to be ignoring the $XSUBPP_DIR var). I am currently looking to see if it is our build of perl 5.8 or abiword's scripting that is at fault (I tend to believe it is on our end). Mike
Alan, I will be posting the below shortly. I worked through some issues, I'm afraid that they are abiword specific in this case. In the src/bindings/perl there are problems with the Makefile generated. Here are the steps I undertook, and the output I recieved along the way. First, I needed to edit line 195 of the resulting Makefile - took out the spaces around the definition of the perl lib directory, which allowed make to see the directory in question (otherwise it was interpreting the first space as / - this was in both gcc 2.95 and 3.2). Second, on line 197, I added the flag -noprotoarg, which allowed perl 5.8 to be much happier with the prototyping syntax passed xsubpp. At this point, here is what I see in a make - f Makefile. asimov perl # make -f Makefile g++ -c -I../../af/ev/xp -I../../af/xap/xp -I../../af/util/xp -I../../af/util/unix -I../../../../expat/lib -I../../text/fmt/xp -I../../text/ptbl/xp -I../../af/gr/xp -I../../wp/impexp/xp -I../../wp/ap/xp -DPERL5 -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -mcpu=i686 -O3 -pipe -DVERSION=\"0.01\" -DXS_VERSION=\"0.01\" -fpic "-I/usr/lib/perl5/5.8.0/i686-linux-thread-multi/CORE" AbiWord.c In file included from ../../af/util/xp/ut_assert.h:127, from ../../af/util/xp/ut_vector.h:24, from ../../af/xap/xp/xap_App.h:25, from AbiWord.xs:6: /usr/include/assert.h:90: warning: `assert' redefined /usr/lib/perl5/5.8.0/i686-linux-thread-multi/CORE/perl.h:2631: warning: this is the location of the previous definition In file included from AbiWord.xs:8: ../../af/xap/xp/xad_Document.h:36: macro `ref' used with just one arg In file included from ../../af/util/xp/ut_Script.h:25, from ../../af/util/xp/ut_PerlBindings.h:6, from AbiWord.xs:14: ../../af/util/xp/ut_AbiObject.h:41: macro `ref' used without args In file included from AbiWord.xs:8: ../../af/xap/xp/xad_Document.h:36: parse error before `,' ../../af/xap/xp/xad_Document.h:36: variable or field `Perl_ref' declared void ../../af/xap/xp/xad_Document.h:36: ANSI C++ forbids initialization of member `Perl_ref' ../../af/xap/xp/xad_Document.h:36: making `Perl_ref' static ../../af/xap/xp/xad_Document.h:36: ANSI C++ forbids in-class initialization of non-const static member `Perl_ref' ../../af/xap/xp/xad_Document.h:36: confused by earlier errors, bailing out cpp0: output pipe has been closed make: *** [AbiWord.o] Error 1 For what it's worth, I went ahead and edited ../../af/xap/xp/xad_Document.h line 36 and ../../af/util/xp/ut_AbiObject.h lines 41,42, and simply commented out the redeclarations (I am *NOT* a c guy, this was a poor hack to see if I could get further). After that, I got the below asimov perl # make -f Makefile g++ -c -I../../af/ev/xp -I../../af/xap/xp -I../../af/util/xp -I../../af/util/unix -I../../../../expat/lib -I../../text/fmt/xp -I../../text/ptbl/xp -I../../af/gr/xp -I../../wp/impexp/xp -I../../wp/ap/xp -DPERL5 -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -mcpu=i686 -O3 -pipe -DVERSION=\"0.01\" -DXS_VERSION=\"0.01\" -fpic "-I/usr/lib/perl5/5.8.0/i686-linux-thread-multi/CORE" AbiWord.c In file included from ../../af/util/xp/ut_assert.h:127, from ../../af/util/xp/ut_vector.h:24, from ../../af/xap/xp/xap_App.h:25, from AbiWord.xs:6: /usr/include/assert.h:90: warning: `assert' redefined /usr/lib/perl5/5.8.0/i686-linux-thread-multi/CORE/perl.h:2631: warning: this is the location of the previous definition In file included from ../../af/util/xp/ut_PerlBindings.h:6, from AbiWord.xs:14: ../../af/util/xp/ut_Script.h:119: warning: `class UT_ScriptLibrary' only defines private constructors and has no friends Running Mkbootstrap for AbiWord () chmod 644 AbiWord.bs rm -f blib/arch/auto/AbiWord/AbiWord.so LD_RUN_PATH="" g++ -shared -L/usr/local/lib AbiWord.o -o blib/arch/auto/AbiWord/AbiWord.so chmod 755 blib/arch/auto/AbiWord/AbiWord.so cp AbiWord.bs blib/arch/auto/AbiWord/AbiWord.bs chmod 644 blib/arch/auto/AbiWord/AbiWord.bs As you can see, it still had a few warnings but it *appears* to have compiled correctly (no expert though, and I'm afraid I ssh into this box most of the time so actually running abiword to find out isn't an option right now). Thoughts? I will be posting the above to abiword's bug tracker as well in case it strikes any cords, but wanted to pass it on here first in case anyone gets anxious.
I should point out that i am more of a cheerleader than coder, which is why i refer to myself in vague terms such as a contributor or stakeholder of Abiword. the abisource.com server seems to be down at the moment, but the developers should be on irc.gnome.org #debian (weekdays are a good time) and they are usually very helpful in sorting out build problmes. if Frank is there he does a lot of the work on the makefiles (goes by the nick fjf or iQuill or something else with an 'i' in front of it) but i am sure the others will do their best to help if he is not around. if the abiword sever is/was working again then i would recommend filing a bugreport in http://bugzilla.abisource.com to reference this bug report and include any patches you have there. (oh wait, you already said you were going to do that) do you have an Xserver on the machine you are ssh 'ing in from? ssh -X username@machine and then run the app remotely? dunno just a thought. i assume you have run make install there is font messing that needs to be setup and that gets handled by 'make install' i think it is documented somewhere. sorry i could not be more help, gotta go.
This will be resolved in the next few days with the next patch release of abiword. Spoke with the devs today, showed them the below output, and dom patched it into CVS. Should be in stable shortly.
In file included from /usr/lib/perl5/5.6.1/i686-linux/CORE/perl.h:3340, from ut_PerlBindings.cpp:42: /usr/include/sys/ipc.h:25: warning: #warning "Files using this header must be compiled with _SVID_SOURCE or _XOPEN_SOURCE" In file included from ut_PerlBindings.h:6, from ut_PerlBindings.cpp:7: ut_Script.h:119: warning: `class UT_ScriptLibrary' only defines private constructors and has no friends ut_PerlBindings.cpp: In function `void xs_init()': ut_PerlBindings.cpp:74: passing `void (*)(PerlInterpreter *, CV *)' as argument 2 of `Perl_newXS(char *, void (*)(CV *), char *)' ut_PerlBindings.cpp: In method `bool UT_PerlBindings::evalFile(const UT_String &)': ut_PerlBindings.cpp:237: warning: ANSI C++ forbids braced-groups within expressions ut_PerlBindings.cpp:253: warning: ANSI C++ forbids braced-groups within expressions ut_PerlBindings.cpp: In method `bool UT_PerlBindings::runCallback(const char *)': ut_PerlBindings.cpp:293: warning: ANSI C++ forbids braced-groups within expressions make[4]: *** [ut_PerlBindings.o] Error 1 make[4]: Leaving directory `/var/tmp/portage/abiword-1.0.3/work/abiword-1.0.3/abi/src/af/util/xp' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/var/tmp/portage/abiword-1.0.3/work/abiword-1.0.3/abi/src/af/util' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/var/tmp/portage/abiword-1.0.3/work/abiword-1.0.3/abi/src/af' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/abiword-1.0.3/work/abiword-1.0.3/abi/src' make: *** [all-recursive] Error 1 ------ Those are the fatal compile errors in 1.0.3 that are perl related, I guess.
For the record, i can compile 1.0.3 just fine with perl ( GCC3.2 / Perl 5.6.1-r8 )
I thought i added this already, but if compiled with gnome it builds all the way. Without gnome, well.. it fails :) I talked to an AbiWord guy last night (mg) and he's working on some patchwork to get this right.
Oh ignore comment #8 , i was still asleep there. This is not relevant here :)
*** Bug 9468 has been marked as a duplicate of this bug. ***
*** Bug 10301 has been marked as a duplicate of this bug. ***
mg of the AbiWord team can't reproduce the problem, he would like access to a machine where the build fails due to Perl, if someone can/is willing provide him with that drop me a note (or just comment here). Your help would be appreciated. This goes for everyone with perl problems in versions <1.0.4_pre1 because i removed scripting support alltogether for now in the newer builds.
I updated my Gentoo system to 1.4rc1 a while a go. That resolved the problem. Therefore it isn't possible to test on my machine. I'm sorry that I couldn't be of more assistance.
i guess 1.4 solved most of these problems, closing.