[Kde-bindings] [Bug 66053] New: Smoke and Kalyptus are missing a perl version check?
Richard Dale
Richard_Dale at tipitina.demon.co.uk
Fri Oct 17 00:19:22 UTC 2003
On Wednesday 15 October 2003 06:57, Neil Stevens wrote:
> ------- You are receiving this mail because: -------
> You are the assignee for the bug, or are watching the assignee.
>
> http://bugs.kde.org/show_bug.cgi?id=66053
> Summary: Smoke and Kalyptus are missing a perl version check?
> Product: bindings
> Version: unspecified
> Platform: Compiled Sources
> OS/Version: FreeBSD
> Status: NEW
> Severity: normal
> Priority: NOR
> Component: general
> AssignedTo: kde-bindings at mail.kde.org
> ReportedBy: neil at qualityassistant.com
>
>
> Version: (using KDE KDE 3.1.92)
> Installed from: Compiled From Sources
> Compiler: Perl version 5.005_03
> OS: FreeBSD
>
> Smoke's qtguess.pl and generate.pl seem to require a version of perl other
> than the one I have. At the end of my kdebindings configure I get these
> errors:
>
> Operator or semicolon missing before %tests at qtguess.pl line 250.
> Ambiguous use of % resolved as operator % at qtguess.pl line 250.
> Illegal modulus zero at qtguess.pl line 250.
> Not enough arguments for mkdir at generate.pl line 24, near "$outdir;"
> Not enough arguments for mkdir at generate.pl line 26, near "$finaloutdir
> unless" Execution of generate.pl aborted due to compilation errors.
>
> Now I don't really use perl much, and I'm trying to install the ruby
> bindings here, but I was able to do some poking around: Removing the "our"
> in qtguess.pl line 250 seems to make that run, and turning the mkdir calls
> into system calls in generate.pl seems to work around those errors, but
> after that I get more problems:
>
> Writing x_*.cpp...
> Can't use an undefined value as a symbol reference at kalyptusCxxToSmoke.pm
> line 600.
This is the code around line 600
sub propagateCanBeCopied($)
{
my $classNode = shift;
my $className = join( "::", kdocAstUtil::heritage($classNode) );
my @super = superclass_list($classNode);
# A class can only be copied if none of its ancestors have a private copy
ctor.
for my $s (@super) {
if (!$s->{CanBeCopied}) {
$classNode->{CanBeCopied} = 0;
print STDERR "$classNode->{astNodeName} cannot be copied\n" if ($debug);
last;
}
}
# If the class has no explicit copy constructor, and it can be copied,
# generate the copy constructor.
if ( !$classNode->{HasCopyConstructor} && $classNode->{CanBeCopied} &&
$classNode->{CanBeInstanciated} ) {
my $methodNode = Ast::New( "$classNode->{astNodeName}" );
$methodNode->AddProp( "NodeType", "method" );
$methodNode->AddProp( "Flags", "" );
600 ----> my $argType = "const ".$className."&";
registerType( $argType );
$methodNode->AddProp( "Params", $argType );
Does that mean that $className is undef? I'm not sure if this problem is to
ddo with the perl being old, or whether it's an input problem with something
it doesn't like in a particular header. Maybe add some printf's to see which
class/header is giving the problem, eg:
printf("source: " $classNode->{Source}->{astNodeName}\n");
printf("className: $className\n");
But I can't see any weird or unusual perl syntax there, that would trip up an
old version. I'm not much of a perl expert though..
> I hope the above is useful. I have perl 5.005_03, so if the problem is
> that this stuff requires a newer perl than, I would suggest that there
> should be a configure check for that newer perl and a warning if the
> installed perl is too old. _______________________________________________
Does KDE have a minimum perl version requirement - I don't know?
-- Richard
More information about the Kde-bindings
mailing list