dev-java/oracle-jdk-bin-126.96.36.199-r1 contains the file /etc/revdep-rebuild/61-oracle-jdk-bin-1.8.
This file masks /opt/oracle-jdk-bin-188.8.131.52 from revdep-rebuild, causing it to ignore /opt/oracle-jdk-bin-184.108.40.206/libjawt.so:
This library is required by libreoffice, so revdep-rebuild *ALWAYS* rebuilds libreoffice, which takes bloody ages.
Given that the new python revdep-rebuild doesn't even include /opt/oracle-jdk-bin-220.127.116.11 in its default search paths, the configuration file is actually doing nothing useful at all.
To fix the problem, I had to change it from an explicit mask to an explicit include:
I wonder if that was what was intended all along? The current behaviour makes no sense.
Steps to Reproduce:
1. Have libreoffice and oracle-jdk-bin installed
2. Run revdep-rebuild -dip
/opt/oracle-jdk-bin-18.104.22.168 in the mask dirs, but not in the search dirs.
libjawt.so reported as broken.
/opt/oracle-jdk-bin-22.214.171.124 in the search dirs, not in the mask dirs.
No broken libraries found.
No rebuild of libreoffice.
analyse(), masked directories:
* Checking dynamic linking consistency
analyse(), Searching for 26805 libs, bins within 30451 libraries and links
LibCheck.__init__(), new searchlibs: ['32', '64']
LibCheck.search(), Checking for broken 32 bit libs
LibCheck.search(), Checking for broken 64 bit libs
LibCheck.search(); FOUND: 64bit, libjawt.so, /usr/lib64/libreoffice/program/libofficebean.so
LibCheck.search(); Total found: 1 libs, 1 files in 1782 milliseconds
* Broken files that requires: libjawt.so (64 bits)
LibCheck.process_results(); total filepaths found: 1 in 0 milliseconds
* Assign files to packages
* /usr/lib64/libreoffice/program/libofficebean.so -> app-office/libreoffice-126.96.36.199
assign_packages(); assigned 1 packages, 0 orphans in 454 milliseconds
emerge --pretend --verbose --oneshot --complete-graph=y app-office/libreoffice:0
I'm afraid you're a little off the mark. The mask is there to prevent oracle-jdk-bin from being rebuilt and that makes sense because it's a binary package.
I will investigate whether it's still needed based on what you said but the old revdep-rebuild is still installed with gentoolkit and people may still have the older package installed. I wasn't even aware of the Python version until now.
The link to libjawt.so on libofficebean.so is supposed to be left dangling and that's why it's being flagged up for a rebuild. The original revdep-rebuild did not suffer from this problem because baselayout-java installs /etc/revdep-rebuild/60-java, which has this.
I have reproduced the issue here so the Python version is seemingly ignoring this line for some reason. I will investigate.
Ok, I see what you mean - yes, if the library is supposed to be masked but isn't being so, then fixing that is preferable to my solution.
*** This bug has been marked as a duplicate of bug 568480 ***