vega / vl-convert

Utilities for converting Vega-Lite specs from the command line and Python
BSD 3-Clause "New" or "Revised" License
96 stars 12 forks source link

Apple silicon packages cannot be build on CI #70

Closed jonmmease closed 4 months ago

jonmmease commented 1 year ago

After the Deno update in https://github.com/vega/vl-convert/pull/68, the cross-compiled macos-arm64 wheels are broken. On import:

>>> import vl_convert as vlc
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/jonmmease/miniconda3/envs/try_vl_convert_cross/lib/python3.10/site-packages/vl_convert/__init__.py", line 1, in <module>
    from .vl_convert import *
ImportError: dlopen(/Users/jonmmease/miniconda3/envs/try_vl_convert_cross/lib/python3.10/site-packages/vl_convert/vl_convert.cpython-310-darwin.so, 0x0002): symbol not found in flat namespace '_unmask'

Related to the error that led me to drop the cross-compiled build of the CLI app in https://github.com/vega/vl-convert/actions/runs/5366565585/jobs/9736053366

error: linking with `cc` failed: exit status: 1
Error:   |
  = note: LC_ALL="C" PATH="/Users/runner/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/bin:/usr/local/lib/ruby/gems/2.7.0/bin:/usr/local/opt/ruby@2.7/bin:/usr/local/opt/pipx_bin:/Users/runner/.cargo/bin:/usr/local/opt/curl/bin:/usr/local/bin:/usr/local/sbin:/Users/runner/bin:/Users/runner/.yarn/bin:/Users/runner/Library/Android/sdk/tools:/Users/runner/Library/Android/sdk/platform-tools:/Library/Frameworks/Python.framework/Versions/Current/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/usr/bin:/bin:/usr/sbin:/sbin:/Users/runner/.dotnet/tools:/Users/runner/.ghcup/bin:/Users/runner/hostedtoolcache/stack/2.11.1/x64" VSLANG="1033" ZERO_AR_DATE="1" "cc" "-arch" "arm64" "/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/rustcs3Kzb6/symbols.o" "/Users/runner/work/vl-convert/vl-convert/target/aarch64-apple-darwin/release/deps/vl_convert-4c857d75a873f820.vl_convert.08cb7898-cgu.0.rcgu.o" "-L" "/Users/runner/work/vl-convert/vl-convert/target/aarch64-apple-darwin/release/deps" "-L" "/Users/runner/work/vl-convert/vl-convert/target/release/deps" "-L" "/Users/runner/work/vl-convert/vl-convert/target/aarch64-apple-darwin/release/gn_out/obj" "-L" "/Users/runner/work/vl-convert/vl-convert/target/aarch64-apple-darwin/release/build/libsqlite3-sys-e3795a3471eaf4ec/out" "-L" "/Users/runner/work/vl-convert/vl-convert/target/aarch64-apple-darwin/release/build/ring-c3aa6a1ca2a36885/out" "-L" "/Users/runner/work/vl-convert/vl-convert/target/aarch64-apple-darwin/release/build/libffi-sys-6e97f7ab1d070644/out/libffi-root/lib" "-L" "/Users/runner/work/vl-convert/vl-convert/target/aarch64-apple-darwin/release/build/libffi-sys-6e97f7ab1d070644/out/libffi-root/lib64" "-L" "/Users/runner/work/vl-convert/vl-convert/target/aarch64-apple-darwin/release/build/libz-sys-4dfdea7677198b90/out/lib" "-L" "/Users/runner/work/vl-convert/vl-convert/target/aarch64-apple-darwin/release/build/libz-sys-4dfdea7677198b90/out/lib" "-L" "/Users/runner/work/vl-convert/vl-convert/target/aarch64-apple-darwin/release/build/secp256k1-sys-4145613ac67f173f/out" "-L" "/Users/runner/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib" "/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/rustcs3Kzb6/liblibz_sys-0f9085d54b9c0c9f.rlib" "/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/rustcs3Kzb6/libsecp256k1_sys-548a4057ba9430b4.rlib" "/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/rustcs3Kzb6/liblibffi_sys-c74e9dc13f7fe273.rlib" "/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/rustcs3Kzb6/libring-f159d668c31690e2.rlib" "/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/rustcs3Kzb6/liblibsqlite3_sys-e5029fb01737189c.rlib" "/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/rustcs3Kzb6/libv8-930b7d738a614904.rlib" "/Users/runner/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libcompiler_builtins-8940904d1c2f93b4.rlib" "-framework" "CoreFoundation" "-framework" "CoreServices" "-framework" "Security" "-framework" "CoreFoundation" "-framework" "Security" "-liconv" "-lSystem" "-lc" "-lm" "-L" "/Users/runner/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib" "-o" "/Users/runner/work/vl-convert/vl-convert/target/aarch64-apple-darwin/release/deps/vl_convert-4c857d75a873f820" "-Wl,-dead_strip" "-nodefaultlibs"
  = note: ld: warning: directory not found for option '-L/Users/runner/work/vl-convert/vl-convert/target/aarch64-apple-darwin/release/build/libffi-sys-6e97f7ab1d070644/out/libffi-root/lib64'
          Undefined symbols for architecture arm64:
            "_unmask", referenced from:
                fastwebsockets::mask::unmask::h0a04c4e458c9b6ef in vl_convert-4c857d75a873f820.vl_convert.08cb7898-cgu.0.rcgu.o
          ld: symbol(s) not found for architecture arm64
          clang: error: linker command failed with exit code 1 (use -v to see invocation)

error: could not compile `vl-convert` (bin "vl-convert") due to previous error

I think we'll need to downgrade Deno in the short-term. I'll do some experiments to see how far we need to downgrade. cc @sacundim

jonmmease commented 1 year ago

For the time being I'm going to build these wheels locally, but I'll leave this open to track the situation.

jonmmease commented 4 months ago

Done in https://github.com/vega/vl-convert/pull/165