This was WIP, working on the fstab / UUID problem, but stands on its
own; since others are zooming in on the fstab / UUID problem, close
down the branch.
This is experimental, off-by-default, code for developing a telemetry /
tracking configuration module. It is preliminary work for issue #628,
but also for KDE Neon configuration. Any telemetry should conform to
the KDE Telemetry Policy [1] or similar Free Software telemetry policy
(e.g. the Mozilla one).
[1] https://community.kde.org/Policies/Telemetry_Policy
Initial idea is to distinguish three kinds of tracking:
- installs. This tracks that OS <foo> has been installed somewhere.
It might send some machine information to a remote server.
- machines. This enables some kind of machine tracking in the
installed system, for instance it could enable popcon on
Debian, or periodic phone-home-pings.
- users. This enables some kind of telemetry / tracking on the
installed user in the system.
A simple and transparent setting is to enable install-tracking and set
it to opt-in, and disable machine and user tracking. Explain to the
user that <foo> would like to know when <foo> is installed, and that
the following information <d1>, <d2> will be sent to <url> in accordance
to the <foo> telemetry policy at <url2>.
Work in this branch is subject to VDG review for the visuals, and
privacy oversight by whatever group is responsible for <foo> privacy.
Note that this module makes it *possible* for telemetry configuration
to be visible inside the installer; what distro's do with telemetry
already is entirely outside the scope of this configuration module.
- Check for 'list' when it's actually a 'dict' is strange.
Reverse logic to consider 'str' a package name and everything
else is special.
- Refactor to handle the difference between package names and
packages-with-script-data in one place.
- Add code and config documentation.
- Switch sample configurations to dummy-backend.
When testing Python modules, passing option --lang should also
set the global 'locale' (to a BCP47 string, but hey) like it
already sets localeConf.LANG.
- For Boot and Device info widgets, add a retranslateUi() method,
since the labels change not only in response to translation
events but also UI events.
FIXES#779
- remove Job.gettextPath
- add libcalamares.utils.gettext_path()
- add libcalamares.utils.gettext_lang()
- modify examples in main.py
- add some gettext debug-output from dummypython
- correct namespace mis-labeling
- provide two forms of GlobalStorage
- regular use, has a JobQueue with storage
- testing use, creates GlobalStorage separately, provide
independent access to that for Python.
- Didn't run at all (at least since v3.1) because of mismatch between
GlobalStorage constructor arguments and use; special-case None
in the C++ code to allocate a new GlobalStorage object.
Add description of language and number formats to pretty status.
This is shown in the summary page. Refactor a little to produce
the strings only in one place. Constify methods.
FIXES: #564