A DESCRIPTION OF THE PROBLEM :
The rpm jdk-8u171-linux-x64.rpm is installing into the /usr/java/jdk1.8.0_171-amd64 directory.
This should be installing into the "/usr/java/jdk1.8.0_171" directory.
This is directly related to the previous bug reports that are being closed:
- https://bugs.openjdk.java.net/browse/JDK-8201851
- https://bugs.openjdk.java.net/browse/JDK-8202320
https://bugs.openjdk.java.net/browse/JDK-8202320 is reporting that this was a conscious decision to add -amd64 in the directory name to allow side by side installs of the rpms:
----
Installation directory names were changed as a fix for JDK-8191608.
----
As the reporter mentions (on JDK-8202320) this breaks a large amount of conventions (based on the all the previous jdk installs over time), by adding the "-amd64" chipset reference in the directory name.
Additionally this fix does not allow side by side installs of 151, 161 and 171, as the rpm package name is the same. It is not possible to install 2 versions of the same named rpm on a system using the yum package manager
----
rpm -qip jdk-8u171-linux-x64.rpm
Name : jdk1.8
Epoch : 2000
Version : 1.8.0_171
----
----
rpm -qip jdk-8u161-linux-x64.rpm
Name : jdk1.8
Epoch : 2000
Version : 1.8.0_161
----
----
rpm -qip jdk-8u151-linux-x64.rpm
Name : jdk1.8
Epoch : 2000
Version : 1.8.0_151
----
Is it not possible to go back to the name convention of having the version number in the RPM package name; like that of 144, 141, 131 etc.
----
rpm -qip jdk-8u131-linux-x64.rpm
Name : jdk1.8.0_131
Epoch : 2000
Version : 1.8.0_131
----
----
rpm -qip jdk-8u141-linux-x64.rpm
Name : jdk1.8.0_141
Epoch : 2000
Version : 1.8.0_141
----
----
rpm -qip jdk-8u144-linux-x64.rpm
Name : jdk1.8.0_144
Epoch : 2000
Version : 1.8.0_144
----
REGRESSION : Last worked in version 8u171
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Attempt to install jdk-8u171-linux-x64.rpm and jdk-8u161-linux-x64.rpm on the same system, using yum. This is not possible. 171 is marked as an upgrade of 161, and as a result the yum package manager removes 8u161
Attempt to install jdk-8u141-linux-x64.rpm, jdk-8u144-linux-x64.rpm, jdk-8u131-linux-x64.rpm on the same system. You can as the are separately named rpms. jdk8u151 broke/stopped this convention; that allows multiple jdk versions on a system (due to a rename of the rpm package to "jdk1.8")
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Ability to have more that one JDK install available on a system, via the RPM packing install distribution
yum list installed | grep jdk
jdk1.8.0_131.x86_64 2000:1.8.0_131-fcs installed
jdk1.8.0_141.x86_64 2000:1.8.0_141-fcs installed
jdk1.8.0_144.x86_64 2000:1.8.0_144-fcs installed
----
drwxr-xr-x 9 root root 4096 May 1 22:51 jdk1.8.0_131
drwxr-xr-x 9 root root 4096 May 1 22:51 jdk1.8.0_141
drwxr-xr-x 9 root root 4096 May 1 22:52 jdk1.8.0_144
ACTUAL -
jdk-8u171-linux-x64.rpm installing into /usr/java/jdk1.8.0_171-amd64, and being marked as an update on 161. The result being that if yum is used to install 8u171 it will remove 8u161
----
sudo yum install jdk-8u171-linux-x64.rpm
Loaded plugins: priorities, s3iam, update-motd, upgrade-helper
Examining jdk-8u171-linux-x64.rpm: 2000:jdk1.8-1.8.0_171-fcs.x86_64
Marking jdk-8u171-linux-x64.rpm as an update to 2000:jdk1.8-1.8.0_161-fcs.x86_64
Resolving Dependencies
--> Running transaction check
---> Package jdk1.8.x86_64 2000:1.8.0_161-fcs will be updated
---> Package jdk1.8.x86_64 2000:1.8.0_171-fcs will be an update
--> Finished Dependency Resolution
Dependencies Resolved
=================================================================================================================================================================================================================================================
Package Arch Version Repository Size
=================================================================================================================================================================================================================================================
Updating:
jdk1.8 x86_64 2000:1.8.0_171-fcs /jdk-8u171-linux-x64 279 M
Transaction Summary
=================================================================================================================================================================================================================================================
Upgrade 1 Package
Total size: 279 M
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Updating : 2000:jdk1.8-1.8.0_171-fcs.x86_64 1/2
Unpacking JAR files...
tools.jar...
plugin.jar...
javaws.jar...
deploy.jar...
rt.jar...
jsse.jar...
charsets.jar...
localedata.jar...
Cleanup : 2000:jdk1.8-1.8.0_161-fcs.x86_64 2/2
Verifying : 2000:jdk1.8-1.8.0_171-fcs.x86_64 1/2
Verifying : 2000:jdk1.8-1.8.0_161-fcs.x86_64 2/2
Updated:
jdk1.8.x86_64 2000:1.8.0_171-fcs
----
ls -l /usr/java/
total 16
lrwxrwxrwx 1 root root 16 May 1 22:56 default -> /usr/java/latest
drwxr-xr-x 9 root root 4096 May 1 22:51 jdk1.8.0_131
drwxr-xr-x 9 root root 4096 May 1 22:51 jdk1.8.0_141
drwxr-xr-x 9 root root 4096 May 1 22:52 jdk1.8.0_144
drwxr-xr-x 9 root root 4096 May 1 22:57 jdk1.8.0_171-amd64
lrwxrwxrwx 1 root root 28 May 1 22:57 latest -> /usr/java/jdk1.8.0_171-amd64
We expect jdk1.8.0_161 to remain on the system, but it does not.
yum list installed | grep jdk
jdk1.8.x86_64 2000:1.8.0_171-fcs installed
jdk1.8.0_131.x86_64 2000:1.8.0_131-fcs installed
jdk1.8.0_141.x86_64 2000:1.8.0_141-fcs installed
jdk1.8.0_144.x86_64 2000:1.8.0_144-fcs installed
----
Are we able to go back to naming the RPM with the version number in the package name?, and can we remove "-amd64" from the directory name.
-----
Or is it the case that we are saying now that:
We allow you to have different major versions: jdk1.8, jdk9, jdk10. But we are not allowing multiple versions of the same major version: jdk1.8u161, jdk1.8u171 And that allowing u131, u141, u144 was in fact incorrect name convention; and this is what https://bugs.openjdk.java.net/browse/JDK-8191608 is fixing? If this is the case; bob on. JDK-8191608 achieves the goal. But what is the reason for the directory naming convention change to include the chipset name in the directory (-amd64)?
Many Thanks
/dom
FREQUENCY : always