Page aide-mémoire pour construire et empaqueter un paquet sous Debian et ses dérivées.
Merci à Philippe Dpt35 et Mothsart de l'équipe de Primtux qui m'ont donné ces renseignements sur le forum ici : https://forum.primtux.fr/viewtopic.php?id=2282.
Source : http://forum.primtux.fr/viewtopic.php?pid=21261#p21261

Informations préalables :

  • Bien qu'il soit possible de cross-compiler, c'est-à-dire compiler sous des architectures différentes (par exemple compiler pour des processeurs ARM à partir d'un ordinateur AMD64), c'est très souvent problématique. Aussi si on construit pour des Raspberry Pi, on compilera avec un Raspberry Pi.
  • Compiler pour Raspberry Pi OS (anciennement Raspbian) est semblable que compiler pour Debian/Ubuntu même s'il peut y avoir des petites différences.

Exemple pour compiler Xournal++ sous Raspberry Pi OS

Je vais mettre les étapes essentielles pour le faire sous Raspberry Pi OS pour empaqueter l'application Xournal++ (ou xournalpp). Les developpeurs de Xournal++ expliquent très bien comment compiler Xournal mais par contre j'ai rencontré un problème pour l'empaquetage. D'où cette alternative proposée par l'équipe de Primtux.

  1. Se mettre en utilisateur root pour éviter de recourir aux "sudo" :
    sudo -i
  2. Installer les paquets build-essential, devscripts et git :
    apt install build-essential devscripts git
  3. Aller sur le site de l'application où on explique comment faire pour compiler (build) le programme sous son système d'exploitation. On voit quels sont les paquets à installer :
    sudo apt-get install cmake libgtk-3-dev libpoppler-glib-dev portaudio19-dev libsndfile-dev \
    libcppunit-dev dvipng texlive libxml2-dev liblua5.3-dev libzip-dev gettext
    Remarque : il peut arriver qu'il manque des paquets auquel cas on se servira des messages d'erreurs lors de la compilation pour repérer ceux à installer pour aboutir.
  4. On récupère les sources du programme avec la commande :
    git clone https://github.com/xournalpp/xournalpp.git
  5. On se place dans le dossier xournalpp :
    cd xournalpp
  6. On se place sur la branche stable de préférence car la master n'est pas forcément la stable avec la commande (il faut aller voir sur le site) :
    git checkout .......
  7. Le versionning d'un paquet .deb se base sur le fichier changelog, la 1ère ligne indiquant la version en cours. Il faut donc mettre à jour ce fichier changelog à chaque fois (ça n'est pas fait automatiquement).
    On utilise la commande "dch" pour éditer le changelog. Cette commande rajoute automatiquement une section en haut du fichier en incrémentant.
    Il est possible de forcer le numéro de version avec l'option "-v" :
    dch -v 1.1.0

    Pour éditer le fichier sans rajouter de nouvelle ligne, on utilisera :

    dch -e

    Dans le nom de la distribution, mettre "unstable; urgency=low".

  8. On lance la compilation :
    debuild -us -uc
  9. Il y a une erreur avec le fichier xournalpp/debian/source/format qui apparemment sert à faire un rapport avec la source, le nommage et la sécurité (https://github.com/Tarsnap/tarsnap/issues/205). On le supprime même si ce n'est pas dans les règles de l'art... Il faudrait approfondir ce point.
    rm debian/source/format
  10. On relance la compilation avec la commande précédente "debuild -us -uc". On en a pour un petit moment...
  11. Si tout s'est bien passé, on obtient au final un paquet .deb fonctionnel au même niveau que le dossier xournalpp.