Commit Graph

516 Commits

Author SHA1 Message Date
Adriaan de Groot
cf1128b719 [partition] Cut down log-spam while checking for resize 2021-09-22 01:27:33 +02:00
Adriaan de Groot
857aaa6ca4 [partition] Cut down log spam about /etc/fstab 2021-09-22 01:15:37 +02:00
Adriaan de Groot
3d0709c779 [partition] Avoid crash when there is no KPM backend 2021-08-31 13:46:25 +02:00
Adriaan de Groot
6324fa3eb9 [partition] Disentangle questions of suitability of ESP
- split into size, type, flags so the warning message can
  be tailored to what is wrong.
2021-08-27 17:27:26 +02:00
Adriaan de Groot
7d08770806 [partition] Apply code style 2021-08-27 17:26:50 +02:00
Adriaan de Groot
52a82ea1e6 [partition] Improve warning message in log 2021-08-26 17:39:06 +02:00
Adriaan de Groot
96c2c62470 [partition] Fix build on older KPMCore 2021-07-06 12:59:01 +02:00
Adriaan de Groot
a4fadcd9be [partition] Introduce check for EFI partition type-and-size
Re-use the existing message about partition type and size,
since I don't want to introduce another message with all the
specifics; give a works-always message instead.

The check itself is also straightforward, avoiding all of the
nuances and technically-this-might-work cases: FAT32, 300MiB+.

FIXES #607
2021-07-06 12:54:25 +02:00
Adriaan de Groot
b5c56fd579 [partition] Clarify comments on boot-flags 2021-07-05 13:33:09 +02:00
Adriaan de Groot
1a542d3afe [partition] Write out type rather than aliasing to T 2021-07-05 13:11:00 +02:00
Adriaan de Groot
453d533d2c [partition] Use default FS for layout items with type Unknown 2021-06-29 23:47:33 +02:00
Adriaan de Groot
c3bc305bb6 [partition] Shuffle Config and ViewStep to top
Modules nearly always have a Config and either a Job or ViewStep
as their "top level" components. Everything else is implementation-
detail. The *partition* module was unusual in that those two
"top level" components were tucked away in subdirectories.

Shuffle them to the top: this makes it more clear that these
two files are there to coordinate the module.
2021-06-29 11:22:47 +02:00
Adriaan de Groot
7ce2a87644 [partition] Fix build
- fsName was a QString (a copy) so it could be modified;
- the modification isn't really necessary.
- While here, pick up new PointerSetter convenience class.
2021-06-18 13:49:39 +02:00
Adriaan de Groot
26cabbb3e4 [partition] refactor config-reading from availableFileSystemTypes 2021-06-18 12:18:04 +02:00
Adriaan de Groot
cd804470b5 [partition] Canonicalize the FS choice for erase 2021-06-18 11:51:33 +02:00
Adriaan de Groot
d8a862ec82 [partition] Use Q_EMIT 2021-06-18 11:31:53 +02:00
Adriaan de Groot
4fa61249a8 [partition] Make the fs type used for erase, a config property 2021-06-18 11:29:36 +02:00
Adriaan de Groot
9fa5ab04e5 [partition] Apply coding style to core/ 2021-06-18 11:23:27 +02:00
Adriaan de Groot
f9659989b1 [partition] rename findFS
Rename findFS -> canonicalFilesystemName because that's what it actually
does. While here, apply coding style to the files that are affected.
2021-06-18 11:09:11 +02:00
Adriaan de Groot
546253d750 [partition] Apply coding style 2021-06-18 11:00:15 +02:00
Adriaan de Groot
9ef22f4168 Merge branch 'calamares' of https://github.com/LordTermor/calamares into pr-1667 2021-06-15 11:48:33 +02:00
Adriaan de Groot
dba346be7a [partition] Fix build in non-debug settings 2021-06-08 19:51:25 +02:00
Adriaan de Groot
63c6a8bac8 [partition] Remove unneeded includes 2021-06-08 14:18:28 +02:00
Adriaan de Groot
f67c7f900c [partition] Make the expanded (pop-up) icon sizes for devices a bit smaller 2021-06-08 14:14:11 +02:00
Adriaan de Groot
eb627bc055 [partition] Avoid crash when PARTITION_UNSAFE is on
PARTITION_UNSAFE is a debug mode. It is not used in
production, because it allows you to pick an install
device that would be dangerous (e.g. the current / device).

Existing code kept two copies of a list of pointers,
and deleted pointers from one of the lists and returned
the other -- which now contains dangling pointers.

Refactor by applying suitable lambdas to a single
copy of the list; this avoids copying the list so
there is no danger of dangling pointers.
2021-06-08 13:22:56 +02:00
Adriaan de Groot
a57a1fdbd8 [partition] Improve logging while collecting devices 2021-06-04 13:32:22 +02:00
Adriaan de Groot
cf341c53fa Merge branch 'calamares' into improve-partition 2021-05-25 17:37:15 +02:00
Adriaan de Groot
43c172f54d [partition] Tighten up types
Don't return the generic Abstract model for bootloader, but
the subclass pointer, so that consumers can use the convenience
API on the subclass.
2021-05-25 13:23:28 +02:00
Adriaan de Groot
d0276fd25f [partition] Look up bootloader by name, method
The bootloader model knows about both rows and
devices, so we can look up both at once. The
existing implementation as a non-member was rather
sketchy and wasn't used except as support for
restoreSelectedBootLoader().
2021-05-25 13:05:45 +02:00
Adriaan de Groot
dabd895755 [partition] Use type alias consistently 2021-05-25 12:33:12 +02:00
Adriaan de Groot
4912de5893 [partition] reduce warnings with unsafe-option
- Move variables closer to where they are needed
- Do the winnowing / selection always, but in unsafe mode return
  the un-winnowed list of devices
- Massage build documentation a little
2021-04-09 13:32:48 +02:00
Artem Grinev
9302ad1468 [partition] Erase disk FS choice 2021-03-31 20:15:02 +04:00
Adriaan de Groot
1fe337d6ed [partition] Improve logging of device-checking
- Avoid lots of function headers between the checks applied to
  each individual device.
2021-03-29 15:25:57 +02:00
Adriaan de Groot
0446f03613 [partition] Remove overly-chatty debugging from fs-name-lookup 2021-03-29 14:38:39 +02:00
Adriaan de Groot
70bf033dc0 [partition] Improve logging readability
- The entire queue is one long output, so print them with SubEntry
2021-03-29 14:17:40 +02:00
Adriaan de Groot
1eba562d07 [partition] Apply coding style 2021-03-27 15:43:32 +01:00
shainer
c035029f38 Make sure we always set the filesystem label.
In particular, we need a separate Job class to set the label; this
is invoked after we formatted a partition, and when no other changes
to the partition have been requested in the Edit dialog.
2021-03-27 15:38:46 +01:00
Adriaan de Groot
3d49379bec [partition] Chase API change in createNewPartition()
The partition- and filesystem-label setting code was already there,
but not in the call to createNewPartition(); now we set the
FS label twice (once in the call, once afterwards)
2021-03-27 14:45:34 +01:00
shainer
b602d423c7 Allow users to set/edit filesystem labels.
When creating or editing a new formatted partition, allow
to set a filesystem label (16 chars maximum). Modify
the KPMHelpers to accept it as a new parameter. Partitions
created by default may get a meaningful label too.
2021-03-27 14:31:06 +01:00
shainer
1cfdc8044c Display current filesystem label as a column in the main partition view. 2021-03-23 16:30:31 +01:00
Adriaan de Groot
98524708cc [partition] Chase namespace change for Units 2021-03-09 19:45:12 +01:00
Adriaan de Groot
144b51f00e [partition] Use automount control
FIXES #1604

(Admittedly, this fixes the problem only when there's Plasma Solid automount
present, and not any of the other kinds; but none of those have been reported
yet, and adding them into AutoMount.cpp is opaque to the rest of the
system)
2021-02-03 01:31:37 +01:00
Gaël PORTAY
bf9c9a64f1 [libcalamares] Introduce new function getPartitionTable 2021-01-08 08:54:02 -05:00
Gaël PORTAY
2e6d632c7c [partition] Fix typo 2020-11-11 12:49:44 -05:00
Adriaan de Groot
59255c7a57 Changes: apply coding style 2020-11-05 00:00:29 +01:00
Adriaan de Groot
2c297a068f [partition] Log when an EFI problem has been solved 2020-11-04 12:32:51 +01:00
Adriaan de Groot
0f38ee624e [partition] static-assert that our shortcut makes sense 2020-11-04 09:59:35 +01:00
Adriaan de Groot
15ace5202d [partition] Simplify EFI-flags checking with KPMCore 4 2020-11-04 01:16:36 +01:00
Adriaan de Groot
949e33f1e8 [partition] Massage logging while checking for EFI boot 2020-11-04 00:43:32 +01:00
Adriaan de Groot
63964de4bd [partition] Explain underlying type for flags variant 2020-11-04 00:32:21 +01:00
Adriaan de Groot
87c77d9807 [partition] When flags are explicitly invalid, return early 2020-11-04 00:14:05 +01:00
Adriaan de Groot
2516f18d1b
Merge pull request #1560 from gportay/partition-mount-make-mountPoint-and-filesystem-optionals
[partition,mount] Make mountPoint and filesystem optionals
2020-11-02 23:25:53 +01:00
Adriaan de Groot
ffce79e30e [partition] Initialize the filesystem type, not the partition type
- Passing FileSystem::Type to the QString constructor for
  partition type is not what I intended.
2020-11-02 22:32:44 +01:00
Adriaan de Groot
73b5a0898d [partition] Migrate the defaultFS type
- remove the m_defaultFSType from PartitionLayout, because it is
  set on construction -- which is too early, before the configuration
  has been read.
- make the default FS explicit in the init() calls which pass in
  a configuration; this needs support in the intermediate
  PartitionCoreModule.
2020-11-02 21:35:43 +01:00
Adriaan de Groot
23eabd74c6 [partition] Set FS type explicitly if no layout is given
- the "simple" constructor for PartitionEntry left the FS type
  set as the constructor left it -- which is Unknown by default.
  This leads to install failures in systems that don't set a
  special layout but just want a single / -- because the FS is
  set to Unknown.
- massage the constructor and consumer of the code, push
  Ext4 FS in the tests and use the configured default in production.
2020-11-02 16:01:10 +01:00
Adriaan de Groot
f78752303b [partition] Improve constructors for layout
- initialize flags by default
- the copy constructor was just doing the default thing,
  so make that explicit
2020-11-02 15:40:32 +01:00
Gaël PORTAY
db08d2db8b [partition] Make filesystem optional and default to unformatted 2020-11-02 08:36:41 -05:00
Gaël PORTAY
1f9f506a16 [partition] Make mountPoint optional
Some devices cannot be mounted (as DM_verity_hash), therefore, it is
nosense to set a mountPoint for them.
2020-11-02 08:36:41 -05:00
Adriaan de Groot
10991346b7
Merge pull request #1561 from gportay/partition-set-swap-partition-name
[partition] Allow a configurable swap Partition name
2020-11-02 11:43:07 +01:00
Gaël PORTAY
3967cfe0eb [partition] Group EFI things together 2020-10-31 18:09:44 -04:00
Gaël PORTAY
dad9587c3e [partition] Allow a configurable swap Partition name
This commit adds the new configuration `swapPartitionName` to the file
partition.conf.

This option sets the partition name to the swap partition that is
created. If this option is unset, the partition is left unnamed.
2020-10-31 17:39:50 -04:00
Gaël PORTAY
f03ae06deb [partition] Rename execute to createPartitions 2020-10-30 10:20:18 -04:00
Gaël PORTAY
f2bfe2bd6a [partition] Fix coding style 2020-10-30 10:14:40 -04:00
Gaël PORTAY
cd725fbb4b Fix missing SPDX-FileCopyrightText in header 2020-10-30 10:12:28 -04:00
Gaël PORTAY
2007335865 [partition] Rename the KPMCore Partition local to part 2020-10-30 10:12:28 -04:00
Gaël PORTAY
32c1f81fbf [partition] Rename iterator in for loop to entry 2020-10-30 10:12:28 -04:00
Gaël PORTAY
3016b93c8f [partition] Simplify the method execute
- Rename the "size" locals using "sectors" in their name. Size may be
  confusing or not enough specific as it can be interpreted a size in
  Byte.
    partSizeMap -> partSectorsMap,
    totalSize -> totalSectors,
    availablesize -> availableSectors,
    size -> sectors,
    minSize -> minSectors
    maxSize -> maxSectors
- Create a the new local currentSector to iterate over the sectors;
  instead of using the parameter firstSector.
- Remove the variable end that does not help much; too many variable
  already. Expand its expression instead.
2020-10-30 10:12:28 -04:00
Gaël PORTAY
81bec68b3d [partition] Introduce new constructors for PartitionEntry
- Introduces new constructors for PartitionEntry: copy constructory and
  constructor with all attributes.
- Use the new constructor in method addEntry().
2020-10-30 10:12:27 -04:00
Gaël PORTAY
3f2dd516d3 [partition] Simplify the retrieval of the size attributes
- The variant helper toString() takes a default value since commit
  c9f942ad6 ([libcalamares] Add default value to variant helpers).
- Set the default value to 0 and simplify the retreival of size values
  by calling the helper toString() and removing the temporary variables.
2020-10-30 10:11:56 -04:00
Gaël PORTAY
db7cf74034 [partition] Remove the call the method contains
- The variant helper getString() calls contains() already.
2020-10-30 09:17:12 -04:00
Gaël PORTAY
d6ea30b23e [partition] Move initLayout logic to object PartitionLayout
- The logic of the method initLayout belongs to the object
  PartitionLayout. Move logic to that object.
- Use a single method initLayout in object PartitionCoreModule.
- Member m_partLayout in object PartitionCoreModule is no longer
  allocated.
2020-10-30 09:17:12 -04:00
Gaël PORTAY
eae1e90dce [partition] Remove unused PartitionLayout constructor
- The constructor PartitionLayout with PartitionEntry appears to be
  unused since its always. Drop it!
2020-10-30 09:17:12 -04:00
Gaël PORTAY
f2960366c8 [partition] Remove unused addEntry method
- The method addEntry with PartitionEntry appears to be unused since its
  always. Drop it!
2020-10-30 09:17:12 -04:00
Adriaan de Groot
27f6eaaf75 [partition] Remove unused variables 2020-10-24 02:24:37 +02:00
Adriaan de Groot
01b75ef4b5 [partition] Use C++-style cast 2020-10-24 02:19:05 +02:00
Adriaan de Groot
eb8e95bb87 [partition] Warnings--, explain why we're using a void* 2020-10-23 22:39:05 +02:00
Adriaan de Groot
9910b23152 [partition] Avoid uninitialized variable
- if the partition size is invalid, then warn about it but do
  not print the (uninitialized) size of the partition.
- shuffle code to continue earlier, allowing the "good path"
  code to be out-dented.
2020-10-23 22:34:53 +02:00
Adriaan de Groot
687a795b71 [partition] Warnings-- by initialization order 2020-10-23 22:31:22 +02:00
Adriaan de Groot
44a11bd93b [partition] Initialize in the initializer list, if possible 2020-10-23 22:27:30 +02:00
Adriaan de Groot
51b47862cd [partition] Mark destructors override
This reduces compiler warnings related to virtual-overriding
functions: all the destructors are virtual.
2020-10-23 22:23:10 +02:00
Adriaan de Groot
a955791766 Apply coding style globally again 2020-10-12 14:27:01 +02:00
Adriaan de Groot
1df4239c02
Merge pull request #1436 from gportay/osprober-strip-extra-file-after-at-sign
[partition] Strip extra file after the at sign
2020-10-12 13:33:10 +02:00
Gaël PORTAY
2b1e516ec1 [partition] Strip extra file after the at sign
- os-proper may return an extra file after the device:
  /dev/sda1:Ubuntu 19.10 (19.10):Ubuntu:linux
  /dev/sdb1@/EFI/Microsoft/Boot/bootmgfw.efi:Windows Boot Manager:Windows:efi
2020-10-07 09:57:18 -04:00
Gaël PORTAY
2bbbb68838 [partition] Add setting for requiredPartitionTableType 2020-10-07 08:10:24 -04:00
Gaël PORTAY
70f8beb931 [partition] Add setting for defaultPartitionTableType 2020-10-06 20:46:17 -04:00
Adriaan de Groot
88b1d36009 Merge branch 'issues-1166' into calamares
FIXES #1166
2020-10-06 22:25:33 +02:00
Adriaan de Groot
77e2701365 [partition] Coding style
- various clang-format versions battle for supremacy
2020-10-06 17:21:54 +02:00
Adriaan de Groot
b4cbf73e2d Merge branch 'calamares' into issues-1166 2020-10-06 17:19:14 +02:00
Adriaan de Groot
029c3f1c74 [partition] Write the install choices to Global Storage 2020-10-06 15:54:26 +02:00
Adriaan de Groot
92a874dae7 [partition] move the swap-choice to Config 2020-10-06 15:44:14 +02:00
Corentin Noël
08138f5a41 [partition] Reduce direct dependency of PartUtils on PartitionCoreModule 2020-10-06 14:28:20 +02:00
Adriaan de Groot
6e30a7b8f6 [partition] Move is-manual-partitioning-allowed to the Config object 2020-10-02 13:04:12 +02:00
Adriaan de Groot
f79fbd4105 [partition] Add swap choice to config object 2020-10-02 12:40:13 +02:00
Adriaan de Groot
0f4fe6294c [partition] Migrate type for SwapChoice to Config object 2020-10-02 12:22:53 +02:00
Adriaan de Groot
881661e94b [partition] Migrate InstallChoice to the Config object 2020-10-02 12:08:42 +02:00
Corentin Noël
0293015b09 [partition] Fix regression in partition size assignment
In some cases, the partition size was set to zero as the maxSize isn't always defined.
2020-10-01 15:38:18 +02:00
Adriaan de Groot
010526ee2a [partition] Coding style 2020-09-29 14:04:12 +02:00
Adriaan de Groot
b41e4624c9 [partition] Move 'selected installation option' to Config 2020-09-29 14:00:49 +02:00
Adriaan de Groot
b518ef7dfe [partition] Select initial swap choice 2020-09-28 15:37:12 +02:00
Adriaan de Groot
9f0f600aa4 [partition] Remove the 'swapfile-unsupported' message 2020-09-28 14:53:38 +02:00