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

Containerised build environment (Ubuntu 24.04 + squashfs-tools 4.4) #59

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

aliask
Copy link

@aliask aliask commented Oct 16, 2024

Overview

Create a Dockerfile to enable a portable build environment, and sync patch to build with squashfs-tools 4.4

Details

The Dockerfile is based on Ubuntu 24.04, and uses multiple stages to produce a minimal final product, with the final image size sitting at about 75mb.

This branch also incorporates the updates prepared by @cole-h to update to squashfs-tools 4.4 in #56.

Finally, building on newer GCC highlights a dangling pointer error in LzmaEnc.c:

LZMA/lzma465/C/LzmaEnc.c: In function ‘LzmaEnc_CodeOneMemBlock’:
LZMA/lzma465/C/LzmaEnc.c:2161:19: error: storing the address of local variable ‘outStream’ in ‘*(CLzmaEnc *)pp.rc.outStream’ [-Werror=dangling-pointer=]
 2161 |   p->rc.outStream = &outStream.funcTable;
      |   ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
LZMA/lzma465/C/LzmaEnc.c:2145:20: note: ‘outStream’ declared here
 2145 |   CSeqOutStreamBuf outStream;
      |                    ^~~~~~~~~
LZMA/lzma465/C/LzmaEnc.c:2139:45: note: ‘pp’ declared here
 2139 | SRes LzmaEnc_CodeOneMemBlock(CLzmaEncHandle pp, Bool reInit,
      |                              ~~~~~~~~~~~~~~~^~
cc1: all warnings being treated as errors
make: *** [<builtin>: LZMA/lzma465/C/LzmaEnc.o] Error 1

I have separated the fix for this problem into a dedicated patch file for ease of review.

I know this PR probably won't ever be merged, but sasquatch is still useful for reading vendor-specific SquashFS implementations, and until the upstream project can support these tweaks I guess this is the next best thing.

Create a Dockerfile to enable a portable build environment. The Dockerfile is based on Ubuntu 24.04, and uses multiple stages to produce a minimal final product, with the final image size sitting at about 75mb.
This branch also incorporates the updates prepared by @cole-h to update to squashfs-tools 4.4 in devttys0#56.
Finally, building on newer GCC highlights a dangling pointer error in LzmaEnc.c. I have separated the fix for this problem into a dedicated patch file for ease of review.
@aliask aliask changed the title Containerised build environment Containerised build environment (Ubuntu 24.04 + squashfs-tools 4.4) Oct 16, 2024
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