Commit Graph

111 Commits

Author SHA1 Message Date
Adriaan de Groot
1718f7a8a8
Merge branch 'master' into partition-type 2020-03-23 17:09:44 +01:00
Gaël PORTAY
15cce29a51 [partition] Add support for filesystem-specific features 2020-03-22 09:25:26 -04:00
Gaël PORTAY
c5ebe13aeb [partition] Add support for partition type 2020-03-22 09:05:32 -04:00
Adriaan de Groot
7f295d9565 [partition] Apply coding style to core/ subdir
Because this is a giant code change, with no functional effect,
I've been saving this until the end of the kpmcore-manager branch.
2020-02-14 11:15:57 +01:00
Adriaan de Groot
d039f9bbb8 [partition] Remove initKPMCore() from KPMHelpers
- This is a job for KPMManager, from the partition service.
 - In tests, needs to be a little hackish.
2019-06-13 23:39:06 +02:00
Adriaan de Groot
4b3bb54320 [libcalamares] Move partition-finding into libcalamares
- Moved from KPMHelpers to the partition service
 - The is-partition and find-partition methods that make sense
   in general, are moved to libcalamares.
2019-06-13 14:41:33 +02:00
Adriaan de Groot
3930826e93 [fsresizer] [partition] Drop special cases for kpmcore 3.3.1 2019-06-13 14:10:49 +02:00
Adriaan de Groot
4202126f34 [fsresizer] [partition] Fix build with moved headers
- PartitionIterator has moved into libcalamares
 - While here, sort and organize #include lines
 - Add using to keep code impact small
2019-06-13 12:27:39 +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
8d451622db [partition] Idiomatic use of Calamares::JobList 2019-05-28 16:39:00 +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
e0a79f4c0f [partition] Reduce scope for nullptr dereference
- document what types are in use
 - avoid at least one nullptr deref
2019-05-03 08:47:34 -04:00
Adriaan de Groot
090aee9196 Modules: adjust to split-out utils/Variant.h
- Most modules only needed the variant support, not the "whole"
   CalamaresUtils header.
 - While here improve ordering of headers as well.
2019-04-29 06:14:21 -04:00
Adriaan de Groot
3533bb3c2d Merge branch 'master' into issue-1061 2019-04-24 12:26:01 -04:00
Arnaud Ferraris
123222c0a8 Add global checks for partition layout
This commit adds several checks while reading the configuration of the
`partition` module, in case the partition layout configuration is
misformed. If an error is encountered, an message is printed to the
console and the module reverts to the default partition layout.

Checks are also added when implementing the partition layout, in case a
problem occurs that couldn't be anticipated (for example, when a
partition size is in %, checking its absolute value require knowing the
total device size, which is not the case when the configuration is
being read).

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-04-18 10:55:47 +02:00
Adriaan de Groot
520478847c Make logging more consistent.
- Across all the C++ modules, use Logger::SubEntry for sub/continues
   log lines, instead of somewhat-random indent strings.
2019-04-15 09:02:21 -04:00
Adriaan de Groot
c844188907 [partition] Fix build w/ "3.3.1" API
- Need older-style scanning, but new-style iteration
2019-04-12 12:54:13 +02:00
Adriaan de Groot
c0710cabe4 [partition] [fsresizer] Adjust to new #define
- Using KPMCORE4API is clearer than just relying on a version number
2019-04-12 12:16:55 +02:00
Adriaan de Groot
9917bc27fc
Merge pull request #1119 from cjlcarvalho/master
[partition] Fixing LVM scanning according to new kpmcore API
2019-04-12 11:03:03 +02:00
Adriaan de Groot
547dc7d334
Merge pull request #1117 from a-wai/partition-layout-add-maxsize
[partition] Add max size parameter
2019-04-11 11:39:44 +02:00
Caio Carvalho
2c33535ee8 [partition] Using std::find_if to search in container for elements according to a condition 2019-04-09 23:14:34 -06:00
Caio Carvalho
34e091833d [partition] Fixing LVM scanning according to new kpmcore API 2019-04-09 23:12:31 -06:00
Arnaud Ferraris
5358e2314d [partition] Add max size parameter
When using a custom partition layout with partition sizes in %, it can
be useful to set an upper limit to the partition size.

For instance, using a 20% size for the `/` partition will create a 24G
partition on a 120GB drive, but a 200GB partition on a 1TB drive, which
is not useful, and could be avoided by setting a maximum partition size.

This commit adds the `maxSize` parameter (with a default value of 100%).

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-04-08 12:19:35 +02:00
Adriaan de Groot
df921606b9 [partition] Update copyright headers
- Files modified in 2019 by me
2019-04-01 07:55:14 -04:00
Adriaan de Groot
2a2795c54c [partition] Avoid KPMCore warnings
- Get ready for KPMCore post-3.3.0, which deprecates a bunch of
   Flag<foo> and State<foo> in preparation of enum classes.
2019-03-20 18:13:39 +01:00
Adriaan de Groot
8db004ce45 [partition] Use the FailJob to stop installation
- For unsafe installations (compile-time option), make sure
   things fail before partitions are actually written, unless
   the other option is also turned off.
2019-03-20 11:26:02 +01:00
Adriaan de Groot
dff5afe227 [partition] Reduce refreshes when reverting 2019-02-11 19:03:09 -05:00
Arnaud Ferraris
cf45d55b32 [partition] Fix parsing of partition size in partition layout
When setting the size of a partition without indicating the unit, two
problems occur:

- the size is parsed as an integer, not as a string, hence the
configuration parsing fails
- the size parser doesn't recognize the fact that the size has no units
and defaults to 100%

This patch fixes the configuration parsing as well as the size string
parsing.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-02-01 14:02:40 +01:00
Arnaud Ferraris
2f14a21456 [partition] Apply custom layout when installing "Alongside"
When choosing "Install alongside another system", the custom partition
layout is applied to the space freed by resizing the selected partition.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-01-07 17:27:12 +01:00
Arnaud Ferraris
0d284759f5 [partition] Apply custom partition layout for Erase and Replace choices
This patches add new methods to both PartitionLayout and
PartitionCoreModule classes which apply the partition layout to the
available drive space.

In addition, the partition creation code from PartitioinActions is
removed to call the newly created methods instead, thus applying the
custom partition layout when the "Erase whole disk" and "Replace
partition" choices are selected.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-01-07 17:26:37 +01:00
Arnaud Ferraris
b2bf873ede [partition] Initialize partition layout from config file
In order to keep the partition layout during calamares' execution, we
add a PartitionLayout object instance to PartitionCoreModule. This class
will therefore be used to initialize the PartitionLayout object and
interact with it thoughout the program's execution.

When no partition layout is present in the config file, we initialize
the layout with a single ext4 partition mounted on '/', as it was
previously done.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-01-07 17:25:39 +01:00
Adriaan de Groot
74ab06e20a [partition] Drop redundant logging 2018-10-05 09:41:37 -04:00
Adriaan de Groot
c104d14086 [partition] Call the helpers in the right order.
This fixes the crash by calling the model-reset first, then
refreshing. Previously, the destructors that do the work
were still being called in the wrong order.

FIXES #1019
2018-09-03 15:21:30 -04:00
Adriaan de Groot
fe662345bd [partition] Extra helper classes for doing reset and refresh
- The ResetHelper only finalized changes to the module on
   destruction, but calls to refresh() assumed it was already
   done. This leads to crashes when refresh() uses an intermediate
   state of the model.

Introduce extra helpers, and rename refresh() to avoid calling the
old implementation from any code. The new helper just creates and
destroys a ResetHelper, before creating and destroying an object
that calls the new refreshAfterModelChange().

FIXES #1019
2018-09-03 10:57:20 -04:00
Andrius Štikonas
22aa6dc132 [partition] fix build with latest kpmcore. 2018-08-12 14:26:43 +01:00
Adriaan de Groot
5d5feeb0ab Merge branch 'master' of https://github.com/cjlcarvalho/calamares into lvm-update 2018-06-28 23:48:13 +02:00
Caio Carvalho
295e14530e [partition] Adding resizing, deactivating and removing procedures for LVM VGs. 2018-06-26 00:38:52 -03:00
Adriaan de Groot
fa08e0ad73 Copyright: fix bad email address 2018-06-15 06:15:43 -04:00
Adriaan de Groot
dd8e53dc22 Copyright: update copyright lines on files touched in 2018
Contributions from:
  Adriaan de Groot <groot@kde.org>
  Gabriel Craciunescu <crazy@frugalware.org>
  AlmAck <gluca86@gmail.com>
  Andrius Štikonas <andrius@stikonas.eu>
  Caio Carvalho <caiojcarvalho@gmail.com>
  Raul Rodrigo Segura <raurodse@gmail.com>
2018-06-15 05:59:11 -04:00
Caio Carvalho
98a158c6e5 [partition] kpmcore latest release doesn't support FileSystem::Type::Luks2 2018-06-14 15:37:00 -03:00
Caio Carvalho
3b6c764f75 [partition] Fixing revert device loop error in PartitionCoreModule::revertAllDevices. 2018-06-11 18:38:57 -03:00
Caio
0465cc4214 [partition] Including revert on creation of LVM VGs. 2018-06-08 20:20:05 -03:00
Caio
f8897e0e0b [partition] Including new LVM PVs in LVM VG creation GUI. 2018-06-08 18:52:53 -03:00
Caio
208d58bcd9 [partition] Including CreateVolumeGroupDialog and fixing some of its GUI issues. 2018-06-07 17:22:22 -03:00
Caio
d15ce56c97 [partition] Initial implementation of VolumeGroupBaseDialog. 2018-06-04 16:31:58 -03:00
Adriaan de Groot
6739b81c2a [partition] Tell PartitionInfo about desired flags
- When creating a partition, or changing flags, tell
   the PartitionInfo about those desired flags.
2018-05-16 07:13:35 -04:00
Caio Carvalho
f72f7bd8fe [partition] Only bootloader model should ignore devices that are not of Disk_Device type. 2018-05-10 18:37:37 -03:00
Adriaan de Groot
3315df5df1 [modules] Use new convenience logging methods across the board 2018-02-13 11:07:12 +01:00
Adriaan de Groot
637d6ad752 [partition] Find Esp partition with modern flags. 2018-01-09 11:12:13 -05:00
Adriaan de Groot
762ad54344 Documentation: change http links to GitHub to https 2017-12-20 08:39:09 -05:00