Effectivement, le problème est l'appel imbriqué de WAPT.install
dans une procédure install.
Pour faire l'installation, on importe le module setup.py en tant
que __waptsetup__
Ce code n'est pas complètement réentrant et la variable
uninstallkey est conservée.
Donc le uninstallkey du sous-paquet est propagée au paquet du
dessus...
Ce problème n'existe pas avec les dépendances classiques car
install est appelé séquentiellement et le module setup.py déchargé
entre chaque appel...
j'ai fait un correctif dans la branche master du git [1] en
donnant un nom aléatoire à chaque module setup.py importé. ça
semble résoudre le problème.
Il peut y avoir des effets de bords à changer, cela en particulier
pour le débuggage des paquets dans PyScripter. Mes tests sont
concluants, à voir à plus grande échelle...
Hubert
[1]
https://github.com/tranquilit/WAPT/commit/96cb3ec98696e9c237d355842eb8e85e3352c00b
Le 24/11/2015 16:53, Fonteneau Simon
a écrit :
Effectivement après beaucoup de test
je confirme le bug.
Donc pour résumer :
Je fait un paquet aiz-wireshark
Qui contient :
uninstallkey = []
def install():
if iswin64():
WAPT.install('aiz-wiresharkx64')
else:
WAPT.install('aiz-wiresharkx86')
def uninstall():
if iswin64():
WAPT.remove('aiz-wiresharkx64')
else:
WAPT.remove('aiz-wiresharkx86')
Aucune dépendance n'est configurée dans ce paquet dans la
partie control.
----
Ensuite dans le paquet aiz-wiresharkx64 et aiz-wiresharkx86
j'indique dans la partie dépendance le paquet aiz-winpcap
----
Maintenant si je lance la désinstallation de aiz-wireshark le
paquet aiz-winpcap va être désinstallée.
Ce qui n'est pas le comportement normal.
Simon
Le 24/11/2015 15:18, Fonteneau
Simon a écrit :
Je test chez moi du coup pour voir
Le 24/11/2015 15:08, Bastien
HERMITTE a écrit :
Je viens de tester ce cas, et Winpcap n'est pas désinstallé.
C'est donc bien WAPT qui le désinstalle.
Bastien
Le 24/11/2015 14:42, Fonteneau
Simon a écrit :
Ce que je vais dire est peut être une bêtise mais pour le
test ca peut être interessant:
Si vous ne configurer pas de uninstall pour le paquet
Winpcap
Puis vous mettez a jour Winpcap sur le poste et ensuite
vous désinstallez via le paquet wireshark via wapt.
Nous saurons rapidement si le problème vient de wireshark
ou bien de wapt. Si dans ce cas précis winpcap est encore
désinstallée alors ce n'est pas wapt qui désintalle
winpcap (puisqu'il sans uninstall il ne sait pas le
désinstaller)
Simon
Le 24/11/2015 12:46, Bastien
HERMITTE a écrit :
Bonjour,
C'est une uninstallkey, et tous mes tests sont fait en
ligne de commande avec le compte administrateur.
J'exécute la commande récupérée par un "wapt-get
list-registry wireshark", soit celle qu'appelle WAPT il
me semble.
Je rajoute juste le paramètre silencieux /S qui est
rajouté par WAPT.
Cordialement,
Bastien
Le 24/11/2015 11:53,
Fonteneau Simon a écrit :
C'est une uninstallstring ou une uninstallkey de
configurée dans le paquet wireshark ?
Ensuite il y a peut être une différence entre
l'execution en compte system et l’exécution en compte
utilisateur(administrateur)
Si vous avez renseignée une uninstallkey , wapt va
chercher la commande a exécuter dans :
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\keyname
Exécutez vous bien la même commande ?
Simon

Le 24/11/2015 11:45,
Bastien HERMITTE a écrit :
Bonjour,
C'est justement ce que j'ai pensé au début, mais
après test ce n'est pas le cas :
- lorsque j'appelle le désinstalleur de Wireshark en
ligne de commande, il ne me désinstalle pas Winpcap
- lorsque je désinstalle Wireshark via le paquet
réel (et pas le meta paquet), il ne me désinstalle
pas Winpcap non plus
D'où mon questionnement sur un bug éventuel.
Cordialement,
Bastien
Le 24/11/2015 01:11, Fonteneau Simon a écrit :
Pour moi c'est normal
Je pense que c'est parce-que la uninstall de
wireshark est prévu pour uninstall aussi wincap
Mais comme wincap n'a pas été désinstallé par
wapt, le paquet est toujours dans la liste des
paquets installé.
Du coup a mon avis il faudrait revoir la partie
uninstall du paquet wireshark pour qu'elle ne
désinstalle pas wincap ou alors mieux qu'elle
fasse un forget a la fin pour justement oublier le
paquet wincap:
reader = WAPT.is_installed('my-wincap')
if reader :
WAPT.forget_packages(reader.package)
Simon
Le 23/11/2015 18:04, Bastien HERMITTE a écrit :
Bonjour,
Je rencontre un problème avec un meta paquet et
je me demande si ce n'est pas un bug de WAPT.
J'ai 3 paquets pour le logiciel wireshark :
- un meta paquet avec seulement des conditions
pour installer le paquet correspondant à
l'architecture
- un paquet x86
- un paquet x64
Les deux paquets x86 et x64 ont en dépendance le
paquet winpcap.
Tout fonctionne bien si je ne passe pas par le
meta paquet.
Mais :
- lorsque j'installe wireshark via le meta
paquet, il m'installe bien le paquet winpcap
- lorsque je désinstalle wireshark via le meta
paquet, il me désinstalle le paquet winpcap mais
celui-ci reste dans la liste des paquets
installés
Si je ne m'abuse, la désinstallation via le meta
paquet ne devrait pas me désinstaller le paquet
winpcap.
Merci d'avance.
Cordialement,
Bastien
_______________________________________________
WAPT mailing list
WAPT@lists.tranquil.it
http://lists.tranquil.it/listinfo/wapt
_______________________________________________
WAPT mailing list
WAPT@lists.tranquil.it
http://lists.tranquil.it/listinfo/wapt
_______________________________________________
WAPT mailing list
WAPT@lists.tranquil.it
http://lists.tranquil.it/listinfo/wapt
_______________________________________________
WAPT mailing list
WAPT@lists.tranquil.it
http://lists.tranquil.it/listinfo/wapt
_______________________________________________
WAPT mailing list
WAPT@lists.tranquil.it
http://lists.tranquil.it/listinfo/wapt
_______________________________________________
WAPT mailing list
WAPT@lists.tranquil.it
http://lists.tranquil.it/listinfo/wapt
_______________________________________________
WAPT mailing list
WAPT@lists.tranquil.it
http://lists.tranquil.it/listinfo/wapt
_______________________________________________
WAPT mailing list
WAPT@lists.tranquil.it
http://lists.tranquil.it/listinfo/wapt