cloudflare / quiche

🥧 Savoury implementation of the QUIC transport protocol and HTTP/3
https://docs.quic.tech/quiche/
BSD 2-Clause "Simplified" License
9.1k stars 681 forks source link

0.22.0 regression test failure #1808

Open chenrui333 opened 6 days ago

chenrui333 commented 6 days ago

👋 trying to build the latest release, but run into some regression test failure. The error log is as below:

error test log ``` ==> ./test dyld[13973]: Library not loaded: /opt/homebrew/opt/cloudflare-quiche/lib/libquiche.0.22.0.dylib Referenced from: <496810F1-BA70-3C4C-AF28-E3F3015BEA9A> /private/tmp/cloudflare-quiche-test-20240626-13958-qrdomu/test Reason: tried: '/opt/homebrew/opt/cloudflare-quiche/lib/libquiche.0.22.0.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/opt/cloudflare-quiche/lib/libquiche.0.22.0.dylib' (no such file), '/opt/homebrew/opt/cloudflare-quiche/lib/libquiche.0.22.0.dylib' (no such file), '/usr/local/lib/libquiche.0.22.0.dylib' (no such file), '/usr/lib/libquiche.0.22.0.dylib' (no such file, not in dyld cache), '/opt/homebrew/Cellar/cloudflare-quiche/0.22.0/lib/libquiche.0.22.0.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/Cellar/cloudflare-quiche/0.22.0/lib/libquiche.0.22.0.dylib' (no such file), '/opt/homebrew/Cellar/cloudflare-quiche/0.22.0/lib/libquiche.0.22.0.dylib' (no such file), '/usr/local/lib/libquiche.0.22.0.dylib' (no such file), '/usr/lib/libquiche.0.22.0.dylib' (no such file, not in dyld cache) Error: cloudflare-quiche: failed ```

full build log, https://github.com/Homebrew/homebrew-core/actions/runs/9684876495/job/26725432998 relates to Homebrew/homebrew-core#175706

junhochoi commented 6 days ago

Looks like related to https://github.com/cloudflare/quiche/pull/1769 I made a suggestion on your homebrew PR.

bagder commented 5 days ago

We see a similar problem (seemingly SONAME related) on Linux: https://github.com/curl/curl/pull/14030

junhochoi commented 4 days ago

So the main issue here is when #1769 added it only sets SONAME in the shared lib, but since we don't have an installation step, creating symlinks need to be done manually from the application developer, such as creating libquiche.so -> libquiche.so.0, etc.

Since we are not relying on cargo-c or others to automate this step, we might want to add some document how to install shared libs properly, such as creating linux/*BSD and macOS symlinks might be a good example.

Also there is a question of ABI versioning (https://github.com/Homebrew/homebrew-core/pull/175706#issuecomment-2193842886).

@ghedo @LPardue what do you think?