ANN: esky 0.7.0

Ryan Kelly ryan at
Sat May 29 05:24:16 CEST 2010

Hi All,

  I'm pleased to announce the latest release of esky, an auto-update
framework for frozen python apps.  New features include:

    * ability to escalate to root privileges when necessary
    * better safety guarantees on Windows XP and lower
    * better support for py2exe with different bundle_files options

  More details below for those who are interested. 



  esky: keep frozen apps fresh 

Esky is an auto-update framework for frozen Python applications. It 
provides a simple API through which apps can find, fetch and install 
updates, and a bootstrapping mechanism that keeps the app safe in the 
face of failed or partial updates.

Esky is currently capable of freezing apps with bbfreeze, cxfreeze, 
py2exe and py2app.

The latest version is v0.7.0, with the following major changes: 

    * Renamed "esky.helper" to "esky.sudo" along with much refactoring:
        * @esky.use_helper_app is now @esky.allow_from_sudo() and is
          used to declare a type signature.
        * Esky.helper_app is now Esky.sudo_proxy and is always an
          instance of esky.sudo.SudoProxy.
        * added Esky.drop_root() method to drop root privileges.
        * implemented multiple safeguards against malicious input 
          when running with root privileges.
    * Cause all scripts to automagically call esky.run_startup_hooks()
      on startup.  Currently this:
        * detects the --esky-spawn-sudo option, runs sudo helper.
        * detects the --esky-spawn-cleanup option, runs cleanup helper.
    * Have Esky.auto_update() call Esky.cleanup() automatically (mostly
      so it can immediately drop any root privileges it has acquired).
    * Use a separate file "esky-lockfile.txt" for version locking.  This
      will help protect against strange behaviour when fcntl.flock is
      simulated using fcntl.lockf (which released the lock when *any*
      handle to the file is closed).
    * Try to load correctly if executed from a temporary backup file
      (e.g. running from "prog.old.exe" instead of "prog.exe").
    * Allow direct overwriting of existing bootstrap files on win32 
      (instead of renaming the old version out of the way) but only in
      very special circumstances:
        * currently only for executables where the icon or version info
          has changed but the rest of the exe has not.
        * may require spawning a new copy of the process at shutdown, to
          overwrite any in-use bootstrap exes (use Esky.cleanup_at_exit)
    * Several improvements to py2exe support:
        * implemented "optimize" and "unbuffered" settings in the custom
          bootstrap code.
        * more robust support for the various bundle_files options.


Code, bugs, etc: 


Ryan Kelly  |  This message is digitally signed. Please visit
ryan at        | for details

More information about the Python-announce-list mailing list