aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Youri/Package/RPM4.pm
diff options
context:
space:
mode:
authorFlorent Villard <warly@mandriva.com>2006-10-16 16:48:54 +0000
committerFlorent Villard <warly@mandriva.com>2006-10-16 16:48:54 +0000
commit3029e1045ff2c8f2db69db802dd7a57ea2fc6ab7 (patch)
tree21bb1f70ffd3c17cbef66f085947335e69aeedb5 /lib/Youri/Package/RPM4.pm
parentaf1ad9e624a59c41149e82da65585bb918857ba1 (diff)
downloadmga-youri-core-3029e1045ff2c8f2db69db802dd7a57ea2fc6ab7.tar
mga-youri-core-3029e1045ff2c8f2db69db802dd7a57ea2fc6ab7.tar.gz
mga-youri-core-3029e1045ff2c8f2db69db802dd7a57ea2fc6ab7.tar.bz2
mga-youri-core-3029e1045ff2c8f2db69db802dd7a57ea2fc6ab7.tar.xz
mga-youri-core-3029e1045ff2c8f2db69db802dd7a57ea2fc6ab7.zip
merging dev with upstream
Diffstat (limited to 'lib/Youri/Package/RPM4.pm')
-rw-r--r--lib/Youri/Package/RPM4.pm55
1 files changed, 28 insertions, 27 deletions
diff --git a/lib/Youri/Package/RPM4.pm b/lib/Youri/Package/RPM4.pm
index 5437a3d..306c32f 100644
--- a/lib/Youri/Package/RPM4.pm
+++ b/lib/Youri/Package/RPM4.pm
@@ -3,14 +3,11 @@ package Youri::Package::RPM4;
=head1 NAME
-Youri::Package::URPM - URPM-based rpm package implementation
+Youri::Package::RPM4 - URPM-based rpm package implementation
=head1 DESCRIPTION
-This is an URPM-based L<Youri::Package> implementation for rpm.
-
-It is merely a wrapper over URPM::Package class, with a more structured
-interface.
+This is an RPM4-based L<Youri::Package> implementation for rpm.
=cut
@@ -24,7 +21,7 @@ use File::Spec;
use Scalar::Util qw/refaddr/;
use base 'Youri::Package::RPM';
use overload
- '""' => '_to_string',
+ '""' => 'as_string',
'0+' => '_to_number',
fallback => 1;
@@ -32,7 +29,7 @@ use overload
=head2 new(%args)
-Creates and returns a new Youri::Package::URPM object.
+Creates and returns a new Youri::Package::RPM4 object.
Specific parameters:
@@ -44,7 +41,7 @@ Path of file to use for creating this package.
=item header $header
-L<URPM::Package> object to use for creating this package.
+L<RPM4::Header> object to use for creating this package.
=back
@@ -99,7 +96,7 @@ sub _depsense2flag {
return \@flags;
}
-sub compare_ranges {
+sub check_ranges_compatibility {
my ($class, $range1, $range2) = @_;
my @deps1 = split(/ /, $range1);
my @deps2 = split(/ /, $range2);
@@ -138,18 +135,11 @@ sub get_release {
return $self->{_header}->tag('release');
}
-sub get_revision_name {
- my ($self) = @_;
- croak "Not a class method" unless ref $self;
-
- return join('-', ($self->get_name, $self->get_version, $self->get_release));
-}
-
-sub get_full_name {
+sub get_revision {
my ($self) = @_;
croak "Not a class method" unless ref $self;
- return $self->{_header}->queryformat('%{NAME}-%{VERSION}-%{RELEASE}.%|SOURCERPM?{%{ARCH}}:{src}|');
+ return $self->{_header}->queryformat('%|EPOCH?{%{EPOCH}:}:{}|%{VERSION}-%{RELEASE}');
}
sub get_file_name {
@@ -159,6 +149,7 @@ sub get_file_name {
return $self->{_header}->queryformat('%{NAME}-%{VERSION}-%{RELEASE}.%|SOURCERPM?{%{ARCH}}:{src}|.rpm');
}
+
sub get_arch {
my ($self) = @_;
croak "Not a class method" unless ref $self;
@@ -194,13 +185,6 @@ sub get_packager {
return $self->{_header}->tag('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;
@@ -378,8 +362,18 @@ sub get_last_change {
];
}
-sub _to_string {
- return $_[0]->{_header}->fullname();
+sub as_string {
+ my ($self) = @_;
+ croak "Not a class method" unless ref $self;
+
+ return $self->{_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 {
@@ -393,6 +387,13 @@ sub compare {
return $self->{_header}->compare($package->{_header}) || 0;
}
+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;