Tim Diels [Sat, 20 Aug 2011 16:30:18 +0000 (20 18:30 +0200)]
Refactored code as required for the new 0publish
Tim Diels [Sat, 20 Aug 2011 16:24:59 +0000 (20 18:24 +0200)]
Added <unpack/> step for <recipe>
Daniel Tschan [Sat, 25 Jun 2011 14:24:45 +0000 (25 15:24 +0100)]
GUI performance (XXX)
For feeds with many dependencies 0launch-gui blocks for several minutes or even indefinitely before downloading the feed files. The same happens while downloading the implementations. Analysis showed that all available resources are used to update the graphical representation of the download status (a GTK TreeView) over and over again. The analysis was conducted using:
* System based on Intel Atom D525 @ 1.8 GHz
* RHEL 6
* Python 2.6.6
* pygtk 2.16.0
* gtk 2.18.9
* 0install 0.53 and 1.0
* A feed with 137 dependencies
The current implementation always updates the whole TreeView. I propose to update only the part that is currently visible. This way the resources needed for the update no longer depend on the number of feed dependencies. Please see the attached patch for a possible implementation. The patch applies cleanly to the current head of the master branch (
2989c874562b7920b3da60993666716c2d6b0c4e). With the patch applied the gui works as expected and with no loss of functionality.
gfxmonk [Wed, 22 Jun 2011 08:38:19 +0000 (22 18:38 +1000)]
Add an include_packages flag to Selections.download_missing
This is needed by "0compile autocompile", which does select and download in two
steps. Normally downloading native packages wouldn't work, because the exact
versions needed won't be available.
Bug:
- If the package is already installed, tries (and fails) to install it again.
Thomas Leonard [Wed, 11 May 2011 19:33:56 +0000 (11 20:33 +0100)]
Fixed test for empty list of implementation dirs config files
Bastian Eicher [Thu, 5 May 2011 16:02:26 +0000 (5 18:02 +0200)]
Aggregate implementation-dirs config files from multiple locations
Thomas Leonard [Sat, 18 Jun 2011 09:07:58 +0000 (18 10:07 +0100)]
Allow specifying the interface in add-feed
This now matches the syntax for remove-feed, and allows adding a feed which is
missing a <feed-for>.
Thomas Leonard [Mon, 13 Jun 2011 18:56:03 +0000 (13 19:56 +0100)]
Added '0install digest' command
This is similar to "0store manifest", except that it doesn't print the
manifest itself, just the final digest. It can also be used directly on
an archvie.
Tim Diels [Sat, 30 Apr 2011 07:32:53 +0000 (30 09:32 +0200)]
Environment binding: added separator attribute
Thomas Leonard [Sun, 29 May 2011 15:27:44 +0000 (29 16:27 +0100)]
Check indentation when testing
Mixing tabs and spaces is an error under Python 3.
Tim Diels [Fri, 3 Jun 2011 10:36:54 +0000 (3 12:36 +0200)]
Forgot to add xml of generate implementation id test
Tim Diels [Fri, 3 Jun 2011 10:28:40 +0000 (3 12:28 +0200)]
Added generate_sizes test
Tim Diels [Fri, 3 Jun 2011 10:23:23 +0000 (3 12:23 +0200)]
Used load_feed in missing impl id test instead of...
Tim Diels [Thu, 2 Jun 2011 22:37:12 +0000 (3 00:37 +0200)]
Added ability to generate archive sizes on Feed creation
and added ZeroInstallFeed.archives, Implementation.archives, ...
Tim Diels [Thu, 2 Jun 2011 17:25:14 +0000 (2 19:25 +0200)]
Fixed small id=None issue
Tim Diels [Thu, 2 Jun 2011 17:24:43 +0000 (2 19:24 +0200)]
Added implementation_id_alg param to load_feed
Tim Diels [Thu, 2 Jun 2011 17:24:23 +0000 (2 19:24 +0200)]
Updated version of dev feed
Tim Diels [Thu, 2 Jun 2011 17:10:30 +0000 (2 19:10 +0200)]
Added ZeroInstallFeed.changed_implementations
(0publish needs it to figure out which implementations have which id)
Tim Diels [Thu, 2 Jun 2011 12:21:22 +0000 (2 14:21 +0200)]
Added ability to generate implementation ids on feed creation
Tim Diels [Thu, 2 Jun 2011 09:53:07 +0000 (2 11:53 +0200)]
ZeroInstallImplementation.fromDOM now returns new implementation
Tim Diels [Thu, 2 Jun 2011 09:41:14 +0000 (2 11:41 +0200)]
Extracted DownloadSource.fromDOM from ZeroInstallImplementation.fromDOM
Tim Diels [Thu, 2 Jun 2011 09:34:59 +0000 (2 11:34 +0200)]
Extracted Recipe.fromDOM from ZeroInstallImplementation.fromDOM
Tim Diels [Thu, 2 Jun 2011 09:28:38 +0000 (2 11:28 +0200)]
Extracted ZeroInstallImplementation.fromDOM from ZeroInstallFeed's init
Tim Diels [Wed, 1 Jun 2011 19:14:05 +0000 (1 21:14 +0200)]
Simplified the RetrievalMethod.retrieve() implementations
Tim Diels [Wed, 1 Jun 2011 16:44:08 +0000 (1 18:44 +0200)]
Added RetrievalMethod.retrieve
and used it in ZeroInstallImplementation
Tim Diels [Wed, 1 Jun 2011 16:23:15 +0000 (1 18:23 +0200)]
Deprecated download_archive
renamed DownloadSource.retrieve to download
Tim Diels [Wed, 1 Jun 2011 15:49:56 +0000 (1 17:49 +0200)]
Extracted DownloadSource.retrieve from download_archive
Tim Diels [Wed, 1 Jun 2011 15:43:54 +0000 (1 17:43 +0200)]
Extracted Recipe.retrieve from Fetcher.cook
Tim Diels [Wed, 1 Jun 2011 15:30:45 +0000 (1 17:30 +0200)]
Removed Fetcher._add_to_cache and made it inline
Tim Diels [Wed, 1 Jun 2011 13:50:46 +0000 (1 15:50 +0200)]
Added retrieve(...) to model.Implementation
and marked Fetcher.download_impl deprecated
Tim Diels [Wed, 1 Jun 2011 13:23:45 +0000 (1 15:23 +0200)]
Extracted ZeroInstallImplementation.retrieve from Fetcher.download_impl
Tim Diels [Wed, 1 Jun 2011 12:46:52 +0000 (1 14:46 +0200)]
Extracted ZeroInstallImplementation.best_digest from Fetcher.download_impl
Tim Diels [Wed, 1 Jun 2011 12:27:21 +0000 (1 14:27 +0200)]
Moved Fetcher.get_best_source to model.Implementation.best_download_source
also deprecated Fetcher.get_best_source
Thomas Leonard [Tue, 31 May 2011 18:52:34 +0000 (31 19:52 +0100)]
Added support for optional dependencies
If <requires ... importance='optional'>, we try to select the best available
version of the dependency, but it's OK if nothing can be selected.
Tim Diels [Tue, 31 May 2011 09:04:03 +0000 (31 11:04 +0200)]
Delete archive file after <unpack>
Tim Diels [Tue, 31 May 2011 08:47:36 +0000 (31 10:47 +0200)]
Made DownloadSource and UnpackArchive stateless using a 'StepCommand'
Tim Diels [Tue, 31 May 2011 08:28:06 +0000 (31 10:28 +0200)]
Renamed type_from_filename back to type_from_url again
Tim Diels [Sun, 29 May 2011 17:01:31 +0000 (29 19:01 +0200)]
Fixed typo
Tim Diels [Mon, 9 May 2011 10:37:43 +0000 (9 12:37 +0200)]
Added <unpack/> step for <recipe>
Thomas Leonard [Sun, 29 May 2011 11:06:32 +0000 (29 12:06 +0100)]
Updated exception handling to Python 2.6 syntax
0install now depends on Python >= 2.6.
The command used was:
2to3 -wn -f except -f numliterals zeroinstall 0launch 0store 0alias 0desktop 0store-secure-add 0install tests zeroinstall/0launch-gui
Thomas Leonard [Sun, 29 May 2011 10:16:51 +0000 (29 11:16 +0100)]
Omit 'stability' attribute when writing selections
It's not useful, and may be confusing (is it the upstream stability or the
user's override?).
Thomas Leonard [Sat, 28 May 2011 17:37:05 +0000 (28 18:37 +0100)]
Added runner.Setup
This splits up the logic for running a Selections document, which may be useful
for programs that need to modify the process.
Thomas Leonard [Mon, 23 May 2011 08:10:44 +0000 (23 09:10 +0100)]
Start development series 1.0-post
Thomas Leonard [Mon, 23 May 2011 08:10:43 +0000 (23 09:10 +0100)]
Release 1.0
Bastian Eicher [Fri, 20 May 2011 04:28:02 +0000 (20 06:28 +0200)]
Added "mode" to <environment>'s _toxml method
Thomas Leonard [Wed, 11 May 2011 19:33:56 +0000 (11 20:33 +0100)]
Fixed test for empty list of implementation dirs config files
Bastian Eicher [Thu, 5 May 2011 16:02:26 +0000 (5 18:02 +0200)]
Aggregate implementation-dirs config files from multiple locations
Tim Diels [Sat, 30 Apr 2011 07:32:53 +0000 (30 09:32 +0200)]
Environment binding: added separator attribute
Anders F Bjorklund [Sun, 24 Apr 2011 08:00:45 +0000 (24 10:00 +0200)]
Fix the uname machine, on darwin/macosx
Thomas Leonard [Fri, 29 Apr 2011 08:57:53 +0000 (29 09:57 +0100)]
Start development series 1.0-rc1-post
Thomas Leonard [Fri, 29 Apr 2011 08:57:51 +0000 (29 09:57 +0100)]
Release 1.0-rc1
Thomas Leonard [Mon, 25 Apr 2011 17:43:44 +0000 (25 18:43 +0100)]
Moved win32-specific code inside win32 if block
Bastian Eicher [Sat, 23 Apr 2011 15:16:41 +0000 (23 17:16 +0200)]
Detect 64bit Windows from within 32bit Python
gfxmonk [Tue, 19 Apr 2011 11:29:03 +0000 (19 21:29 +1000)]
Add rubygems to the list of natively supported file formats (since it is basically a x-compressed-tar)
Thomas Leonard [Sun, 17 Apr 2011 16:11:02 +0000 (17 17:11 +0100)]
Fixed bug when using PackageKit to query multiple packages at once
Error reported was "KeyError: Task(fetch_candidates)"
Thomas Leonard [Sat, 16 Apr 2011 10:15:19 +0000 (16 11:15 +0100)]
Added explicit Python dependency for unit-tests too
This removes the need for the "allpython.sh" script, since 0test can now try
with different versions.
Thomas Leonard [Sat, 16 Apr 2011 08:58:56 +0000 (16 09:58 +0100)]
Made 0launch depend on Python explicitly
Bastian Eicher [Sat, 9 Apr 2011 13:20:41 +0000 (9 15:20 +0200)]
Better off-line solver error message
Removed remains of old code that was supposed to do this.
Thomas Leonard [Sat, 9 Apr 2011 08:34:26 +0000 (9 09:34 +0100)]
Start development series 0.54-post
Thomas Leonard [Sat, 9 Apr 2011 08:34:25 +0000 (9 09:34 +0100)]
Release 0.54
Bastian Eicher [Sat, 9 Apr 2011 08:22:02 +0000 (9 09:22 +0100)]
Changed model._pretty_escape to only preserve : on Posix systems
Thomas Leonard [Wed, 6 Apr 2011 17:28:48 +0000 (6 18:28 +0100)]
Cache explorer deletes new interface config file, not the old one
Also, updated man-page to give the new path for per-interface configuration and
stopped list_all_interfaces from looking there too.
Thomas Leonard [Sun, 27 Mar 2011 16:07:51 +0000 (27 17:07 +0100)]
Explain how to remove unneeded local feeds
New syntax for 'remove-feed' to allow this.
Thomas Leonard [Sun, 27 Mar 2011 15:44:01 +0000 (27 16:44 +0100)]
Don't abort if a local feed is missing
The staleness check was throwing an exception.
Also, added more unicode work-arounds in exception handling
gfxmonk [Sun, 27 Mar 2011 10:30:15 +0000 (27 21:30 +1100)]
Use XML-specified type and start-offset attributes when extracting an archive as part of a recipe
Thomas Leonard [Sun, 27 Mar 2011 07:42:48 +0000 (27 08:42 +0100)]
Don't pass LC_ALL to getlocale()
Raises the error "category LC_ALL is not supported" if there are different
locale settings (e.g. LANG=es_ES.UTF8 LC_COLLATE=en_GB.UTF8).
Closes bug#929902 and others.
Thomas Leonard [Sun, 27 Mar 2011 06:49:31 +0000 (27 07:49 +0100)]
Changed Compile button to do Autocompile
Suggested by Tim Cuthbertson.
Thomas Leonard [Sat, 26 Mar 2011 15:26:45 +0000 (26 15:26 +0000)]
Fixed namespace prefix generation for elements
Thomas Leonard [Wed, 23 Mar 2011 20:10:17 +0000 (23 20:10 +0000)]
Improved selection based on language choices
Convert all '_' to '-' to avoid problems with the format of $LANG vs xml:lang.
Rank languages, instead of just testing whether we know them or not.
By default, rank English lower than the current locale but better than other
languages, since English is usually a good bet if your native language isn't
available.
Thomas Leonard [Mon, 21 Mar 2011 11:50:08 +0000 (21 11:50 +0000)]
Merged cache explorer branch
Thomas Leonard [Mon, 21 Mar 2011 11:15:43 +0000 (21 11:15 +0000)]
Renamed 'interface' to 'feed' in cache explorer
Now shows all registered local feeds too.
Thomas Leonard [Mon, 21 Mar 2011 10:32:36 +0000 (21 10:32 +0000)]
Display arch for implementations in cache explorer, not digest
Thomas Leonard [Mon, 21 Mar 2011 10:32:36 +0000 (21 10:32 +0000)]
Changed "Copy URI to Clipboard" to "Copy URI"
It now also updates PRIMARY, like browsers do.
Thomas Leonard [Mon, 21 Mar 2011 10:32:36 +0000 (21 10:32 +0000)]
Bug fixes
- Fixed bug displaying invalid interfaces
- Removed some debug print statements
gfxmonk [Sat, 19 Mar 2011 12:17:33 +0000 (19 23:17 +1100)]
Cache explorer UI changes
UI Changes:
- Show the name of each package in bold (as well as the URI)
- Tooltip is now just the description, and is implemented by setting the tooltip column (I'm not sure if the old query_tooltip method provided anything extra, but if it does I couldn't detect it)
- Sort options - URI, Name and Size
- Filter options: feeds with/without impls, local / remote feeds
- 0 size is represented as "-"
- Leave error and unknown interfaces collapsed on load
- Remote Interfaces (but not local ones) can be deleted - this will delete all cached implementations (not touching local impls) and the interface itself.
- Interactive search works (always searches on name)
- Right-click context menu for interfaces with actions:
- Launch in GUI
- copy interface URI
- delete
Code stuff:
- Column indexes are replaced with column objects (that know their type, index, name, etc)
- Sections are replaced with section objects
- get_children(model, iter) helper method
- model values are set with a call to extract_columns(), making use of named paramaters (so that order doesn't matter, and all non-provided values can be sensibly defaulted)
- added SORT_OPTIONS and FILTER_OPTIONS, which do what you might expect.
- tooltips are implemented by setting the tooltip column in the .ui file. It doesn't appear that `query_tooltip` did anything more fancy.
- CacheExplorer.model has been replaced with raw_model(for setting data) and view_model.get_model() (for getting / updating data). There is a convenience getter on CacheExplorer (.model) to get view_model.get_model(). This is required for filtered views to work.
- ValidInterface now has two concrete sub-classes, LocalInterface and RemoteInterface. The split is based on whether the URI exists as a path. This will treat now-missing local feeds as a remote feed, but that seems reasonable (it's no longer present, so it should be deletable).
- added a SAFE_MODE flag to just print out file deletions, instead of doing so (for development)
Added names to the cache view; tweaked UI a bunch
Thomas Leonard [Sun, 20 Mar 2011 16:18:37 +0000 (20 16:18 +0000)]
Run the GUI using sys.executable
Avoids having to change the #! line depending on how Python is named.
Thomas Leonard [Sun, 20 Mar 2011 14:14:57 +0000 (20 14:14 +0000)]
Added a special-case so we always find an implementation of Python
If we can't find a distribution package for Python, add the version of
Python currently interpreting 0install as a candidate.
This is a temporary hack so that programs can state their dependency on Python
explicitly without breaking on platforms where we don't support the native
package manager.
Many feeds currently assume that Python must be installed, since 0install itself
depends on it, and use a #! line to run it. However, this doesn't work on
Windows or on Linux systems where "python" is now Python 3.
Thomas Leonard [Sun, 20 Mar 2011 14:19:49 +0000 (20 14:19 +0000)]
Cope better with missing details from PackageKit
Before, we only coped if it returned nothing. Now we also cope with it failing
to return everything we asked for, even if it did return some things.
Anders F Bjorklund [Sat, 19 Mar 2011 09:46:29 +0000 (19 10:46 +0100)]
Updated Swedish translation
Thomas Leonard [Sun, 20 Mar 2011 11:19:18 +0000 (20 11:19 +0000)]
Updated translations
Anders F Bjorklund [Thu, 17 Mar 2011 17:08:46 +0000 (17 18:08 +0100)]
Added 128x128 and SVG versions of the 0install icon
Aleksey Lim [Mon, 14 Mar 2011 19:10:13 +0000 (14 19:10 +0000)]
Disconnect from dbus signals
Otherwise, it is easy to reach to connects limit, ie,
get org.freedesktop.DBus.Error.LimitsExceeded dbus fails.
Thomas Leonard [Sun, 13 Mar 2011 16:05:29 +0000 (13 16:05 +0000)]
Start development series 0.53-post
Thomas Leonard [Sun, 13 Mar 2011 16:05:28 +0000 (13 16:05 +0000)]
Release 0.53
Thomas Leonard [Sun, 13 Mar 2011 16:05:17 +0000 (13 16:05 +0000)]
Don't include .gitignore in release archives
Thomas Leonard [Sun, 13 Mar 2011 11:33:54 +0000 (13 11:33 +0000)]
Changed "Trying mirror server" message from warning to info level
Thomas Leonard [Sun, 13 Mar 2011 10:38:23 +0000 (13 10:38 +0000)]
<command> elements take precedence over attributes
Before, in <group main='a'><command name='run' path='b'/></group>,
the group would take its run command from the attribute.
This makes it possible to provide a command element that's only
used with 0launch >= 0.53 (avoiding the <runner> bug on older
versions).
Thomas Leonard [Sat, 12 Mar 2011 20:51:33 +0000 (12 20:51 +0000)]
Added configuration setting to automatically approve keys
If:
- 'auto_approve_keys' is on (the default),
- this is the first time we've seen this feed (not an update), and
- the key is known to the key info server
Then we automatically approve the key without asking the user. Whatever
the setting, we always notify the user about new keys when updating a
feed.
Thomas Leonard [Sat, 12 Mar 2011 18:14:33 +0000 (12 18:14 +0000)]
Added TrustMgr object
This moves the logic for fetching keys from the key server out of Handler.
Thomas Leonard [Sat, 12 Mar 2011 12:59:51 +0000 (12 12:59 +0000)]
Fixed "decide function returned None!" bug
If there were multiple commands with the same <runner> then we added all the
runner's commands to the SAT problem multiple times. However, we only
remembered the most recent set when it came to choosing.
Added a test-case for it, based on test case reported by Tim Cuthbertson.
Thomas Leonard [Thu, 10 Mar 2011 18:47:29 +0000 (10 18:47 +0000)]
Also updated tests and GUI using 2to3
Thomas Leonard [Wed, 9 Mar 2011 20:52:30 +0000 (9 20:52 +0000)]
Updated to newer Python syntax where possible
These are changes that are needed for Python 3, but which still work on Python
2.5.
The command used was:
2to3 -wn -f apply -f future -f has_key -f import -f long -f paren -f reduce -f repr -f sys_exc -f tuple_params zeroinstall 0launch 0store 0alias 0desktop 0store-secure-add 0install
Bastian Eicher [Tue, 8 Mar 2011 22:22:26 +0000 (8 23:22 +0100)]
Select first <summary> or <description> entry if _best_language_match() can't find a match
Anders F Bjorklund [Mon, 7 Mar 2011 11:10:13 +0000 (7 12:10 +0100)]
Support lzma/xz when using non-GNU tar
Anders F Bjorklund [Mon, 7 Mar 2011 11:08:56 +0000 (7 12:08 +0100)]
Guess MIME-types automatically for tbz/tlz/txz suffixes
Anders F Bjorklund [Mon, 8 Nov 2010 18:43:06 +0000 (8 19:43 +0100)]
Get unxz though 0install if unxz isn't installed natively
Bastian Eicher [Tue, 2 Nov 2010 23:43:48 +0000 (3 00:43 +0100)]
Split languages codes by a hyphen (-) instead of an underscore (_)
This fits W3C's definition of the "xml:lang" attribute:
http://www.w3.org/TR/REC-xml/#sec-lang-tag
Also, the selection logic has changed:
- If the user didn't set a preferred language, assume they want "en_US"
- If a <summary> doesn't specify a language, assume it's "en"
- If there's no exact match, and no language match, default to the "en" entry
Thomas Leonard [Sun, 27 Feb 2011 16:03:47 +0000 (27 16:03 +0000)]
Removed unused imports
Thomas Leonard [Sun, 27 Feb 2011 15:58:01 +0000 (27 15:58 +0000)]
Added IfaceCache.usable_feeds
Thomas Leonard [Sun, 27 Feb 2011 15:29:16 +0000 (27 15:29 +0000)]
Adder driver module
Driver class performs the non-deprecated functions of Policy (which
now just forwards to Driver).