0install 2.15

Thomas Leonard <[email protected]> Mon, 16 Dec 2019 17:05:52 +0000
Newsgroups gmane.comp.file-systems.zero-install.devel
Message-ID <CAG4opy_qyGo3DYYcD=p=0sc95PLr5LPSdy5H_tMK0-Bv7ekqBg@mail.gmail.com>
0install 2.15 is now available (source and generic binaries):

  https://0install.net/install-source.html
  https://0install.net/install-linux.html#generic


Changes since 2.14.1:

New features

- Add cohttp backend. This adds cohttp as an alternative to using
libcurl for downloads. As cohttp doesn't support FTP, it also adds a
very minimal FTP client implementation. The generic binaries are now
built using this and openssl (statically linked), which should avoid
the symbol version problems with libcurl. Distribution packages should
probably continue to use libcurl for now.

- The "0install --version" output now shows which HTTP backend is
used, and also whether D-Bus support has been compiled in.

Bug fixes

- Don't show stacktraces for expected errors unless `-v` is used. We
previously did this by only enabling stacktraces when `-v` was given.
However, newer versions of OCaml enable stacktraces by default.

- Fix detection of obus library. We looked for `obus.network-manager`,
but that got renamed to `obus.network_manager` when obus converted to
dune.

- Improve speed of apt-cache queries. If we wanted the apt-cache
results for a package but we didn't have them because a check was in
progress, then we started another apt-cache process. Now, we just wait
for the first one to finish. We also now only run one apt-cache query
at a time. These changes reduce the time to run "0install select -rc
0release" from 30s to 8s on my laptop.

- Don't abort if we can't save new app selections. Just log a warning.
Otherwise, you can't run an application at all if e.g. the filesystem
is read-only, or we are running inside a sandbox (e.g. when an opam
build recursively calls the opam binary).

Other changes:

- Use new keylookup.0install.net address for key information lookups.

Tests

- Build and test static binaries in CI.

- Test on OCaml 4.08 and 4.09. Drop support for 4.03 and 4.04, now
that Debian 10 is out.

Code cleanups / build fixes

- Replace Unmodified exception with return value.

- Make transitive OCaml library dependencies explicit.

- Fix select for dune 2.0 (Rudi Grinberg). In dune 2.0, one may not
use with_dbus and without_dbus as module names as they don't really
exist. They're just alternative sources for dbus.ml. The new naming
convention reflect that these are true modules and removes the
unnecessar `modules` field.

- Fix compiler warnings on OCaml 4.08. Error was: Error (alert
deprecated): module Stdlib.Pervasives

- Use "dune exec" in sample_client.py. After switching to dune, we no
longer get a symlink in the source directory.

- Replace Not_found with new OCaml 4.05 _opt functions.

- Add some missing dependencies to 0install.opam, for people building
from source.


-- 
talex5 (GitHub/Twitter)        http://roscidus.com/blog/
GPG: 5DD5 8D70 899C 454A 966D  6A51 7513 3C8F 94F6 E0CC