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