Commit Graph

4468 Commits

Author SHA1 Message Date
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
2020-07-29 13:23:41 +02:00
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)
2020-07-29 12:27:56 +02:00
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.
2020-07-29 12:18:25 +02:00
Adriaan de Groot
b06498194e [machineid] Fix up schema
- schema didn't allow recent (2019) configuration entries
- remove mention of deprecated key from example config
2020-07-28 14:46:56 +02:00
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().
2020-07-28 12:16:03 +02:00
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.
2020-07-28 11:59:53 +02:00
Adriaan de Groot
45b71c24e7 [users] Move autologin setting to Config 2020-07-28 11:41:52 +02:00
Adriaan de Groot
6c930af5cb [users] Use convenience method for labeling Full Name 2020-07-28 11:18:07 +02:00
Adriaan de Groot
0813ec3327 [users] Misc cleanups
- unused includes
- avoid "my--pc" .. the dash is inserted by makeHostnameSuggestion()
2020-07-28 10:49:12 +02:00
Adriaan de Groot
9018913af5 [users] Move hostname validation to Config 2020-07-28 10:45:38 +02:00
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.
2020-07-28 10:21:23 +02:00
Adriaan de Groot
a564d7a753 [users] Fix build on Linux 2020-07-28 09:42:32 +02:00
Adriaan de Groot
d4a784f521 [users] Hook up full name to Config 2020-07-27 17:52:46 +02:00
Adriaan de Groot
630a508049 [users] Hack - create the widget anyway
- since the configuration is in the UI parts, we need the widget still
  to load the whole configuration (until the config object is complete).
  Create the widget before doing configuration; this is wrong. But now
  we don't hit nullptr derefs all over.
2020-07-27 17:29:46 +02:00
Adriaan de Groot
8a14cc7ffc [users] Move some configuration from Page to Config object
- make the HostName textbox just a view on the Config's HostName
- make the username and login textboxes view onto Config
- query the Config rather than the UI for job data
2020-07-27 17:26:46 +02:00
Adriaan de Groot
5ffa09000a [users] Add hostname guessing to Config 2020-07-27 17:26:46 +02:00
Adriaan de Groot
411a202ba5 [users] Do some login-name guessing 2020-07-27 17:26:46 +02:00
Adriaan de Groot
66ae1823a5 [users] Give Config object a user and login name
- This is incomplete, because the business logic of guessing
  a login from the username is not here.
2020-07-27 17:26:46 +02:00
Adriaan de Groot
35916eb20f [users] Move autologin and sudoers groups to Config 2020-07-27 17:26:46 +02:00
Adriaan de Groot
2f786079f3 [users] Move shell settings to the Config object
- this is a set-only property (as far as the current ViewStep is
  concerned) and is passed around in GS for non-obvious reasons.
2020-07-27 17:26:46 +02:00
Adriaan de Groot
8497aad7a1 [users] Apply coding style 2020-07-27 17:26:46 +02:00
Adriaan de Groot
f9b114a67a [users] Pass the Config object to the Page
- delay construction of the Page (widget) until it's needed
- hand the Config object to the Page on construction

This is prep-work for putting the configuration information into the
Config object, rather than in the UI elements.
2020-07-27 17:26:46 +02:00
Adriaan de Groot
dab831b2ff [users] Introduce a (stub) Config object 2020-07-27 15:55:04 +02:00
Adriaan de Groot
1e08ee084f [users] Actually add the test file 2020-07-27 15:35:24 +02:00
Adriaan de Groot
92938f63f8 Merge branch 'move-permissions' into calamares 2020-07-27 15:05:46 +02:00
Adriaan de Groot
8ce7457023 [users] Add test for create-users code
- just one test for groups-file loading
- while here fix bug that blank and comment lines were being
  kept as valid group names
2020-07-27 15:00:14 +02:00
Adriaan de Groot
8a6e4af511 [users] FreeBSD support creating user
- call pw useradd and pw usermod as needed; the code paths are basically
  the same in invoking a program in the target system to do the work.
2020-07-27 13:45:00 +02:00
Adriaan de Groot
26b8c82630 [users] Refactor user-creation and user-group-setting into methods
- This is prep-work for handling other tools for user- and group-
  creation as well.
2020-07-27 13:29:51 +02:00
Adriaan de Groot
1fddf723fe [users] FreeBSD support creating groups 2020-07-27 13:18:09 +02:00
Adriaan de Groot
b99b87f787 [users] Explain some weird internals 2020-07-27 12:37:04 +02:00
Adriaan de Groot
90a0605f38 [preservefiles] [users] Use the Permissions methods
- don't call out to tools (executables) when we have an API for it
  (which might call out to those tools, but that's abstracted)
2020-07-27 12:27:45 +02:00
Adriaan de Groot
1babcd2aa4 [libcalamares] Put Permissions in CalamaresUtils namespace
- most of the things in utils/ are in the CalamaresUtils namespace,
  let Permissions follow suit. Chase the name change in the
  *preservefiles* module.
- add an `apply()` function for doing the most basic of chmod.
  Note that we don't use `QFile::setPermissions()` because the
  **values** used are different (0755 for chmod is 0x755 in the
  enum value passed to `setPermissions()`).
2020-07-27 10:57:15 +02:00
Adriaan de Groot
d6910b47b5
Merge pull request #1464 from apt-ghetto/fixManualPartitionMsg
Revert Manual Partition instructions
2020-07-26 11:19:30 +02:00
Adriaan de Groot
a01c428270
Merge pull request #1465 from apt-ghetto/fixRootUsername
[users] Do not allow 'root' as username
2020-07-25 17:22:34 +02:00
demmm
3a3507f2b2 [keyboardq] remove background image use
make the module more in line with the look of the rest of Calamares
2020-07-25 17:18:28 +02:00
apt-ghetto
01b22d27a8 Do not allow 'root' as username
On the "Users" tab, the user can choose a username. It was possible to
use 'root' as username, which led to an installation error, because
'root' exists already.

Added a new check to the username validation.

Fixes #1462.
2020-07-25 16:17:57 +02:00
apt-ghetto
2b3cc17782 Revert Manual Partition instructions
With PR calamares/calamares#1357 the label of the "Manual partitioning" option
was changed, which introduced several downsides:
  * The label is shown for UEFI and for BIOS installations.
  * The mountpoint of the ESP is and should be distro specific.
  * The label always mentioned GPT, which is irrelevant.
  * The label should explain, what the option does, and not, what
    problems can occur under certain circumstances.
2020-07-24 17:56:58 +02:00
demmm
d114c383fa [localeq] remove obsolete vars & comments
set index in i18n.qml to -1, old settings were just for reading from the bogus model
current model uses strings, so index fails to read from it.  This fixes cala crashing on loading i18n.qml
2020-07-24 17:34:14 +02:00
Adriaan de Groot
409ab6ee86 [users] Refactor writing sudoers file
- use existing convenience methods
2020-07-24 14:27:42 +02:00
Adriaan de Groot
bc484ae5da [users] Refactor /etc/group file handing 2020-07-24 14:27:42 +02:00
Adriaan de Groot
11482559ad [netinstall] There is no netinstall.qrc 2020-07-24 13:39:43 +02:00
Adriaan de Groot
2c110bfc66 Merge branch 'calamares' into move-permissions 2020-07-24 12:29:10 +02:00
Adriaan de Groot
a080e47f4b [locale] Add prettyStatus to Config
- this is present in the previous config, and helps make the modules
  consistent by returning prettyStatus in both ViewSteps.
2020-07-24 11:53:32 +02:00
Adriaan de Groot
07c096673d [localeq] Report summary before install 2020-07-24 11:10:56 +02:00
Adriaan de Groot
a4ed160060 [localeq] Offer a Config setting to set location from region/zone
- already had methods for various kinds of broken-up data, but
  not one for plain "region/zone" strings; having this makes
  it easier for QML to report a zone.
- use the region/zone method from QML, so that clicking on the
  world map updates the actual TZ in Config.
2020-07-24 11:07:58 +02:00
Adriaan de Groot
e78cde7ccb [locale] Update GS when the LC value changes (not just location) 2020-07-23 23:32:53 +02:00
Adriaan de Groot
00e9454344 [localeq] Hook up to Config object
- get network status from the global Network object; document that
- get the strings describing the language and LC settings from
  the config-object instead of roll-our-own
- use the model of supported locales from Config to populate listboxes
- connect selection of language or LC to the Config object
2020-07-23 23:32:53 +02:00
Adriaan de Groot
75da1bece4 [locale] Add properties for language and LC codes
- we already had the human-readable status strings, but also want the
  actual code (particularly for being able to **update** the code
  from QML)
2020-07-23 23:25:52 +02:00
Adriaan de Groot
fdbfbfe284 [localeq] Fix build, missed one case of removed member variable 2020-07-23 17:46:20 +02:00
Adriaan de Groot
fb927c9763 [localeq] Use network-connected property to direct map-loading 2020-07-23 12:57:26 +02:00
Adriaan de Groot
4b7403d115 [localeq] Re-do with new Config
- remove stray and useless TODOs
- remove unnecessary empty overrides
- clean up includes
- drop all the code that is now in Config

Since the business logic (setting locations, maintaining GS, ...)
is all in the Config object, the ViewStep is remarkably simple:
hook up a UI to the Config, which in the case of QML is done
automatically.
2020-07-23 11:11:18 +02:00
Adriaan de Groot
d90d451f42 [locale] Remove unnecessary includes 2020-07-23 10:43:31 +02:00
Adriaan de Groot
1f3cb32486 [locale] Apply coding style 2020-07-22 17:10:08 +02:00
Adriaan de Groot
824cb4d4b8 [locale] As the Page is constructed, it shouldn't change the location
- since the Page hooked up a model and changed the region-selection
  **after** connecting to signals, it would reset the location
  to Africa/Abijan (alphabetically the first timezone) during
  construction. Don't do that.
2020-07-22 17:06:14 +02:00
Adriaan de Groot
4f684be83d [locale] Avoid crashes in the map widget if there is no current location 2020-07-22 17:06:14 +02:00
Adriaan de Groot
42331f6e13 [locale] Move GeoIP lookup to config
- replace the weird synchronous-lookup-during-requirements-checking
  with a proper async lookup when the system is ready.
2020-07-22 17:06:14 +02:00
Adriaan de Groot
a25d61077f [locale] Add GeoIP settings to Config
- this doesn't do the lookup **yet**
- while here, refactor setConfigurationMap so it reads like a story,
  with chunks bitten out into a handful of static inline void methods.
2020-07-22 11:53:06 +02:00
Adriaan de Groot
b607cf3f98 [locale] Get starting TZ in Config
- read the *region* and *zone* settings; this duplicates what
  the ViewStep does and is currently unused, but ..
- add new support for using the system's TZ (rather than
  the fixed values from *region* and *zone*). This complements
  GeoIP lookup.

This is the actual feature that started the long rewrite of
the Config object (so that all the business logic would be in
one place, usable for both widgets and QML).

FIXES #1381
2020-07-22 01:28:10 +02:00
Adriaan de Groot
781d76c9e5 [locale] Avoid nullptr if there is no location 2020-07-22 00:32:29 +02:00
Adriaan de Groot
0c9480aa3f [locale] Move more business logic to Config
- writing *localeConf* settings to GS can be done always when the
  formats are set, rather than special-cased. The code
  that handles the "special case" of no widget existing for the ViewStep
  overlooks the other crashes that happen then.
- Since Config knows what jobs to create, just ask it rather than
  keeping a copy.
2020-07-22 00:23:50 +02:00
Adriaan de Groot
f6419d5de1 [locale] New setting *adjustLiveTimezone*
- allow finer-grained control over whether-or-not to adjust the
  timezone in the live system.
- handle some special cases at the point of loading-configuration.
- document the setting in locale.conf
- correct some documentation bugs
- adjust the YAML schema for locale.conf so it's legal YAML syntax
  **and** validates the current file.
2020-07-22 00:11:55 +02:00
Adriaan de Groot
995ebd5c83 [locale] Remove unused #includes 2020-07-21 17:44:44 +02:00
Adriaan de Groot
1de2210d29 [locale] Move the GS updating to the Config object
- since all locale changes need to be entered into GS anyway, this
  is something the Config object can do because it is the source
  of truth for locale settings.
- drop all the GS settings from the Page.
2020-07-21 17:38:22 +02:00
Adriaan de Groot
f7c2e4a3e7 [locale] Sanitize Config signals and slots
- remove the weirdly-structured prettyStatus and similar:
  the Config object has human-readable status strings (three,
  for location, language, and LC-formats) which can be
  normal properties with signals.
- Implement prettyStatus in the view step by querying the Config.
2020-07-21 17:38:22 +02:00
Adriaan de Groot
ef08ff6ac0 [locale] Move status strings from Page to Config
- the config knows the status and how to describe it,
  fetch the strings from there.
2020-07-21 15:51:49 +02:00
Adriaan de Groot
855b21a7db [locale] Remove redundant method
- configuration information lives in the Config object
2020-07-21 15:35:38 +02:00
Adriaan de Groot
abc98cfa79 [locale] Simplify allocation, guard against crashes if the dialog is deleted. 2020-07-21 14:57:09 +02:00
Adriaan de Groot
66eacce654 [locale] Move localeconfiguration to Config object
- the language and LC settings migrate from page to config
- add API for explicitly setting language (which is then preserved
  when clicking new locations)
2020-07-21 13:16:52 +02:00
Adriaan de Groot
a307217d83 [locale] Tidy LocaleConfiguration
- expand API documentation
- minor coding-style adjustments
2020-07-21 11:13:40 +02:00
Adriaan de Groot
81520bbbf9 [locale] Chase RAII conveniences
- several early-return paths would leave the TZ widget blocked
- use the zones data from config
2020-07-21 00:21:42 +02:00
Adriaan de Groot
98f912f80a [locale] Drop LocalePage:;init
- setting the initial location is something the Config-object should do
- setting up the combo-boxes can be done in the constructor
2020-07-21 00:11:16 +02:00
Adriaan de Groot
726f882185 [locale] Move current-location to Config 2020-07-20 23:06:12 +02:00
Adriaan de Groot
5a6a9a0d45 [locale] Move job-creation to Config
- since Config knows what settings there are, it should create the
  jobs to run later -- not the Page.
- this doesn't work yet, because the Config does **not** know what
  the selected timezone is yet.
2020-07-20 22:21:29 +02:00
Adriaan de Groot
8c21b59853 [locale] Remove unused localegen (moved to Config earlier) 2020-07-20 18:13:33 +02:00
Adriaan de Groot
f0cac7d669 [locale] Hook tz widget up to the Config's data 2020-07-20 16:54:44 +02:00
Adriaan de Groot
4d5ff6d5c4 [locale] Make the Page use the region model from Config 2020-07-20 16:27:15 +02:00
Adriaan de Groot
88d1d255f6 [locale] Add regions & zones models to Config
- The models are constant pointers, even if their contents aren't.
- Make the top-level (region) model point to the global TZ list.
2020-07-20 16:16:53 +02:00
Adriaan de Groot
51b7ec875f [locale] Don't need own copy of zones list 2020-07-20 13:55:00 +02:00
Adriaan de Groot
439f828d9b [locale] Document TZ widget 2020-07-20 13:47:23 +02:00
Adriaan de Groot
931ce20f30 [locale] Reduce API surface
- getLocationPosition doesn't need to be a method, since it calls out
  to a static function of TimeZoneImageList anyway.
2020-07-20 13:38:20 +02:00
Adriaan de Groot
25ba1bb767 [locale] Remove localeGenLines from page
- the Config object took over loading of the string list
- expose the list as a property
- drop loading code from the page.
2020-07-20 13:24:31 +02:00
Adriaan de Groot
338635146f [locale] Hand the Config object also to the page 2020-07-20 12:58:35 +02:00
Adriaan de Groot
b6b5c44996 [locale] Load supported locales in Config 2020-07-20 12:55:07 +02:00
Adriaan de Groot
8119c7e72a [locale] Reset Config object
The Config object wasn't being used at all in the locale module;
reset it to empty and start using it in locale, so that
configuration functionality can be added to it as-needed,
and with the necessary refactoring built-in.
2020-07-20 12:37:27 +02:00
Adriaan de Groot
0d5db2dd06 [localeq] Config-handling is a total bodge-job, disable 2020-07-20 12:36:58 +02:00
Adriaan de Groot
724b92ee60 [partition] Drop documentation of vanished parameter 2020-07-11 16:35:54 +02:00
Adriaan de Groot
a91edfef89 [netinstall] auto-resize the columns
- previously, the first column (name) was sized to show the
  names **that were visible at startup**, which fails when
  there are long names hidden in groups that are not expanded
  immediately.
- change the columns to resize according to the contents; this makes
  the descriptions jump to the right as the name column gets wider.

FIXES #1448
2020-07-08 13:34:38 +02:00
Adriaan de Groot
240c703549 [partition] Don't leak the PM core object 2020-07-08 13:11:10 +02:00
Adriaan de Groot
7f1a59f02b [partition] Fix typo 2020-07-08 13:11:10 +02:00
Adriaan de Groot
313531bc4b [partition] Remove unused parameter
- there are no consumers for checking-the-capacity-of-the-drive

This parameter was introduced in 3cd18fd285 as "preparatory work"
but never completed. The architecture of the PartitionCoreModule
makes it very difficult to get the necessary parameters to
the right place, and it would probably be better to put
a SortFilterProxyModel in front of a partitioning model anyway.

Since the display code can already filter on size, just drop this one.
2020-07-08 13:08:51 +02:00
Adriaan de Groot
948c078e1a [partition] winnow floppy drives
- don't list floppy drives

FIXES #1393
2020-07-07 23:03:12 +02:00
Adriaan de Groot
43ebcf8b61 [packages] Keep package-manager list alphabetized 2020-07-07 13:48:07 +02:00
Vitor Lopes
c16866fb88 pep8 302 2020-07-05 08:37:28 +01:00
Vitor Lopes
e29462bc05 [pamac] rework db_lock 2020-07-05 08:35:52 +01:00
Vitor Lopes
d78cbfc644 update example configurations and schema 2020-07-05 08:18:38 +01:00
Vitor Lopes
2c76106a66 Merge branch 'calamares' of https://github.com/calamares/calamares into calamares 2020-07-05 08:14:32 +01:00
Adriaan de Groot
46ad704ede [partition] Fix build for old KPMCore
SEE #1444
2020-07-03 22:33:00 +02:00
Adriaan de Groot
36a9088480
Merge pull request #1444 from gportay/add-parttype-partattrs-to-global-storage
[partition] Add the GPT type and attributes to global storage
2020-07-03 16:18:56 -04:00
Adriaan de Groot
d3f9415bc1 [packages] Expand schema to cover the operations
- Not complete, since the items in the operations aren't done
2020-07-03 22:07:18 +02:00
Adriaan de Groot
8aa8ac2d26 [packages] Tidy up configuration
- fix the schema so the schema is valid json-schema
- the schema doesn't actually validate the *operations* yet
- sort the named backends (needs a double-check that the
  list covers all the ones we currently support)

SEE #1441
2020-07-03 21:51:39 +02:00
Adriaan de Groot
08aa362c5c [license] Warnings-reduction
- Don't do in code what is already done in the designer (.ui) file
- setFrameStyle() is difficult because it mixes different enums
  into an int, which causes the warning from clang.
2020-06-27 00:33:50 +02:00
Adriaan de Groot
31a1b710bc Docs: say something about QML modules 2020-06-25 15:26:48 +02:00
Adriaan de Groot
6735ff1cd0 Docs: give up on PythonQt modules 2020-06-25 14:45:35 +02:00
Adriaan de Groot
e206eb086b [partition] Missing includes for Qt-compatibility 2020-06-23 17:05:08 +02:00
Adriaan de Groot
c3ff9edfa2 [tracking] Add a test executable
- just a stub, hardly tests useful functionality
2020-06-23 14:43:26 +02:00
Adriaan de Groot
1dfb25372b [tracking] Warnings-reduction
- Give classes a virtual destructor that need them
- Remove spurious ;
- Refactor addJobs() because that doesn't need to be in a class
- Remove redundant intermediate base-classes
2020-06-23 13:37:56 +02:00
Adriaan de Groot
0bede0692a [locale] Warnings-- on static_cast with no message 2020-06-23 13:18:30 +02:00
Adriaan de Groot
daf9451e69 [welcome] Warnings-- 2020-06-23 13:16:56 +02:00
Adriaan de Groot
22fdca8f44 [libcalamares] Use Logger::Pointer for logging void-pointers 2020-06-23 13:02:06 +02:00
Adriaan de Groot
192263cf9d [libcalamares][modules] Use compatibility for QString::split()
- Use the compatibility value, which has an enum value suitable
  for the Qt version in use.
2020-06-23 11:13:55 +02:00
Gaël PORTAY
9392473fec [partition] Add the GPT type and attributes to global storage 2020-06-22 16:37:20 -04:00
Adriaan de Groot
e24f812b2d [libcalamares] Chase Permissions move
- Fix include names in *preservefiles*
- Tidy up include guards
- Fix CMakeLists in *perservefiles* and *libcalamares*
- Use SPDX license headers
2020-06-22 16:32:47 -04:00
Adriaan de Groot
4473d7f5dd [preservefiles] Move permissions classes to libcalamares 2020-06-22 16:22:59 -04:00
Gaël PORTAY
4974d86932 [partition] Fix missing initialization of the attribute partAttributes
- Initialize the attribute partAttributes to 0; it is a primitive type
  and it is not initialized in some constructors.
  Fixes commit c1b5426c6 ([partition] Add support for partition attributes).
- Move implementation of default constructor to cpp.
2020-06-22 14:24:14 -04:00
Adriaan de Groot
fde1aad465 CMake: add support for USE_*=none (from the os-modules branch) 2020-06-22 13:39:36 +02:00
Adriaan de Groot
bff0bed07e [users] Apply coding style (only CreateUserJob.cpp though)
- use ci/calamaresstyle
- SPDX licensing
2020-06-22 13:17:39 +02:00
Vitor Lopes
976150bc1e
simplify install code 2020-06-22 00:12:02 +01:00
Vitor Lopes
ddfd120197
add missing self 2020-06-21 23:43:31 +01:00
Vitor Lopes
5bb49e252d
Update main.py 2020-06-21 18:28:17 +01:00
Vitor Lopes
75bba349be
Update main.py 2020-06-21 18:03:21 +01:00
Vitor Lopes
f8db15adc4
add pamac support 2020-06-21 17:24:29 +01:00
demmm
ccff4edd91 [keyboard] fully functional QML module
added missing components listed as ResponsiveBase, ListItemDelegate & ListViewTemplate
parts of which were on nitrux
keyboard.qml no longer uses buttons within ListView, can't work as buttons and have them visible
see https://doc.qt.io/qt-5/qml-qtquick-listview.html#footerPositioning-prop
set ListView as actually visible within a normal calamares window size
2020-06-19 17:05:29 +02:00
Adriaan de Groot
5da2012465 [users] Expand schema to support the keys documented in users.conf
- Now the documentation in the file and the source is leading
  to update the schema, but in future those should go hand-in-hand
2020-06-18 16:23:32 +02:00
Adriaan de Groot
463545290e [users] Fix up schema syntax
- Remove schema items *availableShells* and *avatarFilePath* because
  those have no implementation.
2020-06-18 16:12:40 +02:00
Adriaan de Groot
c284024b0e i18n: Update English translations 2020-06-18 15:47:18 +02:00
Adriaan de Groot
b9b79f11a4 [unpackfs] Prevent accidental 0777 permissions on /
FIXES #1418
2020-06-18 14:47:33 +02:00
Adriaan de Groot
0305476f8a Merge branch 'issue-1287' into calamares
Major update to the 'tracking' module with improved wording,
functionality, QML-preparation, and a working kuserfeedback mode.

FIXES #1287
2020-06-18 13:46:57 +02:00
Adriaan de Groot
1b11cc90c4 [tracking] Polish the phrase for 'none' a bit 2020-06-18 13:37:43 +02:00
Adriaan de Groot
6365b7a362 Merge branch 'calamares' into issue-1287 2020-06-17 18:10:33 +02:00
demmm
fc91b4ce60 [localeq] use js to get the hasInternet status
switching between Map.qml & Offline.qml now happens properly
2020-06-17 16:52:59 +02:00
Adriaan de Groot
8ad221311d [tracking] Can't uncheck 'none' box by itself
- If the 'no tracking' box is checked, then the way to uncheck
  it is to tick some **other** box.
- It doesn't make sense to unselect 'none' and then have .. none
  selected.
2020-06-17 15:31:53 +02:00
Adriaan de Groot
47b0fa5d55 [tracking] Get username from gs 2020-06-17 15:24:21 +02:00
Adriaan de Groot
9b8d591b5d [tracking] Configure user-tracking areas 2020-06-17 15:11:11 +02:00
Adriaan de Groot
98ab4330c4 [tracking] expand documentation of configuration 2020-06-17 14:52:48 +02:00
Adriaan de Groot
3f55d415e9 [tracking] Make names of user-tracking styles consistent
- use kuserfeedback instead of "kde", to name the technology,
  not the community
2020-06-17 14:27:28 +02:00
Adriaan de Groot
5623d8086b [tracking] Apply coding style
- massage trackingSetup macro to look like a function call
2020-06-17 14:27:28 +02:00
Adriaan de Groot
789561be6a [tracking] Apply coding style 2020-06-17 14:14:06 +02:00
Adriaan de Groot
8c1685d2cf [tracking] Connect UI to configuration
- policy buttons open the policy URL
- hide tracking levels that are not configurable
2020-06-17 12:20:35 +02:00
Adriaan de Groot
756e3084dc [tracking] Simplify updatemanager job
- sed all the URI lines with a simple replacement
- document policy requirements
2020-06-17 11:33:48 +02:00
Adriaan de Groot
9433311f24 [tracking] Explain which tracking style is disabled by URL-validation 2020-06-17 11:33:48 +02:00
Adriaan de Groot
48d0c5beeb [tracking] Do user tracking in the job queue 2020-06-17 11:33:48 +02:00
Adriaan de Groot
cb2909f6d8 [tracking] Rename "neon" tracking
KDE neon does not do this kind of tracking -- although it was originally
requested by KDE neon, no server roll-out was done once the
privacy policy was thought out.
2020-06-17 11:33:48 +02:00
Adriaan de Groot
4d6a5d0cb5 [tracking] Use KMacroExpander instead of homebrew for install-URL 2020-06-17 11:33:47 +02:00
Adriaan de Groot
c797a30a72 [tracking] Bold more relevant parts of level-descriptions 2020-06-17 11:33:47 +02:00
Adriaan de Groot
dda4ab0b2e [tracking] Improve naming
- give the on-some-checkbox-state-changed slots better names
- while here, refactor is-any-actual-tracking-option-checked
- improve other debug messages, to be a whole sentence
2020-06-17 11:33:30 +02:00
Adriaan de Groot
635f53a804 CI: add a BUILD_SCHEMA_TESTING
- ON by default, so if tests are built and the script works,
  those tests will run as well.
- Check that the script works by invoking it once.
2020-06-16 17:36:59 +02:00
Adriaan de Groot
e3b8570d61 Merge remote-tracking branch 'origin/master' into calamares
Pick up some older MRs that apply to the older branch.
2020-06-16 16:45:49 +02:00
Adriaan de Groot
bfefbd117d
Merge pull request #1435 from gportay/partition-attributes
Partition Attributes
2020-06-16 16:42:30 +02:00
Adriaan de Groot
91f87ba838
Merge pull request #1409 from gportay/partition-uuid
Partition UUID
2020-06-16 16:42:24 +02:00
Adriaan de Groot
0cd8940363 [bootloader] Fix up schema 2020-06-16 16:16:07 +02:00
Adriaan de Groot
066acdbbc6 Merge branch 'yaml-schemata' into calamares 2020-06-16 16:07:57 +02:00
Adriaan de Groot
4a07bd4ae3 CI: import all the rest of the YAML schema
- These have **not** been fixed for validation, so the schema's themselves
  will fail to load. This is a consequence of variations in JSON-Schema
  representations through various drafts. Fixing the schemata is
  fairly straightforward.

This gives us 19 new tests, all of which fail.
2020-06-16 16:06:56 +02:00
Adriaan de Groot
df183d4026 [welcome] Add schema for welcome config
- Note that this is missing *languageIcon* so if that gets uncommented,
  it will fail validation.
- While here decide that  should be
  right up front in object (mappings) declaration.
2020-06-16 16:03:28 +02:00
Adriaan de Groot
b48c2745c1 CI: apply schema-validation to the example config files
- Any config file with a schema gets a test (validate-<module>)
  to test the file.
2020-06-16 14:38:13 +02:00
Adriaan de Groot
62e7128ff6 CMake: document WITH_ and BUILD_ a little more
- also mark TODO:3.3: for incompatible / surprising changes for 3.3
2020-06-16 13:54:13 +02:00
Adriaan de Groot
deec0b862f [finished] Add schema for config
- Original schema from artoo@manjaro.org, modified for current JSON-Schema use
2020-06-16 13:04:34 +02:00
Gaël PORTAY
c1b5426c66 [partition] Add support for partition attributes 2020-06-15 22:05:10 -04:00
Calamares CI
ba89b9f7f2 i18n: [dummypythonqt] Automatic merge of Transifex translations 2020-06-12 14:36:48 +02:00
Pablo Ovelleiro Corral
f034b55da2
[packages] add xbps package manager 2020-06-11 11:51:15 +02:00
Adriaan de Groot
6c272bc8be [libcalamares] Link yamlcpp privately
- link the library privately -- the public API uses QVariantMap
- install FindYAMLCPP just in case
- add yamlcpp explicitly in the few places that really need it
  (e.g. netinstall testing the parsing of netinstall.yaml)
2020-06-10 02:27:57 +02:00
Adriaan de Groot
38b4f45b92 [locale] Repair timezone graphics -- west-Africa and Pacific 2020-06-09 14:54:19 +02:00
Adriaan de Groot
d511cc2f7a [locale] Norfolk Island gave up +11.5 in 2015 2020-06-09 14:21:11 +02:00
demmm
a617dba85e [welcomeq]re-add the donate button example to welcomeq.conf 2020-06-09 13:34:16 +02:00
Adriaan de Groot
8c4b6e4804 Merge branch 'master' into issue-1287 2020-06-09 13:25:01 +02:00
Adriaan de Groot
35fb8dcc27 [mount] Warn if chcon is missing, rather than fail
FIXES #1429
2020-06-09 13:24:12 +02:00
Adriaan de Groot
d22178ca5e [welcomeq] Show filtered list of requirements
- only the unsatisfied ones are shown; no need to filter and
  fiddle about in QML
2020-06-09 12:13:44 +02:00
Adriaan de Groot
f68d0f0628 [welcome] Add a filtered model for unsatisfied requirements 2020-06-09 12:05:40 +02:00
Adriaan de Groot
d1165bea56 [welcomeq] Use just one component to display requirements
- Do all the status indication in one component, but vary
  the top-level message based on whether the mandatory
  requirements are satisfied.
- Vary color and icon based on each requirement's *mandatory* setting.
2020-06-08 10:22:03 -04:00
Adriaan de Groot
5b1e5a9e03 [welcome] Some API docs 2020-06-08 09:45:19 -04:00
Adriaan de Groot
f35fab24ac [welcome] Remove name-tangle
- use useful, not-single-letter, variable names
- don't rename inconsistently in the lambda capture
2020-06-08 08:33:48 -04:00
Adriaan de Groot
8255bc3fc1 [welcome] Sanitize example configurations
- remove all duplicated documentation from ; it's the same as
  `welcome.conf` in all respects except for *qmlSearch*.
2020-06-08 08:33:48 -04:00
demmm
73eb718c08 adding needed geoip section to welcomeq.conf
see https://github.com/calamares/calamares/issues/1427#issuecomment-640531710
2020-06-08 13:25:47 +02:00
Adriaan de Groot
5e79176f47
Merge pull request #1422 from andy1247008998/patch-2
remove unnecessary period mark since it's a title
2020-06-06 17:22:13 +02:00
Adriaan de Groot
0e7c984854 [partition] Add missing includes for Qt 5.15 compatibility 2020-06-03 16:43:31 +02:00
Adriaan de Groot
1c598d769b [partition] Apply coding style (to just this one file) 2020-06-03 16:42:42 +02:00
Adriaan de Groot
25d36a8943 [netinstall] Improve documentation of translation framework
- Not country-code, but language-code

FIXES #1411
2020-06-03 16:02:43 +02:00
Adriaan de Groot
67d7c700fd [locale] Update documentation to mention *fixed* style 2020-06-03 15:11:19 +02:00
Adriaan de Groot
24653c1cc6 [locale] C&P code with repeated bugs from QML branches 2020-06-03 13:42:15 +02:00
Adriaan de Groot
c6d147bde6 [keyboard] Give Canadian English the US keyboard layout, eh 2020-06-03 01:38:11 -07:00
AI Lion
c6174b027c
remove unnecessary period mark since it's a title 2020-05-31 00:31:05 +08:00
Adriaan de Groot
60e12174fd [tracking] Switch out Radio for CheckBox
- The Radio's are replaced by CheckBoxes and some logic, so
  that different tracking styles can be enabled independently.
  None of the settings end up in the Config yet, though.
2020-05-25 10:32:56 -04:00
Adriaan de Groot
fab3ff2c41 [tracking] Implement KUserFeedback configuration
- write config files to turn on KUserFeedback (for known areas)
- TODO: get the right home directory to write in
2020-05-25 09:56:32 -04:00
Adriaan de Groot
bed884c971 [tracking] Move setup of initial-tracking states to Config
- the *default* level from the config, can be handled inside
  the Config object as well; remove TrackingPage method that
  does the same.
2020-05-25 09:22:51 -04:00
Adriaan de Groot
1d143d95a0 [tracking] Setup UI in the .ui file 2020-05-25 08:30:37 -04:00
Adriaan de Groot
935f443a4d [tracking] Simplify policy display
- Don't need an own slot for this, just connect to signals from Config
  and the label, neither of which need any state.
2020-05-25 05:24:20 -04:00
Adriaan de Groot
689a65e107
Merge pull request #1414 from gportay/remove-unused-locals
[partition] Remove unused locals
2020-05-25 10:43:56 +02:00
Calamares CI
bc9544bf14 i18n: [dummypythonqt] Automatic merge of Transifex translations 2020-05-25 03:40:18 -04:00
Gaël PORTAY
629bb2e2f6 [partition] Remove unused locals
- Unused since commit 0d284759f5
2020-05-20 11:06:39 -04:00
Adriaan de Groot
69c2d089f2
Merge pull request #1413 from gportay/rawfs-fix-crash-if-bogus-is-unset
[rawfs] Fix crash if bogus is unset
2020-05-20 14:50:57 +02:00
Gaël PORTAY
40dd34c7d0 [rawfs] Fix crash if bogus is unset
- fixes:
	12:44:25 [6]: Python Error:
	 <class 'TypeError'>
	 'builtin_function_or_method' object is not subscriptable
	 File "/usr/lib/calamares/modules/rawfs/main.py", line 188, in run
	    item.copy(filesystems.index(item), len(filesystems))

	  File "/usr/lib/calamares/modules/rawfs/main.py", line 99, in copy
	    if libcalamares.job.configuration["bogus"]:
2020-05-19 12:58:36 -04:00
Adriaan de Groot
3e51fe4651 [partition] Remove spurious Q_FUNC_INFO from logging
- The Q_FUNC_INFO was integrated into regular logging with commit
  5248a37eb3
2020-05-19 16:44:44 +02:00
Adriaan de Groot
a7c4e2d203 [tracking] Remove widget-setting stuff not needed with Config 2020-05-19 11:12:16 +02:00
Adriaan de Groot
dfd6bb6a8b [tracking] Massage the displayed explanation 2020-05-19 11:05:32 +02:00
Adriaan de Groot
49e66b11a2 [tracking] Refactor creation of jobs
- Let the jobs handle their own styling and handling, simplify
  the ViewStep code.
2020-05-19 10:42:25 +02:00
Adriaan de Groot
309b2f872d [tracking] Drop configuration fields from ViewStep
- All the configuration lives in the Config object (or the
  tracking objects that it exposes).
- Get data from the config object for the jobs; TODO: give the
  jobs a less-clunky interface.

The UI isn't hooked up to the Config object yet, though.
2020-05-18 20:18:34 +02:00
Adriaan de Groot
5763799ba9 [tracking] Load all the tracking bits into the configuration 2020-05-18 17:48:51 +02:00
Adriaan de Groot
528b98c1c4 [tracking] Configurations for machine and user tracking 2020-05-18 17:42:51 +02:00
Adriaan de Groot
f97a0756a9 [tracking] Introduce configuration for install-tracking
- subclass of TrackingStyleConfig holds the URL that is pinged with
  information when the installation is done.
2020-05-18 17:09:01 +02:00
Adriaan de Groot
d9fb9c19a8 [tracking] Refactor the information for one tracking type
- a single tracking type can be enabled for configuration in the
  config file; each must have a policy URL. Class TrackingStyleConfig
  is a base class for that kind of configuration.
2020-05-18 16:41:25 +02:00
Adriaan de Groot
68bb066755 [partition] Consolidate SwapChoice handling
- pickOne() may be useful, given a set of swap choices; expose it
- move type definitions to PartitionActions, where some of them
  come from.
2020-05-18 14:12:50 +02:00
Adriaan de Groot
4ae398c18d [partition] Move swap choices into config 2020-05-18 14:03:31 +02:00
Adriaan de Groot
a381d6794f [partition] Migrate required-storage setting to Config object
- Create and use the config object in the view step
- Add setConfigurationMap() to Config
2020-05-18 13:07:12 +02:00
Adriaan de Groot
c7857b7749 [partition] Coding style on tests 2020-05-18 12:23:13 +02:00
Adriaan de Groot
b33e54abb9 [partition] Stub of a Config object
- Even though this isn't a QML'able module, work towards
  a decoupled Config object anyway
- Not actually used yet.
2020-05-18 12:23:13 +02:00
Adriaan de Groot
ca59c8419c [partition] Goal of this branch: configurable default action 2020-05-18 12:23:13 +02:00
Adriaan de Groot
6d07527123 [partition] Comment-out unsupported swap options
- I notice they get copied into distro configurations a lot,
   leading to warnings in the logs
2020-05-18 12:23:13 +02:00
Adriaan de Groot
72857b75d0 [partition] Chase moving PrettyRadioButton to libcalamaresui
- Update includes
- Use exposed API instead of accessing internals of the button
2020-05-18 11:26:22 +02:00
Adriaan de Groot
c4951d5090 [libcalamaresui] Move PrettyRadioButton from partition 2020-05-18 10:38:45 +02:00
Adriaan de Groot
4c0a212b68 [partition] Warnings-- (Qt 5.14)
QVariant::fromValue doesn't have *since* documentation, so I expect it to be 5.6-and-later.
2020-05-18 10:12:12 +02:00
Adriaan de Groot
27d4fa675b [locale] remove unneeded this-> 2020-05-18 10:03:34 +02:00
demmm
e2c99eeb5e [welcomeq] adjust spacing
make sure the listviews fit in the default window size without overlapping
the language bar
2020-05-17 12:37:01 +02:00
Gaël PORTAY
3d2b9053b0 [partition] Add the GPT label and UUID to global storage 2020-05-15 16:12:19 -04:00
Gaël PORTAY
da6f728cd4 [partition] Add support for partition uuid 2020-05-15 16:12:19 -04:00
Gaël PORTAY
33f6bd5699 [bootloader] Remove unused variable root_mount_point
- root_mount_point was used initially for logging c1a139995 (adding new
  bootloader job options are to use grub for BIOS, gummiboot for efi set
  extra mountpoint when efi is found)
- the trace was removed since 533031b3c ([bootloader] print() does not
  log)
2020-05-15 12:05:26 -04:00
Adriaan de Groot
c3d8112187 CMake: allow fine-tuning tests
- The Python configuration tests sometimes need extra setup, so
  do that through a CMakeTests.txt file in the test directory.
- Patch up existing tests:
  - grubcfg needs /tmp/calamares/etc/default to exist
  - rawfs won't work on FreeBSD because of differences in /proc
2020-05-15 14:38:45 +02:00
Adriaan de Groot
fe069bdb23 [fstab] Add some discussion about *discard* option
- drop the *discard* from filesystems-on-SSD in the standard example
  configuration.
- keep the table **with** *discard* around for referece and explanation.

Remember that the example configurations are intended as **examples**,
to document available settings, and do not reflect a sensible
production configuration.

FIXES #1395
2020-05-15 12:26:41 +02:00
demmm
153d605bb6 [welcomeq] use negatedText for better text on missing 2020-05-14 23:11:05 +02:00
demmm
a85ff30ad4 [welcomeq] smaller font size
correct color order Requirements.qml
2020-05-14 20:01:50 +02:00
demmm
fed89badd4 [welcomeq] connected to RequirementsModel
clean up obsolete lines in welcomeq.qml
add requirement section from welcome.conf to welcomeq.conf
data shows correctly in Recommended.qml, fails to show any in Requirements.qml if run without admin rights
2020-05-14 19:00:02 +02:00
Adriaan de Groot
47979555fe CMake: optionally disable QML
This makes it possible to remove QML from Calamares, possibly yielding
a smaller, lighter installer; it takes with it the nice slideshow,
modern configurable navigation and the QML UIs built for various modules.

By default, WITH_QML is on and the "normal" feature set is retained.

- look for Qml modules only when WITH_QML is on (the default)
- look for Network, since that's pulled in only implicitly
- disable the QML Calamares models (modules/*q) if no QML is
  enabled; longer-term plan is to merge the **pages** back to
  the "upstream" modules, and have things be run-time switchable,
  but that's not here yet. Also disable the notesqml module when
  QML is off.
2020-05-14 16:31:39 +02:00
Adriaan de Groot
2b0b873159 [welcome] Remove spurious logging 2020-05-14 15:23:45 +02:00
Adriaan de Groot
3f9878afc1 [welcomeq] Use the model properties to show recommendations and requirements 2020-05-12 17:07:50 +02:00
Adriaan de Groot
1a1fde1885 [welcome] [welcomeq] Chase API change for requirements progress 2020-05-12 17:07:15 +02:00
Adriaan de Groot
90f8e748ef [welcome] Improve debugging of general requirements
- distinguish 'this has not been checked' from 'checked and failed'
2020-05-12 15:29:16 +02:00
Adriaan de Groot
9e0aa76375 [welcome] Order member pointers
- Create config before the page
- .. and in doing so, create the page in the initializer list instead
2020-05-12 14:54:18 +02:00
Adriaan de Groot
e930c74e85 [welcomeq] Coding style
- Apply coding style tool
- Remove commented-out cruft
- Drop TODO's that don't apply anymore
2020-05-12 14:47:31 +02:00
Adriaan de Groot
ed71b2fbf5 [tracking] Only accept valid policy URLs 2020-05-12 14:42:04 +02:00
Adriaan de Groot
044f5ce2b5 [tracking] Use the config object
- right now only holds the global policy URL (as a string)
2020-05-12 14:39:42 +02:00
Adriaan de Groot
a69d47c115 [tracking] Add a Config object 2020-05-12 14:24:33 +02:00
Adriaan de Groot
8ed8b5dfa3 [tracking] Reduce compiler warnings
- Newly added enum value NoTracking needs explicit handling
  in some switch()es, although it will never be passed in.
2020-05-12 12:11:11 +02:00
Adriaan de Groot
fd2853b2cf [tracking] Switch setTrackingLevel() to use enum 2020-05-12 11:41:02 +02:00
Adriaan de Groot
6d744374db [tracking] Use enum-conveniences 2020-05-12 11:24:16 +02:00
Adriaan de Groot
c0fa212fa9 [welcome] Be slightly more verbose in reporting missed req's 2020-05-11 20:45:47 +02:00
Adriaan de Groot
7d00f7e0dc [welcome] Explain in the debug log what failed 2020-05-11 16:30:26 +02:00
Adriaan de Groot
fabe5ec439 [welcome] Config should not have its own RequirementsModel
- Use the one from ModuleManager
2020-05-11 16:30:26 +02:00
Adriaan de Groot
8306de731a [welcome] Setting requirements from own reqs is totally wrong
- The requirements are collected by ModuleManager, checked
  by an internal RequirementsChecker and changes to the
  requirements state are all signalled from ModuleManager.

By connecting the requirements in the welcome modules' Config
only to their own configs -- and immediately checking them,
which is bad on its own -- we end up with a disconnect between
what the ModuleManager says about requirements, and what
the welcome modules report on.
2020-05-11 16:30:26 +02:00
Adriaan de Groot
0f5db0ba5e [libcalamares] Remove direct access to model internals
- This was just for the ResultsListWidget, which can also use
  normal role-based model access.
2020-05-11 16:30:26 +02:00
demmm
32ae0a7bf6 set a bogus username in Map.qml 2020-05-10 17:59:52 +02:00
demmm
34e7b06cc9 [localeq] move to QtLocation map based module
fully implemented:
* loading of a live map, ESRI based, zooming & dragging possible
* IP address is translated to map coordinates
* loading of the map centers to the obtained coordinates, with a marker set
* coordinates are translated to a timezone, label visible at bottom of the map
* mouse movement will show changing coordinates
* clicking on new location will center map there, marker moved too, timezone label adjusted
* hasInternet switch set to either load Map.qml or Offline.qml

not done:
* get hasInternet status
* fill the fine-tune 181n.qml with proper locale & language data
* connect the obtained timezone to globalstorage

comments are left in the various files for what needs attention/changes
2020-05-09 14:01:21 +02:00
Adriaan de Groot
36a1d60c0e Merge branch 'rawfs-compat'
Improve testing framework while adding tests to rawfs to double-
check that the conversion (for Python 3.3 compatibility) of
capture_output is correct.
2020-05-08 22:09:20 +02:00
Adriaan de Groot
1ae38c8ebc CMake: add tests when there are test-configs
- If a module has tests/#.global or tests/#.job, these are used
  as arguments to a test-run of loadmodule (which reads them
  and runs the module with that configuration).
- This makes the old python-loading test and test-runner entirely
  obsolete, so remove them too.
2020-05-08 21:53:39 +02:00
Adriaan de Groot
91f88cebf0 [calamares] Move testing application out of intermediate dir
- src/modules doesn't seem like a really good place for stray sources
  for a testing application. Move it.
2020-05-08 21:20:45 +02:00
Adriaan de Groot
74fb88f9ac [rawfs] Minor testing support
- set *bogus* to do no harm
- add some test configurations
2020-05-08 21:07:17 +02:00
Adriaan de Groot
dc87c11ac4 [rawfs] Slightly more debugging 2020-05-08 20:58:17 +02:00
Adriaan de Groot
7ff97bbb94
Merge pull request #1398 from demmm/master
start of adding requirements to welcomeq
2020-05-08 20:44:31 +02:00
Adriaan de Groot
55fb7565d4
Merge pull request #1396 from FLVAL/master
Add files via upload
2020-05-08 17:19:15 +02:00
Adriaan de Groot
175082e3ad [rawfs] Make compatible with Python 3.3 2020-05-08 17:09:37 +02:00
demmm
1ece171597 start of adding requirements to welcomeq
just QML, no real connections yet
hardcoded to not visible
not clear if requirementsModel is available to welcomeq
2020-05-08 13:37:50 +02:00
FLVAL
e5f2aba8e2
Add files via upload
Region "Africa" zones # 52 
14:25:19 [6]:  ..  Zone "Asmara" QPoint(445,183) 
14:25:19 [6]:  ..  First zone found 2 "2.0" 
14:25:19 [6]:  ..  Also in zone 3 "3.0"
2020-05-07 13:46:48 +02:00
Adriaan de Groot
5dc358093e [welcome] Apply coding style 2020-05-06 15:52:56 +02:00