Distribuer votre appli XULRunner
2 - Linux
2.3 Un cas spécial : deb pour Maemo
- 2.3.1 Maemo - généralités
- 2.3.2 Adapter le lanceur
- 2.3.3 Nouvelle organisation des fichiers - Où placer notre appli
- 2.3.4 Additions au fichier
.desktop
- 2.3.5 Changements aux fichiers Debian
- 2.3.6 Créer le deb
2.3.1 Maemo - généralités
Maemo est une distribution Linux basée sur Debian, pour les mobiles. Et
Firefox Mobile, nom de code Fennec, y est disponible.
Fennec, comme la version standard de Firefox, peut lancer
une appli XULRunner via l'argument -app
.
Donc, a priori, nous pouvons lancer toutes les applications XULRunner. Bien sûr nous devrions tenir compte des spécificités des appareils mobiles, petit écran (mais avec une haute résolution), et écran tactile. Ce n'est pas le propos de ce tutoriel. Mais, telle quelle, notre appli devrait fonctionner.
Cette plateforme étant basée sur Debian, nous distribuerons un deb pour notre appli. Nous devons juste adapter quelques parties du chapitre précédent aux spécificités de Maemo.
Le Maemo Wiki contient quelques informations intéressantes.
2.3.2 Adapter le lanceur
Le changement est que nous invoquons Fennec à la place de Firefox.
Le nouveau lanceur, myapp.sh
:
#!/bin/sh CUR_DIR=$(dirname $(readlink -f "$0")) if [ -x /usr/bin/fennec ]; then /usr/bin/fennec -app "$CUR_DIR/application.ini" $@ elif [ -x /usr/bin/xulrunner ]; then /usr/bin/xulrunner "$CUR_DIR/application.ini" $@ else echo "Error: unable to find Fennec or XULRunner!" fi
2.3.3 Nouvelle organisation des fichiers - Où placer notre appli
Sur Maemo, à cause de l'espace mémoire des appareils mobiles, les applications
doivent résider dans le dossier /opt/
plutôt que dans
/usr/lib/
ou /usr/share/
.
Donc nous allons copier notre appli dans /opt/myapp/
.
Un sous dossier serait possible également,
/opt/myorganization/myapp/
par exemple.
Pour les icônes, nous utiliserons des dimensions différentes que pour le
bureau, comme le fait Fennec :
1 png de 26x26px png, 1 png de 40x40px, et 1 svg de 48x48px.
Leurs destinations finales changent un peu également, elles doivent
être placées dans :
- /usr/share/icons/hicolor/26x26/hildon/myapp.png
- /usr/share/icons/hicolor/40x40/hildon/myapp.png
- /usr/share/icons/hicolor/scalable/hildon/myapp.svg
L'emplacement du fichier .desktop
change aussi, il doit être
placé dans /usr/share/applications/hildon/
.
Le fichier .desktop
et les images ne sont pas trop lourdes,
nous pouvons les placer ainsi, mais il serait possible de les placer dans
notre dossier principal d'application et d'utiliser des liens symboliques.
2.3.4 Additions au fichier .desktop
Quelques informations peuvent être trouvées dans cette page du Wiki Maemo.
Quelques clés additionnelles peuvent être utilisées dans le fichier desktop.
Certaines que j'ajoute ne sont pas documentées, mais semblent être utilisées
par beaucoup de programmes, peut être pour d'anciennes version de Maemo.
Voici quelques lignes ajoutées à notre fichier desktop :
X-Icon-Path=/usr/share/icons X-Window-Icon=myapp X-Window-Icon-dimmed=myapp X-Osso-Type=application/x-executable
2.3.5 Changements aux fichiers Debian
Pour éviter d'écraser le deb générique créé dans le chapitre précédent, nous allons renommer ce nouveau paquet deb pour Maemo. Nous utiliserons 'myapp-mobile'. Pour être cohérent avec le processus debhelper, voici la liste de tous ces changements :
-
Dans le fichier
changelog
, la lignemyapp (1.0-1) unstable; urgency=low
devientmyapp-mobile (1.0-1) unstable; urgency=low
-
Dans le fichier
control
, la valeur pour les champsSource
etPackage
est changée enmyapp-mobile
-
Le ficher
myapp.links
est renommé enmyapp-mobile.links
Autres changements au fichier control
:
D'après
cette documentation,
nous devons choisir une Section
dans cette liste :
user/desktop
user/development
user/education
user/games
user/graphics
user/multimedia
user/navigation
user/network
user/office
user/science
user/system
user/utilities
Nous pouvons ajouter des données supplémentaires au fichier control,
utilisé pour construire le deb.
le premier est XB-Maemo-Display-Name: MyApp
.
Le deuxième est une icône base64, utilisée par le gestionnaire d'applications de Maemo,
XB-Maemo-Icon-26
.
Nous utiliserons un script bash pour créer cette valeur base64 à partir d'une icône png de 48px.
Nous avons besoin du programme uuencode
, sur debian/ubuntu :
apt-get install sharutils
puis nous créons un script bash nommé build_base64.sh
pour convertir
un png de 48x48px en la valeur texte désirée :
#!/bin/bash set -e # base64 conversion uuencode -m icon48.png icon48.png > icon48.txt # remove the first line (begin-base64 ...) sed -i '1d' icon48.txt # and the last line (====) sed -i '$d' icon48.txt # add 4 spaces at the beginning of each lines sed -i "s/^/ /" icon48.txt # and add a blank line at the end of the file echo '' >> icon48.txt
vous pouvez trouvez ce script dans le dossier data/icons
de l'archive samples_chapter_2.tar.gz
. Pour le lancer
(depuis le dossier icons) :
sh build_base64.sh
Nous pouvons maintenant utilisé le contenu de icon48.txt comme valeur de
XB-Maemo-Icon-26
dans notre fichier control.
2.3.6 Créer le deb
Et c'est tout, nous pouvons maintenant créer notre deb comme dans le chapitre précédent.
Je n'écris pas ici le script build_maemodeb.sh
, c'est
pratiquement le même que celui pour construire le paquet générique
debian. Vous le trouverez dans l'archive jointe.
cd samples_chapter_2
sh ./build_maemodeb.sh
Note: je suppose dans ce tutoriel que nous n'avons pas de code compilé
dans notre appli.
Si ce n'est pas le cas, nous devons utiliser
scratchbox
pour compiler, et nous
devons utiliser scratchbox pour construire le deb aussi !
Et, comme dans le chapitre précédent, ne pas utiliser la ligne
Architecture: all
dans le fichier control.
Vous pouvez télécharger tous les exemples de ce chapitre 2 (Linux) dans l'archive samples_chapter_2.tar.gz.
L'application myapp, de developer.mozilla.org, est dans le Domaine Public.
L'icône utilisée est issue du Tango Desktop Project, et est dans le Domaine Public.
Toutes les autres données ajoutées, et les fichiers en exemple, sont dans le Domain Public également.