tis-thunderbird 52.2.0-15

  • package : tis-thunderbird
  • version : 52.2.0-15
  • description : Client de messagerie email POP IMAP LDAP
  • maintainer : TIS <technique@tranquil-it-systems.fr>
  • date : 2017-07-12 15:03:05
  • signer : TRANQUIL IT SYSTEMS
  • signature_date : 20170712-150305
  • min_os_version :
  • min_wapt_version :

setup.py

#!/usr/bin/python
# -*- coding: utf-8 -*-
# -----------------------------------------------------------------------
#    This file is part of WAPT
#    Copyright (C) 2013  Tranquil IT Systems http://www.tranquil.it
#    WAPT aims to help Windows systems administrators to deploy
#    setup and update applications on users PC.
#
#    WAPT is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
#
#    WAPT is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with WAPT.  If not, see <http://www.gnu.org/licenses/>.
#
# -----------------------------------------------------------------------
from setuphelpers import *

uninstallkey = []

def in_use():
    return isrunning('thunderbird.exe')

def need_install(key,min_version=None,force=False):
    """Return True if the software with key can be found in uninstall registry
        and the registred version is equal or greater than min_version

    Args:
        key (str) : uninstall key
        min_version (str) : minimum version or None if don't check verion
    Returns:
        boolean

    """
    if force or not key:
        return True
    else:
        current = installed_softwares(uninstallkey=key)
        for soft in current:
            if not min_version or Version(soft['version']) >= Version(min_version):
                return False
        return True


def install_exe_if_needed(exe,silentflags='',key=None,min_version=None,killbefore=[],accept_returncodes=[0,1603,3010],timeout=300):
    """Install silently the supplied setup executable file, and add the uninstall key to
    global uninstallkey list if it is defined.

    Check if already installed at the supllied min_version.

    Kill the processes in killbefore list before launching the setup.

    Raises an error if, after the setup install, the uninstall key is not found in registry.

    Args:
        exe (str) : path to the setup exe file
        silentflags (str) : flags to append to the exe command line for silent install
                            if not provided, tries to guess them.
        key (str) : uninstall key to check in registry and to add to uninstallkey global list
        min_version (str) : if installed version is equal or gretaer than this, don't install
                            if not provided, guess it from exe setup file properties.
        kill_before (list of str) : processes to kill before setup, to avoid file locks
                                    issues.
    Returns:
        None

    """
    if not isfile(exe):
        error('setup exe file %s not found in package' % exe)
    if not silentflags:
        silentflags = getsilentflags(exe)
    if not min_version:
        min_version = getproductprops(exe)['version']

    import inspect
    caller_globals = inspect.stack()[1][0].f_globals
    WAPT = caller_globals.get('WAPT',None)
    force = WAPT and WAPT.options.force

    if need_install(key,min_version=min_version,force=force):
        if killbefore:
            killalltasks(killbefore)
        run(r'"%s" %s' % (exe,silentflags),accept_returncodes=accept_returncodes,timeout=timeout)
        if key and not installed_softwares(uninstallkey=key):
            error('Setup %s has been ran but the uninstall key %s can not be found' % (exe,key))
    else:
        print('Exe setup %s already installed. Skipping' % exe)
    if key:
        # will try to add key in the caller's (setup.py) uninstallkey list
        if 'uninstallkey' in caller_globals and not key in caller_globals['uninstallkey']:
            caller_globals['uninstallkey'].append(key)


def install():
    version = control.version.split('-',1)[0]
    ukey = 'Mozilla Thunderbird %s (x86 fr)'%version
    exe = 'Thunderbird Setup %s.exe'%version

    print("Uninstall key %s"%ukey)
    install_exe_if_needed(exe,'-ms',key=ukey,min_version=version,killbefore=['thunderbird.exe'])

    print("Disabling auto update")
    filecopyto("mozilla.cfg",makepath(programfiles32,"Mozilla Thunderbird"))
    filecopyto("local-settings.js",makepath(programfiles32,"Mozilla Thunderbird","defaults","pref"))

def session_setup():
    #create_user_desktop_shortcut('thunderbird',makepath(programfiles32,"Mozilla Thunderbird","thunderbird.exe"))
    pass


def update_package():
    """updates the package / control version with the latest stable firefox version"""
    import re,requests,urlparse,glob

    # get index of all dowloads
    """
    url_base = 'https://download-installer.cdn.mozilla.net/pub/thunderbird/releases/latest/win32/fr/'
    index = wgets(url_base)

    # get list of lastest french versions
    re_setup = re.compile(r'<a href=".*/(Thunderbird%20Setup%20[0-9.]*\.exe)">Thunderbird')
    url = url_base+filename
    """
    url = requests.head('https://download.mozilla.org/?product=thunderbird-latest&os=win&lang=fr').headers['Location']
    filename = urlparse.unquote(url.rsplit('/',1)[1])

    if not isfile(filename):
        print('Downloading %s from %s'%(filename,url))
        wget(url,filename)

        # updates control version from filename, increment package version.
        control = PackageEntry().load_control_from_wapt ('.')
        control.version = '%s-%s'%(re.findall(r'Thunderbird Setup (.*)\.exe',filename)[0],int(control.version.split('-',1)[1])+1)
        control.save_control_to_wapt('.')

    # removes old exe
    if isfile(filename):
        exes = glob.glob('Thunderbird*.exe')
        for fn in exes:
            if fn != filename:
                remove_file(fn)


if __name__ == '__main__':
    update_package()

    

manifest

[["override.ini", "6cf83b6dcb57e3b08fc64a81c0bb1b2a0f65b4d0"], ["local-settings.js", "a18e82bed82bc9de6ab48dfdeb8cfbf364f1f34a"], ["WAPT/icon.png", "5e2844e03690979927ffd0b056dfdd91704b2039"], ["WAPT/certificate.crt", "0db563dc9077b268ca07ba834322d0fc5e21f8e5"], ["WAPT/wapt.psproj", "557e60050809687d56525e6ac46df9c0e02ccae6"], ["Thunderbird Setup 52.2.0.exe", "c91e20751b5cb5d3d9310ed6422b424a1016323a"], ["setup.py", "52f0212ab9c7aef4d63effabae4e5ea6c25e4a4f"], ["WAPT/changelog.txt", "edb365087b56cc5641958b93cda988c964c065e9"], ["userChrome.css", "b637e26f5c89b51a99bce1b8f3fab2c4163fb932"], ["WAPT/control", "8d40d382280d3704862165c35d29e9c12340d980"], ["mozilla.cfg", "4356cf6c95ceb65d695fc8103fad374b9afead37"]]