Alvaro Livraghi created AVRO-4239:
-------------------------------------

             Summary: Perl porting - Lacks of version number
                 Key: AVRO-4239
                 URL: https://issues.apache.org/jira/browse/AVRO-4239
             Project: Apache Avro
          Issue Type: Bug
          Components: perl
    Affects Versions: 1.11.4
         Environment: Red Hat Enterprise Linux release 8.10 (Ootpa)
{code:java}
perl -v{code}
This is perl 5, version 26, subversion 3 (v5.26.3) built for 
x86_64-linux-thread-multi
(with 58 registered patches, see perl -V for more detail)

Copyright 1987-2018, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

 
            Reporter: Alvaro Livraghi


Starting with v1.11.4, the Perl porting fails to dinamically set the 
{{$VERSION}} variable when installing from CPAN or from {{{}.tar.gz{}}}.

After a bit of investigation, I noticed that the 
{{[build.sh|https://github.com/apache/avro/blob/release-1.11.4/lang/perl/build.sh]}}
 script no longer copies {{VERSION.txt}} (from {{{}../../share{}}}) as in 
previous versions.

At the same time, the 
{{[Makefile.PL|https://github.com/apache/avro/blob/release-1.11.4/lang/perl/Makefile.PL]}}
 expects the version file to be in {{{}../../share/VERSION.txt{}}}, which, when 
installing from CPAN or directly from {{{}.tar.gz{}}}, cannot exist.

This results in an unversioned Avro Perl installation as shown in the follow:
{code:bash}
cpanm Avro{code}
{noformat}
--> Working on Avro
Fetching http://www.cpan.org/authors/id/R/RS/RSKRABA/Avro-1.12.1.tar.gz ... OK
Configuring Avro-1.12.1 ... OK
Building and testing Avro-1.12.1 ... OK
Successfully installed Avro-1.12.1
1 distribution installed{noformat}
Indeed, checking the version reveals that it is not available:
{code:bash}
perl -MAvro\ v1.12.1{code}
{noformat}
Invalid version format (version required).
BEGIN failed--compilation aborted. 
{noformat}
Even looking at the module file, I notice that the {{$VERSION}} variable isn't 
initialized with the expected version number (v1.12.1) but it is empty:
{code:bash}
find ~/perl5/ -type f -name Avro.pm -exec grep -n '$VERSION' {} \;{code}
{noformat}
22:our $VERSION = '';{noformat}
This creates potential inconsistencies when installing libraries that depend on 
{{{}Avro{}}}, as they can't verify its version.

Is it possible to revert to the previous approach?



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to