You are viewing a plain text version of this content. The canonical link for it is here.
Posted to test-dev@httpd.apache.org by "Jos I. Boumans" <ka...@dwim.org> on 2004/03/18 11:09:06 UTC

Re: [Cpanplus-bugs] buferring STDERR breaks the install logic

On Feb 25, 2004, at 8:10 PM, Stas Bekman wrote:

> Apache::Test's "make test" can't be run as root if it gets unpacked 
> somewhere under /root/, since Apache needs to run as 'nobody' which 
> can't read/write files under /root/. Apache::Test's build nicely 
> detects that situation and lets users to opt out from running 'make 
> test'
I'm sorry, i'm not able to reproduce this behaviour with CPANPLUS 0.049;
see a copy of the commands+output i've used below the sig

What version of CPANPLUS are you using?

> When running under CPAN.pm there are no problems. But when running 
> under CPANPLUS, STDERR is buffered and the logic flow is broken. First 
> the user gets the prompt:
>
>   CPAN Terminal> i Apache::Test
>   ...
>   Skip the test suite? [No]
I'm not getting this question -- Is this during 'perl Makefile.PL', 
because that one is /always/ run with verbose = 1 to allow for 
interactive makefile.pls

> of course, the user can't make the right decision and reports us an 
> error, which is not a module's problem. CPANPLUS is broken in that 
> respect.
I'm still not sure /what/ is supposedly broken, since Apache::Test does 
not behave in the way you describe for me.

--
	Jos Boumans

	"Two rules to success in life:
   	1. Don't tell people everything you know"
		--Sassan Tat

	CPANPLUS	http://cpanplus.sf.net



[kane@nsa-dev ~]$ whoami
root
[kane@nsa-dev ~]$ cpanp
CPANPLUS::Shell::Default -- CPAN exploration and modules installation 
(v0.03)
*** Please report bugs to <cp...@lists.sourceforge.net>.
*** Using CPANPLUS::Backend v0.049.  ReadLine support enabled.

CPAN Terminal> s verbose 0
verbose was set to 0
CPAN Terminal> ! print $>, $<
00
CPAN Terminal> i Apache::Test
Installing: Apache::Test
[   info] generating script t/TEST
Checking if your kit is complete...
Looks good
!!! Makefile.PL has found old copies of Apache/test.pm which will
be removed during 'make install' to prevent collisions with 
Apache::Test:

/usr/local/lib/perl5/site_perl/5.6.1/mach/Apache/test.pm

CPAN authors are advised to either use Apache::testold or port their
test suite to Apache::Test which works with both mod_perl generations.
Writing Makefile for Apache::Test
/usr/local/bin/perl -Iblib/arch -Iblib/lib  t/TEST -clean
APACHE_TEST_GROUP= APACHE_TEST_PORT= APACHE_TEST_APXS= 
APACHE_TEST_USER= APACHE_TEST_HTTPD=  /usr/local/bin/perl -Iblib/arch 
-Iblib/lib  t/TEST -bugreport -verbose=0


We are now going to configure the Apache-Test framework.
This configuration process needs to be done only once.



First we need to know where the 'httpd' executable is located.
If you have more than one Apache server is installed, make sure
you supply the path to the one you are going to use for testing.
You can always override this setting at run time via the '-httpd'
option. For example:

   % t/TEST -httpd /path/to/alternative/httpd

or via the environment variable APACHE_TEST_HTTPD. For example:

   % APACHE_TEST_HTTPD=/path/to/alternative/httpd t/TEST

If for some reason you want to skip the test suite, type: skip

Please provide a full path to 'httpd' executable:

  [] /usr/local/apache/bin/httpd


Next we need to know where the 'apxs' script is located. This script
provides a lot of information about the apache installation, and makes
it easier to find things. However it's not available on all platforms,
therefore it's optional.

If you don't have it installed it's not a problem. Just press Enter.

Notice that if you have Apache 2.x installed that script could be
called as 'apxs2'.

If you have more than one Apache server is installed, make sure you
supply the path to the apxs script you are going to use for testing.
You can always override this setting at run time via the '-apxs'
option. For example:

   % t/TEST -apxs /path/to/alternative/apxs

or via the environment variable APACHE_TEST_APXS. For example:

   % APACHE_TEST_APXS=/path/to/alternative/apxs t/TEST


Please provide a full path to (optional) 'apxs' executable:

  [] /usr/local/apache/bin/apxs
[warning] rerunning '/usr/local/bin/perl 
/root/.cpanplus/5.6.1/build/Apache-Test-1.08/t/TEST -bugreport 
-verbose=0' with new config opts
[warning] root mode: changing the files ownership to 'nobody' 
(65534:65534)
[warning] testing whether 'nobody' is able to -rwx 
/root/.cpanplus/5.6.1/build/Apache-Test-1.08/t
/usr/local/bin/perl -Mlib=lib -MApache::TestRun -e 'eval { 
Apache::TestRun::run_root_fs_test(65534, 65534, 
q[/root/.cpanplus/5.6.1/build/Apache-Test-1.08/t]) }';


[warning] result: OK
/usr/local/apache/bin/httpd -d 
/root/.cpanplus/5.6.1/build/Apache-Test-1.08/t -f 
/root/.cpanplus/5.6.1/build/Apache-Test-1.08/t/conf/httpd.conf 
-DAPACHE1
using Apache/1.3.28

waiting 60 seconds for server to start: ..
waiting 60 seconds for server to start: ok (waited 1 secs)
server localhost:8529 started
t/ping.......ok
t/request....ok
All tests successful.
Files=2, Tests=12,  1 wallclock secs ( 0.91 cusr +  0.24 csys =  1.15 
CPU)
[warning] root mode: restoring the original files ownership
[warning] server localhost:8529 shutdown
Successfully installed Apache::Test
CPAN Terminal>


Re: [Cpanplus-bugs] buferring STDERR breaks the install logic

Posted by Stas Bekman <st...@stason.org>.
Jos I. Boumans wrote:
> 
> On Feb 25, 2004, at 8:10 PM, Stas Bekman wrote:
> 
>> Apache::Test's "make test" can't be run as root if it gets unpacked 
>> somewhere under /root/, since Apache needs to run as 'nobody' which 
>> can't read/write files under /root/. Apache::Test's build nicely 
>> detects that situation and lets users to opt out from running 'make test'
> 
> I'm sorry, i'm not able to reproduce this behaviour with CPANPLUS 0.049;
> see a copy of the commands+output i've used below the sig
> 
> What version of CPANPLUS are you using?

0.048, which was the latest when I've submitted this report. I've upgraded to 
0.049  and the problem is still there.

>> When running under CPAN.pm there are no problems. But when running 
>> under CPANPLUS, STDERR is buffered and the logic flow is broken. First 
>> the user gets the prompt:
>>
>>   CPAN Terminal> i Apache::Test
>>   ...
>>   Skip the test suite? [No]
> 
> I'm not getting this question -- Is this during 'perl Makefile.PL', 
> because that one is /always/ run with verbose = 1 to allow for 
> interactive makefile.pls

This happens during 'make test'. A-T gives users a chance to skip the test 
suite once it's started, when certain conditions occur.

To reproduce it you need to run as 'root' and have cpanplus build directory 
under /root/ or somewhere else where normal users can't read/write. Please let 
me know if you need any other help to reproduce it.


>> of course, the user can't make the right decision and reports us an 
>> error, which is not a module's problem. CPANPLUS is broken in that 
>> respect.
> 
> I'm still not sure /what/ is supposedly broken, since Apache::Test does 
> not behave in the way you describe for me.

Please see above.

__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com