From ab22c28406edf9904ccf1006cef1d59c5baabb0f Mon Sep 17 00:00:00 2001 From: Rafael Garcia-Suarez Date: Thu, 2 Jun 2005 05:43:10 +0000 Subject: Don't shell out unless necessary --- urpm/sys.pm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'urpm') diff --git a/urpm/sys.pm b/urpm/sys.pm index 8c7ffb97..c8d65313 100644 --- a/urpm/sys.pm +++ b/urpm/sys.pm @@ -128,12 +128,20 @@ sub check_fs_writable () { #- create a plain rpm from an installed rpm and a delta rpm (in the current directory) #- returns the new rpm filename in case of success +#- params : +#- $deltarpm : full pathname of the deltarpm +#- $pkg : URPM::Package object corresponding to the deltarpm (optional) our $APPLYDELTARPM = '/usr/bin/applydeltarpm'; sub apply_delta_rpm { - my ($deltarpm) = @_; + my ($deltarpm, $pkg) = @_; -x $APPLYDELTARPM or return 0; -e $deltarpm or return 0; - my $rpm = qx(rpm -qp --qf '%{name}-%{version}-%{release}.%{arch}.rpm' '$deltarpm'); + my $rpm; + if ($pkg) { + $rpm = $pkg->name . '-' . $pkg->version . '-' . $pkg->release . '.' . $pkg->arch . '.rpm'; + } else { + $rpm = qx(rpm -qp --qf '%{name}-%{version}-%{release}.%{arch}.rpm' '$deltarpm'); + } $rpm or return 0; unlink $rpm; system($APPLYDELTARPM, '-vp', $deltarpm, $rpm); -- cgit v1.2.1