Repository navigation
MacOS binaries downloaded from “Releases” fail WASM compilation #4016
Copy link
Copy link
Closed
Labels
Description
Version
1.29.0
What happened?
MacOS binaries downloaded from Releases fail WASM compilation. As mentioned in the issue below, this is likely because JIT-enabling entitlements are not granted. Therefore, removing the signature allows execution to succeed.
— Code-signing entitlements needed for OSX · Issue #2393 · tetratelabs/wazero
Execution fails with the downloaded binary:
$ curl --location -o - https://github.com/sqlc-dev/sqlc/releases/download/v1.29.0/sqlc_1.29.0_darwin_amd64.tar.gz | tar zxf -
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 14.9M 100 14.9M 0 0 2902k 0 0:00:05 0:00:05 --:--:-- 3765k
$ ./sqlc generate -f sqlc.yaml
panic: permission denied
runtime/debug.Stack()
/Users/runner/hostedtoolcache/go/1.24.2/x64/src/runtime/debug/stack.go:26 +0x5e
golang.org/x/sync/singleflight.newPanicError({0x10568b560, 0x1052e8d08})
/Users/runner/go/pkg/mod/golang.org/x/sync@v0.13.0/singleflight/singleflight.go:44 +0x25
golang.org/x/sync/singleflight.(*Group).doCall.func2.1()
/Users/runner/go/pkg/mod/golang.org/x/sync@v0.13.0/singleflight/singleflight.go:193 +0x34
panic({0x10568b560?, 0x1052e8d08?})
/Users/runner/hostedtoolcache/go/1.24.2/x64/src/runtime/panic.go:792 +0x132
github.com/tetratelabs/wazero/internal/engine/wazevo.mmapExecutable(...)
/Users/runner/go/pkg/mod/github.com/tetratelabs/wazero@v1.9.0/internal/engine/wazevo/engine.go:776
github.com/tetratelabs/wazero/internal/engine/wazevo.(*engine).compileSharedFunctions(0xc001370e10)
/Users/runner/go/pkg/mod/github.com/tetratelabs/wazero@v1.9.0/internal/engine/wazevo/engine.go:605 +0xc71
github.com/tetratelabs/wazero/internal/engine/wazevo.NewEngine({0x1058afaf0, 0xc0007c4230}, 0x103becc25?, {0x1058acf68, 0xc001076010})
/Users/runner/go/pkg/mod/github.com/tetratelabs/wazero@v1.9.0/internal/engine/wazevo/engine.go:115 +0x145
github.com/tetratelabs/wazero.(*cache).initEngine.func1()
/Users/runner/go/pkg/mod/github.com/tetratelabs/wazero@v1.9.0/cache.go:72 +0x45
sync.(*Once).doSlow(0x104f877bf?, 0x7?)
/Users/runner/hostedtoolcache/go/1.24.2/x64/src/sync/once.go:78 +0xab
sync.(*Once).Do(...)
/Users/runner/hostedtoolcache/go/1.24.2/x64/src/sync/once.go:69
github.com/tetratelabs/wazero.(*cache).initEngine(0xc0013a0000, 0x0, 0x2f?, {0x1058afaf0?, 0xc0007c4230?}, 0xc00159d9b0?)
/Users/runner/go/pkg/mod/github.com/tetratelabs/wazero@v1.9.0/cache.go:72 +0x85
github.com/tetratelabs/wazero.NewRuntimeWithConfig({0x1058afaf0?, 0xc0007c4230?}, {0x1058ba1d0?, 0xc00159da58})
/Users/runner/go/pkg/mod/github.com/tetratelabs/wazero@v1.9.0/runtime.go:175 +0xf6
github.com/sqlc-dev/sqlc/internal/ext/wasm.(*Runner).loadAndCompileWASM(0xc0012cec00, {0x1058afaf0, 0xc0007c4230}, {0xc000de3c80, 0x28}, {0xc00005a440, 0x40})
/Users/runner/work/release-workflow/release-workflow/internal/ext/wasm/wasm.go:151 +0x46a
github.com/sqlc-dev/sqlc/internal/ext/wasm.(*Runner).loadAndCompile.func1()
/Users/runner/work/release-workflow/release-workflow/internal/ext/wasm/wasm.go:63 +0x2f
golang.org/x/sync/singleflight.(*Group).doCall.func2(0xc00159dc2e, 0xc0013a05a0, 0x103c45839?)
/Users/runner/go/pkg/mod/golang.org/x/sync@v0.13.0/singleflight/singleflight.go:198 +0x55
golang.org/x/sync/singleflight.(*Group).doCall(0x10564eee0?, 0xc000d600f0?, {0xc00005a440?, 0x40?}, 0xc0013a4000?)
/Users/runner/go/pkg/mod/golang.org/x/sync@v0.13.0/singleflight/singleflight.go:200 +0x7e
golang.org/x/sync/singleflight.(*Group).Do(0x1070df5a0, {0xc00005a440, 0x40}, 0xc0007e5d00)
/Users/runner/go/pkg/mod/golang.org/x/sync@v0.13.0/singleflight/singleflight.go:113 +0x15b
github.com/sqlc-dev/sqlc/internal/ext/wasm.(*Runner).loadAndCompile(0xc0012cec00, {0x1058afaf0, 0xc0007c4230})
/Users/runner/work/release-workflow/release-workflow/internal/ext/wasm/wasm.go:62 +0xca
github.com/sqlc-dev/sqlc/internal/ext/wasm.(*Runner).Invoke(0xc0012cec00, {0x1058afaf0, 0xc0007c4230}, {0x104fbf870, 0x1f}, {0x1057b2060?, 0xc000febcb0?}, {0x1057054a0, 0xc0012cec40}, {0x0, ...})
/Users/runner/work/release-workflow/release-workflow/internal/ext/wasm/wasm.go:206 +0x2b9
github.com/sqlc-dev/sqlc/internal/plugin.(*codegenServiceClient).Generate(0xc0007e6ac0, {0x1058afaf0, 0xc0007c4230}, 0xc000febcb0, {0x0, 0x0, 0x0})
/Users/runner/work/release-workflow/release-workflow/internal/plugin/codegen_grpc.pb.go:42 +0xc8
github.com/sqlc-dev/sqlc/internal/cmd.codegen({_, _}, {{{0x1052e8e30, 0x1}, {{0x0, 0x0}, {0x0, 0x0}, {0x0, 0x0}, ...}, ...}, ...}, ...)
/Users/runner/work/release-workflow/release-workflow/internal/cmd/generate.go:411 +0x552
github.com/sqlc-dev/sqlc/internal/cmd.(*generator).ProcessResult(_, {_, _}, {{{0x1052e8e30, 0x1}, {{0x0, 0x0}, {0x0, 0x0}, {0x0, ...}, ...}, ...}, ...}, ...)
/Users/runner/work/release-workflow/release-workflow/internal/cmd/generate.go:203 +0xc5
github.com/sqlc-dev/sqlc/internal/cmd.processQuerySets.func1()
/Users/runner/work/release-workflow/release-workflow/internal/cmd/process.go:113 +0x93a
golang.org/x/sync/errgroup.(*Group).Go.func1()
/Users/runner/go/pkg/mod/golang.org/x/sync@v0.13.0/errgroup/errgroup.go:79 +0x50
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 1
/Users/runner/go/pkg/mod/golang.org/x/sync@v0.13.0/errgroup/errgroup.go:76 +0x93
goroutine 6 [running]:
golang.org/x/sync/singleflight.(*Group).doCall.func1()
/Users/runner/go/pkg/mod/golang.org/x/sync@v0.13.0/singleflight/singleflight.go:170 +0x2b2
golang.org/x/sync/singleflight.(*Group).doCall(0x10564eee0?, 0xc000d600f0?, {0xc00005a440?, 0x40?}, 0xc0013a4000?)
/Users/runner/go/pkg/mod/golang.org/x/sync@v0.13.0/singleflight/singleflight.go:205 +0x99
golang.org/x/sync/singleflight.(*Group).Do(0x1070df5a0, {0xc00005a440, 0x40}, 0xc0007e5d00)
/Users/runner/go/pkg/mod/golang.org/x/sync@v0.13.0/singleflight/singleflight.go:113 +0x15b
github.com/sqlc-dev/sqlc/internal/ext/wasm.(*Runner).loadAndCompile(0xc0012cec00, {0x1058afaf0, 0xc0007c4230})
/Users/runner/work/release-workflow/release-workflow/internal/ext/wasm/wasm.go:62 +0xca
github.com/sqlc-dev/sqlc/internal/ext/wasm.(*Runner).Invoke(0xc0012cec00, {0x1058afaf0, 0xc0007c4230}, {0x104fbf870, 0x1f}, {0x1057b2060?, 0xc000febcb0?}, {0x1057054a0, 0xc0012cec40}, {0x0, ...})
/Users/runner/work/release-workflow/release-workflow/internal/ext/wasm/wasm.go:206 +0x2b9
github.com/sqlc-dev/sqlc/internal/plugin.(*codegenServiceClient).Generate(0xc0007e6ac0, {0x1058afaf0, 0xc0007c4230}, 0xc000febcb0, {0x0, 0x0, 0x0})
/Users/runner/work/release-workflow/release-workflow/internal/plugin/codegen_grpc.pb.go:42 +0xc8
github.com/sqlc-dev/sqlc/internal/cmd.codegen({_, _}, {{{0x1052e8e30, 0x1}, {{0x0, 0x0}, {0x0, 0x0}, {0x0, 0x0}, ...}, ...}, ...}, ...)
/Users/runner/work/release-workflow/release-workflow/internal/cmd/generate.go:411 +0x552
github.com/sqlc-dev/sqlc/internal/cmd.(*generator).ProcessResult(_, {_, _}, {{{0x1052e8e30, 0x1}, {{0x0, 0x0}, {0x0, 0x0}, {0x0, ...}, ...}, ...}, ...}, ...)
/Users/runner/work/release-workflow/release-workflow/internal/cmd/generate.go:203 +0xc5
github.com/sqlc-dev/sqlc/internal/cmd.processQuerySets.func1()
/Users/runner/work/release-workflow/release-workflow/internal/cmd/process.go:113 +0x93a
golang.org/x/sync/errgroup.(*Group).Go.func1()
/Users/runner/go/pkg/mod/golang.org/x/sync@v0.13.0/errgroup/errgroup.go:79 +0x50
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 1
/Users/runner/go/pkg/mod/golang.org/x/sync@v0.13.0/errgroup/errgroup.go:76 +0x93
Removing the signature with the codesign command eliminates the restriction, allowing execution:
$ codesign --remove-signature sqlc
$ ./sqlc generate -f sqlc.yaml
$ ls -l sqlcgen
total 24
-rw-r--r-- 1 knaka wheel 688 7 11 15:29 models.ts
-rw-r--r-- 1 knaka wheel 6393 7 11 15:29 querier.ts
$
Relevant log output
Database schema
SQL queries
Configuration
version: "2"
plugins:
- name: ts-d1
wasm:
url: https://github.com/orisano/sqlc-gen-ts-d1/releases/download/v0.0.0-a/sqlc-gen-ts-d1.wasm
sha256: dfd4bfef4736967ca17cc23d18de20920fbd196998fe7aa191a205439d63fb58
sql:
- engine: "sqlite"
queries: "./queries/*"
schema: "./schema.sql"
codegen:
- out: sqlcgen
plugin: ts-d1Playground URL
No response
What operating system are you using?
macOS
What database engines are you using?
SQLite
What type of code are you generating?
No response
Reactions are currently unavailable
Activity
[-]MacOS binaries downloaded from “Releases”fail WASM compilation[/-][+]MacOS binaries downloaded from “Releases” fail WASM compilation[/+]coolaj86 commentedon Jul 26, 2025
Neither removing the codesigning nor resigning worked for me. I had to compile from source.
(P.S. I wish I had realized that's all we had to do years ago - I've been running on Linux whenever I needed to use the TypeScript WASM plugin this whole time)
kyleconroy commentedon Aug 2, 2025
Okay, I think I have it fixed. Could you please try out this build?
kyleconroy commentedon Sep 1, 2025
Fixed in 1.30.0