Repository navigation
Bundle macOS transitive dylib closure in .app (fixes #10) - #11
Merged
Merged
Conversation
stage_macos_bundle.sh staged only libnetworkit/liblbug/libarrow/libomp, but libarrow links ~25 Homebrew libs (aws-sdk-cpp, aws-c-*, brotli, lz4, snappy, zstd) plus openssl via liblbug. Clean machines without Homebrew crashed at launch on libaws-cpp-sdk-identity-management.dylib. - Recursively stage every non-system dep into Contents/Frameworks and rewrite refs to @rpath (mirrors the Windows fix for #5). - Skip each file's own install-ID, prefer ./liblbug+./icebug over brew, symlink liblbug compat names, fail fast on unbundled refs. - Linux tarball: vendor all non-system ldd deps, not just arrow|omp.
adsharma
force-pushed
the
fix/macos-bundle-transitive-deps-10
branch
from
October 11, 2026 18:08
6562554 to
e542254
Compare
The Arrow apt repo and Homebrew core moved to 26.x, but the icebug prebuilt links libarrow.so.2500 / libarrow.2500.dylib (Arrow 25.x), so the lint tests failed with 'libarrow.so.2500: cannot open shared object file' and the macOS build/vendor/stage steps would miss libarrow.2500. - Linux (lint+build): pin libarrow-dev=25.0.1-1 libarrow2500=25.0.1-1 (both still published in the Arrow apt repo). - macOS (build): Homebrew carries latest only, so pour the last 25.0.1 bottle from a pinned formula staged in a local tap (scripts/install-arrow25-macos.sh — brew rejects loose formula files); keg lands in the usual /opt/homebrew/opt path, so vendor/stage scripts work unmodified.
adsharma
force-pushed
the
fix/macos-bundle-transitive-deps-10
branch
from
October 11, 2026 18:08
e542254 to
e94b667
Compare
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.
Fixes #10.
Problem: pre-built
Bugscope.appcrashed at launch on clean Macs:Library not loaded: .../libaws-cpp-sdk-identity-management.dylib, referenced from bundledlibarrow.2500.dylib.Root cause:
stage_macos_bundle.shstaged only 4 top-level libs (libnetworkit/liblbug/libarrow/libomp). libarrow itself links ~25 Homebrew libs (aws-sdk-cpp, aws-c-*, brotli, lz4, snappy, zstd) plus openssl via liblbug — resolved on CI/dev boxes via the/opt/homebrewLC_RPATH fallback, missing elsewhere. Same class as Windows #5.Changes:
scripts/stage_macos_bundle.sh: recursive transitive-closure bundling intoContents/Frameworks, refs rewritten to@rpath, per-dylib@loader_pathrpath, self-ID skip, project-dirs-first resolution, liblbug compat symlinks, fail-fast check for unbundled refs..github/workflows/build.yml(Linux): vendor all non-systemldddeps, not just arrow|omp.Verification: fake-bundle dry run → 30 dylibs + 2 symlinks, zero absolute Homebrew refs, script check passes;
bash -n+ YAML parse clean. Needs a real release build + launch test on a Homebrew-free Mac.