package Build;
-our $expand_dbg;
-
use strict;
use Digest::MD5;
-
use Build::Rpm;
-use Build::Deb;
+
+our $expand_dbg;
+our $strip_versions;
+
+our $do_rpm;
+our $do_deb;
+
+sub import {
+ for (@_) {
+ $do_rpm = 1 if $_ eq ':rpm';
+ $do_deb = 1 if $_ eq ':deb';
+ }
+ $do_rpm = $do_deb = 1 if !$do_rpm && !$do_deb;
+ if ($do_deb) {
+ require Build::Deb;
+ }
+}
my $std_macros = q{
}
push @ss, shift @s;
if (@s && $s[0] =~ /^[<=>]/) {
- $ss[-1] .= " $s[0] $s[1]";
+ $ss[-1] .= " $s[0] $s[1]" unless $strip_versions;
shift @s;
shift @s;
}
sub parse {
my ($cf, $fn, @args) = @_;
- return Build::Rpm::parse($cf, $fn, @args) if $fn =~ /\.spec$/;
- return Build::Deb::parse($cf, $fn, @args) if $fn =~ /\.dsc$/;
+ return Build::Rpm::parse($cf, $fn, @args) if $do_rpm && $fn =~ /\.spec$/;
+ return Build::Deb::parse($cf, $fn, @args) if $do_deb && $fn =~ /\.dsc$/;
return undef;
}
$handle = $binname->[1];
$binname = $binname->[0];
}
- return Build::Rpm::query($handle, $withevra) if $binname =~ /\.rpm$/;
- return Build::Deb::query($handle, $withevra) if $binname =~ /\.deb$/;
+ return Build::Rpm::query($handle, $withevra) if $do_rpm && $binname =~ /\.rpm$/;
+ return Build::Deb::query($handle, $withevra) if $do_deb && $binname =~ /\.deb$/;
return undef;
}
sub queryhdrmd5 {
my ($binname) = @_;
- return Build::Rpm::queryhdrmd5($binname) if $binname =~ /\.rpm$/;
- return Build::Deb::queryhdrmd5($binname) if $binname =~ /\.deb$/;
+ return Build::Rpm::queryhdrmd5($binname) if $do_rpm && $binname =~ /\.rpm$/;
+ return Build::Deb::queryhdrmd5($binname) if $do_deb && $binname =~ /\.deb$/;
return undef;
}
if ($path =~ /\.rpm$/) {
my %res = Build::Rpm::rpmq($path, 1000, 1022, 1047, 1049, 1048, 1050, 1112, 1113);
next unless %res;
- Build::Rpm::rpmq_add_flagsvers(\%res, 1047, 1112, 1113);
- Build::Rpm::rpmq_add_flagsvers(\%res, 1049, 1048, 1050);
+ Build::Rpm::add_flagsvers(\%res, 1047, 1112, 1113);
+ Build::Rpm::add_flagsvers(\%res, 1049, 1048, 1050);
my $id = $known;
$id =~ s/.*-//;
if ($known ne "$res{1000}->[0].$res{1022}->[0]-$id") {