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

Containerfile, with instructions #1

Closed
wants to merge 2 commits into from

Conversation

edsantiago
Copy link

For building an Ubuntu-based container image. It ain't pretty but it works: builds and runs with minimal effort.

jpd236 and others added 2 commits December 14, 2023 20:53
This change brings up functional local and continuous Linux builds.
XWord runs and generally functions (after some manual tweaks to
the output directory structure as noted below), though more work
will be needed to smooth rough edges and fix Linux-specific bugs.

Changes of interest:

-Added Linux prebuilt of premake5
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Fix link order for lua builds
-Add Travis CI build for Linux

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-Output directories need manual tweaking:
 * Link images/ to share/XWord/images
 * Link scripts/ to lib/XWord/scripts
 * Move bin/Debug/scripts/libs/libX.so to lib/XWord/X.so
 * bin/Debug/libluapuz.so also expected at lib/XWord/luapuz.so

Additional bugs:

-Alignment of lua errors in status bar is wrong
-Package manager encounters assertion errors
-Clue bar increases in size every startup
For building an Ubuntu-based container image. It ain't pretty
but it works: builds and runs with minimal effort.

Signed-off-by: Ed Santiago <ed@edsantiago.com>
@jpd236
Copy link
Owner

jpd236 commented Dec 24, 2023

Thanks for passing along the details of what it took to get this working for you!

I merged in the tweaks you made to the codebase itself into the master branch (as part of the big Linux build commit); those seem reasonably general.

Otherwise, while I think this is useful as a reference for the current state of the world of Linux builds and what it takes to get them working, I don't think we'd go down the road of a full container if we actually wanted to start distributing a Linux binary for popular distributions. I think the way to make that happen would be to fix some of the quirks of the build on Linux (e.g. the directory path issues and the mtime stuff with the wxFB Lua scripts) and then either use something a little lighter like Flatpak for a single distribution point, or go down the "official" distribution route for a few popular distros (e.g. make a PPA for Ubuntu). That said, I'm not particularly invested in chasing this myself at the moment.

Closing this out but hopefully the reference is useful for people nonetheless!

@jpd236 jpd236 closed this Dec 24, 2023
@edsantiago
Copy link
Author

I didn't intend this for a containerized distribution; more for people like me who want a clean, turnkey way to build & run stuff without the nightmare of dependencies and bitrot. In a month or maybe six, someone will want to build this on Fedora or Ubuntu.next or whatever, and be missing dependencies, and they might find this. Thank you!

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.

2 participants