← Back to team overview

ubuntu-phone team mailing list archive

Re: Click packages for more than one architecture

 

    Hey!

On Tue, Dec 17, 2013, Daniel Holbach wrote:
>  - Where we expect binaries or modules (for both QML and HTML5 apps)
>    to live, for a case of multiple architectures in one click?

I would like to propose we apply similar namings to the multiarch-ed
directories in / and /usr for Click with arch-specific bits.


There are essentially 3 cases:
  1. arch all
  2. arch specific for one arch
  3. and arch specific for multiple arches
we can make case 2. a subcase of 3. or not.

For 1., just like today, we'd have:
DEBIAN/manifest saying arch all and pointing at data which can be
anywhere; typically no lib/ or bin/ is needed.

For 2., we currently have:
DEBIAN/manifest saying arch armhf and pointing at data which can be
anywhere however some packages use e.g. usr/lib/arm-linux-gnueabihf/qt5
for modules and share/ for data.  I think it would be cleaner to say
something like:
lib/$triplet/ is prepended to LD_LIBRARY_PATH
lib/$triplet/xyz is for modules extending specific components; e.g. your
Qt5 components would be under lib/$triplet/qt5.
bin/$triplet/ is prepended to PATH

For 3. we would ship for multiple triplets exactly as in 2. except your
manifest would declare multiple architectures and we'd discard lib/*/
and bin/*/ for other triplets than the target device's triplet.


If we dont want to hardcode any specific structure, I guess we could
just list the arch-specific pathnames to prepend to LD_LIBRARY_PATH or
PATH in the manifest and rm -rf the ones for other arches.

>  - How apparmor (and friends) will deal with this?

Dont think it changes anything; AA context is set before launching.
upstart-app-launch and hooks parse desktop files, but these shouldn't be
arch-specific.

>  - Which impact it's going to have on Unity and upstart-app-launch?

Would need to add PATH + LD_LIBRARY_PATH triplet support IMO, or some
way to extend from the manifest.

>  - Which changes will have to be made for our development tools?

* combining multiple builds into one tree before building the .click
* multiple arches in the manifest
* support for extending PATH / LD_LIBRARY_PATH in manifest

>  - Which review tests we want to implement?

Perhaps checking that roughly the same files are present across
architectures and/or that the declared architectures are indeed present?


     Cheers,
-- 
Loïc Minier


References