Subject: Compiler Lily sur Mac OS M1

From: Jean Abou Samra <[email-masked]>
Date: Fri, 28 May 2021 16:34:33 +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!

Bonjour Jacques,

(Je réponds dans un nouveau fil pour ne pas perturber celui du patch de 
Gilles.)

Il me semblait que scm_cells_allocated était une fonction de Guile 1. 
Comment as-tu installé Guile ? Qu'est-il dit sur Guile dans config.log ? 
Pourrais-tu aussi essayer avec la branche master dans Git plutôt que 
l'archive de 2.23.2 ?

Si rien ne fonctionne, tu auras plus de chances de trouver de l'aide sur 
la liste de développement.

Amicalement,
Jean

---

From: Jacques Menu <[email-masked]>
Date: Fri, 28 May 2021 16:37:02 +0200

Salut Jean,

Merci, je pensais bien que c’est toi qui répondrait!
Je suis tes conseils et te redis.

A+!

PS> Tu vois comme c’est agréable d’avoir des gens réactifs. Dom me semble l’être de moins en moins...

> Le 28 mai 2021 à 16:34, Jean Abou Samra <[email-masked]> a écrit :
> 
>> 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:
>> 
>> ./autogen.sh --disable-documentation --with-texgyre-dir=/Users/jacquesmenu/TeXGyre/
>> 
>>       check_pitch_against_rules(Pitch const&, Context*, scm_unused_struct*, int, scm_unused_struct*) 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
> (Je réponds dans un nouveau fil pour ne pas perturber celui du patch de Gilles.)
> 
> Il me semblait que scm_cells_allocated était une fonction de Guile 1. Comment as-tu installé Guile ? Qu'est-il dit sur Guile dans config.log ? Pourrais-tu aussi essayer avec la branche master dans Git plutôt que l'archive de 2.23.2 ?
> 
> Si rien ne fonctionne, tu auras plus de chances de trouver de l'aide sur la liste de développement.
> 
> Amicalement,
> Jean

---

From: Christophe Pochon <[email-masked]>
Date: Sat, 29 May 2021 00:00:19 +0200

Bonsoir,

Je ne suis pas encore prêt à me lancer dans une compilation. Mais je serais
ravi de pouvoir profiter de chaque nouvelle version de Lilypond non
seulement pour M1 mais aussi pour Intel ! L'idéal serait donc des versions
en Universal Binary pour MacOs ! Ça m'agace de rester coincé en 2.20 !

Bonne nuit,

Christophe Pochon

---

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

Le 29/05/2021 à 00:00, Christophe Pochon a écrit :
> Bonsoir,
>
> Je ne suis pas encore prêt à me lancer dans une compilation. Mais je 
> serais ravi de pouvoir profiter de chaque nouvelle version de Lilypond 
> non seulement pour M1 mais aussi pour Intel ! L'idéal serait donc des 
> versions en Universal Binary pour MacOs ! Ça m'agace de rester coincé 
> en 2.20 !
>
> Bonne nuit,
>
> Christophe Pochon

Des progrès ont été réalisés tout récemment par Jonas Hahnfeld, un 
développeur qui se concentre plus ou moins sur la distribution et 
l'infrastructure.

https://lists.gnu.org/archive/html/lilypond-devel/2021-05/msg00027.html

Ce n'est pas encore abouti, mais vous pouvez tout de même trouver des 
binaires 2.22 pour Mac OS 64 bits ici :

https://github.com/hahnjo/lilypond-binaries/releases/tag/2021-05-13

Gardez en tête qu'elles sont expérimentales, et comme elles proviennent 
de la version 2.22.1, le démarrage de chaque compilation risque d'être 
long. On revient sur des temps raisonnables avec 2.23 et la compilation 
du code Scheme en code intermédiaire (bytecode), mais nous avons encore 
à trouver une solution pour distribuer correctement ce code intermédiaire.

Cordialement,
Jean

---

From: Christophe Pochon <[email-masked]>
Date: Sat, 29 May 2021 21:26:06 +0200

Merci Jean !

Je ne connaissais pas cette source. Ceci dit, le résultat n'est pas tout à
fait comme on a l'habitude sur Mac sous forme d'app qui englobe le tout. Ça
ne me dérange pas plus que ça, puisque j'ai beaucoup travaillé sous Linux.
Je vais tester si Frescobaldi s'en accommode, et je pense que ça devrait
jouer.

Je pense tout de même qu'à l'avenir, il faudra bien qu'il y ait une version
officielle pour M1 (et Intel-64bits)

Bonne soirée,

Christophe Pochon

---

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

Bonsoir Christophe,

Le 29/05/2021 à 21:26, Christophe Pochon a écrit :
> Merci Jean !
>
> Je ne connaissais pas cette source. Ceci dit, le résultat n'est pas 
> tout à fait comme on a l'habitude sur Mac sous forme d'app qui englobe 
> le tout.

Quel est le sens de ta remarque exactement : le fait qu'il n'y ait plus 
d'éditeur de texte, ou bien simplement le fait que l'application ne 
s'affiche pas avec une icône ?

Si c'est l'éditeur LilyPad, je pense de toute façon (à titre personnel 
et sans parler pour l'équipe de développement) qu'il est grand temps de 
s'en débarrasser. Frescobaldi est infiniment plus agréable. Il est vrai 
que les utilisateurs auront à faire un pas de plus, mais ils auront 
aussi, à mon avis, une première impression meilleure. J'ai moi-même mis 
un an avant de découvrir Frescobaldi, qui fut une délivrance.

S'il s'agit de la forme de l'installeur qui n'a pas une application à 
glisser dans le Finder, on peut peut-être s'arranger pour le rendre plus 
usuel. (À moins qu'il n'en ait une ? Je ne l'ai pas testé, n'ayant pas 
touché à un ordinateur sous Mac OS depuis des années.)

> Ça ne me dérange pas plus que ça, puisque j'ai beaucoup travaillé sous 
> Linux. Je vais tester si Frescobaldi s'en accommode, et je pense que 
> ça devrait jouer.
>
> Je pense tout de même qu'à l'avenir, il faudra bien qu'il y ait une 
> version officielle pour M1 (et Intel-64bits)

« Il faudra bien »… Là est l'ennui. Mettre en cohérence les compétences 
disponibles avec le matériel disponible et le temps disponible relève du 
défi. Je ne t'apprends pas que le développement et la maintenance des 
150 000 lignes de code de LilyPond écrites dans cinq langages différents 
reposent entièrement sur une équipe de quelques bénévoles, dont c'est de 
peu que l'on ne les compte pas sur les doigts d'une main. De plus, 
LilyPond, qui fait partie du projet GNU, a naturellement une certaine 
tendance à attirer des contributeurs portés sur le logiciel libre, d'où 
un manque logique de volontaires qui aient accès à un ordinateur sous 
Mac OS. Or Apple a le bon goût d'interdire que ses outils de création 
d'applications 64-bits ne soient utilisés sur des systèmes 
d'exploitation autres que Mac OS, restriction qui empêche que la 
personne qui s'est occupée des binaires jusqu'à aujourd'hui ne continue 
à le faire pour tous les systèmes et nous force à réinventer 
l'infrastructure de compilation et à mettre en place une nouvelle 
équipe. Ne parlons pas de Windows.

Ceci pour dire qu'une personne possédant un Mac OS de processeur M1 
serait sûrement bienvenue comme volontaire pour assurer la compilation 
des binaires à chaque nouvelle version.

Bien cordialement,
Jean

---

From: Olivier Miakinen <[email-masked]>
Date: Sat, 29 May 2021 23:08:46 +0200

Le 29/05/2021 22:48, Jean Abou Samra répondait à l'heureux possesseur
> des binaires à chaque nouvelle version.

Ça c'est un appel du pied ou je ne m'y connais pas...

---

From: Christophe Pochon <[email-masked]>
Date: Sat, 29 May 2021 23:27:35 +0200

Bonsoir Jean,

Ah, mais nous sommes bien d'accord. Je suis obligé professionnellement de
travailler avec des Mac et je souffre de la politique de Apple
quotidiennement. Je ne vais pas faire le détail de combien mon travail a
changé ces derniers mois suite aux décisions de Apple, mais en bref : plus
possible de déployer des machines avec Deploy Studio, quasiment plus de
possibilité de gérer un parc avec un server Mac (DHCP, DNS, etc...) .
D'autres outils sont proposés, qui sont intéressants, mais pourquoi
supprimer les anciens ? Bref..... Les décisions d'Apple me font des soucis
quotidiens.
En outre, je ne remettais en aucune façon le travail des développeurs de
Lilypond en question. Je constatais juste qu'il "faudra bien" trouver une
solution pour les gens qui ont des Mac, parce que dans peu de temps, les
versions officielles ne fonctionneront plus pour aucun Mac actuel. Alors
que, sauf erreur de ma part, on a maintenu des versions pour PowerPC très
longtemps.
De par mon travail j'ai toujours accès à des macs de dernière génération,
donc, je veux bien passer un peu de temps sur ces machines pour compiler
pour MacOs. Mais il faudrait qu'on me guide pour le faire.

A+

Christophe
Christophe Pochon

---

From: Christophe Pochon <[email-masked]>
Date: Sat, 29 May 2021 23:29:26 +0200

;-)
Christophe Pochon

Le sam. 29 mai 2021 à 23:08, Olivier Miakinen <[email-masked]> a

---

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

> Ça c'est un appel du pied ou je ne m'y connais pas...

Plus ou moins, car le nouveau système expérimental de
création de binaires écrit par Jonas n'est de toute façon
qu'un prototype à ce stade. Cela dit, si des volontaires
se présentent dès aujourd'hui, ils seront accueillis avec
joie ! … Et seront aussitôt redirigés vers les tests de
la compilation sur leur machine. ;-)

[Réponse à Christophe dont le message arrive entre-temps…]

> Bonsoir Jean,
>
> Ah, mais nous sommes bien d'accord. Je suis obligé professionnellement 
> de travailler avec des Mac et je souffre de la politique de Apple 
> quotidiennement. Je ne vais pas faire le détail de combien mon travail 
> a changé ces derniers mois suite aux décisions de Apple, mais en bref 
> : plus possible de déployer des machines avec Deploy Studio, quasiment 
> plus de possibilité de gérer un parc avec un server Mac (DHCP, DNS, 
> etc...) . D'autres outils sont proposés, qui sont intéressants, mais 
> pourquoi supprimer les anciens ? Bref..... Les décisions d'Apple me 
> font des soucis quotidiens.
> En outre, je ne remettais en aucune façon le travail des développeurs 
> de Lilypond en question.

Oh, je ne te voyais pas le faire, pardonne-moi si j'ai pu
paraître sec : simplement, je voulais expliquer pourquoi
le problème est compliqué de notre point de vue.

> Je constatais juste qu'il "faudra bien" trouver une solution pour les 
> gens qui ont des Mac, parce que dans peu de temps, les versions 
> officielles ne fonctionneront plus pour aucun Mac actuel. Alors que, 
> sauf erreur de ma part, on a maintenu des versions pour PowerPC très 
> longtemps.

En effet, grâce aux outils fournis par Apple avant la mise en
place des fameuses restrictions (intervenue très tôt : nous
utilisions une version parmi les toutes premières de XCode
et consorts).

> De par mon travail j'ai toujours accès à des macs de dernière 
> génération, donc, je veux bien passer un peu de temps sur ces machines 
> pour compiler pour MacOs. Mais il faudrait qu'on me guide pour le faire.

Pour l'instant, je crois que nous avons surtout besoin
de mettre en place les outils de distribution, après quoi
il sera temps de former une équipe. Cependant, si tu es
intéressé en général par le développement de LilyPond, tu
peux essayer les fonctionnalités récentes, et accessoirement
aider à révéler le dernier bug de compilation sous Mac OS
en date tout comme vient de le faire Jacques, en compilant LilyPond
à partir de son dépôt Git. Tout est dans le guide :

http://lilypond.org/doc/v2.23/Documentation/contributor/compiling

Cordialement,
Jean

---

From: Jacques Menu <[email-masked]>
Date: Sat, 29 May 2021 23:45:55 +0200

Bonsoir tutti,

Je suis prêt à répondre à l’appel du pied… mais suis encore en train d’essayer de compiler Lily sur Mac OS, et je bute sur un problème de dépendance à Guile.

Vais donc essayer de compiler ce dernier moi-même, pour pouvoir boucler la boucle.

Vous tiens au courant.

JM

> Le 29 mai 2021 à 23:29, Christophe Pochon <[email-masked]> a écrit :
> 
> ;-) 
> Christophe Pochon
> 
> 
> 
> Le sam. 29 mai 2021 à 23:08, Olivier Miakinen <[email-masked] <mailto:[email-masked]>> a écrit :