All of lore.kernel.org
 help / color / mirror / Atom feed
* zypper and poky architectures
@ 2010-10-21  8:33 Qing He
  2010-10-21 11:21 ` Richard Purdie
  2010-10-21 15:18 ` Mark Hatle
  0 siblings, 2 replies; 9+ messages in thread
From: Qing He @ 2010-10-21  8:33 UTC (permalink / raw)
  To: yocto

I recently reported several zypper bugs specifically for arm, after
some deeper investigation, the problem seems to be of higher level than
I originally thought.

The root cause is that zypper and poky use different way to represent
architectures, as we are putting them together, these two ways are
not compatible, causing many minor glitches that need to modify at
least one of them.

Poky has three kinds of representations in a single target image, which
are independent, cpu-dependent and machine-dependent (all, armv5te,
qemuarm, respectively), e.g.

	update-rc.d-0.7-r3.all.rpm
	curl-7.21.0-r0.armv5te.rpm
	task-base-1.0-r69.qemuarm.rpm

(note that armv5te is the same with gcc's -march option, meaning little
endian)

This is natural until zypper is involved. Zypper supports only one arch
at one time (and this arch should not be changed in fly), and use the
idea of arch compatibility (e.g. _noarch is compatible with _i586), it
then hardcodes the available archs in a different way than poky does,
thus creating several problems:
  1. what uses for independent packages is called "noarch", "all" is not
     recognized, something depends on update-rc.d won't be installed
     because of missing dependency
  2. the arch automatic detection system uses "uname -m", thus producing
     armv5tejl, which can only be resolved as armv5tel, conflicting with
     "armv5te" in rpm
  3. many archs are missing in zypper, like mips, armeb, etc.
  4. there is no concept of machine-dependent packages (task-base) in
     zypper, although we can work around.

Currently, at least zypper is broken on all of mips, arm, ppc, with
slightly different problems.

The ideal situation is to use consistent arch specification, the
following can be a solution:
  1. rename *.all.rpm to *.noarch.rpm
  2. removing the concept of machine-dependent packages, change all
     *.qemuarm.rpm to *.armv5te.rpm
  3. enhance zypper arch module, make the addition more flexible,
     allowing arch alias (e.g. armv5te = armv5tel = armel = arm)

That would be some work to do, maybe 1.0 is a good time to get zypper
and package upgrade truely working.

Any ideas and comments?

Thanks,
Qing


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2010-11-03 14:08 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-10-21  8:33 zypper and poky architectures Qing He
2010-10-21 11:21 ` Richard Purdie
2010-10-21 15:29   ` Mark Hatle
2010-10-22  1:35   ` Qing He
2010-10-21 15:18 ` Mark Hatle
2010-10-22  1:47   ` Qing He
2010-11-01 15:37     ` Mark Hatle
2010-11-03  7:58       ` Qing He
2010-11-03 14:08         ` Mark Hatle

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.