Commit Graph

481 Commits

Author SHA1 Message Date
Adriaan de Groot
11d52df04c [libcalamares] Add API docs to network service 2019-08-20 10:57:34 -04:00
Adriaan de Groot
8d3530154f [libcalamares] Expand network service test
- Do an actual ping (also to check for memory leaks)
2019-08-20 09:57:04 -04:00
Adriaan de Groot
b8d56bb4a6 [libcalamares] Add tests for network service 2019-08-20 09:52:11 -04:00
Adriaan de Groot
d7602df51e [libcalamares] Introduce networking service
- The networking service is intended to wrap up use of
   QNetworkAccessManager and others for consumption within
   Calamares, and to provide some convenience functions
   for internet access.
 - Medium term, it may also monitor network access, so that
   we can respond to changes in network availability during
   installation.

Currently very minimal and undocumented.
2019-08-20 09:52:11 -04:00
Adriaan de Groot
7b699bfc76 [libcalamares] Access list of locale Ids
- Make it easier to obtain locale-ids (from CALAMARES_TRANSLATION_LANGUAGES)
   so avoid splitting that string multiple times.
2019-08-20 05:26:26 -04:00
Adriaan de Groot
f31ff8b9ea [libcalamares] Apply coding style to PluginFactory 2019-08-13 20:50:52 +02:00
Adriaan de Groot
ccd707b23a [libcalamares] Apply coding style
- .. or, rather, avoid re-formatting tables in future.
2019-08-13 20:49:58 +02:00
Adriaan de Groot
09a36cd669
Merge pull request #1221 from a-wai/add-base-10-sizes
Add 'base 10' partition size multiples
2019-08-13 20:26:22 +02:00
Arnaud Ferraris
a51d612afa Revert "libcalamares: Align partition sizes on actual sectors"
This reverts commit 40202705ff.
2019-08-13 16:57:47 +02:00
Adriaan de Groot
1d047839c7
Merge pull request #1220 from a-wai/prevent-int-overflow
Prevent integer overflow when parsing configuration
2019-08-13 16:21:35 +02:00
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>
2019-08-12 15:55:18 +02:00
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>
2019-08-12 15:55:18 +02:00
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
2019-08-12 15:52:59 +02:00
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>
2019-08-12 15:48:48 +02:00
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>
2019-08-12 15:45:34 +02:00
Adriaan de Groot
1711071c58 [libcalamares] Swap out own PluginLoader for KCoreAddons 2019-08-12 13:24:53 +02:00
Adriaan de Groot
41173360a7 [libcalamares] We're just testing file modes, not whole int range 2019-08-09 16:36:38 +02:00
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".
2019-08-09 16:22:22 +02:00
Adriaan de Groot
419329ee49 [libcalamares] Remove friend, add accessor, make includes explicit 2019-08-09 06:27:13 -04:00
Adriaan de Groot
2166eb4511 [libcalamares] [libcalamaresui] Adjust for moved sources 2019-08-08 10:47:14 -04:00
Adriaan de Groot
e7c66de4df [libcalamares] Move kdsingleapplicationguard to 3rdparty 2019-08-08 10:24:18 -04:00
Adriaan de Groot
115f5bfd82 [libcalamares] Apply coding style to remainder of geoip/ 2019-08-08 12:41:41 +02:00
Adriaan de Groot
ec073ee188 [libcalamares] Apply coding style to geoip/ 2019-08-08 12:32:21 +02:00
Adriaan de Groot
6e9f1be9e9 [libcalamares] Don't reformat string tables in GeoIP 2019-08-08 11:56:20 +02:00
Adriaan de Groot
81fa1735b1 [libcalamares] Apply current coding style 2019-08-07 23:43:45 +02:00
Adriaan de Groot
6b659b6f48 [libcalamares] Apply current coding standard to locale/ 2019-08-07 23:42:33 +02:00
Adriaan de Groot
251e16e72c [libcalamares] Allow en_US locale for tests as well 2019-08-07 12:31:52 +02:00
Adriaan de Groot
4febe477cf [libcalamares] Add isEmpty() to TranslatedString
- Massage the implementation a bit, don't insert a meaningless
   copy of the key as the untranslated message.
 - Add isEmpty() to check for presence of the untranslated message.
 - Document API.
 - Update tests.
2019-08-06 11:53:35 +02:00
Adriaan de Groot
6a8e10837d [libcalamares] Drop unneeded debugging 2019-08-06 00:26:04 +02:00
Adriaan de Groot
fd75b33784 [libcalamares] Add default constructor to TranslatedString 2019-08-06 00:17:30 +02:00
Adriaan de Groot
39b7e4c55f Merge branch 'translatable-configuration' 2019-08-06 00:07:48 +02:00
Adriaan de Groot
764c775f08 [libcalamares] Tighten tests, add special case
- The tests should be run in C locale, otherwise the plain get()
   function uses the current locale, which will fail (e.g. running
   LANG=nl ./libcalamareslocaletest returns the Dutch strings for
   plain get, which isn't what we expect).
 - sr@latin is still special.
2019-08-06 00:05:24 +02:00
Adriaan de Groot
a9292d0c75 [libcalamares] Implement getting the string 2019-08-05 23:54:53 +02:00
Adriaan de Groot
50d74c4eca [libcalamares] Add get() to the string
- Look up the translation of the requested string with the current
   or a specific locale. This implementation is a stub.
 - Add tests for the getter.
2019-08-05 23:37:25 +02:00
Adriaan de Groot
e0edd1f3e2 [libcalamares] Fix misleading comment, add accessor
- the sort order is not English-at-the-top
 - add accessor for the locale ID.
2019-08-05 23:32:13 +02:00
Adriaan de Groot
28293ef77a [libcalamares] Expand tests of TranslatableString 2019-08-05 23:30:51 +02:00
Adriaan de Groot
5d6ccfe8fc [libcalamares] Adjust tests for new Esperanto support 2019-08-05 18:30:50 +02:00
Adriaan de Groot
18e2f2ae52 [libcalamares] Add tests for new TranslatedString
- Test that construction works as expected
 - Add count() method to TranslatedString for testing purposes.
2019-08-05 17:57:32 +02:00
Adriaan de Groot
19ca1b3c30 [libcalamares] One missing bit of coding style 2019-08-04 23:00:03 +02:00
Adriaan de Groot
8ea4091c7b [libcalamares] Add a TranslatedString class to locale/
- While QObject::tr and gettext give us translations **most** of the
   time via the translation mechanism, we sometimes have strings
   embedded in configuration files that need to be shown to people
   as well. Follow the .desktop style in handling this.
 - A key's value **might** be translated; use `key[lang]` for the
   translation into one of the languages that Calamares understands.
   Code that expects a translated (human-readable) string in a configuration
   file can use TranslatedString to collect all the translations of a
   given key, so that it displays the right string from the configuration
   when needed.
2019-08-04 22:56:41 +02:00
Adriaan de Groot
1afa9c4d08 [libcalamares] Apply current coding style to all of libcalamares/ 2019-08-04 22:24:55 +02:00
Adriaan de Groot
7fcb7be1e4 [libcalamares] Apply current coding style to libcalamares/locale/ 2019-08-04 22:17:12 +02:00
Adriaan de Groot
43ba59361b [libcalamares] Don't format generated files of CLDR data 2019-08-04 22:16:33 +02:00
Adriaan de Groot
fa2b94d931 [libcalamares] Apply current coding style to libcalamares/partition/ 2019-08-04 22:13:58 +02:00
Adriaan de Groot
312865cdd9 [libcalamares] Fix build on FreeBSD 2019-08-04 22:09:53 +02:00
Adriaan de Groot
b8a74657f4 [libcalamares] Apply current coding style to libcalamares/utils/
- String.cpp needs special handling since part of it should
   remain unchanged, the formatting is "special" there.
2019-08-04 22:01:56 +02:00
Adriaan de Groot
29b9a21f59 [libcalamares] Don't format files copied from KCoreAddons 2019-08-04 22:01:31 +02:00
Adriaan de Groot
b7f54a3866 [libcalamares] Don't break string tables by reformatting 2019-08-04 22:01:31 +02:00
Adriaan de Groot
cac07c1472 [libcalamares] Use std::chrono::seconds for timeouts
- Distinguish just-an-int from seconds all across the API
2019-08-01 22:47:42 +02:00
Adriaan de Groot
abd7ce2886 Merge branch 'master' into strictly-typed-timeout 2019-08-01 15:55:53 +02:00