patacrep/patanet

Compilation lilypond

Opened this issue · 1 comments

Pour pouvoir insérer les partitions lilypond dans les carnets compilés, je vois trois possibilités:

  • Precompiler les fichiers .ly en PDF.
    • Problèmes: il n'est pas évident de les avoir dans la bonne largeur pour les inclure ensuite, il faut les recompiler a chaque modifications
      • Avantages: Solution relativement sécurisé, il faut tout de même échapper les entrées utilisateur, et se renseigner un peu.
  • Compiler les fichier .ly a la volée. Il est possible d'activer \write18 sélectivement pour certaines commandes, et donc autoriser l’exécution de lilypond.
    • Avantages: plus besoin de pre-compiler/recompiler les fichiers .ly
    • Inconvénients: on a toujours besoin d’échapper les commandes utilisateurs et de tout vérifier.

Il faut ajouter au fichier texmf.cnf les lignes:

shell_escape = p
shell_escape_commands = lilypond
  • Exécuter LaTeX et Lilypond dans un environnement chrooté. C'est la plus sécurisée des solutions.
    • Avantages: C'est sécurisé, pas de problèmes de vérification des commandes utilisateur
    • Inconvénients: il faut trouver un moyen pour communiquer avec cet environnement chrooté pour qu'il ai accès aux fichier .sg et .ly (facile, on ecrit dans le chroot depuis l'exterieur), et qu'il lance automatiquement les compilations et renvoie le résultat. (Besoin de Python et TeXLive dans le chroot).

Pour ma part, je penche pour la seconde solution.

On peut aussi ajouter une option à la ligne de commande lilypond.

  • --safe est un équivalent lilypond de --disabled-write18en LaTeX

  • --jailutilise un environnement chrooté.

    A voir si cela vaut le coup d'être intégré dans songbook-core