Cette page n'a pas encore d'étiquettes.
Apportez votre aide…

Ceci est une ancienne révision du document !


Intégrer une application Windows dans un paquet logiciel

Page en cours de construction, veuillez notez que cette manipulation peut différer partiellement en fonction des applications visées, et sera donc à adapter aux besoins requis.

Pour la petite histoire, cette manipulation me trottait dans la tête depuis un petit moment, et à force d'aide et de recherches, j'ai finit par trouver quelques réponses sur le forum PlayOnLinux, je remercie d'ailleurs Tinou de m'avoir donné quelques indications, n'étant pas développeur pour deux sous.

Très clairement, le but recherché est l'intégration d'une application Windows au sein d'un environnement Linux, telle une application Linux, pas question donc de devoir avoir un menu wine, ou playonlinux, ou de dépendre de l'installation de ces programmes pour exécuter les logiciels ciblés, on recherchera donc à installer le programme et son environnement d’exécution dans son propre répertoire, et à avoir un fichier caché dans le dossier utilisateur qui contiendra fichiers de configurations, sauvegarde & cie du programme ciblé.

Ainsi, le programme en question sera installable en seulement quelque clics, ne nécessitera pas la réinstallation ou certaines reconfiguration d’exécutables, base de registres, ou librairies, du prêt à l'emploi, pour faire simple.

C'est une condition obligatoire pour créer le paquet prêt à l'emploi, vous devez déjà disposer d'un préfixe wine (propre) sur votre machine dédié exclusivement au logiciel/jeu ciblé, et ce dernier devra déjà être pleinement fonctionnel (dépendances du logiciel windows installées, exécutable patché, etc…) et ça fonctionnera aussi bien pour les préfixes issus de wine, accessibles dans /home/votre-user/.wine, que dans /home/votre-user/PlayOnLinux/wineprefix

Plus généralement, un préfixe contient généralement les dossiers "dosdevices" "drive_c" "harddiskvolume0" , les fichiers "system.reg" "user.reg" "userdef.reg", et un fichier caché ".update-timestamp"

Une fois que vous avez trouvé son dossier d'origine, vous allez copier son contenu dans /opt/catégorie-de-votre-programme/nom-de-votre-programme/prefixe

Concernant les catégories de programmes, afin que la hiérarchie des dossiers reste homogène pour tout le monde et en cas d'échange de paquets, je vous conseille de diviser les possibilités en 7 catégories (comme le menu Gnome), avec le nom anglais. (Par exemple "accessories, games, internet, etc…)

Nous accédons désormais à une autre étape importante, de base, wine ne permet pas à tous les utilisateurs d'un système de pouvoir exécuter un préfixe dont les droits appartiennent à un autre utilisateur. La modification proposée va permettre d'outrepasser cette limite, afin que tous les utilisateurs puissent y avoir accès ensuite ! :-)

Tout d'abord, vous devrez récupérer les sources de wine, de la version désirée, ici ⇒ http://www.ibiblio.org/pub/linux/system/emulators/wine/

Dans mon cas, je choisit donc de télécharger wine-1.3.26.tar.bz2, dernière version en date

wget http://www.ibiblio.org/pub/linux/system/emulators/wine/wine-1.3.26.tar.bz2

Ensuite je décompresse

bsdtar -xf wine-1.3.26.tar.bz2

Et je me place dans le dossier des sources de wine

cd wine-1.3.26

Ensuite, il est nécessaire d'éditer 3 fichiers

gedit libs/wine/config.c
gedit dlls/ntdll/server.c
gedit server/request.c

Dans ces 3 fichiers, vous devez rechercher les termes "is not owned by you" contenant peu avant l'occurence "fatal_error" que vous devrez à chaque fois remplacer par "printf", dans mon cas, j'ai aussi pris la précaution de remplacer la valeur "fatal_error" des allocutions "must not be accessible by other users", cette dernière faisant référence aux droits des utilisateurs

if (st.st_mode & 077) printf( "'%s' must not be accessible by other users\n", serverdir );

Une fois ceci fait, nous pouvons enfin passer à la compilation.

Dans l'exemple ci dessous, vous devez adapter la commande au chemin choisit du dossier qui contiendra votre préfixe wine, vous pouvez également y rajouter l'option –disable-win16 s'il ne s'agira pas d'un vieux programme 16bits, et pour le "make" l'option -j3 si votre processeur dispose de 2 cœurs, -j8 s'il en a 7, etc… Ça permettra d'exploiter pleinement ce dernier pour compiler plus vite ;-)
./configure --prefix="/opt/catégorie-de-votre-programme/nom-de-votre-programme/.wine/version-choisie-de-wine"

Premièrement, on lance la compilation des dépendances propres au fonctionnement de wine

make depend

Ensuite on lance la compilation de wine

make

Une fois celle ci terminée (ce qui devrait prendre un peu de temps), il n'y a plus qu'à installer les fichiers dans le répertoire choisit précédemment

make install

Vous devriez maintenant retrouver tous les fichiers liés à cette version de wine modifié dans "/opt/catégorie-de-votre-programme/nom-de-votre-programme/.wine/version-choisie-de-wine/"

  • integrer-applications-windows-dans-paquets-logiciels.1313671639.txt.gz
  • Dernière modification: Le 15/12/2011, 15:19
  • (modification externe)