Détails du package smp-waptupgrade_1.7.3.6-36_all_all.wapt
retour Revenir à la liste des packages

smp-waptupgrade

ATTENTION CE DÉPÔT n'est plus compatible 1.3 vous devez migrer en 1.5.1.21 !

Fichier control :

package           : smp-waptupgrade
version           : 1.7.3.6-36
architecture      : all
section           : base
priority          : optional
maintainer        : LESFOURMISDUWEB <blog@lesfourmisduweb.org>
description       : Please do not duplicate this package. To update wapt, please read the documentation
depends           : 
conflicts         : 
maturity          : 
locale            : all
target_os         : windows
min_os_version    : 
max_os_version    : 
min_wapt_version  : 1.5.1.18
sources           : 
installed_size    : 
impacted_process  : 
description_fr    : Merci de ne pas dupliquer ce paquet. Pour mettre à jour wapt, veuillez lire la documentation
description_pl    : 
description_de    : 
description_es    : 
audit_schedule    : 
editor            : 
keywords          : 
licence           : 
homepage          : 
package_uuid      : bf3a2e79-cf51-4ab5-aca5-61f17199d2aa
signer            : wapt.lesfourmisduweb.org
signer_fingerprint: 8da83ebdac1a25e820b186510d049f47407b11835b0664fdc5bacd3595b1671d
signature         : Mzd4FUjMK/wlqSBvKv8KrLb7zVeMUdZblWPxeJDOJET4GIrAvj7SdXdtrYkdlles7fIv89j52EQv3VICwLGjzrKOiz53i52ncU2prBEmJpp+lw0D/aT7EgpXCIWIpuy7S59KMi9Z4EYsshpDeasCF6u/cVIfOJJVl3B8GDB2u0EI6TR8NtyEFp/ZTCQ8T7b9tT3X9x6WP/CTBik3Xu7I1pV9H/M6o0MMR/xZ7W2pnexWK4x64r7RncrGXs4dndGUhAhSoyCjog5/BsKAzC+bio0BknTdaagcwHsC8OSjW2pK0nSQb3qtsIFjRZ94pzlJFMUGMmxczr9TKJ7RZCnc3g==
signature_date    : 2019-02-15T21:48:17.049000
signed_attributes : package,version,architecture,section,priority,maintainer,description,depends,conflicts,maturity,locale,target_os,min_os_version,max_os_version,min_wapt_version,sources,installed_size,impacted_process,description_fr,description_pl,description_de,description_es,audit_schedule,editor,keywords,licence,homepage,package_uuid,signer,signer_fingerprint,signature_date,signed_attributes






Fichier setup.py :

# -*- 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 *
import hashlib
import time
import ssl
import urllib2

uninstallkey = []

def sha256_for_file(fname, block_size=2**20):
     f = open(fname,'rb')
     sha256 = hashlib.sha256()
     while True:
         data = f.read(block_size)
         if not data:
             break
         sha256.update(data)
     return sha256.hexdigest()


def install():

   expected_sha256 = sha256_for_file('waptsetup.exe')
   repo = inifile_readstring(WAPT.config_filename,'global','wapt_server')
   if 'wapt.lesfourmisduweb.org' in repo:


        print('Disable the skip button in waptexit')
        inifile_writestring(WAPT.config_filename,'global','allow_cancel_upgrade',0)

        print('Modify max_gpo_script_wait')
        inifile_writestring(WAPT.config_filename,'global','max_gpo_script_wait',180)

        print('Modify Preshutdowntimeout')
        inifile_writestring(WAPT.config_filename,'global','pre_shutdown_timeout',180)

        print('Disable Hyberboot')
        inifile_writestring(WAPT.config_filename,'global','hiberboot_enabled',0)

        print('Disable HostPackage')
        inifile_writestring(WAPT.config_filename,'global','use_hostpackages',1)

        print('Disable Notify User')
        inifile_writestring(WAPT.config_filename,'global','notify_user',0)


        print('maj wapt')
        min_version = control['version'].split('-',1)[0]
        import tempfile

        at_startup=False
        waptagent_path = makepath(tempfile.gettempdir(),'waptsetup.exe')
        waptdeploy_path = makepath(tempfile.gettempdir(),'waptdeploy.exe')
        temp= makepath(tempfile.gettempdir())
        filecopyto(makepath('waptdeploy.exe'),waptdeploy_path)

        if isfile('waptsetup.exe'):
            filecopyto('waptsetup.exe',waptagent_path)
        #create_onetime_task('fullwaptupgrade',waptagent_path,'/VERYSILENT',delay_minutes=15)


        if at_startup or isrunning('waptexit.exe'):

            currentpath = os.path.dirname(os.path.realpath(__file__))
            fichier = open("fullwaptupgrade.xml", "w")
            fichier.write('<?xml version="1.0" encoding="UTF-16"?> \n')
            fichier.write('<Task version="1.1" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"> \n')
            fichier.write('  <RegistrationInfo> \n')
            fichier.write('    <Author>WAPT</Author> \n')
            fichier.write('    <URI>\\fullwaptupgrade</URI> \n')
            fichier.write('  </RegistrationInfo> \n')
            fichier.write('  <Triggers> \n')
            fichier.write('    <BootTrigger> \n')
            fichier.write('      <Enabled>true</Enabled> \n')
            fichier.write('    </BootTrigger> \n')
            fichier.write('  </Triggers> \n')
            fichier.write('  <Principals> \n')
            fichier.write('    <Principal id="Author"> \n')
            fichier.write('      <UserId>S-1-5-18</UserId> \n')
            fichier.write('      <RunLevel>HighestAvailable</RunLevel> \n')
            fichier.write('    </Principal> \n')
            fichier.write('  </Principals> \n')
            fichier.write('  <Settings> \n')
            fichier.write('    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries> \n')
            fichier.write('    <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries> \n')
            fichier.write('    <IdleSettings> \n')
            fichier.write('      <Duration>PT10M</Duration> \n')
            fichier.write('      <WaitTimeout>PT1H</WaitTimeout> \n')
            fichier.write('      <StopOnIdleEnd>false</StopOnIdleEnd> \n')
            fichier.write('      <RestartOnIdle>false</RestartOnIdle> \n')
            fichier.write('    </IdleSettings> \n')
            fichier.write('    <Enabled>true</Enabled> \n')
            fichier.write('    <Hidden>false</Hidden> \n')
            fichier.write('    <RunOnlyIfIdle>false</RunOnlyIfIdle> \n')
            fichier.write('    <WakeToRun>false</WakeToRun> \n')
            fichier.write('    <ExecutionTimeLimit>PT72H</ExecutionTimeLimit> \n')
            fichier.write('    <DeleteExpiredTaskAfter>PT0S</DeleteExpiredTaskAfter> \n')
            fichier.write('    <Priority>5</Priority> \n')
            fichier.write('  </Settings> \n')
            fichier.write('  <Actions Context="Author"> \n')
            fichier.write('    <Exec> \n')
            fichier.write('      <Command>%s</Command> \n' % waptdeploy_path)
            fichier.write('      <Arguments>--hash=%s --waptsetupurl=%s --wait=15 --temporary --force --minversion=%s</Arguments> \n' %(expected_sha256,waptagent_path,min_version))
            fichier.write('      <WorkingDirectory>%s</WorkingDirectory> \n' % temp)
            fichier.write('    </Exec> \n')
            fichier.write('  </Actions> \n')
            fichier.write('</Task> \n')
            fichier.close()


            cmd = '%s --hash=%s --waptsetupurl=%s --wait=15 --temporary --force --minversion=%s' %(waptdeploy_path,expected_sha256,waptagent_path,min_version)
            if not at_startup:
                 print('waptexit is running, scheduling a one time task at system startup with command %s'%cmd)
        # task at system startup
            try:
                print run('schtasks /Create /TN "fullwaptupgrade" /RU SYSTEM /xml fullwaptupgrade.xml')
              #  print run('schtasks /Create /RU SYSTEM /SC ONSTART /TN fullwaptupgrade /TR "%s" /F /V1 /Z' % cmd)
            except:
                # windows xp doesn't support one time startup task /Z nor /F
                run_notfatal('schtasks /Delete /TN fullwaptupgrade /F')
                print run('schtasks /Create /TN "fullwaptupgrade" /RU SYSTEM /xml fullwaptupgrade.xml')
              #  print run('schtasks /Create /RU SYSTEM /SC ONSTART /TN fullwaptupgrade /TR "%s"' % cmd)
        else:

            run_time = time.localtime(time.time() + 2*60)
            temps = time.strftime('%H:%M:%S', run_time)
            date = time.strftime('%Y-%m-%d', run_time)

            fichier = open("fullwaptupgrade.xml", "w")
            fichier.write('<?xml version="1.0" encoding="UTF-16"?> \n')
            fichier.write('<Task version="1.1" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"> \n')
            fichier.write('  <RegistrationInfo> \n')
            fichier.write('    <Author>WAPT</Author> \n')
            fichier.write('    <URI>\\fullwaptupgrade</URI> \n')
            fichier.write('  </RegistrationInfo> \n')
            fichier.write('  <Triggers> \n')
            fichier.write('    <TimeTrigger> \n')
            fichier.write('      <StartBoundary>%sT%s</StartBoundary> \n' % (date,temps))
            fichier.write('      <Enabled>true</Enabled> \n')
            fichier.write('    </TimeTrigger> \n')
            fichier.write('    <BootTrigger> \n')
            fichier.write('      <Enabled>true</Enabled> \n')
            fichier.write('    </BootTrigger> \n')
            fichier.write('  </Triggers> \n')
            fichier.write('  <Principals> \n')
            fichier.write('    <Principal id="Author"> \n')
            fichier.write('      <UserId>S-1-5-18</UserId> \n')
            fichier.write('      <RunLevel>HighestAvailable</RunLevel> \n')
            fichier.write('    </Principal> \n')
            fichier.write('  </Principals> \n')
            fichier.write('  <Settings> \n')
            fichier.write('    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries> \n')
            fichier.write('    <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries> \n')
            fichier.write('    <IdleSettings> \n')
            fichier.write('      <Duration>PT10M</Duration> \n')
            fichier.write('      <WaitTimeout>PT1H</WaitTimeout> \n')
            fichier.write('      <StopOnIdleEnd>false</StopOnIdleEnd> \n')
            fichier.write('      <RestartOnIdle>false</RestartOnIdle> \n')
            fichier.write('    </IdleSettings> \n')
            fichier.write('    <Enabled>true</Enabled> \n')
            fichier.write('    <Hidden>false</Hidden> \n')
            fichier.write('    <RunOnlyIfIdle>false</RunOnlyIfIdle> \n')
            fichier.write('    <WakeToRun>false</WakeToRun> \n')
            fichier.write('    <ExecutionTimeLimit>PT72H</ExecutionTimeLimit> \n')
            fichier.write('    <DeleteExpiredTaskAfter>PT0S</DeleteExpiredTaskAfter> \n')
            fichier.write('    <Priority>5</Priority> \n')
            fichier.write('  </Settings> \n')
            fichier.write('  <Actions Context="Author"> \n')
            fichier.write('    <Exec> \n')
            fichier.write('      <Command>%s</Command> \n' % waptdeploy_path)
            fichier.write('      <Arguments>--hash=%s --waptsetupurl=%s --wait=15 --temporary --force --minversion=%s</Arguments> \n' %(expected_sha256,waptagent_path,min_version))
            fichier.write('      <WorkingDirectory>%s</WorkingDirectory> \n' % temp)
            fichier.write('    </Exec> \n')
            fichier.write('  </Actions> \n')
            fichier.write('</Task> \n')
            fichier.close()

            try:
               # use embedded waptagent.exe, wait 15 minutes for other tasks to complete.
               #print create_onetime_task('fullwaptupgrade',waptdeploy_path,'--hash=%s --waptsetupurl=%s --wait=15 --temporary --force --minversion=%s'%(expected_sha256,waptagent_path,min_version),delay_minutes=1)
               print run('schtasks /Create /TN "fullwaptupgrade" /RU SYSTEM /xml fullwaptupgrade.xml')
            except:
               run_notfatal('schtasks /Delete /TN fullwaptupgrade /F')
               print run('schtasks /Create /TN "fullwaptupgrade" /RU SYSTEM /xml fullwaptupgrade.xml')
               #print create_onetime_task('fullwaptupgrade',waptdeploy_path,'--hash=%s --waptsetupurl=%s --wait=15 --temporary --force --minversion=%s'%(expected_sha256,waptagent_path,min_version),delay_minutes=1)
   else :
     print("ce paquet n'est pas pour vous car vous devez generer votre propre waptupgrade")

def update_package():
    wget('https://wapt.tranquil.it/wapt/releases/latest/waptsetup.exe','waptsetup.exe')
    get_file_properties('waptsetup.exe')
    wget('https://wapt.tranquil.it/wapt/releases/latest/waptdeploy.exe','waptdeploy.exe')
    vers = get_file_properties('waptsetup.exe')['ProductVersion'] + '-0'

    os.chdir(os.path.dirname(__file__))

    from waptpackage import PackageEntry
    pe = PackageEntry()
    pe.load_control_from_wapt(os.getcwd())

    pe.version = vers + '-0'
    pe.save_control_to_wapt(os.getcwd())

if __name__ == '__main__':
    update_package()