| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is part 2 of this patch series. Part 1 was about converting the
libs from static to shared.
This patch now consolidates the library zoo into more manageable and
logical chunks. Plus this will also help with keeping the hit to the
startup performance (incurred by part 1) in check.
The new setup closely follows the QML module nomenclature, but needs
to account for the tool builds as well.
The new libs are:
- Common no changes
- Package a combination of Package, Application and Crypto
- Shared renamed from SharedMain and combined with Monitor and
IntentClient
- SystemUI renamed from Main and combined with Manager, DBus,
IntentServer and Window
- Application renamed from ApplicationMain
Because the CrashHandler is using a "constructor" function, it had to
be moved from the Common to the Shared lib to avoid having the custom
crash handler also in the tools, as they need to install their own
CTRL+C handler at times.
In addition the 3 QML import modules are now built as official QML
plugins and they are installed into $QTDIR/qml as any other import
library.
NB! There is a problem we still have to solve: custom appman binaries
(system-ui's) are currently built by linking against Qt::AppManMain,
but this no longer exists. It would be ideal if we could add an alias
here. The other renamed modules are not that problematic, as they
shouldn't be used outside of the appman project itself.
If an alias is not possible, a dummy library which depends on the new
"SystemUI" one should also do the trick.
Change-Id: Id07e05a523c48e773c295c5be2f27804229155e0
Pick-to: 6.11
Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before you would not see any output, if an error occurred before the
complete config parsing finished successfully ... unless you knew
that there is the obscure --log-instant command line option.
I have no idea if there was a legitimate reason why Main inherited
SharedMain as "protected" instead of "public", but this was most
likely just an oversight when refactoring.
Change-Id: Ib9e7827819122a8fa53f1732b606e7ace9422428
Pick-to: 6.8 6.9
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This ensures (a) a clean immediate exit in case of startup failures
and (b) it also suppresses the new "unexpected exit" message.
(Also fixed an unwanted line-break that messes up the quoting in the
documentation)
Change-Id: Ic931070aba2ee6c2f155507007a1482a95387a49
Pick-to: 6.8 6.8.1
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Any argument given to the macro will be forwarded to the contained
QtAM::Configuration constructor.
Change-Id: I52bfa65461ef0b8b6af0408fc966f1921f80dc7a
Pick-to: 6.8
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a bit of a kitchen sink commit for a lot of things touching
the YAML parsing code. Splitting it up would have been a nightmare
though and touched a lot of code lines multiple times.
- Adding a new field to the YAML confguration was quite involved:
1) add it to the parser in loadFromSource()
2) add it to loadFromCache()
3) add it to saveToCache() (same order as in step 2)
4) add it to merge()
5) bump dataStreamVersion()
6) add one or more public getter function(s) to Configuration,
depending on the complexity of the data-type.
In order to get around this problem, a lot of fields just
used an un-typed QVariantMap.
This patch eliminates step 3) and 6)
loadFromCache() and saveToCache() now use a common serialize()
function and some template magic to do both tasks.
- The YAML file is now mostly resembled by a publicly accessible
nested struct of structs: this makes the code (a) more readable
(as the C++ code matches the YAML structure) and (b) does away with
the gazillions of getters.
- This was also the perfect time to finally use a real data structure
for the OpenGL config, replacing the QVariantMap hack.
- While at it, the actual field parsing was made a lot more readble:
- got rid of the unnecessary YamlParse* lambda arguments
- added helper parseFoo() functions to make code more concise
- used the same parseFields(<temp list>) syntax everywhere
- added specialized parsing for time duration values
Change-Id: Ia811056f7220bf7509af146f69f99c6f7e4b09ea
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Uncaught exceptions thrown after we call exec() are originating
from user code and we should not be catching those in our top-level
catch handler. This will just print "ERROR: <what()>" without any
context and make it look like the error is coming from the AM itself.
Instead we need to run the event loop without a try/catch handler, so
stray exception from user code go directly to our set_terminate handler
in the CrashHandler class, which preserves as much context as possible
and prints out a lot more useful meta data for debugging.
Change-Id: Icc0432d5a6c5db85de439cafab89d05aa88b5891
Pick-to: 6.7 6.6 6.5
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Replace all our custom qSL/qL1S/qL1C macros with standard C++ and
QString unicode string literals.
Change-Id: I9e0b69fb46525421f408f260518a69b8f8125d99
Pick-to: 6.7
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
|
| |
|
|
|
|
|
|
|
|
| |
- all necessary steps that had to occur in user code before the Main
c'tor are now done implicitly via a preConstructor function in Main
- a QT_AM_MAIN() macro was added which will be used to actually compile
our examples in an upcoming commit
Change-Id: I9a3b3eb7dd54702f3c797ee3d58f55a6067d9466
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
| |
This way we do not have to guard all locations where sudo.h is
included.
Also fix missing or superfluous includes.
Change-Id: Icbf7133662fa49a037322cd49b843f14fe7e16a4
Pick-to: 6.6 6.5 6.2
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Replace the current license disclaimer in files by
a SPDX-License-Identifier.
Files that have to be modified by hand are modified.
License files are organized under LICENSES directory.
Pick-to: 6.4
Task-number: QTBUG-67283
Change-Id: I09660e42dea769d720ff30e652485d9861cea965
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
| |
|
|
|
|
|
| |
Also replaced qSL/qL1S with the original, non-macro versions.
Change-Id: Ied8f4e8ee750ce0f6b7bf7e7800608c2b39c71d1
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Also removed all the SPDX tags and -QTAS license extensions.
Change-Id: Ibd10fe37afcbba832831d027cf2f1891ca0226c0
Fixes: AUTOSUITE-1648
Fixes: AUTOSUITE-1646
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Also adds a complete auto-test to not only test the generic, low-level YAML
parsing and merging, but also the concrete implementation in Configuration.
Change-Id: Idd7057af39423a57aa7b5100b41cb7c34a0da336
Task-number: AUTOSUITE-1620
Reviewed-by: Bernd Weimer <bernd.weimer@pelagicore.com>
|
| |
|
|
|
| |
Change-Id: I86926f03e616aeefd680dd9650eb551eb335f4fb
Reviewed-by: Bernd Weimer <bernd.weimer@pelagicore.com>
|
| |
|
|
|
|
|
|
|
|
| |
Instead of requiring the boilerplate setup call to be copied into each and
every system-ui, we do the setup now implicitly in the Main constructor.
(Calling it explicitly beforehand doesn't hurt though)
Change-Id: I549288397d397330af1733f8982666c54b4724cd
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
|
| |
|
|
|
|
|
|
|
|
| |
The existing caching mechanism for config files was abstracted and extended, so
that it could be re-used to parse and cache the info.yaml files. This results
in a much more robust application database and should get rid of 99.9% of all
the -r/--recreate-database option usages.
Change-Id: Ic37fcd3b0e55d481712d469b6e331b9c433a9c5d
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
|
| |
|
|
|
|
| |
Change-Id: I84bbd9e7f735ed1864804a9887d3a02b7c925e53
Reviewed-by: Vladimir Minenko <vladimir.minenko@pelagicore.com>
Reviewed-by: Bernd Weimer <bernd.weimer@pelagicore.com>
|
| |
|
|
|
|
|
|
|
|
|
| |
This was deliberately left out of the first patch that introduced the package
abstraction.
As a side effect, the classes from the installer-lib had to be moved to the
manager-lib, because the PackageManager is now a central part of the AM, that
has to have access to other classes in the manager-lib.
Change-Id: I94c1e62d3ffa769f3e053aab8730fea9133a7bc8
Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
|
| |
|
|
|
|
|
|
| |
This is part 1 which is missing doc updates and missing the update-builtin-
applications functionality. Both will be added in a follow-up commit.
Change-Id: I2b493cfb7585143962067674690b02cc132ef78b
Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
|
| |
|
|
|
| |
Change-Id: I861bd4167d8676c36e8f40c9acd35b17436ac6ff
Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When running auto-tests or appman tools in a shell with
LC_CTYPE/LC_ALL not being set or being set to a non-UTF-8 value, libarchive
will not be able to read a from an archive with UTF-8 encoded names.
We're now using the same code path as on Linux to detect and workaround these
situations.
In addition, a DeploymentWarning is generated if the default locale is not
suitable.
(also needed to fix the custom appman example and its docs)
Change-Id: Ib2936fafead518a66efffc2e7bedceb7c46836d3
Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
|
| |
|
|
|
|
|
|
| |
- added 2019
- everything is (c) Luxoft instead of Pelagicore from now on
Change-Id: I82f874f0b0601deae1bb39347821edaf3c4cc6d8
Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
|
|
|
- Only the project files and wrapper scripts were being installed
- They were being put directly into Qt's example dir. They should be grouped
into a applicationmanager subdirectory there, similarly to what other
modules do.
Task-number: AUTOSUITE-591
Change-Id: I1da6b28a8fe2e9210ad109309d30dfc1ad0d1e99
Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
|