View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0017261||CentOS-7||ncurses||public||2020-04-16 18:31||2020-04-17 13:58|
|Summary||0017261: RPM install ordering algorithm allows RPMs with %post scripts that require to /bin/sh to install before ncurses-libs|
|Description||The bash package, that provides /usr/bin/bash (/usr/bin/sh link), requires ncurses-libs to provide libtinfo.so.5. If a package that requires /usr/bin/sh for its %post script is installed before the ncurses-libs package is installed, the scriptlet will fail. In the case of the libsepol package it provides a warning. In the case of glibc-headers, it errors, bringing the installation to a halt.|
The error manifest during the kickstart installation is:
... INFO packaging: /bin/sh: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory.
|Steps To Reproduce||I can reliably reproduce on it, with a given set of packages to be installed, by removing certain packages from being installed. The packages themselves do not matter, but what matters is that this shuffles the order in which packages are installed so that ncurses-libs is installed before any packages that require bash in their %post script are installed.|
|Additional Information||One proposed solution is that the bash package have a "Requires(pre): ncurses-libs" declaration. This should ensure that ncurses-libs is installed before the bash package is installed. Presumably, the implicit requires for packages that use bash during %post will then bring in both bash and ncurses-libs.|
Please be as kind as to refile this bug at bugzilla.redhat.com. Because CentOS is rebuilt from the sources of RHEL, it is for RH to fix the problem. Once they do that, CentOS picks the corrections by default.
Please also crosslink the bug from bugzilla.r.c with this one.
|Submitted to bugzilla.redhat.com, # 1825260 .|