# Flatpak manifest for study-calc — the primary Linux channel (#65, epic #60). # # Unlike the AppImage fallback (#66), this needs no host GTK/WebKit: the # org.gnome.Platform runtime bundles WebKit2GTK and PyGObject, so PyWebView's GTK # backend works inside the sandbox on any distro with Flatpak. # # The Python dependencies (sympy, pywebview and their transitive deps) are # vendored as hash-pinned pip sources in python3-deps.yaml, generated by # packaging/flatpak/generate-deps.sh (flatpak-pip-generator) so the build stays # offline and reproducible. Build it with packaging/flatpak/build_flatpak.sh. app-id: io.github.danilchernyshev.StudyCalc runtime: org.gnome.Platform runtime-version: "47" sdk: org.gnome.Sdk command: study-calc finish-args: # A desktop window: allow both display servers and GPU access, nothing more. - --share=ipc - --socket=wayland - --socket=fallback-x11 - --device=dri cleanup: - "*.pyc" - "/include" - "/lib/pkgconfig" - "/share/man" modules: # Vendored, hash-pinned wheels for sympy + pywebview (+ transitive deps), # produced by generate-deps.sh. Installs into the app prefix offline. - python3-deps.yaml - name: study-calc buildsystem: simple build-commands: # Install the package itself (deps already provided by python3-deps). - pip3 install --verbose --no-index --no-build-isolation --no-deps --prefix=${FLATPAK_DEST} . # Desktop integration: launcher, AppStream metadata and the icon, all under # the reverse-DNS app-id so GNOME Software / KDE Discover list the app. - install -Dm644 packaging/flatpak/io.github.danilchernyshev.StudyCalc.desktop ${FLATPAK_DEST}/share/applications/io.github.danilchernyshev.StudyCalc.desktop - install -Dm644 packaging/flatpak/io.github.danilchernyshev.StudyCalc.metainfo.xml ${FLATPAK_DEST}/share/metainfo/io.github.danilchernyshev.StudyCalc.metainfo.xml - install -Dm644 study_calc/web/frontend/icon.png ${FLATPAK_DEST}/share/icons/hicolor/256x256/apps/io.github.danilchernyshev.StudyCalc.png # Ship the headless smoke test inside the sandbox so the build can verify # the engines and bundled assets work in the Flatpak (run it with # `flatpak run --command=study-calc-smoke `). - install -Dm755 packaging/smoke_test.py ${FLATPAK_DEST}/bin/study-calc-smoke sources: - type: dir path: ../..