FULL PRODUCT VERSION :
java version "1.6.0_02"
Java(TM) SE Runtime Environment (build 1.6.0_02-b05)
Java HotSpot(TM) Client VM (build 1.6.0_02-b05, mixed mode, sharing)
ADDITIONAL OS VERSION INFORMATION :
Linux rgm-dev.rivulet.com 2.6.9-22.ELsmp #1 SMP Mon Sep 19 18:32:14 EDT 2005 i686 i686 i386 GNU/Linux
A DESCRIPTION OF THE PROBLEM :
The JDK rpm installer uses a non-standard version naming scheme.
If you are writing a RPM installer that needs to specify a dependency it is expected that the referenced component follows the standard version scheme:
ie:
httpd-2.0.52-19.ent
Java RPM installer uses a version numbering scheme:
jdk-1.6.0_02-fcs
If you create a "Requires:" header field in the RPM spec file, and you add the JDK to that line, with the specific Java version that dependency checking does not work properly.
I believe the problem is because an underscore is used in the Java version.
The JDK RPM version name should be something like:
jdk-1.6.0-2
If this naming convention was used RPM dependency checking would work properly.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. Create an RPM
a. Use JDK 1.6.0_02
b. Use the following line in the RPM header
Requires: jdk = 1.6.0_02
c. Build RPM
d. Make sure the JDK is installed on the target machine.
e. Attempt to install your RPM that depends on the specific version of the JDK.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Your RPM installs with no errors.
ACTUAL -
Your RPM does not install due to a missing dependancy.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
error: Failed dependencies:
jdk = 1.6.0_02 is needed by yourrpm-00.00.00-B000.i386
REPRODUCIBILITY :
This bug can be reproduced always.
CUSTOMER SUBMITTED WORKAROUND :
Do not specify JDK as a dependency. Instead create pre-installation script to check if JDK rpm is installed.
java version "1.6.0_02"
Java(TM) SE Runtime Environment (build 1.6.0_02-b05)
Java HotSpot(TM) Client VM (build 1.6.0_02-b05, mixed mode, sharing)
ADDITIONAL OS VERSION INFORMATION :
Linux rgm-dev.rivulet.com 2.6.9-22.ELsmp #1 SMP Mon Sep 19 18:32:14 EDT 2005 i686 i686 i386 GNU/Linux
A DESCRIPTION OF THE PROBLEM :
The JDK rpm installer uses a non-standard version naming scheme.
If you are writing a RPM installer that needs to specify a dependency it is expected that the referenced component follows the standard version scheme:
ie:
httpd-2.0.52-19.ent
Java RPM installer uses a version numbering scheme:
jdk-1.6.0_02-fcs
If you create a "Requires:" header field in the RPM spec file, and you add the JDK to that line, with the specific Java version that dependency checking does not work properly.
I believe the problem is because an underscore is used in the Java version.
The JDK RPM version name should be something like:
jdk-1.6.0-2
If this naming convention was used RPM dependency checking would work properly.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. Create an RPM
a. Use JDK 1.6.0_02
b. Use the following line in the RPM header
Requires: jdk = 1.6.0_02
c. Build RPM
d. Make sure the JDK is installed on the target machine.
e. Attempt to install your RPM that depends on the specific version of the JDK.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Your RPM installs with no errors.
ACTUAL -
Your RPM does not install due to a missing dependancy.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
error: Failed dependencies:
jdk = 1.6.0_02 is needed by yourrpm-00.00.00-B000.i386
REPRODUCIBILITY :
This bug can be reproduced always.
CUSTOMER SUBMITTED WORKAROUND :
Do not specify JDK as a dependency. Instead create pre-installation script to check if JDK rpm is installed.