<div dir="ltr">Hi,<br><br>As per the flatpak matrix channel, I've drafted a proposal for the Season of KDE project idea to package apps for Flathub.<br><br>Project type: Coding and Packaging<br>Brief explanation: We currently have Flatpaks recipes for a lot of KDE Apps (<a href="https://invent.kde.org/packaging/flatpak-kde-applications">https://invent.kde.org/packaging/flatpak-kde-applications</a>) but only some of them are available on Flathub (<a href="https://flathub.org/apps/search/org.kde">https://flathub.org/apps/search/org.kde</a>). You will work on submitting missing KDE Apps to Flathub while fixing the issues that come up during the submission review. Once you've understood the process better, you may start working on tooling to help maintain KDE Apps as Flatpaks in both Flathub and KDE CI/CD infrastructure in GitLab.<br>Expected results: Submit a couple of KDE Apps to Flathub and develop fixes for the issues found during review.<br>Knowledge Prerequisite: C++, Qt, CMake, Bash, Python (basic knowledge in at least two of those is recommended)<br>Mentor: Timothée Ravier. Reach out to <a href="https://matrix.to/#/#flatpak:kde.org">https://matrix.to/#/#flatpak:kde.org</a>.<br><br>Proposal: KDE Apps packaging as Flatpak for Flathub<br>Based on my hacky python script, there are 61 apps hosted on kdeapps that are not on Flathub (see below). These applications have existing flatpak manifests on invent.k.o/packaging/flatpak-kde-applications, or their respective repository, that would need to be ported over to comply with Flathub's requirements (<a href="https://github.com/flathub/flathub/wiki/App-Requirements">https://github.com/flathub/flathub/wiki/App-Requirements</a>). <br><br>My understanding of this process and how I would go about it is as follows:<br>    1. Clone individual repos and test builds locally to avoid polluting merge requests and CI/CD jobs<br>    2. Determine which commit or release the flatpak should be pinned to (use release service or speak with maintainers)<br>    3. Confirm stable release builds locally, preferably using the tools at invent.kde.k.o/sysadmin/ci-utilities. Change module source to <a href="https://download.kde.org/stable/release-service/$version/src/$app-$version.tar.xz">https://download.kde.org/stable/release-service/$version/src/$app-$version.tar.xz</a> or appropriate<br>    4. Pin all other modules to appropriate archives or stable release<br>    5. Reconfirm build succeeds correctly using Flathub's SDK and Platform modules (I don't think this is actually necessary)<br>    6. Ensure that each app's .desktop, icon, etc. files are renamed correctly ie. org.kde.$APP.desktop<br>    7. Check conformance with Flathub AppData requirements using Flathub's fork of appstream-util<br>    8. Check desktop-file-validate<br>    9. Set required permissions and file system access using portals. Use ro where possible<br>    10. Confirm flatpak installs and runs correctly locally<br>    11. Clone flathub/flathub and create my own branch<br>    12. Create a PR against new-pr on github<br><br>If I was able to manage this, I would then go about automating the process by adding another template using flatpak.yml as a starting point, adding any additional steps required for for passing tests and ensuring builds to ci-utilities.<br><br>Some other ideas I've had are:<br>    - making sure all runtimes are up to date for Flatpak builds across both plaforms<br>    - A script to check that flathub builds are using the most recent stable builds<br>    - Ensure reuse-lint is enabled on all repos being uploaded to Flathub to ensure future compatibility<br>    - Work with flatpak packaging team to establish some best practices and script testing of conformance<br><br>If I need to include more detail of any sort or need to clarify anything, I am available on the matrix channel as bjdm or here.<br><br>Many thanks and I look forward to hearing from you<br>Brent<br><br>Apps on kdeapps and not flathub:<br>Arkade, AtCore Test Client, Atelier, Babe, Basket, Calindori, Gemini, Plan, Cervisia, Discover, Dragon Player, Kate, KCharSelect, kdebugsettings, KDE Connect, kdiff3-stable, kexi-stable, kexi, KFloppy, Khipu, Kirigami Gallery, Kirogi, KItinerary Command Line Extractor, KItinerary Workbench, kjournald, Klimbgrades, KMag, KMix, Kompare, Konqueror, Konsole, konversation-konvi2x, Kopete, kosmindoormap, KRename, Krfb, krita-nightly, krita-stable, KShisen, KSpaceDuel, KSystemLog, KTimer, Kube, KUserFeedback Console, MyGNUHealth, Okular Mobile, Peruse, Phonebook, Plasma Camera, PlasmaTube, portal-test-kde, Barcode Scanner, RKWard, RSI Break, Screen Record, Skanlite, Skanpage, Spectacle, Step, Trojitá, Vakzination</div>