From aefac4e88b6044f1914deadc1e64d32ee07a50ac Mon Sep 17 00:00:00 2001 From: dreamer Date: Tue, 23 Dec 2025 09:57:31 +0100 Subject: [PATCH 01/10] update hvcc --- hvcc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hvcc b/hvcc index b96467a..a21cc06 160000 --- a/hvcc +++ b/hvcc @@ -1 +1 @@ -Subproject commit b96467a91f7c4dca0f12e4bfd99b5ec23ae31222 +Subproject commit a21cc06a43cc8bec3851ecbf569dd2bd24af08c2 From 21fae8ab97603740f907abbe0c6ea75d726a2ecb Mon Sep 17 00:00:00 2001 From: dreamer Date: Tue, 23 Dec 2025 09:59:23 +0100 Subject: [PATCH 02/10] use macos-15-intel --- .github/workflows/run_script.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run_script.yml b/.github/workflows/run_script.yml index 3b21efe..6dafa71 100644 --- a/.github/workflows/run_script.yml +++ b/.github/workflows/run_script.yml @@ -5,7 +5,7 @@ on: [push, workflow_dispatch] jobs: build-macos: name: MacOS Univeral - runs-on: macos-13 + runs-on: macos-15-intel steps: - uses: actions/checkout@v4 with: From 48b681216d6395601d3fc511197931e92878099d Mon Sep 17 00:00:00 2001 From: dreamer Date: Tue, 23 Dec 2025 10:02:50 +0100 Subject: [PATCH 03/10] update dpf deps; update changelog --- CHANGELOG.md | 7 +++++++ build.sh | 2 +- dpf | 2 +- dpf-widgets | 2 +- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e90eded..8d4687d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,13 @@ CHANGELOG ===== +0.8.0 +----- + +* update hvcc +* update dpf and dpf-widgets +* use macos-15-intel + 0.7.0 ----- diff --git a/build.sh b/build.sh index 532abc5..9a3c88a 100755 --- a/build.sh +++ b/build.sh @@ -198,7 +198,7 @@ mkdir -p Heavy/bin/Heavy if [[ "$OSTYPE" == "linux-gnu"* ]]; then mv ./hvcc/dist/pyinstaller/manylinux_2_35_x86_64/Heavy Heavy/bin/Heavy/ elif [[ "$OSTYPE" == "darwin"* ]]; then - mv ./hvcc/dist/pyinstaller/macosx_13_0_x86_64/Heavy Heavy/bin/Heavy/ + mv ./hvcc/dist/pyinstaller/macosx_15_0_x86_64/Heavy Heavy/bin/Heavy/ /usr/bin/codesign --force -s "Developer ID Application: Timothy Schoen (7SV7JPRR2L)" ./Heavy/bin/* /usr/bin/codesign --force -s "Developer ID Application: Timothy Schoen (7SV7JPRR2L)" ./Heavy/bin/Heavy/* fi diff --git a/dpf b/dpf index d47aaad..4238e1c 160000 --- a/dpf +++ b/dpf @@ -1 +1 @@ -Subproject commit d47aaadfdfe47b7841bf03b76971fa83579f6a64 +Subproject commit 4238e1c7f0351bbe488d79f0899c540543ac7583 diff --git a/dpf-widgets b/dpf-widgets index 4f3fc42..d89febb 160000 --- a/dpf-widgets +++ b/dpf-widgets @@ -1 +1 @@ -Subproject commit 4f3fc4296e3e71d9b44d1821aaf2051de643b6e8 +Subproject commit d89febb337cc8154caef694889c90ddf108a0ce9 From 8248b6e4dd09ff56e54793bab904bc86b3ba6a0f Mon Sep 17 00:00:00 2001 From: dreamer Date: Tue, 23 Dec 2025 10:14:02 +0100 Subject: [PATCH 04/10] install pyinstaller into env --- build.bat | 2 +- build.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.bat b/build.bat index 25ab7f5..96cd535 100644 --- a/build.bat +++ b/build.bat @@ -53,7 +53,7 @@ powershell -Command "$ProgressPreference = 'SilentlyContinue'; Expand-Archive Fi :: Package heavy using pyinstaller python -m ensurepip -python -m pip install poetry poetry-pyinstaller-plugin +python -m pip install poetry poetry-pyinstaller-plugin pyinstaller cd hvcc poetry build diff --git a/build.sh b/build.sh index 9a3c88a..cf07312 100755 --- a/build.sh +++ b/build.sh @@ -187,7 +187,7 @@ cp -rf ./dpf-widgets ./Heavy/lib/dpf-widgets # Package Heavy with pyinstaller python3 -m ensurepip -python3 -m pip install poetry poetry-pyinstaller-plugin +python3 -m pip install poetry poetry-pyinstaller-plugin pyinstaller pushd hvcc poetry build From 8a2ce17a8cfe2cb94f731611078ff5ba898153b3 Mon Sep 17 00:00:00 2001 From: dreamer Date: Tue, 23 Dec 2025 10:59:17 +0100 Subject: [PATCH 05/10] use github links for arm-gcc; add status checks to all downloads --- build.sh | 38 ++++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/build.sh b/build.sh index cf07312..dd505e6 100755 --- a/build.sh +++ b/build.sh @@ -4,17 +4,23 @@ export MACOSX_DEPLOYMENT_TARGET="10.6" # Download arm compiler for compiling on daisy if [[ "$OSTYPE" == "darwin"* ]]; then - URL="https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-mac.tar.bz2" + URL="https://github.com/plugdata-team/plugdata-heavy-toolchain/releases/download/arm_gcc/gcc-arm-none-eabi-10-2020-q4-major-mac.tar.bz2" # Aarch64 Linux elif [[ $(uname -m) == "aarch64" ]]; then - URL="https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-aarch64-linux.tar.bz2" + URL="https://github.com/plugdata-team/plugdata-heavy-toolchain/releases/download/arm_gcc/gcc-arm-none-eabi-10-2020-q4-major-aarch64-linux.tar.bz2" # x86_64 Linux else - URL="https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2" + URL="https://github.com/plugdata-team/plugdata-heavy-toolchain/releases/download/arm_gcc/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2" fi curl -fSL -A "Mozilla/4.0" -o gcc-arm-none-eabi.tar.bz2 $URL +status=$? +if [ $status -ne 0 ]; then + echo "Failed to download gcc-arm-none-eabi" + exit $status +fi + echo "Extracting..." mkdir gcc-arm-none-eabi pushd gcc-arm-none-eabi @@ -32,7 +38,11 @@ cp -rf gcc-arm-none-eabi/gcc-arm-*/arm-none-eabi ./Heavy if [[ "$OSTYPE" == "linux-gnu"* ]]; then curl -fSL -A "Mozilla/4.0" -o x86_64-anywhere-linux-gnu-v5.tar.xz https://github.com/theopolis/build-anywhere/releases/download/v5/x86_64-anywhere-linux-gnu-v5.tar.xz - + status=$? + if [ $status -ne 0 ]; then + echo "Failed to download x86_64-anywhere-linux-gnu-v5.tar.xz" + exit $status + fi mkdir build-anywhere pushd build-anywhere tar -xf ../x86_64-anywhere-linux-gnu-v5.tar.xz @@ -105,6 +115,11 @@ if [[ "$OSTYPE" == "linux-gnu"* ]]; then # Get libasound TEMP_DEB2="$(mktemp)" wget -O "$TEMP_DEB2" 'http://ftp.de.debian.org/debian/pool/main/a/alsa-lib/libasound2_1.2.4-1.1_amd64.deb' + status=$? + if [ $status -ne 0 ]; then + echo "Failed to download libasound2" + exit $status + fi ar x "$TEMP_DEB2" tar xvf data.tar.xz cp ./usr/lib/x86_64-linux-gnu/libasound.so.2.0.0 ./Heavy/x86_64-anywhere-linux-gnu/sysroot/lib/libasound.so @@ -129,6 +144,11 @@ fi # build a version of GNU make that has no dependencies curl -fSL -A "Mozilla/4.0" -o make-4.4.tar.gz https://ftpmirror.gnu.org/make/make-4.4.tar.gz +status=$? +if [ $status -ne 0 ]; then + echo "Failed to download make-4.4" + exit $status +fi tar -xf make-4.4.tar.gz pushd make-4.4 @@ -170,11 +190,21 @@ popd if [[ "$OSTYPE" == "linux-gnu"* ]]; then FS_URL="https://github.com/Wasted-Audio/FirmwareSender_plugdata/releases/download/plugdata/FirmwareSender-ubuntu.zip" curl -fSL -A "Mozilla/4.0" -o FirmwareSender-ubuntu.zip $FS_URL + status=$? + if [ $status -ne 0 ]; then + echo "Failed to download FirmwareSender-ubuntu" + exit $status + fi unzip FirmwareSender-ubuntu.zip -d FirmwareSender-ubuntu cp ./FirmwareSender-ubuntu/FirmwareSender OwlProgram/Tools/ elif [[ "$OSTYPE" == "darwin"* ]]; then FS_URL="https://github.com/Wasted-Audio/FirmwareSender_plugdata/releases/download/plugdata/FirmwareSender-osx.zip" curl -fSL -A "Mozilla/4.0" -o FirmwareSender-osx.zip $FS_URL + status=$? + if [ $status -ne 0 ]; then + echo "Failed to download FirmwareSender-osx" + exit $status + fi unzip FirmwareSender-osx.zip -d FirmwareSender-osx cp ./FirmwareSender-osx/FirmwareSender OwlProgram/Tools/ fi From 542be6eb7822de5088bf3ca233325bdff0e606c6 Mon Sep 17 00:00:00 2001 From: dreamer Date: Tue, 23 Dec 2025 13:34:42 +0100 Subject: [PATCH 06/10] docs cleanup path --- build.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/build.sh b/build.sh index dd505e6..56c1a95 100755 --- a/build.sh +++ b/build.sh @@ -36,6 +36,9 @@ cp -rf gcc-arm-none-eabi/gcc-arm-*/share ./Heavy # cp -rf gcc-arm-none-eabi/gcc-arm-*/include ./Heavy cp -rf gcc-arm-none-eabi/gcc-arm-*/arm-none-eabi ./Heavy +# some cleanup +rm -rf ./Heavy/share/doc* + if [[ "$OSTYPE" == "linux-gnu"* ]]; then curl -fSL -A "Mozilla/4.0" -o x86_64-anywhere-linux-gnu-v5.tar.xz https://github.com/theopolis/build-anywhere/releases/download/v5/x86_64-anywhere-linux-gnu-v5.tar.xz status=$? @@ -70,7 +73,6 @@ if [[ "$OSTYPE" == "linux-gnu"* ]]; then rm -rf ./x86_64-anywhere-linux-gnu/sysroot/usr/src* rm -rf ./x86_64-anywhere-linux-gnu/sysroot/usr/sbin* rm -rf ./x86_64-anywhere-linux-gnu/sysroot/usr/share/doc* - rm -rf ./share/doc* # copy scripts From a2cc14101de2e7353ea322124a1930d1fe373be4 Mon Sep 17 00:00:00 2001 From: dreamer Date: Tue, 23 Dec 2025 14:19:55 +0100 Subject: [PATCH 07/10] try installing project with dependencies before building --- build.bat | 1 + build.sh | 1 + 2 files changed, 2 insertions(+) diff --git a/build.bat b/build.bat index 96cd535..20caecf 100644 --- a/build.bat +++ b/build.bat @@ -56,6 +56,7 @@ python -m ensurepip python -m pip install poetry poetry-pyinstaller-plugin pyinstaller cd hvcc +pip install -e . poetry build cd .. diff --git a/build.sh b/build.sh index 56c1a95..09c9fb4 100755 --- a/build.sh +++ b/build.sh @@ -222,6 +222,7 @@ python3 -m ensurepip python3 -m pip install poetry poetry-pyinstaller-plugin pyinstaller pushd hvcc +pip install -e . poetry build popd From 881e8a271b3046fc1e76ab2ce0c4f6b5e4e18a94 Mon Sep 17 00:00:00 2001 From: dreamer Date: Tue, 23 Dec 2025 15:50:20 +0100 Subject: [PATCH 08/10] update hvcc to 0.15.0 --- hvcc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hvcc b/hvcc index a21cc06..d038dae 160000 --- a/hvcc +++ b/hvcc @@ -1 +1 @@ -Subproject commit a21cc06a43cc8bec3851ecbf569dd2bd24af08c2 +Subproject commit d038daefb97b1d205f8d6ee3c220431b37bb077b From 5c05d079d69ee51cfbbf6008b200a18246e46401 Mon Sep 17 00:00:00 2001 From: Timothy Schoen <44585538+timothyschoen@users.noreply.github.com> Date: Tue, 30 Dec 2025 01:32:06 +0100 Subject: [PATCH 09/10] Fix Heavy codesigning --- build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sh b/build.sh index 09c9fb4..20ee041 100755 --- a/build.sh +++ b/build.sh @@ -233,7 +233,7 @@ if [[ "$OSTYPE" == "linux-gnu"* ]]; then elif [[ "$OSTYPE" == "darwin"* ]]; then mv ./hvcc/dist/pyinstaller/macosx_15_0_x86_64/Heavy Heavy/bin/Heavy/ /usr/bin/codesign --force -s "Developer ID Application: Timothy Schoen (7SV7JPRR2L)" ./Heavy/bin/* - /usr/bin/codesign --force -s "Developer ID Application: Timothy Schoen (7SV7JPRR2L)" ./Heavy/bin/Heavy/* + /usr/bin/codesign --force -s "Developer ID Application: Timothy Schoen (7SV7JPRR2L)" ./Heavy/bin/Heavy/Heavy fi cp VERSION ./Heavy/VERSION From e098ad8fcb3a6e174cf7a21dbf17757f2a2903e0 Mon Sep 17 00:00:00 2001 From: Timothy Schoen <44585538+timothyschoen@users.noreply.github.com> Date: Tue, 30 Dec 2025 02:06:12 +0100 Subject: [PATCH 10/10] Notarize macOS executable --- .github/workflows/run_script.yml | 3 +++ build.sh | 24 ++++++++++++++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/.github/workflows/run_script.yml b/.github/workflows/run_script.yml index 6dafa71..767a4db 100644 --- a/.github/workflows/run_script.yml +++ b/.github/workflows/run_script.yml @@ -40,6 +40,9 @@ jobs: - name: Run Packaging Script working-directory: ${{github.workspace}} + env: + AC_USERNAME: ${{ secrets.AC_USERNAME }} + AC_PASSWORD: ${{ secrets.AC_PASSWORD }} run: CLEAR_INTL=1 ./build.sh - name: Compress Artifacts diff --git a/build.sh b/build.sh index 20ee041..d7dde9a 100755 --- a/build.sh +++ b/build.sh @@ -232,8 +232,28 @@ if [[ "$OSTYPE" == "linux-gnu"* ]]; then mv ./hvcc/dist/pyinstaller/manylinux_2_35_x86_64/Heavy Heavy/bin/Heavy/ elif [[ "$OSTYPE" == "darwin"* ]]; then mv ./hvcc/dist/pyinstaller/macosx_15_0_x86_64/Heavy Heavy/bin/Heavy/ - /usr/bin/codesign --force -s "Developer ID Application: Timothy Schoen (7SV7JPRR2L)" ./Heavy/bin/* - /usr/bin/codesign --force -s "Developer ID Application: Timothy Schoen (7SV7JPRR2L)" ./Heavy/bin/Heavy/Heavy + + cat > entitlements.plist << EOF + + + + + com.apple.security.cs.disable-library-validation + + + +EOF + + find ./Heavy/bin -type f -perm +111 -exec /usr/bin/codesign --force --options runtime -s "Developer ID Application: Timothy Schoen (7SV7JPRR2L)" {} \; + /usr/bin/codesign --force --options runtime --entitlements entitlements.plist -s "Developer ID Application: Timothy Schoen (7SV7JPRR2L)" ./Heavy/bin/Heavy/Heavy + + # Submit the zipped executable for notarization + # This makes sure we can at least run it with online notarization + ditto -c -k --keepParent ./Heavy/bin Heavy.zip + xcrun notarytool store-credentials "notary_login" --apple-id ${AC_USERNAME} --password ${AC_PASSWORD} --team-id "7SV7JPRR2L" + xcrun notarytool submit Heavy.zip --keychain-profile "notary_login" --wait + rm Heavy.zip + rm entitlements.plist fi cp VERSION ./Heavy/VERSION