Perl module version checking
Kralidis,Tom [Burlington]
Tom.Kralidis at EC.GC.CA
Mon Nov 20 14:04:59 EST 2006
I know. I've yet to find anything to achieve this in swig. Perhaps Ari
(cc'd) can confirm.
..Tom
> -----Original Message-----
> From: UMN MapServer Developers List
> [mailto:MAPSERVER-DEV at LISTS.UMN.EDU] On Behalf Of Steve Lime
> Sent: 20 November, 2006 1:37 PM
> To: MAPSERVER-DEV at LISTS.UMN.EDU
> Subject: Re: [UMN_MAPSERVER-DEV] Perl module version checking
>
> It seems a bit hacky, which may be a good thing. I thought
> Swig had a method for including scripting language code
> directly into the module to achieve the same result. Don't
> know if it's worth investigating.
>
> Steve
>
> >>> "Kralidis,Tom [Burlington]" <Tom.Kralidis at EC.GC.CA> 11/17/2006
> 9:59:43 PM >>>
>
> I discussed this with Ari (cc'd), and seems the way to make
> this happen is to insert:
>
> $VERSION = 4.10.0;
>
> ...in mapscript.pm
>
> So, if the process for building perl mapscript is:
>
> - cd mapscript/perl/
> - run swig (outputs mapscript.pm)
> - perl Makefile.PL
> - make
> - make install
>
> Then mapscript/perl/Makefile.PL is where this logic should exist.
>
> I have locally edited mapscript/perl/Makefile.PL with the
> following, starting at line 38:
>
> open(FH, "+<mapscript.pm") or die "mapscript.pm doesn't
> exist. You must run swig to create mapscript.pm first. See
> README for more information\n"; @array = <FH>; $array[10] =
> "\$VERSION = $ms_version;\n";
> seek(FH,0,0) or die "Seeking: $!";
> print FH @array or die "Printing: $!";
> truncate(FH,tell(FH)) or die "Truncating: $!";
> close(FH) or die "Closing: $!";
>
> I've tried this and tested and it works fine. Just wanting
> to confirm I haven't overlooked anything before committing.
>
> Cheers
>
> ..Tom
>
>
>
>
> > -----Original Message-----
> > From: UMN MapServer Developers List
> > [mailto:MAPSERVER-DEV at LISTS.UMN.EDU] On Behalf Of Steve Lime
> > Sent: 16 November, 2006 11:35 AM
> > To: MAPSERVER-DEV at LISTS.UMN.EDU
> > Subject: Re: [UMN_MAPSERVER-DEV] Perl module version checking
> >
> > I sounds useful to me. If not for other languages then perhaps this
> > could be done through the plmodule.i interface file. This
> must be done
> > fairly often and documented someplace on the Swig website.
> >
> > Steve
> >
> > >>> "Kralidis,Tom [Burlington]" <Tom.Kralidis at EC.GC.CA> 11/15/2006
> > 2:18:57 PM >>>
> > Hi,
> >
> > Mapscript defines MS_VERSION to derive the version of
> mapscript used
> > (i.e. 4.10.0, etc.).
> >
> > Perl language allows for specifying modules by version, i.e.:
> >
> > #!/usr/bin/perl
> >
> > use strict;
> > use warnings;
> > use mapscript 4.10.0;
> >
> > Perl language processes this by checking the version
> specified against
> > the VERSION variable used to identify Perl
> modules.
> >
> > When attempting the script snippet above, the result is:
> >
> > mapscript does not define $mapscript::VERSION--version
> check failed at
> > proxim2prop.pl line 9.
> > BEGIN failed--compilation aborted at foo.pl line 9.
> >
> > I have run into a couple of situations where version checking like
> > this is required.
> >
> > Suggest we add a VERSION variable to mapscript.pm. I think
> it would
> > be valuable given the issue above, and especially since it is Perl
> > idiom to do so.
> >
> > Comments?
> >
> > ..Tom
> >
>
More information about the mapserver-dev
mailing list