aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile.PL
diff options
context:
space:
mode:
authorPer Øyvind Karlsen <peroyvind@mandriva.org>2008-03-19 03:12:37 +0000
committerPer Øyvind Karlsen <peroyvind@mandriva.org>2008-03-19 03:12:37 +0000
commit6edbac559ab83e220650fa9b5b1cc61f14ad7800 (patch)
tree098873c618c4106b1e917190c63111163e140c60 /Makefile.PL
parentf600b411177df8fa2747c02d187054a214cbd6a8 (diff)
downloadperl-URPM-6edbac559ab83e220650fa9b5b1cc61f14ad7800.tar
perl-URPM-6edbac559ab83e220650fa9b5b1cc61f14ad7800.tar.gz
perl-URPM-6edbac559ab83e220650fa9b5b1cc61f14ad7800.tar.bz2
perl-URPM-6edbac559ab83e220650fa9b5b1cc61f14ad7800.tar.xz
perl-URPM-6edbac559ab83e220650fa9b5b1cc61f14ad7800.zip
improve rpm version detection
really fix callback size for rpm5.org versions
Diffstat (limited to 'Makefile.PL')
-rw-r--r--Makefile.PL27
1 files changed, 11 insertions, 16 deletions
diff --git a/Makefile.PL b/Makefile.PL
index f760e93..de082ad 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -16,13 +16,18 @@ unless (defined $rpm_path) {
defined $rpm_path or die "Can't find rpm on this system\n";
+sub hexversion {
+ my ($major, $minor, $micro) = (@_[0] =~ /(\d+)\.(\d+)\.?(\d+)?/);
+ return int($major<<16) + int($minor<<8) + int($micro<<0)
+}
+
my $version = `LC_ALL=C $rpm_path --version`;
# fix compiling with RCs:
$version =~ s/(-.*)|(\.DEVEL)//;
chomp $version;
$version =~ s/(RPM version )|(rpm \(RPM\) )//;
-my $pversion = eval "v$version";
-$pversion ge v4.2 or die "Unable to build URPM with too old (or undetected) rpm version $version\n";
+my $hversion = hexversion($version);
+$hversion ge hexversion(4.2) or die "Unable to build URPM with too old (or undetected) rpm version $version\n";
# to generate the ChangeLog depending on the checkout layout
my $commonusername = "../common/";
@@ -45,23 +50,13 @@ ChangeLog:
}
my @rpmflags;
-if ($pversion ge v4.4.90 && $pversion lt v4.5) {
+#print $hversion;
+if ($hversion ge hexversion(4.4.90) && $hversion lt hexversion(4.5)) {
# rpm.org version
- push @rpmflags, '-DRPM_ORG';
+ push @rpmflags, "-DRPM_ORG";
} else {
# rpm5.org version
- if ($pversion ge v4.4.6) {
- push @rpmflags, '-DRPM_446';
- }
- if ($pversion ge v4.4.8) {
- push @rpmflags, '-DRPM_448';
- }
- if ($pversion ge v4.5) {
- push @rpmflags, '-DRPM_450';
- }
- if ($pversion ge v5.0) {
- push @rpmflags, '-DRPM_500';
- }
+ push @rpmflags, "-DRPM_VERSION_CODE=$hversion";
}
my $ccflags = join(' ', '-Wall -fno-strict-aliasing', @rpmflags);