blob: 3c42109c7c24ed4b6b3402f98c25e61ac26ef29f (
plain)
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
|
# Maintainer: OSAMC <https://github.com/osam-cologne/archlinux-proaudio>
# Contributor: Phil A. <flying-sheep@web.de>
# Contributor: David Runge <dave@sleepmap.de>
# Contributor: Adrain Sinclair <adrian at adrusi dot com>
# Contributor: Miroslav Koškár <http://mkoskar.com/>
# Contributor: Florian Hülsmann <fh@cbix.de>
_name=Rack
pkgname=vcvrack
pkgver=2.6.2
pkgrel=1
pkgdesc='Open-source Eurorack modular synthesizer simulator'
url='https://vcvrack.com/'
license=(LicenseRef-custom GPL-3.0-or-later)
arch=(aarch64 x86_64)
_plugin_name=Fundamental
_plugin_ver=2.6.1
_plugin_pkg=vcvrack-free
_libsamplerate_ver=0.1.9
depends=(glfw jansson nanosvg)
makedepends=(alsa-lib autoconf cmake curl ghc-filesystem git glew jack jq libarchive libpulse
libxrandr openssl rtmidi simde speexdsp zstd)
provides=("$_plugin_pkg=$_plugin_ver" vcvrack-sdk)
groups=(pro-audio)
source=(
"git+https://github.com/VCVRack/$_name#tag=v$pkgver"
'git+https://bitbucket.org/j_norberg/fuzzysearchdatabase'
'git+https://github.com/VCVRack/nanovg'
'git+https://github.com/AndrewBelt/osdialog'
'git+https://github.com/VCVRack/oui-blendish'
'git+https://bitbucket.org/jpommier/pffft'
'git+https://github.com/VCVRack/rtaudio'
'git+https://github.com/codeplea/tinyexpr'
"git+https://github.com/libsndfile/libsamplerate#tag=$_libsamplerate_ver"
"git+https://github.com/VCVRack/$_plugin_name#tag=v$_plugin_ver"
'arm64-yield.patch'
'plugins.patch'
'wayland.patch'
'wmclass.patch'
'vcvrack.sh'
'vcvrack.desktop'
'vcvrack.xml'
'profile.sh'
'trademark.eml'
)
sha256sums=('c402672833a4a5f8136af64ada87a650e37f086cdbfbea1d2fb90ec69232f44b'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'c80f10c74848d15d9499ff602ba1b10fcfc77d87f5f578ecc4378590ef533b87'
'f79c5873d7d60c942d941700c9b1cddcedb0c1da6dd1196851aefc5c419dcd14'
'9c981aabae8f93d09cf94aeaf904b8855abe9a94e30b32cbb6f77b00c460e3d7'
'f030e6253b075efb9d3347599b5ce5df404c68a673f1a4fc7589d141cfb06a38'
'256c1b66caf5cee7744b8f6b392dccea670d7cf0f243607e83330e7f6282f0c8'
'a00a568bc582aa18b053987c31437585779e03b85b246157325624782cc5b829'
'5d30bfcce54219d5b95f1cafebae64503fbf4a46d10432c1e9a3c5cd78977096'
'50387308a3e93c35c26686c6268e6d6e0a4e4a959c62f7d57b0e02cfeb0de814'
'9b3fe6dd26f8c82925e6b9de3edf71d23438f46a2ffd3fc3ae087006d1a29f0d'
'e1da6ccf04bae3a2101151fec7ddd32e48ff92b0a1146b559fd3221c778d521f'
'1159629aa90abb7c972c0f630d55d018b88a6b3bc3ff0bb9466cc06982f38641')
prepare() {
cd $_name
# setup submodules
for _module in fuzzysearchdatabase nanovg osdialog oui-blendish pffft rtaudio tinyexpr; do
git submodule init dep/$_module
git config submodule.dep/$_module.url "$srcdir"/$_module
done
git -c protocol.file.allow=always submodule update
# libsamplerate needs static linking for some modules to load
ln -sf "$srcdir"/libsamplerate dep/libsamplerate-$_libsamplerate_ver
# fix missing __yield in gcc/arm64
patch -p1 -i ../arm64-yield.patch
# support building plugins and loading system-wide plugins
patch -p1 -i ../plugins.patch
# set proper window manager class
patch -p1 -i ../wmclass.patch
# fix for wayland
patch -p1 -i ../wayland.patch
}
build() {
cd $_name
# build deps
autoreconf -f -i dep/libsamplerate-$_libsamplerate_ver
_static_deps=(lib/lib{rtaudio,samplerate}.a)
make -C dep ${_static_deps[@]} \
include/{nanovg.h,blendish.h,osdialog.h,pffft.h,tinyexpr.h,FuzzySearchDatabase.hpp}
# build Rack
_ldflags=(-Wl,--whole-archive -static-libstdc++ ${_static_deps[@]/#/dep/}
-Wl,--no-whole-archive -shared -ldl
$(pkg-config --libs glew glfw3 jansson libcurl openssl libarchive libzstd \
speexdsp rtmidi alsa jack libpulse libpulse-simple)
)
make LDFLAGS+="${_ldflags[*]}" \
EXTRA_CXXFLAGS="-I/usr/include/nanosvg" \
STANDALONE_LDFLAGS="$LDFLAGS"
# build plugin
cd ../$_plugin_name
RACK_DIR=../$_name make dist
}
package() {
depends+=(libarchive.so libasound.so libcrypto.so libcurl.so libGL.so libGLEW.so libjack.so
libpulse-simple.so libpulse.so librtmidi.so libspeexdsp.so zenity)
cd $_name
install -vDm755 Rack -t "$pkgdir"/usr/lib/$pkgname
install -vDm755 libRack.so -t "$pkgdir"/usr/lib
install -vDm755 "$srcdir"/vcvrack.sh "$pkgdir"/usr/bin/$pkgname
cp -va template.vcv Core.json cacert.pem res translations -t "$pkgdir"/usr/lib/$pkgname
# SDK
install -vDm644 dep/include/*.h -t "$pkgdir"/usr/include/$pkgname/dep
cp -va include/* -t "$pkgdir"/usr/include/$pkgname
install -vDm644 *.mk -t "$pkgdir"/usr/share/$pkgname
install -vDm644 "$srcdir"/profile.sh "$pkgdir"/etc/profile.d/$pkgname.sh
# desktop integration
install -vDm644 "$srcdir"/$pkgname.desktop -t "$pkgdir"/usr/share/applications
install -vDm644 "$srcdir"/$pkgname.xml -t "$pkgdir"/usr/share/mime/packages
install -vDm644 res/icon.png "$pkgdir"/usr/share/pixmaps/$pkgname.png
# licenses
install -vDm644 LICENSE.md "$srcdir"/trademark.eml -t "$pkgdir"/usr/share/licenses/$pkgname
# plugin
cd ../$_plugin_name
install -d "$pkgdir"/usr/lib/$pkgname/plugins
cp -va dist/$_plugin_name -t "$pkgdir"/usr/lib/$pkgname/plugins
}
|