Skip to content

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