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

Jiri Vanek jvanek at redhat.com
Fri Feb 27 10:50:30 UTC 2015


On 02/27/2015 11:48 AM, Severin Gehwolf wrote:
> On Thu, 2015-02-26 at 15:46 +0100, Mikolaj Izdebski wrote:
>> 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
>
> I very much like this approach!
>


Even with the whole complexity?
https://lists.fedoraproject.org/pipermail/devel/2015-February/208563.html

J.




More information about the devel mailing list