1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
use strict;
use ExtUtils::MakeMaker;
# where to find the rpm utility
my $rpm_path = $ENV{RPM_PATH}; # this overrides
unless (defined $rpm_path) {
for (qw(/bin/rpm /usr/bin/rpm)) {
if (-x) {
$rpm_path = $_;
last;
}
}
}
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 $hversion = hexversion($version);
$hversion ge hexversion("4.13") or die "Unable to build URPM with too old (or undetected) rpm version $version\n";
my @rpmflags;
my $ldflags = `pkg-config --libs rpm` . ' -lrpmbuild';
if ($hversion ge hexversion("4.13.0") && $hversion lt hexversion("5.0")) {
# rpm.org version 4.13.0
push @rpmflags, "-DRPM4140";
}
my $ccflags = join(' ', '-Wall -Wextra -fno-strict-aliasing', @rpmflags);
print "Found RPM version $version (compiling with flags: $ccflags)\n";
WriteMakefile(
NAME => 'URPM',
ABSTRACT_FROM => 'URPM.pm',
AUTHOR => 'Thierry Vignaud',
LICENSE => 'perl_5',
CONFIGURE_REQUIRES => {
'ExtUtils::MakeMaker' => '6.64',
},
PREREQ_PM => {
'MDV::Packdrakeng' => '1.00', # for URPM::Build
},
'TEST_REQUIRES' => {
'Test::Pod' => '1.00',
},
META_MERGE => {
'meta-spec' => { version => 2 },
resources => {
repository => {
type => 'git',
url => 'git://git.mageia.org/software/rpm/perl-URPM/',
web => 'http://gitweb.mageia.org/software/rpm/perl-URPM/',
},
},
release_status => 'stable'
},
MIN_PERL_VERSION => '5.008001',
CCFLAGS => $ccflags,
VERSION_FROM => 'URPM.pm',
LIBS => [ $ldflags ],
INC => '-I/usr/include/rpm',
dist => { COMPRESS => "xz -f", SUFFIX => ".xz" },
realclean => { FILES => "t/RPMS/noarch/*" },
);
|