[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
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