[gentoo] Création de paquets

J’ai l’intention de créer les paquets Gentoo pour l’installation de Duniter. Pour ceux qui ne connaissent pas, Gentoo est une distribution basée sur les sources. Cela veut dire que je vais devoir télécharger les sources et les compiler en local sur la machine.

Le mode d’emploi explique bien comment compiler les sources, mais uniquement pour faire une version server et non pour la version desktop. Comme je souhaiterai donner la possibilité à l’utilisateur de compiler la version qu’il préfère, j’aurai besoin de connaitre la réponse à quelques questions. Ne vous formalisez pas si certaines vous paraissent un peu bêtes, mais je découvre tout juste le produit…

  1. Pour moi, cela n’a pas de sens d’avoir à la fois une version desktop et une version server d’installée sur le même poste. Est-ce que je me trompe ?
  2. La partie duniter_ui (si j’ai bien compris, c’est ce qui permet d’accéder à l’administration du nœud par une interface web) semble optionnelle. L’est-elle pour la version desktop comme pour la version server ?
  3. J’ai vu qu’il y avait des dépendances sur python 2.7 et yarn. Ces dépendances sont-elles uniquement pour la compilation, ou est-ce que ces outils doivent également être présents pour l’exécution ?
  4. J’essaie de faire le point sur les différences entre les deux versions. Pour le moment, j’ai trouvé ça :
  • La version server s’appuie sur node.js tandis que la version desktop fonctionne avec nw.js.
  • La version server devrait avoir les outils pour démarrer automatiquement au démarrage de la machine, alors que la version desktop devrait installer un menu pour démarrer dans le gestionnaire de bureau.

Voilà, je suis preneur de toutes vos réponses, remarques ou suggestions.

Merci !

J’ai vu que @modulix utilisait également Gentoo. Je vais pouvoir utiliser ses modes d’emploi et sans doute faire un paquet pour Sakia.

Tout à fait. Dans ce cas, la machine se retrouve avec deux nœuds.

Oui et oui. C’est l’interface est utilisée pour administrer son nœud. Cette interface peut être accessible derrière un serveur web comme avec le paquet Duniter ou en local avec NodeWebKit (c’est optionnel) pour la version desktop.

Il me semble que c’est juste pour la compilation.

Les deux versions utilisent Node.js pour faire tourner le nœud. Et, uniquement la version desktop utilise nw.js pour avoir un chromium embarqué.

Bien vu, ça n’est toujours pas fait.

1 Like

juste une précision contrairement a ce qu’indique @Moul, le module duniter-ui est obligatoire pour la version desktop, pas optionnel… En effet le version desktop nécessite une interface graphique, et c’est uniquement le module duniter-ui qui la fournie.

Le reste est juste.

1 Like

Autre question : sur la page ci-dessous, il est écrit qu’il faut faire un sed (au bas de la page) uniquement pour les version inférieur à 1.6. Pourtant, dans le script de création du paquet Debian, le sed est toujours présent dans la branche master. Alors, qui a raison ? La doc ou le script ?

Pour tes essais, je te conseille plutôt de prendre la branche dev ou 1.6, au choix. La branche master n’est pas à jour des correctifs, d’ailleurs la dernière version qu’elle contient est la 1.5.4 alors que la version officielle est la 1.5.9.

Je suppose que nous la mettrons à jour lors de la sortie officielle de la version 1.6.

1 Like

J’ai fait le paquet pour la version 1.5.9. Je vais m’atteler au paquet pour la dernière 1.6 sortie. D’après mes premiers tests, cela fonctionne au bug suivant près :

Pour les utilisateurs de Gentoo qui veulent tester, ça se passe ici :

Oui, NwJS n’est pas NodeJS même s’il l’embarque sous forme de librairie, et toutes les dépendances addon doivent être recompilées avec comme cible nwjs.

Tu trouveras de quoi travailler ici : https://git.duniter.org/nodes/typescript/duniter/blob/1.6/release/arch/debian/build-deb.sh

C’est le script qui réalise tous les livrables (tar.gz, .deb serveur et .deb desktop) depuis une Ubuntu.

C’est bien le script dont je me suis servi pour créer le paquet Gentoo (enfin, la version 1.5.9 pour le moment).

Je vais regarder si la version 1.6 corrige le bug cité (note que ce n’est pas moi qui l’ai ouvert).

Justement, le problème vient de la façon dont on crée le serveur en mode « desktop ». Visiblement, c’est là que le bas blesse. Est-ce la recompilation des dépendances avec nwjs (en particulier sqlite) qui ferait que le serveur ne fonctionne plus ? Est-ce que cela veut dire que, en mode « desktop », il faut appeler le serveur avec nw et non avec node ?

(quand je parle du serveur, je parle bien de ce que l’on appelle par la commande duniter et non par la commande duniter-desktop)

Bon, après être allé relire le bug, je pense que nous avons tous les deux la réponse puisque c’est toi qui l’a ouvert, et des tests ont confirmés le bug en version 1.6.14.

Je n’ai rien dit, l’incident est à ton nom, mais ouvert par @kindlyfire

@sveyret oui duniter-ser-ver et duniter-desktop sont incompatibles entrent eux, il faut d’abord désintaller l’un pour installer l’autre !

Dans ce cas, il ne faudrait pas installer duniter.sh avec la version desktop. Je vais modifier l’incident (et le paquet Gentoo) en ce sens.

J’ai fait une Pull Request pour modifier la page Wiki expliquant l’installation d’un nœud Duniter et ajouter la version Gentoo.

Si @modulix ou @Tepeyac qui semblent avoir Gentoo veulent jeter un œil et tester l’ebuild que j’ai créé, je suis preneur de leurs remarques.

Oui. Cela veut dire que si tu as compilé les addons C/C++ de Duniter pour NwJS, en effet, tu ne pourras exécuter Duniter qu’avec NwJS. Donc il faudra faire appel à l’exécutable nw. Tandis que si tu as compilé ces addons pour NodeJS, tu peux uniquement exécuter Duntiter avec NodeJS. Donc il faudra faire appel à l’exécutable node.