<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>ping <br>
    </p>
    <p>Once we enabled multilib, and IMAGE_INSTALL_append packages that
      also provided by package target-sdk-provides-dummy,</p>
    <p>task populate_sdk will failed, similar error like:</p>
    <p><span style="color: rgb(51, 51, 51); font-family: Arial,
        sans-serif; font-size: 14px; font-style: normal;
        font-variant-ligatures: normal; font-variant-caps: normal;
        font-weight: 400; letter-spacing: normal; orphans: 2;
        text-align: start; text-indent: 0px; text-transform: none;
        white-space: normal; widows: 2; word-spacing: 0px;
        -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
        255); text-decoration-style: initial; text-decoration-color:
        initial; display: inline !important; float: none;">Problem:
        package
        target-sdk-provides-dummy-1.0-r0.sdk_provides_dummy_target
        conflicts with perl-dev provided by perl-dev-5.30.0-r0.core2_64</span></p>
    <div class="moz-cite-prefix">On 8/28/19 4:47 PM, Changqing Li wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:55061e6b-3692-fe81-7ecf-be8c629d956e@windriver.com">ping
      <br>
      <br>
      On 8/19/19 11:22 AM, <a class="moz-txt-link-abbreviated" href="mailto:changqing.li@windriver.com">changqing.li@windriver.com</a> wrote:
      <br>
      <blockquote type="cite">From: Changqing Li
        <a class="moz-txt-link-rfc2396E" href="mailto:changqing.li@windriver.com">&lt;changqing.li@windriver.com&gt;</a>
        <br>
        <br>
        Configuration:
        <br>
        IMAGE_INSTALL_append = " bash"
        <br>
        <br>
        require conf/multilib.conf
        <br>
        MULTILIBS = "multilib:lib32"
        <br>
        DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
        <br>
        <br>
        Reproduce cmd:
        <br>
        bitbake core-image-minimal -c populate_sdk
        <br>
        <br>
        Error info:
        <br>
        --&gt; Finished dependency resolution
        <br>
        Error:
        <br>
          Problem: package
        target-sdk-provides-dummy-1.0-r0.sdk_provides_dummy_target
        conflicts with /bin/sh provided by bash-5.0-r0.core2_64
        <br>
           - package
        target-sdk-provides-dummy-1.0-r0.sdk_provides_dummy_target
        conflicts with bash provided by bash-5.0-r0.core2_64
        <br>
           - package
        target-sdk-provides-dummy-1.0-r0.sdk_provides_dummy_target
        conflicts with /bin/bash provided by bash-5.0-r0.core2_64
        <br>
           - package
        target-sdk-provides-dummy-1.0-r0.sdk_provides_dummy_target
        obsoletes bash provided by bash-5.0-r0.core2_64
        <br>
           - cannot install the best candidate for the job
        <br>
           - conflicting requests
        <br>
        <br>
        when do_populate_sdk, package target-sdk-provides-dummy provides
        <br>
        dummy /bin/sh, ... and package bash also provides this, we
        append
        <br>
        dummy arch sdk-provides-dummy-target to the end of
        ALL_MULTILIB_PACKAGE_ARCHS,
        <br>
        then reverted sdk-provides-dummy-target to the first arch
        <br>
        for dnf config  etc/dnf/vars/arch to make it high priority.
        <br>
        <br>
        when multilib is enabled, below statement will not work as
        expected.
        <br>
        ALL_MULTILIB_PACKAGE_ARCHS = "${@all_multilib_tune_values(d,
        'PACKAGE_ARCHS')}"
        <br>
        <br>
        Eg:
        <br>
        For lib32 variant, PACKAGE_ARCHS is:
        <br>
        all any noarch x86 qemux86_64 sdk-provides-dummy-target
        <br>
        <br>
        For lib64 variant, PACKAGE_ARCHS is:
        <br>
        all any noarch x86_64 core2-64 qemux86_64
        sdk-provides-dummy-target
        <br>
        <br>
        Then:
        <br>
        ALL_MULTILIB_PACKAGE_ARCHS will be
        <br>
        x86 qemux86_64 sdk-provides-dummy-target x86_64 core2-64
        <br>
        <br>
        Fixed by append sdk-provides-dummy-target during do_populate_sdk
        <br>
        <br>
        Signed-off-by: Changqing Li <a class="moz-txt-link-rfc2396E" href="mailto:changqing.li@windriver.com">&lt;changqing.li@windriver.com&gt;</a>
        <br>
        ---
        <br>
          meta/classes/populate_sdk_base.bbclass | 2 +-
        <br>
          1 file changed, 1 insertion(+), 1 deletion(-)
        <br>
        <br>
        diff --git a/meta/classes/populate_sdk_base.bbclass
        b/meta/classes/populate_sdk_base.bbclass
        <br>
        index 59920a5..3362656 100644
        <br>
        --- a/meta/classes/populate_sdk_base.bbclass
        <br>
        +++ b/meta/classes/populate_sdk_base.bbclass
        <br>
        @@ -21,7 +21,6 @@ def complementary_globs(featurevar, d):
        <br>
          SDKIMAGE_FEATURES ??= "dev-pkgs dbg-pkgs src-pkgs
        ${@bb.utils.contains('DISTRO_FEATURES', 'api-documentation',
        'doc-pkgs', '', d)}"
        <br>
          SDKIMAGE_INSTALL_COMPLEMENTARY =
        '${@complementary_globs("SDKIMAGE_FEATURES", d)}'
        <br>
          -PACKAGE_ARCHS_append_task-populate-sdk = "
        sdk-provides-dummy-target"
        <br>
          SDK_PACKAGE_ARCHS += "sdk-provides-dummy-${SDKPKGSUFFIX}"
        <br>
            # List of locales to install, or "all" for all of them, or
        unset for none.
        <br>
        @@ -130,6 +129,7 @@ def populate_sdk_common(d):
        <br>
              inst_pkgs = (d.getVar("PACKAGE_INSTALL") or "").split()
        <br>
              inst_attempt_pkgs =
        (d.getVar("PACKAGE_INSTALL_ATTEMPTONLY") or "").split()
        <br>
          +    d.appendVar('ALL_MULTILIB_PACKAGE_ARCHS', '
        sdk-provides-dummy-target')
        <br>
              d.setVar('PACKAGE_INSTALL_ORIG', ' '.join(inst_pkgs))
        <br>
              d.setVar('PACKAGE_INSTALL_ATTEMPTONLY', '
        '.join(inst_attempt_pkgs))
        <br>
          </blockquote>
      <br>
    </blockquote>
    <pre class="moz-signature" cols="72">-- 
BRs

Sandy(Li Changqing)</pre>
  </body>
</html>