Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/11/2009, à 02:38

billou

[Résolut] Problème avec "preinst" et remplacement de fichier

Salut, ça fait plus de deux heures que je me casse les dents sur un paquet deb.

Je cherche à me créer un Fix pour OpenArena, ce dernier ayant tendance à déconner pas mal niveau son (grésillements), j'ai bien trouvé la solution à mon problème, mais ce dernier en crée de nouveau avec l'utilisation du son sur le système.

J'ai donc choisit d'utiliser un script créant le fichier nécessaire juste avant l'exécution d'openarena, et le supprimant quand je quitte le jeu.

Voulant automatiser tout ça, je me suis créé un paquet Deb, avec lequel je comptais modifier le fichier openarena.desktop pour éviter de trop pourrir le tout, et rediriger ce dernier vers mon script (executable) qui pointera vers l'executable d'openarena, sans que ce dernier ne soit touché/renommé.

Dossier DEBIAN :

fichier "control" :

Package: openarena-fix-audio
Version: 1.0
Architecture: i386
Maintainer: Camille.D
Depends: openarena
Section: games
Priority: optional
Description: Fix audio pour OpenArena
 Ce paquet contient un fix pour les grésillements du son avec OpenArena
 .
 Ce fix est sous licence libre, un critère garant de vos droits et libertés.

fichier "preinst" :

#!bin/sh
rm /usr/share/applications/openarena.desktop

Dossier /usr/bin :

fichier openarena-fix (script executable)

#!/bin/sh
#création du fix temporaire
echo "pcm.!default {
type plugin
card 0
}

ctl.!default {
type hw
card 0
}

pcm.!default {
type plug
slave.pcm "dmixer"
}

pcm.dmixer {
type dmix
ipc_key 1024
slave {
  pcm {
   type hw
   card 0
  }
  rate 44100
  period_time 0
  period_size 2048
  buffer_size 32768
}
slowptr 1
}" > ~/.asoundrc

#lancement de openarena
openarena

#suppression du fichier .asoundrc:
rm ~/.asoundrc

Dans le dossier /usr/share/applications

Fichier "openarena.desktop"

[Desktop Entry]
Name=OpenArena
Comment=A fast-paced 3D first-person shooter, similar to id Software Inc.'s Quake III Arena
Exec=openarena-fix
Terminal=false
Icon=openarena128
Type=Application
Categories=Game;ArcadeGame;
Comment[fr_FR.UTF-8]=Un jeu de shoot 3D à la première personne, similaire à Quake III Arena

Un coup de chown root:root  et de chmod 4755 sur tous les dossier sauf "DEBIAN"

Puis je crée le paquet :

dpkg --build ~/OpenArena-Fix OpenArena-Fix.deb

Enfin, mon paquet est créé, et je tente de l'installer :

dpkg -i OpenArena-Fix.deb

Et j'obtiens :

Dépaquetage de openarena-fix-audio (à partir de OpenArena-Fix.deb) ...
dpkg (sous-processus) : impossible d'exécuter nouveau script pre-installation: Aucun fichier ou dossier de ce type
dpkg : erreur de traitement de OpenArena-Pack.deb (--install) : le sous-processus nouveau script pre-installation a retourné une erreur de sortie d'état 2
Des erreurs ont été rencontrées pendant l'exécution :
OpenArena-Pack.deb

Je tente alors une suppression manuelle du fichier d'origine qui je pense fout la merde (openarena.desktop d'origine) et même erreur.

Je tente alors de supprimer le fichier "preinst" dans le dossier DEBIAN et j'obtiens :

Dépaquetage de openarena-fix-audio (à partir de OpenArena-Fix.deb) ...
dpkg : erreur de traitement de OpenArena-Pack.deb (--install) :
 tentative d'écrasement de '/usr/share/applications/openarena.desktop', qui est aussi dans le paquet openarena 0:0.8.1-4
Traitement des actions différées (« triggers ») pour « desktop-file-utils »...
Des erreurs ont été rencontrées pendant l'exécution :
 OpenArena-Pack.deb

Et ce malgré la suppression manuelle du fichier "openarena.desktop" d'origine auparavant !!


Franchement je sature là... Si quelqu'un pouvait m'aider... En plus le pense que ça aiderais plus d'un joueur, beaucoup de monde rencontre des problèmes de grésillement avec OpenArena...

Dernière modification par billou (Le 24/11/2009, à 03:26)

Hors ligne

#2 Le 21/11/2009, à 10:59

lawl

Re : [Résolut] Problème avec "preinst" et remplacement de fichier

Pourquoi dans le café !?
A force de le fréquenté tu a oublié que les problèmes on les expose dans le reste du forum !

Hors ligne

#3 Le 21/11/2009, à 13:17

HymnToLife

Re : [Résolut] Problème avec "preinst" et remplacement de fichier

Comme le message te le dit, un paquet n'a pas le droit de supprimer des fichiers qui appartiennent à d'autre paquets. La solution, c'est d'utiliser dpkg-divert dans ton preinst, dans ce genre là :

dpkg-divert --package openarena-fix-audio --divert /usr/share/applications/openarena.desktop.broken --rename /usr/share/applications/openarena.desktop

- Rodrigue, as-tu du cœur ?
- Non, mais j'ai du pique !

Hors ligne

#4 Le 21/11/2009, à 14:16

billou

Re : [Résolut] Problème avec "preinst" et remplacement de fichier

Je viens d'essayer HymnToLife et j'obtiens encore une erreur sad

Dépaquetage de openarena-fix-audio (à partir de .../OpenArena-Fix.deb) ...
dpkg (sous-processus) : impossible d'exécuter nouveau script pre-installation: Aucun fichier ou dossier de ce type
dpkg : erreur de traitement de /media/Perso/Systèmes/OpenArena-Fix.deb (--install) :
 le sous-processus nouveau script pre-installation a retourné une erreur de sortie d'état 2

Et le comble c'est que ta commande, dans un terminal, avec un ptit sudo... Elle fonctionne !

Hors ligne

#5 Le 21/11/2009, à 14:31

HymnToLife

Re : [Résolut] Problème avec "preinst" et remplacement de fichier

Peut-être un problème de PATH, essaie avec /usb/bin/dpkg-divert (et assure-toi que le fichier .desktop est bien là, donc supprime la diversion si tu l'as créée manuellement).


- Rodrigue, as-tu du cœur ?
- Non, mais j'ai du pique !

Hors ligne

#6 Le 21/11/2009, à 15:05

billou

Re : [Résolut] Problème avec "preinst" et remplacement de fichier

Je viens d'essayer, j'ai bien supprimé la diversion, et le fichier openarena.desktop d'origine est bien au bon endroit, et j'obtiens encore la même erreur sad

Ptain c'est dingue... C'est quoi ce bordel?

Hors ligne

#7 Le 21/11/2009, à 16:42

HymnToLife

Re : [Résolut] Problème avec "preinst" et remplacement de fichier

Faudrait que je teste chez moi, mais je suis en mode révisions, là. Dans une semaine, si t'a pas trouvé avant. tongue


- Rodrigue, as-tu du cœur ?
- Non, mais j'ai du pique !

Hors ligne

#8 Le 21/11/2009, à 17:13

billou

Re : [Résolut] Problème avec "preinst" et remplacement de fichier

Arf, dans une semaine y'a l'install party chez moi, et je dois avoir finit toutes mes modifications/ajouts/patchs avant ça.

En tout cas merci du coup de main, j'installerais ça à la main via le chroot, en attendant d'avoir une solution plus propre, j'espère que toi (ou quelqu'un d'autre) pourra m'éclairer, car là je sature tongue

Merci en tout cas smile

Hors ligne

#9 Le 21/11/2009, à 18:58

Link31

Re : [Résolut] Problème avec "preinst" et remplacement de fichier

Ton script pour ~/.asoundrc est une très mauvaise idée... Si tu tiens vraiment à faire ce genre de manipulation dans les préférences des utilisateurs et à leur insu, fais au moins un backup du fichier ~/.asoundrc d'origine et restaure-le après.

Hors ligne

#10 Le 21/11/2009, à 19:12

billou

Re : [Résolut] Problème avec "preinst" et remplacement de fichier

J'y avais songé link, mais bon... Tant que le reste n'est pas réglé...

Je compte également intégrer un petit bout de script vérifiant si compiz est lancé, et dans ce cas, le désactivera, tout en créant également un fichier dans /tmp
Une fois le jeu quitté, le script vérifiera si le fichier est présent dans /tmp, pour réactiver compiz ensuite.

Hors ligne

#11 Le 22/11/2009, à 17:56

billou

Re : [Résolut] Problème avec "preinst" et remplacement de fichier

Up?!

Hors ligne

#12 Le 23/11/2009, à 05:13

billou

Re : [Résolut] Problème avec "preinst" et remplacement de fichier

Up?!

Hors ligne

#13 Le 24/11/2009, à 00:22

benbugohit

Re : [Résolut] Problème avec "preinst" et remplacement de fichier

alors là :

billou a écrit :
#!bin/sh
rm /usr/share/applications/openarena.desktop

Ton problème est dans ton script de préinstall !
il manque le "/" entre le "!" et le "bin", non ?

#!/bin/sh
rm /usr/share/applications/openarena.desktop

et en vérifiant que le fichier à supprimer existe :

#!/bin/sh
[ -e /usr/share/applications/openarena.desktop ] && rm /usr/share/applications/openarena.desktop

un petit

help test

pour comprendre ce

[ -e /usr/share/applications/openarena.desktop ] && rm

Dernière modification par benbugohit (Le 24/11/2009, à 00:23)


####   |  - Sur un ordi depuis l'âge de 9 ans
(o_o)    | - linuxien depuis 2002 (debian potato, mandrake 8, gentoo 2004.0,...)
..|~|..   | - ubuntu 10.10 sur Dell Vostro 1310

Hors ligne

#14 Le 24/11/2009, à 01:08

billou

Re : [Résolut] Problème avec "preinst" et remplacement de fichier

Tout est réglé désormais, le fix pour les problèmes de grésillement avec OpenArena est prêt : http://forum.ubuntu-fr.org/viewtopic.php?pid=3091322

Dernière modification par billou (Le 24/11/2009, à 01:08)

Hors ligne

#15 Le 24/11/2009, à 02:09

benbugohit

Re : [Résolut] Problème avec "preinst" et remplacement de fichier

Nickel !
Et qu'est-ce qui a marché alors ?
Parce qu'on est 400 à avoir essayé de t'aider, alors pour faire avancer le chmilblick et connaître les aventures en détails, just'avant qu'on apprenne que le film est fini ?
Dire ta vérité et partager à la communauté ce qui a "réglé" ton soucis... cher adhérent de l'April wink

La liberté, ce n'est pas que se servir ou tourner le dos librement wink

PS : je viens de regarder le lien vers ton post, ok
Donc tu peux mettre "résolu" ?
Et ça confirme l'erreur du "!" :-p

Dernière modification par benbugohit (Le 24/11/2009, à 02:16)


####   |  - Sur un ordi depuis l'âge de 9 ans
(o_o)    | - linuxien depuis 2002 (debian potato, mandrake 8, gentoo 2004.0,...)
..|~|..   | - ubuntu 10.10 sur Dell Vostro 1310

Hors ligne

#16 Le 24/11/2009, à 03:14

billou

Re : [Résolut] Problème avec "preinst" et remplacement de fichier

Pas la peine de me faire la leçon, je sais bien tout ça, je comptais intervenir plus tard, mais en ce moment je suis très occupé (vous comprendrez pourquoi bientôt...)

Puis c'est pas comme si je partageais rien hein... Y'a que voir le résultat du script.

Bref, pour la soluce, j'ai remplacé par ceci :

#!/bin/sh -e
dpkg-divert --package openarena-fix --divert /usr/share/applications/openarena.desktop.broken --rename /usr/share/applications/openarena.desktop
exit 0

La commande reste la même, mais j'ai mis #!/bin/sh -e à la place de #!/bin/sh et j'ai rajouté un exit 0 à la fin du script

Pour les curieux, voici le fichier postrm, pour prendre en compte également la suppression :

#!/bin/sh -e
dpkg-divert --package openarena-fix --rename --remove /usr/share/applications/openarena.desktop
exit 0

J'ai trouvé ces deux solutions en fouinant dans les paquets des dépôts officiels, j'ai rapidement noté cette différence, et ai donc testé. smile

Hors ligne

#17 Le 24/11/2009, à 10:36

benbugohit

Re : [Résolut] Problème avec "preinst" et remplacement de fichier

hmm respect !
autant pour moi pour mon post précédent !
et merci pour les éclaircissements !


####   |  - Sur un ordi depuis l'âge de 9 ans
(o_o)    | - linuxien depuis 2002 (debian potato, mandrake 8, gentoo 2004.0,...)
..|~|..   | - ubuntu 10.10 sur Dell Vostro 1310

Hors ligne