-
Notifications
You must be signed in to change notification settings - Fork 0
/
net.purrdata.PurrData.yml
172 lines (167 loc) · 7.08 KB
/
net.purrdata.PurrData.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
id: net.purrdata.PurrData
runtime: org.freedesktop.Platform
runtime-version: '23.08'
sdk: org.freedesktop.Sdk
command: pd-wrapper.sh
finish-args:
# Display
- --share=ipc
- --socket=x11
- --device=dri
# Audio
- --socket=pulseaudio
- --filesystem=xdg-run/pipewire-0
- --system-talk-name=org.freedesktop.UPower
# Filesystem access (pd doesn't yet work with portals)
- --filesystem=host
# 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/pkgconfig
- /lib/pd-l2ork/Makefile.am
- /lib/pd-l2ork/README.txt
- /lib/pd-l2ork/bin/todo.txt
- /lib/pd-l2ork/bin/nw/credits.html
modules:
- shared-modules/lua5.3/lua-5.3.5.json
# (optional) For fluidsynth
- shared-modules/linux-audio/ladspa.json
- fluidsynth.json
- name: purr-data
buildsystem: autotools
subdir: pd/src
config-opts: [--disable-portaudio, --enable-alsa, --disable-oss, --enable-jack]
sources:
- type: git
url: https://github.com/agraef/purr-data/
tag: 2.19.3
commit: e9fca4f80666b702ccd2d74e77dbfd8ef630d62a
x-checker-data:
type: json
url: https://github.com/gitapi/repos/agraef/purr-data/releases/latest
tag-query: .tag_name
version-query: $tag
is-main-source: true
- type: patch
path: patch/gnu-make-parallel.patch
- type: patch
path: patch/no-rsync-during-install.patch
- name: pd-externals
buildsystem: simple
subdir: externals
build-commands:
- |
make -j ${FLATPAK_BUILDER_N_JOBS} LUA_LIBS="-L/app/lib -llua" prefix=/app \
adaptive arraysize autotune bassemu boids comport creb cxc cyclone earplug ekext ext13 fftease \
flatgui freeverb 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 pdlua pdogg plugin pmpd \
rjlib sigpack smlib tof unauthorized vbap windowing
- make -j ${FLATPAK_BUILDER_N_JOBS} LDFLAGS=-L/app/lib prefix=/app fluid
- |
make -j ${FLATPAK_BUILDER_N_JOBS} DESTDIR=/ LUA_LIBS="-L/app/lib -llua" prefix=/app \
adaptive_install arraysize_install autotune_install bassemu_install \
boids_install comport_install creb_install cxc_install cyclone_install \
earplug_install ekext_install ext13_install fftease_install \
flatgui_install fluid_install freeverb_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 \
jasch_lib_install loaders-libdir_install lyonpotpourri_install \
mapping_install markex_install maxlib_install mjlib_install \
moonlib_install motex_install mrpeach_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
# The following externals from the purr-data repo are not built:
#
# bsaylor -- needs fftw
# dsis -- segfault during configure !?
# iemgui -- requires a config.h that it doesn't have
# moocow -- fails to configure
# oscx -- fails to configure
# zexy -- fails to configure
sources:
- type: git
url: https://github.com/agraef/purr-data/
tag: 2.19.3
commit: e9fca4f80666b702ccd2d74e77dbfd8ef630d62a
x-checker-data:
type: json
url: https://github.com/gitapi/repos/agraef/purr-data/releases/latest
tag-query: .tag_name
version-query: $tag
- name: pd-abstractions
buildsystem: simple
subdir: abstractions
build-commands:
- make -j ${FLATPAK_BUILDER_N_JOBS} DESTDIR=/ prefix=/app install
sources:
- type: git
url: https://github.com/agraef/purr-data/
tag: 2.19.3
commit: e9fca4f80666b702ccd2d74e77dbfd8ef630d62a
x-checker-data:
type: json
url: https://github.com/gitapi/repos/agraef/purr-data/releases/latest
tag-query: .tag_name
version-query: $tag
- name: purr-data-integration
buildsystem: simple
build-commands:
# These commands run in the 'subdir' that we set, but the sources appear at
# the top level hence the `../..` everywhere.
- 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 -m 755 packages/linux_flatpak/pd-wrapper.sh /app/bin
# .desktop file (so we appear in list of applications)
- install -d /app/share/applications/
- install -m 644 packages/linux_flatpak/net.purrdata.PurrData.desktop /app/share/applications/
# AppStream metadata (for app store / package manager)
- install -d /app/share/metainfo/
- install -m 644 net.purrdata.PurrData.metainfo.xml /app/share/metainfo
# icon (for everyone)
- install -d /app/share/icons/hicolor/scalable/apps
- install -m 644 packages/linux_flatpak/net.purrdata.PurrData.svg /app/share/icons/hicolor/scalable/apps/
# add mime type to .pd files
- install -Dm644 packages/linux_make/purr-data.xml ${FLATPAK_DEST}/share/mime/packages/${FLATPAK_ID}.xml
# Default settings (mostly needed to set up the PD library search paths).
- install -m 644 default.settings /app/lib/pd-l2ork
# Audio Plugins
- install -d /app/extensions/Plugins
sources:
- type: git
url: https://github.com/agraef/purr-data/
tag: 2.19.3
commit: e9fca4f80666b702ccd2d74e77dbfd8ef630d62a
x-checker-data:
type: json
url: https://github.com/gitapi/repos/agraef/purr-data/releases/latest
tag-query: .tag_name
version-query: $tag
- type: file
# Using an binary x86_64 build of nw.js makes me sad. There are ARM packages
# available from the nw.js website. For other platforms, it's difficult but
# possible to build nw.js and Chromium from source, good luck!
url: https://dl.nwjs.io/v0.42.3/nwjs-v0.42.3-linux-x64.tar.gz
sha256: 4802a3a32767ff8908aef8e91e11d81e7b515b32a09c9ab82c09edf91e49d99e
dest-filename: nwjs.tar.gz
# FIXME: there is an upstream version of this file but the maintainers don't update
# the <releases> section. We need to autogenerate this section somehow, see
# https://blog.tenstral.net/2020/03/maintain-release-info-easily-in-metainfo-files.html
- type: file
path: net.purrdata.PurrData.metainfo.xml
- type: file
path: default.settings
- type: patch
path: patch/flatpak-alsa-pulse.patch