Skip Menu |

This queue is for tickets about the Ubic-Service-Plack CPAN distribution.

Report information
The Basics
Id: 76841
Status: open
Priority: 0/
Queue: Ubic-Service-Plack

People
Owner: Nobody in particular
Requestors: BOLDRA [...] boldra.org
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: 1.14
Fixed in: (no value)



Subject: won't install: test.t requires unlisted requirement Test::TCP + dies anyway
1. The test uses Test::TCP without testing whether it's installed or listing it in PREREQ_PM eg: (from Ubic) eval "use Test::TCP"; plan skip_all => "Test::TCP required for testing ping" if $@; 2. It appears test.t is making the false assumption that plackup is in my path. which('plackup') returns an undefined value. Fixing both of these problems allows the install to complete. Thanks lt5001:~/.cpan/build/Ubic-Service-Plack-1.14-QTLycu # prove -vc t/test.t t/test.t .. 1..14 Use of uninitialized value $plackup in concatenation (.) or string at t/test.t line 19. not running# Looks like your test exited with 2 before it could output anything. Dubious, test returned 2 (wstat 512, 0x200) Failed 14/14 subtests Test Summary Report ------------------- t/test.t (Wstat: 512 Tests: 0 Failed: 0) Non-zero exit status: 2 Parse errors: Bad plan. You planned 14 tests but ran 0. Files=1, Tests=0, 0 wallclock secs ( 0.04 usr 0.00 sys + 0.16 cusr 0.01 csys = 0.21 CPU) Result: FAIL
1. Test::TCP is set in BUILD_REQUIRES, isn't it enough? 2. Well, tests assume that plackup is in PATH because that's what Ubic::Service::Plack assumes. It won't work otherwise. (Unless you override it with UBIC_SERVICE_PLACKUP_BIN, but that's a secret and undocumented feature). May I ask what kind of setup you use?
Subject: Re: [rt.cpan.org #76841] won't install: test.t requires unlisted requirement Test::TCP + dies anyway
Date: Fri, 27 Apr 2012 16:41:48 +0200
To: bug-Ubic-Service-Plack [...] rt.cpan.org
From: "Paul Boldra" <paul [...] boldra.com>
Show quoted text
> <URL: https://rt.cpan.org/Ticket/Display.html?id=76841 > > > 1. > Test::TCP is set in BUILD_REQUIRES, isn't it enough? >
Apparently not(?) My first install attempt aborted with a Can't locate Test/TCP.pm, but I can't reproduce now, Test::TCP is installed on all availble machines of this type. Show quoted text
> 2. > Well, tests assume that plackup is in PATH because that's what > Ubic::Service::Plack assumes. > It won't work otherwise. > (Unless you override it with UBIC_SERVICE_PLACKUP_BIN, but that's a > secret and undocumented feature). > May I ask what kind of setup you use? >
We have two perls installed on one multi-purpose admin server. In the path is a 5.8 perl, but the webserver runs with a 5.10 perl which isn't in the path. The webserver uses a huge variety of different libraries and frameworks (mod_perl, fastcgi, catalyst, mason, CGI::App, and Dancer). Both perls are activestate/linux (Suse). is UBIC_SERVICE_PLACKUP_BIN an environment variable? thanks for your help!
On Fri Apr 27 10:41:58 2012, paul@boldra.com wrote: Show quoted text
> > <URL: https://rt.cpan.org/Ticket/Display.html?id=76841 > > > > > 1. > > Test::TCP is set in BUILD_REQUIRES, isn't it enough? > >
> Apparently not(?) My first install attempt aborted with a Can't locate > Test/TCP.pm, but I can't reproduce now, Test::TCP is installed on all > availble machines of this type.
Hmm, weird. Here's what I get when I try to run 'cpan Ubic::Service::Plack': Show quoted text
---- Unsatisfied dependencies detected during ---- ---- MMCLERIC/Ubic-Service-Plack-1.14.tar.gz ---- Plack [requires] Ubic::Daemon [requires] File::Which [requires] Test::TCP [requires] Ubic::Service::Skeleton [requires] Shall I follow them and prepend them to the queue of modules we are processing right now? [yes] BTW, I don't list dependencies explicitly and don't write Makefile.PL myself, it's all generated with Dist::Zilla. Maybe it's a bug in your version of CPAN.pm or EU::MM...
>
> > 2. > > Well, tests assume that plackup is in PATH because that's what > > Ubic::Service::Plack assumes. > > It won't work otherwise. > > (Unless you override it with UBIC_SERVICE_PLACKUP_BIN, but that's a > > secret and undocumented feature). > > May I ask what kind of setup you use? > >
> We have two perls installed on one multi-purpose admin server. In the > path is a 5.8 perl, but the webserver runs with a 5.10 perl which isn't in > the path. The webserver uses a huge variety of different libraries and > frameworks (mod_perl, fastcgi, catalyst, mason, CGI::App, and Dancer). > > Both perls are activestate/linux (Suse).
Oh, I see. And you probably run ubic on 5.8, and are installing U::S::Plack to 5.8 @INC... But, even if this is valid setup, something is wrong here. Ubic::Service::Plack *depends* on Plack (just to make sure plackup is installed), so it should be installed to 5.8 @INC and plackup should be in path.
> > is UBIC_SERVICE_PLACKUP_BIN an environment variable?
Yes. But if you really need to override plackup script location, I'll add 'plackup_bin' option to Ubic::Service::Plack.
> > thanks for your help! >
Thanks for reporting issues :)