Commit Graph

3411 Commits

Author SHA1 Message Date
Adriaan de Groot
d5275d5e10 [packagechooser] Allow the model to set the introductory text 2019-08-04 00:08:41 +02:00
Adriaan de Groot
047a300a51 [packagechooser] Remove unneeded debug 2019-08-03 23:55:29 +02:00
Adriaan de Groot
140c0db7a4 [packagechooser] Set GlobalStorage packagechooser_<id> 2019-08-03 23:51:00 +02:00
Adriaan de Groot
c59ffc7765 [packagechooser] Set default ID as documented 2019-08-03 23:33:34 +02:00
Adriaan de Groot
b711c791bd [packagechooser] Fix build, tidy code 2019-08-03 23:28:55 +02:00
Adriaan de Groot
87d7b2a5c0 [packagechooser] Allow setting an ID for the module's GS key 2019-08-03 23:24:30 +02:00
Adriaan de Groot
2f2080727d Merge branch 'master' into software-chooser 2019-08-03 23:16:38 +02:00
Adriaan de Groot
76077743af [packagechooser] Add configuration setting for selection mode
- Add a *mode* key to the configuration file
 - Change some names around to be more consistent (not user-visible)
2019-08-03 15:45:00 +02:00
Adriaan de Groot
042852218f [license] Apply current coding style 2019-08-03 14:52:38 +02:00
Adriaan de Groot
fb3204262c [packagechooser] Remove unneeded forward declaration 2019-08-02 23:24:35 +02:00
Adriaan de Groot
9d026862a8 [packagechooser] Provide names for selection mode 2019-08-02 23:20:45 +02:00
Adriaan de Groot
ab7374628b [packagechooser] Use sample screenshots 2019-08-02 17:17:53 +02:00
Adriaan de Groot
86d8db6bbf [packagechooser] Enforce selection mode on the next-button 2019-08-02 17:13:35 +02:00
Adriaan de Groot
7609546d8b [packagechooser] Add screenshots for example 2019-08-02 17:02:02 +02:00
Adriaan de Groot
2272d2ab43 [packagechooser] Add selection modes
- Introduce different selection modes (most don't work yet)
 - Use model data in the main widget
2019-08-02 16:43:10 +02:00
Adriaan de Groot
86e2e6242f [packagechooser] Warn about weird calling orders 2019-08-02 16:26:10 +02:00
Adriaan de Groot
a32dcdad86 [packagechooser] Support multiple selection modes 2019-08-02 16:25:26 +02:00
Adriaan de Groot
dc5cdbb38c [packagechooser] Update other parts of the window on selection 2019-08-02 16:07:47 +02:00
Adriaan de Groot
f8d159dfa4 [packagechooser] Massage layout a bit 2019-08-02 15:32:14 +02:00
Adriaan de Groot
d1a85ba5ca [packagechooser] Add a model for the list to use
- Model contents currently hard-coded
2019-08-02 13:05:46 +02:00
Adriaan de Groot
727290f75e [packagechooser] Handle translation events (stub) 2019-08-02 11:09:12 +02:00
Adriaan de Groot
735d5d2683 [packagechooser] Add stub of module
Package chooser is a **low density** package selector -- unlike
netinstall which offers a high density tree view -- for picking
zero, one, or more items from a small collection of packages.

This can be used, e.g., for "pick exactly one desktop environment",
"pick zero or more text editors" which can then be installed
by another module. The UI is big and shiny (rather than netinstall's
text-based tree view) and isn't suitable for more than a dozen or
so items.
2019-08-02 10:57:12 +02:00
Adriaan de Groot
dab841df02 [fstab] Tighten up the *efiMountOptions* documentation 2019-08-02 09:27:54 +02:00
Adriaan de Groot
d76c33bd3a [tracking] Tidy code some more 2019-08-02 09:19:15 +02:00
Adriaan de Groot
8186d5730a [contextualprocess] Apply current coding style 2019-08-01 23:10:49 +02:00
Adriaan de Groot
a0430f76b7 [shellprocess] Apply current coding style 2019-08-01 23:10:20 +02:00
Adriaan de Groot
d363732302 [tracking] Use std::chrono where appropriate 2019-08-01 23:07:45 +02:00
Adriaan de Groot
5183200515 [tracking] Apply current coding style 2019-08-01 23:05:42 +02:00
Adriaan de Groot
e3ecb083a0 Merge branch 'strictly-typed-timeout' 2019-08-01 23:00:28 +02:00
Adriaan de Groot
a0854a999e Modules: chase API change, use std::chrono::seconds 2019-08-01 22:59:06 +02:00
Adriaan de Groot
626fd8828a
Merge pull request #1206 from apt-ghetto/espMount
[fatab] Esp mount options
2019-08-01 19:15:36 +02:00
Adriaan de Groot
bedff6b252 [netinstall] Log immediate failures
- If the request is immediately bad (e.g. because of a botched
   url) then log that fact; in this case no finished() is ever
   emitted.
2019-08-01 15:17:24 +02:00
Adriaan de Groot
82055f6854 [netinstall] Logging; code duplication
- If there was an error, the network reply was never deleted
 - Improve logging to show where data is coming from
2019-08-01 14:31:25 +02:00
Adriaan de Groot
2bb66b8b9b [preservefiles] Example with REQUIRES
- preservefiles generally needs to have the target filesystems
   mounted, so that it can preserve to them; but you can also
   configure it such that there is no need for mounted filesystems
   (e.g. in OEM setup).
 - Add an example line in CMakeLists.txt to show how that would be done.
2019-08-01 12:37:23 +02:00
Adriaan de Groot
b0bcdba867 [unpackfs] Needs mount before it
- The mount module must happen before unpackfs because that (mount)
   module sets up the root mount point (in /tmp) and some other
   variables needed later.
2019-08-01 12:37:03 +02:00
apt-ghetto
0f5ff9a517 Add possibility to set mount options for the ESP
Added new configuration "efiMountOptions" to fstab.conf
When generating the fstab entry for the ESP, take the mount options from
the new configuration or fall back to "mountOptions".
2019-07-29 18:03:32 +02:00
apt-ghetto
8a545941d4 Remove flake8 errors
Remove the flake8 errors. This commit does not change any behaviour.
2019-07-29 16:01:30 +02:00
Calamares CI
08ac97b1ea i18n: [dummypythonqt] Automatic merge of Transifex translations 2019-07-29 13:29:03 +02:00
Adriaan de Groot
940c990268 [initcpio] [initramfs] Allow turning off CVE mitigations
- The mitigations are slightly intrusive, and may clash
   with other, similar mitigations (especially for initramfs,
   the recommended solution is to configure the system with
   the snippet outside of Calamares).
2019-07-06 00:04:16 +02:00
Adriaan de Groot
a761bf0280 [initramfs] Add tests
- These tests exercise the createTargetFile() logic,
   which is essential for creating a safe initramfs
   configuration snippet.
 - Could be moved into libcalamares instead, since the tests
   are not really initramfs specific.
2019-07-05 23:21:24 +02:00
Adriaan de Groot
39d618c61e [initcpio] Simple test for fixPermissions() 2019-07-05 13:28:32 +02:00
Adriaan de Groot
5f6efd2822 [initcpio] Improve security by making initramfs files not world-readable 2019-07-05 13:17:55 +02:00
Adriaan de Groot
43eb664e7d [initramfs] Configure mkinitramfs to be safe
SEE #1191
2019-07-05 11:43:40 +02:00
Adriaan de Groot
315e1ac54e [luksbootkeyfile] Improve logging to distinguish from other modules 2019-07-04 22:08:36 +02:00
Adriaan de Groot
bb6530577d [initcpio] Replace Python implementation with C++
- This is a simple variation on the theme of things-that-call-a-
   initramfs-updater, so the code is mostly a copy of initramfs/
   module. I didn't even bother to strip out the configuration-
   handling (I figure it might be good for *something*) so now
   "" and "$uname" are valid kernel names as well.
 - Fixes security issue where the initramfs ends up readable
   by all, and that includes the cryptfile for LUKS.

SEE #1190
2019-07-04 20:23:40 +02:00
Adriaan de Groot
d5340f9743 [initramfs] Drop timeout entirely, even two minutes too short 2019-07-04 20:05:48 +02:00
Adriaan de Groot
efd409cf78 [luksbootkeyfile] Refactor static function to outside class 2019-07-04 19:38:10 +02:00
Adriaan de Groot
7d7d4c69ef [luksbootkeyfile] Don't log passphrase 2019-07-04 19:37:37 +02:00
Adriaan de Groot
8a7884d476 [luksbootkeyfile] More debugging of the crypt file 2019-07-04 19:30:11 +02:00
Adriaan de Groot
97e44f971d [initramfs] That's not a safety setting
- Don't confuse a method declaration with an object.
 - Thanks clang for warning me.
2019-07-04 16:23:21 +02:00
Adriaan de Groot
af2a900276 [luksbootkeyfile] Fix lax permissions on file. 2019-07-04 16:05:58 +02:00
Adriaan de Groot
856a2eaa1d [luksbootkeyfile] Implement keyfile creation and use
- Just copy the commands from the existing Python code,
   including nonsensical dd.
2019-07-04 16:05:54 +02:00
Adriaan de Groot
8706b579ec [luksbootkeyfile] Stub out an implementation
- stubs for the actual work to be done
 - program-flow for looping over all the work
2019-07-04 16:05:54 +02:00
Adriaan de Groot
f6c50564cd [luksbootkeyfile] Extract devices that need cryptsetup
- Rename classes and functions to be more descriptive
   (a LuksDevice is .. information for a LUKS device, for instance).
 - Move the smarts of unpacking a QVariantMap to LuksDevice.
 - Apply code formatting
2019-07-04 16:05:54 +02:00
Adriaan de Groot
745b4b1693 [luksbootkeyfile] Extract partitioning keyphrases from GS 2019-07-04 16:05:48 +02:00
Adriaan de Groot
676df86712 [luksbootkeyfile] Stub job implementation in C++ 2019-07-04 16:05:47 +02:00
Adriaan de Groot
c2fa315735 [luksbootkeyfile] Prepare for C++-ification
- Mess around with the CMakeFile in preparation of new code
 - Drop the Python implementation already
2019-07-04 16:05:47 +02:00
Adriaan de Groot
1be81ec3b0 [initramfs] Bump the timeout much higher
- Use 120 seconds for update-initramfs, instead of 10. Previous
   Python code had no timeout at all, which wasn't so hot either.
   10 seconds, though, is too short for slow CPU & slow disk.
2019-07-03 21:20:08 +02:00
Adriaan de Groot
0030966986 [initramfs] Set umask before update-initramfs
SEE #1191
2019-07-03 00:43:40 +02:00
Adriaan de Groot
c0cd14df47 [initramfs] Fix sample config file for tests
- the tests want a non-empty config, so put something in there:
   a kernel setting that matches the legacy behavior.
2019-06-28 13:04:40 +02:00
Adriaan de Groot
f7cbb7b5ea Changes: Note modified initramfs module
- Also add note about $uname handling.
2019-06-24 16:47:20 +02:00
Adriaan de Groot
6ae8bd82fa [initramfs] Log what kernel will be passed to update-initramfs 2019-06-24 16:37:58 +02:00
Adriaan de Groot
a2d7fdcb8a [initramfs] Document settings
- Move the README text into the config file
 - Document the *kernel* setting
2019-06-24 16:35:54 +02:00
Adriaan de Groot
8d712276ad [initramfs] Replace module with C++ implementation
- new implementation handles blank (maps to "all") configuration,
 - allows specifying "$uname" as kernel name, to use `uname -r`,
 - allows specifying a specific kernel.
2019-06-24 14:38:56 +02:00
Adriaan de Groot
b216daf574 [initramfs] Prepare for C++-ification 2019-06-24 13:19:24 +02:00
Calamares CI
42bd638667 i18n: [dummypythonqt] Automatic merge of Transifex translations 2019-06-21 16:43:01 +02:00
Adriaan de Groot
5876c3fdd7 [partition] Warn about storage setting in partition.conf
- This is really a specialised setting, not something for
   general use. People should be using `welcome.conf` instead.
2019-06-21 13:43:02 +02:00
Adriaan de Groot
0f66a89236 [welcome] Only do GeoIP query if it's useful
- If badly-configured, then type is none; this is warned about
   in the constructor of Handler()
 - Only run the query if it's a useful type.
2019-06-18 12:34:52 +02:00
Adriaan de Groot
3967f6c5ae [welcome] Log where GeoIP information came from, if it's unusable
- This helps chase down broken GeoIP configurations, since you
   can check the URL and handler type shown in the log.
2019-06-18 12:24:30 +02:00
Adriaan de Groot
e94bbc5e0c [dummyprocess] Add some delay in the dummy 2019-06-17 15:53:02 +02:00
Calamares CI
1d01253249 i18n: [dummypythonqt] Automatic merge of Transifex translations 2019-06-17 15:35:07 +02:00
Adriaan de Groot
74432f698f [partition] Allow the requiredStorage setting to propagate
- store into globalStorage if the welcome module hasn't already done so.
 - this ends up used in PartUtils (via globalStorage).
2019-06-08 14:36:11 +02:00
Adriaan de Groot
e6a2cb607f [partition] Add setting for requiredstorage
- If the welcome module isn't used, can set a required amount
   of storage for the installation here.
2019-06-08 07:48:47 -04:00
Adriaan de Groot
b5c50c8d04 [partition] Update canBeReplaced
- Use GiB consistently
 - Provide same kind of debugging information as canBeResized()
2019-06-07 23:19:24 +02:00
Adriaan de Groot
79934aa513 [partition] Use GiB consistently in code 2019-06-07 23:04:24 +02:00
Adriaan de Groot
acf3dbcdcb [partition] Refactor getting the globalStorage value 2019-06-07 22:55:50 +02:00
Adriaan de Groot
3548792d1b [partition] Improve check canBeResized
- Report the globalSettings name properly (with "GiB")
 - Bail out on bad conversion early.
2019-06-07 22:51:33 +02:00
Calamares CI
bbc0edecd3 i18n: [dummypythonqt] Automatic merge of Transifex translations 2019-06-07 10:44:01 +02:00
Adriaan de Groot
3335c2003e [fsresizer] Fix tests
- Again? The checks on the job name (using filesystem or device
   name) all looked very bogus, unless it was previously not
   setting them at all.
2019-06-03 15:00:04 +02:00
Adriaan de Groot
f54b7dee9f [welcome] Use convenience image loader from Branding 2019-05-31 17:27:11 +02:00
Adriaan de Groot
07c638ed48 [welcome] Allow theming the international language-select icon 2019-05-31 17:27:11 +02:00
Adriaan de Groot
a263381996 [partition] Avoid an assert when running Calamares as user. 2019-05-31 12:27:32 +02:00
Adriaan de Groot
4a6b9f3528 [partition] Call update from init() in BootLoaderModel
- update() (might) add some extra rows for boot and root,
   which otherwise vanish temporarily when calling init.
2019-05-31 12:11:48 +02:00
Adriaan de Groot
d5f0bdd28c [partition] Simplify negative logic
- Instead of multiple continue statements to avoid negative cases,
   state the one positive case instead.
2019-05-31 12:08:58 +02:00
Adriaan de Groot
3bdbfe6bff [partition] Avoid crash if combobox is gone and model resets
- Since the lambda is connected to the model only, it should
   check that the target combo exists as well.
2019-05-31 12:08:58 +02:00
Adriaan de Groot
2ce2b08027 [partition] Indent lambdas to tab-stop.
- Lambdas are all over the place in this codebase, formulate
   a standard and start adjusting code to it in passing.
2019-05-31 12:08:58 +02:00
Adriaan de Groot
353e713f81 [partition] Complain loudly on dangling Partition pointers
- Don't crash if a bad pointer gets into colorutils.
2019-05-31 12:08:58 +02:00
Adriaan de Groot
2bc95d11d3 [partition] Unrelated typo in comment 2019-05-31 12:08:58 +02:00
Adriaan de Groot
f1f5b6c1bb [partition] Restore BootLoader path in Choice Page
- after model resets, restore what was previously selected.
 - This avoids having an **empty** combobox, SEE #1141 but does
   not actually set it back to the value the user had previously
   picked (e.g. changing swap settings **still** breaks the
   selection).
2019-05-31 12:08:58 +02:00
Adriaan de Groot
0ebabfafd4 [partition] Move BootLoaderModel convenience functions
- These were hidden inside PartitionPage, but are useful elsewhere.
2019-05-31 12:08:58 +02:00
Adriaan de Groot
8d451622db [partition] Idiomatic use of Calamares::JobList 2019-05-28 16:39:00 +02:00
Adriaan de Groot
e2b71e669e [partition] When running UNSAFE, no-install-partition is a warning 2019-05-28 16:29:45 +02:00
Adriaan de Groot
0c24a01eb9 [finished] Improve logging of restart mode
- Don't use weirdly-named mode, store named mode in page,
 - Log the actual mode name when setting up the restart button.
2019-05-28 13:27:21 +02:00
Adriaan de Groot
38c36e2439 [finished] Use idiomatic Calamares::JobList 2019-05-28 13:20:19 +02:00
Adriaan de Groot
1915547004 [finished] Improve logging when restarting. 2019-05-28 13:05:40 +02:00
Calamares CI
644aade0f5 i18n: [dummypythonqt] Automatic merge of Transifex translations 2019-05-28 12:56:23 +02:00
Adriaan de Groot
b41cac6556 [interactiveterminal] Warn when called in exec: context
FIXES #1157
2019-05-27 14:57:28 +02:00
Adriaan de Groot
36fe3ed188 [packages] Add -Su --noconfirm
- When updating the system (-Su) it may want to install newer
   packages; it asks for confirmation before doing so.

FIXES #1154
2019-05-27 14:06:05 +02:00
Calamares CI
a1f7cb4f49 i18n: [dummypythonqt] Automatic merge of Transifex translations 2019-05-21 12:17:16 +02:00
Adriaan de Groot
0c4d77541f [plasmalnf] simplify KF5-finding
- No need to double-up package finding.
2019-05-20 17:02:54 +02:00
Adriaan de Groot
81c4114de9 welcome: disable geoip by default (and document how)
FIXES #1148
2019-05-16 22:49:27 +02:00
Adriaan de Groot
34ffc7a20a [libcalamares] Consistent namespace usage in partition service
- The sub-directories under libcalamares (e.g. Utils, ..)
   all live in namespace CalamaresUtils (well, except for Logger).
   The services (e.g. subdirs other than utils/) live in their
   own nested namespace, so partitioning should go into
   CalamaresUtils::Partition for consistency.
2019-05-14 05:52:58 -04:00
Adriaan de Groot
e520c66bb9 [fsresizer] Give the FSResizerJob some accessors
- This is primarily for the tests: then they can drop the
   #define private public hack and be "proper" consumers.
2019-05-14 05:29:19 -04:00
Adriaan de Groot
80606cc38d [partition] Reduce test warnings through consistent signedness 2019-05-14 05:29:19 -04:00
Adriaan de Groot
7e12b65c94 [partition] Silence warnings about missing vtable 2019-05-14 05:29:19 -04:00
Adriaan de Groot
81715ba199 [partition] Warnings-- by using nullptr instead of 0 2019-05-14 05:29:19 -04:00
Adriaan de Groot
54108d2bab [partition] Fix up logging of jobs
- Logging `*it` was printing raw pointers, logging (plain) `it`
   needs the specialized logging `operator<<` to DTRT with temporaries.
2019-05-14 05:29:19 -04:00
Adriaan de Groot
fd4bc4bb17 [partition] Avoid UB by initializing size everywhere 2019-05-14 05:29:18 -04:00
Adriaan de Groot
bffaf47900 [partition] Reduce warnings about integer size 2019-05-14 05:29:18 -04:00
Adriaan de Groot
ed3eafbc2d [oemid] Reduce warnings about vtable by adding virtual destructor 2019-05-13 14:08:30 +02:00
Adriaan de Groot
3b0d778d1e [partition] Mention that reuse-swap isn't supported now 2019-05-12 16:34:57 +02:00
Kevin Kofler
ec7c5a4611 [bootloader] Fix sb-shim mode to write grub.cfg into the ESP
src/modules/bootloader/main.py (install_secureboot): Run the configured
grubMkconfig command (should be `grub-mkconfig` or `grub2-mkconfig`) to
create `/boot/efi/EFI/$efi_bootloader_id/grub.cfg`. The sb-shim is just
a chainloader to GRUB 2, which expects a grub.cfg in that location, so
something has to create it or the installed system will not boot beyond
the GRUB rescue shell.
(install_grub): Fix misleading comment above the grubMkconfig call: it
is not the file specified in grubCfg that should be already filled out
by the grubcfg job module, that file is written by `grub*-mkconfig`
using `/etc/default/grub` as the input file. It is that input file
`/etc/default/grub` that should already be filled out by the grubcfg job
module. (The same input file is used in install_secureboot.)
2019-05-12 16:11:35 +02:00
Adriaan de Groot
255f1e85a8 [fsresizer] Fix tests
- These are obvious mismatches between the tested-configuration
   and the assertions -- e.g. "71MiB" being tested for percents.
2019-05-10 19:00:11 -04:00
Adriaan de Groot
e972c175d8 [bootloader] Fix typo's
- There's a general "partititon" typo, but the variable
   name also is misused.
2019-05-10 18:26:59 -04:00
Adriaan de Groot
23ae6b77bd [bootloader] Convert to str
- The output of subprocess is a bytes object, which needs to
   be decoded so we can use it like a regular string (alternatively,
   we could have changed more code to manipulate bytes, but eventually
   we need a string to pass to a subsequent command anyway).
2019-05-10 15:35:00 -04:00
Adriaan de Groot
9bf1d83c2f [bootloader] Centralize the filename sanitizer
- Centralize the sanitizer so that it's consistent in different
   environments.
 - While here, add () to the sanitizer to avoid some distro's with
   parenthesized names from creating weird EFI dirs.
2019-05-10 15:28:37 -04:00
Adriaan de Groot
f18f9dcd14 [welcome] Lookup GeoIP language and pass to language widget
- FIXES #934
 - Whether this is really wanted depends on the distro, and I'm not
   100% convinced the likely tags from Unicode are correct (or it'd
   take a lot more data). In any case, starting Calamares in "NL"
   gets me "nl_NL" as translation; presumably starting it in "BE"
   will get me that as well (what about Les Wallons?)
 - This also shows off that it's a real hack to have so much program
   logic in the *widget* parts of each ViewStep. Longer-term,
   a lot of functionality should go to the ViewStep itself, which
   will then control the UI.
2019-05-10 15:02:12 -04:00
Adriaan de Groot
1857952431 [libcalamares] Add convenience accessor for translations
- Which translations are available is a global property
   of Calamares itself, not of the plugins, so getting
   the model of available translations should live there.
   Move the relevant code (which is simple) from the
   Welcome module.
2019-05-10 12:07:24 -04:00
Adriaan de Groot
18ed4c74ef [libcalamares] Move more into the locale service
- Use namespace CalamaresUtils::Locale consistently for this service.
 - Move locale-related non-GUI support code from the Welcome module
   to libcalamares; these are generally useful. Both Label (naming a locale)
   and LabelModel (managing a bunch of those Labels) have been moved.
2019-05-10 11:46:20 -04:00
Adriaan de Groot
b490e30a5e [welcome] Use the new locale lookup after GeoIP gets a 2-letter code 2019-05-10 11:03:01 -04:00
Adriaan de Groot
69f05bd34a Merge branch 'master' into shuffle-geoip 2019-05-10 08:04:36 -04:00
Adriaan de Groot
2a448c057d [welcome] Provide API for updating the country
- Changing country will pre-select the language most likely
   for that country (it doesn't, yet, since we don't have the data).
2019-05-10 07:53:44 -04:00
Adriaan de Groot
cb7c38daba [welcome] Support GeoIP country lookup 2019-05-09 15:15:03 -04:00
Adriaan de Groot
bbd2afc20f Merge branch 'issue-1129'
FIXES #1129
2019-05-09 08:14:25 -04:00
Adriaan de Groot
53230d73e2 [partition] Replace user-visible MB with MiB 2019-05-09 08:13:58 -04:00
Adriaan de Groot
b08de96315 [partition] Comment w/ MiB instead of MB 2019-05-09 08:00:23 -04:00
Adriaan de Groot
707ec98553 [partition] Tidy labels view
- Use MiB terminology and support code
 - Remove debugging chattiness
 - Fix up include style
2019-05-09 07:58:20 -04:00
Kevin Kofler
ecc32ab9b6 [mount] Update copyright notice 2019-05-09 13:52:13 +02:00
Adriaan de Groot
50857dcfec [partition] Fix tests to use "MiB" terminology 2019-05-09 07:51:35 -04:00
Kevin Kofler
34083344a4 mount: copy the SELinux context of the host directory to the mountpoint
On systems with SELinux enabled, we have to create the directories on
top of which we mount another partition or virtual file system (e.g.,
/dev) with the correct SELinux context, BEFORE we mount the other
partition. Otherwise, SELinux will get really confused when systemd
tries to recreate the mount tree for a private file system namespace for
a service. And unfortunately, even an autorelabel does not fix it
because it runs when /dev etc. are already mounted.

Without this fix, on Fedora >= 30, the system installed with Calamares
would fail to start the dbus-broker system bus, leading to several
important pieces of functionality not working (e.g., shutdown as
non-root).

On systems without SELinux enabled, chcon (which is part of coreutils)
will just print a warning and do nothing, so this should always be safe.
2019-05-09 13:50:31 +02:00
Arnaud Ferraris
eb57be1be8 [partition] Remove deprecated sizeToSectors() function
Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-05-08 19:31:41 +02:00
Arnaud Ferraris
80fd3d3353 [partition] Switch to using the generic PartitionSize class
Instead of relying on a module-specific implementation, use the new
PartitionSize class for storing partition sizes.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-05-08 19:31:20 +02:00
Arnaud Ferraris
8f9f8f1cc1 [fsresizer] Switch to using the generic PartitionSize class
Instead of relying on a module-specific implementation, use the new
PartitionSize class for storing partition sizes.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-05-08 19:31:01 +02:00
Arnaud Ferraris
36bc0e6308 [partition] Move bytesToSectors() to CalamaresUtils namespace
In order to prepare for future refactoring of the PartSize class, move
the bytesToSectors() function to libcalamares in the CalamaresUtils
namespace.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-05-08 19:20:38 +02:00
Adriaan de Groot
9331a25905 [libcalamares] Remove Typedefs.h
- This small header file contained a few unrelated typedefs.
   Move those typedefs to the classes they relate to. This
   **does** mean that some consumers need to #include something
   else instead.
 - Use type names more consistently.

Editorial: why are **pages** responsible for creating the jobs?
2019-05-07 09:51:23 -04:00
Adriaan de Groot
f60ac5e101 [modules] The modules can include libcalamares and libcalamaresui
- Remove (heavy-handed) top-level include_directories, in favor
   of more focused ones; this helps to make sure that the dependencies
   ordering is correct.
2019-05-07 07:48:40 -04:00
Adriaan de Groot
16ff8b0767 [fsresizer] Make dependency on partition module more explicit 2019-05-07 07:48:40 -04:00
Adriaan de Groot
d3783ef293 [partition] Use GiB and MiB consistently 2019-05-06 16:47:11 +02:00
Adriaan de Groot
502d43d111 [welcome] [partition] Rename GlobalStorage variable used for storage
- Change name passed into GS to use "GiB" instead of "GB", for
   consistency. This needs to be done in consumers as well.
2019-05-06 16:39:14 +02:00
Adriaan de Groot
599b34c70e [welcome] Rename GB variable to GiB
- User visible string with GiB
 - Update documentation in welcome.conf to match code
 - Rename variable because it was always GiB just named wrong
2019-05-06 16:31:23 +02:00
Adriaan de Groot
30a306f1b4 [welcome] Make check consistent with verbiage
SEE #1129
2019-05-06 16:18:19 +02:00
Kevin Kofler
a01d4707e1 [partition] Do not unmount /dev/mapper/live-* in ClearMountsJob
src/modules/partition/jobs/ClearMountsJob.cpp
(ClearMountsJob::getCryptoDevices): Skip not only `/dev/mapper/control`,
but also `/dev/mapper/live-*`. Fedora live images use
`/dev/mapper/live-*` internally. We must not unmount those devices,
because they are used by the live image and because we need
`/dev/mapper/live-base` in the `unpackfs` module.
2019-05-06 15:08:10 +02:00
Kevin Kofler
71d991e2e4 [unpackfs] Do not use -o loop on a device
src/modules/unpackfs/main.py (UnpackOperation.mount_image): Check
whether entry.source is a regular file or a device and only use
`-o loop` on regular files, not devices.

At least on Fedora >= 29, `-o loop` fails on the read-only device
`/dev/mapper/live-base` (though `-o loop,ro` would be accepted).
2019-05-06 15:04:58 +02:00
Kevin Kofler
02c7fe8345 [umount]: Fix default srcLog in umount.conf
Also fix the introductory comment, which also contained the old
location.
2019-05-06 15:01:30 +02:00
Adriaan de Groot
44107d6c33 [finished] Actually read the new-style config value 2019-05-06 12:23:10 +02:00
Adriaan de Groot
f3c86810a1 [finished] More (display) modes for restarting
- Use a named enum instead of a collection of booleans
 - Support old-style configuration but complain about it
 - Update AppImage config as well

The new setup allows four different restart modes: never,
always, user-unchecked and user-checked. The user-modes
are interactive and give the user a choice (defaulting to
unchecked-don't-restart and checked-do-restart respectively).
The non-interactive versions vary in how they are
displayed.
2019-05-06 10:35:09 +02:00
Adriaan de Groot
e281a74552 [finished] Fix up include guards and include style 2019-05-06 10:04:28 +02:00
Adriaan de Groot
d6c7e53966 [finished] Warnings should be logged as such 2019-05-06 09:57:19 +02:00
Adriaan de Groot
ef4196dbd8 [finished] Simplify configuration code 2019-05-06 09:57:19 +02:00
Adriaan de Groot
8774b605fa [locale] Update to use newer configuration
- deprecate the old entries
 - use a geoip sub-map for GeoIP configuration
 - polish up documentation
 - drop mention of blank and "legacy" styles for GeoIP config,
   just update your URLs already.
2019-05-03 11:37:12 -04:00