May I ask what keeps you from uploading the app to the OpenStore? I think it is useful the way it is right now.
@alan_g installed Ubuntu 16.04 on my notebook directly via Ubuntu Touch (ISODrive is a great tool). Unfortunately the situation here is worse than in my VM on an Ubuntu 20.04 host. I guess the outdated
amdgpu for my Radeon Vega 8 Graphics in Ubuntu 16.04 is to blame. The demo runs like in the VM, the same unit test fails, but many smoke tests fail:
I: mir_demo_client_camera I: mir_demo_client_tooltip I: mir_demo_client_eglsquare I: mir_demo_client_eglplasma I: mir_demo_client_eglstateswitcher I: mir_demo_client_target I: mir_demo_client_scroll I: mir_demo_client_cursors I: mir_demo_client_egltriangle I: mir_demo_client_egldiamond_render_surface I: mir_demo_client_display_config I: mir_demo_client_eglcounter I: mir_demo_client_touch_validator I: mir_demo_client_animated_cursor I: mir_demo_client_pointer_confinement I: mir_demo_client_input_shapes I: mir_demo_client_eglflash
So I guess best is to switch back to my VM? Is the failing tests something I could ignore for now?
I was hit by this bug. Now with 3D acceleration enabled most of the smoke tests succeed. Only
mir_demo_client_eglplasma still failes. And the unit test I mentioned above continues to fail as well. Will test on separate installation without VM this weekend.
MIR_SERVER_CURSOR=null QT_QPA_PLATFORM=mirserver qmlscene qml-demo-shell/qml-demo-shell.qml works partially. The circle rotates, but the mouse cursor is not visible and clicking the scale buttons results in
file:///home/miroil/qtmir/demos/qml-demo-shell/qml-demo-shell.qml:28: Error: Unknown method parameter type: FormFactor.
I: The following clients failed to execute successfully: I: mir_demo_client_prerendered_frames I: mir_demo_client_animated_cursor I: mir_demo_client_render_surface I: mir_demo_client_basic I: mir_demo_client_flicker I: mir_demo_client_fingerpaint I: mir_demo_client_release_at_exit I: mir_demo_client_eglstateswitcher I: mir_demo_client_wayland I: mir_demo_client_target I: mir_demo_client_tooltip I: mir_demo_client_eglsquare I: mir_demo_client_cursors I: mir_demo_client_egldiamond_render_surface I: mir_demo_client_egltriangle I: mir_demo_client_chain_jumping_buffers I: mir_demo_client_touch_validator I: mir_demo_client_wayland_egl_spinner I: mir_demo_client_progressbar I: mir_demo_client_camera I: mir_demo_client_prompt_session I: mir_demo_client_multiwin I: mir_demo_client_scroll I: mir_demo_client_display_config I: mir_demo_client_screencast I: mir_demo_client_eglcounter I: mir_demo_client_multistream I: mir_demo_client_input_shapes I: mir_demo_client_eglplasma I: mir_demo_client_eglflash I: mir_demo_client_pointer_confinement I: Smoke testing complete with returncode -1
I am using VirtualBox. I am not sure how to apply the suggestions in the link. Which VM solution would you suggest? Otherwise I'll install the system again on a separate partition without VM.
pkg-config lists the include dir correctly (
/usr/local/include/miroil). I also printed the include dirs in CMake and the directory was there. Running make with
VERBOSE=1 shows that it does not get passed to the compiler for some reason:
cd /home/miroil/qtmir/cmake-build-debug/tests/modules/SurfaceManager && /usr/bin/c++ -DGTEST_VERSION_MAJOR=1 -DGTEST_VERSION_MINOR=7 -DGTEST_VERSION_PATCH=0 -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_DISABLE_DEPRECATED_BEFORE=0x050900 -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_QML_LIB -DQT_QUICK_LIB -DQT_SENSORS_LIB -DQT_TESTCASE_BUILDDIR=\"/home/miroil/qtmir/cmake-build-debug\" -DQT_TESTLIB_LIB -DQT_USE_QSTRINGBUILDER -DQT_USING_OPENGL -I/home/miroil/qtmir/cmake-build-debug/tests/modules/SurfaceManager -I/home/miroil/qtmir/tests/modules/SurfaceManager -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/libdrm -I/home/miroil/qtmir/tests/include -I/home/miroil/qtmir/src/common -I/home/miroil/qtmir/src/platforms/mirserver -I/home/miroil/qtmir/src/modules -I/home/miroil/qtmir/tests/framework -isystem /usr/local/include/miral -isystem /usr/local/include/mirclient -isystem /usr/local/include/mircookie -isystem /usr/local/include/mircore -isystem /usr/local/include/mirtest -isystem /usr/local/include/mirserver -isystem /usr/local/include/mirplatform -isystem /usr/local/include/mircommon -isystem /usr/local/include/mirrenderer -isystem /usr/include/uuid -isystem /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/x86_64-linux-gnu/qt5/QtDBus -isystem /usr/include/x86_64-linux-gnu/qt5/QtQml -isystem /usr/include/x86_64-linux-gnu/qt5/QtNetwork -isystem /usr/include/x86_64-linux-gnu/qt5/QtQuick -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtFontDatabaseSupport/5.12.9 -isystem /usr/include/x86_64-linux-gnu/qt5/QtThemeSupport/5.12.9 -isystem /usr/include/x86_64-linux-gnu/qt5/QtEventDispatcherSupport/5.12.9 -isystem /usr/include/x86_64-linux-gnu/qt5/QtEglSupport/5.12.9 -isystem /usr/include/x86_64-linux-gnu/qt5/QtServiceSupport/5.12.9 -isystem /usr/include/x86_64-linux-gnu/qt5/QtSensors -isystem /usr/include/x86_64-linux-gnu/qt5/QtTest -fPIC -Wall -fno-strict-aliasing -Werror -Wextra -O2 -g -DNDEBUG -fPIC -DQT_GUI_LIB -DQT_CORE_LIB -std=gnu++14 -o CMakeFiles/surfacemanager_test.dir/surface_manager_test.cpp.o -c /home/miroil/qtmir/tests/modules/SurfaceManager/surface_manager_test.cpp
At building QtMir I run into
/home/miroil/qtmir/src/modules/Unity/Application/mirbuffersgtexture.h:20:30: fatal error: miroil/mirbuffer.h: No such file or directory
the file is installed at
/usr/local/include/miroil/miroil/mirbuffer.h. It looks like there is one
miroil too much in there. Or is GCC supposed to find it in a sub folder?
See Documentation for how to build the click with dependencies. You can check which dependencies can be installed from Ubuntu 16.04 Xenial repos in a version that fits the requirement. Maybe you'll find also PPAs to provide them. Otherwise you need to build them yourself.
But all of this is mentioned in the documentation linked above.
Great you solved it. Improved documentation is always a big help!
@aarontheissueguy does it work in Desktop Mode (
clickable desktop)? Could you upload the whole app and clickable config somewhere (e.g. Gitlab) and provide the link?
Marius mentioned he documented how to build the Lomiri stack in the last Q&A. Are those notes available somewhere already?
I think the biggest hassle in the short run is neither packaging nor the store, but the QML framework and System Integration. It is not too hard to have different packaging configurations in your repo and deploy to different stores.
Pure Maps by @rinigus is a great example on how platform independent mobile linux apps can be done. The most interesting part is the platform abstraction in QML, in my opinion. The app assumes some QML files in a folder called platform, which is just an imaginary interface to Elements like a Button, a Dialog, Clipboard or file chooser (aka Content Hub in UT). Adding support to another platform means to create a new platform folder and implement the interface using the specific platform frameworks stuff. The packager then just links the desired platform folder to platform and builds the app.
Now you may wonder whether it is necessary for each and every app developer to implement each platform support over and over again. And of course it is not. That could be done in one place shared by all apps. Someone has already started that meta-framework-project as a spin-off from Pure Maps, which just needs to be explored and picked up by app developers.
Sure, this won't solve all problems like (push) notification and background services. But it should help a majority of all apps to become available on many platforms.
sudo should never be necessary when working with Clickable. I guess the spaces in your path caused the issue. If it persists even without spaces, please file a bug. I'd also suggest you have a look at the Clickable Documentation.
sudo apt install ubuntu-sdk does not help. Clickable comes with its own docker images containing everything it needs.
I didn't touch the README. You downloaded the old 15.04 version. Please build the app for 16.04 using Clickable instead. I don't plan to maintain the app, just wanted to show it is still mostly functional, in case anyone wants to pick it up.
Just my personal opinion: I'd suggest skipping the cross-compiling for now and focus on publishing the app to the Open Store, maybe with a bit of polishing first. I have tried to do the cross-compiling once and it is not straight-forward. Btw, the links on your releases page give 404ers.