[oe] [meta-oe][PATCH 6/6] usb-modeswitch-data: Drop allarch

Martin Jansa martin.jansa at gmail.com
Wed Nov 20 11:58:39 UTC 2013


On Wed, Nov 20, 2013 at 10:55:22AM +0000, Paul Eggleton wrote:
> On Wednesday 20 November 2013 11:43:31 Martin Jansa wrote:
> > On Wed, Nov 20, 2013 at 10:29:46AM +0000, Paul Eggleton wrote:
> > > Hi Martin,
> > > 
> > > On Monday 18 November 2013 23:21:14 Martin Jansa wrote:
> > > > * has runtime dependency on TUNE_PKGARCH usb-modeswitch
> > > > 
> > > >   Hash for dependent task usb-modeswitch_1.2.5.bb.do_packagedata changed
> > > > 
> > > > from 5709ee415d286847b58e7b438b5b9f75 to
> > > > fbef5eee3bb2bacb805a0bead2095b52
> > > > 
> > > > Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>
> > > > ---
> > > > 
> > > >  meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20130807.bb
> > > >  | 2
> > > > 
> > > > -- 1 file changed, 2 deletions(-)
> > > > 
> > > > diff --git
> > > > a/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20130807.bb
> > > > b/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20130807.bb
> > > > index fc0fbfb..8b71618 100644
> > > > ---
> > > > a/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20130807.b
> > > > b +++
> > > > b/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20130807.bb
> > > > @@
> > > > -2,8 +2,6 @@ DESCRIPTION = "Data files for usbmodeswitch"
> > > > 
> > > >  LICENSE = "GPLv2"
> > > >  LIC_FILES_CHKSUM =
> > > >  "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
> > > > 
> > > > -inherit allarch
> > > > -
> > > > 
> > > >  SRC_URI =
> > > > 
> > > > "http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-data-${PV}.tar
> > > > .bz
> > > > 2" SRC_URI[md5sum] = "91feff51deba6e48e78506b8f4db2274"
> > > > 
> > > >  SRC_URI[sha256sum] =
> > > > 
> > > > "a3114e2c1f38eed3ad0067df30e53a96313908a9539a8ea5d94a4d35651699eb"
> > > 
> > > To be honest I view these in the same way as the corresponding OE-Core
> > > patches - if the contents of the output package or its metadata does not
> > > change dependent on the other package, then we should use other means to
> > > fix this issue rather than the huge hammer of removing allarch.
> > 
> > OK, I'll send patch for layer.conf, but the point is that incorrectly
> > using allarch is worse than not using it at all.
> > 
> > Most allarch recipes are very quick to build and their signatures stay
> > valid for long time even after they are changed to TUNE_PKGARCH, but with
> > issue like this and allarch they are rebuilt after each MACHINE switch.
> > 
> > So on concrete example of SHR distribution with 3 supported
> > TUNE_PKGARCHs in binary feed, it's faster to build
> > 3x TUNE_PKGARCH usb-modeswitch-data and keep the same .ipk for some time
> > than build it 3 times as allarch every single day in daily build which
> > populates binary feed.
> 
> Yes I understand the problem, but there's a question of fixing it the right 
> way, particularly as this is by no means a new problem. I don't think 
> selective use of allarch is a good path for us to be going down, because if 
> nothing else it makes it harder for users to know when to apply it. (If we 
> need to have some kind of QA check to report when allarch recipes depend upon 
> non-allarch recipes with a coherent message telling the user what they need to 
> do, then let's add that.)

FWIW I've added new job to my jenkins world builds with will compare
signatures for different MACHINEs and report when native or allarch
signatures are different + different TUNE_PKGARCH signatures for
identical machines with just different name.

It looks like this:
openembedded-core/scripts/sstate-diff-machines.sh --machines="qemuarm qemux86 qemux86copy qemux86-64" --targets=world --tmpdir=tmp-eglibc/;

function compareSignatures() {
  MACHINE1=$1
  MACHINE2=$2
  PATTERN=$3
  PRE_PATTERN=""
  [ -n "${PATTERN}" ] || PRE_PATTERN="-v"
  [ -n "${PATTERN}" ] || PATTERN="MACHINE"
  for TASK in do_configure.sigdata do_populate_sysroot.sigdata do_package_write_ipk.sigdata; do
    printf "\n\n === Comparing signatures for task ${TASK} ===\n"
    diff tmp-eglibc/sstate-diff/*/${MACHINE1}/list.M tmp-eglibc/sstate-diff/*/${MACHINE2}/list.M | grep ${PRE_PATTERN} "${PATTERN}" | grep ${TASK} > list.${TASK}
    for i in `cat list.${TASK} | sed 's#[^/]*/\([^/]*\)/.*#\1#g' | sort -u | xargs`; do
      [ -e BUILD/sstate-diff/*/${MACHINE1}/*/$i/*${TASK}* ] || echo "Task ${i}.${TASK} doesn't exist in ${MACHINE1}" >&2
      [ -e BUILD/sstate-diff/*/${MACHINE1}/*/$i/*${TASK}* ] || continue
      [ -e BUILD/sstate-diff/*/${MACHINE2}/*/$i/*${TASK}* ] || echo "Task ${i}.${TASK} doesn't exist in ${MACHINE2}" >&2
      [ -e BUILD/sstate-diff/*/${MACHINE2}/*/$i/*${TASK}* ] || continue
      printf "\n == Comparing signatures for ${i}.${TASK} ==\n"

      printf "# (R)DEPENDS on \nPACKAGE_ARCH_pn-$i = \"\${MACHINE_ARCH}\"\n";
      bitbake-diffsigs tmp-eglibc/sstate-diff/*/${MACHINE1}/*/$i/*${TASK}* tmp-eglibc/sstate-diff/*/${MACHINE2}/*/$i/*${TASK}*;
      echo
    done | tee list.${TASK}.inc
  done
}

# TUNE_PKGARCH should be the same between qemux86 and qemux86copy
compareSignatures qemux86 qemux86copy

# native and allarch should be the same for all MACHINES
compareSignatures qemux86 qemuarm "\(^< all\)\|\(^< x86_64-linux\)"

It needs first patch from jansa/tune2-test branch for qemux86copy MACHINE:
http://git.openembedded.org/openembedded-core-contrib/log/?h=jansa/tune2-test

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-devel/attachments/20131120/e1e14809/attachment-0002.sig>


More information about the Openembedded-devel mailing list