<html>
  <head>
    <meta http-equiv="content-type" content="text/html;
      charset=windows-1252">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hello everyone,<br>
    <br>
    The WAPT dev team at Tranquil IT Systems is thrilled to announce the
    mainstream release of WAPT 1.3 (1.3.5 to be more precise).<br>
    <br>
    While you should be as excited as we are, this release does not
    bring any new killer feature. It is however the result of months of
    listening to our users, validating with our own customers' installed
    bases, fixing bugs and enhancing existing WAPT features. So this
    version brings the same level of efficacy, with more certainty.<br>
    <br>
    We want to congratulate Hubert and the rest of the dev team for the
    hard work done. We extend a big thank to all the testing community,
    and especially to Simon Fonteneau, for all the beta testing and the
    feedback. <br>
    <br>
    The JRES conference in Montpellier in december 2015 (<a class="moz-txt-link-abbreviated" href="http://www.jres.org">www.jres.org</a>)
    has shown that there is a huge and growing interest in WAPT. We have
    discovered there that WAPT was being used in very clever and
    interesting ways on networks of all sizes.<br>
    <br>
    The next series of efforts will concentrate on implementing
    "entreprise features" in WAPT destined to large structures with
    special needs. WAPT needs to be financially viable to bring
    confidence in its long-term sustainability by larger sized users.
    Nevertheless we feel, like you, that the GPLv3 features that you
    have come to appreciate must be kept available to all, independent
    of size : deploy software, configure software, maintain software,
    remove software and inventory software.<br>
    <br>
    For upgrade path, look at the bottom of the mail after the
    changelog, or on the wiki at <a class="moz-txt-link-freetext" href="http://dev.tranquil.it">http://dev.tranquil.it</a> <br>
    <br>
    Adminsys is a cool job after all !!<br>
    <br>
    Denis, Hubert, Vincent C, Yvan, Steven, Vincent M, Frédéric, Jérémie
    and Maël<br>
    <h2>Changelog since latest mainstream version 1.2.3<br>
    </h2>
    <h1> </h1>
    <h3><b>Setuphelpers :</b></h3>
    <b> </b>Additional functions :<br>
    <ul>
      <li>local_drives : return list of local drives, with capacity and
        available space<br>
      </li>
      <li> all_files : list all files of a directory, including files of
        subdirectories (but not the directories themselves)</li>
      <li> create_onetime_task : create a task in windows scheduler
        which is run only one time (so is deleted after scheduled time)</li>
      <li> installed_windows_updates : return list of installed updates,
        indepently from WUA agent</li>
      <li> <a
href="http://dev.tranquil.it/sphinxdocs/source/setuphelpers.html#setuphelpers.install_exe_if_needed">install_exe_if_needed</a>
        : install conditionally an exe setup, checking minimum version,
        uninstall key and force flag (<br>
      </li>
      <li> <a
href="http://dev.tranquil.it/sphinxdocs/source/setuphelpers.html#setuphelpers.install_msi_if_needed">install_msi_if_needed</a>
        : install conditionally an msi, detect uninstall key and add it
        to uninstallkey list of package</li>
      <li> ensure_list : given a list or a string, always return a list,
        or None if allowed. String is considered as a csv list. </li>
      <li> registry_deletekey : Delete the key under specified registry
        path and all its values</li>
      <li> uninstall_key_exists : Return True if supplied uninstall key
        exists eithe rin win32 or win64 part of uninstall registry.</li>
      <li> reg_enum_subkeys : list the sub keys (= sub directories) of
        an opened key</li>
      <li> reg_enum_values : list the value names associated with a
        registry key (opened with reg_openkey_noredir for example)</li>
      <li> win_startup_info : return list of commands launched at
        windows startup in run registry key and common startup folder.</li>
      <li>fix for<b> </b>create_onetime_task for windows 10 (Home ?)
        not working on some systems. use schtasks instead.</li>
      <li>fix PackageEntry.match_search not working</li>
    </ul>
    Changes :<br>
    <ul>
      <li> ensure_unicode : failover with replace for all types of data</li>
      <li> wgets and wget : can optionnaly verify certificates. and use
        wapt user agent http headers, with no-cache pragma. raise
        exception earlier</li>
    </ul>
    <h3><b>Core</b></h3>
    <ul>
      <li>FIX: incorrect  uninstallkey if nested call WAPT.install
        inside surrounding setup.install. <a
          class="moz-txt-link-freetext"
          href="https://roundup.tranquil.it/wapt/issue605"><a class="moz-txt-link-freetext" href="https://roundup.tranquil.it/wapt/issue605">https://roundup.tranquil.it/wapt/issue605</a></a><br>
      </li>
      <li>better tolerance to encoding issues.<br>
      </li>
      <li>fix waptserver discovery with SRV dns record </li>
      <li>add optional dnsdomain in wapt-get.ini. <br>
      </li>
      <li>add optional verify_cert option (default to False) for
        waptserver access in wapt-get.ini</li>
      <li>forget old host package if computer FQDN is changed</li>
      <li>fix : check that there are no additional files in package
        content not checksummed in manifest.sha1 when unzipping</li>
      <li>check systematically that declared uninstallkeys are found in
        registry after package install</li>
      <li>allow session_setup to return a value different than None or
        zero to indicate a RETRY at next session logon</li>
      <li>optionally includes packages with status ERROR for
        Wapt.is_installed(), WaptDB.installed_search,
        WaptDB.installed_matching. CBB : installed_search included
        errors by default in previous behaviour.</li>
      <li>allow latest=1 in /status waptlocalservice utl</li>
    </ul>
    <h3><b>Waptconsole</b></h3>
    <ul>
      <li>optionally filter newest only package (latest version) in
        waptconsole private repository or when importing from external</li>
      <li> optionally filter newer than local packages in waptconsole
        when importing from external</li>
      <li> display size of packages in repository grids</li>
      <li> reorganize settings dialog to focus on most important
        parameters</li>
      <li> allow several hosts and packages to be selected when cherry
        picking install, remove or forget packages in waptconsole
        inventory (cbb, user interface should be improved)</li>
      <li> add wakeonlan feature for hosts running on same network as
        main waptserver</li>
      <li> check md5 when downloading packages with waptconsole to avoid
        keeping incomplete or corrupted cached files</li>
      <li> fix redirect from http to https not working in waptconsole</li>
      <li> fix waptserver discovery with SRV dns record not working
        properly in waptconsole</li>
      <li>HighDPI aware Waptconsole</li>
      <li>logo changes</li>
    </ul>
    <h3><b>Waptservice</b></h3>
    <ul>
      <li>recheck waptserver authorized IP in waptservice if call failed
        with restricted access (so that next call succeeds)</li>
      <li>use create_onetime_task windows scheduler instead of AT
        command to trigger a waptservice restart</li>
      <li> better handling when computer often disconnect (sleep) or
        change from one network to another network</li>
      <li>allow ?q= search in localservice /packages and /status </li>
    </ul>
    <h3><b>Waptupgrade</b></h3>
    <ul>
      <li>authenticate systematically the waptagent.exe file with a
        sha256 hash inside waptupgrade package or when using waptdeploy
        downloader (requires change in the GPO if gpo is used to deploy
        wapt automatically)</li>
      <li>include waptagent.exe in waptupgrade package per default and
        trigger a full waptagent.exe install (through a windows
        scheduled task which uses waptdeploy) if upgrading from wapt
        < 1.3.0.</li>
      <li>waptdeploy requires now --hash= option. --wait enable
        waptdeploy to wait for pending waptservice tasks to terminate
        before upgrading wapt.</li>
      <li>fix for old wapt upgrade path</li>
    </ul>
    <h3><b>Wapt-get</b></h3>
    <ul>
      <li> handles waptservice local authentication for wapt-get to
        allow install / remove as a non admin user.</li>
      <li> add option to wapt-get --service  to force use of http
        webservice. default --direct for user members of computer
        administrators group</li>
      <li> can pass waptserver user and password to wapt-get command
        line for automate package uploading tasks</li>
      <li> guess package rootdir based on path of control in addition to
        setup.py files for development wapt-get tasks like install,
        remove, build-upload etc..</li>
      <li> Fix command line parameters handling in wapt-get.exe</li>
    </ul>
    <h3><b>Waptserver</b></h3>
    <ul>
      <li>RPM package for waptserver on centos</li>
      <li>use huey task pool in waptserver instead of uwsgi for
        portability </li>
      <li> Fix waptserverpostconf not able to restart local waptservice
        properly</li>
    </ul>
    <h3><b>Global</b></h3>
    <ul>
      <li> python upgraded to 2.7.10</li>
      <li>many libraries upgraded (openssl, m2crypto, flask, psutils,
        etc...)<br>
      </li>
    </ul>
    <h2>Upgrade from 1.2.3<br>
    </h2>
    <b>Linux server upgrade</b><br>
    With a server on Linux : <br>
    ssh on waptserver<br>
    <tt>cd</tt><tt><br>
    </tt><tt>wget <a class="moz-txt-link-freetext"
href="http://wapt.tranquil.it/wapt/nightly/1.3.4-rc2/tis-waptrepo-1.3.4.deb">http://wapt.tranquil.it/wapt/nightly/1.3.4-rc2/tis-waptrepo-1.3.4.deb</a></tt><tt><br>
    </tt><tt>wget <a class="moz-txt-link-freetext"
href="http://wapt.tranquil.it/wapt/nightly/1.3.4-rc2/tis-waptserver-1.3.4.deb">http://wapt.tranquil.it/wapt/nightly/1.3.4-rc2/tis-waptserver-1.3.4.deb</a></tt><tt><br>
    </tt><tt>wget <a class="moz-txt-link-freetext"
href="http://wapt.tranquil.it/wapt/nightly/1.3.4-rc2/tis-waptsetup-1.3.4.deb">http://wapt.tranquil.it/wapt/nightly/1.3.4-rc2/tis-waptsetup-1.3.4.deb</a></tt><tt><br>
    </tt><tt>dpkg -i </tt><tt>tis-wapt*.deb</tt><tt><br>
    </tt><tt>apt-get -f install</tt><tt><br>
    </tt><tt>wapt-serverpostconf</tt><tt><br>
    </tt>-> default answer to all questions. <br>
    <h3>Windows server upgrade</h3>
    Download <a class="moz-txt-link-freetext"
href="http://wapt.tranquil.it/wapt/nightly/1.3.4-rc2/waptserversetup.exe">http://wapt.tranquil.it/wapt/nightly/1.3.4-rc2/waptserversetup.exe</a><br>
    Install with admin rights.<br>
    Launch server postconfiguration (obviously, don't recreate a new new
    private key...)<br>
    Don't create waptagent from waptserverpostconf but use waptconsole
    option which provide both waptagent binary and waptupgrade package.
    waptserverpostconf creates only the waptagent.<br>
    <h3>Wapt management host upgrade</h3>
    on the wapt manage workstation (where the private key is defined)<br>
    download <a class="moz-txt-link-freetext"
      href="http://wapt/wapt/waptsetup-tis.exe">http://wapt/wapt/waptsetup-tis.exe</a>
    from waptserver<br>
    install with default options<br>
    <h4> Build clients upgrade package</h4>
    <b> </b>launch c:\wapt\waptconsole <br>
    tools/Build waptagent<br>
    Â -> build the waptagent.exe and xxx-waptupgrade.wapt package and
    upload them to wapt server.<br>
    <br>
    include the built xxx-waptupgrade package in your base group package
    or as a dependency of all host packages<br>
    trigger upgrade on hosts<br>
    <h4> <b>GPO update</b></h4>
    <b> </b>copy waptdeploy.exe to the gp<br>
    modify your waptdeploy GPO to include --hash= with the hash defined
    in c:\wapt\waptupgrade\waptagent.sha256 and a --wait=15 for example.<br>
    \\srvads\netlogon\waptdeploy.exe
    --hash=5b5988012033e534b5352050bff7dece4840456225787b39dc1d00dfb9e75cd8<br>
    (you can get this on linux too with the command "<tt>sha256sum
      /var/www/wapt/waptagent.exe</tt>" )<br>
    <h3>Pyscripter development / debug<br>
    </h3>
    The tis-python27 package no longer includes all the libraries of
    Wapt.<br>
    So one need to have a site-package dir to python init of Pyscripter
    to be able to debug using Pyscripter. This is taken into account
    into the new tis-pyscripter package, so you'll have to upgrade
    before editing packages.<br>
    (see<a
href="http://dev.tranquil.it/wiki/WAPT_-_Mise_en_place_de_l%27environnement_de_d%C3%A9veloppement"></a><a
      class="moz-txt-link-freetext"
href="http://dev.tranquil.it/wiki/WAPT_-_Mise_en_place_de_l%27environnement_de_d%C3%A9veloppement"><a class="moz-txt-link-freetext" href="http://dev.tranquil.it/wiki/WAPT_-_Mise_en_place_de_l%27environnement_de_d%C3%A9veloppement">http://dev.tranquil.it/wiki/WAPT_-_Mise_en_place_de_l%27environnement_de_d%C3%A9veloppement</a></a>)<br>
    <p style="box-sizing: border-box; margin: 0px 0px 10px; color:
      rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial,
      sans-serif; font-size: 14px; font-style: normal; font-variant:
      normal; font-weight: normal; letter-spacing: normal; line-height:
      20px; orphans: auto; text-align: start; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 1;
      word-spacing: 0px; -webkit-text-stroke-width: 0px;
      background-color: rgb(255, 255, 255);">In PyScripter, Option Tools
      / Edit startup scripts, update file<span
        class="Apple-converted-space">  </span><b style="box-sizing:
        border-box; font-weight: bold;">python_init.py</b> with lines :<br>
    </p>
    <pre style="box-sizing: border-box; overflow: auto; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 13px; display: block; padding: 9.5px; margin: 0px 0px 10px; line-height: 1.42857; color: rgb(51, 51, 51); word-break: break-all; word-wrap: break-word; border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(245, 245, 245);">import site
site.addsitedir('c:/wapt/lib/site-packages')
</pre>
    <br class="Apple-interchange-newline">
    <br>
    <br>
    <br>
  </body>
</html>