Programmation pour le logiciel libre et partage.

Le problème exposé dans ce sujet a été résolu.

Salut à tous,

pour la fac, je doit pousser un projet d’info jusqu’à un programme packeté et distribué en logiciel libre.

En fait, je ne sais pas trop comment organiser cela. J’ai pour l’instant sur GitHub un dossier src/ avec dedans le code source et un Makefile.

Est-ce que le code qui va transformer l’executable en packet .deb (ou autre) doit être fourni sur github ? Si oui, sous quelle forme ? Je n’ai pas trouvé grand chose sur le net.

Merci d’avance :)

Pour ma part j’ai un script make-packaging (un script python) disponible dans le repo du projet.

En soit y a pas de problemes à le mettre, tant que c’est documenté.

AmarOk

Ok, merci beaucoup. Pour info, il y a une lib python pour faire le packaging ? Je ne vois pas trop l’interet d’ultiliser python plutot qu’un script shell simple ?

Encore une fois ça dépend totalement de la techno avec laquelle tu développes.

On ne distribue pas de la même façon un logiciel en C++, en Rust, en Go, en Python ou en Java.

Typiquement:

  • En C ou C++, on distribue une archive qui s’installe avec le classique ./configure; make; make install.
  • En Go, on ne package pas les bibliothèques, il suffit de suivre le format standard pour ton dépôt.
  • En Rust, c’est presque pareil, mais il faut lier le dépôt de ton projet sur crates.io.
  • En Python on utilise distutils/setuptools pour créer un paquet PIP (tarball ou wheel) et on l’enregistre sur le PyPi.
  • Etc.

Du coup avant discuter le bout de gras sur python ou shell, pour avancer il faut déjà savoir en quoi tu comptes développer ton logiciel.

+1 -0

Dans ce cas ça peut aller très vite :

  • un README qui détaille les dépendances et les commandes à taper,
  • un makefile à la racine du repo.

Si tu distribues ça sous forme d’une archive style tar.gz, ça suffit.

+1 -0

OK super, merci beaucoup.

Mais pour générer un .deb, il faut des données en plus, non ? Genre un dossier DEBIAN avec un fichier control, un fichier rules etc… Il n’y a pas besoin de partager cela ?

ez613

Il peut y avoir tellement de cibles que tu peux difficilement toutes les gérer : l’avantage de la tarball c’est que c’est universel.

Si quelqu’un veut l’installer sur Debian ou CentOS, avec ton tarball, il le peut. Et si ça lui est vraiment utile, il te proposera peut-être un script de génération de .rpm ou de .deb.

Pour moi ces trucs-là peuvent être laissés au soin des contributeurs. À moins que tu n’aies rien de plus urgent que ça à faire sur ton projet.

+0 -0

J’ai commencé à utiliser cmake.

Je n’ai pas tout compris du principe, et c’est vraiment compliqué de trouver une explication clair.

Je peux à priori créer un fichier CMakeFile.txt à la racine, et l’utilisateur fera un simple cmake && make.

Cela, c’est si je veux distribuer le code source, mais sinon je peux utiliser CPack et créer un package distribuable directement.

Tu peux me confirmer que c’est bien cela ?

Sinon, est-ce que c’est faisable de déplacer l’exécutable dans /bin ? Ou ce n’est pas le rôle de la distribution du code source, et ne se fait que dans cas d’un package ?

+0 -0

Je n’ai pas tout compris du principe, et c’est vraiment compliqué de trouver une explication clair.

Le tuto C++ donne quelques bases sur CMake.

Tu peux me confirmer que c’est bien cela ?

Oui.

Sinon, est-ce que c’est faisable de déplacer l’exécutable dans /bin ? Ou ce n’est pas le rôle de la distribution du code source, et ne se fait que dans cas d’un package ?

Le makefile généré par CMake est standard: make install va t’installer proprement les exécutables dans $INSTALL_PREFIX/bin et les bibliothèques dans $INSTALL_PREFIX/lib.

Par défaut, le préfixe est /usr/local, mais tu peux le surcharger.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte