Compilation

Everything about our Electronic Medical Record FreeMedForms: ask questions, post reviews, add comments.
Toutes vos questions/commentaires/retours d'expérience avec notre gestionnaire de dossier patient FreeMedForms EMR.
Post Reply
DrMaboul
Posts: 5
Joined: 01 March 2015, 21:41

Compilation

Post by DrMaboul » 10 March 2015, 21:17

Bonjour à tous !

J'ai bien noté qu'une version 9.4 devrait pointer le bout de son nez sur toutes les plateformes mais je souhaiterais quand-même me lancer dans la compilation.
Le but est de pouvoir coller au plus près des mises à jour et par la suite de tester d'éventuelles modifications.

Je vais bien-sûr m'inspirer de la page du wiki (https://freemedforms.com/en/code/buildsystem) mais s'il y a parmi vous des gens qui ont des conseils avant de se lancer, je suis preneur !

Dans un premier temps je pense compiler sous Windows (7) et sous Mac OS (10.10).

Alban


Bien-sûr, les résultats de ces compilations pourront être mis à dispo de qui le souhaite et une fois le processus bien maitrisé, je peux proposer mon aide à la communauté pour la préparation de binaire.
Alban (plûtot informatique - compétence médicale limitée à Dr Maboul il y longtemps...)
A la recherche d'une solution informatique médicale pour son épouse dermato (plûtot médecin - compétence informatique limitée à "Alban, ça marche pas !!!!")

User avatar
jerome
Posts: 150
Joined: 29 October 2013, 08:58
Location: Marseille
Contact:

[Fr] [En] Re: Compilation

Post by jerome » 12 March 2015, 13:25

[En]
tldr; summary in english:
FMF is looking for packagers for MacOS X. DrMaboul is interested by the job. Try to ask help from Eric Maeker for MacOS X compilation tips, but he's extremely busy so don't expect immediate answers.
I'll put instructions and tips about building for Windows 7 on this page ASAP: https://freemedforms.com/en/code/buildsystem/windows We need help (probably code change) to compile recent OpenCV for FMF webcam plugin. Current code for Webcam plugin doesn't compile with last OpenCV release.
In the future build process should be standardized and all builds should be reproducible. See Issue #40: https://github.com/FreeMedForms/freemedforms/issues/40
All FreeMedForms devs should have a GPG key to sign commits, releases, binaries.

[Fr]
DrMaboul wrote:Bonjour à tous !

J'ai bien noté qu'une version 9.4 devrait pointer le bout de son nez sur toutes les plateformes mais je souhaiterais quand-même me lancer dans la compilation.
Le but est de pouvoir coller au plus près des mises à jour et par la suite de tester d'éventuelles modifications.

Je vais bien-sûr m'inspirer de la page du wiki (https://freemedforms.com/en/code/buildsystem) mais s'il y a parmi vous des gens qui ont des conseils avant de se lancer, je suis preneur !

Dans un premier temps je pense compiler sous Windows (7) et sous Mac OS (10.10).

Alban


Bien-sûr, les résultats de ces compilations pourront être mis à dispo de qui le souhaite et une fois le processus bien maitrisé, je peux proposer mon aide à la communauté pour la préparation de binaire.
Nous cherchons un référent pour la compilation pour Mac OS.

Voilà l'histoire en résumé: à ma connaissance, depuis toujours, Eric a réalisé toutes les compilations pour tous les OS. Mais ça demande énormément de temps pour compiler et de tests une fois que le binaire est produit.

Désormais, je suis chargé de la créationdes binaires pour Windows et de la création des paquets pour Ubuntu. Eric fait partie de Debian Med et il est le référent pour les paquets Debian qui deviennent ensuite des paquets Ubuntu. Eric et Debian Med ont toujours besoin d'aide. Pour offrir des versions récentes aux nombreux utilisateurs d'Ubuntu, nous avons un dépôt PPA à nous sur lequel on met la dernière version disponible sur Debian Sid (Unstable). Je suis chargé de faire ça.

Donc:

Windows:
J'ai ouvert une page (vide pour le moment) d'aide à la compilation sur Windows sur le wiki car, dans un projet libre, il faut que tout le monde puisse compiler. Je te recommande d'attendre 24h le temps que cette page s'étoffe, car, par expérience, sans aide, il y a moyen de perdre des heures voire des jours. Je fais ça dès que possible. Il y a des problèmes avec OpenCV dont la dernière version ne compile pas avec le code actuel qui a été écrit pour une version d'Open CV qui remonte à deux ans en arrière. Quelques adapations à prevoir, j'ouvre une issue dès que possible.

Mac OS 10.10 Yosemite:
Je n'ai jamais rien compilé sur Mac OS X donc je ne peux pas t'aider. Tu peux demander de l'aide à Eric ici (anglais ou français) ou via la mailing list dev (en anglais uniquement sur ML dev) mais il est très pris pour son travail en ce moment donc il ne peut pas consacrer autant de temps qu'il le souhaiterait à FMF. Par contre je veux bien essayer de déméler les problèmes avec toi car j'aimerais à terme maîtriser le processus sur les trois OS. J'ai une image de MacOS sur Virtual Box, je vais voir si c'est bien 10.10.

Pour tout ce qui relève du dev, on essaie vraiment d'utiliser l'anglais. Idéalement, le français devrait être réservé aux problèmes spécifiques d'un pays francophone.

Les dev FMF signent tous les binaires et toutes les releases du code source, et si possible tous les commits sur le git, avec leurs clef OpenPGP. As-tu une clef GPG? Je peux t'aider à en créer une et à l'utiliser (par ordre de préférence: sur GNU/Linux, ou sur Mac OS X, ou sur Windows), c'est un domaine dans lequel j'ai beaucoup d'expérience.

Objectif de qualité pour le futur: chaque binaire devra être reproductible à l'identique pour tous les devs. Ainsi, la sécurité et l'authenticité du binaire est garantie, ce qui est important pour le traitement de données médicales. Donc le processus de build doit être standardisé. Si tous les devs arrivent à reproduire le build à l'identique, ils le signent et les utilisateurs sont assurés d'avoir un logiciel conforme au code source.

En attendant d'atteindre ce objectif de qualité, avoir un binaire Mac OS X qui marche sera déjà très bien. Bosser dessus à plusieurs va accéler le processus!

Merci!

jérôme

User avatar
eric
Administrateur
Posts: 116
Joined: 28 September 2013, 11:27
Contact:

Re: Compilation

Post by eric » 22 March 2015, 12:08

Bonjour,

Juste pour info, il existe des scripts de build pour Windows et MacOs qui s'occupent de quasiment tout. J'ai ajouté dans les entêtes des fichiers de script des annotations pour aider à la création d'une release.

Il faut savoir que la toute première étape consiste à créer un fichier source viable grâce au script : scripts/source.sh (fonctionne sur tout système unix - linux, bsd, mac).

User avatar
jerome
Posts: 150
Joined: 29 October 2013, 08:58
Location: Marseille
Contact:

Re: Compilation

Post by jerome » 25 March 2015, 14:14

eric wrote:Bonjour,

Juste pour info, il existe des scripts de build pour Windows et MacOs qui s'occupent de quasiment tout. J'ai ajouté dans les entêtes des fichiers de script des annotations pour aider à la création d'une release.
Quelqu'un qui souhaite compiler FMF pour sa distribution n'aura pas pour réflexe premier d'aller voir les entêtes de tous les scripts dand le dépôt Git, par contre il pourrait être tenté d'aller jeter un œil sur le site.
Il faut également préparer un environnement de travail adéquat et identique pour tout le monde afin d'atteindre l'objectif de compilation reproductible (reproducible build).
Depuis 0.9.6, sur Windows il faut également de nouvelles bibliothèques dynamiques (dll) d'OpenSSL pour https/TLS/SSL.
Une page de wiki est sûrement plus adaptée qu'un entête de fichier script pour apporter toutes ces précisions.
Il faut savoir que la toute première étape consiste à créer un fichier source viable grâce au script : scripts/source.sh (fonctionne sur tout système unix - linux, bsd, mac).
C'est ce qui est écrit sur la page Build FreeMedForms apps for Windows :-) Il faudrait remonter ça aussi dans la page principale "Build instructions for FreeMedForms project applications" car les étapes d'après sont mentionnées avant l'étape du script source.sh

Même si nous devons recommender aux utilisateurs d'utiliser uniquement les builds officiels du projet, il s'agit d'un projet libre et nous ne pouvons construire nous-même tous les binaires pour toutes les distributions libres existantes. Il est donc important de donner le maximum d'informations pour faciliter le processus.
Comme nous l'avons vu avec la participation de la communauté francophone ArchLinux, aider d'autres personnes à compiler FMF permet d'avoir des retours de bugs et d'améliorer le projet.

Une page du Software Freedom Law Center dit ça mieux que moi:

"3.4 Avoid the “Build Guru”

Too many software projects rely on only one or a very few team members who know how to build and assemble the final released product. Such knowledge centralization not only creates engineering redundancy issues, but it also endangers GPL compliance, which requires you to provide build scripts.

Avoid relying on a “build guru”, a single developer who is the only one who knows how to produce your final product. Make sure the build process is well defined. Train every developer on the build process for the final binary distribution, including (in the case of embedded software) generating a final firmware image suitable for distribution to the customer. Require developers to use revision control for build processes. Make a rule that adding new components to the system without adequate build instructions (or better yet, scripts) is unacceptable engineering practice."

Post Reply