0install 2.9
Thomas Leonard <[email protected]>
| Newsgroups | gmane.comp.file-systems.zero-install.devel |
|---|---|
| Message-ID | <CAG4opy-wY0zFZLd6=-F0h_7RK3Hvoacz+uChMM06=gEZbD2n_Q@mail.gmail.com> |
0install 2.9 is now available (source and generic binaries): http://0install.net/install-source.html http://0install.net/install-linux.html#generic Since 2.8: New features - Added "0install select --may-compile". This can be used by tools such as 0compile to decide what components to build in order to run a program. When the may-compile option is set, we make a fake binary for each source impl, representing the binary that could be produced by compiling it. We use the same logic that 0compile uses to generate the binary XML. In future, we should be able to get 0compile to use this code directly. This is based on Tim Cuthbertson's autocompile patches. Changes - Requirements: only store values which differ from their default (Tim Cuthbertson). - 0install now knows that ARM 7 is backwards compatible with ARM 6. Bug fixes - Fix for mtime comparison with OCaml >= 4.02.2. We were rounding to the nearest integer to store it, but comparing with full precision. Now that OCaml reports fractions of a second, this meant that the test always failed and we always regenerated our cache of available distribution packages on some platforms. - If deleting gpg's temporary file fails, just log a warning. Otherwise, we mask the underlying error. Reported by Bastian Eicher. - GUI: delay starting the solve until the box is ready. Progress updates from the solve would get queued. Then the box would open and see that the solve had finished and highlight any problems. Then the queued updates would arrive and remove the highlighting again. - Fixed progress display during "0install search". We only displayed the console progress indicator when the GUI wasn't available, even though there's no GUI for searching, and we didn't clear it before displaying the search results. - Fixed refreshing of component boxes in the GUI. We stored the role when the box was opened and then always continued to use that. But now the role includes the impl_provider we need to update it for each new set of results. - Fixed impl_provider's caching of implementations. We first collected all implementations of an interface, cached this result, and then filtered depending on whether we wanted source or binary implementations. However, collecting all implementations requires deciding which feeds to look at, and this requires knowing whether we want source or not. Therefore, if we wanted to select both source and binaries of the same interface, we might incorrectly fail to consider some feeds. Build fixes - Fixed compile error when Sha module isn't available. - Disable safe_string for some files using Lwt. The Lwt API has changed in an incompatible way. Reported by Jeremy Yallop: https://github.com/ocaml/opam-repository/pull/3456 - Add fake gpg-agent for unit-testing with GnuPG 2.1. GnuPG now requires an agent, even though it doesn't need it for anything and there's no way to stop it trying to connect to it. See: http://stackoverflow.com/questions/27459869/how-to-stop-gpg-2-1-spawning-many-agents-for-unit-testing Code clean-ups - Moved generate_feed_description to Gui. This is something that should be shared between plugins. - Made Distro.is_installed function a method: is_installed_quick. Avoids the need to take a config argument and avoids the need to expose the 'is_installed' method. - Add local opam file. This makes it easy to get the build dependencies through opam automatically. - Improved type-safey of Impl.qdom. - command_qdom is now an Element.t. - Simplified tests with a default scope filter. - Report better errors if solver unit-test input is wrong. - Use Impl.make_command helper in more places. - Removed unused new_attr argument to make_command. - Added helper function Impl.local_dir_of. - Expose Feed.process_group and Element.make_impl functions. - Made Impl_provider.check_acceptability a top-level function. - Moved is_available definition out of method. - Made compare_impls_full a top-level function. - Added abstract types Arch.machine and Arch.os. - Moved scope_filter to its own module. - Tidied up impl_provider API. - Added `binary_of source impl_type. - Simplified SELECTIONS module type. - Removed unused use_gui argument to GUI plugins. - In unit-tests, display Would_exec/Would_spawn exceptions nicely. - feed.ml: extract toplevel create_impl and process_group_properties functions (Tim Cuthbertson). - Test 0install with Travis CI. -- Dr Thomas Leonard http://roscidus.com/blog/ GPG: DA98 25AE CAD0 8975 7CDA BD8E 0713 3F96 CA74 D8BA ------------------------------------------------------------------------------