With Smolt we collect information about hard- and software to better prioritize development efforts.
Smolt consists of a three main components:
The client is used to submit data to the server. While the GUI client is run manually, the command line client is either run manually or through a cron job.
The server takes care of
These classes of data are being collected unless disabled:
First of all Smolt is free open source software. One of the benefits that brings is that you (or someones else) can freely study what Smolt does. That possibility alone is a reason why many people trust software libre better than proprietary software.
Smolt goes a long way to protect your privacy:
This allows people with private setups to safely submit their non-private data to the Smolt server.
Also, feel free to contact me with your privacy questions and concerns.
Here's a list of easy steps to a privacy-safe Smolt submission:
client.cfg
mirrors = False
in section [gentoo]
Where possible Smolt is auto-filtering potentially private information. Such places are:
To further increase transparency the Smolt client is logging the last 9 submissions for you in rotating fashion in ~/.smolt/
.
Three types of logs are kept:
~/.smolt/submission-distro.html.[1-9]
(distro-specific data sent, HTML)~/.smolt/submission.json.[1-9]
(all data sent, JSON)~/.smolt/submission.rst.[1-9]
(all data sent, reStructuredText)
The last submission is in files submission*.1
, the second last in files submission*.2
.
On the client side the user can configure which classes of data he wants to keep
to himself and which classes he is willing to share. The default config is
read from /etc/smolt/client.cfg
and can be overridden by ~/.smolt/client.cfg
.
Both files are ConfigParser files,
a superset of regular .ini files.
[any] arch = True cpu = True devices = True distro = True file_systems = True form_factor = True kernel = True language = True model = True ram_size = True run_level = True selinux = True swap_size = True vendor = True [gentoo] arch_related = True compile_flags = True features = True global_use_flags = True installed_packages = True installed_packages_use_flags = True mirrors_sync = True mirrors_distfiles = True package_mask = True repositories = True system_profile = True
The server instance can be configured though a file dev.cfg
. For now the only important keys are:
[global] sqlalchemy.dburi='mysql://smoon:smoon@localhost/smoon' server.socket_port=45678