From fc0ddace8073399dbfc4147b7d6f68a512ec4d88 Mon Sep 17 00:00:00 2001 From: Ilia Ross Date: Tue, 4 Feb 2025 14:21:18 +0200 Subject: [PATCH] Add support for `package_info` to also consider dependencies --- software/rpm-lib.pl | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/software/rpm-lib.pl b/software/rpm-lib.pl index 8d81b88eb..c13638477 100755 --- a/software/rpm-lib.pl +++ b/software/rpm-lib.pl @@ -51,8 +51,20 @@ local $n = $_[1] ? "$_[0]-$_[1]" : $_[0]; @tmp = ; chop(@tmp); local $ex = close(RPM); -if (!@tmp || $tmp[0] =~ /not\s+installed/) { return (); } -&open_execute_command(RPM, "rpm -q $n --queryformat \"%{DESCRIPTION}\"", 1, 1); +local $whatprovides = ""; +if (!@tmp || $tmp[0] =~ /not\s+installed/) { + &open_execute_command(RPM, "rpm -q --whatprovides $n --queryformat \"%{NAME}\\n%{GROUP}\\n%{ARCH}\\n%{VERSION}-%{RELEASE}\\n%{VENDOR}\\n%{INSTALLTIME}\\n\" 2>/dev/null", 1, 1); + @tmp = ; + chop(@tmp); + close(RPM); + if (!@tmp || $tmp[0] =~ /no\s+package\s+provides/) { + return () ; + } + else { + $whatprovides = " --whatprovides"; + } + } +&open_execute_command(RPM, "rpm -q$whatprovides $n --queryformat \"%{DESCRIPTION}\"", 1, 1); while() { $d .= $_; } close(RPM); return ($tmp[0], $tmp[1], $d, $tmp[2], $tmp[3], $tmp[4], &make_date($tmp[5]));