F22 System Wide Change: Legacy implementations of the Java platform in Fedora

Mikolaj Izdebski mizdebsk at redhat.com
Thu Feb 26 14:46:24 UTC 2015


On 02/26/2015 02:46 PM, Jiri Vanek wrote:
> On 02/26/2015 10:13 AM, Mikolaj Izdebski wrote:
>> On 02/26/2015 09:23 AM, Jiri Vanek wrote:
>>> On 02/26/2015 09:20 AM, Mikolaj Izdebski wrote:
>>>> On 02/26/2015 08:42 AM, Jiri Vanek wrote:
>>>>>>> Also, my proposal of introducing "java" metapackage (see my other
>>>>>>> post
>>>>>>> in this thread), which would always require the latest JDK, solves
>>>>>>> this
>>>>>>> problem in a different way, without modifying ordinary Java packages
>>>>>>> at all.
>>>>>>>
>>>>>
>>>>> May you be more exact with the metapackage? Before I come up with
>>>>> legacy, I hoped to solve the issues via some metapackage. At the end I
>>>>> gave up, because the touch of user was always necessary.
>>>>
>>>> I described it in much detail in other posts in this thread
>>>> (for example message-ID 54ECA102.1070506 at redhat.com)
>>>>
>>>
>>> Yah. Sorry. I walked across it later then replied this.
>>>
>>> However - I'm not convinced that metapackage will work as expected.  If
> 
> Still the metapackge's correct dependence have to be someones
> responsibility. Will you be able to take this burden?

Sure, I can create and maintain metapackage. (In this case it would
probably be subpackage of javapackages-tools.)

>>> nothing else it will need some changes in current infrastructure which I
>>> wonted to avoid.
>>
>> It works exactly how I described it.  Old JDK won't be removed during
> 
> Is it really wonted? If so, we can skip the "option one" and continue
> with with option two.

If you really think that old JDK should be removed during update and
insist on that then there is still a way to achieve that with versioned
obsoletes. Metapackage would Obsolete: java-1.N.0-openjdk* < e:v-(r+1),
where e:v-r is the latest evr of java-1.N.0-openjdk* when JDK N was
considered as "main JDK". I've just tested it and it works, see below.


Lets start with JDK 7 installed.

sh-4.3# rpm -qa | grep java
java-1.7.0-1.fc23.x86_64
java-1.7.0-openjdk-1.7.0-1.fc23.x86_64


Update installs JDK 8 and erases JDK 7.

sh-4.3# dnf -y update
Using metadata from Thu Feb 26 15:37:47 2015
Dependencies resolved.
Nothing to do.
sh-4.3# rm -rf /var/cache/dnf/
sh-4.3# rm -rf rpm
sh-4.3# dnf -y update
rpm                             966 kB/s | 1.3 kB     00:00
Using metadata from Thu Feb 26 15:38:06 2015
Dependencies resolved.
================================================================
 Package              Arch     Version              Repository
                                                           Size
================================================================
Installing:
 java-1.8.0-openjdk   x86_64   666:1.8.0-1.fc23     rpm   5.6 k
Upgrading:
 java                 x86_64   666:1.8.0-1.fc23     rpm   5.7 k
     replacing  java-1.7.0-openjdk.x86_64 666:1.7.0-1.fc23

Transaction Summary
================================================================
Install  1 Package
Upgrade  1 Package

Total size: 11 k
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Installing  : java-1.8.0-openjdk-666:1.8.0-1.fc23.x86_6   1/4
  Upgrading   : java-666:1.8.0-1.fc23.x86_64                2/4
  Cleanup     : java-666:1.7.0-1.fc23.x86_64                3/4
  Obsoleting  : java-1.7.0-openjdk-666:1.7.0-1.fc23.x86_6   4/4
  Verifying   : java-1.8.0-openjdk-666:1.8.0-1.fc23.x86_6   1/4
  Verifying   : java-666:1.8.0-1.fc23.x86_64                2/4
  Verifying   : java-666:1.7.0-1.fc23.x86_64                3/4
  Verifying   : java-1.7.0-openjdk-666:1.7.0-1.fc23.x86_6   4/4

Installed:
  java-1.8.0-openjdk.x86_64 666:1.8.0-1.fc23

Upgraded:
  java.x86_64 666:1.8.0-1.fc23

Complete!


After update only JDK 8 is installed:

sh-4.3# rpm -qa | grep java
java-1.8.0-openjdk-1.8.0-1.fc23.x86_64
java-1.8.0-1.fc23.x86_64


But user can still install JDK 7:

sh-4.3# dnf install -y java-1.7.0-openjdk
Using metadata from Thu Feb 26 15:38:06 2015
Dependencies resolved.
================================================================
 Package              Arch     Version              Repository
                                                           Size
================================================================
Installing:
 java-1.7.0-openjdk   x86_64   666:1.7.0-2.fc23     rpm   5.7 k

Transaction Summary
================================================================
Install  1 Package

Total size: 5.7 k
Installed size: 0
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Installing  : java-1.7.0-openjdk-666:1.7.0-2.fc23.x86_6   1/1
  Verifying   : java-1.7.0-openjdk-666:1.7.0-2.fc23.x86_6   1/1

Installed:
  java-1.7.0-openjdk.x86_64 666:1.7.0-2.fc23

Complete!


JDK 7 and 8 can coexist without any problem:

sh-4.3# rpm -qa | grep java
java-1.8.0-openjdk-1.8.0-1.fc23.x86_64
java-1.7.0-openjdk-1.7.0-2.fc23.x86_64
java-1.8.0-1.fc23.x86_64


-- 
Mikolaj Izdebski
Software Engineer, Red Hat
IRC: mizdebsk


More information about the devel mailing list