[yocto] zypper and poky architectures

Qing He qing.he at intel.com
Thu Oct 21 18:47:14 PDT 2010


On Thu, 2010-10-21 at 23:18 +0800, Mark Hatle wrote:
> On 10/21/10 3:33 AM, Qing He wrote:
> >    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
> 
> We can certainly look into translating "all" to "noarch" post 0.9.  That might 
> make it easier for people coming from the RPM world, to understand what is in 
> the package.
>
> >    1. rename *.all.rpm to *.noarch.rpm
> 
> We can certainly do this easily.

If noarch is universally used in RPM word, I think we should use it.

> 
> >    2. the arch automatic detection system uses "uname -m", thus producing
> >       armv5tejl, which can only be resolved as armv5tel, conflicting with
> >       "armv5te" in rpm
> 
> This is a bug in Zypper.  The machine names should come from somewhere other 
> then uname -m.  (The value of uname -m is very much ia32 specific for the most 
> part.. other architectures have way too many possible namings for it to be 
> useful.)   There is a line in "/etc/rpm/platform" that contains the name of Poky 
> architecture.  This file should be referenced (instead of -m) for all cases.
>
> >    3. enhance zypper arch module, make the addition more flexible,
> >       allowing arch alias (e.g. armv5te = armv5tel = armel = arm)
> 
> Zypper should read the rpm platform file.

Sounds reasonable. After all, zypper is only intended to be a frontend
utility to the lower end package tool. Then we won't need to worry about
alias and different naming, and this detaches zypper from hardware.

> 
> >    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.
> 
> Generally speaking, this is true of most RPM installations.  However, within RPM 
> itself.. there really isn't any concept of "arch" anymore.. They're really only 
> used for grouping and ordering.  So Zypper may need to be updated to query the 
> arch of a package and use it for it's various operations.
> 
> >    2. removing the concept of machine-dependent packages, change all
> >       *.qemuarm.rpm to *.armv5te.rpm
> 
> I'm a bit worried about doing this, as we'll end up with (potentially) 
> incompatible packages with exactly the same name and versions...  Perhaps we 
> need to think about embedding the machine type into the name of the packages 
> instead?

Thanks for the info. If we are going for dynamic platform specs, it
doesn't really matter whether we have things like qemuarm or not, does it?

> 
> 
> > That would be some work to do, maybe 1.0 is a good time to get zypper
> > and package upgrade truely working.
> 
> Yes, we also need to get multi-arch as well.. (i.e. 32-bit and 64-bit at the 
> same time) working.  I'm guessing there will be some Zypper interactions there 
> as well.
> 

I don't really have ideas how this is done. I think on debian this is
actually avoided and i386 packages are repackaged as lib32xxx for x86_64
platform.

Thanks,
Qing



More information about the yocto mailing list