app-id: dev.quinnjr.gif-editor runtime: org.gnome.Platform runtime-version: '48' sdk: org.gnome.Sdk sdk-extensions: - org.freedesktop.Sdk.Extension.rust-stable - org.freedesktop.Sdk.Extension.node20 command: gif-editor finish-args: - --socket=x11 - --socket=wayland - --socket=fallback-x11 - --socket=session-bus - --share=ipc - --device=dri - --filesystem=host - --env=WEBKIT_DISABLE_COMPOSITING_MODE=1 - --own-name=org.mpris.MediaPlayer2.gif-editor - --talk-name=org.freedesktop.portal.* - --talk-name=org.gtk.vfs.* - --talk-name=org.freedesktop.portal.OpenURI - --talk-name=org.freedesktop.Notifications - --talk-name=org.a11y.Bus build-options: append-path: /usr/lib/sdk/rust-stable/bin:/usr/lib/sdk/node20/bin env: CARGO_HOME: /run/build/gif-editor/cargo npm_config_nodedir: /usr/lib/sdk/node20 modules: # ffmpeg for video decode/encode - name: x264 buildsystem: autotools config-opts: - --enable-shared - --disable-static - --disable-cli sources: - type: git url: https://code.videolan.org/videolan/x264.git branch: stable - name: libvpx buildsystem: autotools config-opts: - --enable-shared - --disable-static - --enable-vp9-highbitdepth - --disable-examples - --disable-tools - --disable-docs - --disable-unit-tests sources: - type: archive url: https://github.com/webmproject/libvpx/archive/refs/tags/v1.15.0.tar.gz sha256: e935eded7d81631a538bfae703fd1e293aad1c7fd3407ba00440c95105d2011e - name: opus buildsystem: cmake-ninja config-opts: - -DCMAKE_BUILD_TYPE=Release - -DBUILD_SHARED_LIBS=ON sources: - type: archive url: https://github.com/xiph/opus/releases/download/v1.5.2/opus-1.5.2.tar.gz sha256: 65c1d2f78b9f2fb20082c38cbe47c951ad5839345876e46941612ee87f9a7ce1 - name: ffmpeg buildsystem: autotools config-opts: - --disable-doc - --disable-static - --enable-shared - --enable-gpl - --enable-libx264 - --enable-libvpx - --enable-libopus - --disable-autodetect - --enable-small - --enable-ffmpeg - --enable-ffprobe sources: - type: archive url: https://ffmpeg.org/releases/ffmpeg-7.1.1.tar.xz sha256: 733984395e0dbbe5c046abda2dc49a5544e7e0e1e2366bba849222ae9e3a03b1 - name: gif-editor buildsystem: simple build-options: build-args: - --share=network env: CARGO_HOME: /run/build/gif-editor/cargo build-commands: # Set up cargo to use vendored crates - mkdir -p cargo - | cat > cargo/config.toml <<'CARGOEOF' [source.crates-io] replace-with = "vendored-sources" [source.vendored-sources] directory = "cargo/vendor" CARGOEOF # Install pnpm standalone and build frontend - mkdir -p /run/build/gif-editor/.local/bin - COREPACK_ENABLE_STRICT=0 COREPACK_HOME=/run/build/gif-editor/.corepack corepack enable --install-directory /run/build/gif-editor/.local/bin - export PATH="/run/build/gif-editor/.local/bin:$PATH" CI=true && COREPACK_HOME=/run/build/gif-editor/.corepack corepack prepare pnpm@latest --activate && pnpm install --frozen-lockfile && pnpm build # Build Rust backend - cargo build --release --manifest-path src-tauri/Cargo.toml # Install binary - install -Dm755 target/release/gif-editor /app/bin/gif-editor # Install desktop file - install -Dm644 dev.quinnjr.gif-editor.desktop /app/share/applications/dev.quinnjr.gif-editor.desktop # Install metainfo - install -Dm644 dev.quinnjr.gif-editor.metainfo.xml /app/share/metainfo/dev.quinnjr.gif-editor.metainfo.xml # Install icons - install -Dm644 src-tauri/icons/32x32.png /app/share/icons/hicolor/32x32/apps/dev.quinnjr.gif-editor.png - install -Dm644 src-tauri/icons/128x128.png /app/share/icons/hicolor/128x128/apps/dev.quinnjr.gif-editor.png - install -Dm644 src-tauri/icons/128x128@2x.png /app/share/icons/hicolor/256x256/apps/dev.quinnjr.gif-editor.png sources: - type: dir path: . - cargo-sources.json