Jump to content

User:Nmariusp/Flatpak

From KDE Community Wiki

Video version https://www.youtube.com/watch?v=l7lyDozY9xg https://www.youtube.com/watch?v=GsWXRYbv5Eg

sudo apt install flatpak flatpak-builder

# If you do not use flatpak packages, you can uninstall all flatpak packages.
# flatpak list
# flatpak remove --all

# Step one: Publish flatpak to "KDE Nightly" flatpak remote.

git clone https://invent.kde.org/games/kdiamond.git
cd kdiamond
# As per https://develop.kde.org/docs/packaging/flatpak/packaging
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak-builder build --user --install-deps-from=flathub --force-clean --ccache --install .flatpak-manifest.json |& tee ~/a.txt
# If there are warnings or errors, the file "~/a.txt" is available.

# Run
flatpak run org.kde.kdiamond
# Do a Dead on arrival (DOA) manual exploratory test. See all GUI windows/dialogs of the apps, click on various places. Make sure themes, install, uninstall work correctly.

# Enter the running flatpak container instance. As per https://docs.flatpak.org/en/latest/debugging.html
flatpak run --command=sh --filesystem=$(pwd) org.kde.kdiamond
# sh is bash
ls -la `which sh`
# Directory structure.
du -h / | less

# Enter the complete debug enabled flatpak container instance. As per https://docs.flatpak.org/en/latest/debugging.html
# This will contain complete debug symbols, Sdks, source code cpp files, gdb, g++, other build tools etc.
flatpak list
# Says:
#Name                         Application ID                              Version Branch     Origin          Installation
#default                      org.freedesktop.Platform.GL.Debug.default           24.08      flathub         user
#default                      org.freedesktop.Platform.GL.Debug.default           24.08extra flathub         user
#Mesa                         org.freedesktop.Platform.GL.default         25.0.3  24.08      flathub         user
#Mesa (Extra)                 org.freedesktop.Platform.GL.default         25.0.3  24.08extra flathub         user
#default                      org.freedesktop.Platform.GL32.Debug.default         24.08      flathub         user
#default                      org.freedesktop.Platform.GL32.Debug.default         24.08extra flathub         user
#openh264                     org.freedesktop.Platform.openh264           2.5.1   2.5.1      flathub         user
#i386 debug symbols           org.freedesktop.Sdk.Compat.i386.Debug               24.08      flathub         user
#Breeze GTK theme             org.gtk.Gtk3theme.Breeze                    6.3.4   3.22       flathub         user
#KDE Application Platform     org.kde.Platform                                    6.8        flathub         user
#KDE Software Development Kit org.kde.Sdk                                         6.8        flathub         user
#Kate                         org.kde.kate                                25.04.0 master     kate-origin     user
#KDiamond                     org.kde.kdiamond                            25.04.0 master     kdiamond-origin user

# Write down the values in the column "Branch".

# Install all Sdk, Debug flatpak packages.
flatpak install --user --include-sdk --include-debug kdiamond-origin org.kde.kdiamond
# Install Debug flatpak packages for all platform extensions/extra-datas.
flatpak install org.freedesktop.Platform.{GL,GL32}.Debug.default//24.08
flatpak install org.freedesktop.Platform.{GL,GL32}.Debug.default//24.08extra

# "--devel" below is important.
flatpak run --command=sh --devel --filesystem=$(pwd) org.kde.kdiamond

ls /app/bin
gdb /app/bin/kdiamond
(gdb) run
#Enable debuginfod for this session? (y or [n])
# Press Enter.
# Close the GUI app.
(gdb) break main
(gdb) run
(gdb) list
(dgb) tui enable
# Other gdb commands.
(gdb) exit
# Press y
exit

# Step two: Publish flatpak to "flathub" flatpak remote.

# Search for kdiamond on flathub https://flathub.org/apps/org.kde.kdiamond > Links tab > says "Manifest https://github.com/flathub/org.kde.kdiamond"

git clone https://github.com/flathub/org.kde.kdiamond.git
cd org.kde.kdiamond
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak-builder build --user --install-deps-from=flathub --force-clean --ccache --install org.kde.kdiamond.json

KDE gitlab CI

# See https://invent.kde.org/system/kjournald/-/merge_requests/43
# See ~/kde/src/sysadmin-ci-utilities/flatpak-build.py
flatpak info org.kde.Sdk//6.9
flatpak info org.kde.Platform//6.9
flatpak-builder --repo=repo --force-clean build-dir --disable-rofiles-fuse --user --install-deps-from=flathub .flatpak-manifest.json
flatpak build-bundle repo kjournald.flatpak org.kde.kjournaldbrowser master
flatpak build-bundle --runtime repo kjournald-locale.flatpak org.kde.kjournaldbrowser.Locale master
flatpak build-bundle --runtime repo kjournald-debug.flatpak org.kde.kjournaldbrowser.Debug master
# You can increase the verbosity "flatpak build-bundle --verbose --ostree-verbose ...".