Compilation et installation depuis les sources (Gentoo)

Added by Pierre-Olivier Vallès over 9 years ago

Bonsoir à tous!

Je suis nouveau avec AMC ; je viens de terminer mes premiers tests (compilation, génération d'un questionnaire, scan, correction auto, et email du résultat) de la version 1.2.1 sur Gentoo.

Tout d'abord, je remercie les développeurs pour leur travail, et les personnes participant aux forums (qui m'ont permis d'avancer rapidement sur les problèmes les plus courants). Merci à Adèle Sanchez, qui avait déjà bien travaillé pour compiler sur Gentoo... même si elle n'a pas posté son ebuild final : X-)

Voici quelques remarques (en fait, des problèmes que j'ai rencontré) :

1) Absence de "configure"... Avant de faire un make, lancer un configure qui vérifie la présence et l'emplacement des libs et prépare la compilation... ça n'a pas de prix :-). Du coup, j'ai fait le "configure" à la main, ce n'ai vraiment pas trop de boulot : juste deux petites modifications au niveau de PERLDIR, GCC_NETPBM.

2) Environnement TeX avec Gentoo : pour générer la documentation, il faut le package "dblatex" (disponible dans l'overlay "benf"). Le package ne s'installe pas dans l'arborescence TexLive, et du coup même un "texhash" ne permet pas d'accéder aux fichiers .sty nécessaires. Problème résolu avec la variable d'environnement TEXINPUTS, à exporter avant de lancer le "make all".

3) Génération de la doc lors du "make all" : il y a des variables qui ne sont pas remplacée (dans le DTX intermédiaire) et qui bloquent la génération de la doc en PDF. Il s'agit de "PACKAGE_V_DEB" et "PACKAGE_V_SVN". Peut-être est-ce dû à la migration de subversion vers mercurial ? Je n'ai pas cherché plus que ça, j'ai rajouté un petit coup de "sed" dans le Makefile correspondant ; je remplace ça par la version des sources.

4) Dépendances de compilation et de runtime (Perl).
Voici les dépendances nécessaires à la compilation (pas facile à identifier, car beaucoup étaient déjà installées... donc je ne garantis rien) :
virtual/tex-base
virtual/latex-base
>=app-text/texlive-2012
>=app-text/poppler-0.24.5 (pas sûr)
>=media-libs/netpbm-10.51.00
>=app-text/dblatex-0.3.4
>=app-text/docbook-xml-simple-dtd-4.1.2.5:4.1.2.5
>=app-text/docbook-xsl-stylesheets-1.78.0
>=media-libs/opencv-2.4.5
Avec cela, on doit pouvoir compiler AMC 1.2.1.
Pour faire fonctionner AMC 1.2.1, il faut également les packages suivants :
>=dev-perl/gtk2-perl-1.247.0
>=media-gfx/imagemagick-6.8.8.10
>=dev-perl/XML-Writer-0.623.0
>=dev-perl/Archive-Zip-1.300.0
>=dev-perl/DBI-1.623.0
>=dev-perl/Text-CSV-1.320.0
>=dev-perl/DBD-SQLite-1.350.0
>=dev-lang/perl-5.18:0/5.18
>=dev-perl/DBD-mysql-4.20.0
>=dev-perl/Net-CUPS-0.610.0
>=dev-perl/Email-Address-1.905.0
>=dev-perl/Email-MIME-1.924.0
>=dev-perl/Email-Sender-0.120.2
msmtp? ( >=mail-mta/msmtp-1.4.31 )
J'ai mis msmtp en dépendance optionnelle (use flag "msmtp" pour l'activer)

5) Packages "graphicsmagick" et "imagemagick" : AMC devrait pouvoir fonctionner avec l'un ou l'autre (d'après ce que j'ai lu dans les forums). Par défaut, il semble qu'AMC choisisse "graphicsmagick" prioritairement. Malheureusement, la correction auto semble ne pas fonctionner avec "graphicsmagick". J'ai donc mis un dépendance sur "imagemagick". Pour faire encore mieux, il faudrait soit pouvoir désactiver le support de "graphicsmagick" (qui visiblement pose des soucis sur d'autres plateformes, soit inverser les priorités ("imagemagick" avant "graphicsmagick"), soit que je modifie mon ebuild pour mettre un "blocker" sur "graphicsmagick".

6) Lors de l'installation / désinstallation du package, un "texhash" est lancé automatiquement pour que "automultiplechoice.sty" soit indexé / désindexé.

Voilà tout... je ne suis pas un expert en TeX, ni en LaTeX, ni en Perl ; je sais juste que cela arrive à fonctionner avec ces modifications.
N'hésitez pas à me signaler ce qui manque ou n'est pas fait correctement.
Je poste mes fichiers (ebuild, patch) dans le prochain post.

Bien cordialement,
Pierre-Olivier Vallès


Replies (14)

RE: Compilation et installation depuis les sources (Gentoo) - Added by Pierre-Olivier Vallès over 9 years ago

Re-bonjour,

Voici donc l'ebuild et le patch.

Pour tester cela :
- Créer un overlay local : http://wiki.gentoo.org/wiki/Overlay/Local_overlay

- Y placer l'ebuild (catégorie "app-office")
=> /usr/local/portage/app-office/auto-multiple-choice/auto-multiple-choice-1.2.1.ebuild

- Y placer le patch dans le sous-répertoire "files"
=> /usr/local/portage/app-office/auto-multiple-choice/files/auto-multiple-choice-1.2-makefiles.patch

- Générer le Manifest avec les bon checksums. Il faut lancer, en tant que root :

cd /usr/local/portage/app-office/auto-multiple-choice/
ebuild auto-multiple-choice-1.2.1.ebuild manifest clean

- Ensuite, il n'y a plus qu'à lancer "emerge" de la manière que vous préférez :

emerge -qav auto-multiple-choice

Bonne compilation :-)

auto-multiple-choice-1.2.1.ebuild - ebuild, version 1.2.1 (1.8 kB)

auto-multiple-choice-1.2-makefiles.patch - patch pour les Makefiles (1.4 kB)

RE: Compilation et installation depuis les sources (Gentoo) - Added by Alexis Bienvenüe over 9 years ago

Merci pour ce travail. Afin de l'intégrer à AMC, je propose le fonctionnement suivant, et attends vos commentaires :
  1. Le rajout de rm -f html/index.html dans le patch peut être intégré à AMC
  2. Les autres variables de configurations modifiées dans le patch (PERLDIR, GCC_NETPBM, PACKAGE_V_DEB, etc.) peuvent être regroupées dans un fichier Makefile-gentoo.conf. Pour que celui-ci remplace le Makefile.conf qui a été écrit pour debian, il faut ensuite appeler make comme suit (dans le ebuild) :
    AMCCONF=gentoo make
  3. Pour la question de la sélection imagemagick/graphicsmagick : il faudrait permettre de configurer le choix entre les deux…

N'hésitez pas à proposer des demandes d'ajouts (pull request) sur le dépôt mercurial (https://bitbucket.org/auto-multiple-choice/auto-multiple-choice), et éventuellement à rajouter un dépôt pour le ebuild, appartenant au groupe AMC (https://bitbucket.org/auto-multiple-choice), comme pour le paquet debian.

Vous pouvez également documenter l'installation sur gentoo sur le wiki English et/ou Français.

RE: Compilation et installation depuis les sources (Gentoo) - Added by Pierre-Olivier Vallès over 9 years ago

Merci pour la réponse (rapide!).

Je vais voir ce qui peut être intégré directement (pull request), et ce qui peut être mis dans des Makefiles spécifiques.
Votre solution semble la plus simple / correcte ; je teste cela dès que possible.

Je vais également regarder ce qu'il faut mettre place un overlay (dépôt d'ebuild) ; a priori, un répertoire géré par mercurial devrait faire l'affaire. Je regarde dès que j'ai le temps.

Promis, je tente de mettre à jour le wiki asap !

RE: Compilation et installation depuis les sources (Gentoo) - Added by Pierre-Olivier Vallès over 9 years ago

Bonsoir,

Je viens de fouiller de partout (forums, wiki, documents, dépôt...), mais je n'ai rien trouvé qui explique comment faire les pull requests.
Est-ce que cela se fait directement en ligne de commande avec hg (mercurial) ?

Bonne soirée !

RE: Compilation et installation depuis les sources (Gentoo) - Added by Alexis Bienvenüe over 9 years ago

Merci pour la documentation de l'installation sur gentoo !

En ce qui concerne les pull requests, ce n'est pas avec mercurial mais sur bitbucket que ça se passe.

RE: Compilation et installation depuis les sources (Gentoo) - Added by Nicolas Richard over 9 years ago

Pour ce qui est de PACKAGE_V_DEB et PACKAGE_V_SVN, j'ai résolu le problème en regardant ce qui se passait dans la release : il y a un fichier Makefile.versions qui contient les données.

J'ai donc ajouté un fichier Makefile.versions contenant :

PACKAGE_V_DEB=unreleased
PACKAGE_V_SVN=$(shell hg id|cut -d" " -f1)

et ça passe tout seul.

RE: Compilation et installation depuis les sources (Gentoo) - Added by Alexis Bienvenüe over 9 years ago

make version_files devrait également pouvoir refabriquer un fichier Makefile.versions

RE: Compilation et installation depuis les sources (Gentoo) - Added by Nicolas Richard over 9 years ago

Ah oui bien. Ne devrait-ce pas être une dépendance de "all" ? Car actuellement si on se contente de "make" dans le dépôt, on a les erreurs signalées par Pierre-Olivier Vallès.

RE: Compilation et installation depuis les sources (Gentoo) - Added by Alexis Bienvenüe over 9 years ago

Quand les sources sont distribuées, make version_files est appelé avant de fabriquer le tar.gz, ce qui fait qu'il est inutile de l'appeler ensuite. Ceci permet de travailler avec l'archive des sources (et faire make) sans avoir mercurial (qui est requis pour make version_files).

RE: Compilation et installation depuis les sources (Gentoo) - Added by Nicolas Richard over 9 years ago

Dans ce cas je suggère de rajouter un README ou INSTALL.hg ou similaire qui mentionne qu'il faut taper "make version_files" avant de faire "make" si on part du dépôt Mercurial, un peu comme cela avait été expliqué ici :
http://project.auto-multiple-choice.net/boards/4/topics/2619?r=2641

Nicolas.

RE: Compilation et installation depuis les sources (Gentoo) - Added by Pierre-Olivier Vallès over 9 years ago

Bonjour Alexis et Nicolas,

Je viens de comprendre pourquoi je devais patcher "PACKAGE_V_DEB" et "PACKAGE_V_SVN" quand je compilais depuis un checkout de mercurial, et pourquoi cela n'était pas nécessaire lorsque je compilais à partir d'un .tgz. J'aurais pu le trouver en fouillant un peu mieux dans le Makefile :-)

Je vais m'assurer de ne plus patcher les .tgz dans mes ebuilds (je ne sais plus si je l'ai laissé...) ; si j'ai le temps, je teste un ebuild "live" qui compile un checkout mercurial directement (et là je lancerai un make version_files avant le make all). Je regarde ça et je mets le wiki à jour.

(1-14/14)