Sommaire

Introduction au développement d'Inkscape

Lien du code : lp:inkscape

Nous présentons ici une référence rapide, pour vous aider à commencer à développer Inkscape. Pour obtenir les détails, regardez le wiki d'Inkscape et les autres documentations spécifiques.

Créer un compte sur Launchpad

Pour rapporter des bogues et aider concernant les sujets techniques, vous aurez besoin d'un compte Launchpad. Pour publier du code source, vous aurez également besoin de configurer des clefs SSH pour votre compte. Des instructions détaillées pour créer et configurer un compte sont disponibles dans le didacticiel d'utilisation de Launchpad.

Récupérer le code source

La première étape est d'obtenir le code source. Télécharger les fichiers du code source de la version publiée (« livraison ») n'est pas suffisant car vous aurez besoin de la dernière version du code source pour développer Inkscape.

Inkscape utilise le système de contrôle de versions Bazaar. Des instructions d'installation en fonction de votre plateforme sont disponibles ici. Sous Debian et ses dérivés (par ex. Ubuntu), vous devez installer le paquet bzr. Sous Windows, vous aurez besoin de télécharger et exécuter l'installateur.

Nous recommandons de configurer un compte Launchpad (voir ci-dessus) avant d'obtenir le code source car il sera ainsi plus facile de publier vos modifications lorsque vous obtiendrez les droits de publication. Après avoir créé votre compte Launchpad, exécutez les commandes suivantes :

bzr whoami "Vrai Nom <courriel@domain.tld>"
bzr launchpad-login nomdutilisateur

où Vrai Nom est votre vrai nom ou un pseudonyme que vous souhaitez utiliser (il devrait être reconnaissable par les gens de la liste de diffusion), courriel@domain.tld est votre adresse électronique pour la correspondance relative à Inkscape (elle peut être masquée si vous voulez), et nomdutilisateur est votre nom d'utilisateur Launchpad. Avec cette configuration, vous pourrez publier une fois que vous aurez été approuvé en tant que membre de l'équipe des développeurs d'Inkscape sur Launchpad.

Pour obtenir le code source le plus récent, utilisez la commande suivante :

bzr checkout lp:inkscape

Pour mettre à jour le code par la suite, utilisez :

bzr update

Utiliser Git

Si vous voulez utiliser Git à la place de Bazaar, vous pouvez facilement le faire grâce à l'adaptateur git-bzr. Lisez notre guide pour les utilisateurs de Git.

Compiler Inkscape sous une machine virtuelle VirtualBox

La manière la plus facile de compiler Inkscape est probablement d'utiliser inkup, qui vous fournit un fichier Vagrant capable de construire une machine virtuelle, qui construit Inkscape à partir des sources. Cela nécessite d'avoir VirtualBox et Vagrant installés sur votre machine.

Compiler Inkscape sous Linux

Installation des dépendances

Pour compiler Inkscape, vous aurez besoin d'installer le compilateur GCC et les fichiers de développement de toutes les bibliothèques utilisées. La façon la plus facile de faire cela sur Debian et les distributions apparentées est d'utiliser la commande :

sudo apt-get build-dep inkscape

Note : Si vous utilisez le PPA des dernières versions sous Debian, vous pouvez utiliser cette commande alternative pour obtenir une liste des dépendances plus juste :

sudo apt-get build-dep inkscape-trunk

Notez que ceci installera les dépendances de la compilation disponibles dans vos dépôts pour le paquet Inkscape. Si le paquet est vieux, vous aurez peut-être besoin d'installer des dépendances supplémentaires ; la sortie du script configure devrait vous donner des indices à propos des besoins additionnels.

À partir de la version 0.92

Deux systèmes de construction sont pris en charge pour Inkscape 0.92 : autotools (présenté ci-dessous) et CMake.

Pour compiler avec CMake, utilisez les commandes suivantes :

mkdir build
cd build
cmake [-DCMAKE_INSTALL_PREFIX=/usr] ..
make [-j8]
sudo make install

Les crochets annotent les paramètres facultatifs.

Le paramètre -j8 donné à make lui indique de lancer 8 processus en parallèle. Vous pouvez ajuster ce nombre afin qu'il corresponde au nombre d'unités de traitement matériel disponibles sur votre ordinateur. Le paramètre optionnel -DCMAKE_INSTALL_PREFIX vous permet d'installer une seconde version d'Inkscape en parallèle, dans un répertoire différent (/usr dans l'exemple). Elle utilisera également les fichiers (y compris preferences.xml) se trouvant dans le répertoire ~/.config/inkscape.

Versions 0.92 et précédentes

Une fois que les dépendances ont été installées, utilisez les commandes suivantes dans le dossier du code source d'Inkscape :

./autogen.sh
./configure [--prefix=/usr]
make [-j8]
sudo make install

Le paramètre -j8 donné à make lui indique de lancer 8 processus en parallèle. Vous pouvez ajuster ce nombre afin qu'il corresponde au nombre d'unités de traitement matériel disponibles sur votre ordinateur. Le paramètre optionnel --prefix vous permet d'installer une seconde version d'Inkscape en parallèle, dans un répertoire différent (/usr dans l'exemple). Elle utilisera également les fichiers (y compris preferences.xml) se trouvant dans le répertoire ~/.config/inkscape.

Compiler Inkscape sous Windows

La compilation d'Inkscape sous Windows est un peu moins directe puisque les outils et bibliothèques nécessaires ne sont pas fournies par le système d'exploitation. Vous devez donc télécharger séparément :

  • le logiciel de gestion de versions Bazaar qui est utilisé pour gérer le code source d'Inkscape et des bibliothèques de développement (non réellement requis pour une simple compilation mais fortement recommandé, en particulier si vous souhaitez recompiler souvent ou contribuer au code) ;
  • le moteur de production CMake (utilisé depuis Inkscape 0.92) ;
  • MinGWMinimalist GNU for Windows ») qui inclut le compilateur et les outils en ligne de commande requis (voir la note plus bas !) ;
  • une copie des bibliothèques de développement d'Inkscape : consultez inkscape-devlibs (pour une compilation 32 bits) ou inkscape-devlibs64 (pour une compilation 64 bits). Elles contiennent des versions précompilées des bibliothèques de programmation dont Inkscape a besoin pour s'exécuter.
    Vous pouvez utiliser Bazaar pour télécharger ces bibliothèques, par ex. avec :
    bzr checkout --lightweight lp:inkscape-devlibs C:\devlibs
    (le paramètre --lightweight permet de ne télécharger que la dernière révision, ce qui est plus rapide et demande moins d'espace disque).

La version du compilateur MinGW dont vous avez besoin dépendant de l'architecture ciblée (32 bits ou 64 bits) et de la version du compilateur utilisée pour la compilation des bibliothèques de développement, il est fortement recommandé de vérifier la articles détaillés du wiki sur la compilation d'Inkscape pour Windows et la compilation d'Inkscape pour Windows 64-bit pour déterminer précisément les exigences avant de poursuivre.

Une fois que vous avez téléchargé le code source d'Inkscape ainsi que tous les autres éléments requis, la construction peut commencer. Définissez tout d'abord les chemins dans le fichier mingwenv.bat (situé à la racine du code source d'Inkscape) afin qu'ils correspondent aux emplacements disponibles sur votre système. Ouvrez ensuite une invite de commandes, allez dans le répertoire source d'Inkscape et exécutez les commandes suivantes :

mingwenv.bat
définit les variables d'environnement
mkdir build
cd build

prépare le répertoire de construction (si vous rencontrez des problèmes persistants par la suite, vous pouvez essayer de supprimer ce répertoire et de recommencer)

cmake -G "MinGW Makefiles" ..
crée les fichiers de construction
mingw32-make -j 2

lance le processus de compilation (l'option -j indique le nombre d'unités de traitement à utiliser ; selon le nombre indiqué, la vitesse de compilation peut nettement varier)

mingw32-make install

crée le répertoire de distribution (càd copie tous les fichiers requis dans un sous-répertoire, par défaut builds\inkscape, à partir duquel vous pouvez exécuter la version d'Inkscape que vous avez construite)

Compiler Inkscape sous Mac

Installez les dépendances listées sur le wiki :

port install cairo boehmgc gtkmm3 intltool libxslt lcms2 gdl3 \
popt poppler boost gsl gnome-vfs libgnomeprintui bzr cmake potrace

Récupérez Inkscape :

bzr branch lp:inkscape trunk

Compilez-le :

mkdir build && cd build && cmake .. -DCMAKE_INSTALL_PREFIX=$(pwd)/../inst && make -j8 && make install

Exécutez-le :

inst/bin/inkscape

Processus de développement

Bazaar

Comme le projet Inkscape utilise Bazaar en tant que système de contrôle de version (VCS), vous aurez besoin de l'utiliser pour contribuer au projet. Des informations plus détaillées à propos de Bazaar sont disponibles sur le Wiki d'Inkscape et dans la documentation officielle de Bazaar.

Déboguer avec GDB

Inkscape devrait être compilé avec l'option -g pour g++ afin de pouvoir être débogué avec GDB.

Développement d'Inkscape

Le code d'Inkscape

Inkscape a démarré comme une copie de Sodipodi, une application GNOME basée sur GObject. Inkscape est écrit en une mixture de C et de C++, pour des raisons historiques. Nous espérons finir par migrer complètement vers le C++. Il y a toutefois toujours beaucoup de code basé sur GObject, donc des connaissances en GObject sont nécessaires pour travailler dans Inkscape.

Inkscape utilise la boîte à outils GTK+ et la bibliothèque de support Glib. Nous migrons actuellement de GTK+ 2.0 vers GTK+ 3.0. Nous utilisons également les parties « en-tête seulement » de Boost (c'est donc une dépendance de compilation, mais pas d'exécution). Il est envisagé que la bibliothèque de géométrie lib2geom, écrite en C++, devienne finalement un projet séparé. Vous pouvez obtenir la dernière version de lib2geom depuis son dépôt Launchpad.

Savoir bien programmer en C++, et utiliser GTK est essentiel pour contribuer à Inkscape. Heureusement, ils ne sont pas si compliqués à apprendre ; lisez donc des didacticiels appropriés.

Style du code source

Le guide décrivant le style du code source C++ au sein du projet Inkscape peut être trouvé ici.

Liens

Communauté

  • Liste de diffusion : inkscape-devel@lists.sourceforge.net. La plupart des développeurs sont abonnés à la liste de diffusion.

  • IRC : #inkscape sur Freenode.

  • Traqueur de bogues d'Inkscape : Corriger des bogues simples  est une bonne manière de démarrer avec le développement d'Inkscape.