I am struggeling with portage to catch unavailable packages (packages being installed but portage not having that old version anymore). From time to time there is this issue, like today: > > emerge -aD @unavailable > lists nothing but > > eclean-dist --deep > says: > > The following unavailable installed packages were found > dev-python/setuptools_scm-3.4.3 Indeed, the version of setuptools_scm that I have is not in portage anymore only a newer one. FYI 1: In other cases emerge @unavailable *did* list something. FYI 2: I am aware that manually installing setuptools_scm would work around this.
I mentioned that sometimes emerge @unavailable catches packages, sometimes it doesn't. An update to this: I get the impression that @unvailable only catches cases where the ebuild is gone *and* there is no stable upgrade or downgrade possible (?). Here some more information: eclean-dist --deep terminates with: > The following unavailable installed packages were found > app-office/libreoffice-6.4.2.2 > app-office/libreoffice-l10n-6.4.2.2 > dev-libs/liborcus-0.15.3 > dev-python/setuptools_scm-3.4.3 This is the output of equery for these packages: > equery l -p libreoffice libreoffice-l10n liborcus setuptools_scm > * Searching for libreoffice ... > [-P-] [ ] app-office/libreoffice-6.3.4.2-r1:0 > [-P-] [ ~] app-office/libreoffice-6.3.5.2:0 > [-P-] [ -] app-office/libreoffice-6.3.9999:0 > [-P-] [ ~] app-office/libreoffice-6.4.3.2:0 > [-P-] [ -] app-office/libreoffice-6.4.9999:0 > [-P-] [ -] app-office/libreoffice-9999:0 > > * Searching for libreoffice-l10n ... > [-P-] [ ] app-office/libreoffice-l10n-6.3.4.2:0 > [-P-] [ ~] app-office/libreoffice-l10n-6.3.5.2:0 > [-P-] [ ~] app-office/libreoffice-l10n-6.4.3.2:0 > > * Searching for liborcus ... > [-P-] [ ] dev-libs/liborcus-0.14.1-r1:0/0.14 > [-P-] [ ~] dev-libs/liborcus-0.15.4:0/0.15 > [-P-] [ -] dev-libs/liborcus-9999:0/0.16 > > * Searching for setuptools_scm ... > [-P-] [ ] dev-python/setuptools_scm-3.5.0:0 Not worth mentioning: emerge -a @unvailable still outputs nothing. In case my assumption is true, the @unavailable package set does not make much sense to me.
The @unavailable set is only intended to work for unmerge actions, so it looks like we need to handle it differently when it's called for some other action. For reference, the set was added in this commit (which includes a _operations = ["unmerge"] setting): https://gitweb.gentoo.org/proj/portage.git/commit/?id=e3edde79ba4ccf903434812328a00308452bcd72