Commit Graph

4174 Commits

Author SHA1 Message Date
Adriaan de Groot
5973dbf74c [libcalamaresui] Shuffle code for QML slideshow
- Create widgets earlier
 - Group layouting code
 - Add retranslator only once, not on every activate
 - Load QML only once, preferably at activation
2019-06-01 23:39:39 +02:00
Adriaan de Groot
cbe14bbf03 [libcalamaresui] Rename m_slideShow -> m_qmlShow
- It could be any QML, so it's not a slideshow per se.
 - Minor prep-work for fixing up loading times.
2019-06-01 23:26:08 +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
75ce391e7e [libcalamaresui] Add branding-aware function for loading image by name 2019-05-31 17:27:11 +02:00
Adriaan de Groot
1438729b72 [libcalamaresui] Do filename checks more sanely
- check directory exists before trying to open file from it
 - re-use the componentDir already found for later tests.
2019-05-31 17:27:11 +02:00
Adriaan de Groot
69dabcae32 [libcalamares] Avoid static destructor
- The static destructor issues a warning on exit:
       QBasicTimer::start: QBasicTimer can only be used with threads
       started with QThread
   so instead, heap-allocate the model. This leaks memory, but
   it's a singleton *and* we're exiting anyway.
2019-05-31 12:38:34 +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
95009a5222 [libcalamaresui] Fix disable-cancel behavior
- d78bc0c5 added an early `return false` when cancel is disabled,
   before checking if we were at the last step; so last-step
   didn't get any special handling.
 - refactor so that last-step now gets special handling first,
   **then** disable-cancel handling, and then the usual case.
2019-05-28 13:38:28 +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
2e39f24bb0 [libcalamaresui] Make sure finished() is processed once
- Avoid races which might double-delete the timer, or enter
   the if twice (which would lead to duplicate emissions of
   requirementsComplete and the associated UI glitches).
2019-05-27 17:15:49 +02:00
Adriaan de Groot
2b91608b82 [libcalamaresui] Avoid requirements-results UI duplication
If the requirements checking is **really fast**, e.g. you don't
have a check for internet connectivity, then the checks
might be done as fast as the 0-timeout single-shot timer,
which means that finished() is called once by the QFutureWatcher,
and then after that by the QTimer .. leading to two messages
"All requirements have been checked", but also twice
requirementsComplete being emitted, so you end up with two
results lists being added by the CheckerContainer.

Stop that by using the results-progress timer as an additional
flag: the first time everything is complete, delete that timer
and set the pointer back to nullptr.
2019-05-27 17:10:21 +02:00
Adriaan de Groot
f64e55f0dc [libcalamaresui] Use meaningful asserts
- In debug mode, hitting assert(false) is meaningless,
 - In release mode, the assert is optimized out.
 - So assert the condition we're actually testing, for better messages.
2019-05-27 15:38:37 +02:00
Adriaan de Groot
976ad7e3e7 [libcalamaresui] Look up icons via theme
- Don't cache icons, because they could be changed via
   the active desktop theme.
2019-05-27 15:35:56 +02:00
Adriaan de Groot
822bbaad9c [libcalamaresui] Allow icon names in branding images
- It's ok to use path / filenames in images, but you can also
   use icon names according to the FDO icon spec. This makes
   sense for at least *productLogo*, possibly *productIcon*, but
   not really for *productWelcome*.
2019-05-27 15:26:57 +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
7f5e61480b [calamares] Once the steps are loaded, activate the first view step
- Using next and back buttons calls onActivate() on the view step
   that you end up on.
 - The first view step to be shown, though, doesn't get an onActivate()
   (unless you go, say, next and then back).
 - Explicitly call onActivate() on the first view step once they're
   all loaded.

FIXES #1156
2019-05-27 14:38:27 +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
Adriaan de Groot
c741470b60 [calamares] Name the debug button for styling purposes 2019-05-23 13:30:37 +02:00
Adriaan de Groot
cd38ded8d5 [libcalamaresui] Support os-release substitutions in images
- Branding images might want to use os-release data as well.
 - Refactor a little to keep the number of #ifdefs the same;
   an intermediate expand() lambda handles expansion (or not,
   if it's not enabled).

FIXES #1153
2019-05-21 17:12:00 +02:00
Adriaan de Groot
368e7aac16 Merge branch 'issue-1149' 2019-05-21 13:36:18 +02:00
Adriaan de Groot
18b111218a [libcalamaresui] Sort includes in DebugWindow.cpp 2019-05-21 13:35:58 +02:00
Adriaan de Groot
ac941e6756 [libcalamares] Implement reload-stylesheet
- From the debug-window, clicking *reload stylesheet* does just
   that, and applies the new stylesheet to the Calamares window.
 - Remove stylesheet caching from the Branding class; we only
   need the sheet once (on Calamares startup) or when updating
   the stylesheet, which is seldom-enough that we don't need
   to keep an extra copy around.
 - To use, start Calamares, open the debug window, open stylesheet.qss
   in an editor. Make changes, save, then click *reload stylesheet*.

SEE #1149
2019-05-21 13:21:47 +02:00
Adriaan de Groot
877cb0e999 [libcalamaresui] Debug-tool to dump widget tree
- Adds another tool to the debug window, which dumps (to the debug
   log) a tree-like view of all the widgets in the application.
   This can be used when writing stylesheets.
2019-05-21 13:07:34 +02:00
Adriaan de Groot
b5625fc14d [libcalamares] Add a reload-stylesheet button
- This is a debugging-option to test stylesheet changes quickly.
 - Right now, the stylesheet is cached, so it doesn't even work.
2019-05-21 12:52:50 +02:00
Calamares CI
a1f7cb4f49 i18n: [dummypythonqt] Automatic merge of Transifex translations 2019-05-21 12:17:16 +02:00
Adriaan de Groot
ee3a2bcbe8 CMake: tidy
- remove weird message about debugging updates
 - add some space after the QML dirs information
2019-05-21 12:14:47 +02:00
Adriaan de Groot
38485f675c [branding] In the stylesheet, mention how styling works
SEE #1149
2019-05-21 12:11:55 +02:00
Adriaan de Groot
6a7c2f541e [branding] Mention the stylesheet in the docs 2019-05-21 12:07:52 +02:00
Adriaan de Groot
a30edb194a [branding] Update branding.desc with new os-release feature
- Point to supported keys on the fd.o site
 - Point out need for quoting
 - Update example with "@{NAME}" for the window-title
2019-05-20 23:07:10 +02:00
Adriaan de Groot
af73d90b7b [libcalamaresui] Fix build with KOSRelease
- initialization of the hash was all wrong
 - special-case ID_LIKE
 - typo's
 - link to CoreAddons
2019-05-20 22:54:54 +02:00
Adriaan de Groot
fbbbe63642 [libcalamaresui] WIP: Use KOSRelease and KMacroExpander in branding
- allows you to use -- at runtime -- values from os-release in the
   branding file.
 - WIP because the only machine I have with sufficiently new KF5
   is the FreeBSD box.
2019-05-20 22:11:11 +02:00
Adriaan de Groot
92d0e71029 [libcalamaresui] one more refactor for string-loading
- Do the checking for IsMap inside loadStrings() and use
   YAML::Exception to get to bail() (since we're already dealing
   with exceptions here, no extra costs). This tidies up the code
   somewhat.
2019-05-20 17:03:32 +02:00
Adriaan de Groot
667f78c016 [libcalamaresui] if there's a YAML exception in branding, bail
- all kinds of type errors result in bailing out, but a totally
   broken branding file does not?
2019-05-20 17:03:28 +02:00
Adriaan de Groot
62328c9940 [libcalamaresui] images-strings loading fixed
- move the string-munge into a lambda and use the generic loadStrings()
2019-05-20 17:03:17 +02:00
Adriaan de Groot
544d905b2f [libcalamaresui] WIP: refactor again
- the string-manipulation can be done through a lambda. That makes
   handling *strings* and *styles* simple.
 - still doesn't compile.
2019-05-20 17:03:17 +02:00
Adriaan de Groot
5a126816f4 [libcalamaresui] WIP: refactor copying strings from config to Branding
- this is mostly to make the constructor easier to read by
   moving parts of the story to easily-understood methods.
 - doesn't actually compile.
2019-05-20 17:03:08 +02:00
Adriaan de Groot
5bae7b7b52 [libcalamaresui] check for sufficiently-new KF5CoreAddons
- From 5.58, KOSRelease is available (not used yet, though)
2019-05-20 17:03:04 +02:00
Adriaan de Groot
a9f3b4050c [libcalamaresui] don't over-complicate PythonQt library linking 2019-05-20 17:02:59 +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
1cf3ac810a [calamares] avoid extra defines for KCrash
- Don't need an extra indirection from WITH_KF5Crash to WITH_KCRASH,
   just use the cmakedefine directly.
 - Since the setting is only used in main.cpp, move the define
   down there and remove cmakedefine entirely.
2019-05-20 17:02:47 +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
f3bfc81e52 [libcalamares] Rename dontCancel to disableCancelDuringExec
- This way the name actually refers to what it does, rather
   than being a somewhat ambiguous overload of disableCancel.
2019-05-14 08:30:34 -04:00
Adriaan de Groot
a5cba02769 [calamares] Leave a note about changing close-window hint 2019-05-14 14:07:33 +02:00
Adriaan de Groot
2208ff95fe [calamares] Simplify disable-window-close-button code 2019-05-14 14:03:53 +02:00
Adriaan de Groot
d4f4a40fa5 [libcalamaresui] Refactor quit-enabling
- Add signal for change-of-quit-enabledness
 - Minor tidying
2019-05-14 13:43:07 +02:00
Adriaan de Groot
088fa5004c [libcalamaresui] Disallow closing the window during execution
- If the disable-cancel-during-exec setting is on, and the user clicks
   the window-close button, then disregard the close message.
2019-05-14 13:21:05 +02:00
Adriaan de Groot
ad4352b65c [libcalamaresui] Make stepIsExecute() more general
- Checking if the **next** step is an execute-step is a little
   weird, so make the API more general (and add the +1 to indexes
   where it was using NextWillExecute before).
2019-05-14 13:18:51 +02:00
Adriaan de Groot
25099ae854 [libcalamaresui] Remove duplicate setEnabled
- If executing is set to true, then later setEnabled( !executing && ... )
   fill be false, so we don't need to call setEnabled( false ) here as well.
2019-05-14 13:10:36 +02:00
Adriaan de Groot
5868657101 [calamares] Hide the window-close decoration when disable-cancel is set 2019-05-14 13:06:54 +02:00
Adriaan de Groot
d78bc0c5c5 [libcalamaresui] When disable-cancel is on, never confirm
- This function is also reached by clicking the window-close decoration.
2019-05-14 13:04:24 +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
10ba468748 [libcalamares] Avoid warnings / errors on both gcc and clang
- Clang 8 can detect that there is no need for a return if all
   previous paths already return. GCC 8 does not. Clang warns if
   the unreachable return is there, GCC errors out if it isn't.
 - Introduce a hack NOTREACHED that comments-out on Clang, and
   marks as unreachable (but still present) on GCC.
 - This might go away with an [[unreachable]] annotation or
   similar.
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
6db09f0679 [libcalamares] Handle all SizeUnit cases inside switch
- Although None will be filtered out already by unitsComparable(),
   include it in the switch to avoid a warning .. then we can
   drop the post-switch return since the switch covers all possible
   values of the enum.
2019-05-13 13:54:09 +02:00
Adriaan de Groot
90975b62bf [libcalamares] Tidy PartitionSize
- Use unitsComparable where applicable
 - Use SizeUnit instead of unit_t -- since this is a template
   specialization, we have the more meaningful type name to
   use, instead of the generic one.
2019-05-13 13:44:30 +02:00
Adriaan de Groot
72e1a36752 [libcalamares] Update partition service tests
- Use long so that 2GiB fits in the values
 - Document special case of 0[KMG]iB
2019-05-13 13:38:30 +02:00
Adriaan de Groot
7a368dc1d7 [libcalamares] Add tests for the partitioning service 2019-05-13 13:33:38 +02:00
Adriaan de Groot
93a68c3d5f [libcalamares] Add convenience method to check for unit-comparability
- Not all kinds of units are comparable. Introduce a method
   in PartitionSize to check for comparability (this could
   also be a free method, but seems more tidy here because it
   is specifically about comparing in the context of partition sizes).
2019-05-13 13:32:14 +02:00
Adriaan de Groot
d048975f15 [libcalamares] One more nested namespace 2019-05-13 13:06:28 +02:00
Adriaan de Groot
0b0fb93e75 [libcalamares] Remove redundant default: in case
- the switch handles all values of the enum and the compiler should
   be smart enough to know that (therefore default isn't needed,
   nor the return afterwards).
2019-05-13 12:34:19 +02:00
Adriaan de Groot
2c94cbdb14 [libcalamares] namespace A::B is a C++17 extension 2019-05-13 12:34:19 +02:00
Adriaan de Groot
7302b9c851 [libcalamares] Fix nested namespaces
- Declaring namespace A::B is a C++17 extension, and Calamares
   is C++14. Split the namespace declarations.
 - While here, fix extra const warning as well.
2019-05-13 12:23:41 +02:00
Adriaan de Groot
859e95432e [partition] Handle all enum values in the switch 2019-05-13 12:23:19 +02:00
Adriaan de Groot
3b0d778d1e [partition] Mention that reuse-swap isn't supported now 2019-05-12 16:34:57 +02:00
Adriaan de Groot
8fcdbd5bd5 [libcalamaresui] Improve warning message
- Tell the packager / deployer that certain modules are missing
2019-05-12 16:29:50 +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
03f88b3ed6 [libcalamares] Support looking up translation by 2-letter country
- Looks for an available translation by 2-letter country code
   and returns the row for it.
2019-05-10 14:44:54 -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
76b45a2740 [libcalamares] const-data retrieval is const for LabelModel 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
81499b22a1 [libcalamares] Fix build of tests
- Link Qt::Xml publicly because the tests will need it as well.
2019-05-10 10:57:50 -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
b51e22b520 [libcalamares] Implement locale lookups for 2-character codes 2019-05-10 13:46:35 +02:00
Adriaan de Groot
0dfef34160 [libcalamares] Add generated locale data tables 2019-05-10 13:14:52 +02:00
Adriaan de Groot
529d93c58f [libcalamares] Add the first locale-data C++ infra
- Lookup country data based on enum or 2-letter code
 - No data yet, so return only stubs
 - The (generated) data tables are not listed as sources because
   they are #include'd by the API implementation; they're full of
   otherwise-unused static tables, so don't make sense to compile
   separately.
 - While here, tidy up the CMakeLists a bit to reduce the number
   of superfluous variables.
2019-05-10 13:14:52 +02:00
Adriaan de Groot
07a9052fca [libcalamares] Also output size of locale-tables 2019-05-10 13:14:51 +02:00
Adriaan de Groot
bf5ce44bd1 [libcalamares] Tidy up the CLDR script, add license, make more pythonic 2019-05-10 13:06:55 +02:00
Adriaan de Groot
2a5d99be50 [libcalamares] Start on a locale-data subdirectory
- Continuing the notion that libcalamares should provide
   (non-GUI) services for modules, add a locale service.
 - This will, unfortunately, roughly duplicate Qt's QLocale
   database, but in a form that is public and more readable.
2019-05-10 11:49:44 +02:00
Adriaan de Groot
cb7c38daba [welcome] Support GeoIP country lookup 2019-05-09 15:15:03 -04:00
Adriaan de Groot
44559d24bd [libcalamares] Selector wasn't saved for later queries 2019-05-09 15:09:58 -04:00
Adriaan de Groot
4ea29b1cf1 [libcalamares] Implement "raw" handling 2019-05-09 10:40:51 -04:00
Adriaan de Groot
9931b2df44 [libcalamares] Add "raw" support for extracting data from GeoIP
- This is prep-work for getting something other than the
   timezone (e.g. most extended formats also support Country).
2019-05-09 10:15:53 -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
Adriaan de Groot
f25b1528a5
Merge pull request #1144 from a-wai/factor-partsize-class
Move partition size classes into libcalamares
2019-05-09 13:32:15 +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
4937668b5b [libcalamares] Add generic PartitionSize class
Using PartUtils::PartSize as reference, this commit creates a new
PartitionSize class in libcalamares, which will then be used in every
module needing such a class.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-05-08 19:30:33 +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
Arnaud Ferraris
bfd46276ad [libcalamaresui] Fix sidebar label for setup mode
In the sidebar, the "Install" step should be named "Set Up" when in
setup mode, which will be more consistent with the other UI texts,
including button labels.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-05-08 12:29:01 +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
a99eccf19d [libcalamaresui] Fix PythonQt code w/ moved enums 2019-05-07 08:47:33 -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
a482d7be44 [libcalamaresui] Don't expose build details in DebugWindow
- In a library class, don't include uic-generated headers inside
   the public headers.
2019-05-07 07:48:40 -04:00
Adriaan de Groot
de2b85eabf [libcalamaresui] Tidy the CMake bits
- Explain (briefly) what the library is for
 - Explicitly add includes from the non-UI library
2019-05-07 07:48:40 -04:00
Adriaan de Groot
0be34d281d [libcalamares] Remove incorrect comment
- The setting for OEM mode is already independent.
2019-05-07 07:48:40 -04:00
Adriaan de Groot
cdb613bf02 [libcalamares] Move module-related things into subdirectory
- Currently just moves a single enum, but this is prep-work for
   moving the non-GUI parts of the module system into libcalamares,
   to better support GUI-less operation.
2019-05-07 07:48:40 -04:00
Adriaan de Groot
761205ecf7 [libcalamares] Tidy some bits
- Explain what the library is for (briefly) in the CMakeLists
 - Settings should use the right export macro
2019-05-07 07:02:55 -04:00
Adriaan de Groot
169159f888 [libcalamaresui] Switch to enum classes for Type, Interface
- Somewhat gratuitous change, but brings more enums into modern style.
2019-05-07 06:33:31 -04:00
Adriaan de Groot
6b89ac8461 [libcalamaresui] Remove TODO
- I don't know what this would mean, so it's not a TODO any more.
2019-05-07 06:26:43 -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
f7494864be [calamares] Tidying after fixing fit-text-in-sidepane
- Simplify delegate: unused m_parent, tidy up inheritance, then drop
   unnecessary custom constructor and extra Q_OBJECT macro.
 - Drop some unnecessary included headers
 - Drop single-use #define. APP was used in only one place; remove it
   (that would be stylistically correct, anyway).
 - Update copyright headers
 - Document new label-handling
2019-05-06 14:30:53 +02:00
Adriaan de Groot
dc8cfd2fce [calamares] Fit text into sidepane
- Shrink the font in an attempt to fit into the box,
   but only up to 4pt smaller; after that just clip on one line.
2019-05-06 14:14:20 +02:00
Adriaan de Groot
0f30acc13f [calamares] Fix off-center text in sidepane
- The text rectangle was **moved**, not shrunk-in-place. Add
   the missing - sign for the right and bottom margin.
 - While here, move from #define to constexpr.
2019-05-06 13:45:08 +02:00
Adriaan de Groot
fdc2cff65a [calamares] Keep text on a single line
- In the sidepane, don't wrap long texts
2019-05-06 13:36:27 +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