Nous sommes le Ven 27 Juin, 2025 00:11
Supprimer les cookies

[Resolu] Configurer NSIS pour FK1.11 et MS Windows 7

Image Image Forum dédié à notre projet de clé USB nomade libre sous Windows

Sam 15 Mai, 2010 11:15

Bonjour,

il faudrait que je recompile la FK1.11 pour faciliter une installation en chaîne de 200 Framakey (auxquelles ont a ajouté des documents propres à notre établissement).

D'abord, connaîtriez-vous un tutoriel efficace concernant l'utilisation de NSIS de Nullsoft (viewtopic.php?f=73&t=33180&p=268883&hilit=nsis#p268883) ?

Ensuite, sauriez-vous ce qu'il faudrait modifier dans le script .nsi pour que l'install soit fully compatible avec Windows 7 (car il n'y a pas de proposition de lanceur lors de l'introduction d'une clé FK1.11 sous MS Windows 7 ?

Bien cordialement,

Bionet
Dernière édition par Bionet le Dim 16 Mai, 2010 20:26, édité 1 fois au total.
Bionet

Messages : 40

Sam 15 Mai, 2010 14:41

Je le redis : un autoextractible 7z fera tout aussi bien l'affaire pour un déploiement en nombre et sera beaucoup plus facile à réaliser.

Pas besoin de recompiler (et donc de faire joujou avec NSIS), il suffit de compresser.
Vécu : "J'ai une version crackée d'OpenOffice, c'est pour ça qu'elle est en anglais"
fat115

Avatar de l’utilisateur
Messages : 930
Géo : Ardèche ... du nord

Dim 16 Mai, 2010 15:43

Bonjour,

j'ai bien compris ton message, et je le redis moi aussi : l'archive .exe (avec NSIS) permet à la clé d'être reconnue complètement et de se lancer à la connexion avec l'ordinateur. Alors qu'avec un simple .exe réalisé avec 7zip (en plus de en pas récupérer la possibilité d'avoir un splash screen, mais c'est secondaire) ne permet pas d'ajouter des paramètres à la clé permettant à celle-ci d'être pleinement reconnue. Avec 7zip ou un simple recopiage du contenu le kiosque qui ne se lance plus directement. Il faut toutefois noter que j'ai certains modèles de clés qui fonctionnent sur XP et pas sur Vista ou 7 et que le problème est peut-être du au type de clé et à la manière de copier les informations dessus. 7zip n'est peut-être pas aussi efficace que NSIS pour recopier des données sur un support !

Le seul moyen est d'avoir 2 .exe : celui réalisé avec NSIS pour la FK1.11 que je lance en premier puis je dézippe les ajouts (en .exe ou en répertoire dézippé, c'est plus rapide) directement sur la clé.

Dans ce cas j'ai des clés pleinement opérationnelles. Il suffit d'ailleurs de lire les scripts NSIS présents sur la clé pour se rendre compte du nombre de paramètres permettant une meilleure reconnaissance de la clé. Tout n'est pas dans les simples fichiers à la racine de la clé.

Ces clés ne sont pas à destination de personnes connaissant pleinement les logiciels libres (les connaisseurs ont déjà leur propre clé) mais bien pour faire découvrir ces logiciels à des débutants. Il me faut une clé pleinement opérationnelle et j'aimerai remplacer la solution décrite ci-après par un simple exécutable (et le .exe de 7zip ne permet pas de garder toutes les fonctionnalités de reconnaissances de la clé sous les différentes versions de Windows) :
- lancer FK1.11 sur toutes les clés ;
- ajouter le répertoire des ajouts/modifs sur toutes les clés.

Il faudra en outre que je propose une archive .exe opérationnelle (donc pas avec 7zip) à télécharger car nous avons des documents et des logiciels enseignement supplémentaires sur cette clé, pour les personnes souhaitant avoir cette FK adaptée sur leur propre clé USB.

bien cordialement,

bionet
Bionet

Messages : 40

Dim 16 Mai, 2010 19:05

Bionet a écrit:Bonjour,

j'ai bien compris ton message, et je le redis moi aussi : l'archive .exe (avec NSIS) permet à la clé d'être reconnue complètement et de se lancer à la connexion avec l'ordinateur.
Réponse courte : Non
Réponse un poil plus longue : le type d'installation (via un installeur NSIS ou une archive auto-extractible 7-zip) n'a aucune influence sur la reconnaissance de la clé et l'exécution automatique. Ça dépend uniquement des réglages du système hôte et de la présence des fichiers autorun.inf/start.exe & start.ini à la racine de la clé.
Ainsi, dans mon établissement tu peux arriver avec n'importe quelle clé (NSIS ou 7-zip), elle ne démarrera pas automatiquement ! Pour la simple raison que toutes les exécutions automatiques sont désactivées pour respecter des principes simples de sécurité (transmission des virus).

Alors qu'avec un simple .exe réalisé avec 7zip (en plus de en pas récupérer la possibilité d'avoir un splash screen, mais c'est secondaire) ne permet pas d'ajouter des paramètres à la clé permettant à celle-ci d'être pleinement reconnue. Avec 7zip ou un simple recopiage du contenu le kiosque qui ne se lance plus directement.
Juste pour info : je réalise mes clés par simple copie et ça marche très bien. L'erreur vient donc d'ailleurs. Tu copies bien les 3 fichiers dont je parle plus haut à la racine de la clé ?

Il faut toutefois noter que j'ai certains modèles de clés qui fonctionnent sur XP et pas sur Vista ou 7 et que le problème est peut-être du au type de clé et à la manière de copier les informations dessus. 7zip n'est peut-être pas aussi efficace que NSIS pour recopier des données sur un support !
Là encore, ça n'a rien à voir avec 7-zip ou NSIS mais avec les réglages du PC hôte (exécutions automatiques)

Le seul moyen est d'avoir 2 .exe : celui réalisé avec NSIS pour la FK1.11 que je lance en premier puis je dézippe les ajouts (en .exe ou en répertoire dézippé, c'est plus rapide) directement sur la clé.
Non, ça n'est pas le seul j'y reviendrai pus tard.

Dans ce cas j'ai des clés pleinement opérationnelles. Il suffit d'ailleurs de lire les scripts NSIS présents sur la clé pour se rendre compte du nombre de paramètres permettant une meilleure reconnaissance de la clé. Tout n'est pas dans les simples fichiers à la racine de la clé.
La question qui me tarabuste : quels scripts NSIS ?
Pour l'installeur, il n'y en a qu'un : FramakeyInstall.nsi et il se contente d'afficher le splash, quelques messages puis de décompresser les fichiers et de demander s'il faut lancer start.exe. Il n'a aucun paramètre !

Ces clés ne sont pas à destination de personnes connaissant pleinement les logiciels libres (les connaisseurs ont déjà leur propre clé) mais bien pour faire découvrir ces logiciels à des débutants. Il me faut une clé pleinement opérationnelle et j'aimerai remplacer la solution décrite ci-après par un simple exécutable (et le .exe de 7zip ne permet pas de garder toutes les fonctionnalités de reconnaissances de la clé sous les différentes versions de Windows) :
- lancer FK1.11 sur toutes les clés ;
- ajouter le répertoire des ajouts/modifs sur toutes les clés.
La vraie question est de savoir si TU dois déployer ces 200 clés ou te contenter de distribuer un installeur aux 200 destinataires.
Si tu veux absolument un splashscreen, un affichage de la licence, un joli truc défilant lors de l'installation, il te faudra effectivement un paquet NSIS.
Par contre si c'est toi qui dois créer les 200 clés, tu gagneras énormément de temps avec un simple copie de fichiers ou une archive auto-extractible : la seule opération sera la sélection de la clé).

Il faudra en outre que je propose une archive .exe opérationnelle (donc pas avec 7zip) à télécharger car nous avons des documents et des logiciels enseignement supplémentaires sur cette clé, pour les personnes souhaitant avoir cette FK adaptée sur leur propre clé USB.t
Là encore, tu pars du principe que l'installeur NSIS fait de la magie vaudou : ça n'est vraiment pas le cas.

En tout cas, merci d'avoir expliqué un peu plus en détail ce que tu cherches à faire. Ça simplifie la façon de répondre.
Bon il reste toujours une question en suspens : les 200 clés devront-elles déployées par un nombre restreint de personnes le plus rapidement possible ou le déploiement sera t-il à la charge de chaque propriétaire de clé ? dans ce dernier cas un installeur peut éviter quelques explications puisque ces dernières seront remplacées par des écrans de blabla.

Point important concernant les clés : elles ne doivent PAS être formatées en NTFS, sous peine de voir survenir de nombreux problèmes liés aux permissions gérées par ce système de fichiers !

Maintenant, les solutions :
À faire en premier : installer la FK1.11 sur un disque dur et y apporter tes modifs. De préférence dans un dossier proche de la racine (C:\Bionetkey par exemple), pour limiter les risques liés aux chemins trop longs.

Première solution : déploiement rapide sur les 200 clés par une seule personne
Le plus rapide c'est de copier le contenu de C:\Bionetkey à la racine de chaque clé.
Pas d'étape de compression ou de décompression, c'est ce qui va le plus vite. attention, il faut bien copier le contenu du dossier et non le dossier !!!

Deuxième solution : déploiement rapide par un nombre restreint de personnes
en supposant que 7-zip soit installé avec son menu contextuel.
Tu te places dans le dossier C:\Bionetkey > Ctrl+A pour tout sélectionner > clic droit sur n'importe quel fichier > menu 7-Zip > Ajouter à l'archive ... > Coche Créer une archive SFX, Format 7z, compression Ultra > clic sur OK > obtention d'un autoextractible que tu distribues aux autres personnes.
Chacun lance l'autoextractible sur son poste, choisis un dossier vide où décompresser et se retrouve avec une copie de la clé dans ce dernier.
Il ne reste plus qu'à chacun/e à faire la manip de la première solution pour déployer les clés dont il/elle s'occupe.
Alternative moins rapide : lors du lancement de l'autoextractible il suffit de sélectionner la racine de la clé comme destination. Moins rapide parce que la décompression vers une clé va moins vite qu'une simple copie, ça c'est un simple constat.

Troisième solution : faire un mini installeur avec une version modifiée du module SFX de 7-zip
Même début de procédure que la deuxième solution mais en NE cochant PAS l'archive SFX.
Ensuite, tu récupères le joli paquet dispo là, tu le décompresses et tu mets les 2 fichiers obtenus à coté de l'archive 7z précédemment créée.
Tu ouvres une ligne de commandes dans le dossier où se trouvent tes 3 fichiers et tu tapes copy /b BionetKey.sfx + BionetKey.txt + nom_archive.7z BionetKey_installer.exe . Cela va créer un autoextractible un poil plus complet que le précédent. On peut le considérer comme distribuable.

Quatrième solution : la plus complète mais aussi la plus longue, refaire un installeur NSIS.
Tout d'abord tu récupères la dernière version du pack de portabilisation Framakey et tu le décompresses (de préférence dans un dossier vide et pas trop éloigné de la racine d'un disque).
Ensuite, j'ai aussi préparé un joli paquet pour cette solution. Tu le décompresses de manière à ce que le dossier qui est dedans (BionetkeyInstallCode) soit au même niveau que les dossiers Apps, Data & Framakey de ta clé modifiée.
Dans ce dossier, tu changes bionet.ico en ce que tu veux. Idem pour splash.jpg. Il faut juste garder les noms (ou les modifier dans le NSI).
Tu lances le Notepad++Portable du pack de portabilisation.
Avec celui-ci tu ouvres le fichier /BionetkeyInstallCode/BionetInstall.nsi.
J'ai prérempli ce dernier, à toi de voir les modifications de noms à apporter.
Autre fichier à modifier : /Framakey/licence-fr.txt
Une fois tes modifs faites et enregistrées : Sélectionde l'onglet du nsi > Menu exécution de notepad++ > Compiler le script
Cela va automatiquement faire appel à un compilateur sélectif qui transfèrera la demande au compilateur NSIS.
Tu verras une invite de commande avec le résultat de la compilation. Il te sera juste demandé de valider par Entrée à la fin de la compilation.
Tu trouveras alors au même niveau que start.exe l'installeur NSIS tant recherché.
Il ne te restera alors qu'à le redistribuer.
Comme tu pourras le voir lignes 133 à 144 du fichier nsi, pas de magie vaudou, simplement une extraction de quelques fichiers.

Je suis reparti du fichier nsi de la Framakey mais il faudrait y faire un peu de ménage pour l'adapter parfaitement à ton cas (suppression des lignes 108 à 114, 119 à 129, 136 et nettoyage des Functions et du nsh)


PS : concernant l'exécution automatique, certains antivirus comme Kaspersky la désactive d'office pour éviter les problèmes.
Vécu : "J'ai une version crackée d'OpenOffice, c'est pour ça qu'elle est en anglais"
fat115

Avatar de l’utilisateur
Messages : 930
Géo : Ardèche ... du nord

Dim 16 Mai, 2010 19:54

Bonjour

et merci pour cette réponse détaillée et fort bien documentée.

Je pense avoir trouvé où était le problème : l'archive de FK1.11 se dézippait à priori mal sur mon ordi (je ne faisais pas d'installation mais un dézippage et je supprimait les répertoire inutiles "$...") et certains fichiers ne se retrouvaient pas sur mon disque dur car la profondeur de fichiers était trop importante (et pleins de fichiers étaient de taille différentes... vraisemblablement modifiés par le dézippage).

C'est ce qui pourrait expliquer pourquoi les clés installées avec l'.exe de FK1.11 et celles installées à partir de l'archive modifiée avaient des fonctionnements différents . J'ai donc laissé tomber les dézippeurs habituels (y compris 7zip pour Linux) et ai récupéré que les fichiers installés par le .exe de FK 1.11 sur une clé.

Maintenant la même clé (élaborée à partir des archives sur mon disque dur) fonctionne à l'identique quel que soit l'ordinateur et comme la FK1.11 d'origine. C'est déjà un grand pas en avant.

Pour le déploiement des 200 clés, nous devons les charger nous même (équipe d'une dizaine de volontaires sur 4 salles informatiques différentes) et nous devons également remettre à disposition un fichier d'installation simplifié sur le site académique. C'est surtout pour la seconde raison que nous avons besoin d'un exécutable de type NSIS.

Je vais m'atteler à votre documentation avec les collègues,

encore merci,

bien cordialement,

bionet
Bionet

Messages : 40

Dim 16 Mai, 2010 20:26

C'est bon, tout marche (toutes les solutions proposées). Bon, il faut être sous Windows pour les solutions avec 7zip et NSIS mais ça fonctionne très bien. J'essaierai de voir comment fonctionne le cross-compiler sous GNU Linux pour essayer de générer les FK1.12 ou FK2.0 adaptées directement depuis mon système de prédilection.

Encore merci au professionnalisme de fat115,

bien cordialement,

bionet
Bionet

Messages : 40

Dim 16 Mai, 2010 22:20

Créer un autoextractible 7zip sous Linux avec p7zip :
- récupérer le fichier 7z.sfx à partir d'une installation sous Windows (ou à partir de l'exe d'installation désarchivé avec p7zip :wink: )
- le copier dans le dossier /usr/libexec/p7zip puis faire un chown root:root et un chmod 755
- utiliser 7z en ligne de commande pour créer l'autoextractible. Exemple : 7z a -sfx7z.sfx test.exe ./chemin_vers_le_contenu/*

Créer un installeur avec le module modifié 7z :
- créer l'archive 7z
- si besoin, récupérer le module à jour : http://7zsfx.solta.ru/files/7zsd_tools_130_1501_ru.7z
- concaténer le module, le fichier de conf et l'archive : cat 7ZSD_All.sfx config.txt archive.7z >> mon_exe.exe

Créer un installeur NSIS depuis Nunux :
- installer nsis : yum install mingw32-nsis ou apt-get install nsis
- se placer dans le dossier du nsi et lancer un makensis mon_fichier.nsi
Bon il y a quelques précautions à prendre notamment bien vérifier la casse des fichiers externes dans le NSI (Languages files et non Languages Files, par exemple) et récupérer tous les includes qui vont bien ... et qui sont déjà dans le pack de portabilisation :wink:
Vécu : "J'ai une version crackée d'OpenOffice, c'est pour ça qu'elle est en anglais"
fat115

Avatar de l’utilisateur
Messages : 930
Géo : Ardèche ... du nord

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit