Repository navigation
Add Dockerfile - #124
Merged
Merged
Add Dockerfile#124
Conversation
… intervals of factor
fix for UpSampler::process
…h linker error anyway)
Print error message when platform not recognized
Update LICENSE
…e base - Dockerfile: Ubuntu 20.04 + arm-none-eabi-gcc 9-2019-q4 + emsdk 2.0.10, reproducing the last stable toolchain (pre-GCC-13 freestanding breakage, issue #120). Builds ARM/native/web patches and passes unit tests. - kb/: KNOWLEDGE_BASE.md, ISSUES.md, README.md - .dockerignore to keep build context lean
- faust 2.20.2 (apt focal) for FAUST= patches - soul 1.0.82 (prebuilt ROLI x64 binary) for SOUL= patches, symlinked to Tools/soul - FirmwareSender built from pingdynasty/FirmwareSender for sysex/load/store, symlinked to Tools/FirmwareSender; added JUCE X11/GL/freetype build deps - KB updated with the three tools, verified build matrix (FAUST->patch.bin, SOUL->patch.bin, FirmwareSender->patch.syx) and new gotchas All period-appropriate to the ~2019-2020 'last stable' era, consistent with the pinned arm-none-eabi-gcc 9-2019-q4 and emsdk 2.0.10.
…olution flake ./emsdk install 2.0.10 occasionally fails with 'No tool or SDK found by name sdk-releases-upstream-...' when the emscripten-releases-tags lookup goes stale. Install the resolved SDK name (hash 37fc7647...) directly, falling back to the version alias, so the (slow) web-toolchain layer builds reliably. Verified with a clean docker build of the full v1 image.
The pinned web toolchain (emsdk 2.0.10) ships ONLY x86_64 SDK bundles, so on an arm64 host (Apple Silicon) 'emsdk install 2.0.10' failed immediately with 'No tool or SDK found by name sdk-releases-upstream-...-64bit' — the 2.0.10 tag has no arm64 bundle. Pinning FROM --platform=linux/amd64 makes the build run x86_64 under Docker Desktop's emulation on any host. Reverted the earlier SDK-hash workaround, which addressed a release-tag flake that was not the actual cause. Verified with a clean amd64 build. The real root cause was architecture, not release-tag resolution.
make PATCHNAME=X patch now works in one shot — the patch libraries (libowlprg.a/libdaisysp.a) are built at image-creation time via 'make libs' (which needs only PLATFORM, no PATCHNAME). Because those archives are platform-specific (Cortex-M4 for OWL1/2, Cortex-M7 for OWL3) and live at fixed, non-platform-keyed paths, each image is pinned to ONE target: docker build --build-arg PLATFORM=OWL2 -t owlprogram:owl2-v1 . docker build --build-arg PLATFORM=OWL3 -t owlprogram:owl3-v1 . Default PLATFORM=OWL2. Verified one-shot patch builds for OWL2 (6604 B) and OWL3 (6100 B) — distinct sizes confirm the baked libs are per-platform.
The --platform=linux/amd64 pin is intentional (the x86_64-only toolchain can't build native arm64), so hardcoding it is correct here. Add the BuildKit '# check=skip=FromPlatformFlagConstDisallowed' directive (line 1) to suppress the advisory warning rather than contorting FROM into a build-arg that would make a bare 'docker build .' build native arm64 and fail on Apple Silicon.
Adds .github/workflows/docker-publish.yml. On a push to develop that touches the Dockerfile (or the build makefiles/sources it bakes in), and on manual dispatch, builds the build-environment image for each OWL platform via the PLATFORM build-arg and pushes to ghcr.io/<owner>/owlprogram: :owl1 :owl2 :owl3 (per target) :latest (= OWL2) Uses the built-in GITHUB_TOKEN (no secrets to configure) and GHA layer caching to speed up the slow FAUST/emsdk layers. amd64-only, matching the Dockerfile's platform pin.
Replace the full-history 'git clone … && git checkout 2.0.10' with 'git clone --depth 1 --branch 2.0.10', pulling only the tagged revision's tree (emsdk .git drops from tens of MB to ~650 KB) and dropping the separate checkout. The heavy part — the ~930 MB SDK that ./emsdk install downloads — is unchanged; this just trims the emsdk repo clone and speeds it up.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a Dockerfile that creates a platform-specific (OWL1, OWL2 or OWL3) container with all tools required for compiling patches.
Also brings some older commits into master branch.