diff options
author | Thierry Vignaud <thierry.vignaud@gmail.com> | 2020-04-28 10:55:48 +0200 |
---|---|---|
committer | Thierry Vignaud <thierry.vignaud@gmail.com> | 2020-04-29 14:47:51 +0200 |
commit | 70942e1fef37d8661b0a0f4d4ed1612dc6574455 (patch) | |
tree | d58ba834b9ea48afade391a4cf1b6160b60f5828 | |
parent | 34c3f9d61ef86a46e3b774130fe3877f4ec0ea32 (diff) | |
download | urpmi-70942e1fef37d8661b0a0f4d4ed1612dc6574455.tar urpmi-70942e1fef37d8661b0a0f4d4ed1612dc6574455.tar.gz urpmi-70942e1fef37d8661b0a0f4d4ed1612dc6574455.tar.bz2 urpmi-70942e1fef37d8661b0a0f4d4ed1612dc6574455.tar.xz urpmi-70942e1fef37d8661b0a0f4d4ed1612dc6574455.zip |
silent rpm --version during installation/removal
Calling "LC_ALL=C rpm --version" from urpm::install::install_logger() sometimes
causes the following to be displayed when using --urpmi-root:
"shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory"
Typically, we run into:
chdir("/") = 0
chroot("/home/tv/mga/pkgs/RPM/perl-URPM/mga7/") = 0
(...)
clone()
execve("/bin/sh", ["sh", "-c", "LC_ALL=C rpm --version"], ...
getcwd("(unreachable)/", 4095) = 15
So just caches the rpm version prior to the first transaction and voila
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | urpm/install.pm | 5 |
2 files changed, 6 insertions, 2 deletions
@@ -14,6 +14,9 @@ o try harder to find genhdlist2 in uninstalled CPAN modules o work without glibc-static-devel o workaround %find_lang sometimes failing on FreeBSD +- library: + o fix rpm version check causing strange warning messages: + "shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory" - testsuite: o add more extensive tests o describe it more diff --git a/urpm/install.pm b/urpm/install.pm index 0e4cd81b..174291c7 100644 --- a/urpm/install.pm +++ b/urpm/install.pm @@ -94,7 +94,7 @@ See L<URPM> for parameters =cut # install logger callback -my ($erase_logger, $index, $total_pkg, $uninst_count, $current_pkg); +my ($erase_logger, $index, $total_pkg, $uninst_count, $current_pkg, $rpm_version); sub install_logger { my ($urpm, $type, undef, $subtype, $amount, $total) = @_; local $| = 1; @@ -121,7 +121,7 @@ sub install_logger { $cnt = $pname ? $urpm->{logger_count} : '-'; } require urpm::select; - $index++ if urpm::select::_rpm_version() lt 4.13.0; + $index++ if $rpm_version lt 4.13.0; my $s = sprintf("%9s: %-22s", $cnt . "/" . $total_pkg, $pname); print $s; $s =~ / $/ or printf "\n%9s %-22s", '', ''; @@ -377,6 +377,7 @@ sub install { } elsif (!$options{noorder} && (@errors = $trans->order(%options))) { } else { $urpm->{readmes} = {}; + $rpm_version ||= urpm::select::_rpm_version(); _get_callbacks($urpm, $db, $trans, \%options, $install, $upgrade, scalar @trans_pkgs); |