Commit Graph

681 Commits

Author SHA1 Message Date
Adriaan de Groot
f3e7fe5eb4 [libcalamares] Use more specific include 2020-02-12 10:32:10 +01:00
Adriaan de Groot
96580e5c40 [libcalamares] Convenience header for Boost and its warnings 2020-02-12 10:28:48 +01:00
Adriaan de Groot
6432b7f42a [libcalamares] Hit Boost warnings with a hammer
- Tons of warnings from Clang 9 in Boost::Python code, so
   turn of most of those warnings in the Boost-support code.
2020-02-11 16:46:44 +01:00
Adriaan de Groot
684c5f477c [libcalamares] Moc warnings--
- don't have a NOTIFY CONSTANT property
 - the data is constant, so drop NOTIFY
 - remove redundant signals
 - remove setLabels() now it's only needed from one constructor
2020-02-11 16:40:36 +01:00
Adriaan de Groot
b4b1bf5de2 [libcalamares] Call delegated constructor 2020-02-11 16:39:39 +01:00
Adriaan de Groot
df5a0d25bc [libcalamares] Handle empty locale names quickly 2020-02-11 16:37:49 +01:00
Adriaan de Groot
27bc64e63f [libcalamares] C++ style, warnings-- 2020-02-11 15:36:30 +01:00
Adriaan de Groot
241cb04f06 [libcalamares] Coding style 2020-02-11 15:25:28 +01:00
Camilo Higuita
1b3d32ca79 make label item from LabelModel qobject based and expose properties 2020-02-11 15:24:29 +01:00
Adriaan de Groot
240fe2a564 [libcalamares] Add convenience createTargetParentDirs() 2020-02-07 16:09:02 +01:00
Adriaan de Groot
6ede9f2c7c [libcalamares] Test QFileInfo::dir() for completeness 2020-02-07 16:08:38 +01:00
Adriaan de Groot
e65969d587 [libcalamares] Re-do createTargetDirs()
- Drop the basedirs idea, replace return with just bool
 - Use QDir::mkpath, with some extra validation
 - Test it a bit
2020-02-07 15:51:46 +01:00
Adriaan de Groot
8b8ecf7b7b [libcalamars] Improve test init and cleanup
- Test createTargetFile and removeTargetFile
 - Clean up afterwards
 - Ensure /tmp is the RMP for each test
2020-02-07 15:23:02 +01:00
Adriaan de Groot
b502d78984 [libcalamares] Fix warning message
- "create" was when this function was used elsewhere
2020-02-07 13:58:44 +01:00
Adriaan de Groot
394eee3954 [libcalamares] Test more targetPath() scenario's 2020-02-07 13:57:14 +01:00
Adriaan de Groot
8d23e665ea [libcalamares] Fix targetPath() tests
- there is less simplification done than you might think
2020-02-07 13:53:49 +01:00
Adriaan de Groot
daa5b804b3 [libcalamares] Split paths-tests into own test executable
- Since these tests all want a system object, and a GS
   with a sensible setup, give them one with its own initTestCase().

This could have been done with one executable, running tests from
multiple classes, but there's not much overall benefit there.
2020-02-07 13:49:06 +01:00
Adriaan de Groot
31878dd43b [libcalamares] Avoid double / between root and path in targetPath() 2020-02-07 13:29:35 +01:00
Adriaan de Groot
15bca702c1 [libcalamares] Add tests for path functions (part 1) 2020-02-07 11:51:13 +01:00
Adriaan de Groot
95936549e2 [libcalamares] Add a createTargetBasedirs()
- Used to ensure that the directories leading up to a given path
   exist. Implementation is incomplete and broken for now.
 - While here, avoid removing an empty pathname in removeTargetFile()
   (the empty pathname indicates a broken configuration).
2020-02-07 11:30:37 +01:00
Adriaan de Groot
bf882cec1d [machineid] Migrate removeFile() to libcalamares
- Becomes removeTargetFile()
2020-02-07 11:16:01 +01:00
Adriaan de Groot
9ef04192db [libcalamares] Simplify returns in targetPath() 2020-02-07 11:03:40 +01:00
Adriaan de Groot
4b3f7eb209 [calamares] Local translations can be a separate setting
- Don't stick this in Settings, though, it becomes overly complicated.
2020-02-05 17:48:39 +01:00
Adriaan de Groot
24c2c435a0 [libcalamares] Try repairing tests
- Fail on FreeBSD with an instant timeout
2020-02-05 17:08:47 +01:00
Adriaan de Groot
4525060c26 [calamares] Refactor Settings initialization
- add a Settings::init() to do actual work
 - remove the same kind of code from CalamaresApplication
 - make constructor of Settings private
 - initialize settings before the application
2020-02-05 16:48:49 +01:00
Adriaan de Groot
91625c8ba8 [libcalamares] Tidy up boolean options in Settings
- The const getters for a single boolean value have moved
   to the header, for inlining.
 - Document the getters and what their settings mean.
2020-02-05 13:35:26 +01:00
Adriaan de Groot
d956c79291 [libcalamares] Load translations from more places
- To support translation testing, without needing to recompile
   Calamares, load files from the local directory when debugging,
   or from /usr/share/calamares/lang/ in general.
 - This allows updating translations and testing them with just
   lrelease (a translation build tool) installed, without rebuilding
   Calamares.
 - This allows distro's to ship updated or modified translations without
   rebuilding Calamares.
2020-01-30 19:06:33 +01:00
Adriaan de Groot
e56948cefa [libcalamares] Fix tests (cell is the lower unicode byte) 2020-01-29 16:41:17 +01:00
Adriaan de Groot
be0831ee11 [libcalamares] Add printable-entropy (e.g. for password salt) 2020-01-29 16:39:25 +01:00
Adriaan de Groot
8947f9c00c [libcalamares] Test the Entropy service 2020-01-29 16:16:12 +01:00
Adriaan de Groot
a574b43eb8 [libcalamares] Also report empty buffer as no-entropy 2020-01-29 16:08:33 +01:00
Adriaan de Groot
842a90e026 [libcalamares] Add an Entropy service for getting random data
- Tries to get the "best" random data
 - Reports the quality of the random data it got
2020-01-29 16:03:50 +01:00
Adriaan de Groot
94083edf9c Merge branch 'master' into kpmcore-manager 2020-01-29 12:55:46 +01:00
Adriaan de Groot
71a73ee1a1 [libcalamares] PythonJob created with InstanceKey 2020-01-25 15:15:32 +01:00
Adriaan de Groot
96946a8447 Merge branch 'fix-unpackfs-progress'
This is an ugly hack, using Bill Auger's support for Job weights.
The unpackfs job is arbitrarily awarded a weight of 12. That makes it
(in a Netrunner install) use progress from 12% to 40% or so, overall,
as all the files are unpacked.

Also fixes bug reported by Kevin Kofler that unpackfs was only reporting
progress when it hit an exact multiple of 100 (instead of over 100).

SEE #1176
2020-01-25 11:53:31 +01:00
Adriaan de Groot
9976e92659 [libcalamares] Enlarge unpackfs to 12x 2020-01-25 03:06:20 +01:00
Adriaan de Groot
d4b24894cb [libcalamares] Weigh unpackfs extra heavy
- This is a gross hack, which hard-codes unpackfs as much-heavier
   than other Python modules.
2020-01-25 02:45:52 +01:00
Adriaan de Groot
0c9188ee83 [libcalamares] Document JobWeight 2020-01-25 02:45:52 +01:00
Adriaan de Groot
8d47751cb2 [libcalamares] Beautify debug output for InstanceKey 2020-01-24 22:53:14 +01:00
Adriaan de Groot
00deeec8c8 [libcalamaresui] Use InstanceKey instead of strings
- Replace return type of Module::instanceKey() by the structured
   ModuleSystem::InstanceKey type
 - Chase API breakage
2020-01-24 17:47:06 +01:00
Adriaan de Groot
155db29ccf [libcalamares] Add a ModuleSystem::Descriptor
- this is currently just an alias for QVariantMap, which is
   the type already in use.
 - future plan is to tighten this up and have an actual
   Descriptor class that carries only the information
   actually needed for the module descriptor.
2020-01-24 12:59:35 +01:00
Adriaan de Groot
23a957e783 [libcalamares] Chase API change (timeouts)
- The new mount service needed adjustment for the independent
   change of timeouts: int -> chrono::seconds.
2020-01-10 15:22:26 +01:00
Adriaan de Groot
f6d89354a1 Merge branch 'master' into kpmcore-manager 2020-01-10 14:54:13 +01:00
Adriaan de Groot
2dff2d9d70 [libcalamares] TZRegion is hard to copy
- delete the copy and move constructors
 - adjust tests (which were just interested in simple tr() behavior) to use TZZone instead
2020-01-07 10:41:14 +01:00
Adriaan de Groot
5fbd0169ca [libcalamares] Reduce clang warnings (only-inline-virtual, unused parameters) 2020-01-07 10:33:21 +01:00
Adriaan de Groot
1b62b2f66c [libcalamares] Reduce warnings (extra ;, empty statement ..) 2020-01-07 10:19:22 +01:00
Adriaan de Groot
0e7982ec37 [libcalamares] Don't force Hindi on India.
FIXES #1284
2019-12-11 18:33:24 +01:00
Adriaan de Groot
4945408911 [libcalamares] Remove debugging cruft 2019-12-11 08:45:35 -05:00
Adriaan de Groot
daa76080f1 [libcalamares] Add meaningful aliases for key() 2019-12-11 07:00:42 -05:00
Adriaan de Groot
0ed2a3e35f [libcalamares] Refactor translation-setting
- Split the actual loading of translations into classes
   to encapsulate the loading logic,
 - Build a collection of classes to do the different kinds
   of translation loading,
 - Build a generic function to load something and update a
   static pointer to the translation.

This makes installTranslator() much easier to read, and encapsulates
the type-specific loading somewhere else. While here, add a timezone-
translations loader so that the split-out TZ translations also work.
2019-12-11 06:40:22 -05:00
Adriaan de Groot
93ae44e214 [libcalamares] Split translatable timezone data
- Hide the one file from lupdate by giving it a weird suffix
 - Call lupdate a second time for the timezone translations
 - While here, adjust so that the options precede the directories
   they are supposed to affect

I don't want to give the translation teams 444 new strings all
at once (about 90% of which don't need translation).
2019-12-10 22:44:10 +00:00
Adriaan de Groot
08dc9011d6 [libcalamares] Off-by-one folded the world in half
- Dropped the sign from longitudes, wrapping the west onto the east
2019-12-10 17:11:10 +01:00
Adriaan de Groot
1880eb5148 [libcalamares] Add accessors for TZZone 2019-12-10 16:10:16 +00:00
Adriaan de Groot
3f57b929ee [libcalamares] Make the zoneTab region list static
- there's only one zone.tab, it won't change during a run,
   load it only once (this allows for a single global list).
2019-12-11 01:43:53 +10:00
Adriaan de Groot
a39c77dfaf [libcalamares] Store region name in each zone as well 2019-12-11 01:11:51 +10:00
Adriaan de Groot
c75e870073 [libcalamares] CStringList::find() convenience function
- search for a key and return a type-cast pointer to the result
 - while here, simplify some other code
 - the find() function could be done with std::find_if but doesn't
   get any shorter or more elegant
2019-12-10 15:54:43 +01:00
Adriaan de Groot
6092172f8d [libcalamares] Regions and zones change to QList<Base*>
- By using QList< CStringPair* > consistently, we can save
   a bunch of model code at the cost of an occasional dynamic_cast;
   it's fairly rare for there to be a need for the derived pointer.
2019-12-10 15:32:15 +01:00
Adriaan de Groot
fc8364ea54 [libcalamares] Store zones with each region
- move operator< to base class
 - add each zone to the list held by the region
 - sort zones at the end
2019-12-10 14:06:22 +00:00
Adriaan de Groot
1a8439069e [libcalamares] Extend TZ with location and country 2019-12-10 15:36:53 +02:00
Adriaan de Groot
f4509f3380 [libcalamares] Move loading to TZRegion
- don't make the model load files, provide convenience functions
   for loading in the value classes
 - create model from lists of value pointers
2019-12-10 10:48:39 -01:00
Adriaan de Groot
da277fa7ba [libcalamares] Drop superfluous enum 2019-12-10 17:42:32 +06:30
Adriaan de Groot
9a5e614172 [libcalamares] Build the TZRegion list in one pass
- read the file and create the regions on-the-fly, then sort the
   resulting list (instead of building a string list and then
   building the regions afterwards)
2019-12-10 17:24:33 +06:30
Adriaan de Groot
01bba7b466 [libcalamares] Make explicit when a model comes from a file 2019-12-09 23:36:05 -11:00
Adriaan de Groot
2625bb18df [libcalamares] TZRegionModel gets a data role 2019-12-10 11:27:02 +02:00
Adriaan de Groot
97235e9b3d [libcalamares] Switch CStringPair key to QString
- the key is used in various places as a key for Qt data structures,
   so it's more convenient to have QString than a bare char*
2019-12-10 10:11:08 +01:00
Adriaan de Groot
1d17cf5c77 [libcalamares] Accessors for key and complete region data 2019-12-09 17:20:46 -04:00
Adriaan de Groot
b29b89579e [libcalamares] Present TZ regions in consistent order 2019-12-09 15:55:04 -05:00
Adriaan de Groot
b2c2255f6a [libcalamares] Add a model of timezone regions 2019-12-09 21:46:10 +01:00
Adriaan de Groot
ddc2f60768 Merge branch 'master' into zone-data 2019-12-09 17:44:32 +01:00
Adriaan de Groot
3c1b0e6730 [libcalamares] Reduce warnings with Clang 9 (yaml.h) 2019-11-29 00:17:02 +01:00
Adriaan de Groot
ac75c63001 [libcalamares] Reduce warnings with Clang 9 (Boost::Python)
- The boost headers fall foul of tons of Clang warnings, so introduce
   a mechanism like moc-headers for turning off most of those warnings.
2019-11-29 00:17:02 +01:00
Adriaan de Groot
94fe4d2fda [libcalamares] Avoid weak vtables in string-pair implementation 2019-11-26 12:30:59 +01:00
Adriaan de Groot
fc7f49b610 [libcalamares] Expand tests for TimeZone translations 2019-11-26 12:28:41 +01:00
Adriaan de Groot
71f3614eb7 [libcalamares] Add TimeZone support to build
- Add to CMakeLists.txt
 - Test basic scenarios
2019-11-26 11:20:33 +01:00
Adriaan de Groot
3af2754022 [libcalamares] Implement translatable-pair-of-char*
- This is base functionality for a translatable model of
   TimeZone names that is scraped from zone.tab
2019-11-26 11:18:35 +01:00
Adriaan de Groot
abd3c4171b [libcalamares] Prevent CI coding-style fixes to generated code 2019-11-26 11:08:21 +01:00
Adriaan de Groot
733fb43b5e [libcalamares] Sort the dummy zone names 2019-11-26 10:45:36 +01:00
Adriaan de Groot
c3fdb38097 [libcalamares] Stub of class for TimeZone model management
- Intent is to move out of locale module
2019-11-25 20:51:45 +01:00
Adriaan de Groot
2034dd62a4 [libcalamares]: Timezone information for translation/extraction
SEE #1259
2019-11-19 18:07:13 +01:00
Adriaan de Groot
3ee384f36c [libcalamares] Extract zone.tab data for translations 2019-11-19 18:07:13 +01:00
Adriaan de Groot
c8229733b0 [libcalamares] Document the pseudo-constructors for JobResult 2019-10-01 16:05:03 +02:00
Adriaan de Groot
3a8d543c72 [libcalamares] Document operator bool() of JobResult
- this could be named isValid() instead, but basically the idea
   is that this code makes sense:

      JobResult r = do_thing();
      if ( !r ) { /* Error happened! */ return r; }
      /* Carry on .. */
2019-10-01 15:58:02 +02:00
Adriaan de Groot
4970c328fa [libcalamares] Fix stringification of broken instance keys 2019-10-01 10:50:12 +02:00
Adriaan de Groot
70fc480c56 [libcalamares] If test is going to fail, be more verbose on failure 2019-10-01 10:50:12 +02:00
Adriaan de Groot
5d0a5c035d
Merge pull request #1243 from stikonas/master
QLatin1Literal->QLatin1String.
2019-09-30 10:30:02 +02:00
Adriaan de Groot
bb9cca643f [libcalamares] Avoid warnings from MOC-generated code
- Moc generates Q_UNUSED(_a); which in turn (with clang) issues
   a superfluous-semicolon warning. Existing code with automoc
   uses utils/moc-warnings.h to turn off warnings that are issued
   on moc code. Include it explicitly here because automoc isn't
   applied.
2019-09-23 11:50:06 +02:00
Adriaan de Groot
3c387a11c9 [libcalamares] class/struct mismatch
- Manager::Private is a class, not just a struct. Needed for
   hypothetical MSVC compatibility.
2019-09-23 11:26:53 +02:00
Andrius Štikonas
490c14d93d QLatin1Literal->QLatin1String. 2019-09-21 20:44:33 +01:00
Adriaan de Groot
ce6f6592d4 [libcalamares] Drop parts of InstanceKey API
- Drop the 1-argument QString constructor, it is suprising
 - Drop the conversion to QString
 - Add a toString() instead
 - Drop tests for the removed API
 - While here, apply code formatting to the tests

This is done to force consumers to update to strongly-typed
InstanceKeys.
2019-09-15 20:38:16 +02:00
Adriaan de Groot
7dcc6e8e07 [libcalamares] Fix bug in InstanceKey::QString 2019-09-15 20:38:16 +02:00
Adriaan de Groot
57e4b66af2 [libcalamares] Test QString() operator
- An invalid InstanceKey should give an empty string
 - Test remaining QString() cases
 - Edge cases for 2-string constructor
2019-09-15 20:38:16 +02:00
Adriaan de Groot
ba7e96c5e1 [libcalamares] Add test for InstanceKey
- cover all the constructors
 - Start with some tests that fail, showing bugs in the implementation
 - Fix bug that "derp@derp" was creating a valid instance-key with
   a bad module and id (need to use ::fromString() to get that
   functionality).
 - Extend tests with more bad cases.
 - Refactor tests to simplify "this is bad" assertions.
2019-09-15 20:38:16 +02:00
Adriaan de Groot
2f99004041 [libcalamares] Move the module instance-key
- Split out of the UI library and into (header-only) libcalamares.
2019-09-15 20:38:16 +02:00
Adriaan de Groot
666462651b [libcalamares] Namespace consistently
- Things in libcalamares/ subdirectories are namespaced
   according to that subdirectory (sometimes in namespace
   Calamares, sometimes CalamaresUtils). Do that in modulesystem/ too.
2019-09-15 20:38:16 +02:00
Adriaan de Groot
57a942d155 [libcalamares] Make a NAM per thread
- To avoid warnings about creating requests and replies, parented
   by the NAM but from another thread, make a NAM per thread.
2019-09-14 07:21:24 -04:00
Adriaan de Groot
ca351ff7b6 [libcalamares] Apply (some) options to request earlier 2019-09-10 14:26:46 +02:00
Adriaan de Groot
88fc6685ba [libcalamares] Apply coding style to geoip/ 2019-09-05 03:23:28 -04:00
Adriaan de Groot
badbdf59ee [libcalamares] Build synchronous get w/ async-get 2019-09-02 13:43:10 +02:00
Adriaan de Groot
f8356a6dcc [libcalamares] Add an async get method
- Mostly a "cheap" wrapper for a half-dozen boilerplate lines
   of Qt NAM code.
2019-09-02 12:21:33 +02:00
Adriaan de Groot
543e2d34fc [libcalamares] [locale] Remove unused includes 2019-09-02 12:02:43 +02:00