 |
Zero Install |
| version 0.33 |
| About Zero Install |
User-oriented decentralised software distribution.
The Zero Install Injector makes it possible for users to install software easily and without the need for root privileges. It takes the URL of a program's interface description and chooses suitable versions of the program and all of its dependencies (also identified by URLs) according to the user's policy settings (eg. "stable", "testing", "minimal network use", etc). The chosen versions are downloaded and cached and the program is run, using environment variables to let it find the components.
Requirements
This application requires GTK+ version 2.0.x.
Other dependencies include: GNU tar, Gzip, Python 2.4, The GNU Privacy Guard,
PyGTK 2.0 and Python-Glade2 (for the GUI). |
| Latest Version: 0.33 |
- Check network status with NetworkManager D-BUS service before doing
background updates. The logic is:
- If we're on-line, check right away.
- Otherwise (offline, connecting, unknown), sleep for 20 seconds and
if we're not offline at the end, go ahead.
This is designed to prevent two problems:
- You log in. 0launch tries to check for updates to everything in your
session while you're still connecting. These things therefore never
get updated.
- You're offline, but 0launch displays notifications about failing to
update from time-to-time.
If you don't use NetworkManager, then the effect of this is to always
delay updates by 20 seconds, which shouldn't cause any problems.
- Added support for getting feeds from mirrors. We start a mirror
download if the primary site fails or takes longer than five seconds
(in which case we try both in parallel). The mirror currently
hard-coded to http://roscidus.com/0mirror.
- Also get GPG keys using the mirror. If we got a feed from a mirror,
get the key from there too.
- When downloading with the GUI, animate the pointer too.
- Moved most of the GUI start-up code into new main.py. This is to make
it easier to test the GUI.
- Disabled Plash support when unpacking for now. Current versions of
unzip and cpio use the fchmod command, which doesn't work under Plash
at the moment. Therefore, Plash support has been disabled. See:
http://thread.gmane.org/gmane.comp.security.plash/83
- Removed IfaceCache.pending set from the Python API. It is no longer
needed for anything, and causes problems with mirrors.
Bug fixes:
- The background checker failed to report errors correctly. This was
caused by an API change in 0.32, which passes an extra argument to
report_error: TypeError: report_error() takes exactly 2 arguments (3
given)
- Updated epydoc comments. Also hid a few fields/methods that shouldn't
have been public.
- Added unit-tests for background updates and fixed a bug they found.
- Better error message for bad HTTP status when downloading.
- Cope with trailing text at the end of tar's version string. Needed
for Mac version. Reported by Anders F Björklund.
- Cope with $PATH not being set.
- Bugfix: error reporting in background handler was broken.
- Bugfix: multiple dependencies on a single library didn't work. If the
same library was required by two components within a single process,
the solver would exit early with None, which was interpreted as False
(i.e. failure to choose a set of versions). This also affects
libraries that depend on themselves. Reported by Sladi.
- Bugfix: trying to run a program without a main attribute gave a
stacktrace.
- Pass through SystemExit exceptions (for Python 2.4) so you don't get a
stack trace on the console.
|
|
|