1414# See the License for the specific language governing permissions and
1515# limitations under the License.
1616
17- ARG XX_VERSION="1.7 .0"
17+ ARG XX_VERSION="1.9 .0"
1818ARG DEBIAN_FRONTEND="noninteractive"
1919
2020ARG DISTRO_NAME="debian12"
@@ -32,13 +32,18 @@ ARG GO_IMAGE="golang"
3232ARG GO_VERSION="1.25.5"
3333ARG GO_IMAGE_VARIANT="bookworm"
3434
35+ ARG ZIG_VERSION="0.15.2"
36+
3537# stage used as named context that mounts hack/scripts
3638# see pkg target in docker-bake.hcl
3739FROM scratch AS scripts
3840
3941# cross compilation helper
4042FROM --platform=$BUILDPLATFORM tonistiigi/xx:${XX_VERSION} AS xx
4143
44+ # osxcross contains the MacOSX cross toolchain for xx
45+ FROM crazymax/osxcross:15.5-debian AS osxcross
46+
4247# go base image to retrieve /usr/local/go
4348FROM ${GO_IMAGE}:${GO_VERSION}-${GO_IMAGE_VARIANT} AS go
4449FROM --platform=$BUILDPLATFORM ${GO_IMAGE}:${GO_VERSION}-${GO_IMAGE_VARIANT} AS gocross
@@ -90,7 +95,7 @@ ENV GOPATH="/go"
9095ENV PATH="$PATH:/usr/local/go/bin:$GOPATH/bin"
9196ENV GOTOOLCHAIN="local"
9297ENV GO111MODULE="on"
93- ENV CGO_ENABLED="0 "
98+ ENV CGO_ENABLED="1 "
9499ARG DISTRO_NAME
95100RUN apt-get update && apt-get install -y --no-install-recommends apt-utils bash ca-certificates curl devscripts equivs git
96101COPY deb /root/package/debian
@@ -124,7 +129,7 @@ ENV GOPATH="/go"
124129ENV PATH="$PATH:/usr/local/go/bin:$GOPATH/bin"
125130ENV GOTOOLCHAIN="local"
126131ENV GO111MODULE="on"
127- ENV CGO_ENABLED="0 "
132+ ENV CGO_ENABLED="1 "
128133ARG DISTRO_NAME
129134RUN --mount=type=bind,from=scripts,source=rpm-init.sh,target=/usr/local/bin/rpm-init \
130135 --mount=type=secret,id=RH_USER,env=RH_USER \
@@ -157,13 +162,25 @@ RUN --mount=type=bind,source=scripts/pkg-rpm-build.sh,target=/usr/local/bin/pkg-
157162FROM --platform=$BUILDPLATFORM ${DISTRO_IMAGE} AS builder-static
158163COPY --from=xx / /
159164ARG DEBIAN_FRONTEND
160- RUN apt-get update && apt-get install -y --no-install-recommends bash ca-certificates file git zip tar
165+ RUN apt-get update && apt-get install -y --no-install-recommends bash ca-certificates file git zip tar \
166+ dpkg-dev clang make pkg-config curl
167+ ARG ZIG_VERSION
168+ RUN <<EOT
169+ set -e
170+ ARCH=$(xx-info march)-$(xx-info os)
171+ set -x
172+ curl -LO https://ziglang.org/download/$ZIG_VERSION/zig-$ARCH-$ZIG_VERSION.tar.xz
173+ tar xf zig-$ARCH-$ZIG_VERSION.tar.xz
174+ mv zig-$ARCH-$ZIG_VERSION /opt/zig-$ZIG_VERSION
175+ ln -sf /opt/zig-$ZIG_VERSION/zig /usr/local/bin/zig
176+ zig version
177+ EOT
161178ENV GOPROXY="https://proxy.golang.org|direct"
162179ENV GOPATH="/go"
163180ENV PATH="$PATH:/usr/local/go/bin:$GOPATH/bin"
164181ENV GOTOOLCHAIN="local"
165182ENV GO111MODULE="on"
166- ENV CGO_ENABLED="0 "
183+ ENV CGO_ENABLED="1 "
167184ARG NIGHTLY_BUILD
168185ARG PKG_NAME
169186ARG PKG_REF
@@ -180,6 +197,7 @@ RUN --mount=type=bind,source=scripts/pkg-static-build.sh,target=/usr/local/bin/p
180197 --mount=type=bind,from=scripts,source=fix-cc.sh,target=/usr/local/bin/fix-cc \
181198 --mount=type=bind,from=src,source=/src,target=/usr/local/src/cagent \
182199 --mount=type=bind,from=gocross,source=/usr/local/go,target=/usr/local/go,rw \
200+ --mount=type=bind,from=osxcross,src=/osxsdk,target=/xx-sdk \
183201 OUTDIR=/out BUILDDIR=/build SRCDIR=/usr/local/src/cagent pkg-static-build
184202
185203FROM builder-${DISTRO_TYPE} AS build-pkg
0 commit comments