ubuntu-appstore-developers team mailing list archive
-
ubuntu-appstore-developers team
-
Mailing list archive
-
Message #00700
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