We have a build-server to provide binary packages for our clients. As ncurses-6.0 got stable the server built a package for it and rebuilt several packages which depends on it. One was readline-6.3_p8-r2 which now needs libncurses.so.6. But the readline package depends only on >=sys-libs/ncurses-5.9-r3 (without := at the end). Now a client wants to update and schedules readline before ncurses (as >=ncurses-5.9-r3 was already installed): Calculating dependencies... done! .. [binary R ] sys-libs/readline-6.3_p8-r2-2 .. [ebuild U ] sys-libs/ncurses-6.0-r1 [5.9-r5] USE="threads%* {-test%}" .. >>> Installing (3 of 46) sys-libs/readline-6.3_p8-r2::gentoo >>> Failed to execute postinst for sys-libs/readline-6.3_p8-r2, Log file: >>> '/var/tmp/portage/sys-libs/readline-6.3_p8-r2/temp/build.log build.log: >>> Extracting info * Package: sys-libs/readline-6.3_p8-r2 * Repository: gentoo * USE: amd64 kernel_linux elibc_glibc userland_GNU abi_x86_64 * FEATURES: compressdebug preserve-libs sandbox splitdebug userpriv usersandbox >>> cfg-update-1.8.2-r1: Checksum index is up-to-date ... >>> Extracting sys-libs/readline-6.3_p8-r2 * The ebuild phase 'postrm' has exited unexpectedly. This type of behavior .. sh: error while loading shared libraries: libncurses.so.6: cannot open shared object file: No such file or directory [sys-libs/readline-6.3_p8-r2] bash: error while loading shared libraries: libncurses.so.6: cannot open shared object file: No such file or directory * The ebuild phase 'postinst' has exited unexpectedly. This type of .. # emerge --info /bin/sh: error while loading shared libraries: libncurses.so.6: cannot open shared object file: No such file or directory Failed to validate a sane '/dev'. bash process substitution doesn't work; this may be an indication of a broken '/dev/fd'. At this point the system has a broken bash with all its consequences.
Great... I was afraid such a bug report could arise. That happens because this readline ebuilds still having EAPI-4 which does not support sub-slot dependencies...
And it is not as simple as just bumping readlines revision number to provide an EAPI >=5 ebuild?
commit de816e9be1f3db2925acbb33ee2d60ead8cd0837 Author: Lars Wendler <polynomial-c@gentoo.org> Date: Mon Dec 5 09:36:31 2016 sys-libs/readline: Revbumped remaining EAPI-4 ebuilds to EAPI-5. This is necessary to add sub-slot dependency for sys-libs/ncurses. Bumped straight to stable. Fixes Gentoo bug #601650. Package-Manager: portage-2.3.2