Building with Perlbrew environment.

Bill Moseley <[email protected]> Sat, 28 Jul 2012 08:55:40 -0700
Newsgroups gmane.comp.apache.apreq
Message-ID <CAKhN_m5NCyEr8fVN6ixGi9=F6VwcOyVYDDkcbw7=GAwASDLBGg@mail.gmail.com>
--f46d044472d110388e04c5e5dee4
Content-Type: text/plain; charset=ISO-8859-1

Apache/2.2.17 Fedora 14, with mod_perl-2.0.7.


I'm tying to build libapreq2-2.13 in a non-root Perlbrew environment.

I'm able to build and install mod_perl2 without any problem.   Although I
have to set MP_AP_DESTDIR to someplace I can write to since I don't want to
install system-wide with sudo.   The important thing to realize here is
that mod_perl.so ends up in a non-standard location.   That's a minor
problem because in my httpd.conf I can use Apache modules from their
standard location, but for mod_perl I only need to specify the full path to
the .so file.


It seems I can build libarpreq2 successfully

$ pwd
/home/bill/libapreq2-2.13

$ find -name \*.so
./module/apache2/.libs/mod_apreq2.so
./module/t/c-modules/apreq_cookie_test/.libs/mod_apreq_cookie_test.so
./module/t/c-modules/apreq_upload_test/.libs/mod_apreq_upload_test.so
./module/t/c-modules/apreq_access_test/.libs/mod_apreq_access_test.so
./module/t/c-modules/apreq_big_request_test/.libs/mod_apreq_big_request_test.so
./module/t/c-modules/apreq_redirect_test/.libs/mod_apreq_redirect_test.so
./module/t/c-modules/apreq_request_test/.libs/mod_apreq_request_test.so
./module/t/c-modules/apreq_output_filter_test/.libs/mod_apreq_output_filter_test.so
./library/.libs/libapreq2.so
./glue/perl/blib/arch/auto/APR/Request/Apache2/Apache2.so
./glue/perl/blib/arch/auto/APR/Request/Request.so
./glue/perl/blib/arch/auto/APR/Request/Cookie/Cookie.so
./glue/perl/blib/arch/auto/APR/Request/Parser/Parser.so
./glue/perl/blib/arch/auto/APR/Request/Error/Error.so
./glue/perl/blib/arch/auto/APR/Request/Param/Param.so
./glue/perl/blib/arch/auto/APR/Request/CGI/CGI.so
./glue/perl/blib/arch/auto/APR/Request/Hook/Hook.so



But many tests fail because mod_perl isn't getting loaded.


$ fgrep Compilation glue/perl/t/logs/error_log  | head -1
[Sat Jul 28 08:32:29 2012] [error] [client 127.0.0.1] failed to resolve
handler `TestAPI::cookie': Can't load
'/home/bill/libapreq2-2.13/glue/perl/blib/arch/auto/APR/Request/Request.so'
for module APR::Request:
/home/bill/libapreq2-2.13/glue/perl/blib/arch/auto/APR/Request/Request.so:
*undefined
symbol: PL_tainting* at /usr/lib64/perl5/DynaLoader.pm line 200.\n at
/home/bill/libapreq2-2.13/glue/perl/blib/lib/APR/Request/Cookie.pm line
27\nCompilation failed in require at
/home/bill/libapreq2-2.13/glue/perl/blib/lib/APR/Request/Cookie.pm line
27.\nBEGIN failed--compilation aborted at
/home/bill/libapreq2-2.13/glue/perl/blib/lib/APR/Request/Cookie.pm line
27.\nCompilation failed in require at
/home/bill/libapreq2-2.13/glue/perl/t/response/TestAPI/cookie.pm line
9.\nBEGIN failed--compilation aborted at
/home/bill/libapreq2-2.13/glue/perl/t/response/TestAPI/cookie.pm line
9.\nCompilation failed in require at (eval 3) line 2.\n

Can you think of how to build and run tests in this situation?


BTW -- when running the tests I see warnings about missing include
directories that are configured in my /etc/httpd/conf/httpd.conf file.  Why
would this configuration file get used when running tests?


Thanks,


-- 
Bill Moseley
[email protected]

--f46d044472d110388e04c5e5dee4
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div>Apache/2.2.17 Fedora 14, with=A0mod_perl-2.0.7.</div><div><br></div><d=
iv><br></div><div>I&#39;m tying to build=A0libapreq2-2.13 in a non-root Per=
lbrew environment. =A0</div><div><br></div><div>I&#39;m able to build and i=
nstall mod_perl2 without any problem. =A0 Although I have to set=A0MP_AP_DE=
STDIR to someplace I can write to since I don&#39;t want to install system-=
wide with sudo. =A0 The important thing to realize here is that mod_perl.so=
 ends up in a non-standard location. =A0 That&#39;s a minor problem because=
 in my httpd.conf I can use Apache modules from their standard location, bu=
t for mod_perl I only need to specify the full path to the .so file.</div>

<div><br></div><div><br></div><div>It seems I can build libarpreq2 successf=
ully</div><div><br></div><blockquote style=3D"margin:0 0 0 40px;border:none=
;padding:0px"><div><div>$ pwd</div></div><div><div>/home/bill/libapreq2-2.1=
3</div>

</div></blockquote><blockquote style=3D"margin:0 0 0 40px;border:none;paddi=
ng:0px"><div><div>$ find -name \*.so</div></div><div><div>./module/apache2/=
.libs/mod_apreq2.so</div></div><div><div>./module/t/c-modules/apreq_cookie_=
test/.libs/mod_apreq_cookie_test.so</div>

</div><div><div>./module/t/c-modules/apreq_upload_test/.libs/mod_apreq_uplo=
ad_test.so</div></div><div><div>./module/t/c-modules/apreq_access_test/.lib=
s/mod_apreq_access_test.so</div></div><div><div>./module/t/c-modules/apreq_=
big_request_test/.libs/mod_apreq_big_request_test.so</div>

</div><div><div>./module/t/c-modules/apreq_redirect_test/.libs/mod_apreq_re=
direct_test.so</div></div><div><div>./module/t/c-modules/apreq_request_test=
/.libs/mod_apreq_request_test.so</div></div><div><div>./module/t/c-modules/=
apreq_output_filter_test/.libs/mod_apreq_output_filter_test.so</div>

</div><div><div>./library/.libs/libapreq2.so</div></div><div><div>./glue/pe=
rl/blib/arch/auto/APR/Request/Apache2/Apache2.so</div></div><div><div>./glu=
e/perl/blib/arch/auto/APR/Request/Request.so</div></div><div><div>./glue/pe=
rl/blib/arch/auto/APR/Request/Cookie/Cookie.so</div>

</div><div><div>./glue/perl/blib/arch/auto/APR/Request/Parser/Parser.so</di=
v></div><div><div>./glue/perl/blib/arch/auto/APR/Request/Error/Error.so</di=
v></div><div><div>./glue/perl/blib/arch/auto/APR/Request/Param/Param.so</di=
v>

</div><div><div>./glue/perl/blib/arch/auto/APR/Request/CGI/CGI.so</div></di=
v><div><div>./glue/perl/blib/arch/auto/APR/Request/Hook/Hook.so</div></div>=
</blockquote><div><br></div><div><br></div><div>But many tests fail because=
 mod_perl isn&#39;t getting loaded.</div>

<div><br></div><div><br></div><div><div>$ fgrep Compilation glue/perl/t/log=
s/error_log =A0| head -1</div><div>[Sat Jul 28 08:32:29 2012] [error] [clie=
nt 127.0.0.1] failed to resolve handler `TestAPI::cookie&#39;: Can&#39;t lo=
ad &#39;/home/bill/libapreq2-2.13/glue/perl/blib/arch/auto/APR/Request/Requ=
est.so&#39; for module APR::Request: /home/bill/libapreq2-2.13/glue/perl/bl=
ib/arch/auto/APR/Request/Request.so: <b>undefined symbol: PL_tainting</b> a=
t /usr/lib64/perl5/DynaLoader.pm line 200.\n at /home/bill/libapreq2-2.13/g=
lue/perl/blib/lib/APR/Request/Cookie.pm line 27\nCompilation failed in requ=
ire at /home/bill/libapreq2-2.13/glue/perl/blib/lib/APR/Request/Cookie.pm l=
ine 27.\nBEGIN failed--compilation aborted at /home/bill/libapreq2-2.13/glu=
e/perl/blib/lib/APR/Request/Cookie.pm line 27.\nCompilation failed in requi=
re at /home/bill/libapreq2-2.13/glue/perl/t/response/TestAPI/<a href=3D"htt=
p://cookie.pm">cookie.pm</a> line 9.\nBEGIN failed--compilation aborted at =
/home/bill/libapreq2-2.13/glue/perl/t/response/TestAPI/<a href=3D"http://co=
okie.pm">cookie.pm</a> line 9.\nCompilation failed in require at (eval 3) l=
ine 2.\n</div>

</div><div><br></div><div>Can you think of how to build and run tests in th=
is situation?</div><div><br></div><div><br></div><div>BTW -- when running t=
he tests I see warnings about missing include directories that are configur=
ed in my /etc/httpd/conf/httpd.conf file. =A0Why would this configuration f=
ile get used when running tests?</div>

<div><br></div><div><br></div><div>Thanks,</div><br clear=3D"all"><div><br>=
</div>-- <br>Bill Moseley<br><a href=3D"mailto:[email protected]" target=3D"=
_blank">[email protected]</a><br>

--f46d044472d110388e04c5e5dee4--