The Swish-e ebuild needs a version bump to 2.4.1. I tried simply changing the version number on the ebuild and it craps out with this: API.c:1208: `fw' undeclared (first use in this function) API.c:1211: warning: assignment makes integer from pointer without a cast API.xs:639: warning: assignment makes pointer from integer without a cast API.c:1222: warning: assignment makes integer from pointer without a cast API.c: In function `boot_SWISH__API': API.c:1233: warning: initialization makes pointer from integer without a cast API.c:1277: warning: assignment makes integer from pointer without a cast make: *** [API.o] Error 1 !!! ERROR: net-www/swish-e-2.4.1 failed. !!! Function perl-module_src_compile, Line 50, Exitcode 2 !!! compilation failed (note: this is the error with the current Portage version emerged. Emerging w/o an existing installation gives somey error about not being able to find the path to the executable. (very "chicken-or-egg" sounding to me)) Anyway, I haven't the slightest clue how to fix it.
Issue 1: The perl/Makefile.PL pauses for user input that it uses to figure out if it should run make test. Once this is fixed, issue 2 takes over. Issue 2: A header file is missing (hence the errors reported in this bug). The header if found in src/. As far as I can tell, swish-e is supposed to be installed *first* and then you're supposed to install the perl module. Since this isn't possible unless the package is to be split into two, I patched Makefile.PL to include the MM option CCFLAGS=-I../src which fixes the compilation. Issue 3: They tried to add shared library support in this release series and I think it's really broken. The resultant file /usr/bin/swish-e is still the libtool shell replacement that tries to locate the intermediate files in the libtool build directory (i.e. /var/tmp/portage/swish-e-2.4.1/work/swish-e-2.4.1/.libs) which are gone. This is really broken as far as I can tell. I'll attach the patches for the ebuild and Makefile.PL so someone more familiar with this package (mcummings?) can take a look.
Created attachment 23597 [details, diff] swish-e-2.4.1-Makefile.PL.patch This fixes the interactive prompting by just setting the input variable to default to skipping tests.
Created attachment 23598 [details, diff] swish-e-2.4.1.ebuild.patch This patch adds a src_unpack() that applies the Makefile.PL patch. It should be applied against the swish-e-2.2.2-r1 ebuild currently in portage.
The ebuild patch went in cleanly with "patch -p0 < patch". I put the makefile patch in /usr/local/portage/net-www/swish-e/files, and emerged it. Everything appears to have emerged cleanly. I typed in "swish-e" when it was done, and got this: ubertop swish-e # swish-e /usr/bin/swish-e: line 1: cd: /var/tmp/portage/swish-e-2.4.1/work/swish-e-2.4.1/src: No such file or directory gcc: swish.o: No such file or directory gcc: keychar_out.o: No such file or directory gcc: dump.o: No such file or directory gcc: result_output.o: No such file or directory gcc: ./.libs/libswishindex.a: No such file or directory gcc: ./.libs/libswish-e.so: No such file or directory I looked at /usr/bin/swish-e, and it is a shell script that calls the libraries. Best as I can see it, line 21 is causing the problem. It defines a "relink_command" that refers back to the installation directory (and a bunch of other commands, is it recompiling something?) that, of course, ceases to exist once portage has successfully emerged it. I tried doing "ebuild ./swish-e.2.4.1.ebuild compile" (after "ebuild ./swish-e.2.4.1.ebuild unpack" failed) and rerunning swish-e, thinking maybe it just needs to run one more time just to get something compiled from the source directory. That worked. Got the help menu and everything. Once I did "ebuild ... clean", though, I got this error: ubertop swish-e # swish-e /usr/bin/.libs/lt-swish-e: error while loading shared libraries: libswish-e.so.2: cannot open shared object file: No such file or directory Maybe something is not getting copied over from the source directory?
Oh yeah, I guess the new problem is actually issue #3.
Cleaning out bugs today; swish-e-2.4.3 is in the tree, ton of changes for optional perl support, notes about additional support, etc. enjoy.