aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Youri/Package/URPM.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Youri/Package/URPM.pm')
-rw-r--r--lib/Youri/Package/URPM.pm77
1 files changed, 20 insertions, 57 deletions
diff --git a/lib/Youri/Package/URPM.pm b/lib/Youri/Package/URPM.pm
index ea6d546..0691d83 100644
--- a/lib/Youri/Package/URPM.pm
+++ b/lib/Youri/Package/URPM.pm
@@ -23,7 +23,7 @@ use Expect;
use Scalar::Util qw/refaddr/;
use base 'Youri::Package::RPM';
use overload
- '""' => '_to_string',
+ '""' => 'as_string',
'0+' => '_to_number',
fallback => 1;
@@ -90,7 +90,7 @@ sub compare_versions {
return URPM::rpmvercmp($version1, $version2);
}
-sub compare_ranges {
+sub check_ranges_compatibility {
my ($class, $range1, $range2) = @_;
return URPM::ranges_overlap($range1, $range2);
@@ -110,31 +110,6 @@ sub get_version {
return $self->{_header}->version();
}
-sub get_full_version {
- my ($self) = @_;
- croak "Not a class method" unless ref $self;
-
- return $self->{_header}->epoch() ."-" . $self->{_header}->version() . "-". $self->{_header}->release()
-}
-
-sub range_check {
- my ($self, $obsolete, $package) = @_;
- croak "Not a class method" unless ref $self;
- my $obs = $obsolete->[Youri::Package::DEPENDENCY_NAME];
- my $range = $obsolete->[Youri::Package::DEPENDENCY_RANGE];
- my ($flag, $version) = $range =~ /(\S+)\s+(.*)/;
- if ($version) {
- my ($epoch, $ver, $release) = $version =~ /(?:(\d+):)?([^-]+(?:-[^-]*)?)/;
- $release ||= '0';
- $epoch ||= '0';
- $range = "$flag $epoch-$ver-$release";
- my $full_version = $package->get_full_version;
- return URPM::ranges_overlap($range, "== $full_version")
- } else {
- return 1
- }
-}
-
sub get_release {
my ($self) = @_;
croak "Not a class method" unless ref $self;
@@ -142,18 +117,11 @@ sub get_release {
return $self->{_header}->release();
}
-sub get_revision_name {
- my ($self) = @_;
- croak "Not a class method" unless ref $self;
-
- return join('-', ($self->{_header}->fullname())[0 .. 2]);
-}
-
-sub get_full_name {
+sub get_revision {
my ($self) = @_;
croak "Not a class method" unless ref $self;
- return $self->{_header}->fullname();
+ return $self->{_header}->queryformat('%|EPOCH?{%{EPOCH}:}:{}|%{VERSION}-%{RELEASE}');
}
sub get_file_name {
@@ -198,13 +166,6 @@ sub get_packager {
return $self->{_header}->packager();
}
-sub get_file {
- my ($self) = @_;
- croak "Not a class method" unless ref $self;
-
- return $self->{_file};
-}
-
sub is_source {
my ($self) = @_;
croak "Not a class method" unless ref $self;
@@ -369,15 +330,18 @@ sub get_last_change {
];
}
-sub get_buildhost {
+sub as_string {
my ($self) = @_;
croak "Not a class method" unless ref $self;
-
- return $self->{_header}->buildhost();
+
+ return $self->{_header}->fullname();
}
-sub _to_string {
- return $_[0]->{_header}->fullname();
+sub as_formated_string {
+ my ($self, $format) = @_;
+ croak "Not a class method" unless ref $self;
+
+ return $self->{_header}->queryformat($format);
}
sub _to_number {
@@ -391,6 +355,13 @@ sub compare {
return $self->{_header}->compare_pkg($package->{_header});
}
+sub satisfy_range {
+ my ($self, $range) = @_;
+ croak "Not a class method" unless ref $self;
+
+ return $self->check_range_compatibility($self->get_revision(), $range);
+}
+
sub sign {
my ($self, $name, $path, $passphrase) = @_;
croak "Not a class method" unless ref $self;
@@ -400,16 +371,13 @@ sub sign {
croak "Unsignable package, parent directory is read-only"
unless -w $parent;
- # FIXME Will have to change that
- return !system("sudo -H /root/bin/resign_cooker $self->{_file}");
-
my $command =
'LC_ALL=C rpm --resign ' . $self->{_file} .
' --define "_gpg_name ' . $name . '"' .
' --define "_gpg_path ' . $path . '"';
my $expect = Expect->spawn($command) or die "Couldn't spawn command $command: $!\n";
$expect->log_stdout(0);
- $expect->expect(200, -re => 'Enter pass phrase:');
+ $expect->expect(20, -re => 'Enter pass phrase:');
$expect->send("$passphrase\n");
$expect->soft_close();
@@ -422,11 +390,6 @@ sub extract {
system("rpm2cpio $self->{_file} | cpio -id >/dev/null 2>&1");
}
-sub is_debug {
- my ($self) = @_;
- return $self->{_header}->name() =~ /-debug$/;
-}
-
=head1 COPYRIGHT AND LICENSE
Copyright (C) 2002-2006, YOURI project