[Proposition] Paquets debian/ubuntu de modules externes

Forum destiné aux questions et discussions en français
Forum rules
Règles du forum et informations utiles.

VEUILLEZ LIRE CECI AVANT DE DEMANDER DE L'AIDE
User avatar
NormandC
Posts: 18534
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

[Proposition] Paquets debian/ubuntu de modules externes

Postby NormandC » Thu Apr 23, 2015 3:00 am

Bonjour,

J'ai créé ce fil pour cesser de polluer la discussion Problème avec les outils d'esquisses.

jbe a demandé que le module externe Assembly2 soit intégré à la version FreeCAD du dépôt PPA Daily Builds pour Ubuntu. (Pour ceux qui l'ignorent, je suis le responsable principal des dépôts PPA du projet FreeCAD)

Cependant, à mon avis je ne peux pas accéder à cette demande pour les raisons suivantes :
  • Le module Assembly2 de hamish ne fait pas partie du projet FreeCAD, il s'agit d'un atelier développé indépendamment par un membre de la communauté. Ce module n'est pas supporté par les développeurs de FreeCAD.
  • Les versions officielles de FreeCAD pour Windows et Mac OS X ne l'incluent pas. Nous devons assurer l'uniformité entre les plateformes, j'en veux pour exemple les versions différentes d'OCC/OCE sous la v0.14 qui ont été un cauchemar à gérer au niveau du soutien technique.
  • L'incompatibilité des licences. Assembly2 est sous licence GPLv3, une licence très restrictive, alors que FreeCAD est sous une licence plus permissive LPGL. Après des expériences passées, les devs ont décidé de ne plus intégrer de code GPL à FreeCAD.
En ce moment-même, il y a une initiative pour faciliter l'ajout de macros ou modules externes à FreeCAD au moyen d'une interface graphique. Plugin Loader (discussion en anglais)

Cependant c'est tout récent, et incomplet.

Pour les utilisateurs sous Ubuntu, il est dommage de ne pas tirer encore plus profit de la plateforme Launchpad qui propose des PPA, mais aussi une automatisation de la compilation des paquets, qui sont mis à jour par le gestionnaire de mises à jour d'Ubuntu.

Donc, après réflexion, je crois qu'il serait pertinent de faciliter l'installation et la mise à jour de modules externes réalisés par la communauté. Je propose de créer un nouveau dépôt PPA dédié. Je ne sais pas encore s'il devrait être sous le contrôle de l'équipe FreeCAD Maintainers, ou sous le contrôle d'une nouvelle équipe plus ouverte à la communauté (par choix, l'adhésion à FreeCAD Maintainers est restreinte).

J'ai fait un test ce soir, j'ai réussi (après quelques essais) à créer un paquet .deb de l'atelier Assembly2.

Vous pouvez le télécharger ici : freecad-assembly2_0.1_all.deb (3,3 Mio)
Ce paquet est compatible avec toute architecture ou version d'Ubuntu, il est sûrement aussi compatible avec Debian ou tout autre distribution basée sur Debian/Ubuntu. L'avantage d'un paquet *.deb, c'est que les dépendances s'installent automatiquement, sans que l'utilisateur ne doive le faire lui-même. (attention, mon paquet a une dépendance stricte à freecad >= 0.15.4671, en raison de la numérotation actuelle des paquets Daily Builds il est incompatible ; les prochaines mises à jour Daily Builds devraient régler le problème)

L'ennui de mon paquet actuel : il enregistre les fichiers sous /usr/lib/freecad/Mod/. J'ai rapidement testé et ça semble fonctionnel, mais sous les Daily Builds, est-ce que ces fichiers seront écrasés lors de la prochaine mise à jour de FreeCAD ? Deuxièmement, je crois que l'enregistrement dans ce chemin provoque un conflit de licence.

Les modules externes qui pourraient être empaquetés seraient :
  • Assembly2
  • Drawing Dimensioning (cotation directement sur les vues de l'atelier Drawing)
  • BOLTS (bibliothèque de pièces)
  • FCGear (engrenages)
  • et d'autres ?
Je vais en discuter également avec les développeurs, afin de voir s'ils ont des objections, conseils...

Alors voilà. Si ce projet fonctionne, j'aimerais bien cette fois obtenir de l'aide. :geek:
CkwA
Posts: 59
Joined: Fri Sep 12, 2014 6:37 pm

Re: [Proposition] Paquets debian/ubuntu de modules externes

Postby CkwA » Thu Apr 23, 2015 6:36 am

Bonjour,

Bonne idée je trouve, je ne connais pas grand chose à la création de paquets (je n'ai jamais eu besoin de m'y interésser en fait, c'est l'occasion) mais si je peux aider je le ferais.
NormandC wrote:L'ennui de mon paquet actuel : il enregistre les fichiers sous /usr/lib/freecad/Mod/. J'ai rapidement testé et ça semble fonctionnel, mais sous les Daily Builds, est-ce que ces fichiers seront écrasés lors de la prochaine mise à jour de FreeCAD ? Deuxièmement, je crois que l'enregistrement dans ce chemin provoque un conflit de licence.
Quelle serait la solution alors, les installer dans un dossier /usr/lib/freecad-extras par exemple ? Du coup il faut aussi dire à FreeCAD où chercher les modules et macros.
jbe
Posts: 279
Joined: Sun Nov 10, 2013 4:18 pm
Location: France, Châteauroux

Re: [Proposition] Paquets debian/ubuntu de modules externes

Postby jbe » Thu Apr 23, 2015 4:06 pm

Bravo d'une telle initiative.
Je vais suivre le fil de cette discussion de très près.
Freecad va devenir un super logiciel, de la création d'esquisse, jusqu'à l'assemblage.
jbe
Posts: 279
Joined: Sun Nov 10, 2013 4:18 pm
Location: France, Châteauroux

Re: [Proposition] Paquets debian/ubuntu de modules externes

Postby jbe » Thu Apr 23, 2015 4:11 pm

Au fait, comment peut on t'aider ?
Si c'est pour faire des essais avec Feeecad, pas de soucis.
Je l'utilise pratiquement tous les jours, que ce soit au collège, ou chez moi.

En revanche, bien qu'ayant pratiqué l'informatique il y a bien longtemps, je me sens pas de taille a t'aider de ce coté la, ou alors il faudra que cela soit bien documenté.

A plus, et encore bravo.
User avatar
NormandC
Posts: 18534
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: [Proposition] Paquets debian/ubuntu de modules externes

Postby NormandC » Thu Apr 23, 2015 5:14 pm

CkwA wrote:
NormandC wrote:L'ennui de mon paquet actuel : il enregistre les fichiers sous /usr/lib/freecad/Mod/. J'ai rapidement testé et ça semble fonctionnel, mais sous les Daily Builds, est-ce que ces fichiers seront écrasés lors de la prochaine mise à jour de FreeCAD ? Deuxièmement, je crois que l'enregistrement dans ce chemin provoque un conflit de licence.
Quelle serait la solution alors, les installer dans un dossier /usr/lib/freecad-extras par exemple ? Du coup il faut aussi dire à FreeCAD où chercher les modules et macros.
J'ai créé un sujet identique à celui-ci (mais en anglais) sur le forum Open discussion. [Proposal] debian/ubuntu packages of community modules

wmayer (un des devs de FreeCAD) m'indique que les fichiers ne seront pas écrasés, et il ne croit pas que ça cause un conflit de licence. Cependant, je crois toujours que par souci d'installer le tout proprement, il serait préférable d'installer dans un dossier indépendant /usr/lib/freecad-extras ou freecad-modules. Ou peut-être ce devrait être sous /usr/share ? Il faut que je vois les règles quant à l'arborescence des fichiers.

Je vais aussi voir si le paquet peut créer un lien symbolique dans le dossier /usr/lib/freecad/Mod/. J'ai une idée là-dessus.

Merci pour vos offres d'aide. Je vous reviens avec un paquet révisé pour tester, et je vais essayer de produire de la documentation.
CkwA
Posts: 59
Joined: Fri Sep 12, 2014 6:37 pm

Re: [Proposition] Paquets debian/ubuntu de modules externes

Postby CkwA » Thu Apr 23, 2015 6:26 pm

NormandC wrote:J'ai créé un sujet identique à celui-ci (mais en anglais) sur le forum Open discussion. [Proposal] debian/ubuntu packages of community modules
Oui je suis les deux sujets, mais j'avoue que je choisis la facilité en répondant ici.
NormandC wrote: wmayer (un des devs de FreeCAD) m'indique que les fichiers ne seront pas écrasés, et il ne croit pas que ça cause un conflit de licence. Cependant, je crois toujours que par souci d'installer le tout proprement, il serait préférable d'installer dans un dossier indépendant /usr/lib/freecad-extras ou freecad-modules. Ou peut-être ce devrait être sous /usr/share ? Il faut que je vois les règles quant à l'arborescence des fichiers.
Je trouve aussi préférable de séparer, pour bien appuyer le fait que ce sont des modules tiers.
NormandC wrote: Merci pour vos offres d'aide. Je vous reviens avec un paquet révisé pour tester, et je vais essayer de produire de la documentation.
Pour le moment je m'entraîne à empaqueter le module Drawing Dimensioning en m'aidant de http://packaging.ubuntu.com/html/index.html et de ton paquet. J'espère pouvoir t'aider bientôt. :)
User avatar
NormandC
Posts: 18534
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: [Proposition] Paquets debian/ubuntu de modules externes

Postby NormandC » Thu Apr 23, 2015 6:59 pm

Salut CkwA,

J'ai appris à l'aide de deux tutos sur la documentation Ubuntu-fr.org (dont je fus un certain temps un des admins avant d'être accaparé par FreeCAD :D ):

http://doc.ubuntu-fr.org/tutoriel/creer_un_paquet
http://doc.ubuntu-fr.org/tutoriel/creer ... _launchpad

Je n'ai d'ailleurs trouvé rien d'aussi convivial en anglais. Ce qui va me compliquer la tâche pour la documentation en anglais... En français, il suffit presque de filer ces deux liens. Ensuite, on peut compléter avec les ressources plus complètes le guide d'Ubuntu ou celui de Debian (que je n'ai que survolé, c'est du costaud et je ne comprend pas grand chose :oops: )

Pour les modules hébergés sur GitHub (Assembly2 et Drawing Dimensioning entre autres), j'ai en tête de faire comme pour les Daily Builds :
  • Importer le dépôt GitHub dans une branche sur Launchpad (celle-ci sera synchronisée aux 6 heures ou sur demande)
  • Créer une branche Launchpad contenant le dossier debian pour la construction de paquets
  • Créer une recette de compilation automatique à partir des deux branches
  • Laisser tourner !
Mais la première étape est de vérifier qu'on peut créer un paquet local, ce que le premier tuto explique.
User avatar
NormandC
Posts: 18534
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: [Proposition] Paquets debian/ubuntu de modules externes

Postby NormandC » Thu Apr 23, 2015 7:03 pm

Par ailleurs la création de paquets de modules python est un cas spécifique, car il n'y a aucune compilation requise ; il faut simplement indiquer au système où copier les fichiers, par la création d'un fichier <paquet>.install qui contient les fichiers à copier, et leur destination.

Ne te surprend donc pas si ton premier paquet échoue... Ça m'a pris 3-4 essais hier. ;)

J'ai retrouvé le lien : http://stackoverflow.com/questions/3214 ... its-target
(Voir la réponse qui a récolté 33 votes)
User avatar
NormandC
Posts: 18534
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: [Proposition] Paquets debian/ubuntu de modules externes

Postby NormandC » Fri Apr 24, 2015 3:41 am

J'ai fait beaucoup de lecture ce soir, afin de déterminer la bonne marche à suivre sur Launchpad... (j'en ai le tournis :? )

Et puis pour avoir l'impression que je n'ai pas perdu ma soirée :D , j'ai téléversé un nouveau paquet sur mon PPA personnel, cette fois-ci sous le nom de freecad-extras-assembly2.

Ce paquet est compatible avec le PPA Daily Builds: ça serait gentil de le tester et de faire vos retours. :)

https://launchpad.net/~gemnoc/+archive/ubuntu/ppa

C'est inutile d'ajouter mon dépôt PPA à vos sources logicielles, je vous suggère de le télécharger depuis le lien « View package details »:
FC_normandc_ppa_01.png
FC_normandc_ppa_01.png (60.11 KiB) Viewed 1764 times
Ensuite cliquer sur le triangle qui apparaît devant le nom du paquet pour dérouler ses détails :
FC_normandc_ppa_02.png
FC_normandc_ppa_02.png (60.04 KiB) Viewed 1764 times
Il ne reste qu'à télécharger le paquet freecad-extras-assembly2_0.1_all.deb listé tout en bas sous l'entête Package files, puis l'installer par un double-clic pour ouvrir la logithèque, ou par le terminal (c'est dpkg quelque chose mais je n'utilise jamais)

==========
@ CkwA: l'archive freecad-extras-assembly2_0.1.tar.gz est une copie du répertoire ayant servi à construire le paquet, il contient un dossier debian avec les fichiers nécessaires, tu peux l'étudier. Pour construire un paquet local, il te suffit d'ouvrir un terminal, te placer dans le dossier et de saisir

Code: Select all

debuild
Launchpad n'acceptant pas des paquets binaires (*.deb), j'ai dû construire un paquet source avec la commande

Code: Select all

debuild -S
Si je m'étais donné la peine de créer un "tarball" (archive des sources non modifiées, et nommée nom_du_paquet_version.orig.tar.gz), j'aurais plutôt saisi

Code: Select all

debuild -S -sa
Voilà...
CkwA
Posts: 59
Joined: Fri Sep 12, 2014 6:37 pm

Re: [Proposition] Paquets debian/ubuntu de modules externes

Postby CkwA » Fri Apr 24, 2015 9:16 am

Bonjour,

Ton paquet a l'air de fonctionner. C'est presque trop facile du coup ;)
Il se désinstalle bien en même temps que FreeCAD, reste à tester une mise à jour pour vérifier que tout se passe bien. :)