summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorRyan Algar2020-10-27 13:45:37 -0700
committerRyan Algar2020-10-27 13:45:37 -0700
commita98596d9ba08a40848c769fb5dcf6fd6106e7443 (patch)
tree426c7a9839b01ad92a97029da4acd26031c068f0
downloadaur-a98596d9ba08a40848c769fb5dcf6fd6106e7443.tar.gz
Initial working build
-rw-r--r--.SRCINFO43
-rw-r--r--AppConfig.patch8
-rw-r--r--Makefile.patch7
-rw-r--r--PKGBUILD94
4 files changed, 152 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..37152fff4fe7
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,43 @@
+pkgbase = odin2-synthesizer
+ pkgdesc = 24 voice polyphonic synthesizer, with modulation and FX. (Standalone, VST3, LV2)
+ pkgver = 2.2.4
+ pkgrel = 1
+ url = https://www.thewavewarden.com/odin2
+ arch = x86_64
+ license = GPL3
+ makedepends = atk
+ makedepends = cairo
+ makedepends = doxygen
+ makedepends = gdk-pixbuf2
+ makedepends = gendesk
+ makedepends = git
+ makedepends = graphviz
+ makedepends = gtk3
+ makedepends = harfbuzz
+ makedepends = libfreetype.so=6-64
+ makedepends = libjpeg-turbo
+ makedepends = libpng
+ makedepends = libsoup
+ makedepends = libx11
+ makedepends = libxext
+ makedepends = libxinerama
+ makedepends = lv2
+ makedepends = pango
+ makedepends = python
+ makedepends = webkit2gtk
+ depends = ttf-font
+ optdepends = ttf-dejavu: One of these may be needed for fonts to render correctly
+ optdepends = ttf-liberation: One of these may be needed for fonts to render correctly
+ backup = opt/odin2/odin2.conf
+ backup = opt/odin2/Soundbanks/User Patches
+ source = /odin2::git+https://github.com/TheWaveWarden/odin2.git
+ source = /JUCE::git+https://github.com/lv2-porting-project/JUCE.git
+ source = AppConfig.patch
+ source = Makefile.patch
+ sha256sums = SKIP
+ sha256sums = SKIP
+ sha256sums = SKIP
+ sha256sums = SKIP
+
+pkgname = odin2-synthesizer
+
diff --git a/AppConfig.patch b/AppConfig.patch
new file mode 100644
index 000000000000..9e34d451bed6
--- /dev/null
+++ b/AppConfig.patch
@@ -0,0 +1,8 @@
+18d17
+<
+19a19,23
+>
+> #define JucePlugin_Build_LV2 1
+> #define JucePlugin_LV2URI "https://www.thewavewarden.com/odin2"
+> #define JucePlugin_MaxNumInputChannels 2
+> #define JucePlugin_MaxNumOutputChannels 2
diff --git a/Makefile.patch b/Makefile.patch
new file mode 100644
index 000000000000..5d65325e3f2a
--- /dev/null
+++ b/Makefile.patch
@@ -0,0 +1,7 @@
+--- Makefile 2020-10-25 15:14:21.710302240 -0700
++++ MakePatched 2020-10-25 15:19:09.001404572 -0700
+@@ -798,3 +798,4 @@
+ -include $(OBJECTS_VST3:%.o=%.d)
+ -include $(OBJECTS_STANDALONE_PLUGIN:%.o=%.d)
+ -include $(OBJECTS_SHARED_CODE:%.o=%.d)
++include ../../LV2.mak
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..c17e0d88dae0
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,94 @@
+# Maintainer: Ryan Algar <ryzer@arch-linux>
+# Upstream: TheWaveWarden (Frederik Siepe) <info AT thewavewarden DOT com>
+
+pkgname=odin2-synthesizer
+pkgver=2.2.4
+pkgrel=1
+pkgdesc='24 voice polyphonic synthesizer, with modulation and FX. (Standalone, VST3, LV2)'
+license=('GPL3')
+arch=('x86_64')
+url='https://www.thewavewarden.com/odin2'
+#conflicts=('odin2-synthesizer-bin')
+
+depends=(ttf-font)
+makedepends=('atk'
+ 'cairo'
+ 'doxygen'
+ 'gdk-pixbuf2'
+ 'gendesk'
+ 'git'
+ 'graphviz'
+ 'gtk3'
+ 'harfbuzz'
+ 'libfreetype.so=6-64'
+ 'libjpeg-turbo'
+ 'libpng'
+ 'libsoup'
+ 'libx11'
+ 'libxext'
+ 'libxinerama'
+ 'lv2'
+ 'pango'
+ 'python'
+ 'webkit2gtk')
+optdepends=('ttf-dejavu: One of these may be needed for fonts to render correctly'
+ 'ttf-liberation: One of these may be needed for fonts to render correctly')
+
+source=("${srcdir}/${pkgname%-synthesizer}::git+https://github.com/TheWaveWarden/odin2.git"
+ "${srcdir}/JUCE::git+https://github.com/lv2-porting-project/JUCE.git"
+ 'AppConfig.patch'
+ 'Makefile.patch')
+sha256sums=('SKIP' 'SKIP' 'SKIP' 'SKIP')
+
+backup=('opt/odin2/odin2.conf' 'opt/odin2/Soundbanks/User Patches')
+
+
+prepare() {
+ # Checkout the 6.0.1 branch of JUCE, and build Projucer
+ cd "${srcdir}/JUCE"
+ git checkout -q a30f7357863a7d480a771e069abf56909cdf0e13
+ cd extras/Projucer/Builds/LinuxMakefile
+ make -j"$(nproc)" CONFIG=Release
+
+ # Export Odin 2 build files with Projucer
+ git checkout lv2
+ git checkout -q c51d03f11be20cb35eb28e8016e9a81827b50339
+ export GDK_BACKEND=x11
+ build/Projucer --set-global-search-path linux defaultJuceModulePath "${srcdir}/JUCE/modules"
+ build/Projucer --resave "${srcdir}/${pkgname%-synthesizer}/Odin.jucer"
+
+ # Patch Odin 2 build files for LV2 Support
+ patch -N "${srcdir}/${pkgname%-synthesizer}/JuceLibraryCode/AppConfig.h" "${srcdir}/AppConfig.patch"
+ patch -N "${srcdir}/${pkgname%-synthesizer}/Builds/LinuxMakefile/Makefile" "${srcdir}/Makefile.patch"
+}
+
+pkgver() {
+ "${srcdir}/JUCE/extras/Projucer/Builds/LinuxMakefile/build/Projucer" --get-version "${srcdir}/${pkgname%-synthesizer}/Odin.jucer"
+}
+
+build() {
+ cd "${srcdir}/odin2/Builds/LinuxMakefile"
+ make clean
+ make CONFIG=Release -j"$(nproc)"
+}
+
+check() {
+ cd "${srcdir}/odin2/Builds/LinuxMakefile/build"
+ [[ -d Odin2.vst3 && -d Odin2_.lv2 ]] || return 1
+}
+
+package() {
+ install -Dm 755 "${srcdir}/odin2/Builds/LinuxMakefile/build/Odin2.vst3/Contents/x86_64-linux/Odin2.so" "${pkgdir}/usr/lib/vst3/odin2"
+
+ install -Dm 755 "${srcdir}/odin2/Builds/LinuxMakefile/build/Odin2_.lv2/Odin2_.so" "${pkgdir}/usr/lib/lv2/odin2/Odin2.so"
+ install -Dm 644 "${srcdir}/odin2/Builds/LinuxMakefile/build/Odin2_.lv2/Odin2_.ttl" "${pkgdir}/usr/lib/lv2/odin2/Odin2.ttl"
+ install -Dm 644 "${srcdir}/odin2/Builds/LinuxMakefile/build/Odin2_.lv2/presets.ttl" "${pkgdir}/usr/lib/lv2/odin2/presets.ttl"
+ install -Dm 644 "${srcdir}/odin2/Builds/LinuxMakefile/build/Odin2_.lv2/manifest.ttl" "${pkgdir}/usr/lib/lv2/odin2/manifest.ttl"
+
+ install -Dm 755 "${srcdir}/odin2/Builds/LinuxMakefile/build/Odin2" "${pkgdir}/usr/bin/Odin2"
+
+ mkdir -pm 777 "${pkgdir}/opt/odin2" "${pkgdir}/opt/odin2/Soundbanks/User Patches"
+ install -d "${srcdir}/odin2/Soundbanks/Factory Presets" "${pkgdir}/opt/odin2/Soundbanks/Factory Presets"
+
+ rm -rf ${srcdir}
+}