6433 Commits (f045e4f00e3e45bf977a8a1cbf048aab617ae95c)

Author SHA1 Message Date
Adriaan de Groot 5afe54132b [keyboard] Use the models from Config
- Remove code that is duplicated in Config.
- Hook up UI for physical keyboard model, and back.
- For now, introduce some named slots with debugging output.
  This makes debugging a lot easier since we have function names
  to work with rather than anonymous lambdas
6 years ago
Adriaan de Groot 168be02c96 [keyboard] Hook up the model-selection again 6 years ago
Adriaan de Groot 87aafb2442 [keyboard] Tear up connections between widgets and model 6 years ago
Adriaan de Groot 193efe1710 [keyboard] Restore the notion of PC105 default index 6 years ago
Adriaan de Groot 6aedf4401f [keyboard] Apply coding style 6 years ago
Adriaan de Groot 365a2ad6fd [keyboard] Re-do the keyboard physical models model from scratch 6 years ago
Adriaan de Groot a1c70b46a1 [keyboard] Typo in comment 6 years ago
Adriaan de Groot 5f1d7b2e8d [keyboard] Rename UI widgets to make code clearer 6 years ago
Adriaan de Groot d464e98e89 [keyboard] Move remaining variables to Config
- Config already *has* everythind, but drop the useless copies
  and duplicated code from the Page
- Plug the models model into the Page
- While here, document the model / layout / variant distinctions

The code doesn't fill the UI properly, and the drop-down
for the models combobox is not right, but at least the data
is shared.
6 years ago
Adriaan de Groot fe5757c7d1 [keyboard] Matching of layouts is very suspect 6 years ago
Adriaan de Groot 4f0d6a8f25 Merge branch 'calamares' into fix-keyboardq 6 years ago
Adriaan de Groot dca9ae0c93
Merge pull request #1553 from LordTermor/calamares
Initial additional layout support for non-ASCII layouts
6 years ago
Artem Grinev 4434e85d4d [keyboard] Simplified variable name 6 years ago
Artem Grinev 3552233bf1 [keyboard] Minor logic rework 6 years ago
Artem Grinev 6667ea834f [keyboard] Adjusted indents 6 years ago
Artem Grinev 996c82160e [keyboard] fixed typo 6 years ago
Adriaan de Groot 4a3273d634 [keyboard] Remove superfluous variable (set to true, never changed) 6 years ago
Artem Grinev bfc60ad2cf [keyboard] Implemented X11 config writing for additional layout 6 years ago
Artem Grinev 0dd027af90 [keyboard] Fixed condition bug 6 years ago
Artem Grinev 19b1fb3358 [keyboard] Added explanatory comment for xkbmap_query_grp_option 6 years ago
Artem Grinev 384b1ba8c6 [keyboard] Swapped primary and additional layouts in selection 6 years ago
Artem Grinev 354dc1613a [keyboard] Removed unnecessary repacking in xkbmap_layout_args 6 years ago
Artem Grinev 09b5e42734 [keyboard] Minor additional layout info rework 6 years ago
Artem Grinev 17b9647016 [keyboard] Support for additional layout if current layout is not ASCII-
capable in live system
6 years ago
Adriaan de Groot 8cf3bd23b9 [keyboardq] Remove superfluous variable (set to true, never changed) 6 years ago
Adriaan de Groot 734dbece8a [keyboardq] Fix include style, remove unnecessary declarations 6 years ago
Adriaan de Groot 0947cd8354 [keyboard] Migrate to Config::onActivate() which is badly-named 6 years ago
Adriaan de Groot 0ffa500432 [keyboard] Remove unused code
- this has already migrated to Config but had not been removed locally
6 years ago
Adriaan de Groot 35a2bd3f0f [keyboard] Use Config's own finalize() 6 years ago
Adriaan de Groot 14c079d1d6 [keyboard] Replace own copy of status by the one from Config 6 years ago
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.
6 years ago
Adriaan de Groot 679f613955 [keyboard] Rename mysterious Config::init() to descriptive name 6 years ago
Adriaan de Groot a940be2bb4 [keyboardq] Load configuration into Config object 6 years ago
Adriaan de Groot 8142d6f86c [keyboardq] Drop unnecessary variable -- just use the Config status 6 years ago
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.
6 years ago
demmm f6e6774f92 [keyboardq] fix build 6 years ago
Adriaan de Groot fea403186f [libcalamares] Search for balance between warnings and annotations
- CI's gcc is too old to analyse a switch() for completeness,
  so the CI build fails.
6 years ago
Adriaan de Groot 478c394d99 [partition] Don't needlessly expose a test symbol 6 years ago
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.
6 years ago
Adriaan de Groot 9a2fca7f5b CMake: prefer normal C++17 [[fallthrough]] annotation 6 years ago
Adriaan de Groot 7fa1c1b787 [libcalamares] Avoid object-slice
g++ warns that error_already_set is polymorphic, and we're catching
by-value (although we don't use that value). Avoid that.
6 years ago
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
6 years ago
Adriaan de Groot b28a50de6f [libcalamares] Remove useless variable
- describe() is for debugging purposes, doesn't need to calculate
  whether the requirements are accepted.
6 years ago
Adriaan de Groot 6c7d295712 CMake: simplify C and C++ flags
- reduce the difference between clang and g++ builds, factor
  common flags out of the CMake-if
- drop special boost-warning-suppression, we do that differently
  most of the time in the affected source files
6 years ago
Adriaan de Groot 27f6eaaf75 [partition] Remove unused variables 6 years ago
Adriaan de Groot 89b1f8d96b [partition] Warnings-- in tests related to virtual destructors 6 years ago
Adriaan de Groot 01b75ef4b5 [partition] Use C++-style cast 6 years ago
Adriaan de Groot 6605e11394 [partition] Warnings-- in test: don't expose internal variable 6 years ago
Adriaan de Groot cb2b53ebf3 Merge remote-tracking branch 'origin/issue-1515' into calamares 6 years ago
Adriaan de Groot d7e64de24a [partition] Adjust docs to function
- @params referring to things that don't exist
- @brief that is 3 lines long
6 years ago
Adriaan de Groot eb8e95bb87 [partition] Warnings--, explain why we're using a void* 6 years ago
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.
6 years ago
Adriaan de Groot 687a795b71 [partition] Warnings-- by initialization order 6 years ago
Adriaan de Groot 44a11bd93b [partition] Initialize in the initializer list, if possible 6 years ago
Adriaan de Groot 51b47862cd [partition] Mark destructors `override`
This reduces compiler warnings related to virtual-overriding
functions: all the destructors are virtual.
6 years ago
Adriaan de Groot aa6109d470 [machineid] Improve config-documentation 6 years ago
Adriaan de Groot daeee09fdb [machineid] Simplify loading of the list of entropy-files 6 years ago
Adriaan de Groot 275e6b9342
Merge pull request #1542 from gportay/fix-message-if-no-option-available
[partition] Fix message user if no option available
6 years ago
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.
6 years ago
Adriaan de Groot 0d4d3e3c4d [users] Set up GS rootMountPoint for test 6 years ago
Adriaan de Groot 63196ab58f [users] Avoid crashes in tests due to nullptr GS 6 years ago
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.
6 years ago
Adriaan de Groot cd8c3089cb [users] Fix build: renamed moc file 6 years ago
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.
6 years ago
Adriaan de Groot 89d495d5fb [users] Rename file to match its purpose 6 years ago
Adriaan de Groot 5b4f9d0b98 [users] Adjust tests for changed API 6 years ago
Adriaan de Groot f1772a7eae [users] Create groups in a separate job 6 years ago
Adriaan de Groot 03541470d5 [users] Handle system-group creating specially 6 years ago
Adriaan de Groot fa1d314b13 [users] Refactor group-creation into separate Job 6 years ago
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.
6 years ago
Adriaan de Groot 6560ef00a1 [usersq] Fix build of usersq after refactor elsewhere 6 years ago
Adriaan de Groot 29e6934672 [users] Factor out Sudo creation into separate job 6 years ago
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.
6 years ago
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.
6 years ago
Adriaan de Groot 27dc81f8b9 [partition] Fix typo in debug message, reported by Kevin Kofler 6 years ago
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.
6 years ago
Adriaan de Groot 3313a5341d [partitions] Adapt to KPMcore 4.2 changes 6 years ago
Adriaan de Groot 36396d0cfd [partition] Adjust message and fix debug message 6 years ago
Adriaan de Groot ee302debdf
Merge pull request #1539 from yurchor/patch-3
[partition] Add missing space
6 years ago
Calamares CI 2be2e1808a i18n: [dummypythonqt] Automatic merge of Transifex translations 6 years ago
Adriaan de Groot 81f12cb230 [libcalamares] Do GeoIP lookups with a fake User-Agent 6 years ago
Adriaan de Groot 3b14e354b0 [libcalamares] Log more HTTP errors during requests 6 years ago
Adriaan de Groot 436e1de820 [libcalamares] Be more chatty in GeoIP test application 6 years ago
Yuri Chornoivan 1448a9b9a1
Add missing space 6 years ago
Adriaan de Groot 7734d84925 [shellprocess] Bump the default timeout to 30, emphasise tuning the timeout
FIXES #1536
6 years ago
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
6 years ago
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.
6 years ago
Adriaan de Groot 0f6602cad7 [keyboard] Improve xkb parsing 6 years ago
Adriaan de Groot ec42e3294f [keyboard] Refactor argument-lists for setxkbmap
- separate functions for model, and layout+variant settings
6 years ago
Adriaan de Groot b54273f904 [keyboard] Move all the keyboard (AbstractList)Models to the models file 6 years ago
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
6 years ago
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
6 years ago
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.
6 years ago
Adriaan de Groot 6b2d7f6a42 [users] Protect against JobQueue or GS being NULL
- Avoid SIGSEGV in tests, make sure JobQueue exists, GS optional
6 years ago
Adriaan de Groot 788a233319 [users] Introduce a test for Config getters and setters 6 years ago
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
6 years ago
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
6 years ago
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.
6 years ago
Adriaan de Groot a86374386b [users] Add test for new notation for groups-with-details 6 years ago
Adriaan de Groot 07027c2430 [users] Test distinguishes system groups from user groups 6 years ago
Adriaan de Groot ff9abdfc08 [users] The fallback groups are all **system** groups 6 years ago
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".
6 years ago
Adriaan de Groot 1d696253c3 [displaymanager] Missing space in user-visible string due to line-breaks 6 years ago
Adriaan de Groot 61100f1a73 [netinstall] Massage the documentation a little 6 years ago
Adriaan de Groot 958fb7e7b0 [netinstall] Complain about nonsensical hidden groups 6 years ago
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.
6 years ago
Adriaan de Groot ceeab7087c [users] Fix implementation so existing tests pass 6 years ago
Adriaan de Groot e46d9f735d [users] Adjust tests to changed groups-list 6 years ago
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)
6 years ago
Adriaan de Groot 6221c6497a [shellprocess] Allow customizing the name of the job 6 years ago
Adriaan de Groot 21598ef4b3 [libcalamaresui] Update progress message only if it is non-empty
This improves the situation for jobs that do not provide
a status: their blank status does not overwrite the status
bar, and since (previous commit) the description or name
is used to start the job if the status is empty, at least
**something** is displayed.

SEE #1528
6 years ago
Adriaan de Groot 86fd014bbd [libcalamares] Fallback from status -> description -> name for progress 6 years ago
Adriaan de Groot 2f83d85e29 [libcalamares] Explain process failure in debug log a bit better 6 years ago
Adriaan de Groot 9c457f9449 [shellprocess] Improve documentation and examples 6 years ago
Adriaan de Groot a955791766 Apply coding style globally again 6 years ago
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
6 years ago
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
6 years ago
Gaël PORTAY 2bbbb68838 [partition] Add setting for requiredPartitionTableType 6 years ago
Gaël PORTAY 70f8beb931 [partition] Add setting for defaultPartitionTableType 6 years ago
Adriaan de Groot 9486ee6fbf
Merge pull request #1524 from gportay/partition-message-user-if-no-option-available
[partition] Message user if no option available
6 years ago
Adriaan de Groot 9ce08beead [libcalamares] Fix build
- The API definitions are just the symbols to define; these
  are variously added through add_definitions() (needs -D)
  or target_add_definitions() (doesn't).
6 years ago
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.
6 years ago
Adriaan de Groot db537535ee [partition] Support KPMCore 3.3 in tests 6 years ago
Adriaan de Groot f28d28a455 [partition] Ignore KPMCore 4 beta versions 6 years ago
Adriaan de Groot 88b1d36009 Merge branch 'issues-1166' into calamares
FIXES #1166
6 years ago
Adriaan de Groot faa496be4a
Merge pull request #1522 from kadler15/issue-1521
[preservefiles] Fix global storage JSON dump
6 years ago
Corentin Noël a7bd1040c5 [partition] Add tests for Layout-constrained partionning 6 years ago
Adriaan de Groot 77e2701365 [partition] Coding style
- various clang-format versions battle for supremacy
6 years ago
Adriaan de Groot b4cbf73e2d Merge branch 'calamares' into issues-1166 6 years ago
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)
6 years ago
Adriaan de Groot 029c3f1c74 [partition] Write the install choices to Global Storage 6 years ago
Adriaan de Groot 92a874dae7 [partition] move the swap-choice to Config 6 years ago
Corentin Noël 08138f5a41 [partition] Reduce direct dependency of PartUtils on PartitionCoreModule 6 years ago
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
6 years ago
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.
6 years ago
Adriaan de Groot bc591f9bc1 [unpackfs] Re-vamp progress reporting
- simplify calculation of progress
6 years ago
Adriaan de Groot 8173b68a71 [unpackfs] Debug-log the weights of the modules 6 years ago
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".
6 years ago
Adriaan de Groot 44f8a7ae47 [libcalamares] Reduce chattiness again of job progress 6 years ago
Gaël PORTAY 79740c77a3 [partition] Message user if no option available 6 years ago
Kris Adler e92927cff9 [preservefiles] Fix global storage JSON dump
fixes calamares/calamares#1521
6 years ago
Adriaan de Groot ddf3b2d399 Merge branch 'debug-job-progress' into calamares
This makes things fairly chatty, especially again during
rsync, so will be dialed back before release.
6 years ago
Adriaan de Groot 6e30a7b8f6 [partition] Move is-manual-partitioning-allowed to the Config object 6 years ago
Adriaan de Groot f79fbd4105 [partition] Add swap choice to config object 6 years ago
Adriaan de Groot 0f4fe6294c [partition] Migrate type for SwapChoice to Config object 6 years ago
Adriaan de Groot 881661e94b [partition] Migrate InstallChoice to the Config object 6 years ago
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.
6 years ago
Adriaan de Groot 010526ee2a [partition] Coding style 6 years ago
Adriaan de Groot b41e4624c9 [partition] Move 'selected installation option' to Config 6 years ago
Adriaan de Groot 10d194d693 [partition] Simplify button-selection 6 years ago
Adriaan de Groot a92cb32cef [partition] set the right buttons if an action is pre-selected 6 years ago
Adriaan de Groot b518ef7dfe [partition] Select initial swap choice 6 years ago
Adriaan de Groot 9f0f600aa4 [partition] Remove the 'swapfile-unsupported' message 6 years ago
Adriaan de Groot 3bb5adcfca [partition] Simplify *efiSystemPartition* settings 6 years ago
Adriaan de Groot f155c8351b [partition] Only one setting for partitionLayout is supported 6 years ago
Adriaan de Groot b6dd23a384 Merge branch 'calamares' into issues-1166 6 years ago
Adriaan de Groot ace6323987 [libcalamares] Be even more chatty in job progress
This is for debugging-job-progress reports.
6 years ago
Adriaan de Groot 75b01cfc0a [libcalamares] Some debugging output for job progress, so you can double-check that the settings are being picked up 6 years ago
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.
6 years ago
Adriaan de Groot 6b07bdf6ed [keyboard] Do not use deprecated Qt4-era indexChanged for text 6 years ago
Adriaan de Groot 02423c823d [libcalamaresui] Nothing uses the opacity for pixmaps, drop that too 6 years ago
Adriaan de Groot 268cf203a8 [libcalamaresui] Remove unused parameter/functionality
- nothing in Calamares uses the tinting, and it triggers some
  deprecation warnings, so just remove it.
6 years ago
Adriaan de Groot 2878c474c5 Warnings-- (~T() override)
Change all the places that had
	virtual ~T() override
to the less redundant form without override.
6 years ago
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).
6 years ago
Adriaan de Groot 7d5a209dd0 [modules] Warnings-- in tests (~Test() override) 6 years ago
Adriaan de Groot 8b66009d59 [libcalamares] Warnings-- in tests (~T() override) 6 years ago
Adriaan de Groot 0cffac10c6 [libcalamares] Ignore more warnings for system header YAML 6 years ago
Adriaan de Groot fbab554dfa [libcalamares] Remove unused parameter for PythonJob
- parameter instanceKey was left over from previous work that
  special-cased the weight of Python modules.
- while here, consistently do `~T() override`
6 years ago
Adriaan de Groot 8e9bf1c2a9 [libcalamaresui] Another allow-to-fall-back-to-eventloop
With 1 CPU, Calamares still spawns 9 threads or so: eventloop,
dbus loop, QML loop, ... many of those are invisible to the
application. Contention occurs on startup when the UI is constructed,
and we end up with the module manager creating widgets alongside,
or ahead of, the main window UI. This can result in deadlock:

 - in CalamaresApplication::initViewSteps
 - in QML imports

This is partly because the signal-slots connections get "deep":
from loadModules() we emit *modulesLoaded* which ends up showing
the main window in initViewSteps(). Avoid this with a QTimer:
drop back to the event loop and release whatever locks are held,
so the QML thread can get on with it already. Then the timer
goes off and the view steps are created.
6 years ago
Adriaan de Groot 705756b9bb [libcalamaresui] Give UI chance to catch up before modules are done 6 years ago
Adriaan de Groot 53cb27ebc8 [calamares] Provide i18n context for "Key" 6 years ago
Adriaan de Groot ac0b2092f2 [partition] Remove superfluous logging 6 years ago
Adriaan de Groot cadd9765db [usersq] Remove trailing . 6 years ago
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.
6 years ago
Adriaan de Groot 1f77441333 [partition] add job-removal to the support classes 6 years ago
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.
6 years ago
Adriaan de Groot e94c17e331 Merge branch 'calamares' into issues-1166 6 years ago
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)
6 years ago
Adriaan de Groot 5f7c9a00a0 [machineid] Test that random-files are created 6 years ago
Adriaan de Groot a5887e6dda [machineid] Test config-settings for entropy files 6 years ago
Adriaan de Groot 8be5c2ed10 [machineid] Support multiple entropy files 6 years ago
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
6 years ago
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
6 years ago
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.
6 years ago
Adriaan de Groot 2aece7ff1b [keyboard] Warn if QRC is not available 6 years ago
Adriaan de Groot 0d8e0d9b96 [keyboard] Add a stub for unit tests 6 years ago
Adriaan de Groot af3261b16f [keyboard] Refactor findLegacyKeymap into something testable 6 years ago
Adriaan de Groot 466e08a8ba [welcome] Set some localeConf values from the welcome page 6 years ago
Adriaan de Groot 634a53d27a [locale] Use new convenience function for updating localeConf 6 years ago
Adriaan de Groot e0ba5a6ba2 [libcalamares] Convenience functions for localeConf GS entry 6 years ago
Adriaan de Groot d94b9caba5 [libcalamaresui] Less mutex shenanigans 6 years ago
Adriaan de Groot 32649f78ea [libcalamares] Restore finish() slot to job queue
FIXES #1507
6 years ago
Adriaan de Groot d5eaacf67a i18n: used wrong list of languages
FIXES #1505
6 years ago
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.
6 years ago
Adriaan de Groot d7dc48d201 [users] Add now-obvious missed initialization
- start the checkbox off in the state from config
6 years ago
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)
6 years ago
Adriaan de Groot d584a96335 [users] Improve naming of widget 6 years ago
Adriaan de Groot 3ae545c8b1 REUSE: qmldir file format doesn't leave space for license information 6 years ago
Adriaan de Groot ba2b52ed1d Merge branch 'fix-debugwindow-queue' into calamares
3.2.29 dropped the Job Queue information from the debug
window, this restores the list of names.
6 years ago
Adriaan de Groot b37a675657 [libcalamares] Reimplement JobQueue::queueChanged
- switch to QStringList as parameter, since consumers (that is,
  the debug dialog, which is what this is for) are interested
  just in the **names** of the jobs.
- to allow mutex locking in const methods, mark them mutable.
6 years ago
Adriaan de Groot 9afe7a3711 [libcalamares] Document JobQueue signals 6 years ago
Adriaan de Groot 49e925ef47 i18n: untangle translations in the executable
- there's no need for a macro that is going to be used once,
  especially if there's only one place it can be called.
- expand it in place and remove it from the installed CMake
  module
6 years ago
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
6 years ago
Adriaan de Groot 23bfcb755e i18n: pick up the translations CMake module just once 6 years ago
Adriaan de Groot e02c21285a i18n: remove the compiled .mo files from 'sources' 6 years ago
Adriaan de Groot c3903b6e88
Merge pull request #1502 from asif-mahmud/calamares
[libcalamares] Internet accessibility checking done by synchronous ping method
6 years ago
Asif Mahmud Shimon c6a3e9b816 Internet accessibility checking done by ping method 6 years ago
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
6 years ago
Adriaan de Groot ae14059e8b [webview] Config header was still misplaced
- use #error to produce slightly more comprehensible build failers
6 years ago
demmm 7c08f9a033 [keyboardq] rewrite keyboard.qml
no longer use extra qml files
better highlighting, updated text, fewer buttons
6 years ago
Adriaan de Groot a2180936ef CI: apply coding style across the entire codebase again 6 years ago
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.
6 years ago
Adriaan de Groot 5a3fb613d9 REUSE: Default branding assets and explanation 6 years ago
Adriaan de Groot 30a85668b7 REUSE: (GPL-3.0-or-later) C++ modules 6 years ago
Adriaan de Groot 863a4cc2a4 REUSE: (GPL-3.0-or-later) Python modules 6 years ago
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.
6 years ago
Adriaan de Groot 92a6cbc773 REUSE: (CC0-1.0) generated files & PD files
- the translations generated from public-domain files are CC0-1.0
- the files derived from Unicode tables are close to CC0-1.0,
  possibly except that there is a FileCopyrightText line
6 years ago
Adriaan de Groot 3480988f53 REUSE: SPDX tagging of application library and main
- CC0-1.0 for the uninteresting version-headers
- GPL-3.0-or-later for the services

- add SPDX identifiers to Calamares C++ libraries and application sources
- add SPDX identifiers to Calamares QML (panels and slideshow)
- the `qmldir` is a list of names of things in the directory,
  so CC0-1.0 it as "uninteresting"
- QRC files are lists of names of things in the directory,
  so CC0-1.0 them as well
6 years ago
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.
6 years ago
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.
6 years ago
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.
6 years ago
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.
6 years ago
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
6 years ago
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.
6 years ago
Adriaan de Groot b65b5228e1 [welcome] Don't apply code-style to other C-code 6 years ago
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
6 years ago
Adriaan de Groot 42417ed3b2 [libcalamares] Rip out the broken jobqueue information signals (break build) 6 years ago
Adriaan de Groot 2b86d2481c [libcalamares] finish() is a private implementation detail for the job queue 6 years ago
Adriaan de Groot 41769c8794 [packages] Alphabetize package manager implementations 6 years ago
Adriaan de Groot cf1ee2cffe Docs: explain how module weights work 6 years ago
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.
6 years ago
Adriaan de Groot 9d395e82f0 [libcalamares] Try to avoid progress going backwards
This is more a test-inspired hack than anything else: since signals
are delivered asynchronously, we can end up delivering progress
signals out-of-order, and then the signal spy lists them wrong:
progress goes backwards.

Insert a tiny delay between jobs to allow signals to be delivered
in-order.
6 years ago
Adriaan de Groot 053321d4d2 [libcalamares] Test for progress reporting
- add a dummy job class for tests
- run a queue with 3 jobs from 2 modules to check progress reporting
6 years ago
Adriaan de Groot 521015b1b4 [libcalamares] Match types to existing qreal usage, signal progress 6 years ago
Adriaan de Groot 941b5af3a2 [libcalamares] Rip out the guts of job-queue-running
- compute weights and accumulations beforehand
- mutex-lock structures so you can enqueue while running jobs
- simplify progress reporting calculations
- doesn't actually run any jobs
6 years ago
Adriaan de Groot 08ea51a344 [partition] Fix tests after removal of single-job-enqueue 6 years ago
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
6 years ago
Adriaan de Groot ecaf97aa60 [users] Tests of config-loading of groups lists 6 years ago
Adriaan de Groot ab3e393d45 [users] Protect against a nullptr deref
- there is typically no GS during tests
6 years ago
Adriaan de Groot 4b4d7f3b10 [libcalamares] Print a big fat warning before a typical now-crash situation 6 years ago
Adriaan de Groot 2ac518d8b9 [libcalamares] Change in stringlist extraction also changes single-string 6 years ago
Adriaan de Groot 41e2de85b1 [libcalamares] Fix up test -- 'lam' isn't supposed to be in the loaded data 6 years ago
Adriaan de Groot a5555c3f94
Merge pull request #1491 from asif-mahmud/calamares
[libcalamares] retrieving string list fix
6 years ago
Adriaan de Groot e55def87e9 [libcalamares] Test for Variant methods
In advance of PR #1491, test loading and stringlist extraction.

- from code, extraction works "normally"
- for YAML data, the stringlist isn't actually a stringlist
6 years ago
Adriaan de Groot 117859082e [libcalamares] Merge Tests.h into Tests.cpp
- no real need for separate file in the utils/ tests
6 years ago
Adriaan de Groot 626ac572d9 Merge branch 'hotfix-3.2.28.2' into calamares 6 years ago
Adriaan de Groot c92e12ef74 [users] Consistent styling of status badges on input fields
- Use Status* icons rather than the yes/no
6 years ago
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
6 years ago
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.
6 years ago
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.
6 years ago
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
6 years ago
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
6 years ago
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
6 years ago
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.
6 years ago
Adriaan de Groot 24efce0c1d [locale] Make sanity checks in tests more explicit
SEE #1490
6 years ago
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
6 years ago
Adriaan de Groot 34946ecdee [users] Refactor validity-checking
- provide a structured datatype for password status
6 years ago
Adriaan de Groot 1a7b2668dc [users] Emit password status changes 6 years ago
Adriaan de Groot d7b895b45d [users] Extend tests
- password requirements can disallow weak passwords
- start checking for signals on password changes
6 years ago
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.
6 years ago
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
6 years ago
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.
6 years ago
Adriaan de Groot e145bf68f1 [users] Remove extra ; 6 years ago
Asif Mahmud Shimon 3245d602db retrieving string list fix 6 years ago
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
6 years ago
Adriaan de Groot c296bcffa3 [libcalamares] When enqueueing jobs, pass a weight
- The weight is the module (instance) weight, which can be
  - the default weight of 1
  - the weight specified for the module (in module.desc / the module
    descriptor; this defaults to 1, above)
  - the weight specified for the instance (in settings.conf)
  The last of these "wins"; weights are constrained to 1..100

The weight isn't actually used in progress computation yet.
6 years ago
Adriaan de Groot a91ef65a37 [libcalamares] Make job weights integers 6 years ago
Adriaan de Groot 73b8ecd622 [unpackfs] Drop special-case for unpackfs
- make the module weight 12, rather than special-casing internals
6 years ago
Adriaan de Groot c19866f887 [libcalamares] Add a module-weight to the module descriptor 6 years ago
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
6 years ago
Adriaan de Groot 575bc03a5c
Merge pull request #1487 from PureTryOut/alpine-initramfs
[mkinitfs] New module
6 years ago
Adriaan de Groot e18cc81757
Merge pull request #1486 from demmm/calamares
[usersq] adding QML module usersq
6 years ago
Adriaan de Groot 050d74b4be Fix YAML schemas for all the remaining config files 6 years ago
Adriaan de Groot 14afce538b [netinstall] Fix schema -- the groups file still needs attention 6 years ago
Adriaan de Groot fcbd6e38c5 [keyboard] Fix schema -- forgotten field *writeEtcDefaultKeyboard* 6 years ago
Adriaan de Groot efab699479 [umount] Fix schema -- prefer *preservefiles* for keeping the log 6 years ago
Adriaan de Groot 2061024a03 [unpackfs] Fix schema -- new fields *exclude* and *excludeFile* 6 years ago
Adriaan de Groot 57f02464d9 [hostinfo] The hackish ARM-detection is only for Linux 6 years ago
Adriaan de Groot 665c2d53ab [libcalamares] Fix Doxygen comment for TZ locations 6 years ago
Adriaan de Groot c22e0a3451 [netinstall][users][tracking] Warnings--, extra ; 6 years ago
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
6 years ago
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
6 years ago
Adriaan de Groot efd7145f76 [libcalamares] Implement the interface-specific fields for descriptor 6 years ago
Adriaan de Groot c8b96c278b [libcalamares] Complete the generic module descriptor
- loads emergency, noconfig, requiredModules keys
- warns (and marks descriptor invalid) if there are unused / unknown
  keys left over in the descriptor data.
6 years ago
Adriaan de Groot e406ae1967 [libcalamares] Add name to module descriptor
- introduce basic tests of the data structure
- interpret name when passed in as descriptor data
6 years ago
Adriaan de Groot e1e81bb133 [libcalamaresui] Warnings--, don't shadow a parameter 6 years ago
Adriaan de Groot f1bb70269f [libcalamares] Improve warning/error logging
- the lack of a space after the : was inconsistent with most of the
  rest of the logging.
6 years ago
Adriaan de Groot 65273a262b [libcalamares] Start putting data into the module Descriptor 6 years ago
Adriaan de Groot 60fbf04594 [calamares] Adjust module test-loader for changed API
- the test-loader needs to create modules (and does so hackishly,
  outside of the ModuleManager) so it needs to chase the API as well.
6 years ago
Adriaan de Groot 3c6e53ecb9 [libcalamaresui] Chase the change in Module descriptor
- most of the code becomes **simpler** because the requirement
  to handle unstructured data is now in the descriptor itself,
  rather than in consumers.
6 years ago
Adriaan de Groot ee834a7abb [libcalamares] Define interface for Module descriptor
- add fields -- all const, all bogus -- to the descriptor,
  introduce a stub method to load the descriptor from
  YAML data (e.g. read from module.desc)
- lighten the type-naming in Module a little, with usings
6 years ago
Adriaan de Groot f0c4164515 [libcalamares] Add a more convenient find() to NamedEnum
- In most cases, you **know** the table covers all the enum
  values, and the extra parameter *ok* is just annoying.
  Provide a convenience that doesn't distinguish empty
  from empty-but-valid.
6 years ago
Adriaan de Groot 197cb9982c [libcalamares] Sort the tests by subdir 6 years ago
Adriaan de Groot bdd6bdc3b2 [libcalamares] Migrate module type and interface to descriptor
- move the enums
- expose the named-enum functions for them
- **start** replacing Descriptor with something stronger; this fails
  zero tests so it obviously wasn't tested at all
6 years ago
Adriaan de Groot 215cd0d1c3 [users] Repair test on openSUSE 6 years ago
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.
6 years ago
Adriaan de Groot 7cef99605f [libcalamares] Distinguish instances with an explicit weight
- setting the weight in *instances* should be different from letting
  the default weight (of 1) stand; explicitly saying 1 should
  carry some weight (ha!)
6 years ago
Adriaan de Groot c8964717c7 [calamares] Bail out on invalid settings 6 years ago
Adriaan de Groot d81d585c32 [libcalamares] Add isValid() to Settings
- settings can be invalid (missing data, whatever) and that
  can be used to shut things down early. Validity must be
  checked explicitly, though.
6 years ago
Adriaan de Groot 4cd2a4ae91 [libcalamares] Produce warnings while reading settings
- any invalid instance key will cause a complaint
- "new" custom instances in sequence get a complaint, but
  the instance description added to the list is valid
6 years ago