|
|
Up |
|
|
  |
Author: Rick MyersRick Myers Date: Aug 14, 2008 10:10
This distribution has been tested as part of the cpan-testers
effort to test as many new uploads to CPAN as possible. See
http://testers.cpan.org/
--
Dear Ilya Zakharevich,
This is a computer-generated report for Term-ReadLine-Perl-1.0302
on perl 5.8.8, created by CPAN-Reporter-1.1601.
Thank you for uploading your work to CPAN. However, there was a problem
testing your distribution.
If you think this report is invalid, please consult the CPAN Testers Wiki
for suggestions on how to avoid getting FAIL reports for missing library
or binary dependencies, unsupported operating systems, and so on:
http://cpantest.grango.org/wiki/CPANAuthorNotes
Sections of this report:
* Tester comments
* Program output
* Prerequisites
* Environment and other context
|
| Show full article (4.45Kb) |
|
| | 9 Comments |
|
  |
Author: Rick MyersRick Myers Date: Aug 15, 2008 05:33
On Thu, Aug 14, 2008 at 01:16:05PM -0700, Ilya Zakharevich wrote:
> On Thu, Aug 14, 2008 at 01:10:54PM -0400, Rick Myers wrote:
>> Additional comments from tester:
>>
>> This has been going on for years on various Slackware machines.
>> I'm not worthy! I'm not worthy!
>
> If you worry so much, why do not READ the error message? It is very
> clear - your Term::ReadKey is broken.
As it turns out, when I su to the tester account, /usr/X11/bin isn't
in the path. Thus, resize isn't found. Simple fix: use an actual login
shell to test with.
Why COLUMNS and LINES aren't found in the environment is still a mystery
though, as they are set in the shell. Not to mention why the ioctl didn't
work, but that's more than I care to tackle right now.
|
| Show full article (1.22Kb) |
|
| | no comments |
|
  |
Author: Ilya ZakharevichIlya Zakharevich Date: Aug 15, 2008 08:55
On Fri, Aug 15, 2008 at 08:33:52AM -0400, Rick Myers wrote:
> As it turns out, when I su to the tester account, /usr/X11/bin isn't
> in the path. Thus, resize isn't found. Simple fix: use an actual login
> shell to test with.
>
> Why COLUMNS and LINES aren't found in the environment is still a mystery
> though, as they are set in the shell.
I would think they would be set in an interactive shell only...
> Not to mention why the ioctl didn't
> work, but that's more than I care to tackle right now.
ioctl(): does it work when called from the shell? Maybe your test
environment just has no active tty present?
Uf ioctl() does not work from the shell, I would try to `test
Term::ReadKey' from CPAN shell (or an equivalent). I strongly suspect
it would start to work. (If you check: could you report back?)
Just guessing,
Ilya
|
| |
| no comments |
|
  |
Author: Rick MyersRick Myers Date: Aug 16, 2008 09:21
On Fri, Aug 15, 2008 at 08:55:25AM -0700, Ilya Zakharevich wrote:
> On Fri, Aug 15, 2008 at 08:33:52AM -0400, Rick Myers wrote:
>> As it turns out, when I su to the tester account, /usr/X11/bin isn't
>> in the path. Thus, resize isn't found. Simple fix: use an actual login
>> shell to test with.
>>
>> Why COLUMNS and LINES aren't found in the environment is still a mystery
>> though, as they are set in the shell.
>
> I would think they would be set in an interactive shell only...
Yes, but consider this...
|
| Show full article (2.68Kb) |
| no comments |
|
  |
Author: Ilya ZakharevichIlya Zakharevich Date: Aug 16, 2008 11:08
On Sat, Aug 16, 2008 at 12:21:33PM -0400, Rick Myers wrote:
> tester@xbox:~$ set | grep ^L | cut -d'=' -f1
> LANG
> LC_COLLATE
> LESS
> LESSOPEN
> LINES
> LOGNAME
> LS_COLORS
> LS_OPTIONS
What happens if you use `env' instead of the (internal?) `set'? [I
never managed to fully understand the semantic of `set' in `sh'...]
`which env' would be useful too...
Yours,
Ilya
|
| |
| no comments |
|
  |
Author: Ilya ZakharevichIlya Zakharevich Date: Aug 16, 2008 11:15
On Sat, Aug 16, 2008 at 12:21:33PM -0400, Rick Myers wrote:
> My take on all this is that perl breaks LINES and COLUMNS, su breaks
> PATH, and CPAN::Reporter breaks ioctl(). All combined, Term::ReadKey
> has no way to find the terminal size, thus breaking Term::ReadLine.
>
> Now, wasn't that fun? :-)
Wait a second! Term::ReadKey not working when CPAN::Reporter is
active MUST be a Term::ReadLine bug! IIRC, it is the function of
Term::ReadLine to find a correct file descriptor to work with (or use
the user-provided one). Any way, it SHOULD survive a funny filehandle...
Since I do not know what CPAN::Reporter is, what is a reasonable
semantic of Term::ReadLine read/write: which FH should be the default
for i/o?
Thanks,
Ilya
|
| |
| no comments |
|
  |
Author: Rick MyersRick Myers Date: Aug 16, 2008 22:38
On Sat, Aug 16, 2008 at 11:08:13AM -0700, Ilya Zakharevich wrote:
> On Sat, Aug 16, 2008 at 12:21:33PM -0400, Rick Myers wrote:
>> tester@xbox:~$ set | grep ^L | cut -d'=' -f1
>> LANG
>> LC_COLLATE
>> LESS
>> LESSOPEN
>> LINES
>> LOGNAME
>> LS_COLORS
>> LS_OPTIONS
>
> What happens if you use `env' instead of the (internal?) `set'? [I
> never managed to fully understand the semantic of `set' in `sh'...]
>
> `which env' would be useful too...
|
| Show full article (1.37Kb) |
| no comments |
|
  |
Author: Rick MyersRick Myers Date: Aug 17, 2008 09:11
On Sat, Aug 16, 2008 at 11:15:24AM -0700, Ilya Zakharevich wrote:
> On Sat, Aug 16, 2008 at 12:21:33PM -0400, Rick Myers wrote:
>> My take on all this is that perl breaks LINES and COLUMNS, su breaks
>> PATH, and CPAN::Reporter breaks ioctl(). All combined, Term::ReadKey
>> has no way to find the terminal size, thus breaking Term::ReadLine.
>>
>> Now, wasn't that fun? :-)
>
> Wait a second! Term::ReadKey not working when CPAN::Reporter is
> active MUST be a Term::ReadLine bug! IIRC, it is the function of
> Term::ReadLine to find a correct file descriptor to work with (or use
> the user-provided one). Any way, it SHOULD survive a funny filehandle...
>
> Since I do not know what CPAN::Reporter is, what is a reasonable
> semantic of Term::ReadLine read/write: which FH should be the...
|
| Show full article (1.67Kb) |
| no comments |
|
  |
Author: Rick MyersRick Myers Date: Aug 17, 2008 22:37
On Sun, Aug 17, 2008 at 02:11:14PM -0700, Ilya Zakharevich wrote:
>
> So, basically, when Term::ReadLine starts, its STDOUT is directed to "a
> normal unix pipe", and STDERR and STDIN are not redirected, right?
Actually, no. I didn't mention STDERR, but it's like this...
system q(perl -e 'system("make test")' 2>&1 | ptee tmp_out)
So, just for giggles, a quick test with...
system q(perl -e 'system("ls -l /proc/self/fd")' 2>&1 | ptee tmp_out)
... reveals...
lrwx------ 1 tester users 64 2008-08-18 01:24 0 -> /dev/vc/5
l-wx------ 1 tester users 64 2008-08-18 01:24 1 -> pipe:[1239061]
l-wx------ 1 tester users 64 2008-08-18 01:24 2 -> pipe:[1239061]
lr-x------ 1 tester users 64 2008-08-18 01:24 3 -> /proc/31408/fd
So, STDIN is still coming from the console, while STDOUT and STDERR are
going to the pipe.
tester@xbox:~$ ls -l /dev/vc/5
crw--w---- 1 tester tty 4, 5 2008-08-18 01:25 /dev/vc/5
|
| Show full article (1.03Kb) |
| no comments |
|
  |
|
|
  |
Author: Ilya ZakharevichIlya Zakharevich Date: Aug 17, 2008 14:11
On Sun, Aug 17, 2008 at 12:11:44PM -0400, Rick Myers wrote:
> So basically, from within the CPAN shell...
>
> system q(perl -e 'system("make test")' | ptee tmp_out)
>
> And since I don't see STDOUT being redirected anywhere, it should
> propogate back to CPAN shell, at least.
So, basically, when Term::ReadLine starts, its STDOUT is directed to "a
normal unix pipe", and STDERR and STDIN are not redirected, right?
Can't check right now, but I would think that by default, STDERR is
used for output by Term::ReadLine. Probably it is redirected too, so
ioctl() is performed on a pipe. Hmm; I'm afraid that the fallback to
COLUMNS and `stty' was hiding some real problem, and your test
environment, finally, unravelled it. (Thanks for your patience, BTW!)
Need to think about it more,
Ilya
P.S. I tried to google for
bash export COLUMNS environment
and found many `export COLUMNS' and one `shopt -s checkwinsize'...
|
| |
| no comments |
|
|