Tant qu'à faire, je vais détailler le tout.
Le script NSI de création du lanceur permet de créer 3 versions différentes (cf mon premier post).
Il suffit pour ça de décommenter des !define dans le NSI ou de les passer en argument à makensis. Lire le fichier
\Other\Source\readme.fr.txt pour plus de détails.
Pour simplifier, j'ai créé un petit script AutotHotkey pour passer d'un lanceur à l'autre (
\Other\Tools\Selecteur.exe). En pratique, il se contente de copier un des lanceurs inclus dans le dossier vers la racine de l'appli portable.
Il ne peut donc y avoir qu'un seul type de lancement à la fois !LibreOfficePortable.exe => version de base
LibreOfficePortable_RO.exe => version pour média en lecture seule : CD, DVD, lecteur réseau sans droits d'écriture, clé USB verrouillée, ...
LibreOfficePortable_N.exe => version pour lecteur réseau mais avec sauvegarde des préférences de l'utilisateur.
Comment ça marche ?Pour la version de base, comme n'importe quelle appli portable :
Le lanceur modifie quelques fichiers pour tenir compte du changement d'emplacement du logiciel puis lance le programme en lui spécifiant que le profil à utiliser est dans \Data\user.
Pour la version en lecture seule :Le lanceur commence par copier le profil à utiliser dans un emplacement temporaire (déterminé par NSIS), fait quelques modifs de fichiers et lance le logiciel en lui précisant où est le profil.
En sortie du logiciel, le profil est automatiquement effacé. Quelles que soient les modifications apportées, elles seront perdues au lancement suivant. Normal pour un lanceur en lecture-seule
Pour la version réseau :Je vais partir de la configuration suivante =>
*un lecteur réseau J: contient le(s) logiciel(s) portable(s) dans un dossier Progs,
les utilisateurs n'ont que des droits en lecture sur J:\Progs\LibreOfficePortable et ses sous-dossiers
chaque utilisateur dispose d'un espace de stockage via un lecteur réseau nommé P: ,
le profil utilisateur est (ou sera) stocké dans P:\Profile\LibreOffice\. Cette valeur est inscrite en dur dans le lanceur, il est bien sûr possible de la modifier via un fichier ini, voir le readme.fr.txt pour plus d'infos.
le dossier "Mes Documents" de chaque utilisateur est redirigé vers P: .
Pourquoi ces valeurs ? Parce qu'elles correspondent au cas réel pour lequel le lanceur a été originellement conçu (utilisation de Harp dans l'académie de Grenoble).
Là encore, rien n'est figé, tout est paramétrable via un fichier ini.
Je lance donc J:\Progs\LibreOfficePortable\LibreOfficePortable.exe.
Il va vérifier que le profil utilisateur existe dans P:\Profile\LibreOffice\.
Si ce n'est pas le cas, il recopie le profil contenu dans J:\Progs\LibreOfficePortable\Data\ vers P:\Profile\LibreOffice\
Il fait quelques modifs de fichiers puis lance le logiciel en lui indiquant d'utilisant le profil utilisateur contenu dans P:\Profile\LibreOffice\
En sortie, le profil n'est pas effacé. Chaque utilisateur garde donc ses préférences partout sur le réseau.
Chacun peut également installer ses propres extensions mais pas d'extensions globales (besoin des droits en écriture sur J: )
L'administrateur peut rajouter simplement une extension globale en la décompressant dans J:\Progs\LibreOfficePortable\App\LibreOffice\share\extensions\nom_extension. Toutefois, il semble que cela oblige les utilisateurs à lancer deux fois LibO pour le prendre en compte.
Gros intérêt pour l'admin réseau : une seule version à tenir à jour.
Gros intérêt pour les utilisateurs : ils retrouvent toujours "leur" LibreOffice quel que soit le poste (sous Windows) à partir duquel ils se connectent.
Avis aux AI-PRT de l'Académie de Grenoble (et aux utilisateurs de Harp en général) :Par défaut, un utilisateur n'a pas les droits en écriture sur son dossier P:\Profile ce que je considère comme une aberration du-dit logiciel (la logique m'échappe). Je dispose d'un script AutoHotkey à copier et lancer sur le serveur qui repositionne les droits en contrôle total sur le dit dossier pour chaque utilisateur. Pour plus d'infos, me contacter par MP.
Autre point important :Par défaut la version portable normale définit le répertoire des documents dans ..\..\Data\Documents, soit le dossier des documents d'une Framakey non personnalisée. Les 2 autres versions utilisent le dossier "Mes Documents" de l'utilisateur.
Il s'agit d'ailleurs de la modif de fichiers mentionnées plus haut.
Là encore c'est personnalisable via le fichier ini.
Et voilà !
C'est plus clair là ?
EDIT :
Tant que je suis dans les détails.
Il s'agit d'une version réellement francophone : j'ai enlevé pratiquement toutes les autres langues, même le dictionnaire anglais qui est fournit en extension dans LibO. C'est en partie grâce à ça que je suis passé de +500Mo pour une install de LibO à ~180Mo.
L'autre astuce à consister à compresser tous les exe et dll grâce à upx. Les jar ont été recompressés au max grâce à 7zip.
Toujours pour gagner de la place, seul le thème d’icône "Oxygen" a été gardé.
J'ai ensuite rajouté 2 petites extensions : Espace insécable et Color2Rows
Vécu : "J'ai une version crackée d'OpenOffice, c'est pour ça qu'elle est en anglais"