Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 571242

Summary: dev-java/oracle-jdk-bin-1.8.0.66-r1 revdep mask causes revdep-rebuild to *always* want to emerge libreoffice
Product: Gentoo Linux Reporter: faminebadger
Component: [OLD] JavaAssignee: Java team <java>
Status: RESOLVED DUPLICATE    
Severity: normal    
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description faminebadger 2016-01-08 02:56:58 UTC
dev-java/oracle-jdk-bin-1.8.0.66-r1 contains the file /etc/revdep-rebuild/61-oracle-jdk-bin-1.8.

This file masks /opt/oracle-jdk-bin-1.8.0.66 from revdep-rebuild, causing it to ignore /opt/oracle-jdk-bin-1.8.0.66/libjawt.so:
>> SEARCH_DIRS_MASK="/opt/oracle-jdk-bin-1.8.0.66"

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-1.8.0.66 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:
>> SEARCH_DIRS="/opt/oracle-jdk-bin-1.8.0.66"

I wonder if that was what was intended all along?  The current behaviour makes no sense.


Reproducible: Always

Steps to Reproduce:
1. Have libreoffice and oracle-jdk-bin installed
2. Run revdep-rebuild -dip
3.
Actual Results:  
/opt/oracle-jdk-bin-1.8.0.66 in the mask dirs, but not in the search dirs.

libjawt.so reported as broken.

Libreoffice emerged.


Expected Results:  
/opt/oracle-jdk-bin-1.8.0.66 in the search dirs, not in the mask dirs.

No broken libraries found.

No rebuild of libreoffice.


Sample output:
...
	analyse(), masked directories:
		/lib/modules
		/lib32/modules
		/lib64/modules
		/opt/oracle-jdk-bin-1.8.0.66
...
 * 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)
	* /usr/lib64/libreoffice/program/libofficebean.so
	LibCheck.process_results(); total filepaths found: 1 in 0 milliseconds
 * Assign files to packages
	* /usr/lib64/libreoffice/program/libofficebean.so -> app-office/libreoffice-5.0.4.2
	assign_packages(); assigned 1 packages, 0 orphans in 454 milliseconds

emerge  --pretend --verbose --oneshot --complete-graph=y app-office/libreoffice:0
...
Comment 1 James Le Cuirot gentoo-dev 2016-01-08 15:01:05 UTC
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.

LD_LIBRARY_MASK="libjvm.so libjawt.so"

I have reproduced the issue here so the Python version is seemingly ignoring this line for some reason. I will investigate.
Comment 2 faminebadger 2016-01-11 18:43:02 UTC
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.
Comment 3 James Le Cuirot gentoo-dev 2016-01-13 22:14:53 UTC

*** This bug has been marked as a duplicate of bug 568480 ***