Commit Graph

965 Commits

Author SHA1 Message Date
Adriaan de Groot
d6b0583bad [libcalamares] Compatibility-layer for QString::split
- QString::split() api changed in 5.14, in 5.15 generates warnings,
  so introduce a compatibility value.
2020-06-23 11:08:55 +02:00
Adriaan de Groot
e24f812b2d [libcalamares] Chase Permissions move
- Fix include names in *preservefiles*
- Tidy up include guards
- Fix CMakeLists in *perservefiles* and *libcalamares*
- Use SPDX license headers
2020-06-22 16:32:47 -04:00
Adriaan de Groot
4473d7f5dd [preservefiles] Move permissions classes to libcalamares 2020-06-22 16:22:59 -04:00
Gaël PORTAY
c9f942ad67 [libcalamares] Add default value to variant helpers
- Some variant helpers take a default parameter if the map does not
  contains the given key or if the type mismatches. Make all helpers
  behave the same.
2020-06-22 15:37:24 -04:00
Adriaan de Groot
0305476f8a Merge branch 'issue-1287' into calamares
Major update to the 'tracking' module with improved wording,
functionality, QML-preparation, and a working kuserfeedback mode.

FIXES #1287
2020-06-18 13:46:57 +02:00
Adriaan de Groot
6365b7a362 Merge branch 'calamares' into issue-1287 2020-06-17 18:10:33 +02:00
Adriaan de Groot
e834ce532c [libcalamares] Add variant-map getStringList() convenience 2020-06-17 15:02:01 +02:00
Gaël PORTAY
e68723f1c7 [libcalamares] Handle integers prefixed with 0 or 0x
- QString to-integer members detect if an integer string begins with
  "0x" (base 16) or "0", base 8; but QVariant members do not.
- QString: the C language convention is used is base is set to 0.
- Convert to QString and use its member toLongLong() and set base to 0
  to detect integer strings begin with a prefix.
2020-06-16 14:14:47 -04:00
Adriaan de Groot
bfefbd117d
Merge pull request #1435 from gportay/partition-attributes
Partition Attributes
2020-06-16 16:42:30 +02:00
Gaël PORTAY
c1b5426c66 [partition] Add support for partition attributes 2020-06-15 22:05:10 -04:00
Adriaan de Groot
55abe0247b [libcalamares] Fix tests on 32-bit platforms
- The size of a 2GiB partition (in bytes) is larger than the largest
  32-bit signed integer; we hit signed overflow while calculating
  2^11 * 2^10 * 2^10 and the test fails.
- Switch the whole table of sizes to qint64 instead.
- For testing purposes only, introduce a _qi suffix for qint64.

FIXES #1430
2020-06-14 23:42:25 +02:00
Adriaan de Groot
dc0ed24f1a [libcalamaresui] Install libcalamaresui headers
- All the headers go to relevant subdirs, but we don't keep
  libcalamares and libcalamaresui apart.
- While here, remove unused variable from libcalamares CMake
2020-06-10 16:43:34 +02:00
Adriaan de Groot
23c93904df CMake: put CMake-level ABI settings in CalamaresConfig
- drop the BuildTreeSettings, it was not usefully used
- make CalamaresConfig repeat the WITH_* settings, so that
  consumers can know the ABI offered
2020-06-10 11:51:53 +02:00
Adriaan de Groot
6c272bc8be [libcalamares] Link yamlcpp privately
- link the library privately -- the public API uses QVariantMap
- install FindYAMLCPP just in case
- add yamlcpp explicitly in the few places that really need it
  (e.g. netinstall testing the parsing of netinstall.yaml)
2020-06-10 02:27:57 +02:00
Adriaan de Groot
3c770b79b3 CMake: install all the libcalamares subdir-headers 2020-06-10 02:10:21 +02:00
Adriaan de Groot
14ff681106 CMake: give libcalamares IMPORTED includes
- Set the interface-include path for libcalamares, so that
  linking to it (as one would from an external repo) pulls in
  all the includes.
2020-06-10 02:01:59 +02:00
Adriaan de Groot
dc16afac4a CMake: massage IMPORTED targets and module path
- Add the Calamares CMake-modules to the search path automatically
- Export to CalamaresTargets.cmake and use namespace Calamares::
- Document imported targets
- Find Qt, because the translations machinery will need macros from that
- The installed lib links to IMPORTED libraries from KF5, so we need
  to find them (again) as well.
2020-06-10 01:37:54 +02:00
Adriaan de Groot
abe558f127 [libcalamares] Be more verbose when the requirements check is done 2020-06-08 08:33:48 -04:00
Adriaan de Groot
881187de8d
Merge pull request #1423 from Cal8031/t1
Update and add SPDX identifiers
2020-06-03 15:32:07 +02:00
Adriaan de Groot
ac2a9c569e [libcalamares] Allow "fixed" as a GeoIP lookup type 2020-06-03 15:03:19 +02:00
Adriaan de Groot
672f506e72 [libcalamares] Add unittests for GeoIPFixed
- Ignores the data, just returns selector
2020-06-03 14:55:01 +02:00
Adriaan de Groot
d9effb4ba7 [libcalamares] Add GeoIPFixed to the test-tool for GeoIP lookup
- Allow format "fixed"
- Allow specifying the selector in the test-tool
2020-06-03 14:34:45 +02:00
Adriaan de Groot
d37ec35592 [libcalamares] GeoIP that always returns a fixed value
- Value is configurable (through the "selector" which is passed
  to GeoIP lookups). This is convenient for tests so you can "fix"
  the value that the lookup will return.
2020-06-03 14:26:14 +02:00
Callum Farmer
0c4dc71d5c [libcalamares] Update SPDX identifiers.
Update CppJob.h

Update CalamaresConfig.h.in

Update DllMacro.h

Update GlobalStorage.cpp

Update GlobalStorage.h

Update Job.cpp

Update Job.h

Update JobExample.cpp

Update JobExample.h

Update JobQueue.cpp

Update CalamaresConfig.h.in

Update CppJob.cpp

Update CppJob.h

Update DllMacro.h

Update GlobalStorage.cpp

Update GlobalStorage.h

Update Job.cpp

Update Job.h

Update JobExample.cpp

Update JobExample.h

Update JobQueue.h

Update ProcessJob.cpp

Update ProcessJob.h

Update PythonHelper.cpp

Update PythonJob.cpp

Update PythonJob.h

Update PythonHelper.h

Update PythonJobApi.cpp

Update PythonJobApi.h

Update Settings.cpp

Update Settings.h

Update GeoIPJSON.cpp

Update GeoIPJSON.h

Update GeoIPTests.cpp

Update GeoIPTests.h

Update GeoIPXML.cpp

Update GeoIPXML.h

Update Handler.cpp

Update Handler.h

Update Interface.cpp

Update Interface.h

Update test_geoip.cpp

Update CountryData_p.cpp

Update Label.cpp

Update Label.h

Update LabelModel.cpp

Update LabelModel.h

Update CountryData_p.cpp

Update CountryData_p.cpp

Update Lookup.cpp

Update Lookup.h

Update Tests.cpp

Update Tests.h

Update TimeZone.cpp

Update TimeZone.h

Update TranslatableConfiguration.cpp

Update TranslatableConfiguration.h

Update ZoneData_p.cxxtr

Update cldr-extractor.py

Update zone-extractor.py

Update Actions.h

Update Actions.h

Update Descriptor.h

Update InstanceKey.cpp

Update Module.cpp

Update Module.h

Update Requirement.cpp

Update RequirementsChecker.h

Update RequirementsModel.cpp

Update RequirementsModel.h

Update Tests.cpp

Update Manager.cpp

Update Manager.h

Update Tests.cpp

Update FileSystem.cpp

Update FileSystem.h

Update KPMManager.cpp

Update KPMManager.h

Update KPMTests.cpp

Update FileSystem.cpp

Update FileSystem.cpp

Update FileSystem.h

Update KPMManager.cpp

Update KPMManager.h

Update Mount.cpp

Update Mount.h

Update PartitionIterator.cpp

Update PartitionIterator.h

Update PartitionIterator.h

Update PartitionQuery.cpp

Update PartitionQuery.h

Update PartitionSize.cpp

Update PartitionSize.h

Update Sync.cpp

Update Sync.h

Update Tests.cpp

Update Tests.h

Update BoostPython.h

Update CalamaresUtilsSystem.cpp

Update CalamaresUtilsSystem.h

Update CommandList.cpp

Update CommandList.h

Update Dirs.cpp

Update Dirs.h

Update Entropy.cpp

Update Entropy.h

Update Entropy.cpp

Update Logger.cpp

Update Logger.h

Update NamedEnum.h

Update NamedSuffix.h

Update PluginFactory.cpp

Update PluginFactory.h

Update RAII.h

Update RAII.h

Update Retranslator.cpp

Update Retranslator.h

Update String.cpp

Update String.h

Update TestPaths.cpp

Update Tests.cpp

Update Tests.h

Update UMask.cpp

Update UMask.h

Update Units.h

Update Variant.cpp

Update Variant.h

Update Yaml.cpp

Update Yaml.h

Update moc-warnings.h
2020-06-03 12:52:53 +01:00
Adriaan de Groot
6dffec2730 [libcalamaresui] Move QML-related directory functions to Qml.cpp 2020-05-19 21:02:06 +02:00
Adriaan de Groot
47979555fe CMake: optionally disable QML
This makes it possible to remove QML from Calamares, possibly yielding
a smaller, lighter installer; it takes with it the nice slideshow,
modern configurable navigation and the QML UIs built for various modules.

By default, WITH_QML is on and the "normal" feature set is retained.

- look for Qml modules only when WITH_QML is on (the default)
- look for Network, since that's pulled in only implicitly
- disable the QML Calamares models (modules/*q) if no QML is
  enabled; longer-term plan is to merge the **pages** back to
  the "upstream" modules, and have things be run-time switchable,
  but that's not here yet. Also disable the notesqml module when
  QML is off.
2020-05-14 16:31:39 +02:00
Adriaan de Groot
0235245631 [libcalamares] #include-styling 2020-05-14 16:27:46 +02:00
Adriaan de Groot
cdb99ad887 CMake: shuffle WITH_* settings for calamares executable
- reminder to make all the ABI-relevant WITH_* settings available as #defines
- move the compilation of KDSAG to the calamares executable, not the library
- when DBus activation is on, drop all of kdsingleapplicationguard
2020-05-14 12:21:33 +02:00
Adriaan de Groot
13ded5f005 [libcalamares] #include-styling 2020-05-14 12:21:33 +02:00
Adriaan de Groot
c90ebb5d82 [libcalamares] Apply Qt defines consistently
- Move some definitions that influence Qt compilation
  up to the top-level.
2020-05-14 01:05:37 +02:00
Adriaan de Groot
5c8a99c77b [libcalamares] After running the checker, re-compute satisfaction
- If nothing is added to the model (e.g. it is empty) then the satisfaction
  still needs to be re-calculated (to true).
2020-05-12 17:06:16 +02:00
Adriaan de Groot
f856c07b04 [libcalamares] Move progress signal to RequirementsModel
- It is the requirements model (checking) that reports progress, and now
  the model is accessible (ask for it with requirementsModel(), make the
  messages come from there.
2020-05-12 16:09:13 +02:00
Adriaan de Groot
09b73dce06 [libcalamares] Implement the HasDetails role 2020-05-11 17:10:03 +02:00
Adriaan de Groot
153757933a [libcalamares] Stop emitting signals with RequirementsList
- The architecture of letting someone build up a list of requirements
  from data emitted by the ModuleManager is broken: if it gets loaded
  later, it will miss data; passing around complicated objects is
  no fun anyway. Get rid of it, on the way to "ModuleManager has
  its own model of requirements".
2020-05-11 16:30:26 +02:00
Adriaan de Groot
9b0ea3f63d [libcalamares] Remove runaround through free function
- Call into a method directly to do the work of adding
  results from a single module.
2020-05-11 16:30:26 +02:00
Adriaan de Groot
b7c60cec66 [libcalamares] Re-vamp RequirementsChecker
- Give the ModuleManager a RequirementsModel -- that is the source
  of truth about the module-requirements of the modules managed
  by that particular ModuleManager.
- Let the RequirementsChecker operate on a given RequirementsModel.
2020-05-11 16:30:26 +02:00
Adriaan de Groot
039065ee4a [libcalamares] Minor debugging support in RequirementsModel 2020-05-11 16:30:26 +02:00
Adriaan de Groot
d87d714b8d [libcalamares] Make the requirements model more adaptable
- Either replace the list of results, or add to them
- Lock model while adding rows
2020-05-11 16:30:26 +02:00
Adriaan de Groot
0f5db0ba5e [libcalamares] Remove direct access to model internals
- This was just for the ResultsListWidget, which can also use
  normal role-based model access.
2020-05-11 16:30:26 +02:00
Adriaan de Groot
616fbb08f3 [libcalamares] Improve docs of RequirementsModel 2020-05-11 11:19:08 +02:00
Adriaan de Groot
401a34fcbd [libcalamares] Fix tests on FreeBSD
- https requests can fail if ca_nss isn't installed; ping something
  else then.
2020-05-06 18:06:17 +02:00
Adriaan de Groot
7277d52828 [libcalamares] Expand range of errors for network requests
- All failures were being reported as Timeout, which is confusing
  when they are not. Introduce HttpError for the not-timeout
  other kinds of errors.
- Add operator<< for RequestStatus for nicer error logging.
2020-05-06 17:50:34 +02:00
Adriaan de Groot
8af17fafe1 [libcalamaresui] Register Global Storage (as 'Global') for QML 2020-05-01 14:37:25 +02:00
Adriaan de Groot
79e8c447b9 [libcalamares] Test some specific KPM partition flags 2020-04-23 13:46:09 +02:00
Adriaan de Groot
3f4e167aca [libcalamares] Expand kpm test with API 3/4 differences
- fix build
- KPMCore 3 distinguishes esp and boot
- KPMCore 4 does not
2020-04-23 12:16:30 +02:00
Adriaan de Groot
43c5e1fc96 [libcalamares] Fix build of tests
- Typed in on FreeBSD, where it doesn't get built
2020-04-23 11:45:12 +02:00
Adriaan de Groot
cca067a34d [libcalamares] Add a bogus test showing flag names 2020-04-22 15:38:42 +02:00
Adriaan de Groot
86ffab1873 [libcalamares] Use convenience Logger::NoQuote 2020-04-21 16:46:48 +02:00
Adriaan de Groot
6de82e6857 [libcalamares] Add convenience for QDebug.noquote()
- Use << Logger::NoQuote{} to turn off quoting **and** the space
- In practice, in Calamares we use this only around other processes'
  output, where we want neither quotes nor spaces.
2020-04-21 16:46:13 +02:00
Adriaan de Groot
d348977d07 [libcalamares] Fix tests
- the test checks that the default locale is C or en_US .. let's just
  make it so instead of relying on the environment. This fixes tests
  on my dev-laptop, which happens to be set to en_NL (with volapuk
  date format).
2020-04-21 13:41:04 +02:00
Adriaan de Groot
16a5ca2a55 [libcalamares] Format floats with trailing digits
- When writing YAML, given a float **always** write
   some decimal digits (e.g. "1.0" rather than "1")
   so that the type of the written-out thing stays
   float.
 - Avoids test failure with the sample `welcome.conf`
   file which reads 1.0 and would write out 1, which then
   led to type differences.
2020-04-08 17:10:32 +02:00
Adriaan de Groot
3b354b8b20 [libcalamares] Handle qlonglong when writing YAML
- Handle qlonglong explicitly
- Add a fallbackfor things that convert to qulonglong, to
  avoid these remaining integer types from hitting the
  very end of the if-chain, and being written out as
  the **string** "<typename>"
2020-04-08 17:01:24 +02:00
Adriaan de Groot
c6463a30ea [libcalamares] Be far more detailed in comparing maps
- just comparing a==b (both QVariantMap) gives a
  not-so-informative message, so go through the keys looking
  for differences.
2020-04-08 16:47:03 +02:00
Adriaan de Groot
f33c737e99 [libcalamares] Pretty debug formatting
- toggle nospace() and noquote() part-way through the line,
  so that they only affect the output obtained from the external
  command.
2020-04-06 11:56:39 +02:00
Adriaan de Groot
4abb87ccca [libcalamares] Improve reporting on process failures
- In production, cDebug() might not show up, so the log will not
  contain the lines saying what program is being run;
- Errors should at least mention the program name, but "env" or
  "chroot" is not useful, so pull that from *args*, which is
  the command we actually want to run.
2020-04-06 11:17:47 +02:00
Adriaan de Groot
752399ca6b [libcalamares] Error out on empty command
- an empty command isn't going to work (although it might successfully
  run chroot or env in the target system, that's not useful)
- while here, move variable declarations closer to their use.
2020-04-06 11:15:10 +02:00
Adriaan de Groot
88c75fb5dc [libcalamares] Simplify program-arguments creation 2020-04-06 11:08:16 +02:00
Adriaan de Groot
e756cc8720 [libcalamares] Tidy RequirementsModel some more
- put signals in conventional place
- remove const int& parameter, that can just be int
- drop oddly-guarded code (that leaks memory); if the index (row)
  being passed in, it's probably best to just crash
- remove unused signal warningMessageChanged
2020-04-02 22:14:27 +02:00
Adriaan de Groot
4e7020d030 [libcalamares] Polish model
- make signals consistent in carrying a parameter
- explain why there's no Q_ENUM
2020-04-02 22:04:34 +02:00
Adriaan de Groot
e5562a5069 [libcalamares] Move RequirementsModel to libcalamares (1/2)
- Add the model and support code to libcalamares. The model still
  has some cruft that should be in the Welcome config.
2020-04-02 21:33:07 +02:00
Adriaan de Groot
d8ecd302e1 [libcalamares] Apply coding style
- minor space issues
 - drop a blank line after moc-warnings.h to avoid if being sorted
   downwards, after the MOC file it's protecting
2020-03-31 23:19:51 +02:00
Adriaan de Groot
1765412b61 [libcalamaresui] Move RequirementsChecker to libcalamares
- the checker only collects and calls requirements; it has no
  UI component, and only manages data (and a thread to do the
  checking). Move it out of the UI library.
2020-03-31 23:13:13 +02:00
Adriaan de Groot
7655584022 [libcalamaresui] Move Module to libcalamares
- The Module class has no UI-specific code in it; it's all about
  loading and data-management. Move it out of the UI library.
2020-03-31 22:56:42 +02:00
Adriaan de Groot
4ddd1ecceb [libcalamares] Move Requirement to libcalamares
- This isn't a UI component: a requirement can be checked and
  reported-on without a UI entirely.
2020-03-31 22:13:30 +02:00
Adriaan de Groot
83f5f9e1a7 [libcalamares] Introduce generic delete-later class
Don't bother with QScopeGuard just right now, since I can't
find a use-case in the Calamares codebase.

FIXES #1358
2020-03-28 11:49:23 +01:00
Adriaan de Groot
875f79b49f [libcalamares] Drop unused parameter
- the `parent` when installing a translator was not used, so drop it
  from the API. Chase some uses of the API, but leave welcome-modules
   broken: there's a merge of those coming.
2020-03-25 12:08:27 +01:00
Adriaan de Groot
e3b4689cab [libcalamares] Warnings--
- It's the perennial struggle between Qt index types and STL ones
2020-03-25 00:42:42 +01:00
Adriaan de Groot
998790d69c [libcalamares] Warnings-- 2020-03-24 23:52:57 +01:00
Adriaan de Groot
4aeb774812 [libcalamares] POD don't bother with const& 2020-03-24 23:52:20 +01:00
Adriaan de Groot
177d6fe861 [libcalamares] Apply coding style 2020-03-24 22:57:36 +01:00
Adriaan de Groot
412a8043a9 Merge branch 'qml-locale' of https://github.com/milohr/calamares into milohr-qml-locale 2020-03-24 22:43:13 +01:00
Camilo Higuita
e02077d58e some models need to be updated to work with locale qml view step 2020-03-24 10:04:14 -05:00
Adriaan de Groot
1de2a4ff14 [libcalamares] Introduce quit-at-end
- In some cases, it makes sense to close Calamares automatically
  when it is done. Set *quit-at-end* to do so -- although this
  probably also means you should remove the *finished* page.
2020-03-24 15:38:43 +01:00
Adriaan de Groot
184462a875 [libcalamares] Make status of JobQueue queryable
- while the queue is executing (the thread is running jobs) the
  isRunning() method returns true.
- re-work some internals to reset isRunning() before emitting
  finished() signal.
2020-03-24 15:14:38 +01:00
Adriaan de Groot
112895fddc [libcalamares] Keep jobIndex in-sync with the jobs
- Never skip updating the jobIndex, because it is used in emitProgress()
  to find which job to ask for status.
2020-03-24 15:06:34 +01:00
Adriaan de Groot
1eec1a9fe7 [libcalamares] Fix typo in API
- "asynchronouse" is not a thing
2020-03-24 13:43:19 +01:00
Adriaan de Groot
74aaccda15
Merge pull request #1341 from gportay/filesystem-features
[partition] Add support for filesystem-specific features (KPMCore 4.2.0 required)
2020-03-23 16:57:22 +01:00
Gaël PORTAY
15cce29a51 [partition] Add support for filesystem-specific features 2020-03-22 09:25:26 -04:00
Adriaan de Groot
1678a03cb3 [libcalamares] Tighten up types
- If we're converting a YAML map to a QVariant (Map), may as well
  express that in the types. This makes the return from, say,
  `yamlMapToVariant()` cheaper, but incurs conversion in
  `yamlToVariant()` .. previously the place for costs was
  swapped around.
- For those cases that want-and-expect a Map, or List, this makes
  the calls slightly cheaper. For the generic case, the costs move
  around internally.
2020-03-20 21:25:42 +01:00
Adriaan de Groot
d65e0fb4c8 [libcalamares] Fix build with GCC
- <memory> isn't implicitly-included for std::unique_ptr
2020-03-19 00:08:20 +01:00
Adriaan de Groot
afc0c78b4c [libcalamares] Refactor job-weight computations
- only check index-vs-length once
2020-03-16 17:25:27 +01:00
Adriaan de Groot
07da6e3905 [libcalamares] Expand instance with weight 2020-03-13 02:59:09 +01:00
Adriaan de Groot
e37809a126 [libcalamares] Detailed InstanceDescription type 2020-03-13 02:55:38 +01:00
Adriaan de Groot
0e68013bb3 [libcalamares] Start making InstanceDescription a stronger type
- Replace a map-of-strings with a class type.
- For now, doesn't compile.
- Intention is to construct from a YAML / QVariant from the
  *instances* list in `settings.conf`.
2020-03-13 02:41:42 +01:00
Adriaan de Groot
841ea9ff48 [libcalamares] Tidy up includes
- Remove commented-out includes
- Consistent punctuation
2020-03-09 21:05:15 -05:00
Adriaan de Groot
ef249043f9 [libcalamares] call Python method only from Python thread 2020-03-09 15:39:35 -05:00
Adriaan de Groot
b4aaf85ccf [libcalamares] Call Python function if available for status 2020-03-09 15:13:40 -05:00
Adriaan de Groot
252089e372 [libcalamares] Refactor pretty_name() call
- Split out a general method-that-returns-string caller.
2020-03-09 15:01:07 -05:00
Adriaan de Groot
aa62ca639b [libcalamares] Start getting prettyDescription from Python 2020-03-09 10:34:57 -05:00
Adriaan de Groot
9b5a391c86 [libcalamares] Factor out Python helper
- the strange construction of Helper and treating it as a singleton
  can be factored out into a separate singleton-handling instance()
  function. The Helper should never be destroyed.
2020-03-09 10:05:01 -05:00
Adriaan de Groot
3025c5383b [libcalamares] Document the pretty*() functions for Jobs 2020-03-05 08:54:42 -05:00
Adriaan de Groot
6d29c19e3e [libcalamares] Progress is float 2020-03-04 21:40:40 -05:00
Adriaan de Groot
0abde6f1a7 [libcalamares] Don't print funcinfo in continuations
- when a single function does more logging, it generally marks
  those as subsequent debug-messages (with Continuation, or SubEntry)
  and we don't need to print funcinfo for those, since it was already
  printed the first time.
2020-03-03 17:00:57 +01:00
Adriaan de Groot
5248a37eb3 [libcalamares] Add FUNC_INFO into all debug messages
- This is needlessly verbose
- Chase CreatePartitionTableJob which needs to bind to a temporary
2020-03-03 17:00:57 +01:00
Adriaan de Groot
3ddee8090c [libcalamares] Drop intermediate CLog class
- All the real work is done in CDebug, so remove the base class.
2020-03-03 17:00:57 +01:00
Adriaan de Groot
0793971d01 [libcalamares] Warnings--, unused variable 2020-02-27 23:18:13 +01:00
Adriaan de Groot
b0abb99ee1 [libcalamares] Don't log useless FUNC_INFO for Python
- When a Python module calls utils.debug(), there's no point
  in logging the C++ funcinfo that passes the parameters on;
  don't use cDebug() with its attendant magic.
2020-02-27 13:24:23 +01:00
Adriaan de Groot
f818d4b446 [libcalamares] Log Q_FUNC_INFO as part of debug
- Warnings, errors, don't get funcinfo, but regular cDebug()
  calls do. Other special-cases, like calling Logger::CDebug()
  constructor explicitly, don't get funcinfo either.

FIXES #1328
2020-02-27 13:20:19 +01:00
Adriaan de Groot
3456aabfce [libcalamares] Expand utility of list-logging
- Allow logging any QList type (needs explicit call in usage).
- Add a DebugList inheriting from DebugListT to keep existing
  code that logs QStringLists.
- For Calamares 3.3, consider using C++17 and class template deduction.
2020-02-27 11:59:24 +01:00
Adriaan de Groot
2db3b413f4 [libcalamares] Unmount with mount point, not device
- The manpage for umount says that -R can only be used with
  a mount point (e.g. /usr/local) and not a device name;
  this makes sense because a device might be mounted in multiple
  locations, but the mountpoint (and things mounted under it) lives
  in the filesystem tree.
- Existing code tried to unmount -R the device, not the mount point,
  and so always failed; leaving things mounted that shouldn't.
2020-02-24 20:58:02 +01:00
Adriaan de Groot
14979b1630 [libcalamares] TemporaryMount with backwards logic
- because mount() returns an exit code, and 0 is "success",
  the if (!code) was backwards: when mounting succeeded, the
  TemporaryMount object thought it failed.
- This leads to temp-mounts being left *all over* the place
  from os-prober and fstab-handling.
2020-02-24 15:21:31 +01:00
Adriaan de Groot
ee52e37b36 [libcalamares] Don't hard-code full paths
- See editorial in the code-comment. Still need to test that
   chroot(8) doesn't need a full path, otherwise this will
   go to /usr/bin/env udevadm to force lookup (redundantly
   if not in a chroot)
2020-02-24 13:15:13 +01:00
Adriaan de Groot
862b7e34df [libcalamares] Add tests for file-overwrite 2020-02-24 12:38:08 +01:00
Adriaan de Groot
f89951716e [libcalamares] Add mode to createTargetFile()
- Unconditionally **not** overwriting the target file isn't an option:
  writing hostname, for instance, expects that to be done even
  if `/etc/hostname` already exists on the target filesystem.
2020-02-24 12:14:50 +01:00
Adriaan de Groot
e49fb74847 [libcalamares] Fix more tests 2020-02-21 17:58:55 +01:00
Adriaan de Groot
39cc43f26b [libcalamares] Fix tests
- QCOMPARE() is sensitive to differing types in actual and expected,
  and uchar and int (and mode_t and int) are different.
2020-02-21 17:53:43 +01:00
Adriaan de Groot
1bb43e06e2 Merge branch 'master' into kpmcore-manager 2020-02-19 18:34:44 +01:00
Adriaan de Groot
81752b6f7c [libcalamares] Document how TranslatedString context works
- Support re-using class-specific tr() calls in a standard way
- Document this in the netinstall.conf which uses it
2020-02-19 14:23:34 +01:00
Adriaan de Groot
0ef28f6a50 [libcalamares] Translatable config strings use tr()-infrastructure
- Allow TranslatedString to get a context parameter; if it has
  one, it will try to use the regular tr()-infrastructure
  **as fallback** for the translations from the config file itself.
- This makes it possible to offer -- and translate -- some "standard"
  phrases in the module, while allowing the config file the knob
  to change strings. Using one of the standard strings gets translations
  for "free", while introducing something entirely new means sourcing
  translations for it as well.
2020-02-19 14:04:35 +01:00
Adriaan de Groot
371fe267b1 Merge branch 'better-hostname' 2020-02-17 17:10:21 +01:00
Adriaan de Groot
94f5b13db0 [libcalamaresui] Restore previous DLLEXPORT names
- Different libraries should have different EXPORTs, so that
   you can IMPORT one while building the other. Reported (and
   kindly explained) by Kevin Kofler.
 - Stick to one header file, though.

While here, update copyright on file.
2020-02-17 16:55:17 +01:00
Adriaan de Groot
6719a41aef [libcalamares] Switch tests to calamares_add_test() 2020-02-17 15:05:00 +01:00
Adriaan de Groot
51e135cfbd CMake: chase introduction of IMPORTED yamlcpp 2020-02-17 15:01:05 +01:00
Adriaan de Groot
92260e7d0b [libcalamares] Document DllMacro.h and add STATICTEST
- document the export macros
 - introduce a "static" that is switched off when re-building code
   for tests.
2020-02-17 11:43:20 +01:00
Adriaan de Groot
b044549013 [libcalamares] Merge PluginDllMacro.h into DllMacro.h
- Let's just have one header definining export- and visibility-
   macros for Calamares. They are still selected based on the
   export flags (*_PRO), just defined in one header instead of two.
2020-02-17 11:37:35 +01:00
Adriaan de Groot
781322ab41 [libcalamares] Use more descriptive variable name
- If the test failed, you'd get a cryptic message like
	FAIL!  : NetworkTests::testPing() 'r' returned FALSE. ()
   So rename the variable so the failure mode is more obvious.
   (Could have used QVERIFY2() instead, this is simpler)
2020-02-14 13:23:19 +01:00
Adriaan de Groot
f6526f7d9f [libcalamares] Add some tests for CreationResult
- More important is the compiler warning that will show up
   if we add more failure states.
2020-02-14 13:21:16 +01:00
Adriaan de Groot
274115c727 [libcalamares] Update tests to reflect changed API 2020-02-14 13:07:29 +01:00
Adriaan de Groot
2d7398161d [libcalamares] More detail for createTargetFile()
- Return a result-object with statrus information and the path
   which was previously used (empty for "failures").
2020-02-14 13:03:51 +01:00
Adriaan de Groot
d931b146e3 [partition] Shuffle new conveniences into partition service
- the general stuff from KPMHelpers ends up in the partition
   service; that only gets compiled when KPMCore is available anyway.
2020-02-13 13:48:12 +01:00
Adriaan de Groot
e72ecaafd3 Merge branch 'kpmcore-manager'
Introduces a "partitioning service" into libcalamares,
shuffles a bunch of things into it, tries to help out
with settling the system between partitioning actions.
2020-02-13 13:41:53 +01:00
Adriaan de Groot
c7780db07a Merge branch 'model-q'
- Make models of some things previously held as lists, as
   prep-work for QML modules.
2020-02-12 14:08:07 +01:00
Adriaan de Groot
ca13d1670e [libcalamares] Merge more from Camilo
- Complete the model for locales
2020-02-12 13:40:59 +01:00
Adriaan de Groot
59ddda6225 Merge branch 'wrangle-boost' 2020-02-12 12:44:09 +01:00
Adriaan de Groot
9408601074 [libcalamares] Move Python wrapper
- Take the Python wrapper for GlobalStorage out of the GlobalStorage.h
   header and add it to PythonHelper instead, saving some work in
   all the cases that only GS is interesting, not the Python bits.
2020-02-12 12:37:43 +01:00
Adriaan de Groot
a11280b427 [libcalamares] Expand tests for printable entropy 2020-02-12 12:22:02 +01:00
Adriaan de Groot
090716ba4f [libcalamares] Warnings-- in Entropy
- reading a file yields a qint64
 - need to mash the unsigned data from twister to signed char data.
2020-02-12 12:15:13 +01:00
Adriaan de Groot
7efed8226c [libcalamares] Warnings--, update copyright 2020-02-12 12:10:58 +01:00
Adriaan de Groot
c1151cbcfa [libcalamares] Update copyright info 2020-02-12 12:08:46 +01:00
Adriaan de Groot
8181808bec [libcalamares] Fix build
- drop now-obsolete boost-warnings.h
 - add missing namespace alias to GlobalStorage.h (removed accidentally
   in previous commit)
2020-02-12 11:25:10 +01:00
Adriaan de Groot
3b35ca7bb9 [libcalamares] Simplify includes
- PythonHelper.h already pulls in all the Python machinery
2020-02-12 11:04:15 +01:00
Adriaan de Groot
95722541d0 [libcalamares] Untangle Python includes
- Use BoostPython.h to manage overall includes
 - Remove local home-grown variations
2020-02-12 11:02:38 +01:00
Adriaan de Groot
f8998834cf [libcalamares] Simplify includes (no Python used in JobQueue) 2020-02-12 10:55:36 +01:00
Adriaan de Groot
d42e757576 [libcalamares] Simplify includes
- CalamaresVersion used by the job, not the API presented to Python.
 - Untangle Qt includes from there.
2020-02-12 10:48:19 +01:00
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
Adriaan de Groot
66ee6ac673 [libcalamares] Fix tests for umask != 022
- My usual test environment has umask set to 022, but on one dev
   box it is 002, leading to test failures (which show the test
   was bad, not that the umask-setting code is bad)
2019-08-30 06:35:53 -04:00
Adriaan de Groot
9053b9cecf [libcalamares] Fix Qt 5.9 compatibility
- not really sure why I went for the Qt 5.10 STL-style iterators

FIXES #1236
2019-08-30 06:20:45 -04:00
Adriaan de Groot
f1971eed86 [libcalamares] Support calling a slot on retranslation
- sometimes a slot is easier than a lambda. Introduce
   a macro CALAMARES_RETRANSLATE_SLOT that calls a given
   slot in an object on language change.
 - extend the retranslator with support for calling slots:
   - use Qt's signal/slot mechanism alongside the private
     list of functions to call
   - provide convenience for obtaining the retranslator of
     an object.
2019-08-29 14:53:03 +02:00
Adriaan de Groot
eb21c90861 [libcalamares] Avoid implicit 0-to-flags conversion
- clang complains about using 0 as a Flags value, so make the
   default (empty) initialization explicit.
2019-08-26 21:42:27 +02:00
Adriaan de Groot
6fb909a799 Merge branch 'networking-service' 2019-08-26 15:49:09 +02:00
Adriaan de Groot
a1b0049bbf [libcalamares] Use more readable names 2019-08-26 15:41:30 +02:00
Adriaan de Groot
e2c6591a77 [libcalamares] Refactor request internals
- distinguish timeouts from other failures
 - git synchronousPing() a more detailed result, which is
   still bool-compatible.
2019-08-26 15:24:58 +02:00
Adriaan de Groot
f0be7fd4aa [libcalamares] Make failures in the internal methods obvious
- internally, timeout and error will return nullptr
2019-08-26 14:43:41 +02:00
Adriaan de Groot
87ea14f68a [libcalamares] Drop INTERFACES again
- The compile failure came from bad #include paths, so restoring
   this interface declaration wasn't a fix.
 - Reported to cause runtime failures on both KaOS and Manjaro.
2019-08-26 10:15:22 +02:00
Adriaan de Groot
ededebbc6c [libcalamares] Return reply early if the request is bad 2019-08-24 15:23:07 +02:00
Adriaan de Groot
d422c782ba [libcalamares] Correct include path
- no need for the subdirectories, and this confuses MOC

Reported-by: Jonathan Riddell
Fix-by: Harald Sitter
2019-08-23 17:15:51 +02:00
Adriaan de Groot
85f0d38698 [libcalamares] Refactor synchronous get
- Add timeout support
 - Refactor into a static helper method
2019-08-23 14:59:35 +02:00
Adriaan de Groot
1f2b3b734d [libcalamares] Extend synchronous API with options 2019-08-23 12:18:59 +02:00
Adriaan de Groot
af1aa701bc [libcalamares] Shuffle namespace lines around
- put all the definitions inside namespace {} to avoid
   needlessly long source lines.
2019-08-23 12:09:30 +02:00
Adriaan de Groot
8ea1ea6662 [libcalamares] Add synchronousGet() to network service
- Synchronous download of a given URL; not something to
   do from the GUI thread.
 - Use it from the GeoIP service, which downloads in a
   separate thread to do GeoIP lookups.
 - Drop now-unused headers.
 - Adjust tests for GeoIP to use network service
2019-08-22 16:11:26 +02:00
Adriaan de Groot
0b2855d6e0 [libcalamares] Fix build (bad class name) 2019-08-22 10:29:39 +02:00