From: Thomas L. <ta...@gm...> - 2017-11-15 14:23:25
|
0install 2.12.3 is now available (source and generic binaries): http://0install.net/install-source.html http://0install.net/install-linux.html#generic The main changes are fixing the bug reporter and adding support for OCaml 4.06 and Lwt 3.0. I also tidied up the distribution-handling code a little, and made some improvements and bug-fixes around there too. Since 2.12.2: Changes - Use api.0install.net for bug reports. SourceForge no longer allows us to send email from their web server, so the bug reporter had stopped working. I have moved the bug service to a different host (and migrated the rest of the web-site to GitHub, which should be more reliable). - Add progress display for apt-cache queries. This allows the user to see what's happening and, in the GUI, to cancel it. Bug fixes - Don't report Lwt.Canceled warnings if apt-cache is cancelled (e.g. by closing the GUI window quickly). - Protect gnupg invocations with a mutex. gnupg does not work reliably when multiple processes are using the keyring at once (at least on OS X). - Fix package filtering on Debian. We intended to pass only available packages to PackageKit, but treated a cached negative result as a valid package. Discovered while cleaning up the apt-cache code, which is now in its own sub-module. - Fix curl connection leak when reporting bugs. Code cleanups - Replace camlp4 build dependency with cppo. camlp4 is old, large and incompatible with newer technologies such as ppx and jbuilder. - Remove dependency on extlib. We were only using the Base64 module (we now bundle a simple decoder). Note: testing with afl-fuzz, it seems that the new decoder is stricter than extlib about malformed input, but it should process valid input the same. - Re-enable safe-string everywhere. We now depend on a recent Lwt anyway. - Update the GUI to log a warning if the refresh thread fails. - Cleaned up the distro code a bit: - Separate out Distro.t from the provider API. This makes it clearer which parts of the API are for users of distributions, and which are things that should be provided by each distribution implementation. - Split out the interface that *must* be implemented (Distro.provider) from the helper base-class (distribution). - Move is_installed_quick out of the provider API. Nothing needs to override this. - Move Debian apt-cache and dpkg-query handling to submodules. - Use OCaml 4.02 match exception syntax. This is simpler and more reliable, as we only catch exceptions from the match expression. - Split out Distro.with_main_path from add_package_implementation. - Remove unused ?init argument on get_impls_for_feed. - Move Distro.query to a submodule and make abstract. - Add Impl.make helper. Build updates - Pre-trust keys in Travis tests. Avoids the build failing if the key server is slow. - Fix build for Lwt 3.0. `lwt.glib` is now `lwt_glib`. - Fix dynlink when building byte-code. - Don't install the gui_gtk.cmxa file. This was due to a lazy attempt at matching .cma and .cmxs that accidentally matched .cmxa too. - Fix Travis on OS X again. -- talex5 (GitHub/Twitter) http://roscidus.com/blog/ GPG: 5DD5 8D70 899C 454A 966D 6A51 7513 3C8F 94F6 E0CC |