6202 Commits (42425e4030125a4c30cacb21a8589cfe7d9f4aa4)
 

Author SHA1 Message Date
Arnaud Ferraris 40202705ff libcalamares: Align partition sizes on actual sectors
Currently, the `bytesToSectors()` function rounds a partition size to the
nearest MiB unit, which may lead to inconsistencies when a partition
is expected to only be a few KiB's.

This patch changes the behaviour of `bytesToSectors()` so that it aligns
on sector size, without rounding the partition size to a multiple of
1MiB.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
5 years ago
Arnaud Ferraris 209e8331b7 libcalamares: Add support for KB/MB/GB size units
Currently, all size units are expressed as KiB, MiB or GiB (resp. 2^10,
2^20 or 2^30).

In order to maximize compatibility and consistent results with other
partitioning tools, this commit adds support for sizes expressed as KB,
MB or GB (resp. 10^3, 10^6 or 10^9).

This change won't affect existing users, it simply adds a new option
that wasn't previously handled.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
5 years ago
Adriaan de Groot 0716a46eb2 [libcalamares] Switch to using KPluginFactory
- this is not entirely straightfoward, since  we need
   different constructor arguments for the objects
   Calamares creates (no QVariantList& args, in particular).
   Implement our own registerPlugin() and createInstance()
   for that.
 - work around a bug in K_PLUGIN_FACTORY_DECLARATION_WITH_BASEFACTORY
5 years ago
Arnaud Ferraris 3929557a5a welcome: Fix requirements parsing
As the config files integer are now of type `QVariant::LongLong` instead
of `QVariant::Int`, requirements relying on this type were not parsed
correctly.

This patch fixes this, and adds an option to the python conversion to
take into account `QVariant::LongLong` types.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
5 years ago
Arnaud Ferraris 0d06e047ae libcalamares: Prevent integer overflows when parsing configuration
Currently, a number of configuration parsing-related functions and
classes use only `int` type for dealing with integers. Should the user
need a bigger integer value, this would result in an erroneous value
being used (`0`), as the correct value would overflow the 32-bits type.

In order to prevent these overflow, this patch replaces `int` with
`qint64` in the following functions & classes :

  * CalamaresUtils::yamlScalarToVariant()
  * CalamaresUtils::getInteger
  * NamedSuffix
  * PartitionSize

This way, sizes or other integer values greater than 2^31 (for signed
types) can be used.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
5 years ago
Arnaud Ferraris bf47e761b0 mount: Make sure extra mounts are mounted right after /
When the rootfs partition is read-only, mount points for the other
partitions cannot be created, therefore they need to be created in a
tmpfs, already mounted somewhere in `/`.

However, the extra mounts are only mounted at the end, which causes an
error as no tmpfs is currently mounted.

This patch makes sure all extra mounts are mounted right after the `/`
partition, allowing the use of a read-only rootfs.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
5 years ago
Arnaud Rebillout 2ab45cf4f0 Make sure that variable num_files_total_local is declared
This variable is declared in `if m:`. Of course if this codepath doesn't
run, the variable is not declared an Python doesn't like this kind of
surprise...

Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
5 years ago
Adriaan de Groot 9098f8d741 Changes: document KCoreAddons dependency 5 years ago
Adriaan de Groot 1711071c58 [libcalamares] Swap out own PluginLoader for KCoreAddons 5 years ago
Adriaan de Groot 44991e700b [libcalamaresui] Check KCoreAddons version directly 5 years ago
Adriaan de Groot bcb7f17584 [calamares] Make KCoreAddons a requirement
- Require KCoreAddons for KAboutData (also, optionally, for KOSRelease)
5 years ago
Adriaan de Groot a6db224fcb [fsresizer] [partition] Gracefully fail on missing dependencies
- If KPMcore is found -- it requires some other KDE Frameworks but
   at least in pre-4.0 versions doesn't check very well for them --
   then missing its dependencies is no cause for CMake failure.
   Instead, log it nicely and suppress the module.
5 years ago
Adriaan de Groot 8c78a6cdfa Documentation: match stated requirements with CMakeLists.txt 5 years ago
Adriaan de Groot 08a08f9b54 [calamares] Minor optimizations and documentation
- document the data structure; for the vector V (called m_rows)
   the values are V_i < i, so that enables microscopic optimizations.
5 years ago
Adriaan de Groot 96ef488f1b [calamares] Clean up VariantModel
- stop compiler warnings with some judicious casting;
   that's what you get when a container indexed by int
   stored those indexes as quintptr.
 - apply coding style
5 years ago
Adriaan de Groot 8a7f32d3aa [libcalamaresui] Polish ImageRegistry
- do static initialization more carefully
 - float -> qreal (double) because that's what the Qt API expects,
   to reduce type-conversion warnings
 - apply current coding style
5 years ago
Adriaan de Groot ec08a293b2 [libcalamaresui] Reduce compile warnings
- "this" isn't used in the lambda; in future it might be if the
   lambda needs to get the configuration from settings.
5 years ago
Adriaan de Groot 91d327b224 [libcalamaresui] Paste TCP port is quint16
- no sense in feeding in an int (and getting a compiler warning
   for narrowing) into something that by spec is a 16-bit value.
5 years ago
Adriaan de Groot 41173360a7 [libcalamares] We're just testing file modes, not whole int range 5 years ago
Adriaan de Groot 76041a2184 [dummycpp] Reduce warnings and apply coding style
- tired of the (IMO, bogus) clang warnings from the
   switch() statement with a default:, so swap it out for
   some cascaded ifs.
5 years ago
Adriaan de Groot e81bd52fb5 [initcpio] [initramfs] Set compilation options on tests
- calamares_automoc() sets AUTOMOC, but also adds some flags
   to avoid compilation warnings from the generated MOC code.
 - drop weird hard-coded include paths
5 years ago
Adriaan de Groot 739363cecd [libcalamaresui] Fix initialization order (reduce warnings) 5 years ago
Adriaan de Groot 6f73151786 [libcalamares] Reduce warnings
- Although milliseconds::count() is long long, we pass it to
   a Qt interface that only takes int; let's assume we have
   only a 32-bit count, since a timeout of 4 billion milliseconds
   is roughly 46 days, which we'll just call "no timeout".
5 years ago
Adriaan de Groot dc09c5700b [calamares] Remove unreachable return 5 years ago
Adriaan de Groot f5af4818fb [calamares] Apply current coding style 5 years ago
Adriaan de Groot ea0acf1606 [calamares] Apply current coding style 5 years ago
Adriaan de Groot 3ac7a7323c Merge branch 'replace-debug-models' 5 years ago
Adriaan de Groot ab7a559e03 [calamares] Add headerData to model (Key, Value columns) 5 years ago
Adriaan de Groot eba4dc8df1 [calamares] Use VariantModel instead of QJsonModel
- Drop the round-trip of forming a JSON document from a QVariant,
   then parsing the document into JSON objects and building a
   model out of that. View the Variant directly.
5 years ago
Adriaan de Groot 2bd03ad3c0 [calamares] Add reload() to update model after underlying data 5 years ago
Adriaan de Groot 2a3ab4dbe7 [calamares] Add a model for viewing QVariants directly 5 years ago
Adriaan de Groot e31a498c9b [calamares] Move DebugWindow
- This is a fairly specialized class, for use only in the
   whole-application where it ties in with the module system.
   Move it to the application directory and slim down the UI library.
 - Include it from the new location.
 - Add UIC to Calamares (the application) because there's now
   a designer-based widget in it.
5 years ago
Adriaan de Groot 85d28af1e2 [libcalamaresui] Don't include QJsonModel 5 years ago
Adriaan de Groot 419329ee49 [libcalamares] Remove friend, add accessor, make includes explicit 5 years ago
Adriaan de Groot 695e16bb87 [libcalamaresui] Drop QJsonModel from the library 5 years ago
Adriaan de Groot 17dfe02d28 [3rdparty] Remove QJsonModel and support 5 years ago
Adriaan de Groot 8bd1e93968 Merge branch 'move-3rdparty' 5 years ago
Adriaan de Groot 48a25858f0 [partition] Chase 3rdparty move 5 years ago
Adriaan de Groot b31c6c3a22 [calamares] Chase 3rdparty move 5 years ago
Adriaan de Groot c83e95e66a [libcalamaresui] Chase 3rdparty move
- Widgets need to #include from different path
5 years ago
Adriaan de Groot 2166eb4511 [libcalamares] [libcalamaresui] Adjust for moved sources 5 years ago
Adriaan de Groot 8050b5d1da [3rdparty] Add License information for kdsingleapplicationguard 5 years ago
Adriaan de Groot 315c0aca15 [3rdparty] Not actually part of Calamares 5 years ago
Adriaan de Groot 937ff608eb [libcalamaresui] Move spinner widget to 3rd party 5 years ago
Adriaan de Groot e7c66de4df [libcalamares] Move kdsingleapplicationguard to 3rdparty 5 years ago
Adriaan de Groot 47dbf9ab0c [libcalamares] Move 3rd party code to separate dir 5 years ago
Adriaan de Groot 05bcf4e853 Changes: document Coding Style application 5 years ago
Adriaan de Groot 115f5bfd82 [libcalamares] Apply coding style to remainder of geoip/ 5 years ago
Adriaan de Groot 839e496fcb CI: when I said 'left' I meant 'dont' 5 years ago
Adriaan de Groot ec073ee188 [libcalamares] Apply coding style to geoip/ 5 years ago