store the filename used to read the RPM into the header object
authorcturner <devnull@localhost>
Wed, 4 Sep 2002 15:18:02 +0000 (15:18 +0000)
committercturner <devnull@localhost>
Wed, 4 Sep 2002 15:18:02 +0000 (15:18 +0000)
CVS patchset: 5702
CVS date: 2002/09/04 15:18:02

perl-RPM2/RPM2.pm
perl-RPM2/test.pl

index 7eeed18..c08bab0 100644 (file)
@@ -4,9 +4,10 @@ use 5.00503;
 use strict;
 use DynaLoader;
 use Data::Dumper;
+use Cwd qw/realpath/;
 
 use vars qw/$VERSION/;
-$VERSION = '0.45';
+$VERSION = '0.46';
 use vars qw/@ISA/;
 @ISA = qw/DynaLoader/;
 
@@ -63,7 +64,7 @@ sub open_package {
   my $hdr = RPM2_C::_read_package_info(*FH);
   close FH;
 
-  $hdr = RPM2::Header->_new_raw($hdr, 1);
+  $hdr = RPM2::Header->_new_raw($hdr, 1, realpath($file));
 
   return $hdr;
 }
@@ -169,10 +170,12 @@ sub _new_raw {
   my $class = shift;
   my $c_header = shift;
   my $need_free = shift;
+  my $filename = shift;
 
   my $self = bless { }, $class;
   $self->{header} = $c_header;
   $self->{need_free} = $need_free;
+  $self->{filename} = $filename if defined $filename;
 
   return $self;
 }
@@ -220,6 +223,14 @@ sub is_source_package {
   return RPM2_C::_header_is_source($self->{header});
 }
 
+sub filename {
+  my $self = shift;
+  if (exists $self->{filename}) {
+    return $self->{filename};
+  }
+  return;
+}
+
 sub as_nvre {
   my $self = shift;
   my $epoch = $self->tag('epoch');
index 6d8c05d..bd92b60 100644 (file)
@@ -11,7 +11,7 @@ use strict;
 
 use Test;
 use strict;
-BEGIN { plan tests => 26 };
+BEGIN { plan tests => 28 };
 use RPM2;
 ok(1); # If we made it this far, we're ok.
 
@@ -76,6 +76,7 @@ foreach my $pkg ($db->find_by_requires("/bin/bash")) {
 }
 if (@pkg) {
   ok($pkg[0]->name);
+  ok(not defined $pkg[0]->filename);
 }
 
 my $pkg = RPM2->open_package("test-rpm-1.0-1.noarch.rpm");
@@ -89,6 +90,7 @@ ok($pkg->name eq 'test-rpm');
 ok($pkg->is_source_package);
 
 my $pkg2 = RPM2->open_package("test-rpm-1.0-1.noarch.rpm");
+ok($pkg2->filename);
 ok($pkg->compare($pkg2) == 0);
 ok(($pkg <=> $pkg2) == 0);
 ok(!($pkg < $pkg2));