| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
YAML 1.2 was specified in 2009 and 1.1 is considered legacy nowadays.
The default for parsing and emitting unversioned documents is still
1.1, but you will see warnings for unversioned documents that use
features that are not compatible with 1.2.
Starting with AppMan 6.12, the default will switch over to 1.2 for
unversioned documents.
In addition all tags from the core schema are now correctly applied
to both 1.1 and 1.2 documents.
Version 1.1 will still be supported in the future for explicitly
versioned documents.
Change-Id: I6c9920784c8f7650d7e63f2273773d7fa462fe9a
Pick-to: 6.11
Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
All the warnings in the examples came from qt_internal_add_example
in qtbase changing and nobody applying the necessary fixes to the
appman examples.
The bubblewrap example on the other hand just had a package name
that conflicted with QML module conventions.
Change-Id: Id63ccb9b02c16ae581a1796c09d1308f61a85511
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1) Do not compile in absolute paths from the build environment when
cross compiling. Yocto does not like that, plus it just is useless
anyway.
2) Tell the user that he needs to start the appman-package-server on
his desktop machine for the example to work.
3) Switch the appman-package-server from being an 'app' to being a
'tool', as it is only meant to be used on a development machine.
Change-Id: I5f159fafb38aac17f04f73f27405b6ddb8fd6698
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
|
| |
|
|
|
| |
Change-Id: I050cee2f770ee7dd86ca1e52c0c956244ac60853
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
|
| |
|
|
|
|
|
|
| |
That got broken with 3a051f87e50f7c5b9da0c2a0258336c4421edf37
Change-Id: I3d9d49e8dc453cd0d5dccbdba10cae87ae9abfbc
Pick-to: 6.10 6.8
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
All suid-root binaries are dangerous if not setup correctly.
This here is a better way to avoid these inherent problems, while still
being able to use the appman's built-in sudo-helper with minimal
changes.
Pick-to: 6.10
Change-Id: If13507e226a57b16659c89599497735f2df128ad
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
|
| |
|
|
|
|
|
|
|
| |
This makes sure the example are shown under 'Embedded' in Qt Creator's welcome screen,
and not under 'Other'.
Pick-to: 6.9 6.10
Change-Id: Ib4f39f9ddc65b70d5f6b3cd7ea36ecdf7157b99f
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- Fixed the wayland output's window (Window attched property is only
available on Items)
- Prevented warning and crash at exit, by removing all client surfaces
before termination
- Made text wrap again properly in window
Change-Id: Iad9adcaa800dae599f1420e4c91ab02f9a77d66f
Pick-to: 6.10 6.9 6.8
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
| |
|
|
|
|
| |
Change-Id: I4ec8eba083503f4318cc896f8e3f571f6234a2a3
Pick-to: 6.10
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
|
| |
|
|
|
|
|
|
|
|
| |
Bubblewrap container has runtime dependency for bwrap, adding separate
config for the feature lets us disable it if bwrap is not available.
Task-number: QTBUG-136961
Pick-to: 6.10 6.9 6.8
Change-Id: I03c3ce4e351699bbeb6d08a002b36d774c1fa9b5
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The plugin names that are no compliant with C++ indentifiers are
not allowed. Add the explicit CLASS_NAME definitions, that avoid
using the prohibited symbols.
Also fix documentation, that it doesn't ecourage the use of dashes
in the plugin target names.
Pick-to: 6.8 6.9
Task-number: QTBUG-135860
Change-Id: I9b80818756d6685d5c19ad50f82dad99fdd66aa7
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This is necessary, because some bwrap command line options are position
dependent in relation to other options.
Old, unordered configurations are still accepted, but a warning is
printed that a conversion is needed.
Change-Id: Id24a1836c7568422767c0f9ed54e65101abd0b64
Pick-to: 6.9 6.8
Fixes: QTBUG-133605
Reviewed-by: Dominik Holland <dominik.holland@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>
|
| |
|
|
|
|
|
|
| |
FrameContentTracker helps with detecting non-visible animations or
Wayland clients that are rendering off-screen only.
Change-Id: I827179f76df75e96b7c5dd6742fc2240cd79fd71
Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Our cmake setup on Windows creates all DLLs in the top-level build
directory, but we explicitly need the app modules in the respective
app directories.
Also, the Widgets app does not make sense (and cannot work) in
single-process mode, so there's no point in building it.
The Glitches app in addition was not able to import the additional
module, because it was named the same as the app module. Instead of
renaming the second module, the functionality was folded into the
app module in order reduce confusion: the Crash app already shows
how to have another private module inside the app.
With no Wayland available, the Compositor app doesn't make sense, so
the actual implementation got moved into a component and the app now
just shows an error message if that component cannot be loaded.
Change-Id: I3812d4e1205264c73f36a74e573477f70ed3be7b
Pick-to: 6.8 6.8.1
Fixes: QTBUG-130388
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* The fps bar graph should have been aligned at the bottom, but
ListView delegate x/y positioning changed in Qt 6.
* The combination of QAIM::beginMoveRows and QML's ListView results
in a steady ~7 fps render load (with spikes into the 60s), even
with no move animations enabled.
Switching to manually calling layoutChanged gets us back to 1 fps.
* The dataChanged signal for a new datapoint was emitted for the
wrong model index.
Change-Id: I1969b08f36ebfebb4f51cc32cc6d7745ef96e78e
Pick-to: 6.5 6.8 6.8.1
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>
|
| |
|
|
|
|
|
|
|
|
|
| |
It seems that a Unix-only include was not used in this example while
not being excluded from Windows builds. Remove the useless include to
solve the problem.
Fixes: QTBUG-129814
Pick-to: 6.8
Change-Id: I810d5ed1e1138ce7f21f6bff4e9de7bce4072869
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
| |
|
|
|
|
|
|
| |
In a toplevel build there is another target called "Widgets",
unsurprisingly.
Change-Id: Ic0fa056e1a8fb49b0a23bb60357c8dd98fff209b
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
| |
|
|
|
|
| |
Change-Id: I3bd2bde0ffc04e57ae852c92828626f97e04a0f6
Pick-to: 6.8
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
| |
|
|
|
|
|
|
|
|
| |
Install destinations for BUNDLE and LIBRARY are
needed for android and ios deployment.
Change-Id: I8370e3155534f9d0c99c9ea1ca6ecbe2e1543884
Pick-to: 6.8
Fixes: QTBUG-127933
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
|
|
|
|
|
|
| |
Also fixed some docs that still reference qmake functionality.
Pick-to: 6.8
Change-Id: I9244248b3a6252ef10cbd44c6e51de01ca22b2d6
Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
|
| |
|
|
|
|
|
|
|
| |
This app allows to experiment with the newly added watchdog
functionality.
Change-Id: Ia1c6a66a95317b9d92b967e481708d8c59c0efba
Pick-to: 6.8
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
| |
We still track the different states the render thread might get stuck
in, but there is now only one timeout value that is used for all
states.
This makes it easier to configure and also brings the config more in
line with the other watchdogs.
Change-Id: Icc641d22db1cf216a8c4a7e93e08db5584d8de3d
Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
|
| |
|
|
|
|
|
|
| |
Qt::AppManApplicationMainPrivate wasn't found when built separately.
Change-Id: I6b047247d9fde6a944c90ad5e5ff884f58355d17
Pick-to: 6.8
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
| |
|
|
|
|
| |
Change-Id: Ia4cf62be2e793ccab269b64d7188c9202b160360
Pick-to: 6.8
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
|
| |
|
|
|
|
| |
Change-Id: I9ce57210aba5ff110c3a8c35f4235ba005ac5465
Pick-to: 6.8
Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
|
| |
|
|
|
|
|
|
|
|
| |
The new installable.pink package contains QML code
compiled into library and shows how this can be
packaged using the CMake API.
Pick-to: 6.8
Change-Id: Icf7b1f7e92d070c1fe623ef0dc1ddc476722c41a
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* Use new CMake API
* Add a main.cpp to every example
* Compile the system-ui and am-config.yaml into the every binary
* Compile all apps in the application-feature example into binaries
* Use the new package CMake API in all examples
Pick-to: 6.8
Change-Id: I97112bde1631c142a65824f30233835076f6cab6
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The improved API takes care of copying and installing
the files into the correct directories and adds
support for DEPENDENCIES.
For installable packages the function now takes care
of copying the files into the package directory
and now also supports packaging binaries.
Pick-to: 6.8
Fixes: AUTOSUITE-1336
Change-Id: Ie3665df7e0e860c0f7a449d3f22d0b55e6709b9c
Reviewed-by: Robert Griebl <robert.griebl@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>
|
| |
|
|
|
| |
Change-Id: I6ee4c7d92adb19de26d7076eeb52d134650188ab
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This replaces the existing Wayland ping/pong watchdog with a new setup
that monitors:
- Wayland XDG clients (on a per-client basis, not per-surface as
before)
- The main event loop
- All scene-graph render threads, split up into the states: syncing,
rendering and swapping.
Each of those sub-watchdogs has a configurable check interval, a warn
timeout and a kill timeout.
In addition, this watchdog can also handle watchdog request coming from
systemd, if the AM is started via a systemd unit with the relevant
options enabled.
The documentation will come in a follow-up commit.
Fixes: QTBUG-125986
Change-Id: I3d50a0d33625c180965eed98b24c80dc7cf9dece
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>
|
| |
|
|
|
|
| |
Change-Id: I025c9d9c0086aedfaab96ee771eac5f3422201c6
Pick-to: 6.7
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- In am-configs, use QStandardPaths to avoid creating a mess in the
filesystem on Windows.
- In the C++ code, we really should be using $XDG_RUNTIME_DIR on
Linux nowadays.
While at it, the /tmp (and /run) subdirectories used by the appman
have been harmonized and made less cryptic.
Change-Id: Iab71aff81333653fb12bcecd3e94767b64f2c818
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
|
| |
|
|
|
|
| |
Change-Id: I2f47a7b41fd67574161f573586df3acc7e869cf4
Pick-to: 6.7
Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
|
| |
|
|
|
| |
Change-Id: I92238b01155a2e43b8877576faf603957dcb95ba
Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
All examples should be added via qt_internal_add_example instead of
add_subdirectory, to support building examples as ExternalProjects as
well as support example sources installation.
Pick-to: 6.6 6.7
Task-number: QTBUG-90820
Task-number: QTBUG-123096
Change-Id: Ia307f57beeaf9e7b15605f3b53f39e7983afa144
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
| |
|
|
|
|
|
| |
Change-Id: If225fd8e4aaff922375f96c573a7996e8ed21f74
Pick-to: 6.7 6.6 6.5
Fixes: QTBUG-123088
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>
|
| |
|
|
|
|
|
|
| |
Change-Id: I1805fbccf4d9398fddfe8f4ab977236afc49ca45
Fixes: QTBUG-122951
Pick-to: 6.7
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
|
| |
|
|
|
|
| |
Change-Id: Iec21d4b347d7d5353206fda84737571510678640
Pick-to: 6.7
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
|
| |
|
|
|
|
|
|
|
| |
This is only the case, if the example is started via the generated
.bat/.sh wrapper.
Change-Id: I9f9ea0c54547c5be2a37ad3683755399e053ea1f
Pick-to: 6.7
Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
|
| |
|
|
|
|
|
|
|
|
| |
In case of an installation via the Creator integration, installations
get automatically acknowledged and we can close the acknowledge dialog
in this situation.
Change-Id: I6478fdb820a3d675862d971999d4840638f9d1b7
Pick-to: 6.7
Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
|
| |
|
|
|
|
| |
Change-Id: If8164dbb08bcc7cf7fe56d7e93dd37f32603a03a
Pick-to: 6.7
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
|
| |
|
|
|
|
| |
Change-Id: I0f80790ae654c35ec85f4bd0e62da06c17223298
Pick-to: 6.7
Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
|
| |
|
|
|
|
|
|
|
| |
This will be in TP for 6.7 until we gain more experience with the new
QtCreator integration.
Change-Id: I9a9efac81a9f6d4994be6e47fee3090fe75d181a
Pick-to: 6.7
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
|
| |
|
|
|
|
|
|
|
|
| |
The application-features example has been enhanced with QML modules.
This adds the missing documentation.
Change-Id: I8e04f66f63ab057b904f3a0436d0a84eba261620
Pick-to: 6.7
Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io>
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|