X-Git-Url: https://git.deb.at/?p=deb%2Fpackages.git;a=blobdiff_plain;f=lib%2FDeb%2FVersions.pm;h=35f0cb5d5665e2a20dbc7a5104654f2a10832686;hp=53da03076329001a90359ee473630e4ac450190d;hb=c185991379b2754822262d4fcc6559481cef430c;hpb=6364bba4cd61bf45d1b085f0530d1fef5bd2baf0 diff --git a/lib/Deb/Versions.pm b/lib/Deb/Versions.pm index 53da030..35f0cb5 100644 --- a/lib/Deb/Versions.pm +++ b/lib/Deb/Versions.pm @@ -70,11 +70,28 @@ our @EXPORT = qw( version_cmp version_sort suites_cmp suites_sort ); our $VERSION = v1.0.0; -sub version_cmp { +BEGIN { + eval { + use AptPkg::Config '$_config'; + use AptPkg::System '$_system'; + use AptPkg::Version; + + $_config->init; + $_system = $_config->system; + my $apt_ver = $_system->versioning; + *version_cmp = sub { return $apt_ver->compare(@_) }; + }; + unless( *version_cmp ){ + *version_cmp = \&version_cmp_pp; + } +} + +my $re = qr/^(?:(\d+):)?([\w.+:~-]+?)(?:-([\w+.~]+))?$/; +sub version_cmp_pp { + return 0 if $_[0] eq $_[1]; my ( $ver1, $ver2 ) = @_; my ( $e1, $e2, $u1, $u2, $d1, $d2 ); - my $re = qr/^(?:(\d+):)?([\w.+:~-]+?)(?:-([\w+.~]+))?$/; if ( $ver1 =~ $re ) { ( $e1, $u1, $d1 ) = ( $1, $2, $3 ); $e1 ||= 0;