Installer Lazarus sous macOS

Sierra / High Sierra

Jérôme Delauney

Apprenez comment installer Free Pascal et Lazarus sous macOS Sierra ou High Sierra.

Commentez

- Titre : Installer Lazarus sous macOS

- Auteur : Jérôme Delauney

- Parution : 15 juin 2018

- Public visé :

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2018 Jérôme Delauney. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Introduction

- II. Étape 1 : Installation de XCode

- III. Étape 2 : Installation de HomeBrew

- IV. Étape 3 : Installation de GDB

- V. Étape 4 : Création d’un certificat de sécurité pour GDB

- V-A. Création du certificat

- V-B. Étape à suivre en cas d’erreur

- VI. Finalisation de la création du certificat

- VII. Étape 5 : Installation de Free Pascal et de Lazarus

- VIII. Étape 6 : Configuration de Lazarus et test du bon fonctionnement de DBG

- IX. En complément

- X. Liens Annexes

- XI. Conclusion

I - Introduction

L’installation du duo Free Pascal et Lazarus sous Windows est la plus simple ; sous diverses distributions Linux, il y a des soucis et il faut ruser. L’installation avec FPCUpDeluxe règle bon nombre de problèmes, mais sous un environnement Mac, le problème vient de l’installation du débogueur DBG. Je vous propose donc pas à pas de voir comment installer FPC et Lazarus sous les versions de macOS Sierra et High Sierra (pour les versions Maverick et Leopard, la procédure devrait être identique à quelques détails près).

Je pars du principe que vous avez les connaissances minimales sous macOS pour ouvrir et vous servir du Terminal et que vous savez où se trouvent les différentes applications utilisées au cours de cet article.

L’installation sous macOS Maverick et Leopard n’a pas été testée dans cet article. Pour plus d’informations, reportez-vous à la section Liens Annexes.

II - Étape 1 : Installation de XCode

Vous aurez besoin des outils de développement d’Apple XCode. Ces outils peuvent être installés à partir de l’Apple Store, vous pouvez télécharger la version la plus récente à partir de l'ADC, qui nécessite une inscription gratuite.

Lien : https://developer.apple.com/download/more/ (pour y avoir accès, vous aurez besoin de vos identifiants iCloud).

Une fois que vous avez installé Xcode, ouvrez un terminal et saisissez la commande suivante :

xcode-select --install

Cette étape a pour but d’installer les outils en ligne de commande de Xcode.

Attention de ne pas confondre avec les outils de ligne de commande internes de XCode !

Vous avez également la possibilité d’installer ces outils de ligne de commande en téléchargeant l’archive adéquate depuis l’ADC.

III - Étape 2 : Installation de HomeBrew

Apple ayant remplacé GDB par LLDB, pour utiliser GDB, il va falloir l'ajouter via les dépôts de HomeBrew. Cette manipulation va vous permettre d’installer le débogueur GDB à l’étape suivante.

Qu’est-ce que HomeBrew ?

HomeBrew est un complément à macOS, c’est un gestionnaire de paquet non Apple, c’est-à-dire qu’il va vous permettre de compiler et de gérer des applications supplémentaires pour votre système. Celui-ci est écrit en Ruby.

Pour plus d’informations, veuillez consulter la page officielle.

Entrez la commande suivante et suivez les instructions de l’installation de HomeBrew :

sudo /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Pour les systèmes Linux, un portage de ce gestionnaire existe sous le nom de LinuxBrew.

Pour désinstaller HomeBrew, entrez la commande suivante :

sudo ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)";

IV - Étape 3 : Installation de GDB

Gardez la fenêtre de terminal ouverte.

Si votre environnement est macOS Sierra, exécutez la commande suivante pour installer GDB version 8.1 :

brew install https://raw.github.com/Homebrew/homebrew-dupes/master/gdb.rb

Si votre système est macOS High Sierra, la version 8.1 est malheureusement incompatible et vous devez installer une version plus ancienne. Exécutez la commande suivante pour installer GDB en version 8.0.1 :

brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/9ec9fb27a33698fc7636afce5c1c16787e9ce3f3/Formula/gdb.rb

Afin d’éviter une mise à jour de GDB et de courir le risque de voir votre configuration ne plus fonctionner, entrez la ligne de commande suivante :

brew pin gdb

Saisissez également la commande suivante afin que GDB démarre automatiquement avec les bons paramètres :

echo "set startup-with-shell off" >> ~/.gdbinit

Si vous désirez désinstaller GDB, entrez la commande suivante :

Brew uninstall gdb

V - Étape 4 : Création d’un certificat de sécurité pour GDB

Pour permettre à GDB de contrôler un autre processus, il va falloir autosigner le binaire de GDB avec une signature de code approuvée par le système. C’est la partie la plus contraignante.

V-A - Création du certificat

Ouvrez l’application trousseaux d’accès (Keychains en anglais) :

Placez-vous sur la section « Système » et cliquez sur le cadenas en haut à gauche si celui-ci est verrouillé.

Dans le menu « Trousseaux d’accès », sélectionnez « assistant de certification » puis cliquez sur « Créer un certificat » comme sur la capture d’écran suivante :

Entrez les informations telles que décrites sur l’image ci-dessous.

Vous pouvez bien entendu choisir un autre nom que « gbd-cert ». Cependant, je vous incite à choisir un nom facilement mémorisable et en rapport avec GDB.

Pour l’étape suivante, je vous conseille d’entrer une période de validité supérieure à celle proposée par défaut (365 jours).

Cliquez sur le bouton « Continuer » jusqu’à atteindre la section « Emplacement du certificat ». Choisissez Système dans la liste du seul paramètre à configurer « Trousseau » :

Cliquez sur le bouton « Créer » puis, dans la boîte de dialogue qui va s’ouvrir, cliquez sur le bouton « Terminer »

Normalement, votre certificat est créé. Vous pouvez sauter la partie suivante.

V-B - Étape à suivre en cas d’erreur

Dans le cas où l’assistant vous renverrait un message d’erreur du type « unknown error = -2.147.414.007 », recommencez la procédure, mais à la dernière étape, laissez le champ « Trousseau » sur Session.

Dans la fenêtre principale de « trousseaux d’accès », cliquez sur « Mes certificats » et faites apparaître le menu en cliquant et en maintenant la touche « Ctrl » enfoncée. Choisissez Exporter « nom de votre certificat » (sur la capture TestCert) :

L’application va alors vous demander de rentrer un mot de passe pour le chiffrement et votre mot de passe d’utilisateur.

Sélectionnez de nouveau le certificat dans la liste et supprimez-le.

Maintenant, sélectionnez « Système » dans la partie « Trousseaux » en haut à gauche et choisissez « Certificats » dans la partie « catégorie ». Cliquez sur le bouton « + » en bas dans la barre de statut pour importer le certificat précédemment sauvegardé. Dans la boîte de dialogue qui s’ouvre, choisissez votre fichier (normalement avec l'extension .p12 ) et validez l’opération en saisissant les mots de passe demandés.

Pour le bon fonctionnement de GDB et pour permettre que le binaire soit signé correctement, le certificat doit obligatoirement être dans la section système.

VI - Finalisation de la création du certificat

Sélectionnez votre nouveau certificat dans la liste et cliquez sur le bouton « i » en bas dans la barre de statut (on peut le voir sur la capture d’écran un peu plus haut). Une nouvelle fenêtre va apparaître, énumérant les détails du certificat :

Déroulez la partie « se fier ». Sélectionnez Toujours approuver pour le paramètre « Signature de code » :

La procédure est presque terminée. Fermez toutes les fenêtres ouvertes et redémarrez votre ordinateur.

La dernière étape consiste à signer GDB avec le certificat fraîchement créé.

Ouvrez le terminal et lancez la commande suivante :

codesign -s Nom_de_votre_certificat /usr/local/Cellar/gdb/8.0.1/bin/gdb

/usr/local/Cellar/gdb/8.0.1/gdb est le dossier où HomeBrew a installé GDB. Ici, c’est le dossier de GBD 8.0.1 pour une installation sous macOS High Sierra. Pour macOS Sierra, ou si vous avez installé une autre version de GDB, vous devez modifier le chemin d’accès par le vôtre.

Une étape supplémentaire sera peut-être nécessaire. Nous verrons cela après avoir effectué l’installation de Free Pascal et de Lazarus.

VII - Étape 5 : Installation de Free Pascal et de Lazarus

Deux solutions s’offrent à vous à ce stade de la procédure :

1. Vous téléchargez FPC, les sources de FPC et l’installateur de Lazarus depuis le dépôt officiel disponible ici : https://sourceforge.net/projects/lazarus/files. Effectuez l’installation dans l’ordre décrit ici : FPC, les sources de FPC et finalement Lazarus.

2. Vous pouvez installer FPC et Lazarus à l’aide de FPCUpdeluxe. Pour y parvenir, vous pouvez lire mon tutoriel à ce sujet : Installer Lazarus et des paquets avec FPCUpDeluxe et Online Package Manager.

Si vous choisissez l’option numéro un, les kits d'installation ne sont pas approuvés par Apple : vous devrez maintenir la touche « Ctrl » enfoncée, cliquer sur le package et choisir « Ouvrir » avant de confirmer que vous souhaitez installer à partir d'un développeur inconnu.

L’utilisation de l’interface Carbon est délibérément (par Apple) limitée à 32 bits. High Sierra sera la dernière version à supporter les applications 32 bits et le gestionnaire d’interface Carbon (cf. https://support.apple.com/fr-fr/HT208436 ).

Notez que les kits d’installation dans les dépôts officiels sont exclusivement en 32 bits et utilisent Carbon par défaut.

VIII - Étape 6 : Configuration de Lazarus et test du bon fonctionnement de DBG

Comme FPC et Lazarus sont installés, lancez l’EDI Lazarus. La première chose à faire est de vous diriger dans les options de l’EDI : menu « Outils » → « Options ». Dans la partie gauche, sélectionnez « Débogueur » → « général ». Renseignez le chemin d’accès au binaire de GDB. Puis, plus bas dans le champ « Debugger_Startup_Options », saisissez la valeur suivante (avec les guillemets) :

--eval-command="set startup-with-shell off"

Cliquez sur le bouton « Ok » pour valider vos changements.

Quittez et relancez Lazarus afin d’être sûr que Lazarus a bien pris en compte vos changements. Retournez dans les options pour vérifier.

Maintenant, il faut tester la bonne marche de GDB. Allez dans le menu « Outils » → « Exemples de projets » dans la fenêtre qui s’est ouverte et sélectionnez (à gauche dans la liste) le projet nommé : runtests.lpi. Cliquez sur le bouton juste à droite « Ouvrir le premier sélectionné » :

Exécutez l’application en sélectionnant dans le menu « Exécuter » → « Exécuter » ou appuyez sur les touches « Commande » + « R » (Exécuter avec débogage).

Si une erreur se produit avec un message d’erreur semblable à celui ci-dessous :

Fermez toutes les applications ouvertes et redémarrez votre Mac en « Mode de récupération » en maintenant les touches « Commande » + « R » jusqu’à ce que le logo d'Apple apparaisse. Lancez alors le terminal :

Saisissez la commande suivante pour modifier la protection de l'intégrité du système afin d’autoriser le débogage :

csrutil enable --without debug

Redémarrez votre ordinateur et relancez l’application de test dans Lazarus : normalement, vous ne devriez plus avoir de messages d’erreurs provenant de GDB.

IX - En complément

Il faut savoir qu’avec sa prochaine version de macOS Mojave, Apple ne garantira plus le support des applications 32 bits (https://www.macrumors.com/2018/06/05…t-32-bit-apps/).

En ce qui concerne FPC et Lazarus, pour bénéficier du support en 64 bits, l’installation via FPCUpDeluxe est actuellement requise et vous devrez choisir entre les gestionnaires d’interface QT 5 ou Cocoa.

Si vous désirez utiliser Cocoa et avoir un EDI un minimum stable, il faut installer ou compiler manuellement la version « Trunk » de Lazarus. Attention : cette version est encore en cours de réalisation et n’est pas conseillée pour un développement durable.

Notez aussi que l’installation de GDB n’est pas obligatoire pour faire fonctionner Lazarus. Vous pouvez très bien déboguer vos applications à l’aide de LLDB moyennant quelques efforts supplémentaires. Pour plus d’informations sur ce sujet, je vous laisse consulter les liens du chapitre suivant.

Les équipes de FPC et Lazarus travaillent également sur le support et l’intégration de LLDB pour les prochaines versions.

X - Liens Annexes

Installation de GDB :

- http://wiki.freepascal.org/Installing_Lazarus_on_MacOS_X

- https://sourceware.org/gdb/wiki/BuildingOnDarwin

- https://stackoverflow.com/questions/49001329/gdb-doesnt-work-on-macos-high-sierra-10-13-3

- https://gist.github.com/gravitylow/fb595186ce6068537a6e9da6d8b5b96d

- http://wiki.lazarus.freepascal.org/GDB_on_OS_X_Mavericks_or_newer_and_Xcode_5_or_newer

Utilisation de DBG avec Lazarus :

- http://wiki.lazarus.freepascal.org/Debugging_-_GDB_tricks

- http://wiki.lazarus.freepascal.org/GDB_Debugger_Tips

Utilisation de Cocoa avec Lazarus :

- https://macpgmr.github.io/MacXPlatform/UsingCocoaFromTrunk.html

Débogage sous Lazarus à l’aide de LLDB :

- https://macpgmr.github.io/ObjP/ProjectXC.html

XI - Conclusion

Même si l’installation de DBG n’est pas obligatoire pour faire fonctionner Lazarus, il est vivement recommandé de le faire. La procédure de débogage avec LLDB semble ardue et la prise en main pas facile (je n’ai moi-même pas testé cette solution).

La mise en route de DBG est fastidieuse et aléatoire : d’un système à l’autre, une solution peut ou ne peut pas fonctionner. Mais, en général, on y arrive ! Cet article ne couvre que les connaissances minimales que j’ai avec cet environnement. Si mes propositions ne fonctionnent pas, d’autres solutions doivent sûrement exister et devront être mises en place en fonction de votre configuration.

Mes remerciements vont à Chrtophe, Alcatîz et GVasseur58 pour leur relecture technique ainsi qu’à f-leb pour sa correction orthographique.