tis-firefox-en 54.0-71

  • package : tis-firefox-en
  • version : 54.0-71
  • description : Mozilla Web Browser Web Firefox English (disabled feature : pdfjs, mises à jour, ipv6, migration, telemetry), proxy wpad
  • maintainer : TIS <technique@tranquil-it-systems.fr>
  • date : 2018-02-27 18:59:39


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

uninstallkey = []

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

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

    if force or not key:
        return True
        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.

        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

    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:
        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))
        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']:

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

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

    print ("Disabling profile migration from ie")
    filecopyto("override.ini",makepath(programfiles32,"Mozilla Firefox","browser"))

    print ("Override User UI")
    ensure_dir(makepath(programfiles32,"Mozilla Firefox","browser","defaults","profile","chrome",""))
    filecopyto("userChrome.css",makepath(programfiles32,"Mozilla Firefox","browser","defaults","profile","chrome"))

    print ("Deploy extensions")
    ensure_dir(makepath(programfiles32,"Mozilla Firefox","browser","extensions",""))
    copytree2("extensions",makepath(programfiles32,"Mozilla Firefox","browser","extensions"))

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/firefox/releases/latest/win32/fr/'
    url_base = 'https://download-installer.cdn.mozilla.net/pub/firefox/releases/43.0/win32/fr/'
    index = wgets(url_base)

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

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

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

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

if __name__ == '__main__':



No changelog


[["override.ini", "3c930ba0fce98f0a232101b76885a8fade8edd4a6ea19a00d372aaff426f0125"], ["local-settings.js", "78498a0d8c1e6b137e93081a785aacf63fccc3fb8f7ea04354d48224f5e1b357"], ["WAPT/certificate.crt", "79e5388683c0b6cb03f4f81e4e58e3a11463b2b6cf169dd9c453098027dcfaa4"], ["WAPT/wapt.psproj", "795d36d10109ca85357285f79090fac2be856e5830ea31fa913cc55cb825807b"], ["Firefox Setup 54.0.exe", "84828015baff99df74c3324e99dee2679873d75285dd37a62ec3ff0cb3eb5ef8"], ["setup.py", "9e9062166faa900ce972196538cbe3be971203f490efffbb23d03d02eb4224c6"], ["userChrome.css", "46620dc25abe0400e625a0f078fc3ad9c4a668e0f880a7b451feb7d4fc084c26"], ["WAPT/control", "546193b3d679026d3c90b1febeefe4ead94a7f5c1477c323e82a7e178d8e720b"], ["mozilla.cfg", "399372c5122ece244929457a2f72b78e6698ef33d82c2f2ece7938b36e58adb5"]]