- Implement various ways of getting the LNF; the process-based one
uses a recent CLI-tool from the Plasma developers.
- Fill the UI with (meaningless) LNF package IDs.
Do a better job determining what the arguments could mean; this supports
lazy devlopers who don't want to pass in full paths to all kinds of things.
Simple invocation can now be:
testmodule.py <modulename> - +
to read <modulename>.conf from src/modules/<modulename>/
This, kids, is why you don't switch writing C++ and Python too often.
The C++ code isn't a syntax error in Python, although this would fail
at runtime.
Update documentation, add a new key *skip_if_no_internet* to support
systems that **recommend** having an internet connection (but don't
require it), and which also use the packages module. This prevents
a long delay while the package manager tries to access the internet
and times out (repeatedly).
Existing configurations are unchanged.
Use dict methods, in particular d.get(k, v), to retrieve
the pretty_name() function (or None if it isn't there).
Using getattr() on a dict will not return values in the
dict.
For called processes, replace the not-very-useful type message
with the command-explanation, and replace the value (previously
command-explanation) by the stderr of the failed command.
FIXES#865
This is why the whole refactoring started: to get the process output
and exit code in one spot so we can attach the process output
to the (Python exception) CalledProcessError in all the code
paths, not just those that are explicitly looking for output.
- Add a more general targetEnvCommand() that returns both
error code and process output.
- Change existing targetEnvCall() and targetEnvOutput()
to use general form while discarding some data.
- Refactor, internal _handle_check_target_env_call_error doesn't need
to be in header or visible.
- Add optional output (of the command) to the Python exception.
Root is always selected, can't be unselected, and has its own explicit
constructor and name. This resolves issue reported where unchecking
all *visible* groups caused the root to be unchecked, after which
hidden-but-still-selected subgroups were not installed.
Reported by crazy@
Adds a "tracking" module which allows configuring phone-home,
machine and user tracking. Additional machine-tracking types
could be defined depending on distro needs.
This is not the final version -- there is still polishing to
do on the icons, perhaps layout.
Tested in KDE Neon devunstable by keeping an existing partition
which had an older Neon running. New machine-id is generated
and sed'ded into place.
FIXES#783
Following KDE Pholio M116, switch to using a radio button; instead
of 4 individually toggle-able settings, use a "level" indicator
to select none, install, machine, user .. each of which implies
the previous levels. Each level is individually enable-able from
the distro side.
If a subgroup is hidden, then it should be considered
selected if its parent is selected or partially-selected.
If the parent group is totally unselected, then the hidden
subgroup shouldn't be installed either. This allows putting
required-packages into a group, without cluttering the
interface.
FIXES#864
While walking up the tree, only switch the selectedness states
of parents with children. This avoids the case where a parent
has a first subgroup that is hidden -- in which case the
parent ends up with no children, and is unselected even though
it is marked as selected in the config file.
FIXES#864
Relying on auto-qobject deletion on shutdown generates a warning message
17:23:44 [0]: QBasicTimer::start: QBasicTimer can only be used
with threads started with QThread
which is annoying. Since we're in shutdown, just skip deletion
entirely, and leave the model unparented.
FIXES#472
Each kind of tracking has an associated webpage / URL describing
the policy for that tracking. The Calamares User Guide has some
generic information. When the user clicks on the Help (?) button
in a tracking-option block, go to that URL.
- Enable translations, substitute ShortProductName into string,
- Simplify code for enabling tracking option blocks,
- Set checkboxes based on configuration,
- Read checkboxes when leaving page,
- Don't stretch the tracking option blocks.
- add icons for graphical display of actions
- extend description of tracking options
- add debug logging
- enable next button
- show/hide tracking options based on configuration
- m_groups is only set to a non-nullptr value when data is received
and fully processed,
- avoid nullptr dereference when paging *back* from a netinstall
page that hasn't loaded groups data.
FIXES#859
- Document netinstall.conf a little,
- Add setting *required* which influences whether next is enabled or not
in case of missing or corrupt data,
- Enable *next* button only once some (any!) data is received.
This can be used to disallow stepping past the netinstall step when
there is no data (e.g. internet has failed between the welcome page
and the netinstall page).
- Warn here since it may not be what the Distributor want.
Having wrong groups may result in broken permissions for
created user.
- explain what defaultGroups is for in users.conf
Welcome is only interested in checking partitions, not
in resizing them, so stick to one library. This will
become moot when the checks move to partitionmanager
and KPMCore can do the things.
- If there's no scripts involved in a package for netinstall, just
name it without the scripts; this lets the packages module
optimize to fewer package manager calls.
- Each element of the (list) packageOperations needs to be a
package operation, which is a dictionary with keys (identifying actions)
and lists of packages (which may be strings or script-info dictionaries).
- this applies to new partitions; existing documentation erroneously
said this happens with Replace as well,
- follow up on Andrius manual-partition PR with documentation that
manual mode doesn't switch to this FS when editing existing partitions.
In the timezone widget, locations in the far north -- Inuvik,
Thule, Longyearbyen -- were displayed too far south, because the
map location calculation assumes a linear gradient, which places
90 degrees north at about 70 degrees. Change calculation to
pretend the world is flat south of 62 degrees north, and then
'bend' the remaining 28 degrees of latitude to the top of the
image. This puts most places in the right spot, although Yellowknife
is now on the south shore of Great Slave.
Fort Nelson should be north of Dawson Creek, too -- the math still
needs a little work.
While here, put Antarctica in the south, otherwise Rothera keeps
showing up in Greenland.