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)