User:Nmariusp/Flatpak
Appearance
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 ...".