← Back to team overview

ubuntu-phone team mailing list archive

Re: compiling and running the Telegram client telegram-cli on BQ (r24)



On 14 August 2015 at 18:24, Matthias Apitz <guru@xxxxxxxxxxx> wrote:
> The first part is done (and all worked as you described):
>     $ ./make_fat_package.sh
>     ...
>      [ armhf ] Cleaning up build dir
>      [ ubuntu-sdk-15.04 ] Modifying manifest.json
>      [ ubuntu-sdk-15.04 ] Build *multi.click package
>      WARNING:root:Ignoring missing framework "ubuntu-sdk-15.04"
>      Now executing: click-review ./com.ubuntu.terminal_0.7._multi.click
>      Errors
>      ------
>      - security_template_valid (terminal.apparmor)
>      (MANUAL REVIEW) 'unconfined' not allowed

You'll need to change the above if you want to upload it to the store.
We do not allow unconfined apps in the store (other than a couple of
Canonical made/managed ones by prior agreement) so you will need to
use a more traditional set of permissions in your apparmor profile. If
you're testing this package just for your own interest, and not for
distribution in the store, then you don't need to worry about that as
it's your device, you can run whatever unconfined apps you want.

>      ./com.ubuntu.terminal_0.7._multi.click: FAIL
>     Successfully built package in './com.ubuntu.terminal_0.7._multi.click'.
>     And were done!! \o/


> 1)
> I will change the name from 'terminal' to 'mutt-terminal' and have to
> look where this mus be done, perhaps in the json files and some other
> places;

Yeah, for one you can look in the CMakeLists.txt - the first line in
fact, also the manifest.json.in, and rename the .desktop file. There
shouldn't be too many more places to fiddle.

> 2)
> Can the above error msg be ignored?

The warning about missing framework can, yes.

> 3)
> Can I just copy the mutt files and shared libs below the dir in which I
> checked out (actually 'ubuntu-terminal-app') or must the names of these
> additional files appear in some file(s) to get packed into the click?
> The structure ther is like this:
>     $ find mutt.click/
>     mutt.click/
>     mutt.click/lib
>     mutt.click/lib/arm-linux-gnueabihf
>     mutt.click/lib/arm-linux-gnueabihf/libanonymous.so
>     mutt.click/lib/arm-linux-gnueabihf/libanonymous.so.2
>     ...
>     mutt.click/lib/arm-linux-gnueabihf/libpython2.7.so.1.0
>     mutt.click/lib/arm-linux-gnueabihf/libsasl2.so.2
>     mutt.click/.muttrc
>     ...

I'd put the mutt binary in ./lib/arm-linux-gnueabihf/bin and the libs
in ./lib/arm-linux-gnueabihf, and (if you want it to be a multi-arch
package) the right arch bins and libs in ./lib/x86_64-linux-gnu and
./lib/i386-linux-gnu once you've confirmed you got it right with the
armhf ones. The environment should be set up correctly that the
binaries and libraries are found when run on-device. Just set the
Exec=mutt in your desktop file and it _should_ run the right one :)

> To be continued ... :-)
> Thanks for your help

No problem. I'm glad people are finding the community contributed core
apps code and build setup useful for their own projects. Thanks for
discussing this all in the open where others can learn too.

Alan Pope
Community Manager

Canonical - Product Strategy
+44 (0) 7973 620 164

Follow ups