forked from flathub/org.mixxx.Mixxx
-
Notifications
You must be signed in to change notification settings - Fork 0
/
org.mixxx.Mixxx.yaml
354 lines (316 loc) · 11.1 KB
/
org.mixxx.Mixxx.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
app-id: io.github.cr7pt0gr4ph7.Mixxx
runtime: org.kde.Platform
runtime-version: '6.7'
sdk: org.kde.Sdk
command: mixxx
rename-icon: mixxx
rename-desktop-file: org.mixxx.Mixxx.desktop
rename-appdata-file: org.mixxx.Mixxx.metainfo.xml
finish-args:
# Required for DJ controller support
- --device=all
# Hack to make removable drives available in the library GUI
# https://github.com/flatpak/flatpak/issues/2713#issuecomment-1958510347
- --filesystem=/media
- --filesystem=/run/media
# Wayland is used by default
- --socket=wayland
- --socket=fallback-x11
# Used by X11 and MusicBrainz metadata lookups
- --share=ipc
- --share=network
# Permit PipeWire and user music directory access
- --filesystem=xdg-run/pipewire-0
- --filesystem=xdg-music
# PulseAudio is needed for ALSA device access
- --socket=pulseaudio
# Talk to UPower and RTKit services on the session bus
- --system-talk-name=org.freedesktop.UPower
- --system-talk-name=org.freedesktop.RealtimeKit1
# Ignore ALSA configuration
- --env=ALSA_CONFIG_PATH=
# Migrate host dconf settings
- --metadata=X-DConf=migrate-path=/org/mixxx/Mixxx
# App data storage in org.mixxx.Mixxx/.mixxx
- --persist=.mixxx
add-extensions:
# Linux audio plugins base extension
org.freedesktop.LinuxAudio.Plugins:
directory: extensions/Plugins
version: '23.08'
add-ld-path: lib
merge-dirs: lv2
subdirectories: true
no-autodownload: true
cleanup:
- /include
- /share/gir-1.0
- /share/man
- '*.a'
- '*.la'
- /lib/cmake
- /lib/girepository-1.0
- /lib/pkgconfig
modules:
# MPEG audio decoder
- shared-modules/libmad/libmad.json
# USB device access library
- shared-modules/libusb/libusb.json
# LV2 audio plugin support
- shared-modules/linux-audio/lv2.json
- shared-modules/linux-audio/lilv.json
# Required by UPower
- shared-modules/gudev/gudev.json
# Required by QtKeychain
- shared-modules/libsecret/libsecret.json
# Google test framework
- name: googletest
buildsystem: cmake-ninja
config-opts:
# Use RelWithDebInfo build type for all CMake modules
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
sources:
- type: archive
url: https://github.com/google/googletest/archive/refs/tags/v1.14.0.tar.gz
sha256: 8ad598c73ad796e0d8280b082cebd82a630d73e73cd3c70057938a6501bba5d7
# Google benchmark library
- name: benchmark
buildsystem: cmake-ninja
config-opts:
# Disable tests and documentation
- -DBENCHMARK_ENABLE_GTEST_TESTS=OFF
- -DBENCHMARK_INSTALL_DOCS=OFF
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
sources:
- type: archive
url: https://github.com/google/benchmark/archive/refs/tags/v1.8.3.tar.gz
sha256: 6bc180a57d23d4d9515519f92b0c83d61b05b5bab188961f36ac7b06b0d9e9ce
# Microsoft GSL library
- name: gsl
buildsystem: cmake-ninja
config-opts:
# Disable tests
- -DGSL_TEST=OFF
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
sources:
- type: archive
url: https://github.com/microsoft/GSL/archive/refs/tags/v4.0.0.tar.gz
sha256: f0e32cb10654fea91ad56bde89170d78cfbf4363ee0b01d8f097de2ba49f6ce9
cleanup:
- /share/cmake
# Abseil C++ library
- name: abseil-cpp
buildsystem: cmake-ninja
config-opts:
# Use and propagate CMake C++ standard meta features
- -DABSL_PROPAGATE_CXX_STD=ON
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
sources:
- type: archive
url: https://github.com/abseil/abseil-cpp/releases/download/20240116.0/abseil-cpp-20240116.0.tar.gz
sha256: 338420448b140f0dfd1a1ea3c3ce71b3bc172071f24f4d9a57d59b45037da440
# Google protocol buffers
- name: protobuf
buildsystem: cmake-ninja
config-opts:
# Disable tests and use our external Abseil build
- -Dprotobuf_BUILD_TESTS=off
- -Dprotobuf_ABSL_PROVIDER=package
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
sources:
- type: archive
url: https://github.com/protocolbuffers/protobuf/releases/download/v25.2/protobuf-25.2.tar.gz
sha256: 8ff511a64fc46ee792d3fe49a5a1bcad6f7dc50dfbba5a28b0e5b979c17f9871
cleanup:
- /bin
# Portable audio I/O library
- 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
# Cross-platform MIDI I/O
- name: portmidi
buildsystem: cmake-ninja
config-opts:
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
sources:
- type: archive
url: https://github.com/PortMidi/portmidi/archive/refs/tags/v2.0.4.tar.gz
sha256: 64893e823ae146cabd3ad7f9a9a9c5332746abe7847c557b99b2577afa8a607c
cleanup:
- /bin
# USB and Bluetooth HID library
- name: hidapi
buildsystem: cmake-ninja
config-opts:
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
sources:
- type: archive
url: https://github.com/libusb/hidapi/archive/refs/tags/hidapi-0.14.0.tar.gz
sha256: a5714234abe6e1f53647dd8cba7d69f65f71c558b7896ed218864ffcf405bcbd
# Audio metadata library
- name: taglib
buildsystem: cmake-ninja
config-opts:
# Enable shared libraries and disable tests
- -DBUILD_SHARED_LIBS=ON
- -DBUILD_TESTING=OFF
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
sources:
- type: archive
url: https://taglib.org/releases/taglib-1.13.1.tar.gz
sha256: c8da2b10f1bfec2cd7dbfcd33f4a2338db0765d851a50583d410bacf055cfd0b
cleanup:
- /bin
# Audio fingerprinting library
- name: chromaprint
buildsystem: cmake-ninja
config-opts:
# Disable command line tools and tests
- -DBUILD_TOOLS=OFF
- -DBUILD_TESTS=OFF
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
sources:
- type: archive
url: https://github.com/acoustid/chromaprint/releases/download/v1.5.1/chromaprint-1.5.1.tar.gz
sha256: a1aad8fa3b8b18b78d3755b3767faff9abb67242e01b478ec9a64e190f335e1c
# Audio time stretching and pitch shifting library
- name: rubberband
buildsystem: meson
config-opts:
# Disable tests, command line tools and non-functional audio plugins
- -Dtests=disabled
- -Dcmdline=disabled
- -Dladspa=disabled
- -Dlv2=disabled
sources:
- type: archive
url: https://github.com/breakfastquay/rubberband/archive/refs/tags/v3.3.0.tar.gz
sha256: 2bb837fe00932442ca90e185af8a468f7591df0c002b4a9e27a1bced1563ac84
# Audio time stretching and pitch shifting library
- name: soundtouch
buildsystem: cmake-ninja
config-opts:
# Disable soundstretch utility and disable non-working -mfpu=neon flag
- -DSOUNDSTRETCH=OFF
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
- -DNEON=OFF
sources:
- type: archive
url: https://codeberg.org/soundtouch/soundtouch/archive/2.3.2.tar.gz
sha256: ed714f84a3e748de87b24f385ec69d3bdc51ca47b7f4710d2048b84b2761e7ff
# ID3 tag library
- name: libid3tag
buildsystem: cmake-ninja
config-opts:
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
sources:
- type: archive
url: https://codeberg.org/tenacityteam/libid3tag/archive/0.16.3.tar.gz
sha256: 0561009778513a95d91dac33cee8418d6622f710450a7cb56a74636d53b588cb
# Power management interface, used for battery level indicator
- name: upower
buildsystem: meson
config-opts:
# Disable documentation, prevent systemd dependency and set udev rules location
- -Dgtk-doc=false
- -Dsystemdsystemunitdir=no
- -Dudevrulesdir=/app/etc/udev/rules.d
- -Dudevhwdbdir=/app/etc/udev/hwdb.d
sources:
- type: archive
url: https://gitlab.freedesktop.org/upower/upower/-/archive/v1.90.2/upower-v1.90.2.tar.gz
sha256: 5c4e736648f0c89d2368fbbe1e6fc0598a1565c4b435bade1d65e890259fb759
cleanup:
- /bin
- /etc
- /libexec
- /var
- /share/dbus-1
- /share/installed-tests
# FDK-AAC audio library with patented HE-AAC support removed
# https://bugzilla.redhat.com/show_bug.cgi?id=1501522#c112
- name: fdk-aac-stripped
buildsystem: cmake-ninja
config-opts:
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
sources:
- type: git
url: https://gitlab.freedesktop.org/wtaymans/fdk-aac-stripped.git
commit: 585981a49f2186b0d2e47c64bf6b5abf539395f8
# Mod-like music format library
- name: libmodplug
buildsystem: autotools
sources:
- type: archive
url: https://sourceforge.net/projects/modplug-xmms/files/libmodplug/0.8.9.0/libmodplug-0.8.9.0.tar.gz
sha256: 457ca5a6c179656d66c01505c0d95fafaead4329b9dbaa0f997d00a3508ad9de
# Secure password storage API
- name: qtkeychain
buildsystem: cmake-ninja
config-opts:
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
- -DBUILD_WITH_QT6=ON
sources:
- type: archive
url: https://github.com/frankosterfeld/qtkeychain/archive/refs/tags/0.14.2.tar.gz
sha256: cf2e972b783ba66334a79a30f6b3a1ea794a1dc574d6c3bebae5ffd2f0399571
cleanup:
- /mkspecs
# Loudness normalization library
- name: libebur128
buildsystem: cmake-ninja
config-opts:
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
sources:
- type: archive
url: https://github.com/jiixyj/libebur128/archive/refs/tags/v1.2.6.tar.gz
sha256: baa7fc293a3d4651e244d8022ad03ab797ca3c2ad8442c43199afe8059faa613
# Musical key estimation library
- name: libkeyfinder
buildsystem: cmake-ninja
config-opts:
# Disable tests
- -DBUILD_TESTING=OFF
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
sources:
- type: archive
url: https://github.com/mixxxdj/libkeyfinder/archive/refs/tags/2.2.8.tar.gz
sha256: a54fc6c5ff435bb4b447f175bc97f9081fb5abf0edd5d125e6f5215c8fff4d11
# DJ record database access library
- name: libdjinterop
buildsystem: cmake-ninja
config-opts:
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
sources:
- type: archive
url: https://github.com/xsco/libdjinterop/archive/refs/tags/0.21.0.tar.gz
sha256: 160d4e09b25e859816a6b664058e7c6bc5cd889adeb188a9721c2b65d2133641
# Mixxx development branch
- name: mixxx
buildsystem: cmake-ninja
config-opts:
# Disable udev rules install
- -DINSTALL_USER_UDEV_RULES=OFF
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
post-install:
- desktop-file-edit --set-key="Name" --set-value="Mixxx (Dev)" ${FLATPAK_DEST}/share/applications/org.mixxx.Mixxx.desktop
- desktop-file-edit --set-key="Exec" --set-value="mixxx %U" ${FLATPAK_DEST}/share/applications/org.mixxx.Mixxx.desktop
- mv ${FLATPAK_DEST}/bin/mixxx ${FLATPAK_DEST}/bin/mixxx.bin
- install -Dm755 mixxx.sh ${FLATPAK_DEST}/bin/mixxx
- install -d /app/extensions/Plugins
sources:
- type: git
url: https://github.com/cr7pt0gr4ph7/mixxx.git
branch: staging
- type: file
path: org.mixxx.Mixxx.metainfo.xml
- type: script
dest-filename: mixxx.sh
commands:
- export LV2_PATH=$HOME/.lv2:/app/extensions/Plugins/lv2:/app/lib/lv2
- exec mixxx.bin "$@"