Bug 637224

Summary: delta RPM for java-1_6_0-openjdk patch does not match installed data
Product: [openSUSE] openSUSE 11.3 Reporter: Theo Wollenleben <alpha0x89>
Component: YaST2Assignee: Michal Vyskocil <mvyskocil>
Status: RESOLVED FIXED QA Contact: Jiri Srain <jsrain>
Severity: Normal    
Priority: P4 - Low CC: pgajdos
Version: Final   
Target Milestone: ---   
Hardware: Other   
OS: openSUSE 11.3   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Theo Wollenleben 2010-09-05 15:46:49 UTC
User-Agent:       Opera/9.80 (X11; Linux x86_64; U; de) Presto/2.6.30 Version/10.60

Online Update downloads the full RPM instead of the delta RPM when updating java-1_6_0-openjdk from 1.6.0.0_b17-7.3 (distribution repository) to 1.6.0.0_b18-1.1.5 (update repository). y2log reports:

[zypp++] Applydeltarpm.cc(applydeltarpm):55 Applydeltarpm : /usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/lib/fontconfig.SuSE.properties: contents have been changed
[zypp++] Applydeltarpm.cc(applydeltarpm):55 Applydeltarpm : delta does not match installed data

but the content of fontconfig.SuSE.properties has not been changed!


Reproducible: Always
Comment 1 Michal Vyskocil 2010-09-13 14:05:12 UTC
Not able to reproduce by manual way

wget -q http://download.opensuse.org/distribution/11.3/repo/oss/suse/x86_64/java-1_6_0-openjdk-1.6.0.0_b17-7.3.x86_64.rpm
wget -q http://download.opensuse.org/update/11.3/rpm/x86_64/java-1_6_0-openjdk-1.6.0.0_b17_1.6.0.0_b18-7.3_1.1.5.x86_64.delta.rpm
rpm -i java-1_6_0-openjdk-1.6.0.0_b17-7.3.x86_64.rpm
applydeltarpm java-1_6_0-openjdk-.6.0.0_b17_1.6.0.0_b18-7.3_1.1.5.x86_64.delta.rpm java-1_6_0-openjdk-1.6.0.0_b18-7.3_1.1.5.x86_64.rpm
mvyskocil@zelva:openjdk-update$ rpm -Uvh java-1_6_0-openjdk-1.6.0.0_b18-7.3_1.1.5.x86_64.rpm
Preparing...                ########################################### [100%]
   1:java-1_6_0-openjdk     ########################################### [100%]

Jan: can you help me here? Do you know how zypper/libzypp handles the delta rpm?
Comment 2 Jan Kupec 2010-09-21 11:20:12 UTC
Just like you did manually: it calls applydeltarpm. Zypp logs it pretty thoroughly, eg.:

2010-09-21 13:03:39 <1> kompost(19815) [zypp++] ExternalProgram.cc(start_program):221 Executing '/usr/bin/applydeltarpm' '-C' '-s' 'kernel-default-2.6.34-12.3-7a8e10903b69e873652e58caf6111985142191287131c2111c281111111b9962141350892109821210df110ec110f9110a210110'
2010-09-21 13:03:39 <1> kompost(19815) [zypp++] ExternalProgram.cc(start_program):373 pid 19820 launched
2010-09-21 13:03:42 <1> kompost(19815) [zypp++] ExternalProgram.cc(checkStatus):431 Pid 19820 successfully completed

....

2010-09-21 13:04:18 <1> kompost(19815) [zypp++] ExternalProgram.cc(start_program):221 Executing '/usr/bin/applydeltarpm' '-p' '-p' '/var/cache/zypp/packages/upd/rpm/x86_64/kernel-default-2.6.34_2.6.34.7-12.3_0.2.2.x86_64.delta.rpm' '/var/cache/zypp/packages/upd/rpm/x86_64/kernel-default-2.6.34.7-0.2.2.x86_64.rpm'
2010-09-21 13:04:18 <1> kompost(19815) [zypp++] ExternalProgram.cc(start_program):373 pid 19827 launched
2010-09-21 13:05:48 <1> kompost(19815) [zypp++] ExternalProgram.cc(checkStatus):431 Pid 19827 successfully completed
2

you can find this in /var/log/zypper.log. Theo, can you attach more of it? Can you still reproduce it?
Comment 3 Theo Wollenleben 2010-09-25 13:17:36 UTC
I did some tests and the reason for the problem is SuSEconfig, which overwrites

 /usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/lib/fontconfig.SuSE.properties

when "java-1_6_0-openjdk-1.6.0.0_b17-7.3" is installed with YaST.

Do the following to reproduce the problem (My distribution repository "openSUSE-11.3_11.3-1.82" is the DVD image "openSUSE-11.3-DVD-x86_64.iso" on my hard drive. The applydeltarpm command line can be found in /var/log/zypper.log after zypper tried to update "java-1_6_0-openjdk".):

First (re-)install "java-1_6_0-openjdk-1.6.0.0_b17-7.3" with Yast from the distribution repository. Then do

$ applydeltarpm -C -s java-1_6_0-openjdk-1.6.0.0_b17-7.3-7db20b61a48cceb63e2d71c32a8a95b4ca33ae70
/usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/lib/fontconfig.SuSE.properties: contents have been changed
delta does not match installed data
$ ls -l /usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/lib/fontconfig.SuSE.properties
-rw-r--r-- 1 root root 13796 Sep 25 14:55 /usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/lib/fontconfig.SuSE.properties

Now reinstall with zypper:

$ zypper install --repo openSUSE-11.3_11.3-1.82 --force java-1_6_0-openjdk
$ applydeltarpm -C -s java-1_6_0-openjdk-1.6.0.0_b17-7.3-7db20b61a48cceb63e2d71c32a8a95b4ca33ae70
$ ls -l /usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/lib/fontconfig.SuSE.properties
-rw-r--r-- 1 root root 5955 Jul  6 02:20 /usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/lib/fontconfig.SuSE.properties
$ SuSEconfig -module fonts
[...]
$ ls -l /usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/lib/fontconfig.SuSE.properties
-rw-r--r-- 1 root root 13796 Sep 25 14:56 /usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/lib/fontconfig.SuSE.properties
Comment 4 Michal Vyskocil 2010-09-29 12:40:43 UTC
Well, there is probably no reason for having fontconfig.SuSE.properties modified by SuSEconfig -module fonts call.

Petr: I'd prefer to merge the existing fontconfig.SuSE.properties for all JVM 6 packages in SUSE with a result of the fonts-config, so you'll be able to remove the generate_java_font_setup(). Does it sounds reasonable, or there might be some issues?
Comment 5 Michal Vyskocil 2010-09-30 14:22:57 UTC
OK, so the basic problem is the fontconfig.SuSE.properties not marked as %config in filelist, even if I assumed it. I'll fir it in a next upcoming update to icedtea 1.9
Comment 6 Michal Vyskocil 2010-11-25 19:33:10 UTC
Removing bnc#642531 as it is not marked as FIXED yet, even update has been released.
Comment 7 Michal Vyskocil 2010-11-25 19:33:38 UTC
update has been released