Add flatpak (#1081)

Co-authored-by: Chidi Williams <williamschidi1@gmail.com>
This commit is contained in:
Raivis Dejus 2025-02-16 15:13:53 +02:00 committed by GitHub
commit 914c5201dc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
17 changed files with 230 additions and 0 deletions

2
.gitignore vendored
View file

@ -30,3 +30,5 @@ benchmarks.json
*.egg-info
/coverage/
/wheelhouse/
/.flatpak-builder
/repo

View file

@ -62,3 +62,11 @@ sudo snap connect buzz:removable-media
### Latest development version
For info on how to get latest development version with latest features and bug fixes see [FAQ](https://chidiwilliams.github.io/buzz/docs/faq#9-where-can-i-get-latest-development-version).
### Screenshots
<img alt="File import" src="share/screenshots/buzz-1-import.png" width="18%"/>
<img alt="Main screen" src="share/screenshots/buzz-2-main_screen.png" width="18%"/>
<img alt="Preferences" src="share/screenshots/buzz-3-preferences.png" width="18%"/>
<img alt="Transcript" src="share/screenshots/buzz-4-transcript.png" width="18%"/>
<img alt="Live recording" src="share/screenshots/buzz-5-live_recording.png" width="18%"/>

BIN
flatpak/libapparmor.so.1 Normal file

Binary file not shown.

BIN
flatpak/libavutil.so.58 Normal file

Binary file not shown.

BIN
flatpak/libbsd.so.0 Normal file

Binary file not shown.

BIN
flatpak/libdb-5.3.so Normal file

Binary file not shown.

BIN
flatpak/libmd.so.0 Normal file

Binary file not shown.

3
flatpak/run-buzz.sh Normal file
View file

@ -0,0 +1,3 @@
#!/bin/sh
echo "Running buzz..."
python -m buzz

View file

@ -0,0 +1,90 @@
# Building notes:
# See https://docs.flathub.org/docs/for-app-authors/submission/
# This flatpak is build from the snap package.
# - Get relevant snap package infor - curl -H 'Snap-Device-Series: 16' http://api.snapcraft.io/v2/snaps/info/buzz # | jq
# - Download snap and generate sha256sum, update yaml entry.
app-id: io.github.chidiwilliams.Buzz
runtime: org.freedesktop.Platform
# TODO - Update to 24.08 when snap is updated to core24
runtime-version: '22.08' # To match `core22` of the snap
sdk: org.freedesktop.Sdk
command: run-buzz.sh
finish-args:
- --socket=wayland
- --socket=fallback-x11
- --socket=pulseaudio
- --talk-name=org.freedesktop.secrets
- --device=dri
# TODO switch to input when it is available
#- --device=input
- --device=all
- --share=network
- --share=ipc
- --filesystem=xdg-documents
# Environment variables
- --env=LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/app/lib/python3.10/site-packages/nvidia/cudnn/lib:/app/lib/python3.10/site-packages/PyQt6:/app/lib/python3.10/site-packages/PyQt6/Qt6/lib:/app/usr/lib/x86_64-linux-gnu/lapack:/app/usr/lib/x86_64-linux-gnu/blas:/app/usr/lib/x86_64-linux-gnu/pulseaudio:/app/usr/lib/x86_64-linux-gnu:/app/lib/x86_64-linux-gnu/
- --env=PYTHONPATH=$PYTHONPATH:/app/lib/python3.10/site-packages:/app/lib/python3.10/site-packages/PyQt6:/app/lib/python3.10/site-packages/PyQt6/Qt6/lib
modules:
- name: unsquashfs
buildsystem: simple
build-commands:
- XZ_SUPPORT=1 make -C squashfs-tools -j ${FLATPAK_BUILDER_N_JOBS} unsquashfs
- install -Dpm755 -t "${FLATPAK_DEST}/bin" squashfs-tools/unsquashfs
sources:
- type: git
url: https://github.com/plougher/squashfs-tools.git
tag: 4.6.1
commit: d8cb82d9840330f9344ec37b992595b5d7b44184
- name: snap
buildsystem: simple
build-commands:
- unsquashfs -dest buzz -quiet -no-progress buzz.snap
- cp -rT buzz ${FLATPAK_DEST} && rm -rf buzz
sources:
- type: file
dest-filename: buzz.snap
# Stable
url: https://api.snapcraft.io/api/v1/snaps/download/RSpCVxCNDwoTXHPXhlYQnziD0jQhVnKA_362.snap
sha256: fbc045426c867b1d7ee01178d4f53d785c161709e2a9db6854cefec29aa510d7
# Edge
#url: https://api.snapcraft.io/api/v1/snaps/download/RSpCVxCNDwoTXHPXhlYQnziD0jQhVnKA_402.snap
#sha256: 0acecacf8fa476bf6d7afcd98b7b557829b70cfa8b1d57e6ff5248737b63ab60
# Borrowed from https://github.com/flathub/org.audacityteam.Audacity/blob/master/org.audacityteam.Audacity.yaml
- name: portaudio
buildsystem: cmake-ninja
config-opts:
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
sources:
- type: archive
url: https://github.com/PortAudio/portaudio/archive/refs/tags/v19.7.0.tar.gz
sha256: 5af29ba58bbdbb7bbcefaaecc77ec8fc413f0db6f4c4e286c40c3e1b83174fa0
# Borrowed from https://github.com/flathub/org.freedownloadmanager.Manager/pull/20/files
- name: kerberos
subdir: src
sources:
- type: archive
url: https://kerberos.org/dist/krb5/1.21/krb5-1.21.tar.gz
sha256: 69f8aaff85484832df67a4bbacd99b9259bd95aab8c651fbbe65cdc9620ea93b
- name: Buzz
buildsystem: simple
build-commands:
- install -Dm755 flatpak/run-buzz.sh ${FLATPAK_DEST}/bin/run-buzz.sh
- install -Dm644 share/icons/${FLATPAK_ID}.svg ${FLATPAK_DEST}/share/icons/hicolor/scalable/apps/${FLATPAK_ID}.svg
- install -Dm644 share/applications/${FLATPAK_ID}.desktop ${FLATPAK_DEST}/share/applications/${FLATPAK_ID}.desktop
- install -Dm644 share/metainfo/${FLATPAK_ID}.metainfo.xml ${FLATPAK_DEST}/share/metainfo/${FLATPAK_ID}.metainfo.xml
- install -Dm644 flatpak/libbsd.so.0 ${FLATPAK_DEST}/lib/x86_64-linux-gnu/libbsd.so.0
- install -Dm644 flatpak/libmd.so.0 ${FLATPAK_DEST}/lib/x86_64-linux-gnu/libmd.so.0
- install -Dm644 flatpak/libdb-5.3.so ${FLATPAK_DEST}/lib/x86_64-linux-gnu/libdb-5.3.so
- install -Dm644 flatpak/libapparmor.so.1 ${FLATPAK_DEST}/lib/x86_64-linux-gnu/libapparmor.so.1
- install -Dm644 flatpak/libavutil.so.58 ${FLATPAK_DEST}/lib/x86_64-linux-gnu/libavutil.so.58
sources:
- type: dir
path: .

View file

@ -0,0 +1,15 @@
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Buzz
Comment=Transcribe and translate audio
Exec=run-buzz.sh
Icon=io.github.chidiwilliams.Buzz
Terminal=false

View file

@ -0,0 +1,38 @@
<svg width="1024" height="1024" viewBox="0 0 1024 1024" fill="none" xmlns="http://www.w3.org/2000/svg">
<g filter="url(#filter0_d_1_2)">
<rect x="100" y="100" width="824" height="824" rx="184" fill="#CD0000"/>
<rect x="100" y="100" width="824" height="824" rx="184" fill="url(#paint0_linear_1_2)"/>
</g>
<g filter="url(#filter1_d_1_2)">
<circle cx="512" cy="512" r="290" stroke="white" stroke-width="40"/>
<circle cx="512" cy="512" r="224" fill="url(#paint1_radial_1_2)"/>
</g>
<defs>
<filter id="filter0_d_1_2" x="78" y="89" width="868" height="868" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="11"/>
<feGaussianBlur stdDeviation="11"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.28 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1_2"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_1_2" result="shape"/>
</filter>
<filter id="filter1_d_1_2" x="196" y="196" width="636" height="636" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dx="2" dy="2"/>
<feGaussianBlur stdDeviation="4"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.216667 0 0 0 0 0.216667 0 0 0 0 0.216667 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1_2"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_1_2" result="shape"/>
</filter>
<linearGradient id="paint0_linear_1_2" x1="512" y1="100" x2="512" y2="924" gradientUnits="userSpaceOnUse">
<stop stop-color="#CD0000" stop-opacity="0"/>
<stop offset="1" stop-opacity="0.2"/>
</linearGradient>
<radialGradient id="paint1_radial_1_2" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(449.28 457.68) rotate(45) scale(302.529 345.057)">
<stop offset="0.578998" stop-color="white"/>
<stop offset="0.873177" stop-color="#E6E6E6"/>
</radialGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View file

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
<id>io.github.chidiwilliams.Buzz</id>
<name>Buzz</name>
<summary>Transcribe and translate audio</summary>
<metadata_license>CC0-1.0</metadata_license>
<project_license>MIT</project_license>
<developer_name>Chidi Williams</developer_name>
<description>
<p>
Buzz transcribes and translates audio to text offline using OpenAI&apos;s Whisper. Import audio and video files into Buzz and export them as TXT, SRT, or VTT files. Buzz supports Whisper, Whisper.cpp, Faster Whisper, Whisper-compatible models from the Hugging Face repository, and the OpenAI Whisper API.
</p>
</description>
<categories>
<category>AudioVideo</category>
</categories>
<url type="bugtracker">https://github.com/chidiwilliams/buzz/issues</url>
<url type="homepage">https://github.com/chidiwilliams/buzz</url>
<url type="faq">https://chidiwilliams.github.io/buzz/docs</url>
<branding>
<color type="primary" scheme_preference="light">#f66151</color>
<color type="primary" scheme_preference="dark">#45124d</color>
</branding>
<requires>
<control>keyboard</control>
<control>pointing</control>
</requires>
<launchable type="desktop-id">io.github.chidiwilliams.Buzz.desktop</launchable>
<screenshots>
<screenshot type="default">
<image>https://github.com/chidiwilliams/buzz/raw/main/share/screenshots/buzz-1-import.png</image>
<caption>File and url import options</caption>
</screenshot>
<screenshot>
<image>https://github.com/chidiwilliams/buzz/raw/main/share/screenshots/buzz-2-main_screen.png</image>
<caption>Main screen with transcription results</caption>
</screenshot>
<screenshot>
<image>https://github.com/chidiwilliams/buzz/raw/main/share/screenshots/buzz-3-preferences.png</image>
<caption>Application preferences</caption>
</screenshot>
<screenshot>
<image>https://github.com/chidiwilliams/buzz/raw/main/share/screenshots/buzz-4-transcript.png</image>
<caption>Transcript with options for further processing and export</caption>
</screenshot>
<screenshot>
<image>https://github.com/chidiwilliams/buzz/raw/main/share/screenshots/buzz-5-live_recording.png</image>
<caption>Live recording transcription and translation options</caption>
</screenshot>
</screenshots>
<content_rating type="oars-1.1"/>
<releases>
<release version="1.2.0" date="2024-11-24">
<url type="details">https://github.com/chidiwilliams/buzz/releases/tag/v1.2.0</url>
<description>
<p>Changes in 1.2.0</p>
<ul>
<li>Dark mode support</li>
<li>Improved support for GPUs and Apple Core ML</li>
<li>Sliding window mode for live transcriptions</li>
<li>Bugfixes and other small improvements</li>
</ul>
</description>
</release>
</releases>
</component>

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB