forked from flathub/io.github.pd_l2ork.Pd_L2Ork
-
Notifications
You must be signed in to change notification settings - Fork 0
/
io.github.pd_l2ork.Pd_L2Ork.yml
231 lines (220 loc) · 8.29 KB
/
io.github.pd_l2ork.Pd_L2Ork.yml
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
id: io.github.pd_l2ork.Pd_L2Ork
runtime: org.freedesktop.Platform
runtime-version: '23.08'
sdk: org.freedesktop.Sdk
command: pd-wrapper.sh
finish-args:
# Display
- --share=ipc
- --socket=x11
#- --socket=wayland
- --device=dri
# Audio
- --socket=pulseaudio
- --filesystem=xdg-run/pipewire-0
# Filesystem access (pd doesn't yet work with portals)
- --filesystem=home
# MIDI access (Flatpak doesn't yet support exposing only MIDI devices)
- --device=all
# Share network access
- --share=network
# Linux Audio plugins
- --env=LADSPA_PATH=/app/extensions/Plugins/ladspa:/app/lib/ladspa
add-extensions:
org.freedesktop.LinuxAudio.Plugins:
directory: extensions/Plugins
version: '23.08'
add-ld-path: lib
merge-dirs: ladspa
subdirectories: true
no-autodownload: true
cleanup:
- /include/*
- /lib/pd-l2ork/Makefile.am
- /lib/pd-l2ork/README.txt
- /lib/pd-l2ork/bin/todo.txt
- /lib/pd-l2ork/bin/nw/credits.html
- /etc
- /lib/pkgconfig
- '*.a'
- '*.la'
- /share/info
- /share/man
modules:
- name: pd-l2ork
buildsystem: autotools
subdir: pd/src
config-opts: [ '--disable-portaudio', '--enable-alsa', '--disable-oss', '--enable-jack' ]
sources:
- type: git
url: https://github.com/pd-l2ork/pd-l2ork/
tag: '20241111'
commit: a4c3170740bea4d9573b8fa1635b77ff3eb57e4d
- type: patch
path: patch/no-rsync-during-install.patch
# For Gem library
- shared-modules/glu/glu-9.json
# For fluid~ object
- shared-modules/linux-audio/fluidsynth2.json
# For LADSPA support
- shared-modules/linux-audio/ladspa.json
# For pdlua
- shared-modules/lua5.3/lua-5.3.5.json
# For the OSCx library
- name: libtirpc
config-opts:
- --disable-gssapi
sources:
- type: archive
url: https://downloads.sourceforge.net/sourceforge/libtirpc/libtirpc-1.3.1.tar.bz2
sha256: 245895caf066bec5e3d4375942c8cb4366adad184c29c618d97f724ea309ee17
# For bsaylor
- shared-modules/linux-audio/fftw3f.json
- name: pd-externals
buildsystem: simple
subdir: externals
build-commands:
# run Gem configure, so that iemgui can build, since it depends on it
# currently disabled, since we build gem below before iemgui
#- |
# make prefix=/app \
# gem_configure
# original, local testing build uses simply
#make ...
# for flathub, consider replacing make with this commented out version
# this needs to be tested. if it proves to work, we will be able to build
# with multiple cores in parallel.
#make -j ${FLATPAK_BUILDER_N_JOBS} ...
- |
make prefix=/app \
adaptive arraysize autotune bassemu boids comport creb cxc cyclone \
disis_flatpak earplug ekext ext13 fftease flatgui freeverb gem ggee hcs \
iem_ambi iem_bin_ambi iemlib iemguts iem_adaptfilt iemmatrix iemxmlrpc iem_delay \
iem_roomsim iem_spec2 iem_tab jasch_lib loaders-libdir lyonpotpourri mapping \
markex maxlib mjlib moonlib motex mrpeach pan pdcontainer pddp pdogg plugin pmpd \
rjlib sigpack smlib tof unauthorized vbap windowing zexy
# now onto more temperamental externals
- |
export BSAYLOR_FLATPAK_LDFLAGS=-L/app/lib && \
make prefix=/app \
bsaylor
- |
make prefix=/app LDFLAGS=-L/app/lib \
fluid
- |
export IEMGUI_FLATPAK_LINKER_FLAGS="-Wl,--export-dynamic -shared" && \
make prefix=/app LDFLAGS=-L/app/lib \
iemgui
- |
export MOOCOW_FLATPAK_CONFIGURE="--host=$(uname -m)-pc-linux-gnu" && \
make prefix=/app \
moocow
- |
export OSCX_FLATPAK_CONFIGURE_FLAGS="--host=$(uname -m)-pc-linux-gnu" && \
export OSCX_FLATPAK_LIBS="-ltirpc" && \
export OSCX_FLATPAK_LDFLAGS="-L/app/lib" && \
export OSCX_FLATPAK_INCLUDES="-I/app/include/tirpc" && \
make prefix=/app \
oscx
- |
make prefix=/app LUA_LIBS="-L/app/lib -llua" \
pdlua
# now let's install them
- |
make DESTDIR=/ prefix=/app \
adaptive_install arraysize_install autotune_install bassemu_install \
boids_install bsaylor_install \
comport_install creb_install cxc_install cyclone_install \
disis_install earplug_install ekext_install ext13_install fftease_install \
flatgui_install fluid_install freeverb_install gem_install ggee_install \
hcs_install iem_ambi_install iem_bin_ambi_install iemlib_install \
iemguts_install iem_adaptfilt_install iemmatrix_install iemxmlrpc_install \
iem_delay_install iem_roomsim_install iem_spec2_install iem_tab_install \
iemgui_install jasch_lib_install loaders-libdir_install lyonpotpourri_install \
mapping_install markex_install maxlib_install mjlib_install \
moocow_install moonlib_install motex_install mrpeach_install oscx_install \
pan_install pdcontainer_install pddp_install pdlua_install pdogg_install \
plugin_install pmpd_install rjlib_install sigpack_install smlib_install \
tof_install unauthorized_install vbap_install windowing_install zexy_install
sources:
- type: git
url: https://github.com/pd-l2ork/pd-l2ork/
tag: '20241111'
commit: a4c3170740bea4d9573b8fa1635b77ff3eb57e4d
- name: rpi-externals
buildsystem: simple
subdir: l2ork_addons/raspberry_pi
build-commands:
- ./makeall.sh
# disis_gpio is a dummy object since we are currently not building for RPi
# and running the real disis_gpio on a non RPi hardware will crash the entire app
# due to the way the upstream WiringPi library was designed
- cp -f disis_gpio_dummy/disis_gpio.pd_linux /app/lib/pd-l2ork/extra/disis_gpio.pd_linux
- cp -f disis_gpio/disis_gpio-help.pd /app/lib/pd-l2ork/extra/disis_gpio-help.pd
- cp -f disis_spi/disis_spi.pd_linux /app/lib/pd-l2ork/extra/disis_spi.pd_linux
- cp -f disis_spi/disis_spi-help.pd /app/lib/pd-l2ork/extra/disis_spi-help.pd
sources:
- type: git
url: https://github.com/pd-l2ork/pd-l2ork/
tag: '20241111'
commit: a4c3170740bea4d9573b8fa1635b77ff3eb57e4d
- name: pd-abstractions
buildsystem: simple
subdir: abstractions
build-commands:
- make DESTDIR=/ prefix=/app install
sources:
- type: git
url: https://github.com/pd-l2ork/pd-l2ork/
tag: '20241111'
commit: a4c3170740bea4d9573b8fa1635b77ff3eb57e4d
- name: pd-l2ork-integration
buildsystem: simple
build-commands:
# apps folder
- mkdir -p /app/lib/pd-l2ork/apps
- cp -rf apps/* /app/lib/pd-l2ork/apps/
# K12 externals
- mkdir -p /app/lib/pd-l2ork/extra/K12
- cp -rf l2ork_addons/K12/* /app/lib/pd-l2ork/extra/K12/
# install nw
- mkdir -p /app/lib/pd-l2ork/bin/nw
- tar -x -f nwjs.tar.gz -C /app/lib/pd-l2ork/bin/nw --strip-components=1
# wrapper script
- install -Dm755 packages/linux_flatpak/pd-wrapper.sh /app/bin
# .desktop file (so we appear in list of applications)
- install -Dm644 packages/linux_flatpak/io.github.pd_l2ork.Pd_L2Ork.desktop -t /app/share/applications/
# AppStream metadata (for app store / package manager)
- install -Dm644 packages/linux_flatpak/io.github.pd_l2ork.Pd_L2Ork.metainfo.xml -t /app/share/metainfo
# icon (for everyone)
- install -Dm644 packages/linux_flatpak/io.github.pd_l2ork.Pd_L2Ork.svg -t /app/share/icons/hicolor/scalable/apps/
# add mime type to .pd files
- install -Dm644 packages/linux_make/pd-l2ork.xml /app/share/mime/packages/io.github.pd_l2ork.Pd_L2Ork.xml
# default settings (mostly needed to set up the PD library search paths).
- install -m 644 packages/linux_flatpak/default.settings /app/lib/pd-l2ork
# K12 menu icons...
- install -d /app/lib/pd-l2ork/bin/K12-icons/
- cp -rf l2ork_addons/K12/icons-large/* /app/lib/pd-l2ork/bin/K12-icons/
# add arduino library
- cp -rf externals/hardware/arduino /app/lib/pd-l2ork/extra/
# add plugins folder
- install -d /app/extensions/Plugins
sources:
- type: git
url: https://github.com/pd-l2ork/pd-l2ork/
tag: '20241111'
commit: a4c3170740bea4d9573b8fa1635b77ff3eb57e4d
- type: file
# x86_64
url: https://dl.nwjs.io/v0.67.1/nwjs-sdk-v0.67.1-linux-x64.tar.gz
sha256: 9778278e8b935e97d613b793b029d952cde58cbd8c7c8240a246942f6ef1b945
dest-filename: nwjs.tar.gz
only-arches:
- x86_64
- type: file
# aarch64
url: https://l2ork.music.vt.edu/data/pd-l2ork/nwjs-v0.60.1-linux-arm64.tar.gz
sha256: c57fa2684680119789b5403630a24218db06f2713370b87cfab3cc6839409c25
dest-filename: nwjs.tar.gz
only-arches:
- aarch64