I had a working install of perl-5.8.0-r12/mod_perl-1.99.09. Recently upgraded from perl-5.8.0-r12 to 5.8.1-r1 which broke mod_perl. Usual course of action, of course, is to rebuild mod_perl whenever you build perl. However, mod_perl-1.99.09 refuses to build with the new perl. The output of the build is as follows (snipped for brevity): chmod 755 ../../../blib/arch/Apache2/auto/ModPerl/Util/Util.so make[3]: Leaving directory `/var/tmp/portage/mod_perl-1.99.09/work/mod_perl-1.99_09/WrapXS/ModPerl/Util' make[2]: Leaving directory `/var/tmp/portage/mod_perl-1.99.09/work/mod_perl-1.99_09/WrapXS/ModPerl' make[1]: Leaving directory `/var/tmp/portage/mod_perl-1.99.09/work/mod_perl-1.99_09/WrapXS' !!! ERROR: dev-perl/mod_perl-1.99.09 failed. !!! Function src_compile, Line 69, Exitcode 2 !!! (no error message) As you can see it offers no clues. I cd'ed into the work directory: cd /var/tmp/portage/mod_perl-1.99.09/work/mod_perl-1.99_09 and issued: make which produced this: cd "src/modules/perl" && make -f Makefile.modperl make[1]: Entering directory `/var/tmp/portage/mod_perl-1.99.09/work/mod_perl-1.99_09/src/modules/perl' rm -f mod_perl.so ld -shared -L/usr/local/lib \ \ mod_perl.lo modperl_interp.lo modperl_tipool.lo modperl_log.lo modperl_config.lo modperl_cmd.lo modperl_options.lo modperl_callback.lo modperl_handler.lo modperl_gtop.lo modperl_util.lo modperl_io.lo modperl_filter.lo modperl_bucket.lo modperl_mgv.lo modperl_pcw.lo modperl_global.lo modperl_env.lo modperl_cgi.lo modperl_perl.lo modperl_perl_global.lo modperl_perl_pp.lo modperl_sys.lo modperl_module.lo modperl_svptr_table.lo modperl_const.lo modperl_constants.lo modperl_apache_compat.lo modperl_hooks.lo modperl_directives.lo modperl_flags.lo modperl_xsinit.lo -rdynamic -L/usr/local/lib /usr/lib/perl5/5.8.1/i686-linux/auto/DynaLoader/DynaLoader.a -L/usr/lib/perl5/5.8.1/i686-linux/CORE -lperl -lnsl -ldl -lm -lcrypt -lutil -lc \ -o mod_perl.so ld: bad -rpath option make[1]: *** [mod_perl.so] Error 1 make[1]: Leaving directory `/var/tmp/portage/mod_perl-1.99.09/work/mod_perl-1.99_09/src/modules/perl' make: *** [modperl_lib] Error 2 Any way, to get things going. I was able to get mod_perl-1.99.10 built with minimum fuss. I will attach a patch which enables the tests to pass in 1.99.10
Created attachment 18569 [details, diff] patch to enable version bump from mod_perl 1.99.09 to 1.99.10 One of the files does not have a end of line, so force newlines by using echo -e
Created attachment 18570 [details] emerge --info output
The proposed fix works for me as well
FYI, the "echo" fixes that are in the current 1.99.09 ebuild and in patch 18569 have been reported upstream to mod_perl developers. They should shortly appear in the mod_perl CVS sources and in 1.99.11-dev. So, when 1.99.11 comes out, we can safely take out the "echo" fixes from the ebuils. I will however confirm this when the source changes do make it upstream.
The echo fixes mentioned in comment 4, and also present in attachment 18569 [details, diff], and in the current ebuild have made it upstream in CVS. I presume that starting form 1.99.11 we won't need the fixes to be present in the ebuild.
dupe ? http://bugs.gentoo.org/show_bug.cgi?id=30257
Problem with proposed patch... running ebuild mod_perl-1.99.10.ebuild compile turned up this set of errors. *** root mode: changing the files ownership to 'nobody' (65534:65534) *** sudo -u '#65534' /usr/bin/perl -e 'print -r "/var/tmp/portage/mod_perl-1.99.10/work/mod_perl-1.99_10/t" && -w _ && -x _ ? "OK" : "NOK"' sh: line 1: sudo: command not found *** result: !!! You are running the test suite under user 'root'. Apache cannot spawn child processes as 'root', therefore we attempt to run the test suite with user 'nobody' (65534:65534). The problem is that the path: /var/tmp/portage/mod_perl-1.99.10/work/mod_perl-1.99_10/t must be 'rwx' by user 'nobody', so Apache can read and write under that path. There several ways to resolve this issue. For example move '/var/tmp/portage/mod_perl-1.99.10/work/mod_perl-1.99_10/t' to '/tmp/' and repeat the 'make test' phase. You can test whether the location is good by running the following test: % sudo -u '#65534' /usr/bin/perl -e 'print -r "/var/tmp/portage/mod_perl-1.99.10/work/mod_perl-1.99_10/t" && -w _ && -x _ ? "OK" : "NOK"' make: *** [run_tests] Error 127 hmmm...
After emerging sudo, the tests are running fine. May one thus conclude that sudo should therein be a dep of mod_perl? Seems silly to me, but hey if that's what it takes, then that's what it takes.
I had to disable attempted removal of the test.pm, because it was sandboxing, but .10 is in the tree. Thanks to all.
perl 5.8.2 and mod_perl 1.99.10 works well together. closing this one ?
Marking fixed.