Exécutable Mac OS X

Si vous voulez participer au développement de Gestinux, et que vous ne maîtrisez pas l'anglais, écrivez vos questions ou remarques ici.

Il reste préférable, dans la mesure du possible, d'utiliser le forum anglais.
Locked
tahitibub
Posts: 13
Joined: 15 Jul 2016, 20:14
Location: Tahiti

Exécutable Mac OS X

Post by tahitibub »

Bonjour,

Vous serait-il possible de créer un exécutable de Gestinux tournant sous Mac OS X ?

Cordialement,
tintinux
Site Admin
Posts: 169
Joined: 21 Jun 2012, 19:07
Location: Blois (France)
Contact:

Re: Exécutable Mac OS X

Post by tintinux »

Bienvenue sur ce forum et dans Gestinux !

Gestinux étant réalisé avec Lazarus, il est effectivement possible de faire des exécutables pour Mac OS/X avec les mêmes sources et fonctionnement que sous Linux et Windows.

Une tentative avait été faite il y a quelques années sans succès, mais il se trouve que, pas plus tard que la semaine dernière j'ai repris le sujet, et suis parvenu à quelques résultats. Cela fonctionne expérimentalement, mais il reste à finaliser l'installation et à tester à fond. Pour l'instant, il faut copier des fichiers "à la main" mais j'espère aboutir sous peu, avant la fin de l'été, avec la version 1.4 de Gestinux.

Si vous (ou un autre) pouvez aider par des connaissances en packaging OS/X, ou au moins tester, vous êtes évidemment les bienvenus ! Je peux vous envoyer l'exécutable "brut".

Il va notamment falloir vérifier que cela fonctionne bien sur des MAC récents, 64 bits en particulier, car le mien est une antiquité.

Il reste un problème de taille, c'est que, dans les dernières versions d'OS/X, Apple interdit de télécharger des logiciels pour lesquels leur développeur n'a pas payé (90 € la dernière fois que j'ai regardé). On peut encore contourner cette restriction, mais peut être que cela ne sera plus possible dans une prochaine version... Cela n'est pas compatible avec un logiciel libre et gratuit, que trop peu d'utilisateurs financent spontanément.
Cordialement,

Tintinux
tintinux
Site Admin
Posts: 169
Joined: 21 Jun 2012, 19:07
Location: Blois (France)
Contact:

Re: Exécutable Mac OS X

Post by tintinux »

Bonjour

Une première version empaquetée pour MAC OS/X a été mise en ligne, et devrait commencer à fonctionner. Elle est réalisée avec les sources de Gestinux 1.4, bientôt stable, mais il ne faut la considérer que comme une version de qualité beta, car il y pas mal de spécificités qui créent des soucis inconnus sous Windows ou Linux. Il est préférable de connaître un peu Gestinux pour le tester sous Mac et mieux qualifier les anomalies.

Elle a été compilée sur et pour des machines à processeurs Intel 32 bits. Je ne sais pas si elle fonctionne sur de l'Intel 64 bits, ne possédant pas de telle machine.

Suivez les instructions d'installations attentivement, et signalez tout problème (dans ce fil) en détaillant bien le système que vous utilisez.

S'il y a des développeurs pouvant apporter une meilleure connaissance d'OSX et pouvant compiler les sources sur Intel 64bits voire sur PowerPC, ils sont plus que bienvenus ! Notez qu'un patch doit être apporté à Lazarus 1.6.0 pour éviter un bug bloquant, accessible sur install/osx/carbon-popupparent-1.patch
Cordialement,

Tintinux
tintinux
Site Admin
Posts: 169
Joined: 21 Jun 2012, 19:07
Location: Blois (France)
Contact:

Re: Exécutable Mac OS X

Post by tintinux »

Une nouvelle version pour Mac OSX 32 bits a été mise en ligne.

C'est une 1.4-rc-2 avec corrections et contournements de diverses spécificités d'OSX qui posaient des problèmes.

Vos retours seraient les bienvenus !
Cordialement,

Tintinux
tahitibub
Posts: 13
Joined: 15 Jul 2016, 20:14
Location: Tahiti

Re: Exécutable Mac OS X

Post by tahitibub »

Bonjour,

Merci pour ce portage !!!

Désolé pour ma longue absence sur ce forum.

Je n'ai aucune connaissance en packaging pour Mac OS X, mais d'après mon premier test le programme s'installe et se lance correctement sur Mac OS X 10.11.6 (processeur 64 bits).

Je vais donc aller plus en avant (installation et paramétrage d'une base de données, puis essai d'importation d'une comptabilité) et je reviendrai vers vous sous peu.

@+
tahitibub
Posts: 13
Joined: 15 Jul 2016, 20:14
Location: Tahiti

Re: Exécutable Mac OS X

Post by tahitibub »

Erreur ...

En voulant sauvegarder les paramètres d'accès à la base de données, voici ce que j'obtiens :

"Une erreur imprévue est survenue. Merci de la signaler en cliquant sur le bouton "Aide". Access violation"
tahitibub
Posts: 13
Joined: 15 Jul 2016, 20:14
Location: Tahiti

Re: Exécutable Mac OS X

Post by tahitibub »

Bon, finalement il a bien pris mes paramètres, mais j'ai de nouveau une erreur :

Impossible de se connecter au serveur xxx.xxx.xxx.xxx avec le nom d'utilisateur xxx (None of the dynamic libraries can be found or is not loadable: libmysqlclient.dylib.18, libmysqlclient.dylib.16, libmysqlclient.dylib.15, libmariadb.dylib, libmysqlclient.dylib !
Use TZConnection.LibraryLocation if the location is invalid.)

Comme préconisé dans le guide d'installation de Gestinux, j'ai donc installé le connecteur SQL "mysql-connector-c-6.1.6-osx10.8-x86_64.dmg" dispo ici puis j'ai tapé la commande suivante :

sudo ln -s /usr/local/mysql-connector-c-6.1.6-osx10.8-x86_64/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.dylib

Résultat des courses, un message d'erreur :

ln: /usr/lib/libmysqlclient.dylib: Operation not permitted

Il y a un fil de discussion au sujet de cette erreur sur les forums d'Apple. En gros, le système de protection d'intégrité de OS X (SIP) interdit d'écrire dans ce répertoire.

In fine, il y est suggéré d'enregistrer le lien symbolique dans /usr/local/. J'ai donc tapé la commande suivante :

sudo ln -s /usr/local/mysql-connector-c-6.1.6-osx10.8-x86_64/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.dylib

Cette fois ça passe, mais Gestinux affiche toujours le même message d'erreur.

Je pense qu'il convient de faire pointer l'application dans "/usr/local/" au lieu de "/usr/" pour y chercher le connecteur MySQL ...

Au passage, et à titre d'info, voici les librairies utilisées par Gestinux :

Code: Select all

$ otool -L /Applications/gestinux.app/gestinux 
/Applications/gestinux.app/gestinux:
	/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 152.0.0)
	/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 227.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.11)
	/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 751.62.0)
	/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 15.0.0)
	/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 44.0.0)
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 550.43.0)
	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 38.0.0)
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1038.36.0)
tintinux
Site Admin
Posts: 169
Joined: 21 Jun 2012, 19:07
Location: Blois (France)
Contact:

Re: Exécutable Mac OS X

Post by tintinux »

Bonjour,
Erreur ...
En voulant sauvegarder les paramètres d'accès à la base de données, voici ce que j'obtiens :
"Une erreur imprévue est survenue. Merci de la signaler en cliquant sur le bouton "Aide". Access violation"
Ça doit se produire sur n'importe quelle machine, mais dans un cas particulier que je ne parviens pas à reproduire.
Si quelqu'un arrive à reproduire précisément les actions qui mènent à cette erreur, il est le bienvenu !
Comme préconisé dans le guide d'installation de Gestinux, j'ai donc installé le connecteur SQL "mysql-connector-c-6.1.6-osx10.8-x86_64.dmg" dispo ici puis j'ai tapé la commande suivante :
sudo ln -s /usr/local/mysql-connector-c-6.1.6-osx10.8-x86_64/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.dylib
Résultat des courses, un message d'erreur :
Merci pour ce retour et vos recherches : je vais tâcher de me renseigner sur ce qu'on peut faire à partir de ces précisions.
En attendant, il devrait vous être possible de spécifier l'emplacement autrement :
Avec Paramètres, Bases de données, sur l'onglet "Paramètres supplémentaires", cliquez sur le dossier jaune à côté du champ "pilote spécial", cherchez et sélectionnez le fichier existant /usr/local/mysql-connector-c-6.1.6-osx10.8-x86_64/lib/libmysqlclient.18.dylib
Il faut peut-être fermer et relancer Gestinux, mais ça devrait fonctionner ensuite.

Tenez nous au courant, je vais essayer de faire une nouvelle version 1.4 pour MAC cette semaine, intégrant les petites corrections effectuées depuis la précédente.
Cordialement,

Tintinux
tintinux
Site Admin
Posts: 169
Joined: 21 Jun 2012, 19:07
Location: Blois (France)
Contact:

Re: Exécutable Mac OS X

Post by tintinux »

Bonjour

Une nouvelle version 1.4-rc-4 est disponible sur SourceForge

Elle devrait faire disparaître l'erreur rencontrée en sauvegardant un paramétrage de base (qui se produisait quand on ne s'était pas connecté avec).

Elle améliore la recherche des pilotes de base de données MySql. Il faut toujours créer le lien symbolique comme indiqué dans la documentation d'installation modifiée, sur usr/local/lib. Gestinux ira bien chercher un fichier libmysqlclient.dylib à cet emplacement.

On est obligé de passer par ce lien symbolique parce que le programme d'installation du pilote MySql sur MAC ne semble pas modifier le chemin de recherche des bibliothèques quand il les installe. Ce n'est pas à Gestinux de le faire, mais si on fait le nécessaire "à la main", il devrait aller chercher la dernière version de pilote jusqu'à la version 5.7 sans ce lien symbolique.

Merci pour vos retours, notamment sur MAC OS/X.
Cordialement,

Tintinux
Locked