Subject: bug arranger.ly et pitchedTrill

From: Clement Caillol <[email-masked]>
Date: Mon, 10 May 2021 09:23:55 +0200

Bonjour à tous,

J'ai remarqué que les fonctions de transposition d'arranger.ly 
n'affectaient pas les pitchedTrill :

\version "2.22.0"
\include "arranger.ly"

global = s1*100
#(init '())
#(begin
(cut-end 'global 5)
)

all = #'(I)
#(init all)
#(begin
(x-rm 'I #{ \pitchedTrill c'2\startTrillSpan d' r2\stopTrillSpan #} 1 2 3 4)

(octavize 1 'I 2 3)
(apply-to 'I (set-octave 1) 3 4)
(apply-to 'I (set-transp 0 3 0) 4 5)
)
  \new Staff << \global \I >>

Bien à vous,

Clément Caillol

---

From: Gilles Thibault <[email-masked]>
Date: Wed, 12 May 2021 03:57:58 +0200

L
> n'affectaient pas les pitchedTrill :

Oups, il semble là que c'est carrément la fonction Lilypond
    music-map
qui soit fautive !

Elle est définie dans scm/music-functions.scm par

%%%%%%%%%%%
(define-public (music-map function music)
   "..."
   (let ((es (ly:music-property music 'elements))
         (e (ly:music-property music 'element)))
     (if (pair? es)
         (set! (ly:music-property music 'elements)
               (map (lambda (y) (music-map function y)) es)))
     (if (ly:music? e)
         (set! (ly:music-property music 'element)
               (music-map function  e)))
     (function music)))

Il faudrait que ce soit :

%%%%%%%%%%%
(define-public (music-map function music)
   "..."
   (let ((es (ly:music-property music 'elements))
         (e (ly:music-property music 'element))
         (arts (ly:music-property music 'articulations)))
     (if (pair? es)
         (set! (ly:music-property music 'elements)
               (map (lambda (y) (music-map function y)) es)))
     (if (pair? arts)
         (set! (ly:music-property music 'articulations)
               (map (lambda (y) (music-map function y)) arts)))
     (if (ly:music? e)
         (set! (ly:music-property music 'element)
               (music-map function  e)))
     (function music)))

La différence ici c'est le bouclage aussi sur la propriété 
'articulations.
Comme les trilles sont définies dans la propriété 'articulations, aucune 
fonction ne peut avoir le moindre effet sur elles.
Je ne pense pas que se soit volontaire de la part des développeurs. 
C'est sûrement une erreur.

En ré-definissant au début de son fichier ly, la fonction music-map 
comme écrit juste au-dessus, les fonctions octave et set-transp marchent 
à nouveau sur les trilles.

-- 
Gilles

---

From: Jean Abou Samra <[email-masked]>
Date: Wed, 12 May 2021 10:42:23 +0200

Le 12/05/2021 à 03:57, Gilles Thibault a écrit :
> Comme les trilles sont définies dans la propriété 'articulations, 
> aucune fonction ne peut avoir le moindre effet sur elles.
> comme écrit juste au-dessus, les fonctions octave et set-transp 
> marchent à nouveau sur les trilles.

Sapristi, c'est que c'est vrai !

Gilles, voudrais-tu proposer un patch ? Jette un œil à 
http://lilypond.org/doc/v2.23/Documentation/contributor/working-with-source-code 
pour savoir comment faire.

Merci,
Jean

---

From: Gilles Thibault <[email-masked]>
Date: Wed, 12 May 2021 23:18:05 +0200

> pour savoir comment faire.

Hum, j'ai (péniblement) réussi à cloner le répertoire Lilypond.
Faut-il que je crée un "fork" maintenant ? Ils disent dans l'aide que ce 
n'est pas utile ! Je ne risque pas de mettre le bazar ?

-- 
Gilles

---

From: Jean Abou Samra <[email-masked]>
Date: Wed, 12 May 2021 23:41:38 +0200

> Hum, j'ai (péniblement) réussi à cloner le répertoire Lilypond.

Parfait.

> Faut-il que je crée un "fork" maintenant ? Ils disent dans l'aide que 
> ce n'est pas utile ! Je ne risque pas de mettre le bazar ?

En effet, c'est comme cela qu'il faut procéder tant
que tu n'a pas le droit d'écriture sur le dépôt principal
(qui est accordé après certain nombre de contributions).
Un fork est justement une copie qui n'appartient qu'à toi,
donc tu ne risques pas de mettre le bazar dans quoi que
ce soit.

---

From: Gilles Thibault <[email-masked]>
Date: Thu, 13 May 2021 09:42:05 +0200

> donc tu ne risques pas de mettre le bazar dans quoi que

Rah, au moment où je commençais à comprendre git, je m'aperçois que 
music-map a changé d'implémentation dans la 2.23.
C'est maintenant :

%%%%%%%%
(define-public (music-selective-map descend? function music)
   "Apply @var{function} recursively to @var{music}, but refrain
from mapping subexpressions of music that does not satisfy
@var{descend?}."
   (if (descend? music)
       (let ((es (ly:music-property music 'elements))
             (e (ly:music-property music 'element)))
         (if (pair? es)
             (set! (ly:music-property music 'elements)
                   (map (lambda (y)
                          (music-selective-map descend? function y)) 
es)))
         (if (ly:music? e)
             (set! (ly:music-property music 'element)
                   (music-selective-map descend? function e)))))
   (recompute-music-length (function music)))

(define-public (music-map function music)
   "Apply @var{function} to @var{music} and all of the music it contains.

First it recurses over the children, then the function is applied to
@var{music}."
   (music-selective-map ly:music? function music))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Il n'y est toujours pas question d'articulations donc la nouvelle 
implémentation serait le code ci-dessous, mais je ne peux rien tester 
(je ne souhaite pas passer à la 2.23). En particulier cette version a 
très bien pu changé la structure des notes et des silences et mis par 
exemple les articulations dans leur propriétés 'elements qui pour le 
moment est vide '().

Dans 2.22
\displayMusic { c'2-> }
donne
(make-music
   'SequentialMusic
   'elements
   (list (make-music
           'NoteEvent
           'articulations
           (list (make-music
                   'ArticulationEvent
                   'midi-extra-velocity
                   20
                   'articulation-type
                   "accent"))
           'duration
           (ly:make-duration 1)
           'pitch
           (ly:make-pitch 0 0))))

C'est toujours le cas dans 2.23 ?

%% Proposition de patch %%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

(define-public (music-selective-map descend? function music)
   "Apply @var{function} recursively to @var{music}, but refrain
from mapping subexpressions of music that does not satisfy
@var{descend?}."
   (if (descend? music)
       (let ((es (ly:music-property music 'elements))
             (as (ly:music-property music 'articulations))
             (e (ly:music-property music 'element)))
         (if (pair? es)
             (set! (ly:music-property music 'elements)
                   (map (lambda (y)
                          (music-selective-map descend? function y)) 
es)))
         (if (pair? as)
             (set! (ly:music-property music 'elements)
                   (map (lambda (y)
                          (music-selective-map descend? function y)) 
as)))
         (if (ly:music? e)
             (set! (ly:music-property music 'element)
                   (music-selective-map descend? function e)))))
   (recompute-music-length (function music)))

(define-public (music-map function music)
   "Apply @var{function} to @var{music} and all of the music it contains.

First it recurses over the children, then the function is applied to
@var{music}."
   (music-selective-map ly:music? function music))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

-- 
Gilles

---

From: Jean Abou Samra <[email-masked]>
Date: Thu, 13 May 2021 09:55:26 +0200

Le 13/05/2021 à 09:42, Gilles Thibault a écrit :
>>> Faut-il que je crée un "fork" maintenant ? Ils disent dans l'aide 
>>> que ce n'est pas utile ! Je ne risque pas de mettre le bazar ?
>>
>>
>                          (music-selective-map descend? function y)) es)))
>         (if (ly:music? e)
> (je ne souhaite pas passer à la 2.23).

As-tu essayé de compiler LilyPond ? Jette un œil à 
http://lilypond.org/doc/v2.23/Documentation/contributor/compiling. Cela 
te donne une version locale qui n'interfère pas avec le reste du système 
(comme la version 2.22 que tu dois utiliser couramment).

(Bon, c'est vrai que c'est plus compliqué sous Windows. Plutôt que 
LilyDev, je recommanderais le Windows Subsystem for Linux, mais c'est 
ton choix.)

En particulier, il est de bon ton, lorsque l'on propose un patch, de 
vérifier soi-même qu'il n'y a pas de différences inattendues dans les 
tests de régression, et, si possible, d'en ajouter un pour que le bug ne 
soit pas réintroduit à l'avenir.

N'hésite pas si tu as des questions.

> En particulier cette version a très bien pu changé la structure des 
> notes et des silences et mis par exemple les articulations dans leur 
> propriétés 'elements qui pour le moment est vide '().
>
> Dans 2.22
> \displayMusic { c'2-> }
> donne
> (make-music
>   'SequentialMusic
>   'elements
>   (list (make-music
>           'NoteEvent
>           'articulations
>           (list (make-music
>                   'ArticulationEvent
>                   'midi-extra-velocity
>                   20
>                   'articulation-type
>                   "accent"))
>           'duration
>           (ly:make-duration 1)
>           'pitch
>           (ly:make-pitch 0 0))))
>

Oui. elements est pour ce qui donne à la musique sa structure 
temporelle, tandis que articulations contient des événements sans durée.

>                          (music-selective-map descend? function y)) es)))
>         (if (pair? as)
>                          (music-selective-map descend? function y)) as)))
>         (if (ly:music? e)

Ça semble logique.

Merci,
Jean

---

From: Gilles Thibault <[email-masked]>
Date: Thu, 13 May 2021 15:41:32 +0200

> As-tu essayé de compiler LilyPond ?

Je suis sous Linux :-) (Mageia 8)
Mais le nombre de programme tiers à installer (et sûrement configurer) 
est impressionnant.
Compiler Lilypond, c'est effectivement un souhait que j'ai depuis 
longtemps, mais qui demande sûrement du temps et de la patience.
Hum, le temps que j'arrive à un résultat probant, probablement la 
version Lilypond 2.24 sera sorti...
Bon, je verrai ce que je peux faire ...

-- 
Gilles

---

From: Gilles Thibault <[email-masked]>
Date: Thu, 13 May 2021 20:41:09 +0200

> voudrais-tu proposer un patch ?

Il semble que le problème est de plus grande ampleur :
La fonction music-pitches (toujours définie dans 
scm/music-functions.scm) est censée lister tous les "pitch" d'une 
musique :

%%%%%%%%
trilles = { \pitchedTrill c'2\startTrillSpan d' r2\stopTrillSpan }
#(display (music-pitches trilles))

=> (#<Pitch c' >)

Le d' est joyeusement ignoré car dans son implementation, music-pitches 
ne tient pas compte de la propriété 'articulations.

Il faudra peut-être essayer de demander quelques explications au 
développeur avant de se lancer dans des patch...

-- 
Gilles

---

From: Jean Abou Samra <[email-masked]>
Date: Sat, 15 May 2021 14:58:34 +0200

> Bon, je verrai ce que je peux faire ...

Je ne connais pas Mageia, mais sous Linux, les choses sont généralement 
assez simples. La base, c'est la séquence :

1.    ./autogen.sh

2    Lire le message d'erreur qui dit que des logiciels sont à installer.

3    sudo [le gestionnaire de paquets du système] install [paquet 1] 
[paquet 2] [paquet 3] ...

4    Reprendre jusqu'à ce que autogen.sh s'exécute entièrement.

5    make -j4 (en remplaçant 4 par le nombre de processeurs).

De plus, ce processus est devenu beaucoup plus facile de nos jours car 
il est possible de compiler avec Guile 2, qui est la version présente 
dans bien des distributions. ll suffit d'ajouter à son ~/.bash_aliases :

export GUILE_FLAVOR=guile-2.2
export GUILE_AUTO_COMPILE=1

Si tu décides de t'y lancer…

> Le d' est joyeusement ignoré car dans son implementation, 
> music-pitches ne tient pas compte de la propriété 'articulations.

Je ne suis pas sûr qu'elle soit censée le faire. C'est une fonction 
définie uniquement pour être utilisée par des extensions Scheme, donc on 
peut bien lui faire faire ce que l'on veut, à vrai dire.

> développeur avant de se lancer dans des patch...

Le développeur est en l'occurrence David Kastrup. Tu peux lui demander 
(en le rajoutant en CC dans le fil que tu as créé sur la liste de 
développement). Cependant, le patch me paraît très clairement approprié.

Cordialement,
Jean

---

From: Gilles Thibault <[email-masked]>
Date: Sat, 15 May 2021 20:29:58 +0200

> généralement assez simples. La base, c'est la séquence :
> 
> 1.    ./autogen.sh
> 

Ok, merci beaucoup pour toutes ces infos ... et ta patience.
Je vais m'y lancer mais j'ai demandé des conseils sur les forum Mageia. 
Je suis peut-être un peu trop timoré.

> développement). Cependant, le patch me paraît très clairement
David Kastrup doit être sur la liste de développement probablement, non 
?
Ce qui me parait bizarre, c'est que ce "bug" soit présent depuis tant 
d'année sans que  personne s'en aperçoive ! (j'ai regardé sur github 
jusqu'aux toutes 1ères versions de Lilypond). Dans la version 2.23, 
music-map change d'implémentation mais ne tient toujours pas compte de 
la propriété 'articulations.

> [music-pitches] est une fonction
> définie uniquement pour être utilisée par des extensions Scheme
Ben elle est en define-public quand même !
(define-public (music-pitches music)
   "Return a list of all pitches from @var{music}."
Si on ne peut pas faire confiance aux fonctions de bases fournies par 
les développeurs pour les utilisateurs, où va t-on messieurs-dames ?

-- 
Gilles

---

From: Jean Abou Samra <[email-masked]>
Date: Sat, 15 May 2021 21:21:29 +0200

Le 15/05/2021 à 20:29, Gilles Thibault a écrit :
> Je vais m'y lancer mais j'ai demandé des conseils sur les forum 
> Mageia. Je suis peut-être un peu trop timoré.
>
> David Kastrup doit être sur la liste de développement probablement, non ?

Oui. Néanmoins, si tu mentionnes music-pitches dans un prochain message, 
il peut être approprié de le mettre en copie (tous les développeurs ne 
lisent pas tous les messages sur le développement, car il arrivent à une 
cadence importante).

> la propriété 'articulations.

C'est vrai que c'est un peu surprenant. Cependant, les trilles avec 
hauteur ne sont pas si fréquents que cela.

> Ben elle est en define-public quand même !

C'est exactement ce que je voulais dire : elle n'est définie que pour 
être publique car rien ne l'utilise dans le code de LilyPond.

> les développeurs pour les utilisateurs, où va t-on messieurs-dames ?

Mais quel est l'usage de cette fonction ? Si c'est de donner les 
hauteurs de toutes les notes qui sont présentes dans la musique, je 
dirais qu'il n'est pas mauvais d'en exclure la hauteur du trille car 
elle ne fait pas vraiment partie du flux musical (elle n'a pas de hampe, 
de liens, etc.).

Cordialement,
Jean

---

From: Gilles Thibault <[email-masked]>
Date: Sun, 16 May 2021 00:07:55 +0200

> Oui. Néanmoins, si tu mentionnes music-pitches dans un prochain
> message, il peut être approprié de le mettre en copie (tous les
> développeurs ne lisent pas tous les messages sur le développement, car
> il arrivent à une cadence importante).
Ok, merci de l'info.

>> d'année [..]
Ça concerne hélas n'importe quel évènement d'articulations...

> dirais qu'il n'est pas mauvais d'en exclure la hauteur du trille
Ça c'est effectivement pas faux, et ça peut être totalement justifiable 
pour laisser music-pitches tel quel. Faut juste le savoir pour les 
trilles de hauteur.
Bon pour music-pitches je vais laisser de côté pour le moment.
J'ai à compiler...

-- 
Gilles

---

From: Jean Abou Samra <[email-masked]>
Date: Wed, 19 May 2021 21:54:35 +0200

Le 16/05/2021 à 00:07, Gilles Thibault a écrit :
> J'ai à compiler..

Du nouveau ? Besoin d'aide ?

(Tu sais, je peux toujours faire le patch moi-même ; simplement si tu le 
fais, tu seras déjà prêt pour le suivant ;-)

Cordialement,
Jean

---

From: Gilles Thibault <[email-masked]>
Date: Sun, 23 May 2021 10:58:51 +0200

> (Tu sais, je peux toujours faire le patch moi-même ; simplement si tu
> le fais, tu seras déjà prêt pour le suivant ;-)
Oui, oui j'ai bien compris le côté pédagogique et je te remercie de ton 
"tutorat".

La semaine dernière j'ai commencé par demander à la mailing-list de ma 
distrubution Linux Mageia comment opérer :

    https://www.mageialinux-online.org/forum/topic.php?id=28947#m287000

(je pense que ça doit être visible même si on est pas inscrit)

Pour le moment, j'ai surtout un problème avec les polices. Je ne sais 
pas trop dans quels
packages les trouver. Je compte demander ça encore à la liste Mageia, 
c'est le plus logique. Hum, je manque cruellement de temps en ce moment. 
Je suis sur pleins de choses à la fois (hélas pas que musicales), et 
tout est chronophage...
Voici néanmoins mes messages d'erreurs (ci-joint également les messages 
en entier) :

Package pangoft2 was not found in the pkg-config search path.
Perhaps you should add the directory containing `pangoft2.pc'
to the PKG_CONFIG_PATH environment variable
Package 'pangoft2', required by 'virtual:world', not found
Package pangoft2 was not found in the pkg-config search path.
Perhaps you should add the directory containing `pangoft2.pc'
to the PKG_CONFIG_PATH environment variable
Package 'pangoft2', required by 'virtual:world', not found
Package fontconfig was not found in the pkg-config search path.
Perhaps you should add the directory containing `fontconfig.pc'
to the PKG_CONFIG_PATH environment variable
Package 'fontconfig', required by 'virtual:world', not found
Package freetype2 was not found in the pkg-config search path.
Perhaps you should add the directory containing `freetype2.pc'
to the PKG_CONFIG_PATH environment variable
Package 'freetype2', required by 'virtual:world', not found
/home/gilles/GIT-LILY/lilypond/configure: line 10084: =$ no: command not 
found

-- 
Gilles

---

From: Jean Abou Samra <[email-masked]>
Date: Sun, 23 May 2021 17:14:50 +0200

Le 23/05/2021 à 10:58, Gilles Thibault a écrit :
> Oui, oui j'ai bien compris le côté pédagogique et je te remercie de 
> ton "tutorat".
>
> c'est le plus logique. Hum, je manque cruellement de temps en ce 
> moment. Je suis sur pleins de choses à la fois (hélas pas que 
> musicales), et tout est chronophage...
> Voici néanmoins mes messages d'erreurs (ci-joint également les 
> messages en entier) :

Déjà, on devrait s'approcher du but si tu installes les paquets suivants 
(avec « urpmi lenomdupaquet ») :

libpango1.0-devel
tidy
dblatex
flex
libguile1.8-devel
libfontconfig-devel
libfreetype2-devel
texi2html
texlive-texmf

Quelle est la sortie de ./configure avec cela ?

Cordialement,
Jean

---

From: Gilles Thibault <[email-masked]>
Date: Mon, 24 May 2021 01:46:49 +0200

> Quelle est la sortie de ./configure avec cela ?

La sortie est ci-dessous
Sur mon système : les packages lib* s'appelle lib64* (bon, pas de pbs)
flex était déjà installé
flex --version
=> flex 2.6.4
texlive-texmf était installé, j'ai rajouté un package appelé 
textlive-fontsextra
J'ai pas trouvé de package lh CTAN
Je n'ai pas la police : TeX Gyre fonts OTF.
Mais c'est peut-être celle là :
fc-list | grep Gyre
/usr/share/fonts/TTF/dejavu/DejaVuMathTeXGyre.ttf: DejaVu Math TeX 
Gyre:style=Regular

./configure
=>
[..]
ERROR: Please install required programs:  TeX Gyre fonts OTF (make sure 
the fc-list utility can see them, e.g. 'sudo apt-get install 
fonts-texgyre', or use --with-texgyre-dir) FlexLexer.h (flex package) 
FlexLexer.h with yypop_buffer_state (flex >= 2.5.29) lh CTAN package 
(texlive-lang-cyrillic or texlive-texmf-fonts)

-- 
Gilles

---

From: Jean Abou Samra <[email-masked]>
Date: Mon, 24 May 2021 10:42:29 +0200

> J'ai pas trouvé de package lh CTAN

Peut-être dans texlive-fonts-asian ou encore texlive-fontsextra ?

> /usr/share/fonts/TTF/dejavu/DejaVuMathTeXGyre.ttf: DejaVu Math TeX 

Essaie d'abord d'installer les paquets texlive ci-dessus, les polices de 
la famille TeX Gyre s'y trouvent peut-être quelque part. Si cela ne 
fonctionne pas, télécharge les trois polices listées tout à la fin de

http://lilypond.org/doc/v2.22/Documentation/contributor/requirements-for-compiling-lilypond

et place les dans ~/.local/share/fonts (je crois que ce dossier est 
recommandé de nos jours plutôt que ~/.fonts).

> ./configure
> =>
> [..]
> ERROR: Please install required programs:  TeX Gyre fonts OTF (make 
> sure the fc-list utility can see them, e.g. 'sudo apt-get install 
> fonts-texgyre', or use --with-texgyre-dir)

> FlexLexer.h (flex package) FlexLexer.h with yypop_buffer_state (flex 
> >= 2.5.29)

Étrange. Que renvoie « ls /usr/include » ?

On s'approche !

Cordialement,
Jean

---

From: Gilles Thibault <[email-masked]>
Date: Thu, 27 May 2021 12:08:40 +0200

>> Je n'ai pas les polices : TeX Gyre fonts OTF.
Bon après des heures de recherches dans les entrailles de mon système, 
je les ai téléchargées là :
   
https://www.fontsquirrel.com/fonts/list/find_fonts?q%5Bterm%5D=TeX+Gyre&q%5Bsearch_check%5D=Y
et mis comme c'est recommandé par Lilypond dans le répertoire :
   ~/.fonts

Mon message d'erreur se réduit maintenant à :

"ERROR: Please install required programs:  FlexLexer.h (flex package) 
FlexLexer.h with yypop_buffer_state (flex >= 2.5.29) lh CTAN package 
(texlive-lang-cyrillic or texlive-texmf-fonts)"

Un fichier FlexLexer.h se trouve bien dans mon répertoire /usr/include 
donc apparemment c'est pas ça le problème. Je ne comprend pas ce message 
d'erreur :
FlexLexer.h (flex package) FlexLexer.h with yypop_buffer_state (flex >= 
2.5.29)

lh CTAN package (texlive-lang-cyrillic or texlive-texmf-fonts).
Je n'ai pas de lh CTAN package, pas plus que de texlive-texmf-fonts et 
de texlive-lang-cyrillic. J'ai preque tous les packages texlive installé 
(y compris un package texlive-texmf). Il ne me reste en non installé : 
texlive-fontssource texlive-fontsasian

-- 
Gilles

---

From: Jean Abou Samra <[email-masked]>
Date: Thu, 27 May 2021 22:29:08 +0200

> et mis comme c'est recommandé par Lilypond dans le répertoire :

Parfait, bravo !

> donc apparemment c'est pas ça le problème. Je ne comprend pas ce 
> message d'erreur :

Très étrange. Peux-tu envoyer le fichier config.log ? Et que renvoie la 
commande suivante ?

`g++ -print-prog-name=cc1plus` -v

> de texlive-lang-cyrillic. J'ai preque tous les packages texlive 
> installé (y compris un package texlive-texmf). Il ne me reste en non 
> installé : texlive-fontssource texlive-fontsasian

Pour l'instant, ignorons cette partie. Le paquet lh est seulement 
nécessaire pour compiler la documentation PDF. Change donc l'appel à 
autogen en :

./autogen.sh --disable-documentation

L'erreur devrait se changer en avertissement.

Cordialement,
Jean

---

From: Gilles Thibault <[email-masked]>
Date: Fri, 28 May 2021 01:24:34 +0200

> Très étrange. Peux-tu envoyer le fichier config.log ?
Voir fichier joint

> `g++ -print-prog-name=cc1plus` -v
J'ai d'abord installé le paquet gcc-c++

`g++ -print-prog-name=cc1plus` -v
le répertoire « /usr/lib/gcc/x86_64-mageia-linux-gnu/10/include-fixed » 
est ignoré car inexistant
le répertoire 
« /usr/lib/gcc/x86_64-mageia-linux-gnu/10/../../../../x86_64-mageia-linux-gnu/include » 
est ignoré car inexistant
la recherche pour #include "..." débute ici :
la recherche pour #include <...> débute ici:
  /usr/lib/gcc/x86_64-mageia-linux-gnu/10/../../../../include/c++/10
  
/usr/lib/gcc/x86_64-mageia-linux-gnu/10/../../../../include/c++/10/x86_64-mageia-linux-gnu
  
/usr/lib/gcc/x86_64-mageia-linux-gnu/10/../../../../include/c++/10/backward
  /usr/lib/gcc/x86_64-mageia-linux-gnu/10/include
  /usr/local/include
  /usr/include
Fin de la liste de recherche.

> L'erreur devrait se changer en avertissement.
excellent. Bon à savoir.

Ah du coup, je n'ai plus aucune erreur. Que des warnings !

************
WARNING: Please consider installing optional programs or files:  URW++ 
OTF fonts (download OTF files from 
'http://git.ghostscript.com/?p=urw-core35-fonts.git;a=tree;hb=91edd6ece36e84a1c6d63a1cf63a1a6d84bd443a' 
and put them under '~/.local/share/fonts' etc., or use 
--with-urwotf-dir) extractpdfmark (Using GhostScript >= 9.20 together 
with extractpdfmark can significantly reduce the size of the final PDF 
files.) lh CTAN package (texlive-lang-cyrillic or texlive-texmf-fonts)

See INSTALL.txt for more information on how to build LilyPond

Type:
     make all       to build LilyPond
     make install   to install LilyPond
     make help      to see all possible targets

Edit local.make for local Makefile overrides.

See INSTALL.txt and README.md for more information
************

Super.
Merci Jean.
Demain au réveil, je lance la compilation !

-- 
Gilles

---

From: Jacques Menu <[email-masked]>
Date: Fri, 28 May 2021 08:27:48 +0200

Bonjour tutti,

J’essaie de construire les versions récentes de Lily, sans la doc, sur Mac OS avec le processeur M1.

Guile2 est opérationnel:

jacquesmenu@macmini: ~/lilypond-2.23.2 > guile
GNU Guile 2.2.7
Copyright (C) 1995-2019 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guile-user)> (+ 3 5)
$1 = 8

Mais avec

./autogen.sh --disable-documentation --with-texgyre-dir=/Users/jacquesmenu/TeXGyre/

il manque des fonctions Scheme au link:

… … … 
Undefined symbols for architecture arm64:
  "_scm_cells_allocated", referenced from:
      check_pitch_against_rules(Pitch const&, Context*, scm_unused_struct*, int, scm_unused_struct*) in accidental-engraver.o
      Accidental_engraver::stop_translation_timestep() in accidental-engraver.o
      Accidental_engraver::boot() in accidental-engraver.o
      Accidental_engraver::fetch_precomputable_methods(scm_unused_struct**) in accidental-engraver.o
      Translator_creator::Translator_creator(Translator* (*)(Context*)) in accidental-engraver.o
      Accidental_interface::horizontal_skylines(scm_unused_struct*) in accidental.o
      Simple_smob<Skyline_pair>::smobbed_copy() const in accidental.o
      ...
… … … 

Rien trouvé sur Internet, mais je ne dois pas être très loin du but…

Merci pour l’aide!

JM

---

From: Gilles Thibault <[email-masked]>
Date: Fri, 28 May 2021 08:47:55 +0200

> Demain au réveil, je lance la compilation !

Bon, c'est en train de compiler.

Si tous se passe bien, après il faudrait que je fasse
   make install
Pour le moment je ne voudrais pas que que cette version soit installée 
dans mon système (j'ai déjà 2 versions). Je m'abstiens de lancer la 
commande et je pourrai quand même tester les patchs, j'ai bien compris ?

-- 
Gilles

---

From: Gilles Thibault <[email-masked]>
Date: Fri, 28 May 2021 08:55:09 +0200

Le 2021-05-28 08:47, Gilles Thibault a écrit :
> Si tous se passe bien[..]
C'est le cas. (environ 1/4 d'heure sur ma machine vieillissante)
J'attends les instructions pour ne pas faire de bêtises.

-- 
Gilles

---

From: Denis Bitouzé <[email-masked]>
Date: Fri, 28 May 2021 10:00:26 +0200

Le 27/05/21 à 12h08, Gilles Thibault a écrit :

> lh CTAN package (texlive-lang-cyrillic or texlive-texmf-fonts).  Je
> n'ai pas de lh CTAN package, pas plus que de texlive-texmf-fonts et de
> texlive-lang-cyrillic. J'ai preque tous les packages texlive installé

Je suis sous Mageia et je dispose de ce package. Mais il faut dire que
j'ai installé la TeX Live à partir de son image ISO. Si ça t'intéresse,
une procédure pour ce faire est décrite par exemple ici :

  ┌────
  │ https://gte.univ-littoral.fr/Members/denis-bitouze/pub/latex/diapositives-cours-d/installation-latex.pdf/@@download/file/installation-latex.pdf
  └────
-- 
Denis

---

From: Gilles Thibault <[email-masked]>
Date: Fri, 28 May 2021 15:39:16 +0200

Le 2021-05-28 10:00, Denis Bitouzé a écrit :
>   │
> https://gte.univ-littoral.fr/Members/denis-bitouze/pub/latex/diapositives-cours-d/installation-latex.pdf/@@download/file/installation-latex.pdf
>   └────

Ah très intéressant. Merci du lien. Bon il faudra faire ça à partir 
d'une installation propre pour ne pas avoir de doublons partout.
Pour le moment, je ne compte pas compiler la doc Lilypond, et il semble 
que ce package ne soit pas indispensable pour la compile des binaires.
J'ai sauvegardé le pdf du lien.

-- 
Gilles

---

From: Jean Abou Samra <[email-masked]>
Date: Fri, 28 May 2021 16:16:44 +0200

Le 28/05/2021 à 08:55, Gilles Thibault a écrit :
> J'attends les instructions pour ne pas faire de bêtises

Félicitations pour la compilation réussie !

Tu devrais trouver un exécutable nommé lilypond dans le dossier out/bin. 
Tu peux donc compiler un fichier en ligne de commande avec

out/bin/lilypond /chemin/vers/le/fichier.ly

Pour que cela soit plus pratique, je te recommande personnellement 
d'ajouter cette version à la sélection dans Frescobaldi. Il faut aller 
dans Édition, Préférences, Préférences LilyPond, et enregistrer une 
nouvelle version avec le chemin 
/chemin/vers/le/dossier/lilypond/out/bin/lilypond. Elle n'interfèrera 
aucunement avec le reste du système. Bien sûr, lorsque tu recompiles, 
l'exécutable change et tu peux continuer à tester dans Frescobaldi sans 
refaire cette manipulation.

La prochaine étape consiste à vérifier les tests de régression. Pour 
cela, il faut commencer par obtenir une version de référence à laquelle 
comparer, avec :

make -j4 CPU_COUNT=4 test-baseline

(pour un ordinateur à 4 processeurs par exemple).

Puis, édite le fichier que tu souhaites voir modifié, en l'occurrence 
scm/music-functions.scm. À ce stade, il est sage de tester que le patch 
fonctionne sur un exemple simple (dans Frescobaldi). Si c'est bien le 
cas, il est fortement conseillé de faire de ton exemple un test de 
régression, afin d'être certain que de futurs développements ne 
réintroduisent pas le même problème. Il faut donc enregistrer le test 
dans le dossier input/regression, en suivant ce modèle :

\version "2.23.3"

\header {
   texidoc = "Brève explication de ce que teste ce fichier.  Les 
fragments de
code s'écrivent avec @code{music-map}.  Il est d'usage de mettre deux 
espaces
au lieu d'une après un point."
}

[le test…]

À présent, vérifie que les tests ne changent pas :

make -j4 CPU_COUNT=4 check

À l'issue de ce processus, ouvre le fichier out/test-results/index.html. 
Tu devrais y voir le test que tu as ajouté, et pas d'autres différences.

Pour finir, suis la procédure décrite ici pour proposer un patch sur le 
dépôt central hébergé par GitLab :

À nouveau, n'hésite pas si tu as la moindre question. Merci d'avance 
pour ta contribution.

Cordialement,
Jean