Commit Graph

4743 Commits

Author SHA1 Message Date
Artem Grinev
354dc1613a [keyboard] Removed unnecessary repacking in xkbmap_layout_args 2020-10-27 18:59:10 +03:00
Artem Grinev
09b5e42734 [keyboard] Minor additional layout info rework 2020-10-27 18:59:10 +03:00
Artem Grinev
17b9647016 [keyboard] Support for additional layout if current layout is not ASCII-
capable in live system
2020-10-27 18:59:10 +03:00
Adriaan de Groot
8cf3bd23b9 [keyboardq] Remove superfluous variable (set to true, never changed) 2020-10-27 16:55:02 +01:00
Adriaan de Groot
734dbece8a [keyboardq] Fix include style, remove unnecessary declarations 2020-10-27 16:47:47 +01:00
Adriaan de Groot
0947cd8354 [keyboard] Migrate to Config::onActivate() which is badly-named 2020-10-27 16:12:36 +01:00
Adriaan de Groot
0ffa500432 [keyboard] Remove unused code
- this has already migrated to Config but had not been removed locally
2020-10-27 15:56:50 +01:00
Adriaan de Groot
35a2bd3f0f [keyboard] Use Config's own finalize() 2020-10-27 15:55:29 +01:00
Adriaan de Groot
14c079d1d6 [keyboard] Replace own copy of status by the one from Config 2020-10-27 15:53:59 +01:00
Adriaan de Groot
acb5190217 [keyboard] Use Config methods rather than own copy
- this continues the port of the keyboard module to use the Config
  object, which was horribly botched earlier.
2020-10-27 15:51:48 +01:00
Adriaan de Groot
679f613955 [keyboard] Rename mysterious Config::init() to descriptive name 2020-10-27 15:48:51 +01:00
Adriaan de Groot
a940be2bb4 [keyboardq] Load configuration into Config object 2020-10-27 15:46:18 +01:00
Adriaan de Groot
8142d6f86c [keyboardq] Drop unnecessary variable -- just use the Config status 2020-10-27 15:42:27 +01:00
Adriaan de Groot
98c7cec732 CMake: restore NOTREACHED, without the macro-mess
- gcc (up to at least version 10) is worse at recognizing that all
  cases have been handled, so it complains about all the switches
  that cover enum values.
2020-10-25 18:52:38 +01:00
demmm
f6e6774f92 [keyboardq] fix build 2020-10-25 18:35:03 +01:00
Adriaan de Groot
478c394d99 [partition] Don't needlessly expose a test symbol 2020-10-25 17:49:26 +01:00
Adriaan de Groot
2b9fa0f982 CMake: drop the NOTREACHED macro
- both clang and g++ support __builtin_unreachable(); (as Kevin
   Kofler pointed out) so we don't need the macro to do different things;
 - the compilers have gotten better at detecting unreachable code,
   so instead of inserting macros or fiddly bits, just drop them
   and the unreachable code they comment.
2020-10-25 12:49:49 +01:00
Adriaan de Groot
9a2fca7f5b CMake: prefer normal C++17 [[fallthrough]] annotation 2020-10-25 12:49:49 +01:00
Adriaan de Groot
84936a95fc [libcalamaresui] Warnings-- for Qt 5.15 deprecations
Introduce a GUI-oriented compatibility header that introduces aliases
for some enum values that are deprecated in Qt 5.15
2020-10-24 13:00:48 +02:00
Adriaan de Groot
27f6eaaf75 [partition] Remove unused variables 2020-10-24 02:24:37 +02:00
Adriaan de Groot
89b1f8d96b [partition] Warnings-- in tests related to virtual destructors 2020-10-24 02:21:32 +02:00
Adriaan de Groot
01b75ef4b5 [partition] Use C++-style cast 2020-10-24 02:19:05 +02:00
Adriaan de Groot
6605e11394 [partition] Warnings-- in test: don't expose internal variable 2020-10-24 02:05:14 +02:00
Adriaan de Groot
cb2b53ebf3 Merge remote-tracking branch 'origin/issue-1515' into calamares 2020-10-23 23:51:25 +02:00
Adriaan de Groot
d7e64de24a [partition] Adjust docs to function
- @params referring to things that don't exist
- @brief that is 3 lines long
2020-10-23 23:14:00 +02:00
Adriaan de Groot
eb8e95bb87 [partition] Warnings--, explain why we're using a void* 2020-10-23 22:39:05 +02:00
Adriaan de Groot
9910b23152 [partition] Avoid uninitialized variable
- if the partition size is invalid, then warn about it but do
  not print the (uninitialized) size of the partition.
- shuffle code to continue earlier, allowing the "good path"
  code to be out-dented.
2020-10-23 22:34:53 +02:00
Adriaan de Groot
687a795b71 [partition] Warnings-- by initialization order 2020-10-23 22:31:22 +02:00
Adriaan de Groot
44a11bd93b [partition] Initialize in the initializer list, if possible 2020-10-23 22:27:30 +02:00
Adriaan de Groot
51b47862cd [partition] Mark destructors override
This reduces compiler warnings related to virtual-overriding
functions: all the destructors are virtual.
2020-10-23 22:23:10 +02:00
Adriaan de Groot
aa6109d470 [machineid] Improve config-documentation 2020-10-23 17:16:24 +02:00
Adriaan de Groot
daeee09fdb [machineid] Simplify loading of the list of entropy-files 2020-10-23 17:15:55 +02:00
Adriaan de Groot
275e6b9342
Merge pull request #1542 from gportay/fix-message-if-no-option-available
[partition] Fix message user if no option available
2020-10-23 12:45:06 +02:00
Adriaan de Groot
9e624c7bd5 [unpackfs] Fix schema validation
- the *weight* key was introduced without a corresponding schema
  change, so the examples didn't validate anymore.
2020-10-23 12:40:03 +02:00
Adriaan de Groot
0d4d3e3c4d [users] Set up GS rootMountPoint for test 2020-10-23 12:27:44 +02:00
Adriaan de Groot
63196ab58f [users] Avoid crashes in tests due to nullptr GS 2020-10-23 12:19:28 +02:00
Adriaan de Groot
c412e285c2 [libcalamares] Link publicly to yaml-cpp
Needed on FreeBSD, where you otherwise might not get the
include paths for yaml-cpp added -- and utils/Yaml.h
expects them to be there.
2020-10-23 12:01:29 +02:00
Adriaan de Groot
cd8c3089cb [users] Fix build: renamed moc file 2020-10-23 11:14:59 +02:00
Gaël PORTAY
d91683eec6 [partition] Fix message user if no option available
The button m_eraseButton is not tested while the button
m_somethingElseButton is tested twice.
2020-10-22 13:23:36 -04:00
Adriaan de Groot
89d495d5fb [users] Rename file to match its purpose 2020-10-22 14:22:11 +02:00
Adriaan de Groot
5b4f9d0b98 [users] Adjust tests for changed API 2020-10-22 14:21:14 +02:00
Adriaan de Groot
f1772a7eae [users] Create groups in a separate job 2020-10-22 14:11:01 +02:00
Adriaan de Groot
03541470d5 [users] Handle system-group creating specially 2020-10-22 14:08:33 +02:00
Adriaan de Groot
fa1d314b13 [users] Refactor group-creation into separate Job 2020-10-22 13:49:45 +02:00
Adriaan de Groot
3d289f345a [users] Refactor users functionality to a static lib
- this makes it less fragile to share all the functionality
  with usersq, since it ends up in the library which is shared
  between the modules.
2020-10-21 15:02:33 +02:00
Adriaan de Groot
6560ef00a1 [usersq] Fix build of usersq after refactor elsewhere 2020-10-21 14:46:07 +02:00
Adriaan de Groot
29e6934672 [users] Factor out Sudo creation into separate job 2020-10-21 14:43:45 +02:00
Adriaan de Groot
0cb6c89876 [netinstall] Don't update selection state for items with no children
The special setup for nicely-named groups which have a single
hidden subgroup containing the actual packages, has the problem
that there is a non-empty subgroups item, but this results
in zero actual children: then the number of selected and partly
selected children is also zero in updateSelected() and therefore
the item ends up unselected.

Special-case this to avoid unnecessarily unselecting the item.
Reported by Vitor L.
2020-10-20 23:15:32 +02:00
Adriaan de Groot
328a5bbbfb [users] Don't allow continuing with an empty login name
The status for an empty login name is '' (empty), for ok -- this is
so that there is no complaint about it. But it's not ok to
continue with an empty name.
2020-10-19 11:46:08 +02:00
Adriaan de Groot
27dc81f8b9 [partition] Fix typo in debug message, reported by Kevin Kofler 2020-10-17 16:41:08 +02:00
Adriaan de Groot
4d3f20f4a7 [users] Don't allow continuing with an empty login name
The status for an empty login name is '' (empty), for ok -- this is
so that there is no complaint about it. But it's not ok to
continue with an empty name.
2020-10-17 15:48:12 +02:00
Adriaan de Groot
36396d0cfd [partition] Adjust message and fix debug message 2020-10-16 22:32:32 +02:00
Adriaan de Groot
ee302debdf
Merge pull request #1539 from yurchor/patch-3
[partition] Add missing space
2020-10-16 19:06:46 +02:00
Calamares CI
2be2e1808a i18n: [dummypythonqt] Automatic merge of Transifex translations 2020-10-16 15:03:48 +02:00
Yuri Chornoivan
1448a9b9a1
Add missing space 2020-10-15 20:55:37 +03:00
Adriaan de Groot
7734d84925 [shellprocess] Bump the default timeout to 30, emphasise tuning the timeout
FIXES #1536
2020-10-15 00:15:37 +02:00
Adriaan de Groot
0b61a02c31 [fstab] Avoid dd in creating a zeroed-file for swap
- Create a 16kiB buffer of zeroes
- write that out in a loop
2020-10-14 16:55:14 +02:00
Adriaan de Groot
c7c7e6a6c1 [keyboard] Move configuration to the Config object
- information from the configuration file -> Config object
- job creation -> Config object

Ignore keyboardq for now.
2020-10-14 15:50:21 +02:00
Adriaan de Groot
0f6602cad7 [keyboard] Improve xkb parsing 2020-10-14 15:50:21 +02:00
Adriaan de Groot
ec42e3294f [keyboard] Refactor argument-lists for setxkbmap
- separate functions for model, and layout+variant settings
2020-10-14 15:50:21 +02:00
Adriaan de Groot
b54273f904 [keyboard] Move all the keyboard (AbstractList)Models to the models file 2020-10-14 15:50:21 +02:00
Adriaan de Groot
2911c789f9 [users] Fix up tests for login status
- an empty login name is "ok" even if it isn't -- there's no
  warning message in that case
2020-10-14 15:21:41 +02:00
Adriaan de Groot
89e279c96a [users] Set auto- and sudo-groups correctly
- Was updating GS only, not internals
- restructure all to update internals, then GS, then emit change signals
2020-10-14 15:21:41 +02:00
Adriaan de Groot
f726634c2f [users] Fix tests for setting shell
- The EXPECT_FAIL value "Abort" stops the test (I wanted 'if this
  unexpectedly passes, raise an error' -- should have read the
  documentation more closely).
- Set the shell in the config object, not just in GS.
2020-10-14 15:21:41 +02:00
Adriaan de Groot
6b2d7f6a42 [users] Protect against JobQueue or GS being NULL
- Avoid SIGSEGV in tests, make sure JobQueue exists, GS optional
2020-10-14 15:21:19 +02:00
Adriaan de Groot
788a233319 [users] Introduce a test for Config getters and setters 2020-10-14 15:21:15 +02:00
Adriaan de Groot
58f10739e1 [users] Show progress during the module
- add a status member so the different steps can show progress
  as the user is created and configured. The progress values
  are hard-coded guesses as to how much work is done for each step.
- while here, reduce the scope of the global storage variable
2020-10-14 15:21:10 +02:00
Adriaan de Groot
ef70b2c32e [users] Run CreateUserJob off of the Config object
- don't pass in copies or bits of the Config, hand over the whole Config
- don't pluck some parts of the Config from Global Storage
2020-10-14 15:21:10 +02:00
Adriaan de Groot
02e9872a99 [users] Handle detailed groups list
Groups can be specified with must_exist and/or system set,
so they fill in the groups list more carefully.
2020-10-14 15:21:10 +02:00
Adriaan de Groot
a86374386b [users] Add test for new notation for groups-with-details 2020-10-14 15:21:10 +02:00
Adriaan de Groot
07027c2430 [users] Test distinguishes system groups from user groups 2020-10-14 15:21:10 +02:00
Adriaan de Groot
ff9abdfc08 [users] The fallback groups are all **system** groups 2020-10-14 15:21:10 +02:00
Adriaan de Groot
b20c80a28c [users] Introduce class-scoped aliases for true and false for the bools
This is somewhat experimental and weird; the idea is that bool
arguments are a lot easier to understand if there are proper
names attached, rather than "true" and "false".
2020-10-14 15:20:26 +02:00
Adriaan de Groot
1d696253c3 [displaymanager] Missing space in user-visible string due to line-breaks 2020-10-14 15:18:51 +02:00
Adriaan de Groot
61100f1a73 [netinstall] Massage the documentation a little 2020-10-14 01:51:44 +02:00
Adriaan de Groot
958fb7e7b0 [netinstall] Complain about nonsensical hidden groups 2020-10-14 01:49:00 +02:00
Adriaan de Groot
f093789deb [netinstall] Complain about bad config
- it's easy to miss a  in hidden subgroups and other complex
  groups configurations, so complain loudly.
2020-10-14 01:41:16 +02:00
Adriaan de Groot
ceeab7087c [users] Fix implementation so existing tests pass 2020-10-13 22:12:26 +02:00
Adriaan de Groot
e46d9f735d [users] Adjust tests to changed groups-list 2020-10-13 17:36:24 +02:00
Adriaan de Groot
d3135898fd [users] More fine-grained group descriptions
Describe groups with more detail:
 - groups can be system groups (low GID) or not
 - groups may be pre-configured (e.g. come from the unpackfs stage)
2020-10-13 17:35:07 +02:00
Adriaan de Groot
6221c6497a [shellprocess] Allow customizing the name of the job 2020-10-13 00:59:47 +02:00
Adriaan de Groot
9c457f9449 [shellprocess] Improve documentation and examples 2020-10-12 23:11:00 +02:00
Adriaan de Groot
a955791766 Apply coding style globally again 2020-10-12 14:27:01 +02:00
Adriaan de Groot
1df4239c02
Merge pull request #1436 from gportay/osprober-strip-extra-file-after-at-sign
[partition] Strip extra file after the at sign
2020-10-12 13:33:10 +02:00
Gaël PORTAY
2b1e516ec1 [partition] Strip extra file after the at sign
- os-proper may return an extra file after the device:
  /dev/sda1:Ubuntu 19.10 (19.10):Ubuntu:linux
  /dev/sdb1@/EFI/Microsoft/Boot/bootmgfw.efi:Windows Boot Manager:Windows:efi
2020-10-07 09:57:18 -04:00
Gaël PORTAY
2bbbb68838 [partition] Add setting for requiredPartitionTableType 2020-10-07 08:10:24 -04:00
Gaël PORTAY
70f8beb931 [partition] Add setting for defaultPartitionTableType 2020-10-06 20:46:17 -04:00
Adriaan de Groot
9486ee6fbf
Merge pull request #1524 from gportay/partition-message-user-if-no-option-available
[partition] Message user if no option available
2020-10-07 01:32:13 +02:00
Adriaan de Groot
40aa0fcaba CMake: add a helper module for finding KPMcore
I think we had this (kind of) module a long time ago and it was
removed for over-complicating things; re-introduce one now that
KPMcore is used in 3 different places and all would benefit
from consistent API handling / defines.
2020-10-07 00:11:18 +02:00
Adriaan de Groot
db537535ee [partition] Support KPMCore 3.3 in tests 2020-10-06 23:51:30 +02:00
Adriaan de Groot
f28d28a455 [partition] Ignore KPMCore 4 beta versions 2020-10-06 23:49:11 +02:00
Adriaan de Groot
88b1d36009 Merge branch 'issues-1166' into calamares
FIXES #1166
2020-10-06 22:25:33 +02:00
Adriaan de Groot
faa496be4a
Merge pull request #1522 from kadler15/issue-1521
[preservefiles] Fix global storage JSON dump
2020-10-06 21:53:32 +02:00
Corentin Noël
a7bd1040c5 [partition] Add tests for Layout-constrained partionning 2020-10-06 17:48:12 +02:00
Adriaan de Groot
77e2701365 [partition] Coding style
- various clang-format versions battle for supremacy
2020-10-06 17:21:54 +02:00
Adriaan de Groot
b4cbf73e2d Merge branch 'calamares' into issues-1166 2020-10-06 17:19:14 +02:00
Adriaan de Groot
0b3a6baeea [fstab] If swap is "file" then create it here
- handle swapfiles when writing /etc/fstab in the target system
  - special-case mountpoint
  - since swapfiles are not a partition, take the setting out
    of partitionChoices
- create the physical swapfile as well (there's no other place
  where it would make sense)
2020-10-06 17:05:22 +02:00
Adriaan de Groot
029c3f1c74 [partition] Write the install choices to Global Storage 2020-10-06 15:54:26 +02:00
Adriaan de Groot
92a874dae7 [partition] move the swap-choice to Config 2020-10-06 15:44:14 +02:00
Corentin Noël
08138f5a41 [partition] Reduce direct dependency of PartUtils on PartitionCoreModule 2020-10-06 14:28:20 +02:00
Adriaan de Groot
672e27564e [unpackfs] Also report progress every half-second, if possible
This still won't help if there's one really huge file that takes
several seconds to write, but if there's a bunch of files together
that is less than a file_chunk_count but take more than a half-
second to write, update anyway
2020-10-06 13:39:22 +02:00
Adriaan de Groot
57fa51ecd9 [unpackfs] Simplify progress reporting more
If there's thousands of files in a squashfs (e.g. 400000 like on
some ArcoLinux ISOs) then progress would be reported every
4000 files, which can take quite some time to write. Reduce
file_chunk_count to at most 500, so that progress is reported
more often even if that wouldn't lead to a visible change
in the percentage progress: instead we **do** get a change
in files-transferred numbers.

- The total weight is only needed by the UnpackOperation,
  not by each entry.
- Use a chunk size of 107 so that the number-complete seems busy:
  the whole larger-or-smaller chunk size doesn't really matter.
- The progress-report was missing the weight of the current
  module, so would report way too low if weight > 1. This affects
  ArcoLinux configurations where one entry is huge and one is a
  single file, so weights 50 and 1 are appropriate.
2020-10-06 13:38:28 +02:00
Adriaan de Groot
bc591f9bc1 [unpackfs] Re-vamp progress reporting
- simplify calculation of progress
2020-10-06 13:36:35 +02:00
Adriaan de Groot
8173b68a71 [unpackfs] Debug-log the weights of the modules 2020-10-06 11:54:39 +02:00
Adriaan de Groot
632445a431 [unpackfs] Give entries a weight
When there are multiple entries, the overall weight of the
module is divided between the entries: currently each entry
takes an equal amount of space in the overall progress.

When there are multiple entries which take wildly different
amounts of time (e.g. a squash-fs and a single file) then
the progress overall looks weird: the squash-fs gets half
of this module's weight, and the single file does too.
With the new *weight* key for entries, that division can
be tweaked so that progress looks more "even".
2020-10-06 11:44:00 +02:00
Gaël PORTAY
79740c77a3 [partition] Message user if no option available 2020-10-06 04:10:27 -04:00
Kris Adler
e92927cff9 [preservefiles] Fix global storage JSON dump
fixes calamares/calamares#1521
2020-10-03 17:38:20 -05:00
Adriaan de Groot
6e30a7b8f6 [partition] Move is-manual-partitioning-allowed to the Config object 2020-10-02 13:04:12 +02:00
Adriaan de Groot
f79fbd4105 [partition] Add swap choice to config object 2020-10-02 12:40:13 +02:00
Adriaan de Groot
0f4fe6294c [partition] Migrate type for SwapChoice to Config object 2020-10-02 12:22:53 +02:00
Adriaan de Groot
881661e94b [partition] Migrate InstallChoice to the Config object 2020-10-02 12:08:42 +02:00
Corentin Noël
0293015b09 [partition] Fix regression in partition size assignment
In some cases, the partition size was set to zero as the maxSize isn't always defined.
2020-10-01 15:38:18 +02:00
Adriaan de Groot
010526ee2a [partition] Coding style 2020-09-29 14:04:12 +02:00
Adriaan de Groot
b41e4624c9 [partition] Move 'selected installation option' to Config 2020-09-29 14:00:49 +02:00
Adriaan de Groot
10d194d693 [partition] Simplify button-selection 2020-09-29 12:22:50 +02:00
Adriaan de Groot
a92cb32cef [partition] set the right buttons if an action is pre-selected 2020-09-28 17:46:42 +02:00
Adriaan de Groot
b518ef7dfe [partition] Select initial swap choice 2020-09-28 15:37:12 +02:00
Adriaan de Groot
9f0f600aa4 [partition] Remove the 'swapfile-unsupported' message 2020-09-28 14:53:38 +02:00
Adriaan de Groot
3bb5adcfca [partition] Simplify *efiSystemPartition* settings 2020-09-28 14:52:18 +02:00
Adriaan de Groot
f155c8351b [partition] Only one setting for partitionLayout is supported 2020-09-28 14:48:55 +02:00
Adriaan de Groot
b6dd23a384 Merge branch 'calamares' into issues-1166 2020-09-28 14:34:39 +02:00
Adriaan de Groot
ffed7b6d71 [partition] Warnings-- over QButtonGroup
- this was deprecated in 5.15 and an alternative introduced also
  in 5.15, so it's a pain in the butt for backwards-compatibility.
2020-09-23 11:16:23 +02:00
Adriaan de Groot
6b07bdf6ed [keyboard] Do not use deprecated Qt4-era indexChanged for text 2020-09-22 23:51:35 +02:00
Adriaan de Groot
2878c474c5 Warnings-- (~T() override)
Change all the places that had
	virtual ~T() override
to the less redundant form without override.
2020-09-22 22:49:30 +02:00
Adriaan de Groot
2126be6d6d Warnings-- (~T() override)
Consistently use
	~T() override;
in class declarations (so no virtual in front, and avoid
warnings due to the missing override in back).
2020-09-22 22:40:52 +02:00
Adriaan de Groot
7d5a209dd0 [modules] Warnings-- in tests (~Test() override) 2020-09-22 22:37:55 +02:00
Adriaan de Groot
ac0b2092f2 [partition] Remove superfluous logging 2020-09-21 17:47:25 +02:00
Adriaan de Groot
cadd9765db [usersq] Remove trailing . 2020-09-21 17:01:50 +02:00
Adriaan de Groot
e37c7da60d [partition] Introduce dummy argument to LVM jobs
- Give LVM jobs a dummy argument Device* so that they
  fit the functionality of makeJob for partitioning.
  For those jobs that already take an LVMDevice*, this should
  be the self-same device, but that isn't checked.
2020-09-21 16:46:24 +02:00
Adriaan de Groot
1f77441333 [partition] add job-removal to the support classes 2020-09-21 16:36:43 +02:00
Corentin Noël
75fd1dd114 [partition] Correctly handle percentage-define partitions
* Use the minSize when the target storage is smaller than the sum of sizes
 * Percentage-defined partitions should be computed after setting hard-defined ones

This fixes issues when 0 byte partitions were created when the disk is too small.
Also fixes an issue with percent-defined partitions being forced to be defined at the end of the disk.
2020-09-21 11:35:09 +02:00
Adriaan de Groot
e94c17e331 Merge branch 'calamares' into issues-1166 2020-09-21 11:15:27 +02:00
Adriaan de Groot
c159ffe491 [machineid] Polish up the tests
- create dirs as needed (this will normally be done by
  unsquash, but for tests with paths it needs to be done
  by hand)
- log what file is being checked
- filePath() doesn't like the absolute paths we have
  (they're absolute in the chroot, and existing code
  just sticks rootMountPoint in front)
2020-09-15 16:49:45 +02:00
Adriaan de Groot
5f7c9a00a0 [machineid] Test that random-files are created 2020-09-15 13:36:10 +02:00
Adriaan de Groot
a5887e6dda [machineid] Test config-settings for entropy files 2020-09-15 13:11:39 +02:00
Adriaan de Groot
8be5c2ed10 [machineid] Support multiple entropy files 2020-09-15 12:57:09 +02:00
Adriaan de Groot
8b22786bd2 Merge branch 'issue-1397' into calamares
Document keyboard change for Turkish F layout, and document
the keyboard configuration value better, with alternate
path used in e.g. openSUSE

FIXES #1397
2020-09-09 12:21:48 +02:00
Adriaan de Groot
633186778b [keyboard] Add test for Turkish F variant
- test keyboard lookup for "tr" - "f" variations
- add data mapping "tr" - "f" to legacy keymap "trf"

FIXES #1397
2020-09-09 12:11:50 +02:00
Adriaan de Groot
aeffbac9cd CMake: add resources to tests
Some tests -- notably the keyboard module -- need to have the
QRC for the module loaded as well (e.g. because of data in the
QRC). Add a RESOURCES parameter to calamares_add_test()
like calamares_add_plugin() already has, to build the
resources into the test.

Keyboard test now passes, since it was missing the data for
lookups before.
2020-09-09 11:58:56 +02:00
Adriaan de Groot
2aece7ff1b [keyboard] Warn if QRC is not available 2020-09-09 11:47:50 +02:00
Adriaan de Groot
0d8e0d9b96 [keyboard] Add a stub for unit tests 2020-09-08 17:27:21 +02:00
Adriaan de Groot
af3261b16f [keyboard] Refactor findLegacyKeymap into something testable 2020-09-08 17:27:21 +02:00
Adriaan de Groot
466e08a8ba [welcome] Set some localeConf values from the welcome page 2020-09-03 20:44:23 +02:00
Adriaan de Groot
634a53d27a [locale] Use new convenience function for updating localeConf 2020-09-03 20:21:37 +02:00
Adriaan de Groot
ec0b68084f [users] Refactor setting GS
- both changing the autologin and changing the user (login) name
  affect global storage, and both may need to change the autologin
  username; split it into a free function.
- the fullname change was bypassing the login in changing the
  login name, **but** then it needs a back-workaround to keep
  the "custom" setting off (when custom is off, auto-fill username
  and hostname is active).
- after loading the config, fill GS already.
- when finalizing GS, get the autologin settings again.
2020-08-28 23:48:47 +02:00
Adriaan de Groot
d7dc48d201 [users] Add now-obvious missed initialization
- start the checkbox off in the state from config
2020-08-28 23:48:47 +02:00
Adriaan de Groot
15b5ef467e [users] Hook up strong- and reuse- password checkboxes
- setup the visibility and initial checked-state of the reuse-user-
  password-for-root near where it gets connected; do similar
  for the require-strong-password
- squash the lambda slot into the regular slot: no sense in
  connecting twice to the same signal with the same receiver.
- only connect config->ui once
- only connect at all if the setting is visible (e.g. when weak
  passwords are allowed for the require-strong checkbox, or
  when root's password will be written for the reuse-password)
2020-08-28 23:47:11 +02:00
Adriaan de Groot
d584a96335 [users] Improve naming of widget 2020-08-28 23:47:11 +02:00
Adriaan de Groot
242d5c6499 i18n: install Python translations from a sensible place
- put the installation code in lang/ rather than among the modules
- remove useless indirection through CMake macro
2020-08-27 13:59:23 +02:00
Adriaan de Groot
23bfcb755e i18n: pick up the translations CMake module just once 2020-08-27 13:54:08 +02:00
Adriaan de Groot
e02c21285a i18n: remove the compiled .mo files from 'sources' 2020-08-27 13:37:45 +02:00
demmm
9bdb05d4ea [localeq] rewrite Offline.qml
once completed, this can be a fully functional (offline) locale selection option
worldmap.png no longer needed/in use
working is the stackview of the region & zones models
Timezone text bar shows correct timezone
currentIndex see comments on lines 65 & 139, not working
update of timezone text bar can't be tested if working as long no index is connected (see lines 93 & 168)
Still, already committing, since it does more then old Offline.qml, which had no function for timezone
2020-08-26 18:19:42 +02:00
Adriaan de Groot
ae14059e8b [webview] Config header was still misplaced
- use #error to produce slightly more comprehensible build failers
2020-08-26 14:48:46 +02:00
demmm
7c08f9a033 [keyboardq] rewrite keyboard.qml
no longer use extra qml files
better highlighting, updated text, fewer buttons
2020-08-26 13:32:56 +02:00
Adriaan de Groot
a2180936ef CI: apply coding style across the entire codebase again 2020-08-26 02:28:43 +02:00
Adriaan de Groot
1cd9b93a22 REUSE: Giant boilerplate cleanup
- point to main Calamares site in the 'part of' headers instead
  of to github (this is the "this file is part of Calamares"
  opening line for most files).
- remove boilerplate from all source files, CMake modules and completions,
  this is the 3-paragraph summary of the GPL-3.0-or-later, which has
  a meaning entirely covered by the SPDX tag.
2020-08-26 02:28:38 +02:00
Adriaan de Groot
30a85668b7 REUSE: (GPL-3.0-or-later) C++ modules 2020-08-26 02:22:49 +02:00
Adriaan de Groot
863a4cc2a4 REUSE: (GPL-3.0-or-later) Python modules 2020-08-26 02:22:49 +02:00
Adriaan de Groot
1b23520f20 REUSE: (CC0-1.0) module descriptors and configuration files
In spite of there being considerable documentation sometimes in the
config file, we go with CC0 because we don't want the notion of
'derived work' of a config file.

The example `settings.conf` is also CC0. Add some docs to
it while we're at it.
2020-08-26 02:22:49 +02:00
Adriaan de Groot
7e9576d3d1 REUSE: fix credits for 3rd party sources
Some Calamares source files incorporate material from
3rd parties (unlike the 3rdparty/ dir, which is basically-
unchanged 3rd party source). Tidy up the FileCopyrightText
lines for those sources.

This is not an exhaustive effort.
2020-08-26 02:05:46 +02:00
Adriaan de Groot
2eecd431fe REUSE: (CC0-1.0) test data
There's lots of (YAML) test data that is just trivial configurations
for modules. Since the configurations themselves are **also** CC0-1.0,
and the tests are less interesting, license them equally liberally.
2020-08-26 02:05:46 +02:00
Adriaan de Groot
95ceb1e8c7 REUSE: (BSD-2-Clause) all CMakeLists
The build instructions are not that interesting, it's a toss-up
between CC0 and BSD-2, but because other CMake bits are BSD-2-Clause,
apply that to more CMakeLists. The copyright date isn't all that
accurate, but these are just inconsequential files.

While here, tidy up and get rid of some useless intermediates.
2020-08-26 02:05:46 +02:00
Adriaan de Groot
965bc3b0b4 REUSE: use <author> tag in .ui for license info
The .ui files are all GPL-3.0-or-later style, but it's
slightly difficult to keep licensing information in them:
it's XML, so an XML comment might work, but there's no
guarantee that safe/load will preserve them.

Put the SPDX tags in the <author> tag, so that it's visible
in Qt Designer.
2020-08-26 02:05:46 +02:00
Adriaan de Groot
86f66e8f16 REUSE: (GPL-3.0-or-later) all the schema files
- these are vaguely derived from the schema's written by
  artoo@manjaro.org, but totally re-done for JSON-Schema
2020-08-26 02:01:58 +02:00
Adriaan de Groot
d6d3b41484 [webview] Missing Config include
This was causing CI builds to fail, since WEBVIEW_WITH_WEBKIT
is defined only in the Config file, not on the command-line.
This crept in accidentally while trying to get rid of that
config file entirely.
2020-08-26 01:06:55 +02:00
Adriaan de Groot
b65b5228e1 [welcome] Don't apply code-style to other C-code 2020-08-26 00:31:16 +02:00
Adriaan de Groot
31aa8be620 [locale] Remove unused original images
- These haven't been used in the module, and just take up space and
  now add licensing annoyance as well
2020-08-26 00:31:16 +02:00
Adriaan de Groot
41769c8794 [packages] Alphabetize package manager implementations 2020-08-19 21:12:40 +02:00
Adriaan de Groot
cf1ee2cffe Docs: explain how module weights work 2020-08-19 16:50:40 +02:00
Adriaan de Groot
ade7a22314 Merge branch 'module-weight' into calamares
Re-jig the module-weight calculations.

- modules can have a weight
- module instances can have a weight
- jobs, from the module, can have a weight

This is now configurable on a case-by-case basis, rather than having
C++ only as an option and a weird hack for unpackfs.
2020-08-19 16:20:28 +02:00
Adriaan de Groot
08ea51a344 [partition] Fix tests after removal of single-job-enqueue 2020-08-19 11:28:53 +02:00
demmm
8ad7184024 [usersq] users.qml update some config vars
reflect changes from users/Config.cpp
corrected id missing capital
mirror UsersQmlViewStep.cpp/h with the users versions
connections are still not made
2020-08-18 20:06:30 +02:00
Adriaan de Groot
ecaf97aa60 [users] Tests of config-loading of groups lists 2020-08-18 17:20:37 +02:00
Adriaan de Groot
ab3e393d45 [users] Protect against a nullptr deref
- there is typically no GS during tests
2020-08-18 17:20:08 +02:00
Adriaan de Groot
626ac572d9 Merge branch 'hotfix-3.2.28.2' into calamares 2020-08-18 15:19:06 +02:00
Adriaan de Groot
c92e12ef74 [users] Consistent styling of status badges on input fields
- Use Status* icons rather than the yes/no
2020-08-18 12:48:51 +02:00
Adriaan de Groot
fd2399f702 [users] Re-check password validity on change of conditions
- if the user password is reused (or not) then check the
  status of the passwords against the new reuse-setting
- if the allow-weak-passwords setting is changed, then
  check the status of passwords (both of them) against
  the new weakness setting
2020-08-18 12:46:27 +02:00
Adriaan de Groot
5d016baee9 [hostinfo] Fix up ARM "detection"
As explained by Kevin Kofler and abucodonosor, the
implementer line can carry a bunch of different values,
but none of them are actually interesting. Simplify
the code.
2020-08-18 12:33:42 +02:00
Adriaan de Groot
3ecab4bedb [users] Fix test building
- now Config can create jobs, tests that consume Config need
  to build the jobs as well; re-jig CMakeLists to make
  those a little easier.
2020-08-18 11:41:43 +02:00
Adriaan de Groot
2c72524f29 [users] Move job-creation to Config
- this makes Config entirely stand-alone: it has all the business
  logic and can be hooked up to alternate UIs or used from
  other view steps or jobs
2020-08-18 11:31:32 +02:00
Adriaan de Groot
abae942e55 [users] Complete isReady move to Config
- give Config slots and signals for ready-status
- disconnect the page from the viewstep and use the Config object
  ready-status instead
2020-08-18 11:21:53 +02:00
Adriaan de Groot
36cefe3be1 [users] Remove calculation of 'ready' from Page
- simplify UI update methods
- drop all the m_ready* members, that should live in Config
2020-08-17 16:18:02 +02:00
Adriaan de Groot
eb44d0c6be [users] Move GlobalStorage wrangling to config
- the whole fill-GS method is a bit weird, since you might want
  to reflect that "live" in GS instead.
2020-08-17 15:30:09 +02:00
Adriaan de Groot
24efce0c1d [locale] Make sanity checks in tests more explicit
SEE #1490
2020-08-17 15:09:20 +02:00
Adriaan de Groot
5db4195b7e [users] Remove most remaining business logic from the Page
- report password status from config
- tie config-value of fields to the text-boxes
2020-08-17 15:01:35 +02:00
Adriaan de Groot
34946ecdee [users] Refactor validity-checking
- provide a structured datatype for password status
2020-08-17 14:20:54 +02:00
Adriaan de Groot
1a7b2668dc [users] Emit password status changes 2020-08-17 14:08:59 +02:00
Adriaan de Groot
d7b895b45d [users] Extend tests
- password requirements can disallow weak passwords
- start checking for signals on password changes
2020-08-17 14:05:03 +02:00
Adriaan de Groot
a16ecba2bd [users] Inline isPasswordAcceptable
- the way isPasswordAcceptable was being used was buggy, leading
  to test failures (now fixed)
- don't expose the function, anyway: it's an implementation
  detail for passwordStatus() which in itself is an implementation
  detail for status notifications.
2020-08-17 13:22:44 +02:00
Adriaan de Groot
5f2bbd179c [users] New test for password-setting
- check new config for accepting empty and bogus passwords
- check a config with minor pw checks for empty and bogus passwords
2020-08-17 13:16:41 +02:00
Adriaan de Groot
1dcf56761f [users] Apply validation to the passwords config knows about
- avoid update loops by checking values before emitting *Changed()
- check validity of user and root passwords when asked
- if root isn't going to be written, or re-uses the user password,
  defer to those status checks.
2020-08-17 12:48:43 +02:00
Adriaan de Groot
e145bf68f1 [users] Remove extra ; 2020-08-17 12:48:43 +02:00
Adriaan de Groot
f4eac6c86f [users] Create all the groups needed for the user
- 26b8c82630 added the list of all-the-groups-for-the-user,
  but didn't change the list passed to the method that
  creates groups.

FIXES #1488
2020-08-12 16:50:28 +02:00
Adriaan de Groot
73b8ecd622 [unpackfs] Drop special-case for unpackfs
- make the module weight 12, rather than special-casing internals
2020-08-12 16:03:25 +02:00
Adriaan de Groot
c19866f887 [libcalamares] Add a module-weight to the module descriptor 2020-08-12 16:00:27 +02:00
Adriaan de Groot
14875259c7 [users] Create all the groups needed for the user
- 26b8c82630 added the list of all-the-groups-for-the-user,
  but didn't change the list passed to the method that
  creates groups.

FIXES #1488
2020-08-12 11:20:24 +02:00
Adriaan de Groot
575bc03a5c
Merge pull request #1487 from PureTryOut/alpine-initramfs
[mkinitfs] New module
2020-08-12 10:50:44 +02:00
Adriaan de Groot
e18cc81757
Merge pull request #1486 from demmm/calamares
[usersq] adding QML module usersq
2020-08-12 10:35:41 +02:00
Adriaan de Groot
050d74b4be Fix YAML schemas for all the remaining config files 2020-08-12 10:29:24 +02:00
Adriaan de Groot
14afce538b [netinstall] Fix schema -- the groups file still needs attention 2020-08-12 10:29:24 +02:00
Adriaan de Groot
fcbd6e38c5 [keyboard] Fix schema -- forgotten field *writeEtcDefaultKeyboard* 2020-08-12 10:29:19 +02:00
Adriaan de Groot
efab699479 [umount] Fix schema -- prefer *preservefiles* for keeping the log 2020-08-12 10:29:13 +02:00
Adriaan de Groot
2061024a03 [unpackfs] Fix schema -- new fields *exclude* and *excludeFile* 2020-08-12 10:28:27 +02:00
Adriaan de Groot
57f02464d9 [hostinfo] The hackish ARM-detection is only for Linux 2020-08-12 09:58:48 +02:00
Adriaan de Groot
c22e0a3451 [netinstall][users][tracking] Warnings--, extra ; 2020-08-12 09:58:39 +02:00
Adriaan de Groot
e2f6817536 Merge branch 'issue-1176' into calamares
This doesn't actually implement the job-weight work, but lays important
groundwork in module instances and descriptors.

SEE #1176
FIXES #1473
FIXES #1474
2020-08-12 09:43:35 +02:00
Adriaan de Groot
f73f94da27 Repait module.desc
- a handful of modules had an unused *requires* key in module.desc;
  this is probably from previous intentions around
  prerequisites-testing. Since the settings were empty anyway,
  they have been removed.
- [unpackfs] Compacted the way *requiredModules* list is written
2020-08-12 09:36:30 +02:00
Adriaan de Groot
215cd0d1c3 [users] Repair test on openSUSE 2020-08-11 22:16:03 +02:00
Bart Ribbers
b144f1dfc0
[mkinitfs] New module
This module allows the generation of the initramfs in Alpine Linux based
systems (excluding postmarketOS). Very bare bones, but then again it
doesn't need much. It uses the Alpine Linux tool "mkinitfs" to do the
job.
2020-08-11 18:18:52 +02:00
demmm
355a4f9b8d [usersq] adding QML module usersq
module builds, installs and runs, connections are not working yet.

UserQmlViewstep.cpp/h are from PR https://github.com/calamares/calamares/pull/1356
sections are commented out to make the module build, but help is needed to get those 2 files corrected.

config names used in usersq.qml are guessed from users/Config.cpp
debug window shows correct entries in GS, and under the module tab, usersq.conf is read
as should too. Running shows most config used in users.qml are not registered/wrong,
many entries like: qrc:/usersq.qml:228:13: Unable to assign [undefined] to bool

It is understood not all needed from the users module has moved to Config.cpp yet,
but doing the PR now, since it runs, doesn't crash cala and help is needed to further implement.
2020-08-11 13:46:05 +02:00
Adriaan de Groot
e96198e61c Merge branch 'calamares' into issue-1176 2020-08-10 23:22:14 +02:00
Adriaan de Groot
e9f2c57442 [users] Missing ! makes install always fail
FIXES #1483
2020-08-10 18:37:26 +02:00
Adriaan de Groot
c48ec6bf94
Merge pull request #1481 from demmm/calamares
[welcomeq] language bar icon configurable
2020-08-10 17:02:58 +02:00
Adriaan de Groot
03871db597 [users] **keep** the create users job
- need to add the job to the list rather than just leaking it
2020-08-10 16:52:19 +02:00
demmm
01f0367459 [localeq] use image instead of theme icon 2020-08-10 12:30:55 +02:00
Adriaan de Groot
d83543d904 Merge branch 'calamares' into issue-1176 2020-08-10 09:45:05 +02:00
Adriaan de Groot
f08b4e502a i18n: update English source translations 2020-08-09 20:58:16 +02:00
Adriaan de Groot
0948963d86 [locale] Port TZ widget lookup to new find() method
- The TZ widget uses a different coordinate system (mapping lat and lon
  to pixel locations, and then calculating Manhattan distance from
  that), so needs a different distance function.
- Simplify code: there's just one "closest TZ" function.
2020-08-09 00:21:30 +10:00
Adriaan de Groot
473daecdbf [grubcfg] expand config-testing for the new features
- create directories for new tests ahead of the tests themselves;
  this **can** still cause problems if a test is run standalone.
- if creating the grub-dir at runtime is necessary, be informative
  if it fails.
2020-08-07 13:58:28 +02:00
demmm
e2a5eb6840 [welcomeq] language bar icon configurable
similar functionality as in welcome module, set in welcomeq.conf
2020-08-07 12:44:07 +02:00
Adriaan de Groot
8bf95b6881 [grubcfg] Support prefer_grub_d settings 2020-08-07 12:13:51 +02:00
Adriaan de Groot
064fff0c12 [grubcfg] Drop default_dir
- the default_dir was only stored in modify_grub_default() to
  create the directory if needed; move that functionality to
  the get_grub_config_paths() function (and drop the "s",
  since it now returns just one).
2020-08-07 12:07:26 +02:00
Adriaan de Groot
aa50dfb8a1 [grubcfg] refactor finding-the-grub-paths into a function 2020-08-07 12:02:42 +02:00
Adriaan de Groot
f85c70d4d2 [grubcfg] Introduce prefer_grub_d
- new setting for using /etc/defaults/grub.d/ (SEE #1457), not implemented
- add missing fields to schema for config file
2020-08-07 11:55:16 +02:00
Adriaan de Groot
3fc23e3b07 [grubcfg] Fix config schema 2020-08-07 11:43:48 +02:00
Adriaan de Groot
43f9f2e2f4 Merge branch 'issue-1477' into calamares
FIXES #1477
2020-08-07 11:30:30 +02:00
Adriaan de Groot
463ea3c73f [displaymanager] Fix config schema 2020-08-07 10:50:33 +02:00
Adriaan de Groot
2ce12d5368 Merge branch 'issue-1476' into calamares
Go over the locale module again:
- new models that avoid weird casts and inconvenient iteration
- shared timezone data
- simple sorting and filtering
- simplify the map / QML version

FIXES #1476
FIXES #1426
2020-08-07 08:33:44 +02:00
Adriaan de Groot
0121e3755b [libcalamares] GS improve load/save
- save should be const
- rename save() to saveJson() for parity with saveYaml()
2020-08-07 00:02:14 +02:00
Adriaan de Groot
52d1c8f88a [locale] Explicitly update GS from the locale step
- refactor into some free functions (out of the lambda's for connecting)
- introduce new method to call from onLeave(), matching previous
  widget behavior
2020-08-06 18:32:51 +02:00
Adriaan de Groot
c69bd972e9 [localeq] Demonstrate "offline" lookups
- we can do GeoIP and GeoNames lookups, **or**
- use Calamares's internal GeoIP lookup and country / city hints.

The online version is much more accurate, but costs more lookups;
in these examples, set it all to "offline" and document what needs
to change (code edit) to use the online version.

It's probably a good beginner job to introduce a bool in localeq.qml
to switch the behaviors.
2020-08-06 16:09:41 +02:00
Adriaan de Groot
71ca1e1544 [localeq] Pick up Config changes before showing the module 2020-08-06 16:09:41 +02:00
Adriaan de Groot
32c8338a9c [locale] QML doesn't like const 2020-08-06 16:09:41 +02:00
Adriaan de Groot
91cc5a2b42 [locale] Update the map-QML implementation
- Config has suitable strings for displaying TZ information.
  Use them and automatic bindings. Don't update the strings manually.
- Suggest online or offline TZ lookups based on what the distro wants.
  Edit the QML to pick online lookups (needs access to the geonames
  service, though).
- Drop the variables that point at config and geoip: the Config
  object has a currentLocation, which is filled in by both the
  configuration and any GeoIP lookup -- it doesn't have city
  or country information though.
2020-08-06 16:09:41 +02:00
Adriaan de Groot
15a8d62986 [locale] Add a 'current timezone' strings to Config
- status is a longer phrase
- name is a short human-readable name
- code is the internal code

Code that writes its own "Timezone set to" messages can use
the name, rather than the status.
2020-08-06 16:09:41 +02:00
Adriaan de Groot
eda14ce548 [locale] Avoid nullptr deref
- when no location has been set at all, there's no sensible TZ
  to report; just leave it blank. In *practice* you won't hit this
  code from the Calamares UI before a location has been set, because
  the Config object is instantiated and then immediately configured,
  but from tests or unusual UIs it could be.
2020-08-06 16:09:41 +02:00
Adriaan de Groot
b36ad4c7f4 [locale] Add test for Config initialization
- needs some massaging because Config otherwise depends on
  ModuleManager which is a UI class (for the Reasons),
  but we already have a BUILD_AS_TEST define for that purpose.
- demonstrate a nullptr deref.
2020-08-06 16:09:41 +02:00
Adriaan de Groot
04e53be934 [locale] Repair test: don't re-init te occupied-pixels set each loop
- while here, merge Tests.h to the cpp file
- Fix build when debugging timezones (missed during earlier refactor)
2020-08-06 16:09:41 +02:00
Adriaan de Groot
626dd038da [locale] Re-do locale module with new TZ data
- The Config object now uses the re-done models and timezone data
- most of the properties of the locale Config are unchanged
- much less complication in extracting data from the zones model
2020-08-06 01:34:55 +02:00
Adriaan de Groot
082770032f [hostinfo] Massage test to handle ARM
- there **is** another source of information about the CPU,
  so in the test use that to cross-check what hostCPU() says.

NB: it's probably a good idea to fall back on the same file
    in hostCPU() for better accuracy.
2020-08-05 14:24:28 +02:00
Adriaan de Groot
272cf099be [hostinfo] Try to recognize ARM as well
- /proc/cpuinfo is a terrible information source; it contains very
  different information on x86 from arm (testen on rpi4 and rock64).
2020-08-05 14:07:39 +02:00
Adriaan de Groot
b49b9a66e6 [users] Drop data-access from the Page
- get username, password etc. from the config object, not the page
- jobs now depend entirely on config
- handle logic of "what's the root password" in Config
2020-08-05 13:42:18 +02:00
Adriaan de Groot
eb72d662d1 [users] Add password fields to Config
- no checking is done for validity, and there is no password-status
2020-08-05 13:29:12 +02:00
Adriaan de Groot
b2b9ae7799 [users] Add tests for moved password-check configuration
- link the PW checks to the test, and libpwquality if needed
- test only does very basic config-mungeing
2020-08-05 13:03:56 +02:00
Adriaan de Groot
900deb5dc8 [users] Move the configuration of password checks to Config
- the Widget (Page) does not need to know the password checks,
  that's business logic that belongs to Config.
2020-08-05 13:03:18 +02:00
Adriaan de Groot
7b87242107 [users] PW checking does not need widgets 2020-08-05 12:56:09 +02:00
Adriaan de Groot
0ecf1e1cc1 [users] Drop default parameter for badness 2020-08-05 12:24:39 +02:00
Adriaan de Groot
fcafe5db8f [users] Test the moved setHostname Config
- document that the default for writeHostsFile is *true*
2020-08-05 10:50:38 +02:00
Adriaan de Groot
2efce1ac7a [users] Move the hostname-setting config
- The configuration for writing the hostname (to /etc/hostname,
  to /etc/hosts and possibly to systemd-hostname) is read-only,
  because it comes from the config file and won't change after.
2020-08-05 10:29:13 +02:00
Adriaan de Groot
35dff4d12c [users] Migrate reuse-password and password-strength to Config
- add the "reuse user password for root" setting to Config,
  make the UI page follow that setting.
- add the require-strong-password default and toggle settings to
  Config; this is not well-checked yet.

On the widget / UI side, connect checkboxes only if they are
visible; refactor reuse-user-password-for-root settings.
2020-08-04 22:40:27 +02:00