Use buster backports to build with libseccomp-2.4.4#42054
Use buster backports to build with libseccomp-2.4.4#42054AkihiroSuda merged 1 commit intomoby:masterfrom
Conversation
d457216 to
72cbb51
Compare
|
Looks like the rootless dev image build failed. There's obviously something about the build system I'm not fully understanding yet. |
|
Looking at #42056, I see it includes some similar fixes namely moby/buildkit#1955 which also uses the buster backports. I suspect that I may have submitted this pull request in the wrong place? Any thoughts on what needs to be done to get the amd64 Linux static binaries built against a newer version of libseccomp? |
|
I copied the full failure; I'm wondering if its because of the cache mounts that are used; Lines 217 to 220 in 083dbe9 I recall Go builds with CGO not invalidating cache if there's changes in C code (see, e.g. golang/go#25419 and golang/go#19883). Currently, the cache-mount does not specify a ID, which means the cache can be shared between stages. Perhaps we need to add an ID to prevent runc trying to reuse the cache from other stages that also have a cache for |
|
Let me restart the build as well, to see if rootless passes |
This is the right place (perhaps both places are needed); this Dockerfile is used currently to build the static binaries of docker that are published on https://download.docker.com/linux/static/stable/. I marked the PR for cherry-picking (it needs to be backported to the 20.10 release branch to be used for that release) |
f213d4e to
35ed2b4
Compare
Fixes moby#41704 The latest released versions of the static binaries (20.10.3) are still unable to use faccessat2 with musl-1.2.2 even though this was addressed in moby#41353 and related issues. The underlying cause seems to be that the build system here still uses the default version of libseccomp shipped with buster. An updated version is available in buster backports: https://packages.debian.org/buster-backports/libseccomp-dev Signed-off-by: Jeremy Huntwork <[email protected]>
35ed2b4 to
1600e85
Compare
- Updates to recent versions of packages from the testing channel - Makes `scripts/build.sh` slightly more portable. For example, pending release of the next version of docker with fixes like [this one](moby/moby#42054), it should be possible to build mere packages on Mac hosts. - Use a non-privileged user in the container and map that user to the uid and gid of the host system user so that created files in the mounted volumes will be owned by the host user.
Fixes #41704
The latest released versions of the static binaries (20.10.3) are still unable
to use faccessat2 with musl-1.2.2 even though this was addressed in #41353 and
related issues. The underlying cause seems to be that the build system
here still uses the default version of libseccomp shipped with buster.
An updated version is available in buster backports:
https://packages.debian.org/buster-backports/libseccomp-dev
Signed-off-by: Jeremy Huntwork [email protected]
- What I did
Built dockerd, containerd and runc locally and then compared the results with previous ones.
- How I did it
My original running system used the 20.10.3 published static binaries:
Prepare a test file that will use the faccessat2 syscall:
Run a container using musl-1.2.2, build it and execute it:
Running with strace would also give something like this:
- How to verify it
Build locally with this change, I simply ran 'make' and 'make install'
Afterwards, the docker and runc version reported this:
And testing the statically compiled C file running in the same container now works:
- Description for the changelog
Build static binaries with libseccomp-2.4.4
- A picture of a cute animal (not mandatory but encouraged)
