Replies: 14 comments 2 replies
-
Status update for October 6, 2021, All platformsSome icons did not load on non Freedesktop operating systems. This is no longer the case, all icons load correctly in all builds of every system, except for Flatpak. LinuxI've solved the low performance issues present in Flatpak builds. Snaps are working perfectly. AppImages had the exact same permissions issues Flatpaks had, which limited performance, and additional issues with using Qt's Material Dark theme, which is required for transparent windows to work across all platforms. AppImage issues are only present when using GNU GCC compiler in Craft, Clang builds, on the other hand, don't show any issues on Craft. To my understanding this is an issue with Craft, not an issue with GCC. Nonetheless, while these problems are fixed upstream, future Linux AppImages of QPrompt will be built using Clang. ARM on LinuxNow that both Flatpak and Snaps make proper use of hardware acceleration, I'll attempt to create a Flatpak build for armhf and arm64 architectures. Snap relies on the kde-neon extension, which only supports the amd64 architecture, therefore, ARM Snaps are not an option unless we package Qt and KF5 inside the Snap, like it's done on Windows. This should be avoided for it drastically increases program and installer size. AppImage won't run on ARM anytime soon due to reliance on the Craft building system and it not directly supporting ARM architecture. Our options here are to run Craft on a Docker environment setup for cross compilation, similar to how it's done for Android builds; or create the AppImage manually, without using Craft at all. In my opinion, the first approach is preferable for it makes use of the existing infrastructure, which saves time that could be spent developing other parts of the software. AndroidQPrompt can now be built for Android on armeabi-v7a and arm64-v8a architectures. arm64-v8a builds have trouble launching. armeabi-v7a have excellent performance on the Pixel 3a in which they were tested and have no trouble launching. For QPrompt to be truly usable on tablets and phones, additional tweaks must be made to the user interface to maximize productivity. A soon to come first Android beta release will reflect these changes. |
Beta Was this translation helpful? Give feedback.
-
Status update for October 7, 2021, ARM on LinuxI was able to backport QPrompt to run on the old Qt 5.12 present in Ubuntu 20.04. Running QPrompt on these libraries results in graphical problems specific to the UI, but the program functions as intended with a few modifications. On an arm64 Jetson Nano, performance is good enough to prompt smoothly on 2 screens at 1920x1080 resolution, using Qt's font renderer. Using the native font renderer increases CPU cost enough to cause small jitter occasionally. A slightly lower resolution or exclusive use of the Qt text renderer is advised on the Jetson Nano and lower spec SoC. Attempts to build QPrompt as a Flatpak on the arm64 architecture were also successful. Because Flatpak ties into its own, up to date, containerized libraries, there were no graphical issues, and no modification was required to run QPrompt on Ubuntu 20.04 with the Flatpak. The only problem with the Flatpak on arm64 is that it is failing to connect to OpenGL for graphics acceleration, giving the following errors on application startup:
This seems to be an issue between Flatpak and the Jetson nano's GPU drivers, and not an issue with QPrompt, because GPU acceleration was confirmed to work with the system libraries, and for Flatpak under the x86 architecture. I'll try getting another distro running on the Jetson nano, but I doubt much progress will be made, because driver support is limited to a few kernel versions. |
Beta Was this translation helpful? Give feedback.
-
Status update for October 10, 2021, Linux AppImageThe AppImage specific issues mentioned on October 6, 2021 have all been fixed upstream. See bug report 443416 on KDE Craft for details: https://bugs.kde.org/show_bug.cgi?id=443416 ARM on LinuxSince Flatpaks work on ARM but OpenGL connection cannot be guaranteed at the moment, I proceeded to attempt the creation of distro specific Debian and RPM packages, targeting Ubuntu 21.04 and Fedora 33 distributions. I was able to get a build made on KDE neon install and run on Ubuntu 21.04, automatically satisfying package dependencies. This means it is be possible to build a deb package for Ubuntu 21.04 arm64 and have these run on a Raspberry Pi 4 model with at least 4 GB of RAM. I still need to get an RPi 4, but I'll try getting Ubuntu 21.04 working on the Jetson nano in the meantime. I was not able to get the RPM to install on Fedora x86 due to package conflicts with icon directory structure. |
Beta Was this translation helpful? Give feedback.
-
Status update for October 31, 2021, Linux DEB on ARM64 Raspberry PiI was able to successfully build and install a Debian package for Ubuntu 21.04 on the Raspberry Pi 400. 4 GB of RAM are not enough to successfully compile QPrompt due to the large size of some of its assets. I ran the commands from a TTY, with no active desktop environment nor window manager active for the build to succeed. Performance on the RPi was lower than expected, but more consistent than Imaginary Teleprompter's. OpenGL acceleration seems to be in place. I suspect the lower frame rates are due to the low specs of it's GPU. On the bright side, duplicate screens resulted in no mayor performance drop, which is impressive given how costly and CPU based this operation is in QPrompt. |
Beta Was this translation helpful? Give feedback.
-
Status update for November 12, 2021, Linux DEB on ARM64 and Android builds are outBinaries are now available for arm64 Ubuntu 21.04 and Android at:
|
Beta Was this translation helpful? Give feedback.
-
Quick update: After modifying package dependencies, the Ubuntu 21.04 DEB I linked to in my previous comment now works for both the 64 bit version of Raspberry Pi OS Bullseye and Ubuntu 21.04. There won't be support for the regular 32 bit version of Raspberry Pi OS for now, until I can figure out how to cross compile it, because the program can't be built on the system due to the limited amount of virtual RAM that can be allocated under 32 bits. |
Beta Was this translation helpful? Give feedback.
-
Quick update: Windows version now loads icons like all other OS, making beta-005 feature complete for the 1.0.0 release. |
Beta Was this translation helpful? Give feedback.
-
I'm going to close this issue now that all the platforms and architectures I wanted to support for the 1.0 release are being supported. Android, iOS and WASM support is far away. Android is the closest but I don't expect to be able to make an iOS build before 2023 because the Kirigami framework must support Qt 6 before I can successfully port to iOS. The same is true about compiling for M1 Macs, but QPrompt works flawlessly through Rosetta. In the meantime, I'll continue to improve the mobile experience on Android and on Linux distros for mobile devices. |
Beta Was this translation helpful? Give feedback.
-
I'm adding Flatpak support for amd64 and arm64 architectures. The following command will install the Flatpak for version 1.0.0 on Linux systems of either architecture that support Flatpak.
|
Beta Was this translation helpful? Give feedback.
-
QPrompt is out and available as a Flatpak for both amd64 and arm64 architectures: |
Beta Was this translation helpful? Give feedback.
-
Bugs I've reported to Craft, the software used to make QPrompt's build pipeline on Windows, macOS, Android, and Linux for the AppImage, that are currently difficulting or prohibiting QPrompt's distribution in some platforms:
|
Beta Was this translation helpful? Give feedback.
-
QPrompt running on Haiku OS. It has a few bugs, so I won’t be releasing this yet, but it’s amazing that it performs so well given that it’s running from a VM. |
Beta Was this translation helpful? Give feedback.
-
Hello! I wanted to let you know that I have uploaded a source package of QPrompt to be officially included as part of Ubuntu's repositories! This will allow people to simply install QPrompt from either the software store for their various flavor of Ubuntu or the command line with the simple The reason I'm posting here is because I noticed your notes on the arm builds. While armhf has built in the past (I did so back in December with 1.2 on what eventually became Ubuntu 23.04), today it was a bit problematic as you can see from my logs. This shouldn't prevent inclusion as you've mentioned arm builds being somewhat experimental anyhow, but I thought I'd share my findings and data with you. Further findings were a few issues in the overall file structure, a missing manpage, and a small issue with the .desktop file:
The problems involving the .desktop file were easily mitigated by making a patch to remove the first line of the .desktop file, which isn't even necessary as no desktop environment uses that to execute the .desktop file anyhow. .desktop files are merely informational to indicate to the desktop environment where to find the icon, what to execute, what to name the icon, and what its long description is, and is never executable in and of itself. The problem with /usr/share/locale/LC_MESSAGES seemed strange to me as something left-over from the build process that didn't get deleted but got picked-up by the Debhelper build system, so I did an override to delete it. Problem solved, but this might be a bug. With the error involving /usr/doc, that one seems to be a larger problem where your build system is instaling files to /usr/doc/qprompt and not the more modern /usr/share/doc/qprompt as requried on modern Linux systems. I told the build system to move everything there, but this may be a bug worth fixing. As far as the manpage, I did find you have a Anyhow, those are my findings. Excellent application, and while it's too late for me to include in Ubuntu Studio's .iso image (Feature Freeze was Thursday), I look forward to including it in the future! Either way, I do plan to announce its availability in the Ubuntu repositories. :) |
Beta Was this translation helpful? Give feedback.
-
Hello Erich, Alright! This is great news! I've always been a fan of Ubuntu Studio, and it was my daily driver long ago for more than a year, back in 8.10. I'll be going on a business trip over the next couple of weeks, so I won't have time to address the issues until later, but I'm looking forward to this. At the time of writing, QPrompt 1.1.6 is the current stable version, 1.2 is in active development, with testing builds being marked with tags and the binaries being distributed over Patreon. If you ship 1.2 ahead of time, that is fine, just make sure that it is marked as a beta. 1.2 is in a stable state as of early-access-06. My goal is to release v1.2 with more features in early January, using the most current version of KDE Frameworks 5 in the universal packages, and dropping support for Debian 11's. Having said that, it's important to state that, at the time of writing, QPrompt needs a version of Kirigami between 5.78.0 and 5.100.0 to work as intended. Version 1.2 will up the minimum compilation requirement to 5.101.0 or 5.103.0, which should be fine for anything based after Debian 12. The issue with using 5.101.0 or later is that Kirigami removed the action buttons that used to be shown at the bottom of the screen while in full screen, leaving users with no graphical way to control the prompter in that mode. It can still be controlled from the keyboard, but that may be inconvenient for new users. With Ubuntu Studio shipping KDE Plasma these days, it probably makes more sense to ship QPrompt as a deb package, but nonetheless I would like to ask: Would it be possible to ship QPrompt as a Snap package instead? I've have had issues 5 times, where KDE changes behaviors or introduces bugs to the Kirigami framework that negatively impact the experience of QPrompt users. This sometimes requires me to re-write functionality in ways that can work for users of old and new distributions alike. With universal packaging formats, I can fix the version of KDE Frameworks used to something that I know will work across all platforms, and move to a newer version when QPrompt has been modified to work with them, or the issues with the framework have been resolved. What I would like to prevent is users from getting a buggy release, simply because I couldn't keep up with the newest KDE frameworks. Thanks again for wanting to include QPrompt in Ubuntu Studio and the Ubuntu repositories. I look forward to making it work for both of our user bases. Best regards, |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Help Wanted
Hello! Here are some ways you can help:
QPrompt Dependencies
QPrompt is written using the Qt Framework, which is a native cross-platform framework that supports many platforms. A full list of these platforms is available at:
https://doc.qt.io/qt-5/supported-platforms.html
Besides the Qt framework, QPrompt also uses the following libraries from the KDE community, which at the time of writing can run on the following platforms:
source: https://api.kde.org/frameworks/index.html
Platform Support Goals (updated May 15, 2022)
My personal goal is that we can fully support the following platforms, on the following architectures:
This means making upstream contributions so that the KI18n and KCoreAddons libraries can run on iOS. Plus help maintain Kirigami supported on both macOS and iOS. For this reasons iOS / iPad OS will likely be the last platforms to be supported.
Currently Supported Platforms (updated May 15, 2022)
At the time of writing, I'm creating the following distributable packages for the x86_64 and arm64 architectures:
ARM Support
In relation to ARM architectures, QPrompt depends on the last open source version of Qt 5, version 5.15.2, and this limits on what distros it can run. The choice to use Qt 5.15.2 was deliberate to guarantee that it works well with the KDE libraries of today, while making it very straightforward to port QPrompt to Qt 6 when the KDE libraries are ready for it. Due to this, the Qt versions present on the current Raspberry Pi OS and the Ubuntu 18.04 LTS (used by the NVIDIA Jetson nano) are too old to compile QPrompt.
Several features would be lost in the attempt to backport, so it's simply not worth the time and effort to develop for an obsolete system. What I plan to do instead is install Fedora 34 on my Jetson nano and use that to create the first ARM64 builds. Then for the Raspberry Pi I will wait for the release of the first Raspberry Pi OS developed on top of the brand new Debian 11, and use that to make the ARMhf builds when it becomes available.
Beta Was this translation helpful? Give feedback.
All reactions