[opensuse-buildservice] Inconsistency between rpm -qp --provides and createrpmdeps for sun jdk package.
rpm -qp --provides j/jdk-1_5_0_17-linux-amd64.rpm jre = 1.5.0_17 j2sdk = 1.5.0_17 j2re = 1.5.0_17 jaxp_parser_impl xml-commons-apis jdk = 2000:1.5.0_17-fcs If, on the other hand, I do: ./build/createrpmdeps j/ F:jdk.x86_64-1247663943/43205785/222924731: j/jdk-1_5_0_17-linux-amd64.rpm P:jdk.x86_64-1247663943/43205785/222924731: jre = 1.5.0_17 j2sdk = 1.5.0_17 j2re = 1.5.0_17 jaxp_parser_impl xml-commons-apis R:jdk.x86_64-1247663943/43205785/222924731: rpmlib(VersionedDependencies) <= 3.0.3-1 glibc >= 2.1.2-11 sh-utils >= 2.0-1 fileutils >= 4.0-8 gawk >= 3.0.4-1 textutils >= 2.0-2 /bin/sh I:jdk.x86_64-1247663943/43205785/222924731: jdk-1.5.0_17-fcs 1226310485 It looks like there is an inconsistency in the P: line. I used a hex editor and changed the following fields in a copy of the file: tag offset old new 1000 2 jdk Jdk 1001 6 1.5.0_17 1.5.8_17 1002 15 fcs fCs 1003 20 2000 1857 Now rpm -qp --provides z.amd64.rpm jre = 1.5.0_17 j2sdk = 1.5.0_17 j2re = 1.5.0_17 jaxp_parser_impl xml-commons-apis Jdk = 1857:1.5.8_17-fCs The behavior of adding a "%name = %epoch:%version-%release" provides line is not consistent. This package was produce by sun.com. Here is the full rpm -qip for it: Name : jdk Relocations: /usr/java Version : 1.5.0_17 Vendor: Sun Microsystems, Inc. Release : fcs Build Date: Mon 10 Nov 2008 01:48:05 AM PST Install Date: (not installed) Build Host: tiger-linuxamd.sfbay.sun.com Group : Development/Tools Source RPM: jdk-1.5.0_17-fcs.src.rpm Size : 76188127 License: Sun Microsystems Binary Code License (BCL) Signature : (none) Packager : Java Software <j2se-comments@java.sun.com> URL : http://java.sun.com/ Summary : Java(TM) 2 Platform Standard Edition Runtime Environment Development Kit Description : The Java 2 Platform Standard Edition Development Kit (JDK) includes both the runtime environment (Java virtual machine, the Java platform classes and supporting files) and development tools (compilers, debuggers, tool libraries and other tools). The JDK is a development environment for building applications, applets and components that can be deployed with the Java 2 Platform Standard Edition Runtime Environment. Distribution: (none) Thanks, Robin Holt -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Wed, Jul 15, 2009 at 08:29:10AM -0500, Robin Holt wrote:
rpm -qp --provides j/jdk-1_5_0_17-linux-amd64.rpm jre = 1.5.0_17 j2sdk = 1.5.0_17 j2re = 1.5.0_17 jaxp_parser_impl xml-commons-apis jdk = 2000:1.5.0_17-fcs
If, on the other hand, I do: ./build/createrpmdeps j/ F:jdk.x86_64-1247663943/43205785/222924731: j/jdk-1_5_0_17-linux-amd64.rpm P:jdk.x86_64-1247663943/43205785/222924731: jre = 1.5.0_17 j2sdk = 1.5.0_17 j2re = 1.5.0_17 jaxp_parser_impl xml-commons-apis R:jdk.x86_64-1247663943/43205785/222924731: rpmlib(VersionedDependencies) <= 3.0.3-1 glibc >= 2.1.2-11 sh-utils >= 2.0-1 fileutils >= 4.0-8 gawk >= 3.0.4-1 textutils >= 2.0-2 /bin/sh I:jdk.x86_64-1247663943/43205785/222924731: jdk-1.5.0_17-fcs 1226310485
This is beacuse Sun still uses rpm-3 (grrr...). rpm3 didn't have the "self-provides" at the end of the provides list. Your 'rpm -qp --provides' command displays it, but that's because there is some compatibility code in rpm that automatically adds it if an rpm-3 version rpm is encountered. The perl code in Build/Rpm.pm didn't have that compatibility code, but this has recently changed for the query() function (a month ago). Unfortunatelly the fixed function isn't used in createrpmdeps. I've just commited a fix for createrpmdeps to SVN. Cheers, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Markus Rex, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Fri, Jul 17, 2009 at 03:22:07PM +0200, Michael Schroeder wrote:
On Wed, Jul 15, 2009 at 08:29:10AM -0500, Robin Holt wrote:
rpm -qp --provides j/jdk-1_5_0_17-linux-amd64.rpm jre = 1.5.0_17 j2sdk = 1.5.0_17 j2re = 1.5.0_17 jaxp_parser_impl xml-commons-apis jdk = 2000:1.5.0_17-fcs
If, on the other hand, I do: ./build/createrpmdeps j/ F:jdk.x86_64-1247663943/43205785/222924731: j/jdk-1_5_0_17-linux-amd64.rpm P:jdk.x86_64-1247663943/43205785/222924731: jre = 1.5.0_17 j2sdk = 1.5.0_17 j2re = 1.5.0_17 jaxp_parser_impl xml-commons-apis R:jdk.x86_64-1247663943/43205785/222924731: rpmlib(VersionedDependencies) <= 3.0.3-1 glibc >= 2.1.2-11 sh-utils >= 2.0-1 fileutils >= 4.0-8 gawk >= 3.0.4-1 textutils >= 2.0-2 /bin/sh I:jdk.x86_64-1247663943/43205785/222924731: jdk-1.5.0_17-fcs 1226310485
This is beacuse Sun still uses rpm-3 (grrr...). rpm3 didn't have the "self-provides" at the end of the provides list. Your 'rpm -qp --provides' command displays it, but that's because there is some compatibility code in rpm that automatically adds it if an rpm-3 version rpm is encountered.
The perl code in Build/Rpm.pm didn't have that compatibility code, but this has recently changed for the query() function (a month ago). Unfortunatelly the fixed function isn't used in createrpmdeps.
I've just commited a fix for createrpmdeps to SVN.
Thank you for your help, Robin -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
participants (2)
-
Michael Schroeder
-
Robin Holt