Bug 487304

Summary: OpenJDK packages should be installable side by side for both x86_64 and i386 architectures on the same system
Product: [Fedora] Fedora Reporter: Aleksander Adamowski <bugs-redhat>
Component: java-1.6.0-openjdkAssignee: Lillian Angel <langel>
Status: CLOSED DUPLICATE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: rawhideCC: dbhole, langel, lkundrak, mjw
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-02-26 16:31:15 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Aleksander Adamowski 2009-02-25 12:27:08 UTC
Description of problem:

Current openjdk packages for different architectures (x86_64 and i386) have file conflicts between them.

It would be desirable to eliminate these conflicts and make it possible to install openjdk RPMs for both architectures side by side, just like it's currently possible with shared libraries.

Rationale:
For some uses (e.g. running the Sun Java Wireless Toolkit - see http://forums.sun.com/thread.jspa?threadID=5217069) one has to install a 32-bit JDK for backwards compatibility.
When an analogous problem pops up with C/C++ based software, one installs an i386 version of glibc, libstc++ and/or compat libraries. For the offical Fedora OpenJDK packages it's not possible since i386 and x86_64 packages conflict with each other.

Version-Release number of selected component (if applicable):
java-1.6.0-openjdk-1.6.0.0-9.b14.fc10.x86_64


How reproducible:
On an x86_64 Fedora installation, try installing both i386 and x86_64 versions of OpenJDK.


Steps to Reproduce:
1. # yum install java-1.6.0-openjdk.x86_64 java-1.6.0-openjdk.i386
  
Actual results:

...
Transaction Check Error:
  package java-1.6.0-openjdk-1:1.6.0.0-9.b14.fc10.x86_64 (which is newer than java-1.6.0-openjdk-1:1.6.0.0-2b12.fc10.i386) is already installed
  file /usr/share/doc/java-1.6.0-openjdk-1.6.0.0/ChangeLog from install of java-1.6.0-openjdk-1:1.6.0.0-2b12.fc10.i386 conflicts with file from package java-1.6.0-openjdk-1:1.6.0.0-9.b14.fc10.x86_64
  file /usr/share/doc/java-1.6.0-openjdk-1.6.0.0/NEWS from install of java-1.6.0-openjdk-1:1.6.0.0-2b12.fc10.i386 conflicts with file from package java-1.6.0-openjdk-1:1.6.0.0-9.b14.fc10.x86_64
  file /usr/share/doc/java-1.6.0-openjdk-1.6.0.0/README from install of java-1.6.0-openjdk-1:1.6.0.0-2b12.fc10.i386 conflicts with file from package java-1.6.0-openjdk-1:1.6.0.0-9.b14.fc10.x86_64

It seems that the conflict between i386 and x86_64 packages is only in /usr/share/doc basic documentation files - ChangeLog, NEWS and README. It might be enough to make the directories keyed by package's architecture, e.g.:
/usr/share/doc/java-1.6.0-openjdk-1.6.0.0.x86_64
/usr/share/doc/java-1.6.0-openjdk-1.6.0.0.i386

Expected results:

1. Installation of both JDK's should proceed successfully.

2. it should be possible to simply run java and javac from respective directories and they should work like expected:
# /usr/lib/jvm/jre-1.6.0-openjdk.i386/bin/java -version
... outputs 32-bit JVM's version...
# /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java -version
... outputs 64-bit JVM's version...

3. Ideally, the default java/javac should be settable using the alternatives mechanism that's already in place:

Currently:

# alternatives --config java
There are 2 programs which provide 'java'.
  Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
   2           /usr/lib/jvm/jre-1.5.0-gcj/bin/java
   
Ideally:   
# alternatives --config java
There are 2 programs which provide 'java'.
  Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
   2           /usr/lib/jvm/jre-1.6.0-openjdk.i386/bin/java
   3           /usr/lib/jvm/jre-1.5.0-gcj/bin/java

Comment 1 Lillian Angel 2009-02-26 16:31:15 UTC

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