# SPDX-License-Identifier: GPL-3.0-or-later # # Flatpak manifest for Framework. Two third-party libraries (MuPDF and # DjVuLibre) are not in the GNOME runtime and are built as modules. # libarchive and webkitgtk-6.0 come from the GNOME 50 runtime (the latter # is what renders reflow formats since v0.68.0), so they do not need # modules. If a future Flathub build complains that webkitgtk-6.0's # headers are missing, add it as a `simple-deps` module here. # # Local development build: # flatpak-builder --user --install --force-clean \ # build-flatpak io.github.virinvictus.framework.yml # flatpak run io.github.virinvictus.framework # # Flathub-style tagged-source build: since v1.0.0 the framework module # sources from the release tag on GitHub (forward-only tag anchor, decided # 2026-09-12) rather than the working directory. A git clone naturally # excludes the gitignored build output, reference clones, and test corpus # that the old `type: dir` skip-list named. app-id: io.github.virinvictus.framework runtime: org.gnome.Platform runtime-version: '50' sdk: org.gnome.Sdk command: framework # Permissions are intentionally tight. No network, no broad filesystem # access; arbitrary documents are reachable through the Document portal, # which GtkFileDialog and drag-and-drop go through automatically. The xdg # shortcuts are convenience for CLI invocations like `flatpak run framework # ~/Downloads/foo.pdf`. finish-args: - --share=ipc - --socket=fallback-x11 - --socket=wayland - --device=dri - --filesystem=xdg-documents:ro - --filesystem=xdg-download:ro - --filesystem=xdg-desktop:ro cleanup: - /include - /lib/pkgconfig - /lib/cmake - /share/man - /share/doc - '*.la' - '*.a' modules: # ── DjVuLibre ────────────────────────────────────────────────────── # Autotools. --disable-desktopfiles avoids installing MIME files into # /app/share that the runtime would re-export and clash with our own # MIME wiring in io.github.virinvictus.framework.desktop. - name: djvulibre buildsystem: autotools config-opts: - --disable-static - --disable-desktopfiles sources: - type: archive url: https://downloads.sourceforge.net/djvu/djvulibre-3.5.28.tar.gz sha256: fcd009ea7654fde5a83600eb80757bd3a76998e47d13c66b54c8db849f8f2edc # ── MuPDF ────────────────────────────────────────────────────────── # MuPDF ships its own Makefile, not autotools/meson. Build the shared # library only, with bundled third-party libs (freetype, harfbuzz, # openjpeg, jbig2dec, zlib, libjpeg-turbo, mujs) — simpler than wiring # up runtime equivalents and matches what Fedora's package does. # # HAVE_X11=no/HAVE_GLUT=no skip the X11 and GL viewer binaries we don't # need. HAVE_LIBCRYPTO=no disables PDF signing via OpenSSL — Framework # is a viewer, not a signer. - name: mupdf buildsystem: simple build-commands: - make HAVE_X11=no HAVE_GLUT=no HAVE_LIBCRYPTO=no shared=yes verbose=yes USE_SYSTEM_LIBS=no build=release prefix=/app -j${FLATPAK_BUILDER_N_JOBS:-4} - make HAVE_X11=no HAVE_GLUT=no HAVE_LIBCRYPTO=no shared=yes verbose=yes USE_SYSTEM_LIBS=no build=release prefix=/app install sources: - type: archive url: https://mupdf.com/downloads/archive/mupdf-1.28.2-source.tar.gz sha256: 44075a84e329db55b9bef5f342a70fd26d69e48ad1d33cb89d9664581c641156 x-checker-data: type: html url: https://mupdf.com/downloads/archive/ pattern: mupdf-([\d.]+)-source.tar.gz # ── Framework ────────────────────────────────────────────────────── # Sources from the v1.0.0 release tag (the tag this manifest itself # ships in). Bump the tag on each release. - name: framework buildsystem: meson config-opts: - --buildtype=release # Skip installing the scalable SVG icon: appstream compose (run by # flatpak-builder at the end of the build) reads hicolor icons via # GdkPixbuf, which has no SVG loader in the runtime, and one # unreadable icon fails the whole compose. The 128px PNG installs # in every configuration. - -Dflatpak=true # gnome.compile_schemas() compiles for in-tree dev runs but does not # install the compiled cache; flatpak-builder's finish step did not # run it either, and the app aborts at startup without it. post-install: - glib-compile-schemas /app/share/glib-2.0/schemas sources: - type: git url: https://github.com/VirInvictus/Framework.git tag: v1.0.1 x-checker-data: type: git tag-pattern: '^v[\d.]+$'