Catégories
Developpement Open-source

CodingTeam: nouvelle forge pour le libre

A l’instar de SourceForge, CodingTeam est une nouvelle forge pour les projets « open-source ».

C’est quoi une forge ? C’est un espace (site) permettant la présentation, la gestion et le développement de vos projets de logiciel.

Le site propose donc l’hébergement de projets libres en apportant les outils suivants:

  • un espace de téléchargement,
  • un wiki,
  • un système d’actualité,
  • un dépôt Subversion (SVN sur demande),
  • un suivi des bugs,
  • une liste d’objectifs,
  • un outil de traduction en ligne,
  • un espace de discussion…

Par exemple, si vous créez le projet nommé xxx, vous disposerez d’une page web regroupant tout ces services à l’adresse: http://xxx.codingtam.net

Le site se base sur le logiciel CodingTeam (aujourd’hui en version 0.42 sous license GNU GPL) que vous pouvez également installer sur un serveur local.

Le principal avantage de cette forge par rapport à la concurrence est qu’il est disponible en Anglais et en Français mais je pense personnellement que le site manque encore un peu de maturité. A suivre donc…

Catégories
Developpement

Tutoriel CVS

CVS est un logiciel d’aide au développement de logiciel. Il permet le suivi en configuration et le travail en équipe sur un code source (quel que soit le langage utilisé). Nous allons dans ce post voir les différentes commandes de base pour utiliser cet outil.

On part sur l’hypothése ou l’on dispose d’un serveur CVS installé sur la machine cvs.nicolargo.com.

Les commandes qui suivent sont valables dans un environnement Unix (Linux, BSD, Mac) mais également à partir d’un logiciel comme Eclipse (qui permet la gestion de source via CVS).

Connection au serveur CVS

Il faut disposer d’un compte, nicolargo dans notre exemple (ou d’un accès anonymous sur le serveur):

# export CVSROOT= »:pserver:nicolargo@cvs.nicolargo.com:2401/var/cvs-root »
# cvs login
<saisir votre password ici>

Import d’un projet dans le serveur CVS

Une fois connecté au serveur, nous allons y importer un nouveau projet:

# cd <REPERTOIREDUPROJET>
# cvs import -m « Importation initial » <NOMDUPROJET> nicolargo start
# cd ..
# mv <REPERTOIREDUPROJET><REPERTOIREDUPROJET>.old

Export du projet vers un répertoire

C’est ici que vous aller exporter un projet de votre serveur CVS vers votre disque dûr:

# cvs checkout <NOMDUPROJET>
# cd <NOMDUPROJET>

PS: Vous pouvez également effectuer cette action sous Eclipse (File / Import / CVS / Project from CVS / Use existing repository location: :pserver:nicolargo@cvs.nicolargo.com:2401/var/cvs-root / Use an existing module / <NOMDUPROJET>).

Comme vous pouvez le voir en faisant un ls dans votre répertoire, un nouveau sous répertoire a été créé (CVS/). Ce dernier contient toutes les informations nécessaire pour la synchronisation entre votre machine et le serveur.

Mise à jour du projet

La commande suivante permet de mettre vérifier les fichiers locaux par rapport à ceux du serveur:

# cvs update

Appliquer les mises à jour sur votre serveur

Une fois les modifications effectués sur votre code, vous devez les valider et les intégrer à votre serveur grâce à la commande suivante:

# cvs commit -m « Commentaire de mise à jour »

Tagger vos source lors d’une évolution de version

Quand vos modifications sont effectués et « commiter », vous pouvez avoir besoin de signaler au serveur CVS que la version actuelle des fichiers forme la version X.Y de votre projet. On appelle cette opération le taggage:

# cvs tag R1_0

Attention: Le numero de version ne doit pas commencer par un chiffre et ne doit pas comporter de ‘.’.

Extraction des sources

Enfin, si vous souhaitez diffuser vos sources, il faut d’abord les extraires du serveur CVS:

# cvs export -r « TAG » <NOMDUPROJET>

Ou TAG est le numéro de version que vous souhaitez extraire. Cette commande extrait seulement les fichiers utiles (par exemple pas le repertoire CVS).

Et voili, vous pouvez consultez ce post dans le même sujet:
Création de package GNU

Catégories
Developpement

Création de package GNU

L’installation de packages GNU est toujours la même:

# ./configure
# make
# make install

Nous allons dans ce post étudier comment créer un package GNU respectant ce processus d’installation. Nous allons pour cela nous servir des utilitaires autoconf et automake.

Dans notre exemple, nous allons faire un package du plus célébre des programmes: helloword !
Ce programme se compose des fichiers suivants: helloword.c et helloword.h (je ne vous ferais pas l’affront de vous en donner le code source…).

La première chose à faire est d’organiser votre arborescence:

./helloword/
./helloword/AUTHORS
./helloword/README
./helloword/ChangeLog
./helloword/NEWS
/helloword/src/helloword.c
./helloword/src/helloword.h

Les fichiers AUTHORS, README, ChangeLog et NEWS sont standards et contiennent:

  • AUTHORS: Les informations sur l’auteur du package.
  • README : Description du package.
  • ChangeLog: Historique des changements (version par version).
  • NEWS: Nouveautés de la dernière version.

Nous allons maintenant configurer le fichier configure.in (à la racine de votre arborescence) qui servira de squelette à l’utilitaire autoconf (vous pouvez aussi vous servir de l’utilitaire autoscan qui générera ce fichier automatiquement):

# vi ./configure.in
AC_INIT(configure.in)
AM_INIT_AUTOMAKE(helloword, 1.0)
AC_PROG_CC
AC_PROG_INSTALL
AC_OUTPUT([
Makefile
src/Makefile
])

La macro AC_PROG_CC permet de vérifier lors de l’installation que l’ordinateur cible à bien un compilateur C.
La macro AC_PROG_INSTALL permet de vérifier lors de l’installation que l’ordinateur cible à bien l’utilitaire d’installation de binaire.

On lance ensuite la commande aclocal/autoconf, qui va elle même générer de nouveaux fichiers dans votre arborescence:

# aclocal && autoconf

Il faut alors editer les fichiers ./Makefile.am et ./src/Makefile.am de la facon suivante:

# vi ./Makefile.am
SUBDIRS= src# vi ./src/Makefile.am
bin_PROGRAMS = helloword
helloword_SOURCES = helloword.h helloword.c
helloword_CPPFLAGS = « 
helloword_LDADD = « 

La ligne CPPFLAGS permet d’ajouter des arguments lors de la pre-compilation.
La ligne LDADD permet d’ajouter des arguments lors de l’édition de lien.

On génére alors le fichier ./configure avec la commande:

# automake -a -c

Pour tester votre tout nouveau tout beau package, il suffit de lancer les trois commandes magique:

# ./configure
# make
# make install

Et voila le travail, il ne vous reste plus qu’a publier votre beau logiciel sur un des nombreux sites hébergeant les softs open-source (par exemple http://www.sourceforge.net/).

Pour résumer voici un diagramme résumant le processus: