Switch to .pkg/.exe/.deb installers with Azure Trusted Signing

Replaces the zip-based ci/build.sh flow with installer outputs (Inno Setup
on Windows, productbuild on macOS, cpack DEB on Linux) signed via Microsoft
Trusted Signing on Windows and Apple Developer ID on macOS.

Plugin code: factory wavetables and presets now ship as files via the
installer rather than embedded BinaryData. PluginProcessor implements
getProgramDirectory/getFactoryProgramDirectories so gin scans factory
content from systemResourceRoot. First-run migration copies any presets
from the legacy com.socalabs/Wavetable/programs path into the new user
dir under Library/Audio/Presets/SocaLabs/Wavetable.

Bumps gin submodule to match Identity for getFactoryProgramDirectories
support.
This commit is contained in:
Roland Rabien 2026-04-29 13:23:23 -07:00
commit 130e626ea6
21 changed files with 879 additions and 262 deletions

View file

@ -0,0 +1,60 @@
<?xml version="1.0" encoding="utf-8"?>
<installer-gui-script minSpecVersion="2">
<title>Wavetable</title>
<organization>com.socalabs</organization>
<domains enable_anywhere="false" enable_currentUserHome="false" enable_localSystem="true"/>
<options customize="always" require-scripts="false" rootVolumeOnly="true"/>
<license file="EULA.rtf"/>
<welcome file="welcome.txt" mime-type="text/plain"/>
<choices-outline>
<line choice="com.socalabs.wavetable.vst"/>
<line choice="com.socalabs.wavetable.vst3"/>
<line choice="com.socalabs.wavetable.au"/>
<line choice="com.socalabs.wavetable.clap"/>
<line choice="com.socalabs.wavetable.resources"/>
</choices-outline>
<choice id="com.socalabs.wavetable.vst"
title="VST"
description="Install the VST plug-in to /Library/Audio/Plug-Ins/VST"
visible="true">
<pkg-ref id="com.socalabs.wavetable.vst.pkg"/>
</choice>
<choice id="com.socalabs.wavetable.vst3"
title="VST3"
description="Install the VST3 plug-in to /Library/Audio/Plug-Ins/VST3"
visible="true">
<pkg-ref id="com.socalabs.wavetable.vst3.pkg"/>
</choice>
<choice id="com.socalabs.wavetable.au"
title="Audio Unit"
description="Install the Audio Unit plug-in to /Library/Audio/Plug-Ins/Components"
visible="true">
<pkg-ref id="com.socalabs.wavetable.au.pkg"/>
</choice>
<choice id="com.socalabs.wavetable.clap"
title="CLAP"
description="Install the CLAP plug-in to /Library/Audio/Plug-Ins/CLAP"
visible="true">
<pkg-ref id="com.socalabs.wavetable.clap.pkg"/>
</choice>
<choice id="com.socalabs.wavetable.resources"
title="Factory Wavetables &amp; Presets"
description="Install factory content to /Library/Audio/Presets/SocaLabs/Wavetable"
visible="true"
enabled="false"
selected="true">
<pkg-ref id="com.socalabs.wavetable.resources.pkg"/>
</choice>
<pkg-ref id="com.socalabs.wavetable.vst.pkg" version="0">vst.pkg</pkg-ref>
<pkg-ref id="com.socalabs.wavetable.vst3.pkg" version="0">vst3.pkg</pkg-ref>
<pkg-ref id="com.socalabs.wavetable.au.pkg" version="0">au.pkg</pkg-ref>
<pkg-ref id="com.socalabs.wavetable.clap.pkg" version="0">clap.pkg</pkg-ref>
<pkg-ref id="com.socalabs.wavetable.resources.pkg" version="0">resources.pkg</pkg-ref>
</installer-gui-script>

View file

@ -0,0 +1,6 @@
#!/bin/sh
# Force the AU host registrar to rescan so the freshly installed Component is
# visible without a logout/reboot.
killall -9 AudioComponentRegistrar >/dev/null 2>&1
exit 0

View file

@ -0,0 +1,14 @@
#!/bin/sh
# Remove any prior install of Wavetable so the new bundle takes its place cleanly.
rm -Rf "/Library/Audio/Plug-Ins/VST/Wavetable.vst"
rm -Rf "/Library/Audio/Plug-Ins/VST3/Wavetable.vst3"
rm -Rf "/Library/Audio/Plug-Ins/Components/Wavetable.component"
rm -Rf "/Library/Audio/Plug-Ins/CLAP/Wavetable.clap"
# Wipe the previous shipped factory content so removed wavetables/presets from
# the old version don't linger. User content lives under ~/Library and is left alone.
rm -Rf "/Library/Audio/Presets/SocaLabs/Wavetable/Presets"
rm -Rf "/Library/Audio/Presets/SocaLabs/Wavetable/Wavetables"
exit 0

View file

@ -0,0 +1,17 @@
Wavetable by SocaLabs
=====================
This installer places the Wavetable plug-in in your system audio plug-in
folders along with the factory wavetable bank and factory presets.
Components:
• VST /Library/Audio/Plug-Ins/VST
• VST3 /Library/Audio/Plug-Ins/VST3
• Audio Unit /Library/Audio/Plug-Ins/Components
• CLAP /Library/Audio/Plug-Ins/CLAP
• Factory content /Library/Audio/Presets/SocaLabs/Wavetable
User-saved presets live under
~/Library/Audio/Presets/SocaLabs/Wavetable
and are not touched by this installer.