IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

Récupérer les informations exécutable sous Linux ?


Sujet :

Lazarus Pascal

  1. #1
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    469
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 469
    Points : 1 100
    Points
    1 100
    Par défaut Récupérer les informations exécutable sous Linux ?
    Bonjour,

    Savez-vous si on peut lire depuis un exécutable Linux les numéros de version, notamment, qui ont été spécifiés dans les options du projet.

    Sous Windows j'utilise GetFileInfo, est-ce qu'il y a un équivalent pour Linux, voire même pour MAC OS/X ?

    Merci pour vos tuyaux !

    Tintinux
    Cordialement,
    Tintinux

    Initiateur de Gestinux, une comptabilité gestion open-source, pour Linux, Windows et Mac OS.
    Une version stable et une autre en développement, avec Lazarus : vous pouvez aider à la tester, la traduire et à la développer.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    je viens de réaliser un composant qui récupère directement les infos à partir de project.res (donc sans passer par .lrs) suite à la lecture de http://lazarus-dev.blogspot.com/2010...-resource.html :
    • En Run en dehors de l'IDE, il fonctionne sur Lazarus 0.9.29 et FP > 2.4.0 (lazarus 0.9.29-26377-fpc-2.4.1-20100701). Avec l'IDE en F9, il signale une erreur "non bloquante" (cf Rq dans l'article).
    • Il fonctionne en F9 sans signalement d'erreur à partir Lazarus svn-0.9.29-26775-fpc-2.4.3-20100718


    Sinon, je dois avoir quelque part une vieille version du composant qui travaille sur ".lrs" mais qui nécessite, pour que les infos soient actualisées en temps réel lors de la construction complète du projet, de rajouter qqs lignes dans la lazarus\ide\w32versioninfo.pas... qui a encore changé dans la dernière svn... mais qui reste identique sur toutes les 0.9.28 jusqu'à la 0.9.29-26766 incluse.

    Voila pourquoi j'ai abandonné l'approche .lrs.
    Dites-moi ce qui vous intéresse le mieux...

    Cordialement. Gilles
    Dernière modification par Invité ; 24/07/2010 à 15h22.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    J'ai placé les 2 composants dans le sous répertoire projinfo d'un ftp perso (à accès anonyme) : http://www.selzig.com/lazarus

    La version "0.9.28" repose sur l'exploitation du fichier .lrs (ou semblable). Elle fonctionne à condition de modifier /lazarus/ide/w32VersionInfo.pas Je me suis basé sur la 0.9.28.3-26434-fpc-2.4.0-20100703.
    D'une version à l'autre cette unité varie beaucoup... Dans cette version, j'ai préféré placer les renseignements dans le fichier project1.vrs plutôt que project1.lrs car ce dernier est réinitailisé lors de la reconstruction du projet après son traitement par W32VersionInfo.pas alors qu'il ne l'est pas dans d'autre version... Il faut également ajouter une ligne "à la main" dans la partie initialization de l'unité qui utilise le composant : {$I project1.vrs} (si project1 est le nom du projet}. Cette version n'a aucun avenir mais elle peut dépanner ceux -qui comme moi longtemps- ont choisi de développer avec une version stable.

    La version "0.9.29" utilise le fichier .res. Elle semble fonctionner dans toutes les versions même si en dessous de la version 0.9.29-26775, elle indique une erreur (sans conséquence) lors du F9. Contactée, l'Equipe Lazarus m'a indiqué que si cela fonctionnait avec les versions postérieures ou égales à la lazarus svn-0.9.29-26775, il n'y avait pas de problème. Bon...

    Les composants ont été testés sous Windows XP et Ubuntu 10.04LTS (gtk2).

    -------
    Petite info complémentaire après test sur la release suivante : la Lazarus 0.9.29-26832-fpc-2.4.3-20100726 reproduit les mêmes messages que les autres versions différentes de 0.9.29-26775... Si j'en crois la réponse sur le lazarus bugtracker c'est un problème FPC et non Lazarus. Problème signalé sur le FPC bugtracker. En attendant le traitement du bug, le composant reste ainsi. Hormis ce message désagréable, il fonctionne.
    -------

    Cordialement. Gilles
    Dernière modification par Invité ; 27/07/2010 à 14h19. Motif: Petite info complémentaire

  4. #4
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    469
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 469
    Points : 1 100
    Points
    1 100
    Par défaut
    Bonjour,

    Je crois que je ne me suis pas fait comprendre...

    On n'est pas dans l'EDI et aucun fichier .res ni .lrs n'est distribué.

    Je veux lire la version qui est incluse dans l'exécutable, qu'on voit dans les propriétés du fichier .exe Windows.

    La FAQ nous indique une procédure pour la plateforme Windows, mais est-ce possible pour Linux et OS/X ? La version est-elle incluse dans le binaire ? Si oui, comment la lire ?

    Merci.
    Tintinux
    Cordialement,
    Tintinux

    Initiateur de Gestinux, une comptabilité gestion open-source, pour Linux, Windows et Mac OS.
    Une version stable et une autre en développement, avec Lazarus : vous pouvez aider à la tester, la traduire et à la développer.

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 235
    Points : 506
    Points
    506
    Par défaut
    A ma connaissance c'est impossible. Il n'y a pas d'information de version, d'éditeur, d'icône et tout ce genre de truc dans un executable linux.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Un fichier Linux ne possède pas la métadonnée "N° de version" comme un fichier Windows (cf une vieille discussion)
    Citation Envoyé par selzig Voir le message
    [...]Lazarus appelle des API Windows pour lire et écrire des metadonnées (notamment la version du fichier) incluses dans les exe lors de leur construction sous Windows.... Il lui est donc impossible de répliquer la méthode sous Linux ne serait-ce que parce que ce numéro de version n'existe pas dans les i-nodes.[...]
    La seule solution que je connaisse est donc d'intégrer le N° de version dans l'exe lui-même,... à partir de Lazarus. Dans ce cas, le programme (lancé) -et lui seul- pourra récupérer cette valeur et l'afficher. Mais, il ne faut pas espérer l'obtenir à partir de Gnome ou KDE en "survolant" l'icône de l'exécutable comme on peut le faire sous Windows.

    D'autre part, il n'y a pas besoin de fournir le .res ou le .lrs. Ils sont "encapsulés" dans l'exécutable lors de sa construction. En quelque sorte, le fichier exécutable contient l'exécutable lui-même plus les données contenues dans le .lrs ou le .res, données qui sont alors accessibles par le programme lui-même. On peut ainsi intégrer de manière transparente pour l'utilisateur du programme, des images, des sons, des données textes... Ces données pourront être exploitées par le programme tout en n'étant jamais visibles dans le répertoire sous forme des fichiers de "départ" (un fichier .wav par exemple).

    Le .lrs est limité notamment à cause de sa procédure d'appel dans la partie initialization des units où les possibilités de codage sont restreintes. Le .res n'est pas encore tout à fait prêt. Mais il est déjà fonctionnel... même si c'est encore imparfait : http://bugs.freepascal.org/view.php?id=17044.

    Cordialement. Gilles
    Dernière modification par Invité ; 01/08/2010 à 20h26.

  7. #7
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    469
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 469
    Points : 1 100
    Points
    1 100
    Par défaut
    Bon, dommage, mais alors il suffit tout simplement de mettre la version dans une constante et l'exécutable pourra l'afficher, sans besoin d'un composant particulier et sans contrainte de version ou de plateforme.

    Cordialement,

    Tintinux
    Cordialement,
    Tintinux

    Initiateur de Gestinux, une comptabilité gestion open-source, pour Linux, Windows et Mac OS.
    Une version stable et une autre en développement, avec Lazarus : vous pouvez aider à la tester, la traduire et à la développer.

Discussions similaires

  1. [AC-2010] récupérer les informations d'une ligne d'un sous etat
    Par safa-ini dans le forum Access
    Réponses: 1
    Dernier message: 29/03/2014, 11h53
  2. [CakePHP] Exécuter un .sh et récupérer les informations
    Par DexX39800 dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 15/07/2013, 11h22
  3. Réponses: 3
    Dernier message: 30/01/2009, 20h57
  4. Réponses: 1
    Dernier message: 05/11/2007, 10h25
  5. Les ports series sous linux...
    Par barucca dans le forum Matériel
    Réponses: 11
    Dernier message: 29/04/2004, 11h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo