forked from pool/perl-Perl-Version
- initial package 1.010
* created by cpanspec 1.78.03 OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl-Perl-Version?expand=0&rev=1
This commit is contained in:
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.osc
|
3
Perl-Version-1.010.tar.bz2
Normal file
3
Perl-Version-1.010.tar.bz2
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:26ce3f08208e82e8c7dd17dbf1dc5c8dbb3e6f9202a1b90ce0c779514fa96bc8
|
||||
size 22127
|
6
perl-Perl-Version.changes
Normal file
6
perl-Perl-Version.changes
Normal file
@@ -0,0 +1,6 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 14 11:33:26 UTC 2011 - coolo@novell.com
|
||||
|
||||
- initial package 1.010
|
||||
* created by cpanspec 1.78.03
|
||||
|
295
perl-Perl-Version.spec
Normal file
295
perl-Perl-Version.spec
Normal file
@@ -0,0 +1,295 @@
|
||||
#
|
||||
# spec file for package perl-Perl-Version (Version 1.010)
|
||||
#
|
||||
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
Name: perl-Perl-Version
|
||||
Version: 1.010
|
||||
Release: 1
|
||||
License: GPL+ or Artistic
|
||||
%define cpan_name Perl-Version
|
||||
Summary: Parse and manipulate Perl version strings
|
||||
Url: http://search.cpan.org/dist/Perl-Version/
|
||||
Group: Development/Libraries/Perl
|
||||
#Source: http://www.cpan.org/authors/id/A/AN/ANDYA/Perl-Version-%{version}.tar.gz
|
||||
Source: %{cpan_name}-%{version}.tar.bz2
|
||||
BuildRequires: perl(File::Slurp) >= 9999.12
|
||||
BuildRequires: perl(Getopt::Long) >= 2.34
|
||||
BuildRequires: perl(Scalar::Util)
|
||||
BuildRequires: perl
|
||||
BuildRequires: perl-macros
|
||||
BuildRequires: perl(Module::Build)
|
||||
Requires: perl(File::Slurp) >= 9999.12
|
||||
Requires: perl(Getopt::Long) >= 2.34
|
||||
Requires: perl(Scalar::Util)
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
BuildArch: noarch
|
||||
%{perl_requires}
|
||||
|
||||
%description
|
||||
Perl::Version provides a simple interface for parsing, manipulating and
|
||||
formatting Perl version strings.
|
||||
|
||||
Unlike version.pm (which concentrates on parsing and comparing version
|
||||
strings) Perl::Version is designed for cases where you'd like to parse a
|
||||
version, modify it and get back the modified version formatted like the
|
||||
original.
|
||||
|
||||
For example:
|
||||
|
||||
my $version = Perl::Version->new( '1.2.3' );
|
||||
$version->inc_version;
|
||||
print "$version\n";
|
||||
|
||||
prints
|
||||
|
||||
1.3.0
|
||||
|
||||
whereas
|
||||
|
||||
my $version = Perl::Version->new( 'v1.02.03' );
|
||||
$version->inc_version;
|
||||
print "$version\n";
|
||||
|
||||
prints
|
||||
|
||||
v1.03.00
|
||||
|
||||
Both are representations of the same version and they'd compare equal but
|
||||
their formatting is different.
|
||||
|
||||
Perl::Version tries hard to guess and recreate the format of the original
|
||||
version and in most cases it succeeds. In rare cases the formatting is
|
||||
ambiguous. Consider
|
||||
|
||||
1.10.03
|
||||
|
||||
Do you suppose that second component '10' is zero padded like the third
|
||||
component? Perl::Version will assume that it is:
|
||||
|
||||
my $version = Perl::Version->new( '1.10.03' );
|
||||
$version->inc_revision;
|
||||
print "$version\n";
|
||||
|
||||
will print
|
||||
|
||||
2.00.00
|
||||
|
||||
If all of the components after the first are the same length (two
|
||||
characters in this case) and any of them begins with a zero Perl::Version
|
||||
will assume that they're all zero padded to the same length.
|
||||
|
||||
The first component and any alpha suffix are handled separately. In each
|
||||
case if either of them starts with a zero they will be zero padded to the
|
||||
same length when stringifying the version.
|
||||
|
||||
Version Formats
|
||||
Perl::Version supports a few different version string formats.
|
||||
|
||||
* 1, 1.2
|
||||
|
||||
Versions that look like a number. If you pass a numeric value its
|
||||
string equivalent will be parsed:
|
||||
|
||||
my $version = Perl::Version->new( 1.2 );
|
||||
print "$version\n";
|
||||
|
||||
prints
|
||||
|
||||
1.2
|
||||
|
||||
In fact there is no special treatment for versions that resemble
|
||||
decimal numbers. This is worthy of comment only because it differs
|
||||
from version.pm which treats actual numbers used as versions as a
|
||||
special case and performs various transformations on the stored
|
||||
version.
|
||||
|
||||
* 1.2.3, 1.2.3.4
|
||||
|
||||
Simple versions with three or more components.
|
||||
|
||||
* v1.2.3
|
||||
|
||||
Versions with a leading 'v'.
|
||||
|
||||
* 5.008006
|
||||
|
||||
Fielded numeric versions. You'll likely have seen this in relation to
|
||||
versions of Perl itself. If a version string has a single decimal
|
||||
point and the part after the point is three more more digits long
|
||||
components are extracted from each group of three digits in the
|
||||
fractional part.
|
||||
|
||||
For example
|
||||
|
||||
my $version = Perl::Version->new( 1.002003004005006 );
|
||||
print $version->normal;
|
||||
|
||||
prints
|
||||
|
||||
v1.2.3.4.5.6
|
||||
|
||||
* vstring
|
||||
|
||||
Perls later than 5.8.1 support vstring format. A vstring looks like a
|
||||
number with more than one decimal point and (optionally) a leading
|
||||
'v'. The 'v' is mandatory for vstrings containing fewer than two
|
||||
decimal points.
|
||||
|
||||
Perl::Version will successfully parse vstrings
|
||||
|
||||
my $version = Perl::Version->new( v1.2 );
|
||||
print "$version\n";
|
||||
|
||||
prints
|
||||
|
||||
v1.2
|
||||
|
||||
Note that stringifying a Perl::Version constructed from a vstring
|
||||
will result in a regular string. Because it has no way of knowing
|
||||
whether the vstring constant had a 'v' prefix it always generates one
|
||||
when stringifying back to a version string.
|
||||
|
||||
* CVS version
|
||||
|
||||
A common idiom for users of CVS is to use keyword replacement to
|
||||
generate a version automatically like this:
|
||||
|
||||
$VERSION = version->new( qw$Revision: 2.7 $ );
|
||||
|
||||
Perl::Version does the right thing with such versions so that
|
||||
|
||||
my $version = Perl::Version->new( qw$Revision: 2.7 $ );
|
||||
$version->inc_revision;
|
||||
print "$version\n";
|
||||
|
||||
prints
|
||||
|
||||
Revision: 3.0
|
||||
|
||||
Real Numbers
|
||||
Real numbers are stringified before parsing. This has two
|
||||
implications: trailing zeros after the decimal point will be lost
|
||||
and any underscore characters in the number are discarded.
|
||||
|
||||
Perl allows underscores anywhere in numeric constants as an aid to
|
||||
formatting. These are discarded when Perl converts the number into
|
||||
its internal format. This means that
|
||||
|
||||
# Numeric version
|
||||
print Perl::Version->new( 1.001_001 )->stringify;
|
||||
|
||||
prints
|
||||
|
||||
1.001001
|
||||
|
||||
but
|
||||
|
||||
# String version
|
||||
print Perl::Version->new( '1.001_001' )->stringify;
|
||||
|
||||
prints
|
||||
|
||||
1.001_001
|
||||
|
||||
as expected.
|
||||
|
||||
In general you should probably avoid versions expressed either as
|
||||
decimal numbers or vstrings. The safest option is to pass a regular
|
||||
string to Perl::Version->new().
|
||||
|
||||
Alpha Versions
|
||||
By convention if a version string has suffix that consists of an
|
||||
underscore followed by one or more digits it represents an alpha or
|
||||
developer release. CPAN treats modules with such version strings
|
||||
specially to reflect their alpha status.
|
||||
|
||||
This alpha notation is one reason why using decimal numbers as
|
||||
versions is a bad idea. Underscore is a valid character in numeric
|
||||
constants which is discarded by Perl when a program's source is
|
||||
parsed so any intended alpha suffix will become part of the version
|
||||
number.
|
||||
|
||||
To be considered alpha a version must have a non-zero alpha
|
||||
component like this
|
||||
|
||||
3.0.4_001
|
||||
|
||||
Generally the alpha component will be formatted with leading zeros
|
||||
but this is not a requirement.
|
||||
|
||||
Component Naming
|
||||
A version number consists of a series of components. By Perl convention
|
||||
the first three components are named 'revision', 'version' and
|
||||
'subversion':
|
||||
|
||||
$ perl -V
|
||||
Summary of my perl5 (revision 5 version 8 subversion 6) configuration:
|
||||
|
||||
(etc)
|
||||
|
||||
Perl::Version follows that convention. Any component may be accessed by
|
||||
passing a number from 0 to N-1 to the the component manpage or the
|
||||
increment manpage but for convenience the first three components are
|
||||
aliased as the revision manpage, the version manpage and the subversion
|
||||
manpage.
|
||||
|
||||
$version->increment( 0 );
|
||||
|
||||
is the same as
|
||||
|
||||
$version->inc_revision;
|
||||
|
||||
and
|
||||
|
||||
my $subv = $version->subversion;
|
||||
|
||||
is the same as
|
||||
|
||||
my $subv = $version->component( 2 );
|
||||
|
||||
The alpha component is named 'alpha'.
|
||||
|
||||
Comparison with version.pm
|
||||
If you're familiar with version.pm you'll notice that there's a certain
|
||||
amount of overlap between what it does and this module. I originally
|
||||
created this module as a mutable subclass of version.pm but the
|
||||
requirement to be able to reformat a modified version to match the
|
||||
formatting of the original didn't sit well with version.pm's internals.
|
||||
|
||||
As a result this module is not dependent or based on version.pm.
|
||||
|
||||
%prep
|
||||
%setup -q -n %{cpan_name}-%{version}
|
||||
|
||||
%build
|
||||
%{__perl} Build.PL installdirs=vendor
|
||||
./Build build flags=%{?_smp_mflags}
|
||||
|
||||
%check
|
||||
./Build test
|
||||
|
||||
%install
|
||||
./Build install destdir=%{buildroot} create_packlist=0
|
||||
%perl_gen_filelist
|
||||
|
||||
%clean
|
||||
%{__rm} -rf %{buildroot}
|
||||
|
||||
%files -f %{name}.files
|
||||
%defattr(644,root,root,755)
|
||||
%doc Changes Notes.txt README
|
||||
|
||||
%changelog
|
Reference in New Issue
Block a user