Compile problem: Curses::Widgets

Compile problem: Curses::Widgets

am 24.09.2007 20:54:04 von HaroldWho

I have a problem compiling the Curses::Widgets module. I'm on Slackware
12.0 if that matters. The Curses module compiled OK and passed the testing
phase.

The 'perl Makefile.PL' step seems OK. The 'make test' seems OK too, but when
the Curses color test screen appears and I press a key (as instructed), the
app terminates with 'Error 255.'

I have an app that uses Curses::Widgets, and it fails with the message:

"Curses function 'chgat' called with too many arguments at
/usr/lib/perl5/site_perl/5.8.8/Curses/Widgets/ButtonSet.pm line 305."

I'm stumped. Any suggestions?

FYI, here's what the compile and test showed on the console:

root@Beagle:/opt/src/CursesWidgets-1.997# perl Makefile.PL
Checking if your kit is complete...
Looks good
Writing Makefile for Curses::Widgets

root@Beagle:/opt/src/CursesWidgets-1.997# make test
cp Widgets.pm blib/lib/Curses/Widgets.pm
cp Widgets/ButtonSet.pm blib/lib/Curses/Widgets/ButtonSet.pm
cp Widgets/Tutorial/Creation.pod blib/lib/Curses/Widgets/Tutorial/Creation.pod
cp Widgets/Calendar.pm blib/lib/Curses/Widgets/Calendar.pm
cp Widgets/ListBox.pm blib/lib/Curses/Widgets/ListBox.pm
cp Widgets/ListBox/MultiColumn.pm blib/lib/Curses/Widgets/ListBox/MultiColumn.pm
cp Widgets/Tutorial.pod blib/lib/Curses/Widgets/Tutorial.pod
cp Widgets/ProgressBar.pm blib/lib/Curses/Widgets/ProgressBar.pm
cp Widgets/Menu.pm blib/lib/Curses/Widgets/Menu.pm
cp Widgets/ComboBox.pm blib/lib/Curses/Widgets/ComboBox.pm
cp Widgets/TextMemo.pm blib/lib/Curses/Widgets/TextMemo.pm
cp Widgets/TextField.pm blib/lib/Curses/Widgets/TextField.pm
cp Widgets/Label.pm blib/lib/Curses/Widgets/Label.pm

PERL_DL_NONLAZY=1 /usr/bin/perl5.8.8 "-Iblib/lib" "-Iblib/arch" test.pl
*** [test_dynamic] Error 255

--
Powered by Slackware 12.0 Linux -- Kernel 2.6.21.5-smp
News Reader slrn 0.9.8.1

Re: Compile problem: Curses::Widgets

am 24.09.2007 21:24:48 von df4or

HaroldWho wrote:

[...]
> I have an app that uses Curses::Widgets, and it fails with the message:
>
> "Curses function 'chgat' called with too many arguments at
> /usr/lib/perl5/site_perl/5.8.8/Curses/Widgets/ButtonSet.pm line 305."

What version of ncurses are you using? Here it's 5.6.20061217, find out with
$ ncurses5-config --version

Maybe your installed version is too old? Here the chgat call looks as
follows:
$ man curs_attr
[...]
int chgat(int n, attr_t attr, short color,
const void *opts)
[...]


Rgds,
Ekki

Re: Compile problem: Curses::Widgets

am 25.09.2007 20:40:33 von HaroldWho

On Mon, 24 Sep 2007 21:24:48 +0200, Ekki Plicht (DF4OR) wrote
in comp.lang.perl.modules:
> HaroldWho wrote:
>
> [...]
>> I have an app that uses Curses::Widgets, and it fails with the message:
>>
>> "Curses function 'chgat' called with too many arguments at
>> /usr/lib/perl5/site_perl/5.8.8/Curses/Widgets/ButtonSet.pm line 305."
>
> What version of ncurses are you using? Here it's 5.6.20061217, find out with
> $ ncurses5-config --version
>
> Maybe your installed version is too old? Here the chgat call looks as
> follows:
> $ man curs_attr
> [...]
> int chgat(int n, attr_t attr, short color,
> const void *opts)

My version is 5.6.20070217. Not too old, but perhaps too new :-)

So, I'm still at a loss. I guess I'll have to dummy up some simple scripts
for Curses and Curses::Widgets to see what makes the failure happen.

Thanks for the suggestion.

HW
--
Powered by Slackware 12.0 Linux -- Kernel 2.6.21.5-smp
News Reader slrn 0.9.8.1

Re: Compile problem: Curses::Widgets

am 25.09.2007 21:00:14 von df4or

HaroldWho wrote:

> On Mon, 24 Sep 2007 21:24:48 +0200, Ekki Plicht (DF4OR) wrote
> in comp.lang.perl.modules:
>> HaroldWho wrote:
>>
>> [...]
>>> I have an app that uses Curses::Widgets, and it fails with the message:
>>>
>>> "Curses function 'chgat' called with too many arguments at
>>> /usr/lib/perl5/site_perl/5.8.8/Curses/Widgets/ButtonSet.pm line 305."
>>
>> What version of ncurses are you using? Here it's 5.6.20061217, find out
>> with $ ncurses5-config --version
>>
>> Maybe your installed version is too old? Here the chgat call looks as
>> follows:
>> $ man curs_attr
>> [...]
>> int chgat(int n, attr_t attr, short color,
>> const void *opts)
>
> My version is 5.6.20070217. Not too old, but perhaps too new :-)
>
> So, I'm still at a loss. I guess I'll have to dummy up some simple scripts
> for Curses and Curses::Widgets to see what makes the failure happen.

Well, what does your manpage say (man curs_attr)? Or the source? It's easy
to find the reason for that error, you just have to look. The solve the
problem might be another issue.

Rgds,
Ekki

Re: Compile problem: Curses::Widgets

am 27.09.2007 19:58:42 von HaroldWho

On Tue, 25 Sep 2007 21:00:14 +0200, Ekki Plicht (DF4OR) wrote
in comp.lang.perl.modules:
>
> Well, what does your manpage say (man curs_attr)? Or the source? It's easy
> to find the reason for that error, you just have to look. The solve the
> problem might be another issue.

My man page says the same as yours. The source pm's for Widgets look OK, but
I'm not really sophisticated enough at reading perl code to be confident.

You've given me an idea though. I'll go back to my old versions of those
pm's on another partition and do a 'diff'. Maybe that'll shed some light.

Thanks for following this.

HW
--
Powered by Slackware 12.0 Linux -- Kernel 2.6.21.5-smp
News Reader slrn 0.9.8.1

Re: Compile problem: Curses::Widgets

am 04.10.2007 19:32:33 von bzipitidoo

I am seeing the same problem on HP-UX 11.11 with perl 5.8.8. All was
working fine with the perl 5.6.1 that was compiled with gcc. Changed
to perl 5.8.8 compiled with the native cc compiler, and now when I run
"make test" for CursesWidgets-1.997 I get:

Curses function 'chgat' called with too many arguments at blib/lib/
Curses/Widgets/Calendar.pm line 225.

In both cases, linked to ncurses in /usr/local/lib. ncurses5-config --
version shows 5.6.20061217.
chatr and ldd on /opt/perl/lib/site_perl/5.8.8/PA-RISC1.1-thread-multi/
auto/Curses/Curses.sl both show that it links to the ncurses, panel,
menu, and form libraries in /usr/local/lib. I rebuilt all the perl
modules for 5.8.8. (They were wiped out when 5.6.1 was removed.)
Didn't see any reason to rebuild ncurses. I am using Curses-1.16.
Got "All tests successful" for "make test" for Curses-1.16.

Re: Compile problem: Curses::Widgets

am 05.10.2007 00:00:31 von bzipitidoo

I found a solution. To fix things, go back to Curses-1.15. There's a
suggestive line in the HISTORY file from Curses-1.16:

Fix bug: chgat() requires an extra, meaningless, argument.

Evidently that fix, whatever it is, broke chgat.

Re: Compile problem: Curses::Widgets

am 05.10.2007 20:51:28 von HaroldWho

On Thu, 04 Oct 2007 15:00:31 -0700, bzipitidoo@gmail.com wrote in
comp.lang.perl.modules:
> I found a solution. To fix things, go back to Curses-1.15. There's a
> suggestive line in the HISTORY file from Curses-1.16:
>
> Fix bug: chgat() requires an extra, meaningless, argument.
>
> Evidently that fix, whatever it is, broke chgat.

I was the OP re Curses::Widgets. This observation is pure gold; at least it
gives me somewhere to start tinkering with my current modules install. And,
it's reassuring to know that it's not just me :-)

Thanks for the follow--up.

HaroldWho
(Who just wants his Curses::Widgets back)
--
Powered by Slackware 12.0 Linux -- Kernel 2.6.21.5-smp
News Reader slrn 0.9.8.1