ANN: esky 0.7.0
ryan at rfk.id.au
Sat May 29 05:24:16 CEST 2010
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
* more robust support for the various bundle_files options.
Code, bugs, etc: http://github.com/rfk/esky/
http://www.rfk.id.au | This message is digitally signed. Please visit
ryan at rfk.id.au | http://www.rfk.id.au/ramblings/gpg/ for details
More information about the Python-announce-list