Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Hongxu Jia <hongxu.jia@windriver.com>
To: Mark Hatle <mark.hatle@windriver.com>,
	Robert Yang <liezhi.yang@windriver.com>,
	"Yang, Zhangle (Eric)" <Zhangle.Yang@windriver.com>,
	Ming Liu <ming.liu@windriver.com>, <Randy.MacLeod@windriver.com>,
	kane <jian.kang@windriver.com>
Cc: "openembedded-core@lists.openembedded.org"
	<openembedded-core@lists.openembedded.org>
Subject: [RFC] About rpm multilib packagegroup QA Warning: install files into a shared area when those files already exist
Date: Tue, 22 Apr 2014 11:17:58 +0800	[thread overview]
Message-ID: <5355DF66.7010100@windriver.com> (raw)

Hi All,

This issue could be reproduced only by building multilib packagegroup
package in the first time. [YOCTO #5532]

*Step:
1) bitbake packagegroup-core-nfs-server

2) bitbake lib32-packagegroup-core-nfs-server
     Only the first time to do the build has this issue:
     ...
    WARNING: The recipe lib32-packagegroup-core-nfs is trying to install 
files into a shared area when those files already exist. Those files  
and their manifest location are:
/home/jiahongxu/yocto/build-20131120-yocto-qemux86-64/tmp/deploy/rpm/all/packagegroup-core-nfs-server-1.0-r2.all.rpm 

       Matched in manifest-allarch-packagegroup-core-nfs.deploy-rpm

*Analysis:

- The following commit message is the background which come
from oe-core d08e64a98316d7659b0fb56812667c534f66a1a8
[YOCTO #4532] Mark Hatle
     In deb/ipk on a multilib package, the package name has specific 
multilib
     references in it.  I.e. the alternative libraries start with something
     like lib32-...  This was done primarily because deb/ipk do not 
allow two
     packages with the same name (but different architectures) to be
     installed at the same time.  So the name has to be unique.

     In RPM however, the names of the packages and matches with the
     architectures and if they are not the same we can do these multilib
     installs.

- For this rpm multilib packagegroup issue, the multilib and non-multilib
packages have the same name 'packagegroup-core-nfs-server', and
the same architectures 'all'.

*Solution

- One possible fix is as Mark Hatle suggested simply to follow the 
deb/ipk package
naming, but this causes a design advantage of rpm.  When a package has a
dependency on 'bash', we really don't care what bash is installed, only 
that -a-
bash is installed.  In the deb/ipk case, the lib32- packages would end 
up with a
lib32-bash dependency and you could potentially end up with two 'bash' 
packages
being installed.

- Tweak oe-core commit 1674541ed83fa4645f2e078f65fe0f878527ee6e
'multilib: fix allarch/kernel/module-base multilib issues', skip the 
packagegroup
allarch recipes in multilib_virtclass_handler and  extend PROVIDES/RPROVIDES
for packagegroup allarch recipes. It will not build the multilib 
packagegroup allarch
recipes if the same packagegroup allarch recipes has already been built.
But I think it's a bad idea, the previous packagegroup allarch check is 
reasonable.

- We could simply add PACKAGE_ARCH = "${MACHINE_ARCH}" in each
packagegroup allarch recipe to avoid the QA Warning, but it actually 
doesn't work
at the image do_rootfs time, the smart could not correctly find the RDEPENDS
between multilib and non-multilib packagegroup packages.

- Is it necessary to fix the multilib packagegroup issue, it seems the 
warning
occurs on the world building, we rarely build both of the multilib and 
non-multilib
for one package at the same time , we could simple tweak the sanity check
to ignore the warning.

Any suggestion is welcomed.

//Hongxu

//Hongxu



             reply	other threads:[~2014-04-22  3:18 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-22  3:17 Hongxu Jia [this message]
2014-04-22 14:52 ` [RFC] About rpm multilib packagegroup QA Warning: install files into a shared area when those files already exist Mark Hatle
2014-04-22 16:44   ` Mark Hatle

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5355DF66.7010100@windriver.com \
    --to=hongxu.jia@windriver.com \
    --cc=Randy.MacLeod@windriver.com \
    --cc=Zhangle.Yang@windriver.com \
    --cc=jian.kang@windriver.com \
    --cc=liezhi.yang@windriver.com \
    --cc=mark.hatle@windriver.com \
    --cc=ming.liu@windriver.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox