app-id: io.github.i_machine_things.JobDocs runtime: org.freedesktop.Platform runtime-version: '24.08' sdk: org.freedesktop.Sdk command: JobDocs finish-args: # Display — prefer Wayland, fall back to X11 - --socket=wayland - --socket=fallback-x11 - --socket=cups - --share=network - --share=ipc # GPU acceleration for Qt rendering - --device=dri # File system access — JobDocs lets users configure an arbitrary root job # directory anywhere inside their home tree (set via Settings dialog with # QFileDialog). Narrowing this to xdg-data/JobDocs or individual paths would # break that workflow until the app is ported to the XDG FileChooser portal. # TODO: replace with --filesystem=xdg-data/JobDocs + portal-based dir picker # once core/settings_dialog.py uses QFileDialog with portal support. - --filesystem=home - --filesystem=/mnt - --filesystem=host-etc:ro # On systemd-resolved distros (Ubuntu, Debian) /etc/resolv.conf is a symlink # to /run/systemd/resolve/stub-resolv.conf. Without this mount the symlink # target is unreachable inside the sandbox and DNS fails (Errno -3). - --filesystem=/run/systemd/resolve:ro # Allow flatpak-spawn --host so plugin installer can run pip on the host # to install plugin dependencies into the host user's site-packages. - --talk-name=org.freedesktop.Flatpak modules: - name: JobDocs buildsystem: simple # Source tree + pre-downloaded wheels are staged into linux/flatpak/src/ # by the CI workflow before flatpak-builder is invoked. sources: - type: dir path: src - type: file path: io.github.i_machine_things.JobDocs.desktop - type: file path: io.github.i_machine_things.JobDocs.metainfo.xml - type: file path: icon_16x16.png - type: file path: icon_32x32.png - type: file path: icon_128x128.png - type: file path: icon_256x256.png - type: file path: icon_512x512.png build-commands: # Install Python dependencies from pre-downloaded wheels (no network needed) - pip3 install --prefix=/app --no-index --find-links wheels/ -r requirements.txt # Install app source - install -d /app/lib/JobDocs - cp -r main.py core modules shared /app/lib/JobDocs/ - sh -c '[ -d sample_files ] && cp -r sample_files /app/lib/JobDocs/ || true' # Launcher script - install -d /app/bin - printf '#!/bin/sh\nexec python3 /app/lib/JobDocs/main.py "$@"\n' > /app/bin/JobDocs - chmod 755 /app/bin/JobDocs # Desktop entry - install -Dm644 io.github.i_machine_things.JobDocs.desktop /app/share/applications/io.github.i_machine_things.JobDocs.desktop # AppStream metadata - install -Dm644 io.github.i_machine_things.JobDocs.metainfo.xml /app/share/metainfo/io.github.i_machine_things.JobDocs.metainfo.xml # Application icons — all sizes so the WM picks the nearest without scaling - install -Dm644 icon_16x16.png /app/share/icons/hicolor/16x16/apps/io.github.i_machine_things.JobDocs.png - install -Dm644 icon_32x32.png /app/share/icons/hicolor/32x32/apps/io.github.i_machine_things.JobDocs.png - install -Dm644 icon_128x128.png /app/share/icons/hicolor/128x128/apps/io.github.i_machine_things.JobDocs.png - install -Dm644 icon_256x256.png /app/share/icons/hicolor/256x256/apps/io.github.i_machine_things.JobDocs.png - install -Dm644 icon_512x512.png /app/share/icons/hicolor/512x512/apps/io.github.i_machine_things.JobDocs.png