|PAQUET] ZIMBRA-ZCO 9.0.0.1941 (x64 et x86)

Questions about WAPT Packaging / Requêtes et aides autour des paquets Wapt.
Règles du forum
Règles du forum communautaire
* English support on www.reddit.com/r/wapt
* Le support communautaire en français se fait sur ce forum
* Merci de préfixer le titre du topic par [RESOLU] s'il est résolu.
* Merci de ne pas modifier un topic qui est taggé [RESOLU]. Ouvrez un nouveau topic en référençant l'ancien
* Préciser version de WAPT installée, version complète ET numéro de build (2.2.1.11957 / 2.2.2.12337 / etc.) AINSI QUE l'édition Enterprise / Discovery
* Les versions 1.8.2 et antérieures ne sont plus maintenues. Les seules questions acceptées vis à vis de la version 1.8.2 sont liés à la mise à jour vers une version supportée (2.1, 2.2, etc.)
* Préciser OS du serveur (Linux / Windows) et version (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019)
* Préciser OS de la machine d'administration/création des paquets et de la machine avec l'agent qui pose problème le cas échéant (Windows 7 / 10 / 11 / Debian 11 / etc.)
* Eviter de poser plusieurs questions lors de l'ouverture de topic, sinon il risque d'être ignorer. Si plusieurs sujet, ouvrir plusieurs topic, et de préférence les uns après les autres et pas tous en même temps (ie ne pas spammer le forum).
* Inclure directement les morceaux de code, les captures d'écran et autres images directement dans le post. Les liens vers les pastebin, les bitly et autres sites tierces seront systématiquement supprimés.
* Comme tout forum communautaire, le support est fait bénévolement par les membres. Si vous avez besoin d'un support commercial, vous pouvez contacter le service commercial Tranquil IT au 02.40.97.57.55
Répondre
Vincent38
Messages : 16
Inscription : 22 mai 2023 - 12:13

17 nov. 2023 - 16:21

Bonjour

Je vous propose le(s) paquet(s) pour installer le connecteur outlook (v9.0.0.1937) pour ZIMBRA en x64 et x86 (en fonction de votre version d'office/outlook).

il y a un soucis avec le .msi, la clé "uninstallkey" déclarée n'est pas la bonne, elle ne matche pas avec celle réellement inscrite dans le registre, donc il faut la corriger, d'ou la modif dans le setup.py.


pour récupérer les .msi (x64 et x86):
https://www.zimbra.com/product/addons/z ... -download/


setup.py pour x64 :

Code : Tout sélectionner

# -*- coding: utf-8 -*-
from setuphelpers import *

r"""
Usable WAPT package functions: install(), uninstall(), session_setup(), audit(), update_package()

"""
# Declaring global variables - Warnings: 1) WAPT context is only available in package functions; 2) Global variables are not persistent between calls

uninstallkey = ["{E84234CB-FF68-4270-A7EE-422FA03B4E0E}"]

def install():
    # Declaring local variables

    # Installing the software
    print("Installing: ZimbraConnectorOLK_9.0.0.1937_x64.msi")
    install_msi_if_needed('ZimbraConnectorOLK_9.0.0.1937_x64.msi',key='{E84234CB-FF68-4270-A7EE-422FA03B4E0E}')

setup.py pour x86 :

Code : Tout sélectionner

# -*- coding: utf-8 -*-
from setuphelpers import *

r"""
Usable WAPT package functions: install(), uninstall(), session_setup(), audit(), update_package()

"""
# Declaring global variables - Warnings: 1) WAPT context is only available in package functions; 2) Global variables are not persistent between calls

uninstallkey = ["{C0A5C7CF-452B-4551-A9D5-CE41BC7831AF}"]

def install():
    # Declaring local variables

    # Installing the software
    print("Installing: ZimbraConnectorOLK_9.0.0.1937_x86.msi")
    install_msi_if_needed('ZimbraConnectorOLK_9.0.0.1937_x86.msi',key='{C0A5C7CF-452B-4551-A9D5-CE41BC7831AF}')
    

Chez moi ça fonctionne, mais j'ai un doute sur le fait de devoir indiquer 2 fois l'uninstallkey :D
Cdt
Dernière modification par Vincent38 le 10 janv. 2024 - 16:27, modifié 1 fois.
Vincent38
Messages : 16
Inscription : 22 mai 2023 - 12:13

10 janv. 2024 - 16:10

Bonjour!

Mise a jour pour la version v9.0.0.1941, uninstallkey a modifier dans le fichier setup.py :

pour x64 : {89D59DBA-173A-4D13-8AB9-606F132F70FE}

pour x86 : {7B50AD56-1BE7-4006-97E2-B6969930BB5F}

Cdt
Avatar de l’utilisateur
jpele
Messages : 153
Inscription : 04 mars 2019 - 12:01
Localisation : Nantes

12 janv. 2024 - 10:36

Bonjour,
J'ai crée le paquet à "l'aveugle", nous n'avons pas de quoi tester ce logiciel facilement pour le moment, pouvez-vous svp le tester et nous confirmer son bon fonctionnement, il est téléchargeable ici :
https://wapt.tranquil.it/wapt-testing/t ... EPROD.wapt

Sans votre confirmation le paquet ne sera pas automatiquement publié sur le Store.

Cordialement,
Jimmy
Vincent38
Messages : 16
Inscription : 22 mai 2023 - 12:13

12 janv. 2024 - 12:02

Bonjour
comme je m'y attendais, ça ne fonctionne pas, vu que, comme indiqué dans mon post, la clé d'installation spécifiée dans le msi par zimbra ne correspond pas a celle réellement utilisée.
du coup il se bloque a l'étape de vérification de la clé :

Code : Tout sélectionner

C:\Users\vmorey\Desktop>wapt-get install domoprod-zimbra-connector-outlook
Using config file: C:\Program Files (x86)\wapt\wapt-get.ini
installing WAPT packages domoprod-zimbra-connector-outlook
https://wapt1.addomo.domosolaris.com/wapt/domoprod-zimbra-connector-outlook_9.0.0.1941-2_x64_windows_PROD.wapt : 23071462 / 23071462 (100%) (79638 KB/s)
Installing domoprod-zimbra-connector-outlook(=9.0.0.1941-2)
Installing: ZimbraConnectorOLK_9.0.0.1941_x64.msi (9.0.0.1941)
Waiting for key: {E832D508-4385-452B-93CF-18D28BA6270B} to appear in Windows registry
suite du message aprés un Ctrl+C :

Code : Tout sélectionner

2024-01-12 12:06:11,693 CRITICAL Fatal error in install script: AttributeError: 'EWaptSetupException' object has no attribute 'returncode':
Traceback (most recent call last):
  File "C:\Users\vmorey\AppData\Local\Temp\waptmgpv8_ev\setup.py", line 9, in install
    install_msi_if_needed(
  File "C:\Program Files (x86)\wapt\common.py", line 4033, in new_func
    return func(*args, **kwargs)
  File "C:\Program Files (x86)\wapt\setuphelpers_windows.py", line 1416, in install_msi_if_needed
    error('MSI %s has been installed but the %s can not be found' % (msi,searchparam))
  File "C:\Program Files (x86)\wapt\waptutils.py", line 1892, in error
    raise EWaptSetupException('Fatal error : %s' % reason)
waptutils.EWaptSetupException: Fatal error : MSI ZimbraConnectorOLK_9.0.0.1941_x64.msi has been installed but the key {E832D508-4385-452B-93CF-18D28BA6270B} can not be found

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Program Files (x86)\wapt\common.py", line 4083, in install_wapt
    exitstatus = setup.install()
  File "C:\Users\vmorey\AppData\Local\Temp\waptmgpv8_ev\setup.py", line 14, in install
    if e.returncode == 1603:
AttributeError: 'EWaptSetupException' object has no attribute 'returncode'

2024-01-12 12:07:58,670 CRITICAL Package domoprod-zimbra-connector-outlook [x64_fr_PROD] not installed due to errors : AttributeError: 'EWaptSetupException' object has no attribute 'returncode'

Results :

 === install packages ===
  domoprod-zimbra-connector-outlook [x64_fr_PROD] | domoprod-zimbra-connector-outlook (9.0.0.1941-2)

 === errors packages ===
  domoprod-zimbra-connector-outlook [x64_fr_PROD] | domoprod-zimbra-connector-outlook (9.0.0.1941-2)
Cdt

PS : et pour tester vous-même, il suffit juste que vous ayez une installation d'office incluant outlook (en x64 ou x86 en fonction du packet, n'importe quelle version, office 2016, 2019 voir 365)
pas besoin de lancer outlook, si le packet s'installe c'est bon
Dernière modification par Vincent38 le 15 janv. 2024 - 12:06, modifié 1 fois.
Vincent38
Messages : 16
Inscription : 22 mai 2023 - 12:13

15 janv. 2024 - 12:05

j'ai prévenu zimbra de l'existence de ce problème vendredi, j’attend leur retour.
Vincent38
Messages : 16
Inscription : 22 mai 2023 - 12:13

21 févr. 2024 - 18:48

Bonjour

Bon, c'est vraiment vicieux en fait, il semble que le problème provienne du fait que l'installeur (.msi) de ZCO se modifie lui-même quand il détecte qu'il est lancé sur une machine n'utilisant pas une version anglaise de windows.

en effet, le .msi est multi-langue, y compris pour le langage du setup lui-même.
il n'y a qu'un seul fichier .msi, mais le lancer sur un windows anglais fait apparaitre le texte d'installation (info sur le copyright, la licence & co, nom des boutons etc...) en anglais, et le lancer sur un windows français fait apparaitre ces mêmes informations en français.
mais cette modification fait que l’installeur génère/utilise un nouveau "product code" (ce n'est pas uniquement la clé de désinstallation qui change, mais toutes les clés correspondant a ZCO dans le registre) différent de celui inscrit dans les information du .msi.

et comme wapt utilise la clé déclarée dans le .msi par défaut, forcement ca ne fonctionne pas.

je ne sais pas trop comment résoudre ca, peut-être que zimbra pourra résoudre le problème, sinon votre outil (luti) est-il capable d'effectuer une installation automatique du .msi pour récupérer la bonne clé et l'injecter dans le paquet avant de le pousser sur le store?

Cdt
bastien30
Messages : 2
Inscription : 08 mars 2024 - 15:21

08 mars 2024 - 15:47

Bonjour,

Je viens de tomber sur ce topic, j'ai justement fait un paquet pour le ZCO très récemment, en me basant sur celui du store TIS.

Mon paquet est multi-architecture et intègre les deux versions, 32bits et 64bits.
La raison est simple, sur un poste 64bits avec un Outlook 32bits d'installé, le paquet en 64bits sera en erreur car le ZCO ne voudra pas s'installer.

Mon paquet détecte la présence d'un Outlook 32bits et installe le ZCO qui correspond (il y a très certainement plus propre à faire au niveau de la détection du Office).
De plus, je définis quelques paramètres du ZCO via le registre (les mêmes paramètres que l'on peut utiliser pour personnaliser le MSI, mais je n'avais pas envie de devoir le refaire à chaque fois :D ) : la désactivation des mises à jour, l'adresse et le port du serveur, l'utilisation de SSL, la désactivation des alias dans la GAL et la désactivation de la synchronisation des signatures.
A adapter en fonction des besoins (il y a d'autres paramètres personnalisables dans cette clé de registre).

Pour palier le fait que l'uninstallkey change en fonction de la langue, j'utilise une fonction uninstall() qui récupère l'uninstallkey du ZCO installé pour le désinstaller. Je n'utilise pas la fonction install_msi_if_needed() du coup.

Pour finir, la seule contrainte est que la version du paquet correspond à la version du ZCO 64bits. S'ils sortent des numéros de versions différents sur les deux architectures, alors ça pourrait poser problème (mais il y a peu de chance que ça arrive je pense).

Voici le code du setup.py :

Code : Tout sélectionner

# -*- coding: utf-8 -*-
from setuphelpers import *
from setupdevhelpers import *

def install():        
    # Check architecture and if Office is 32bits on 64bits system
    if is32() or isdir(makepath(programfiles32, r'Microsoft Office', r'root')):
        print(r'INFO: x86 installation detected')
        bin_name = 'ZimbraConnectorOLK_x86.msi'
    else:
        bin_name = 'ZimbraConnectorOLK_x64.msi'
    
    installed_zco = installed_softwares('Zimbra Connector for Microsoft Outlook')
    if not installed_zco or installed_zco[0]['version'] < Version(control.get_software_version(), 4) or WAPT.options.force :
        try:
            # Installing the software
            run(r'msiexec /qn /norestart /i %s' % bin_name, timeout=600)
        except Exception as e:
            if e.returncode == 1603:
                print(f'INFO: Microsoft Outlook needs to be installed.')
                error(e)
            else:
                error(e)
    else:
        print('%s version %s is already installed, skipping...' % (control.name, installed_zco[0]['version']))
    
    # Customize installation
    with reg_openkey_noredir(HKEY_LOCAL_MACHINE, r'SOFTWARE\Zimbra', sam=KEY_WRITE, create_if_missing=True) as key:
        reg_setvalue(key, 'SkipVersionUpgrade', '65535', REG_SZ)  # disable auto-update
        reg_setvalue(key, 'ZimbraServerName', 'smtp.mydomain.tld', REG_SZ)  # Zimbra server name
        reg_setvalue(key, 'ZimbraServerPort', 443, REG_DWORD)  # Zimbra server port
        reg_setvalue(key, 'ZimbraConnectionMethod', 1, REG_DWORD)  # use SSL
        reg_setvalue(key, 'GalSyncDisableAliases', 1, REG_DWORD)  # disable alias in GAL
        reg_setvalue(key, 'SigSyncEnabled', 0, REG_DWORD)  # disable signature sync

def uninstall():
    if installed_softwares('Zimbra Connector for Microsoft Outlook'):
        key = installed_softwares('Zimbra Connector for Microsoft Outlook')[0]['key']
        run('msiexec /qn /norestart /X %s' % key)

def update_package():
    # Declaring local variables
    package_updated = False
    proxies = get_proxies()
    if not proxies:
        proxies = get_proxies_from_wapt_console()
    url = 'https://www.zimbra.com/product/addons/zimbra-connector-for-outlook-download/'

    # Getting latest version from official sources
    print('URL used is: %s' % url)
    for arch in 'x86', 'x64':
        print('Processing %s version...' % arch)
        for bs_search in bs_find_all(url, 'a', 'rel', 'noopener', proxies=proxies):
            if '_%s.msi' % arch in bs_search.get('href', ''):
                download_url = bs_search['href']
                latest_bin = download_url.split('/')[-1]
                version = latest_bin.split('_')[1]
                break
        print('Latest %s %s version is: %s' % (control.name, arch, version))
        print('Download URL for %s is: %s' % (arch, download_url))

        # Downloading latest binaries
        print('Downloading: %s' % latest_bin)
        latest_bin = '%s_%s' % (latest_bin.split('_')[0], latest_bin.split('_')[2])
        wget(download_url, latest_bin, proxies=proxies)

        # Checking version from file
        version_from_file = get_version_from_binary(latest_bin)
        if Version(version_from_file, 4) == Version(version, 4):
            print(f'INFO: Binary file version ({version_from_file}) corresponds to online version ({version})')
        else:
            error(f'ERROR: Binary file version ({version_from_file}) do NOT corresponds to online version ({version})')

    # Changing version of the package
    if Version(version, 4) > Version(control.get_software_version(), 4):
        print('Software version updated (from: %s to: %s)' % (control.get_software_version(), Version(version)))
        control.set_software_version(version)
        control.save_control_to_wapt()
        package_updated = True
    else:
        print('Software version up-to-date (%s)' % Version(version))

    # Validating or not update-package-sources
    return package_updated
Vincent38
Messages : 16
Inscription : 22 mai 2023 - 12:13

11 mars 2024 - 15:21

ouah, joli boulot!
j'y avais pensé, mais trop de boulot pour faire ca :D
je l'adopte, merci!!!
Vincent38
Messages : 16
Inscription : 22 mai 2023 - 12:13

12 mars 2024 - 00:35

sinon pour le pb de l'uninstall key pas correcte, j'ai eu un retour de zimbra, ils ont confirmés le pb, un bug a été ouvert, avec un peu de chance ca sera corrigé pour les prochaines version du ZCO. :D
bastien30
Messages : 2
Inscription : 08 mars 2024 - 15:21

12 mars 2024 - 15:29

Bonjour,

Merci pour le retour.
Effectivement s'ils le corrigent c'est pas plus mal.

Mais vu la vitesse de résolution des bugs chez eux, je pense que c'est pas pour tout de suite :roll:
Répondre