Skip to content

Stop shipping triplicate Linux shared libraries in native gems - #13

Merged
dixpac merged 1 commit into
mainfrom
dix/reduce_bloat
Aug 8, 2026
Merged

Stop shipping triplicate Linux shared libraries in native gems#13
dixpac merged 1 commit into
mainfrom
dix/reduce_bloat

Conversation

@dixpac

@dixpac dixpac commented Aug 8, 2026

Copy link
Copy Markdown
Member

Linux SONAME layout is one real .so plus short-name symlinks (libfoo.so / libfoo.so.0 → libfoo.so.X.Y.Z). package:linux used to materialize those symlinks as full file copies because gems don't preserve symlinks, tripling harfbuzz/plutobook payload (~14MB waste).

Keep a single real binary per library, record the short names in so_aliases, and recreate relative symlinks in extconf at gem install so -lplutobook and runtime DT_NEEDED still resolve.

Linux SONAME layout is one real .so plus short-name symlinks
(libfoo.so / libfoo.so.0 → libfoo.so.X.Y.Z). package:linux used to
materialize those symlinks as full file copies because gems don't
preserve symlinks, tripling harfbuzz/plutobook payload (~14MB waste).

Keep a single real binary per library, record the short names in
so_aliases, and recreate relative symlinks in extconf at gem install
so -lplutobook and runtime DT_NEEDED still resolve.
@dixpac
dixpac merged commit 23f1936 into main Aug 8, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant