Now Win32 auto-updates are signed with an RSA key, and signature
is verified before installing them. The verification is performed
using OpenSSL for Windows, which is now compiled and distributed
along with Neubot for Windows.

Win32 auto-updates now enabled by default.

The availability of digital signature removes concerns over man
in the middle attacks while downloading the auto-update. So,
I have enabled auto-updates by default, similarly to what Neubot
does on MacOSX.

New results.html page to show results.

Alessio Palmero Aprosio and I have scrapped bittorrent.html and
speedtest.html (along with related javascripts), and we have
replaced them with a new results.html page, which is basically
the fusion of the two pages, plus tweaks. The enhancement in
the new page is that it allows you to choose what test results
you want to see, consolidating results navigation in a single
tab of the web user interface.

Note that this change also affects Neubot API. The /api/results
API (which returned raw data) has been renamed /api/data, while
the new /api/results is an API that tells results.html the number
and type of plots and tables to show, as well as the parameters
to pass to /api/data in order to retrieve the raw data.

Removed support for $HOME/.neubot/database.sqlite3 database.

$HOME/.neubot/database.sqlite3, also know as the user-wide
database, was the database used by Neubot on UNIX when invoked
by a non-privileged user. The problem with this database was
that it was not in sync with the system-wide one, leading to
a very confusing behavior. E.g., you run Neubot with your
user's permissions and it asks you to provide privacy permissions,
even though you already provided them (to the copy that runs
as a daemon).

Now, instead, the system-wide database is always used, even
when Neubot is run by a non-privileged user. Note that,
in such case, Neubot will print a warning when it tries to
write results to the database, since the database is read
only. (However, this should happen very rarely, since the
common case is that the command launched as an ordinary
user asks the daemon -which can write on the database- to
run the test on its behalf.)

New main() for MacOSX.

The new main() for MacOSX allows to start and stop the Neubot
daemon from the command line. It internally invokes launchctl(1)
to tell launchd(8) to start or stop the Neubot child.

Use /var/lib/neubot (instead of /var/neubot) under Linux.

Linux file-system standard (FHS) requires program data to
live in /var/lib/program. Instead, Neubot was adopting
the BSD convention to use /var/program. Starting from this
release, /var/lib/neubot is used on Linux systems, while
/var/neubot is used otherwise.

This allows to produce a Debian package that passes all
the checks of lintian(1), minus a warning.

Changed port used for test negotiation (9773 -> 8080).

Start migrating Neubot services on port 8080, since 9773 has
been reported to be filtered in certain cases.

Automatic install of M-Lab nodes.

Added support for automatic install of Neubot when a new
M-Lab node is installed (reinstalled). This dramatically
reduces the amount of time an M-Lab node is unused and
waiting for operator intervention. Prodded by and with
feedback and input from Stephen Soltesz (M-Lab).

New data.neubot.org site.

Neubot data has been re-organized and made available at
http://data.neubot.org. For now this is just a directory
where to put data, and more work is needed to make the
site more aesthetically pleasing.

Second round of log.py cleanups.

This release contains the second run of log.py cleanups
contributed this summer by Marco Scopesi, thanks!

Allow to force auto-update check on MacOSX.

You can now force Neubot on MacOSX to check for updates by
sending the USR1 signal to the parent process (the one that
is running as root, monitors the unprivileged child, and
takes care of automatic updates).