Compiling the MUA mutt and making a click app of it (UNFINISHED)

We compile the MUA 'mutt' in the same jail as used above. It requires some more dev infrastructure:

# apt-get install libncursesw5-dev
[email protected]:~$ sudo chroot myRoot
[email protected]:/# su phablet
[email protected]:~$ cd mutt-1.5.23
[email protected]:~/mutt-1.5.23$

I configured mutt with the following values (in a small script c.sh):

$ cat c.sh
./configure --with-curses --with-sasl=/usr --disable-fcntl
--with-ssl=/usr --enable-external-dotlock --enable-pop
--enable-imap --disable-warnings --disable-flock
--enable-locales-fix --with-idn=no --disable-gpgme --enable-smtp
--enable-debug
$ make clean ; sh c.sh && make

the resulting bin needs the following shared libs:

$ ldd ./mutt
libncursesw.so.5 => /lib/arm-linux-gnueabihf/libncursesw.so.5 (0xb6f9b000)
libtinfo.so.5 => /lib/arm-linux-gnueabihf/libtinfo.so.5 (0xb6f70000)
libssl.so.1.0.0 => /lib/arm-linux-gnueabihf/libssl.so.1.0.0 (0xb6f29000)
libcrypto.so.1.0.0 => /lib/arm-linux-gnueabihf/libcrypto.so.1.0.0 (0xb6e11000)
libsasl2.so.2 => /usr/lib/arm-linux-gnueabihf/libsasl2.so.2 (0xb6df0000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6d02000)
/lib/ld-linux-armhf.so.3 (0xb6fde000)
libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0xb6cee000)

and in addition (via libdl.so.2):

$ ls -l /usr/lib/arm-linux-gnueabihf/sasl2/
total 148
lrwxrwxrwx 1 root root 22 mar 10 10:15 libanonymous.so -> libanonymous.so.2.0.25
lrwxrwxrwx 1 root root 22 mar 10 10:15 libanonymous.so.2 -> libanonymous.so.2.0.25
-rw-r--r-- 1 root root 13728 mar 10 10:15 libanonymous.so.2.0.25
lrwxrwxrwx 1 root root 20 mar 10 10:15 libcrammd5.so -> libcrammd5.so.2.0.25
lrwxrwxrwx 1 root root 20 mar 10 10:15 libcrammd5.so.2 -> libcrammd5.so.2.0.25
-rw-r--r-- 1 root root 13740 mar 10 10:15 libcrammd5.so.2.0.25
lrwxrwxrwx 1 root root 22 mar 10 10:15 libdigestmd5.so -> libdigestmd5.so.2.0.25
lrwxrwxrwx 1 root root 22 mar 10 10:15 libdigestmd5.so.2 -> libdigestmd5.so.2.0.25
-rw-r--r-- 1 root root 38524 mar 10 10:15 libdigestmd5.so.2.0.25
lrwxrwxrwx 1 root root 18 mar 10 10:15 liblogin.so -> liblogin.so.2.0.25
lrwxrwxrwx 1 root root 18 mar 10 10:15 liblogin.so.2 -> liblogin.so.2.0.25
-rw-r--r-- 1 root root 13728 mar 10 10:15 liblogin.so.2.0.25
lrwxrwxrwx 1 root root 17 mar 10 10:15 libntlm.so -> libntlm.so.2.0.25
lrwxrwxrwx 1 root root 17 mar 10 10:15 libntlm.so.2 -> libntlm.so.2.0.25
-rw-r--r-- 1 root root 21924 mar 10 10:15 libntlm.so.2.0.25
lrwxrwxrwx 1 root root 18 mar 10 10:15 libplain.so -> libplain.so.2.0.25
lrwxrwxrwx 1 root root 18 mar 10 10:15 libplain.so.2 -> libplain.so.2.0.25
-rw-r--r-- 1 root root 13728 mar 10 10:15 libplain.so.2.0.25
lrwxrwxrwx 1 root root 19 mar 10 10:15 libsasldb.so -> libsasldb.so.2.0.25
lrwxrwxrwx 1 root root 19 mar 10 10:15 libsasldb.so.2 -> libsasldb.so.2.0.25
-rw-r--r-- 1 root root 17744 mar 10 10:15 libsasldb.so.2.0.2

We move out of jail and create a top level dir for our new 'app'

[email protected]:~$ mkdir ~/mutt.clico
[email protected]:~$ cp -p myRoot/home/phablet/mutt-1.5.23/mutt ~/mutt.clico
[email protected]:~$ cp -p myRoot/home/phablet/mutt-1.5.23/mutt_dotlock ~/mutt.clico

In addition we need some files and the above mentioned shared libs below ~/mutt.clico:

[email protected]:~$ 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
mutt.click/mutt_dotlock
mutt.click/mutt
mutt.click/Mail
mutt.click/tmp
mutt.click/.mutt-mail_aliases
mutt.click/signature
mutt.click/.mailcap
mutt.click/mutt.sh
mutt.click/evolution-mail.svg
mutt.click/ubuntu-mutt-app.desktop
mutt.click/ubuntu-mutt-app.json
mutt.click/manifest.json

The file mutt.sh sirves later to launch mutt with the correct environment:

#!/bin/sh
# to run the MUA mutt which we have compiled in a jail below /home/phablet/myRoot
# from outside the jail
LD_LIBRARY_PATH=/home/phablet/mutt.click/lib/arm-linux-gnueabihf
export LD_LIBRARY_PATH
SASL_PATH=/home/phablet/mutt.click/lib/arm-linux-gnueabihf
export SASL_PATH
MUTT=/home/phablet/mutt.click/mutt
cd
$MUTT -F ./.muttrc

With a well constructed .muttrc file it works fine to read (IMAPS) and send (SMTP AUTH) mails.

We even tried zo build our 1st 'click app' from this: construct the requested files:

mutt.click/evolution-mail.svg
mutt.click/ubuntu-mutt-app.desktop
mutt.click/ubuntu-mutt-app.json
mutt.click/manifest.json

and run:

# click build mutt.click
Successfully built package in './com.ubuntu.developer.mapitz.ubuntu-mutt-app_0.1_all.click'.

install it with:

$ pkcon --allow-untrusted install-local com.ubuntu.developer.mapitz.ubuntu-mutt-app_0.1_all.click
Instalando archivos [=========================]
Finalizado [=========================]
Instalando archivos [=========================]
Esperando autenticación [=========================]
Comenzando [=========================]
Finalizado [=========================]
Instalado com.ubuntu.developer.mapitz.ubuntu-mutt-app-0.1. (installed:click,removable=1,app_name=ubuntu-mutt-app) summary goes here

and try to register is (which fails):

$ sudo click udo click register --user=phablet com.ubuntu.mutt-terminal_0.1._multiegister --user=phablet com.ubuntu.developer.mapitz.ubuntu-mutt-app 0.1
** (process:1270): WARNING **: Desktop file '/opt/click.ubuntu.com/.click/users/phablet/com.ubuntu.developer.mapitz.ubuntu-mutt-app/ubuntu-mutt-app.desktop' is set to run in a terminal, not copying

after changing in the file mutt.click/ubuntu-mutt-app.desktop Terminal=false

the register goes fine, the icon is in the Applications but does not work because there is no way to start a click app which needs a terminal to run inside :-(

https://bugs.launchpad.net/ubuntu-terminal-app/+bug/1484412

$ sudo click unregister com.ubuntu.developer.mapitz.ubuntu-mutt-app 0.1

Last updated: Sat Oct 17 16:11:03 CEST 2015