zeroinstall/solver.git
11 years agoDirectly embedded certificate bundle from certifi library (replaced EquifaxSecureCA)
Bastian Eicher [Sat, 23 Jun 2012 10:39:21 +0000 (23 12:39 +0200)]
Directly embedded certificate bundle from certifi library (replaced EquifaxSecureCA)

11 years agoMerged changes from master
Bastian Eicher [Sat, 23 Jun 2012 09:50:32 +0000 (23 11:50 +0200)]
Merged changes from master

11 years agoTypo in previous patch
Bastian Eicher [Sat, 23 Jun 2012 07:52:40 +0000 (23 08:52 +0100)]
Typo in previous patch

11 years agoSwitched back to TemporaryFile when auto_delete = True
Thomas Leonard [Thu, 21 Jun 2012 18:40:45 +0000 (21 19:40 +0100)]
Switched back to TemporaryFile when auto_delete = True

TemporaryFile is cleaned up automatically by the OS, whereas NamedTemporaryFile
isn't.

11 years agoDo not check for extraction utilities (e.g., unzip) when ZEROINSTALL_EXTERNAL_STORE...
Bastian Eicher [Thu, 21 Jun 2012 17:12:45 +0000 (21 19:12 +0200)]
Do not check for extraction utilities (e.g., unzip) when ZEROINSTALL_EXTERNAL_STORE environment variable is set

11 years agoDepend explicitly on GnuPG
Thomas Leonard [Thu, 21 Jun 2012 18:27:43 +0000 (21 19:27 +0100)]
Depend explicitly on GnuPG

Suggested by Bastian Eicher - on Windows gpg can't be assumed to be in the PATH
and the Windows version of Zero Install does not place its bundled version of
GnuPG there.

11 years agoFixed bug with external store when type or extract is not given
Bastian Eicher [Thu, 21 Jun 2012 13:24:20 +0000 (21 15:24 +0200)]
Fixed bug with external store when type or extract is not given

Do not try to pass None as process arguments in fetch._add_to_external_store:
default extract directory to empty string, default MIME type to MIME type guess
based on URL.

11 years agoDelete temporary files on abort, even for auto_delete = False
Thomas Leonard [Thu, 21 Jun 2012 06:08:58 +0000 (21 07:08 +0100)]
Delete temporary files on abort, even for auto_delete = False

11 years agoMerged changes from master
Bastian Eicher [Mon, 18 Jun 2012 12:58:32 +0000 (18 14:58 +0200)]
Merged changes from master

11 years agoProvide external store binary via ZEROINSTALL_EXTERNAL_STORE environment variable
Bastian Eicher [Mon, 11 Jun 2012 14:48:27 +0000 (11 16:48 +0200)]
Provide external store binary via ZEROINSTALL_EXTERNAL_STORE environment variable

This is needed on Windows, since only the .NET code knows how to handle
symlinks and executable bits correctly and how to use ACLs to make the
directories read-only.

11 years agoUse XDG_* environment variables even on Windows
Thomas Leonard [Thu, 14 Jun 2012 07:13:57 +0000 (14 08:13 +0100)]
Use XDG_* environment variables even on Windows

Based on patch from Dave Abrahams.

11 years agoAllow passing requirements to "0install select APP"
Thomas Leonard [Sun, 17 Jun 2012 07:42:34 +0000 (17 08:42 +0100)]
Allow passing requirements to "0install select APP"

Shows the selections that would result from the new requirements, and displays
a message about using "0install update" to save them.

11 years agoSimplified Windows Java detection
Thomas Leonard [Sat, 16 Jun 2012 08:09:05 +0000 (16 09:09 +0100)]
Simplified Windows Java detection

11 years agoAdded 'Windows' distribution name for package-implementation
Thomas Leonard [Sat, 16 Jun 2012 08:00:03 +0000 (16 09:00 +0100)]
Added 'Windows' distribution name for package-implementation

11 years agoAdded JRE/JDK 7 support on Windows
Bastian Eicher [Fri, 15 Jun 2012 23:26:22 +0000 (16 01:26 +0200)]
Added JRE/JDK 7 support on Windows

11 years agoReplaced remaining Policy references with Driver
Bastian Eicher [Fri, 15 Jun 2012 23:45:12 +0000 (16 01:45 +0200)]
Replaced remaining Policy references with Driver

11 years agoRemoved obsolete code for handling non-XML signatures
Thomas Leonard [Wed, 13 Jun 2012 18:51:29 +0000 (13 19:51 +0100)]
Removed obsolete code for handling non-XML signatures

11 years ago0install update: reload feed after running the GUI
Thomas Leonard [Wed, 13 Jun 2012 17:55:45 +0000 (13 18:55 +0100)]
0install update: reload feed after running the GUI

When updating an interface that wasn't already cached, this could also give the
error:

ValueError: max() arg is an empty sequence

11 years agoUse ZEROINSTALL_PORTABLE_BASE environment variable to override normal XDG directory...
Bastian Eicher [Tue, 12 Jun 2012 22:50:05 +0000 (13 00:50 +0200)]
Use ZEROINSTALL_PORTABLE_BASE environment variable to override normal XDG directory resolution

11 years agoFixed some imports (pyflakes)
Thomas Leonard [Sat, 9 Jun 2012 13:50:11 +0000 (9 14:50 +0100)]
Fixed some imports (pyflakes)

11 years agoAtomic updates for the icon cache
Thomas Leonard [Sat, 9 Jun 2012 12:13:38 +0000 (9 13:13 +0100)]
Atomic updates for the icon cache

11 years agoRemoved old Policy class
Thomas Leonard [Sat, 9 Jun 2012 11:56:53 +0000 (9 12:56 +0100)]
Removed old Policy class

Policy has been deprecated since 0.53.

11 years agoAdded <command name='0install' ...> to allow running 0install instead of 0launch
Thomas Leonard [Sat, 9 Jun 2012 08:48:08 +0000 (9 09:48 +0100)]
Added <command name='0install' ...> to allow running 0install instead of 0launch

11 years agoUpdated Policy tests to test Driver instead
Thomas Leonard [Sat, 9 Jun 2012 08:19:56 +0000 (9 09:19 +0100)]
Updated Policy tests to test Driver instead

Also, trying to create a Policy now issues a warning.

11 years agoAdded JRE/JDK 7 support
Bastian Eicher [Thu, 7 Jun 2012 09:44:16 +0000 (7 11:44 +0200)]
Added JRE/JDK 7 support

11 years agoBetter diagnostics if testRejectKey fails
Thomas Leonard [Tue, 5 Jun 2012 20:17:21 +0000 (5 21:17 +0100)]
Better diagnostics if testRejectKey fails

11 years agoDon't try to use mirror while testing
Thomas Leonard [Tue, 5 Jun 2012 17:09:23 +0000 (5 18:09 +0100)]
Don't try to use mirror while testing

Error was:

AttributeError: TestConfig instance has no attribute 'feed_mirror'

11 years agoFixed some bugs in the bug reporter
Thomas Leonard [Tue, 5 Jun 2012 17:03:24 +0000 (5 18:03 +0100)]
Fixed some bugs in the bug reporter

The thank you dialog was a child of the bug reporter box, but that got destroyed immediately afterwards.
The link to see the existing bug reports was invisible.

11 years agoUpdated GUI to use new Driver API
Thomas Leonard [Tue, 5 Jun 2012 16:24:42 +0000 (5 17:24 +0100)]
Updated GUI to use new Driver API

11 years agoBugfix: the GUI showed source feeds as unavailable, even when we wanted source code
Thomas Leonard [Tue, 5 Jun 2012 16:15:28 +0000 (5 17:15 +0100)]
Bugfix: the GUI showed source feeds as unavailable, even when we wanted source code

11 years agoAdded Solver.get_arch_for
Thomas Leonard [Tue, 5 Jun 2012 15:50:06 +0000 (5 16:50 +0100)]
Added Solver.get_arch_for

11 years agoFixed bug reporting errors when removing feeds
Thomas Leonard [Tue, 5 Jun 2012 15:05:10 +0000 (5 16:05 +0100)]
Fixed bug reporting errors when removing feeds

11 years agoFixed bug when reopening the preferences window
Thomas Leonard [Tue, 5 Jun 2012 15:03:43 +0000 (5 16:03 +0100)]
Fixed bug when reopening the preferences window

11 years agoRemoved some unnecessary uses of Policy
Thomas Leonard [Tue, 5 Jun 2012 14:58:37 +0000 (5 15:58 +0100)]
Removed some unnecessary uses of Policy

11 years agoDocument when config.py was added
Thomas Leonard [Tue, 5 Jun 2012 14:27:30 +0000 (5 15:27 +0100)]
Document when config.py was added

11 years agoWorkaround: let gobject.MainLoop() construct its own default context
Dave Abrahams [Sun, 3 Jun 2012 22:51:29 +0000 (3 18:51 -0400)]
Workaround: let gobject.MainLoop() construct its own default context

Works around http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=580791
which is present in pygobject < 2.28

11 years agoRemoved forwarding of stdin to server process
Thomas Leonard [Mon, 4 Jun 2012 13:27:38 +0000 (4 14:27 +0100)]
Removed forwarding of stdin to server process

Only the parent (client) cares about this.

11 years agoUse Popen instead of fork() for the testing server
Dave Abrahams [Sat, 19 May 2012 15:15:05 +0000 (19 09:15 -0600)]
Use Popen instead of fork() for the testing server

11 years agoCope with the user cancelling a background update
Thomas Leonard [Sun, 27 May 2012 12:25:24 +0000 (27 13:25 +0100)]
Cope with the user cancelling a background update

Error reported was:

AttributeError: 'NoneType' object has no attribute 'toDOM'

11 years agoAdded '0install whatchanged' command
Thomas Leonard [Sun, 27 May 2012 11:58:12 +0000 (27 12:58 +0100)]
Added '0install whatchanged' command

11 years agoOpen files in binary mode for Windows portability
Dave Abrahams [Sat, 19 May 2012 15:15:07 +0000 (19 09:15 -0600)]
Open files in binary mode for Windows portability

11 years agoWindows: use support.portable_rename in various places
Thomas Leonard [Sun, 27 May 2012 09:33:31 +0000 (27 10:33 +0100)]
Windows: use support.portable_rename in various places

11 years agoAdded "0install select APP"
Thomas Leonard [Sat, 26 May 2012 14:25:39 +0000 (26 15:25 +0100)]
Added "0install select APP"

Shows the current selections.

11 years agoMerged changes from master
Bastian Eicher [Wed, 23 May 2012 17:10:42 +0000 (23 19:10 +0200)]
Merged changes from master

11 years agoMerge app branch
Thomas Leonard [Mon, 21 May 2012 18:43:48 +0000 (21 19:43 +0100)]
Merge app branch

This adds two commands for adding and removing 'apps':

  0install add NAME URI
  0install destroy NAME

Apps are a bit like aliases (and are intended to replace them). The main
difference between apps and aliases is that apps store their current selections
(in ~/.config/0install.net/apps/NAME/selections.xml). This means that they
start faster, because the solver isn't needed.

In the future, apps should also provide better desktop integration features and
make it easier to see what changed in an update.

11 years agoUpdated @since epydoc for new release
Thomas Leonard [Mon, 21 May 2012 18:38:48 +0000 (21 19:38 +0100)]
Updated @since epydoc for new release

11 years agoFix broken msgstr syntax
Anders F Bjorklund [Sun, 20 May 2012 13:57:13 +0000 (20 15:57 +0200)]
Fix broken msgstr syntax

11 years agoUpdated translations
Thomas Leonard [Sun, 20 May 2012 14:41:40 +0000 (20 15:41 +0100)]
Updated translations

11 years agoStart development series 1.8-post
Thomas Leonard [Sat, 19 May 2012 09:49:37 +0000 (19 10:49 +0100)]
Start development series 1.8-post

11 years agoRelease 1.8
Thomas Leonard [Sat, 19 May 2012 09:49:36 +0000 (19 10:49 +0100)]
Release 1.8

11 years agoWhen solving for the command 'test', include use='testing' dependencies
Thomas Leonard [Sat, 19 May 2012 09:32:00 +0000 (19 10:32 +0100)]
When solving for the command 'test', include use='testing' dependencies

This is deprecated, but some old feeds use it.

11 years agoAdded 'build' to .gitignore
Dave Abrahams [Wed, 25 Apr 2012 17:45:10 +0000 (25 13:45 -0400)]
Added 'build' to .gitignore

11 years agoSSL support: Use the "certifi" library's certificate bundles if available
Dave Abrahams [Wed, 25 Apr 2012 18:32:54 +0000 (25 14:32 -0400)]
SSL support: Use the "certifi" library's certificate bundles if available

11 years agoMore unit-tests for apps
Thomas Leonard [Sun, 13 May 2012 13:25:00 +0000 (13 14:25 +0100)]
More unit-tests for apps

11 years agoSave requirements (e.g. --not-before) with apps
Thomas Leonard [Sun, 13 May 2012 13:10:28 +0000 (13 14:10 +0100)]
Save requirements (e.g. --not-before) with apps

11 years agoAdded app/last-check-attempt timestamp
Thomas Leonard [Sun, 13 May 2012 10:26:10 +0000 (13 11:26 +0100)]
Added app/last-check-attempt timestamp

Prevents multiple updates if we run the command several times quickly, and
prevents constant attempts to update when the network is unavailable.

11 years agoUpdated man-pages for applications
Thomas Leonard [Sun, 13 May 2012 10:14:13 +0000 (13 11:14 +0100)]
Updated man-pages for applications

11 years agoBackground updates for apps
Thomas Leonard [Fri, 11 May 2012 16:12:07 +0000 (11 17:12 +0100)]
Background updates for apps

11 years agoCheck for staleness
Thomas Leonard [Fri, 11 May 2012 15:55:32 +0000 (11 16:55 +0100)]
Check for staleness

11 years agoKeep a history of past selections
Thomas Leonard [Fri, 11 May 2012 15:44:18 +0000 (11 16:44 +0100)]
Keep a history of past selections

11 years ago"0install update" works on apps
Thomas Leonard [Fri, 11 May 2012 12:33:27 +0000 (11 13:33 +0100)]
"0install update" works on apps

11 years agoAdded experimental app support
Thomas Leonard [Wed, 9 May 2012 12:08:44 +0000 (9 13:08 +0100)]
Added experimental app support

Apps work a bit like aliases, except that they store the selections XML. This
allows them to start faster.

11 years ago.gitignore update
Thomas Leonard [Sun, 13 May 2012 10:20:28 +0000 (13 11:20 +0100)]
.gitignore update

11 years agoFixed remove-feed for the case where the file no longer exists
Thomas Leonard [Sat, 12 May 2012 12:08:47 +0000 (12 13:08 +0100)]
Fixed remove-feed for the case where the file no longer exists

Was broken by baca69e8d9.

11 years agoFixed mirror code to work on Windows
Thomas Leonard [Sat, 12 May 2012 09:41:21 +0000 (12 10:41 +0100)]
Fixed mirror code to work on Windows

Was using os.path.join to create URLs.

Reported by Dave Abrahams.

11 years agoLimit number of concurrent downloads from a single site
Thomas Leonard [Thu, 10 May 2012 10:32:35 +0000 (10 11:32 +0100)]
Limit number of concurrent downloads from a single site

11 years agoInclude ID in explanation if versions are identical
Thomas Leonard [Wed, 9 May 2012 10:18:58 +0000 (9 11:18 +0100)]
Include ID in explanation if versions are identical

11 years agoImproved explanation strings
Thomas Leonard [Wed, 9 May 2012 10:08:18 +0000 (9 11:08 +0100)]
Improved explanation strings

11 years agoAvoid modifying existing restrictions list in justify_decision()
Thomas Leonard [Tue, 8 May 2012 13:20:01 +0000 (8 14:20 +0100)]
Avoid modifying existing restrictions list in justify_decision()

11 years agoMerged "Explain this decision" branch
Thomas Leonard [Tue, 8 May 2012 11:03:05 +0000 (8 12:03 +0100)]
Merged "Explain this decision" branch

11 years agoBetter message when forcing a version means not using that interface at all
Thomas Leonard [Tue, 8 May 2012 10:59:08 +0000 (8 11:59 +0100)]
Better message when forcing a version means not using that interface at all

11 years agoExplain why one version was ranked above another
Thomas Leonard [Tue, 8 May 2012 10:01:17 +0000 (8 11:01 +0100)]
Explain why one version was ranked above another

11 years agoExplain why the selected set of versions was better
Thomas Leonard [Tue, 8 May 2012 09:50:03 +0000 (8 10:50 +0100)]
Explain why the selected set of versions was better

11 years agoAdded "Explain this decision" menu item
Thomas Leonard [Tue, 8 May 2012 09:37:39 +0000 (8 10:37 +0100)]
Added "Explain this decision" menu item

11 years agoAdded SATSolver.justify_choice
Thomas Leonard [Tue, 8 May 2012 09:29:06 +0000 (8 10:29 +0100)]
Added SATSolver.justify_choice

This is helpful when trying to understand why something wasn't chosen.

11 years agoAdded solver.solve_for() convenience method
Thomas Leonard [Tue, 8 May 2012 08:45:38 +0000 (8 09:45 +0100)]
Added solver.solve_for() convenience method

Uses the new Requirements object to avoid duplicating the logic for selecting
the architecture.

11 years agoFixed handling of missing local feeds
Thomas Leonard [Mon, 7 May 2012 14:39:06 +0000 (7 15:39 +0100)]
Fixed handling of missing local feeds

Was broken by a44c9542556111.

12 years agoAdded two-argument form of add-feed
Thomas Leonard [Sun, 29 Apr 2012 16:09:51 +0000 (29 17:09 +0100)]
Added two-argument form of add-feed

12 years agoRemoved unused imports
Thomas Leonard [Thu, 26 Apr 2012 20:00:31 +0000 (26 21:00 +0100)]
Removed unused imports

12 years ago/dev/null => os.devnull, for portability
Dave Abrahams [Wed, 25 Apr 2012 17:45:19 +0000 (25 13:45 -0400)]
/dev/null => os.devnull, for portability

12 years agoRecognise "../" as the start of a relative path too
Thomas Leonard [Tue, 24 Apr 2012 17:45:57 +0000 (24 18:45 +0100)]
Recognise "../" as the start of a relative path too

12 years agoAdded Selection.get_path()
Thomas Leonard [Tue, 24 Apr 2012 17:08:57 +0000 (24 18:08 +0100)]
Added Selection.get_path()

Also, this gives a better error message when an implementation has no digests
(reported by Dave Abrahams).

12 years agoAllow command_name to be None if user_command is given
Thomas Leonard [Mon, 16 Apr 2012 16:49:20 +0000 (16 17:49 +0100)]
Allow command_name to be None if user_command is given

"0test -t" needs this.

12 years agoUse terminal instead of xterm, when running with quartz
Anders F Bjorklund [Sun, 15 Apr 2012 17:55:56 +0000 (15 19:55 +0200)]
Use terminal instead of xterm, when running with quartz

12 years agoAssume everything supports POSIX (except Windows)
Thomas Leonard [Sun, 15 Apr 2012 12:43:25 +0000 (15 13:43 +0100)]
Assume everything supports POSIX (except Windows)

12 years agoBetter error reason "Not source code"
Thomas Leonard [Sun, 15 Apr 2012 12:29:25 +0000 (15 13:29 +0100)]
Better error reason "Not source code"

If we were looking for source code, we reported "Unsupported machine type" for
binaries, which was confusing.

Reported by Dave Abrahams.

12 years agoRelax distribution version numbers
Anders F Bjorklund [Sun, 15 Apr 2012 09:27:29 +0000 (15 11:27 +0200)]
Relax distribution version numbers

12 years agoFixed epydoc
Thomas Leonard [Fri, 13 Apr 2012 16:38:23 +0000 (13 17:38 +0100)]
Fixed epydoc

12 years agoTry x-terminal-emulator first for <needs-terminal>
Thomas Leonard [Tue, 10 Apr 2012 19:02:29 +0000 (10 20:02 +0100)]
Try x-terminal-emulator first for <needs-terminal>

Reported by Dave Abrahams.

12 years agoMerged changes from master
Bastian Eicher [Tue, 10 Apr 2012 00:15:03 +0000 (10 02:15 +0200)]
Merged changes from master

12 years agoUpdated old code from Policy to Driver API
Thomas Leonard [Fri, 6 Apr 2012 14:06:37 +0000 (6 15:06 +0100)]
Updated old code from Policy to Driver API

12 years agoStart development series 1.7-post
Thomas Leonard [Fri, 6 Apr 2012 10:36:45 +0000 (6 11:36 +0100)]
Start development series 1.7-post

12 years agoRelease 1.7
Thomas Leonard [Fri, 6 Apr 2012 10:36:43 +0000 (6 11:36 +0100)]
Release 1.7

12 years agoFixed error solving with optional dependencies
Thomas Leonard [Thu, 5 Apr 2012 16:48:11 +0000 (5 17:48 +0100)]
Fixed error solving with optional dependencies

If the dependency contained no implementations and we needed to choose the
next variable to try, the result was:

File ".../zeroinstall/injector/solver.py", line 571, in find_undecided
   group = group_clause_for[uri]
KeyError: u'...'

This could easily happen if the feed for the dependency wasn't cached yet.

Reported by Tim Cuthbertson.

12 years agoUpdated background updater to use driver API
Thomas Leonard [Sat, 31 Mar 2012 14:32:45 +0000 (31 15:32 +0100)]
Updated background updater to use driver API

12 years agoDon't keep trying to check failed feeds that we never had
Thomas Leonard [Sat, 31 Mar 2012 14:17:44 +0000 (31 15:17 +0100)]
Don't keep trying to check failed feeds that we never had

Normally, if fetching a feed failed within the last hour then we
don't try again. But if we never managed to fetch the feed then we
always retried.

12 years agoMake sure the temporary .new files are cleaned up if feed validation fails
Thomas Leonard [Tue, 27 Mar 2012 11:23:17 +0000 (27 12:23 +0100)]
Make sure the temporary .new files are cleaned up if feed validation fails

12 years agoChanged PackageKit warning to info
Thomas Leonard [Mon, 26 Mar 2012 16:39:32 +0000 (26 17:39 +0100)]
Changed PackageKit warning to info

Ubuntu's PackageKit replacement seems to return lots of unconnected packages
without version numbers, leading to errors such as:

WARNING:packagekit:Can't parse distribution version '' for package 'dpkg-exec'

Change this to INFO level so that it is not shown by default.

Requested by Michel Alexandre Salim.

12 years agoWarn about replaced interfaces in "0install update"
Thomas Leonard [Sun, 25 Mar 2012 09:49:59 +0000 (25 10:49 +0100)]
Warn about replaced interfaces in "0install update"

12 years agoAttempting to create an alias to a replaced feed uses the replacement
Thomas Leonard [Sun, 25 Mar 2012 09:19:53 +0000 (25 10:19 +0100)]
Attempting to create an alias to a replaced feed uses the replacement