6083 Commits (ef70b2c32e2692ecb7907067ca9d93c29e0e8a14)

Author SHA1 Message Date
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
5 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
5 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
5 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.
5 years ago
Adriaan de Groot 24efce0c1d [locale] Make sanity checks in tests more explicit
SEE #1490
5 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
5 years ago
Adriaan de Groot 34946ecdee [users] Refactor validity-checking
- provide a structured datatype for password status
5 years ago
Adriaan de Groot 1a7b2668dc [users] Emit password status changes 5 years ago
Adriaan de Groot d7b895b45d [users] Extend tests
- password requirements can disallow weak passwords
- start checking for signals on password changes
5 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.
5 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
5 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.
5 years ago
Adriaan de Groot e145bf68f1 [users] Remove extra ; 5 years ago
Asif Mahmud Shimon 3245d602db retrieving string list fix 5 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
5 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.
5 years ago
Adriaan de Groot a91ef65a37 [libcalamares] Make job weights integers 5 years ago
Adriaan de Groot 73b8ecd622 [unpackfs] Drop special-case for unpackfs
- make the module weight 12, rather than special-casing internals
5 years ago
Adriaan de Groot c19866f887 [libcalamares] Add a module-weight to the module descriptor 5 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
5 years ago
Adriaan de Groot 575bc03a5c
Merge pull request #1487 from PureTryOut/alpine-initramfs
[mkinitfs] New module
5 years ago
Adriaan de Groot e18cc81757
Merge pull request #1486 from demmm/calamares
[usersq] adding QML module usersq
5 years ago
Adriaan de Groot 050d74b4be Fix YAML schemas for all the remaining config files 5 years ago
Adriaan de Groot 14afce538b [netinstall] Fix schema -- the groups file still needs attention 5 years ago
Adriaan de Groot fcbd6e38c5 [keyboard] Fix schema -- forgotten field *writeEtcDefaultKeyboard* 5 years ago
Adriaan de Groot efab699479 [umount] Fix schema -- prefer *preservefiles* for keeping the log 5 years ago
Adriaan de Groot 2061024a03 [unpackfs] Fix schema -- new fields *exclude* and *excludeFile* 5 years ago
Adriaan de Groot 57f02464d9 [hostinfo] The hackish ARM-detection is only for Linux 5 years ago
Adriaan de Groot 665c2d53ab [libcalamares] Fix Doxygen comment for TZ locations 5 years ago
Adriaan de Groot c22e0a3451 [netinstall][users][tracking] Warnings--, extra ; 5 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
5 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
5 years ago
Adriaan de Groot efd7145f76 [libcalamares] Implement the interface-specific fields for descriptor 5 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.
5 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
5 years ago
Adriaan de Groot e1e81bb133 [libcalamaresui] Warnings--, don't shadow a parameter 5 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.
5 years ago
Adriaan de Groot 65273a262b [libcalamares] Start putting data into the module Descriptor 5 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.
5 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.
5 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
5 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.
5 years ago
Adriaan de Groot 197cb9982c [libcalamares] Sort the tests by subdir 5 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
5 years ago
Adriaan de Groot 215cd0d1c3 [users] Repair test on openSUSE 5 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.
5 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!)
5 years ago
Adriaan de Groot c8964717c7 [calamares] Bail out on invalid settings 5 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.
5 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
5 years ago
Adriaan de Groot a8075fba5f [libcalamares] Chase API change in settings 5 years ago
Adriaan de Groot 253e5610af [libcalamares] Better type for the list of InstanceKeys
- *sequence* lists module instance keys; make the stored type of
  those keys InstanceKey instead of QString
5 years ago
Adriaan de Groot b23dbd47c7 [libcalamaresui] Chase changes in instanceDescriptor
- this is mostly about deleting code, since the special-cases
  now live in libcalamares where `settings.conf` is interpreted.
5 years ago
Adriaan de Groot 57f5a92d96 [libcalamares] Build complete instanceDescriptor list
- there's no reason to ignore custom instances that are **not**
  mentioned in the *instances* section: it may be useful to
  name more that one even without distinct config files.
5 years ago
Adriaan de Groot 4968efdaa7 [libcalamares] Simplify constructors of InstanceDescription
- no more weights in constructors; do that in fromSettings() only.
- simplify test to drop those constructors
- set config file also for "normal" descriptors; fix test
5 years ago
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.
5 years ago
Adriaan de Groot e507338f4c [libcalamares] Test config filenames as well (custom vs standard) 5 years ago
Adriaan de Groot 1f57a99ff2 [libcalamares] Rename moduleInstances() and fix tests
- "custom" is a misnomer, so drop that from the name
- tests adjusted: all instances are returned, not just the "custom"
  ones.
5 years ago
Adriaan de Groot 6f7234e4ac [libcalamares] Add all mentioned instances to the instanceList
- "custom" instances is now a misnomer, since all the instances
  go into it; they are distinguished by `isCustom()` on the descriptor
5 years ago
Adriaan de Groot f157d9c459 [libcalamares] Refactor data-loading in Settings
- expose, for testing purposes, the load-from-YAML-data part
  alongside the public constructor that reads a YAML file
- add test for building the list of instances
5 years ago
Adriaan de Groot 34e31d4331 [libcalamares] Revert PRIVATETEST
- looks funny
- is hard to get clang-format to respect this; it's intended as an
  access-modifier, but those are baked into the code rather than
  being configurable.
- is probably rare enough that #ifdef is acceptable
5 years ago
Adriaan de Groot 53eb6c614a [libcalamares] Make InstanceDescription a class
- switch from dumb struct to a class; use a structured InstanceKey
- expand testing of InstanceKey and InstanceDescription
5 years ago
Adriaan de Groot 9c382e3555 [libcalamares] Support switching public/private during tests 5 years ago
Adriaan de Groot e96198e61c Merge branch 'calamares' into issue-1176 5 years ago
Adriaan de Groot 9413b28209 [libcalamares] Improve logging - report correct number of jobs left 5 years ago
Adriaan de Groot e9f2c57442 [users] Missing ! makes install always fail
FIXES #1483
5 years ago
Adriaan de Groot 31cfdf926c [libcalamares] Apply SPDX to utils/ 5 years ago
Adriaan de Groot c48ec6bf94
Merge pull request #1481 from demmm/calamares
[welcomeq] language bar icon configurable
5 years ago
Adriaan de Groot 03871db597 [users] **keep** the create users job
- need to add the job to the list rather than just leaking it
5 years ago
Adriaan de Groot cac3e042d8 [libcalamares] Improve logging in runCommand() (less chatty) 5 years ago
Adriaan de Groot 3a0155b69d [calamares] Fix up multiple-moc of KDSAG
- was getting multiple definitions of moc-related code due to automoc
  combined with KDSAG having its own #include moc, comment-out the include.
- while here, simplify the CMake bits for building KDSAG
5 years ago
Adriaan de Groot 3227658475 [calamares] Fix up multiple-moc of KDSAG
- was getting multiple definitions of moc-related code due to automoc
  combined with KDSAG having its own #include moc, comment-out the include.
- while here, simplify the CMake bits for building KDSAG
5 years ago
demmm 01f0367459 [localeq] use image instead of theme icon 5 years ago
Adriaan de Groot 483c0a84f8 [libcalamares] Update SPDX in modulesystem/ 5 years ago
Adriaan de Groot 21b4a36a91 [libcalamares] Remove empty .cpp file
- Requirement.cpp was there "just in case" the header grew
  functions that need an implementation, but that seems
  unlikely (the header is just a struct of POD).
5 years ago
Adriaan de Groot d83543d904 Merge branch 'calamares' into issue-1176 5 years ago
Adriaan de Groot a873badf87 [libcalamares] Update SPDX identifiers in locale/ 5 years ago
Adriaan de Groot 296146e4f8 [libcalamares] update SPDX licensing on generated files
- the scripts are BSD-2-clause,
- the generated files are CC0 (I'm not *100%* sure about the
  derived file CountryData_p.cpp, which lists countries and
  country codes -- it **is** extracted from CLDR data which
  is not CC0)
5 years ago
Adriaan de Groot 4a3378d8b9 [libcalamares] Repair tests around save/load YAML round-trip
- QStringList doesn't round-trip correctly; add a test to
  demonstrate that.
- Fix existing test to **not** use QStringList, but QVariantList
  (of strings), which is how other code would use it.

The above is **kind** of moot because nothing uses the YAML-save
function, but it might.

While here, fix another test: YAML-loading can load JSON just fine.
5 years ago
Adriaan de Groot e2bf62a64b [libcalamares] Repair test for old Qt
- Qt 5.11 and early 5.12 just don't support Esperanto at all
5 years ago
Adriaan de Groot f08b4e502a i18n: update English source translations 5 years ago
Adriaan de Groot 62a8ee9708 [libcalamares] Add name-for-partition-type method
- add apidox to all the untranslatedFS() methods
- add the most-basic of untranslatedFS(), which works on a given
  FileSystem::Type; this one can handle special cases where
  Cala needs a different untranslated name than what KPMCore provides.
5 years ago
Adriaan de Groot 537aad1222 [libcalamares] SPDX, DLLEXPORT on partition/FileSystem.h 5 years ago
Adriaan de Groot fe3495ff97 [libcalamares] Expand KPMCore tests
- check on FS names as well
5 years ago
Adriaan de Groot 5e5701363c [libcalamares] Test the spot-patch for Johannesburg
- Add a note about notation, degrees-minutes
5 years ago
Adriaan de Groot e35992cf0b [libcalamares] Add spot-patches to timezone data
- for the purposes of Calamares's nearest-location selection algorithm
  for timezone selection, introduce spot patches: alternate markers
  on the map to indicate "things close to here belong in this timezone".
- hide the implementation detail in the find() methods.
5 years ago
Adriaan de Groot 028d424c73 [libcalamares] Expand testing of TZ location lookup
- Cape Town is in South Africa, so one might expect it to get South
  Africa's timezone -- which is Africa/Johannesburg -- but Windhoek
  is closer, so it gets that.
- Port Elisabeth is similar: Maseru lies between it an Johannesburg,
  so it gets the wrong timezone, too.

These both illustrate how the limited resolution of the map, together
with the "closest location" lookup, can give poor results. For most
of South Africa, the "wrong" timezone is closer than the right one.
5 years ago
Adriaan de Groot 6a33e72b58 [libcalamares] Refactor test to be data-driven
- this test is going to get a lot more cases, so prepare for that
5 years ago
Adriaan de Groot 00626fd96c [libcalamares] Refactor timezone loading
- load from a TextStream. This is prep-work for alternate TZ data
  sources.
5 years ago
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.
5 years ago
Adriaan de Groot 2f871acbfd [libcalamares] Expose distanceFunc-find for timezones 5 years ago
Adriaan de Groot 0fda1dcf7d [libcalamares] Refactor finding-TZ algorithm
- introduce a distance function and use that, rather than coding it
  inside the find() function. This is prep-work for unifying the
  find() calls, based on various coordinate systems.
5 years ago
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.
5 years ago
demmm e2a5eb6840 [welcomeq] language bar icon configurable
similar functionality as in welcome module, set in welcomeq.conf
5 years ago
Adriaan de Groot 8bf95b6881 [grubcfg] Support prefer_grub_d settings 5 years ago
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).
5 years ago
Adriaan de Groot aa50dfb8a1 [grubcfg] refactor finding-the-grub-paths into a function 5 years ago
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
5 years ago
Adriaan de Groot 3fc23e3b07 [grubcfg] Fix config schema 5 years ago
Adriaan de Groot 43f9f2e2f4 Merge branch 'issue-1477' into calamares
FIXES #1477
5 years ago
Adriaan de Groot 463ea3c73f [displaymanager] Fix config schema 5 years ago
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
5 years ago
Adriaan de Groot cb20ba6aba [libcalamares] More GS load/save testing
- failures elsewhere boil down to QStringList is not supported,
  but a QVariantList of QVariants of QStrings is.
5 years ago
Adriaan de Groot 0de98fe4c1 [libcalamares] Expand YAML testing a little
- load/save of a stringlist seems to work
5 years ago
Adriaan de Groot dbc49f001e [libcalamares] Test GS
- test insert, remove, emitted signals
- test loading and saving of YAML and JSON

This shows up a big bug in the YAML saving code (which was never
used, it seems, anyway)
5 years ago
Adriaan de Groot a44e6802e5 [libcalamares] Rename tests for consistency 5 years ago
Adriaan de Groot 3c618a9a19 [libcalamares] Fix GS load behavior
- the loadJson behavior did too many notifications, and was likely to
  deadlock; write directly to the map instead and emit only once.
- the loadYaml method did something very different from its
  documentation or intent.
5 years ago
Adriaan de Groot ac713d8c4b [libcalamares] Apply locking to GS access 5 years ago
Adriaan de Groot dc5d98af7d [libcalamares] Address outdates assumptions about thread-safety 5 years ago
Adriaan de Groot 0121e3755b [libcalamares] GS improve load/save
- save should be const
- rename save() to saveJson() for parity with saveYaml()
5 years ago
Adriaan de Groot 104452513b [libcalamares] Document GS
- write apidox for all of GlobalStorage
- while here, polish up the SPDX bits
5 years ago
Adriaan de Groot 527449a102 [libcalamares] Improve GS debugDump() formatting 5 years ago
Adriaan de Groot c64aefe43c [libcalamares] Remove unused include, declaration 5 years ago
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
5 years ago
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.
5 years ago
Adriaan de Groot 71ca1e1544 [localeq] Pick up Config changes before showing the module 5 years ago
Adriaan de Groot 32c8338a9c [locale] QML doesn't like const 5 years ago
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.
5 years ago
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.
5 years ago
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.
5 years ago
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.
5 years ago
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)
5 years ago
Adriaan de Groot 21f97db8fd [libcalamares] Offer translation lookup of regions 5 years ago
Adriaan de Groot ad3c0de936 [libcalamares] Reduce logging in POD manipulation 5 years ago
Adriaan de Groot 296337d45d [libcalamares] Implement nearest-TZ lookup
- This version, based on lat+lon lookup, handles wrap-around the
  globe at -180 W (which is very close to +180 E)
- Test wrap-around-the-globe lookups
5 years ago
Adriaan de Groot 9e274aac07 [libcalamares] Make ZonesModel more QML-friendly
- expose TZ lookup (as a QObject*, which QML needs)
- C++ code should use find(), which is safer
5 years ago
Adriaan de Groot ab69e7c83a [libcalamares] Add API for geographical lookup
- find a zone given lat, lon -- with a failing test and a bogus
  implementation.
5 years ago
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
5 years ago
Adriaan de Groot d814a3dba8 [libcalamares] Sort the models before use
- zones and regions alphabetically by key
5 years ago
Adriaan de Groot 37c211fd14 [libcalamares] Add an iterator for the full zones model 5 years ago
Adriaan de Groot 7ea2ad7dc6 [libcalamares] Add accessors for TZ data and region in the model
It's convenient when e.g. QComboBox::currentData() gets the key
"automatically", and the default role for that method is UserRole,
so let the value of KeyRole overlap.
5 years ago
Adriaan de Groot 245d4a8ef7 [libcalamares] Add a find() to ZonesModel
- Look up TZ data by region and zone name.
5 years ago
Adriaan de Groot 478a275764 [libcalamares] Make TimeZoneData public
- Also make it a QObject so we can add properties and make it useful
  for QML consumption.
5 years ago
Adriaan de Groot 10fb5b95c7 [libcalamares] Split out CStringPair into TranslatableString
The (renamed) class TranslatableString keeps a key value
(e.g. New_York) and a human-readable version around; the
human-readable one is passed through QObject::tr() for translation
on-the-fly.
5 years ago
Adriaan de Groot 3e32335511 [libcalamares] Introduce a filtering model per-region 5 years ago
Adriaan de Groot 1afdcc9c82 [libcalamares] Give zones data, too
- while here, fix bug in TimeZoneData that didn't munge names
  (so it reported "New_York")
5 years ago
Adriaan de Groot 33e39b92fb [libcalamares] Satisfy test, return region names 5 years ago
Adriaan de Groot 609ea8350c [libcalamares] Failing test: there is data in the regions model 5 years ago
Adriaan de Groot 82cc652f55 [libcalamares] Re-done zones loading
- just make one big list of zones, one short list of regions
- the models are non-functional right now
5 years ago
Adriaan de Groot ca40d2e2d9 [libcalamares] Introduce a failing test for the number of regions 5 years ago
Adriaan de Groot fce05acf1e [libcalamares] Rip out all the TZ models
- The models are overly complicated: **overall** there is just one
  list of timezones, and we need various views on that list.

Start over with an empty model of regions.
5 years ago
Adriaan de Groot 5066624a8e Merge branch 'issue-1471' into calamares
FIXES #1471
5 years ago
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.
5 years ago
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).
5 years ago
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
5 years ago
Adriaan de Groot eb72d662d1 [users] Add password fields to Config
- no checking is done for validity, and there is no password-status
5 years ago
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
5 years ago
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.
5 years ago
Adriaan de Groot 7b87242107 [users] PW checking does not need widgets 5 years ago
Adriaan de Groot 0ecf1e1cc1 [users] Drop default parameter for badness 5 years ago
Adriaan de Groot fcafe5db8f [users] Test the moved setHostname Config
- document that the default for writeHostsFile is *true*
5 years ago
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.
5 years ago
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.
5 years ago
Adriaan de Groot 44bc61d4be [users] set up Config object before widget 5 years ago
Adriaan de Groot 23b507ae8e [partition] Chase constness, makeJob() 5 years ago
Adriaan de Groot 20b477d063 [partition] Distinguish jobs with updatePreview() 5 years ago
Adriaan de Groot 62579e0f42 Merge branch 'calamares' into issues-1166 5 years ago
Adriaan de Groot 05f3fbea05 [locale] Apply SPDX headers 5 years ago
Adriaan de Groot 3f1b31e352 [libcalamares] Explicit tests for Interlingue
- The language code "ie" is not recognized,
- "ia" is, and it seems to be the post-war variant of
  Interlingue, so we may want to rename / relabel.

The testEsperanto test -- now split into scripts and
esperanto -- would have picked "ie" out of the list
because it does map to C locale.
5 years ago
Adriaan de Groot b27bc11975 [libcalamares] Merge locale tests files
- No need for a separate .h in most test cases
5 years ago
Adriaan de Groot 320779ccbe [libcalamares] Document Job::prettyDescription
The TODO said it was unused: it **is** used, but only in
a very limited scope. Drop it from jobs where it wasn't
useful (e.g. those that just return prettyName(), outside
of the partition module).
5 years ago
Adriaan de Groot 88e5e98d29 [libcalamares] Use consistent type alias (Descriptor) 5 years ago
Adriaan de Groot ea709aab59 [libcalamaresui] Swap out unstructured string for structured data 5 years ago
Adriaan de Groot b5c0158ec2 [libcalamares] Some if-method-exists trickery
This builds some machinery so that we can create
a detector for member-functions (methods) named <whatever>.
Use the macro to build the machinery:

DECLARE_HAS_METHOD(myFunction)

then after that,

has_myFunction<T>

is either std::true_type or std::false_type
depending on whether T has a method myFunction.
5 years ago
Adriaan de Groot 7b6ff8dd37 [libcalamares] Minor tests for parts of RAII 5 years ago
Adriaan de Groot 6e31d9de4b [partition] Name deviceInfo consistently, auto*
- use auto* for pointer type where we already say "device info" twice
5 years ago
Adriaan de Groot 22ba3cc62d [partition] Make private struct type private
- no need for the definition to be in public header, move to implementation
- while here, sort the members and private methods
- add a makeJob() to add jobs to the queue
5 years ago
Adriaan de Groot c2929e93b3 [partition] Start sanitizing the Jobs on a Device
- having a struct with an obtuse API for adding jobs-that-need-to-happen-
  to-this-device is just not good for maintainability.
- break the build by making things private.
5 years ago
Adriaan de Groot c63d4ad2cc [partition] Enable 'file' swap choice
SEE #1166
5 years ago
Adriaan de Groot 0902c74809 [hostinfo] Editorialize on the tests
- the implementation understands Intel and AMD, but the test
  was written for my desktop machine (which fails elsewhere).

SEE #1471
5 years ago
Adriaan de Groot b1b81f27cc Merge branch 'issue-1297' into calamares
This does **not** result issue-1297, but brings in some
prep-work and pleasant clean-ups.
5 years ago
Adriaan de Groot 41ce42cd4b [partition] Drop InstallChoice enum from Page
- The enum for install choice was copied into PartitionActions and
  used in the Config object; its definition does not belong in the UI.
- Chase the renamings required.
5 years ago
Adriaan de Groot e21a2f0676 [partition] Add InitialInstallChoice to Config
- add an option to select what button should be selected when the
  partitioning module is started; TODO: the actual functionality is
  **not** implemented.
- drop the previously suggested name, which didn't get beyond the
  comments-in-the-config-file stage (but which intended to do the
  same things as this one)
- add option to schema already, even if it's not implemented.

See #1297

FIXUP conf
5 years ago
Adriaan de Groot 380e2b3613 [partition] Fix up schema file 5 years ago
Adriaan de Groot 42889b5d7f [users] Perhaps triggers the build failure
- This is the only use of STATICTEST together with , and is the only
  one failing to link.
5 years ago
Adriaan de Groot fec8361ed5 [partition] Drop "convenience" functions
- the functions are used just once
- thin wrappers for named-enum methods that are just as convenient
5 years ago
Adriaan de Groot 824dac62d8 [partition] ChoicePage to use Config object 5 years ago
Adriaan de Groot d103c42091 [partition] Fix build now swapChoices lives in config 5 years ago
Adriaan de Groot baabcc5bb4 Merge branch 'calamares' into issue-1297 5 years ago
Adriaan de Groot 33fd5a1fad [partition] Report a valid choice if a partition is selected 5 years ago
Adriaan de Groot ef4c2666e1 [partition] Update icons on all state changes
The encryption widget (passphrase for disk encryption) should show
ok / warning / error whenever the state changes; this avoids
it showing up first with **no** icon (it should show a warning
when both passphrases are empty).
5 years ago
Adriaan de Groot 0eb1f002db [partition] defuse is-next-enabled
Both the KPMCore and the ChoicePage -- asynchronously -- were connected
to the nextStatusChanged() signal. So if the core said next was true,
that could end up communicated to the ViewManager, enabling the *next*
button in the UI.

Changing to the *erase* page generally triggers a KPMCore reload,
which later emits a `hasRootMountPointChanged()` signal, once the
layout is applied and the disk gets a root mount point. So we'd
get a `true` from KPMCore, which -- because it was connected directly
to the signal to the VM -- would override any other considerations.

Hook up both signals to an intermediate slot that just recalculates
whether the next button should be enabled, based on the state
both of the Choice page and whatever else.
5 years ago
Adriaan de Groot f1c4caba48 [partition] Refactor checking next-enabled
- move the calculations to an own method (so it can use
  early-return and log things to explain why next is disabled)
5 years ago
Adriaan de Groot 43cd415d9a [partition] Switch to 'modern' Error/ok icons 5 years ago
Adriaan de Groot 892e9798f4 [users] Sanitize tests
- move the testing of config-object methods to its own tests
- simplify file structure for the password job tests
5 years ago
Adriaan de Groot cc1136fb0e [users] Untangle tests
- name sources for tests consistently Test<something>
- chase some required source changes with the renaming
- name test targets consistently too
5 years ago
Adriaan de Groot f75839340a [users] Drop QRegExpValidator
- QREValidator is a GUI part, so to avoid a dependency on GUI for the
  (non-GUI) Config object, port to the simpler QRE (which we had
  available anyway)
5 years ago
Adriaan de Groot b9372ba432 [users] Move default groups setting to Config
- drop groups from the viewstep
- note that the Config object should also be in charge of creating
  Jobs (but then the de-tangling needs to be completed)
- add tests of default groups loading

Doesn't compile because QRegExpValidator is a gui thing.
5 years ago
Adriaan de Groot bfa1f618c7 CMake: Improve RCC version-checking
Previously, we check for RCC support every single time CMake runs.
This is slightly wasteful, and it wasn't being done right anyway.
But it's moot because:

- Calamares supports back to Qt 5.9
- Qt 5.9's version of rcc (at least, 5.9.7) **does** support the
  command-line argument `--format-version 1`
- Everything newer does too.

Simplify translations a little, too: just use autorcc rather than
building things by hand.
5 years ago
Adriaan de Groot 38b347f8f2 [libcalamares] Take ownership of the versioning headers
- The sources were in src/calamares but processed and generated
  in libcalamares, which is weird at best.
- Generate an "extended" version header.
- Use the extended version in the logger and nowhere else.
- While here, minor coding style cleanups

The overall change here means that after running CMake, only
Logger.cpp needs to be rebuilt (if the extended version has
changed) and not a handful of other files that don't need the
full version number, but do happen to include CalamaresVersion.h
5 years ago
Adriaan de Groot 9568fc082f [calamares] Try to reduce compile-churn with version header
- Very rarely do we need the full-git-version of Calamares,
  so split that into a separate header with a little trickery.
- In the "normal" version header, drop the full-git-version values.
5 years ago
Adriaan de Groot b06498194e [machineid] Fix up schema
- schema didn't allow recent (2019) configuration entries
- remove mention of deprecated key from example config
5 years ago
Adriaan de Groot cc2e3f79ff [users] Move job creation from widget to viewstep
- This is a half-step: the ViewStep shouldn't do job creation either,
  eventually it needs to be the Config object, but this is better
  than asking the widget (UI) to create some jobs.
- When updating login- or host-name, or the autologin setting,
  set it in GS as well. This is a minor improvement over doing
  it only when leaving the page.
- Since the Config object isn't complete, there are leftovers in
  the widget, which has a fillGlobalStorage() for the not-jobs-related
  bits previously in createJobs().
5 years ago
Adriaan de Groot 6a03bcb25e [users] Move setRootPassword to Config
- this really controls whether a root password is written during installtion,
  so rename to writeRootPassword in the code.
5 years ago
Adriaan de Groot 45b71c24e7 [users] Move autologin setting to Config 5 years ago
Adriaan de Groot 6c930af5cb [users] Use convenience method for labeling Full Name 5 years ago
Adriaan de Groot 0813ec3327 [users] Misc cleanups
- unused includes
- avoid "my--pc" .. the dash is inserted by makeHostnameSuggestion()
5 years ago
Adriaan de Groot 9018913af5 [users] Move hostname validation to Config 5 years ago
Adriaan de Groot 40d7d1baac [users] Move login validation to Config object
- add a loginNameStatus which is a QString (empty if things are ok)
  stating what's wrong with the loginName, if anything.
5 years ago
Adriaan de Groot a564d7a753 [users] Fix build on Linux 5 years ago