Journal Compilation de 0.A.D Alpha 24 pour Debian Buster

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
22
28
fév.
2021

Sommaire

La dépêche pour annoncer 0.A.D Alpha 24 est encore en rédaction pour l'instant. Et pour tester la nouvelle version et aussi pour contribuer à la dépêche, j'ai compilé cette version pour Debian Buster (cette version n'étant pas encore empaquetée pour Debian, mais la demande a été faite).

Idéalement vous attendriez la version de la distribution, mais si vous êtes pressés ET que vous ne voulez pas utiliser directement la version de l'éditeur, alors voici mes notes (principalement basées sur mon historique, donc il est possible qu'il faille légèrement adapter) :

De quoi compiler

On commence par installer pas mal de choses pour compiler, notamment ce qui est décrit dans les Build-Depends: du 0ad-0.0.23.1/debian/control , mais aussi certains paquets viennent du fait que je n'ai finalement pas utilisé le nvtt de la distribution ou des nouveautés de l'alpha 24.

$ sudo apt install autoconf debhelper dpkg-dev libboost-dev libboost-filesystem-dev libcurl4-gnutls-dev libenet-dev  libgloox-dev libicu-dev libminiupnpc-dev libnspr4-dev libnvtt-dev libogg-dev libopenal-dev libpng-dev libsdl2-dev libsodium-dev libvorbis-dev libwxgtk3.0-gtk3-dev libxcursor-dev libxml2-dev pkg-config python2 python3 zlib1g-dev rustc cargo libfmt-dev cmake

Produire les binaires

On va préparer le répertoire pour produire le paquet 0ad (ie. chopper les sources de la dernière version chez l'éditeur et chez Debian, et réutiliser l'empaquetage Debian existant).

$ wget https://releases.wildfiregames.com/0ad-0.0.24b-alpha-unix-build.tar.xz
$ apt source 0ad
$ tar xvJf 0ad-0.0.24b-alpha-unix-build.tar.xz
$ cd 0ad-0.0.24b-alpha
$ cp -r ../0ad-0.0.23.1/debian .

Et appliquer quelques modifications : le changement de version de la libmozjs, la version de nvtt chez Debian insuffisante pour 0.A.D. et donc le recours à la version embarquée. Et pipeauter une version qui sera écrasée automatiquement lorsque le paquet sera officiellement disponible chez Debian (je créé volontairement une 0.0.23.2 au lieu d'une 0.0.24 pour cette raison).

diff -ru 0ad-0.0.23.1/debian/changelog 0ad-0.0.24b-alpha/debian/changelog
--- 0ad-0.0.23.1/debian/changelog   2020-08-18 11:48:00.000000000 +0200
+++ 0ad-0.0.24b-alpha/debian/changelog  2021-02-27 20:04:51.990191482 +0100
@@ -1,3 +1,8 @@
+0ad (0.0.23.2-42) unstable; urgency=medium
+  * Nope
+
+ -- Oumph <oumph@linuxfr.org>  Sat, 27 Feb 2021 19:00:00 +0100
+
 0ad (0.0.23.1-5) unstable; urgency=medium

   * Fix FTBFS with gcc-10. (Closes: #956967)
diff -ru 0ad-0.0.23.1/debian/install 0ad-0.0.24b-alpha/debian/install
--- 0ad-0.0.23.1/debian/install 2020-08-18 11:44:58.000000000 +0200
+++ 0ad-0.0.24b-alpha/debian/install    2021-02-27 20:48:49.677838721 +0100
@@ -1,8 +1,12 @@
 binaries/data/l10n                              usr/share/games/0ad/
 binaries/system/libAtlasUI.so                   usr/lib/games/0ad/
 binaries/system/libCollada.so                   usr/lib/games/0ad/
-binaries/system/libmozjs38-ps-release.so        usr/lib/games/0ad/
+binaries/system/libmozjs78-ps-release.so        usr/lib/games/0ad/
 binaries/system/ActorEditor                     usr/lib/games/0ad/
+binaries/system/libnvtt.so                      usr/lib/games/0ad/
+binaries/system/libnvcore.so                    usr/lib/games/0ad/
+binaries/system/libnvimage.so                   usr/lib/games/0ad/
+binaries/system/libnvmath.so                    usr/lib/games/0ad/
 binaries/system/pyrogenesis                     usr/games/
 build/resources/0ad.appdata.xml                 usr/share/appdata/
 build/resources/0ad.desktop                     usr/share/applications/
diff -ru 0ad-0.0.23.1/debian/rules 0ad-0.0.24b-alpha/debian/rules
--- 0ad-0.0.23.1/debian/rules   2020-08-18 11:48:00.000000000 +0200
+++ 0ad-0.0.24b-alpha/debian/rules  2021-02-27 20:37:20.006952703 +0100
@@ -37,8 +37,8 @@
        --bindir=/usr/games \
        --libdir=/usr/lib/games/0ad \
        --datadir=/usr/share/games/0ad \
-       --with-system-nvtt \
        -j$(PARALLEL_JOBS)
+#OUMPH         --with-system-nvtt

    $(MAKE) config=release verbose=1 -C build/workspaces/gcc \
        -j$(PARALLEL_JOBS)

Reste juste à compiler/produire les paquets :

$ fakeroot debian/rules binary

$ ls -l 0ad_0.0.23.2*deb
-rw-r--r-- 1 1000 1000   7573344 27 févr. 20:51 0ad_0.0.23.2-42_amd64.deb
-rw-r--r-- 1 1000 1000 213483228 27 févr. 20:51 0ad-dbgsym_0.0.23.2-42_amd64.deb

Produire le paquet des données du jeu

$ apt source 0ad-data
$ mkdir 0ad-0.0.24b-alpha-data
$ cd 0ad-0.0.24b-alpha-data
$ tar ../xvJf 0ad-0.0.24b-alpha-unix-data.tar.xz
$ mv 0ad-0.0.24b-alpha/binaries .

$ diff -ru 0ad-data-0.0.23.1/debian/changelog 0ad-0.0.24b-alpha-data/debian/changelog
--- 0ad-data-0.0.23.1/debian/changelog  2021-01-01 16:24:47.000000000 +0100
+++ 0ad-0.0.24b-alpha-data/debian/changelog 2021-02-27 19:58:48.969725405 +0100
@@ -1,3 +1,8 @@
+0ad-data (0.0.23.2-42) unstable; urgency=medium
+  * Nope
+
+ -- Oumph <oumph@linuxfr.org>  Sat, 27 Feb 2021 19:00:00 +0100
+
 0ad-data (0.0.23.1-1.1) unstable; urgency=medium

   * Non maintainer upload by the Reproducible Builds team.

$ fakeroot debian/rules binary
$ ls -l 0ad-data_0.0.23.2*deb
-rw-r--r-- 1 1000 1000 843483732 27 févr. 20:25 0ad-data_0.0.23.2-42_all.deb
-rw-r--r-- 1 1000 1000    778544 27 févr. 20:25 0ad-data-common_0.0.23.2-42_all.deb

Reste à installer les paquets 0ad, 0ad-data et 0ad-data-common, et on peut tester cette nouvelle version.

$ sudo dpkg -i 0ad_0.0.23.2-42_amd64.deb 0ad-data_0.0.23.2-42_all.deb 0ad-data-common_0.0.23.2-42_all.deb
  • # Numéro de version

    Posté par  . Évalué à 10.

    P'tite astuce pour le numéro de version :
    0.0.23 < 0.0.24~ < 0.0.24

    Tu peux mettre ce que tu veux derrière ce ~, chiffres comme lettres.
    Un exemple classique serait par exemple : 0.0.24~rc1.

  • # Gestion des dépendances de compilation

    Posté par  . Évalué à 10. Dernière modification le 28 février 2021 à 20:14.

    Une commande très pratique que j'ai adopté depuis peu de temps quand je construis des paquets depuis les sources sur Debian : mk-build-deps (fourni par devscripts).

    Un exemple tout bête :

    mk-build-deps 0ad
    apt install ./0ad-build-deps_0.0.23.1-5_all.deb
    

    Le gros avantage étant le nettoyage simplifié quand on veut se débarrasser de toutes ces bibliothèques de développement :

    apt autoremove 0ad-build-deps
    
  • # Merci!

    Posté par  . Évalué à 3.

    Merci beaucoup pour ce tuto j'espère que ça aidera certain(e)s a s'amuser avant l'heure. Pour l'instant peu de distros supportent la nouvelle alpha.

    https://repology.org/badge/vertical-allrepos/0ad.svg

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.