<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugzilla.yoctoproject.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugzilla.yoctoproject.org/"
          
          maintainer="it-coreprojects-helpdesk@linuxfoundation.org"
>

    <bug>
          <bug_id>2894</bug_id>
          
          <creation_ts>2012-08-05 02:30:31 +0000</creation_ts>
          <short_desc>rpm mishandling pkg_postinst</short_desc>
          <delta_ts>2013-09-24 15:19:53 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>7</classification_id>
          <classification>Build System, Metadata &amp; Runtime</classification>
          <product>OE-Core</product>
          <component>devtools / tool chain</component>
          <version>unspecified</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Multiple</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>Medium</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>1.5</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Khem Raj">raj.khem</reporter>
          <assigned_to name="Mark Hatle">mark.hatle</assigned_to>
          <cc>mark.hatle</cc>
    
    <cc>meta.mr.watcher</cc>
    
    <cc>meta.watcher</cc>
    
    <cc>sgw</cc>
          
          
          <cf_os>---</cf_os>
          <cf_regression_type>---</cf_regression_type>
          
          <cf_docchange>No (bug/feature does not impact docs)</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>23805</commentid>
    <comment_count>0</comment_count>
    <who name="Khem Raj">raj.khem</who>
    <bug_when>2012-08-05 02:30:31 +0000</bug_when>
    <thetext>I have a situation like this

I have got a package openjdk-6-vm-cacao which rdepends on openjdk-6-common
and this openjdk-6-vm-cacao has a postinst script which modifies a file that should be installed by openjdk-6-common

so I think it should all work fine since 

rpm -qlp --requires ../../../build/tmp/deploy/rpm/x86_64/openjdk-6-vm-cacao-6b24+1.11.1-r21.0.x86_64.rpm 
libgcc1 &gt;= 4.7.1.0+git1+d07e24f4ab59f264d68d21838795349faab5dede
openjdk-6-common

and postinst is 

pkg_postinst_${JDKPN}-vm-cacao () {
        if grep -q &quot;\-server ERROR&quot; ${JDK_HOME}/jre/lib/${JDK_ARCH}/jvm.cfg &amp;&amp; ! grep -q &quot;KNOWN&quot; ${JDK_HOME}/jre/lib/${JDK_ARCH}/jvm.cfg; then
          sed -i -e &quot;/\-cacao.*/d&quot; -e &quot;s|\(^\-server*\)|\-cacao KNOWN\n\1|&quot; -e &quot;/^$/d&quot; ${JDK_HOME}/jre/lib/${JDK_ARCH}/jvm.cfg
        else
          sed -i -e &quot;s/\-cacao.*/\-cacao KNOWN/&quot; ${JDK_HOME}/jre/lib/${JDK_ARCH}/jvm.cfg
        fi
}


its modifying jvm.cfg which should come from openjdk-6-common

 /work/yocto/poky/build/tmp/sysroots/x86_64-linux/usr/bin/rpm -qlp ../../../build/tmp/deploy/rpm/x86_64/openjdk-6-common-6b24+1.11.1-r21.0.x86_64.rpm  | grep jvm.cfg
/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/jvm.cfg

so we see the file is there


Now at install (image do_rootfs) time


 openjdk-6-vm-cacao          ##################################################
| grep: /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/jvm.cfg: No such file or directory
| sed: can&apos;t read /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/jvm.cfg: No such file or directory
| libxtst6                    ##################################################
| Running useradd commands...
| avahi-daemon                ##################################################
|  Adding system startup for /work/yocto/poky/build/tmp/work/re_64b-poky-linux/core-image-junos-1.0-r0/rootfs/etc/init.d/avahi-daemon.
| at                          ##################################################
| pam-plugin-deny             ##################################################
| pam-plugin-permit           ##################################################
| pam-plugin-warn             ##################################################


.........

| update-alternatives: Linking /work/yocto/poky/build/tmp/work/re_64b-poky-linux/core-image-junos-1.0-r0/rootfs//usr/bin/flock to flock.util-linux
| update-alternatives: Linking /work/yocto/poky/build/tmp/work/re_64b-poky-linux/core-image-junos-1.0-r0/rootfs//sbin/hwclock to ../bin/busybox
| openjdk-6-common            ##################################################
| openjdk-6-jre               ##################################################
| update-alternatives: Linking /work/yocto/poky/build/tmp/work/re_64b-poky-linux/core-image-junos-1.0-r0/rootfs//usr/bin/java to /usr/lib/jvm/java-6-openjdk/jre/bin/java
| openjdk-6-java              ##################################################


as you can see the order of installation is wrong. I would have expected
openjdk-6-common to install before openjdk-6-vm-cacao</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>23807</commentid>
    <comment_count>1</comment_count>
    <who name="Khem Raj">raj.khem</who>
    <bug_when>2012-08-05 18:11:20 +0000</bug_when>
    <thetext>OK one problem is that postrm hook should have used $D which I did make a change but result is still same.

new postrm is 

pkg_postinst_${JDKPN}-vm-cacao () {
        if grep -q &quot;\-server ERROR&quot; $D${JDK_HOME}/jre/lib/${JDK_ARCH}/jvm.cfg &amp;&amp; ! grep -q &quot;KNOWN&quot; $D${JDK_HOME}/jre/lib/${JDK_ARCH}/jvm.cfg; then
          sed -i -e &quot;/\-cacao.*/d&quot; -e &quot;s|\(^\-server*\)|\-cacao KNOWN\n\1|&quot; -e &quot;/^$/d&quot; $D${JDK_HOME}/jre/lib/${JDK_ARCH}/jvm.cfg
        else
          sed -i -e &quot;s/\-cacao.*/\-cacao KNOWN/&quot; $D${JDK_HOME}/jre/lib/${JDK_ARCH}/jvm.cfg
        fi
}


and error is same

openjdk-6-vm-cacao          ##################################################
grep: /work/yocto/poky/build/tmp/work/re_64b-poky-linux/core-image-junos-1.0-r0/rootfs/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/jvm.cfg: No such file or directory
sed: can&apos;t read /work/yocto/poky/build/tmp/work/re_64b-poky-linux/core-image-junos-1.0-r0/rootfs/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/jvm.cfg: No such file or directory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24465</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Hatle">mark.hatle</who>
    <bug_when>2012-08-24 21:17:09 +0000</bug_when>
    <thetext>I think the issue is related to the way the items are being called..

Someone needs to do a bit more triage on this item and figure out if the thing being searched for is not yet installed (install order issue) or there is some other type of problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32798</commentid>
    <comment_count>3</comment_count>
    <who name="Saul Wold">sgw</who>
    <bug_when>2013-04-30 23:18:21 +0000</bug_when>
    <thetext>Khem, can you verify if this is still a problem?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>37131</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Hatle">mark.hatle</who>
    <bug_when>2013-09-24 15:19:53 +0000</bug_when>
    <thetext>I believe this is fixed, see oe-core commit:


commit c1acac8c46aa75d78634c30de773b28a1466070c
Author: Mark Hatle &lt;mark.hatle@windriver.com&gt;
Date:   Thu Nov 15 15:31:11 2012 -0600</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>