Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make embeded Luarocks modules static #1954

Open
alerque opened this issue Jan 9, 2024 · 0 comments
Open

Make embeded Luarocks modules static #1954

alerque opened this issue Jan 9, 2024 · 0 comments
Labels
todo tooling Build tooling, release management, and packaging processes
Milestone

Comments

@alerque
Copy link
Member

alerque commented Jan 9, 2024

It is now possible to build SILE itself into a single binary with all the Lua stuff included (all the LuaRocks dependencies plus all SILE's internal code). This is spiffy, but the resulting binary is not nearly as portable as it could be for the simple reason that the Lua modules we embeded in the binary are still themselves dynamically linked to system resources.

For example the resulting single-binary edition of SILE end up dynamically linked to the system ICU, Expat, and some other libraries. This is good for distros that want to go the bundled route but bad for distributing a single binary and expecting it to be cross platform. The binary we're building and attaching to CI now for example is linked to ICU 70. My system at home has ICU 74 so it doesn't run there.

Building LuaRocks as statically linked shared modules IS possible, but the tooling is not straightforward. Using LuaRocks internal scripts for it's own binary release I was able to build everything except luaexpat as static modules.

Still getting this worked out and wired into our build system is going to be quite a touchy task. I don't think I'll hold up v0.15 for this unless I happen to get it working along the way. It should be a non-breaking feature of the build system to add.

@alerque alerque added todo tooling Build tooling, release management, and packaging processes labels Jan 9, 2024
@alerque alerque modified the milestones: v0.15.0, v0.15.1 Jan 9, 2024
@alerque alerque modified the milestones: v0.15.1, v0.15.2, v0.15.3, v0.15.4 Jun 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
todo tooling Build tooling, release management, and packaging processes
Projects
None yet
Development

No branches or pull requests

1 participant