Catégories
Developpement Open-source

Java devient libre !

Sun l’avait annoncé il y a maintenant quelques temps, le Java Development Kit (JDK) vient d’être « offert » à la communauté OpenJDK sous une licence GPL2. Le kit de développement de Java devient donc « open-source » et la communauté OpenJDK va donc pouvoir s’occuper du développement de nouvelles fonctions, de la correction de bug et des tests de compatibilité sur l’ensemble des plates-formes.

Java logo

Comme je l’ai déjà dis dans ce blog je ne suis pas un gros fan de Java, je trouve se langage lourd aussi bien au niveau des performances que de sa structure sémantique. De plus, les sociétés de services en informatique profitent de ce « nouveau langage » (nouveau pour les entreprises…) pour embaucher des ingénieurs fraichement sortis des écoles et vendre de l’expertise sur un sujet qui n’est pas ou peu maîtrisé par le personnel en place.

Bien que l’on ne puisse rien faire de plus en Java que se que l’on fait en C, il faut quand même avouer que ce langage a vraiment progessé (notamment au niveau des performances) ces dernières années. L’annonce de Sun est donc une autre étape importante et à souligner dans le développement de ce langage de programmation.

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: