← Back to team overview

ubuntu-appstore-developers team mailing list archive

Re: Executing fat packages

 

On Thu, 2013-11-21 at 17:11 -0600, Jamie Strandboge wrote:

> On 11/21/2013 04:52 PM, Ted Gould wrote:
> > Hey all,
> > 
> > There was a discussion a while back on IRC about executing binaries in fat
> > packages.  After that I started a branch, but I just found it again, and cleaned
> > it up.  But I felt like we should probably make sure this is what we want before
> > I go ahead and commit it.  First here's the branch:
> > 
> >     https://code.launchpad.net/~ted/upstart-app-launch/tracking-arch/+merge/196194
> > 
> > 
> > What it does is adjust the PATH environment variable to first have an
> > architecture specific directory.  This way anything that is specified in the
> > desktop file could have an architecture specific version that would be found by
> > normal path expansion.  That directory is:
> > 
> >     $(PACKAGE_DIR)/lib/$(ARCH TRIPLET)/bin/
> > 
> > 
> > Does that still look good to everyone?
> > 
> The branch uses dpkg-architecture, but that isn't available on the touch images.
> I think you can use 'dpkg --print-architecture' instead. Eg, using the emulator
> (yay!):
> 
> $ adb shell dpkg-architecture
> /bin/bash: dpkg-architecture: command not found
> $ adb shell dpkg --print-architecture
> armhf



It's using dpkg-architecture at build time, not at run time, so not
having it on the touch images isn't a big deal.  Since the packages are
arch specific (they have binaries) we're just aligning with what
binaries are built.


> More importantly, I'm thinking this is probably not enough when considering
> compiled programs. Right now, for arch-dependent non-fat packages, .desktop
> files use '/usr/bin/qmlscene -I<relative_dir> someapp.qml. Eg:
> 
> Exec=aa-exec-click -p com.ubuntu.developer.user.app_app_0.1 -- /usr/bin/qmlscene -I backend/modules app.qml
> Path=/opt/click.ubuntu.com/.click/users/username/com.ubuntu.developer.user.app
> 
> Where will C++ extensions like this end up in fat packages? Should we be
> adjusting LD_LIBRARY_PATH in addition to PATH?


Adding an entry to LD_LIBRARY_PATH makes sense to me.  Would we just add
lib/$(triplet) or is there a different path we should be adding?

Ted

Attachment: signature.asc
Description: This is a digitally signed message part


Follow ups

References