Browse Source

Initial Tenacity Flatpak

Closes https://github.com/tenacityteam/tenacity/issues/493

Signed-off-by: TheEvilSkeleton <theevilskeleton@riseup.net>
pull/547/head
TheEvilSkeleton 3 months ago
committed by Sol Fisher Romanoff
parent
commit
e8812b1d66
No known key found for this signature in database GPG Key ID: E0ACA5D1C244E1F
  1. 25
      .github/workflows/flatpak.yml
  2. 3
      .gitignore
  3. 3
      .gitmodules
  4. 38
      packaging/flatpak/deps/lame-3.100.json
  5. 29
      packaging/flatpak/deps/suil.json
  6. 218
      packaging/flatpak/org.tenacity.Tenacity.json
  7. 13
      packaging/flatpak/patches/audacity-suil-fix.patch
  8. 1
      packaging/flatpak/shared-modules

25
.github/workflows/flatpak.yml

@ -0,0 +1,25 @@
name: Packaging
on:
push:
branches: [master]
pull_request:
jobs:
flatpak:
name: "Flatpak"
runs-on: ubuntu-latest
container:
image: bilelmoussaoui/flatpak-github-actions:gnome-40
options: --privileged
strategy:
matrix:
arch: [x86_64, aarch64]
fail-fast: false
steps:
- uses: actions/checkout@v2
with:
submodules: true
- uses: bilelmoussaoui/flatpak-github-actions/flatpak-builder@v3
with:
bundle: tenacity.flatpak
manifest-path: packaging/flatpak/org.tenacity.Tenacity.json
cache-key: flatpak-builder-${{ github.sha }}

3
.gitignore

@ -216,3 +216,6 @@ win/xaudacity.ico
.vscode/
vcpkg_installed
# Flatpak
!packaging/**

3
.gitmodules

@ -2,3 +2,6 @@
path = vcpkg
url = https://github.com/tenacityteam/vcpkg.git
branch = tenacity
[submodule "packaging/flatpak/shared-modules"]
path = packaging/flatpak/shared-modules
url = https://github.com/flathub/shared-modules.git

38
packaging/flatpak/deps/lame-3.100.json

@ -0,0 +1,38 @@
{
"name": "lame",
"rm-configure": true,
"config-opts": [
"--disable-static"
],
"sources": [
{
"type": "archive",
"url": "https://downloads.sourceforge.net/lame/lame-3.100.tar.gz",
"sha256": "ddfe36cab873794038ae2c1210557ad34857a4b6bdc515785d1da9e175b1da1e"
},
{
"type": "patch",
"path": "../shared-modules/lame/lame-msse.patch"
},
{
"type": "patch",
"path": "../shared-modules/lame/lame-tinfo.patch",
"strip-components": 0
},
{
"type": "script",
"dest-filename": "autogen.sh",
"commands": [
"autoreconf -vfi"
]
}
],
"cleanup": [
"/bin",
"/include",
"/lib/pkgconfig",
"/share/doc",
"/share/man",
"*.la"
]
}

29
packaging/flatpak/deps/suil.json

@ -0,0 +1,29 @@
{
"name": "suil",
"buildsystem": "simple",
"build-commands": [
"python3 ./waf configure --prefix=/app",
"python3 ./waf build -j $FLATPAK_BUILDER_N_JOBS",
"python3 ./waf install"
],
"cleanup": [
"/include",
"/lib/pkgconfig"
],
"sources": [
{
"type": "archive",
"url": "http://download.drobilla.net/suil-0.10.10.tar.bz2",
"sha256": "750f08e6b7dc941a5e694c484aab02f69af5aa90edcc9fb2ffb4fb45f1574bfb"
}
],
"post-install": [
"install -Dm644 -t /app/share/licenses/suil COPYING"
],
"cleanup": [
"/bin",
"/etc",
"/include",
"/share/man"
]
}

218
packaging/flatpak/org.tenacity.Tenacity.json

@ -0,0 +1,218 @@
{
"app-id": "org.tenacityaudio.Tenacity",
"runtime": "org.gnome.Platform",
"runtime-version": "40",
"sdk": "org.gnome.Sdk",
"command": "tenacity",
"rename-desktop-file": "tenacity.desktop",
"rename-icon": "tenacity",
"rename-appdata-file": "tenacity.metainfo.xml",
"finish-args": [
"--share=ipc",
"--socket=x11",
"--socket=pulseaudio",
"--filesystem=xdg-run/pipewire-0",
"--system-talk-name=org.freedesktop.RealtimeKit1",
"--device=all",
"--filesystem=host",
"--env=ALSA_CONFIG_PATH=",
"--env=LADSPA_PATH=/app/extensions/Plugins/ladspa",
"--env=LV2_PATH=/app/extensions/Plugins/lv2",
"--env=VST_PATH=/app/extensions/Plugins/lxvst"
],
"add-extensions": {
"org.freedesktop.LinuxAudio.Plugins": {
"directory": "extensions/Plugins",
"version": "20.08",
"add-ld-path": "lib",
"merge-dirs": "ladspa;lv2;lxvst",
"subdirectories": true,
"no-autodownload": true
}
},
"cleanup": [
"/include",
"/lib/pkgconfig",
"/share/aclocal",
"/share/man",
"*.la",
"*.a"
],
"modules": [
{
"name": "wxwidgets",
"rm-configure": true,
"config-opts": [
"--with-libpng",
"--with-zlib",
"--with-cxx=17",
"--disable-sdltest",
"--disable-webview",
"--disable-webviewwebkit",
"--disable-ribbon",
"--disable-propgrid",
"--disable-richtext",
"--with-expat=builtin",
"--with-libiconv=/usr"
],
"cleanup": [
"/share/bakefile"
],
"sources": [
{
"type": "git",
"url": "https://github.com/wxWidgets/wxWidgets",
"tag": "v3.1.5",
"commit": "9c0a8be1dc32063d91ed1901fd5fcd54f4f955a1"
}
]
},
"deps/lame-3.100.json",
{
"name": "libid3tag",
"buildsystem": "cmake-ninja",
"sources": [
{
"type": "git",
"url": "https://github.com/tenacityteam/libid3tag.git",
"tag": "0.16.1",
"commit": "1cc101e90dda1fb6e8cc57a0c707a3305bf674f9"
}
]
},
"shared-modules/libmad/libmad.json",
"shared-modules/linux-audio/jack2.json",
"shared-modules/linux-audio/lv2.json",
"shared-modules/linux-audio/lilv.json",
"deps/suil.json",
{
"name": "portaudio",
"buildsystem": "cmake-ninja",
"sources": [
{
"type": "git",
"url": "https://github.com/PortAudio/portaudio.git",
"tag": "v19.7.0",
"commit": "147dd722548358763a8b649b3e4b41dfffbcfbb6"
}
]
},
{
"name": "portsmf",
"buildsystem": "cmake-ninja",
"sources": [
{
"type": "git",
"url": "https://github.com/tenacityteam/portsmf.git",
"tag": "239",
"commit": "951b636f7d0cba370d483a91f1897c71f3d98530"
}
]
},
{
"name": "portmidi-mixxxdj",
"buildsystem": "cmake-ninja",
"sources": [
{
"type": "git",
"url": "https://github.com/mixxxdj/portmidi.git",
"tag": "236",
"commit": "fda97c3be2baf10438574d10bb2a6b8b4f1140c4"
}
]
},
{
"name": "soxr",
"buildsystem": "cmake-ninja",
"sources": [
{
"type": "git",
"url": "https://github.com/chirlu/soxr.git",
"tag": "0.1.3",
"commit": "945b592b70470e29f917f4de89b4281fbbd540c0"
}
]
},
{
"name": "libsbsms",
"buildsystem": "cmake-ninja",
"sources": [
{
"type": "git",
"url": "https://github.com/claytonotey/libsbsms.git",
"tag": "2.3.0",
"commit": "e99cd7e6c6367e476577be34d2fdbe2023904d7e"
}
]
},
{
"name": "vamp-plugin-sdk",
"sources": [
{
"type": "git",
"url": "https://github.com/c4dm/vamp-plugin-sdk.git",
"tag": "vamp-plugin-sdk-v2.10",
"commit": "67adfc2bf9486912a0fce5123cf54360ea2678bc"
}
],
"cleanup": [
"/bin"
]
},
{
"name": "soundtouch",
"sources": [
{
"type": "git",
"url": "https://gitlab.com/soundtouch/soundtouch.git",
"tag": "2.3.0",
"commit": "c65afe49f697fcea87d9a134870c8d115d7700cc"
}
]
},
{
"name": "twolame",
"sources": [
{
"type": "archive",
"url": "https://downloads.sourceforge.net/twolame/twolame-0.4.0.tar.gz",
"sha256": "cc35424f6019a88c6f52570b63e1baf50f62963a3eac52a03a800bb070d7c87d"
}
]
},
{
"name": "tenacity",
"buildsystem": "cmake-ninja",
"builddir": true,
"config-opts": [
"-DCMAKE_BUILD_TYPE=RelWithDebInfo",
"-DWX_CONFIG=/app/bin/wx-config"
],
"post-install": [
"install -Dm644 ../help/tenacity.metainfo.xml -t /app/share/metainfo",
"install -d /app/extensions/Plugins"
],
"cleanup": [
"/share/tenacity/include",
"/share/audacity/include",
"/share/pixmaps"
],
"sources": [
{
"type": "dir",
"path": "../../"
},
{
"type": "patch",
"path": "patches/audacity-suil-fix.patch"
},
{
"type": "shell",
"commands": [
"sed -e '42i <release version=\"master\" date=\"2021-08-12\"/>' -i help/tenacity.metainfo.xml"
]
}
]
}
]
}

13
packaging/flatpak/patches/audacity-suil-fix.patch

@ -0,0 +1,13 @@
diff --git a/src/effects/lv2/LoadLV2.cpp b/src/effects/lv2/LoadLV2.cpp
index b101ee734..be665c5a6 100755
--- a/src/effects/lv2/LoadLV2.cpp
+++ b/src/effects/lv2/LoadLV2.cpp
@@ -180,7 +180,7 @@ bool LV2EffectsModule::Initialize()
newVar += wxT(":") + libdir.GetPath();
// Tell SUIL where to find his GUI support modules
- wxSetEnv(wxT("SUIL_MODULE_DIR"), wxT(PKGLIBDIR));
+ wxSetEnv(wxT("SUIL_MODULE_DIR"), wxT("/app/lib/suil-0"));
#endif
// Start with the LV2_PATH environment variable (if any)

1
packaging/flatpak/shared-modules

@ -0,0 +1 @@
Subproject commit 716f6422376daad30d8135617aa20d87531b31b6
Loading…
Cancel
Save