diff --git a/podman-update/build/Dockerfile.Se b/podman-update/build/Dockerfile.Se new file mode 100644 index 0000000..1f2caaa --- /dev/null +++ b/podman-update/build/Dockerfile.Se @@ -0,0 +1,36 @@ +FROM golang:1.16-stretch + +# Run build + +ARG DEBIAN_FRONTEND=noninteractive +RUN apt-get update && apt-get install -y systemd zip git pkg-config libc6-arm64-cross libc6-dev-arm64-cross binutils-aarch64-linux-gnu libncurses5-dev build-essential bison flex libssl-dev bc gcc-aarch64-linux-gnu +RUN dpkg --add-architecture arm64 && apt-get update && apt-get install -y libseccomp-dev:arm64 && apt-get install -y libglib2.0-dev:arm64 && apt-get install -y libsystemd-dev:arm64 +ARG PODMAN_VERSION=v3.4.2 +ARG RUNC_VERSION=v1.0.2 +ARG CONMON_VERSION=v2.0.30 +ENV PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig/ +ENV GOOS=linux +ENV GOARCH=arm64 +ENV CC='aarch64-linux-gnu-gcc' +COPY ./podman.Makefile.se.patch /tmp +COPY ./runc.Makefile.patch /tmp +RUN mkdir -p /build && mkdir -p /tmp/release +WORKDIR /build +RUN git clone https://github.com/containers/podman && git clone https://github.com/opencontainers/runc && git clone https://github.com/containers/conmon +WORKDIR /build/podman +RUN git checkout $PODMAN_VERSION && patch Makefile /tmp/podman.Makefile.se.patch && make vendor local-cross && \ + cp ./bin/podman.cross.linux.arm64 /tmp/release/podman-$PODMAN_VERSION && chmod +x /tmp/release/podman-$PODMAN_VERSION +WORKDIR /build/runc +RUN git checkout $RUNC_VERSION && patch Makefile /tmp/runc.Makefile.patch && make vendor localcross && \ + cp ./runc-arm64 /tmp/release/runc-$RUNC_VERSION && chmod +x /tmp/release/runc-$RUNC_VERSION + +WORKDIR /build/conmon +RUN git checkout $CONMON_VERSION && make vendor bin/conmon && cp bin/conmon /tmp/release/conmon-$CONMON_VERSION && chmod +x /tmp/release/conmon-$CONMON_VERSION + +RUN mkdir -p /tmp/install/usr/bin && mkdir -p /tmp/install/usr/libexec/podman/ && mkdir -p /tmp/install/usr/share/containers/ && mkdir -p /tmp/install/etc/containers/ +COPY seccomp.json /tmp/install/usr/share/containers/ +COPY containers.conf /tmp/install/etc/containers/ +RUN cp /tmp/release/podman-$PODMAN_VERSION /tmp/install/usr/bin/podman && cp /tmp/release/runc-$RUNC_VERSION /tmp/install/usr/bin/runc && cp /tmp/release/conmon-$CONMON_VERSION /tmp/install/usr/libexec/podman/conmon +WORKDIR /tmp/install +RUN zip -r /tmp/release/podman-install.zip * + diff --git a/podman-update/build/podman.Makefile.se.patch b/podman-update/build/podman.Makefile.se.patch new file mode 100644 index 0000000..eed7eab --- /dev/null +++ b/podman-update/build/podman.Makefile.se.patch @@ -0,0 +1,39 @@ +diff --git a/Makefile b/Makefile +index 15d6d9fb6..8b44da6ae 100644 +--- a/Makefile ++++ b/Makefile +@@ -65,7 +65,7 @@ SOURCES = $(shell find . -path './.*' -prune -o \( -name '*.go' -a ! -name '*_te + + BUILDFLAGS := -mod=vendor $(BUILDFLAGS) + +-BUILDTAGS_CROSS ?= containers_image_openpgp exclude_graphdriver_btrfs exclude_graphdriver_devicemapper exclude_graphdriver_overlay ++BUILDTAGS_CROSS ?= containers_image_openpgp exclude_graphdriver_btrfs exclude_graphdriver_devicemapper exclude_graphdriver_overlay seccomp $(shell hack/systemd_tag.sh) + CONTAINER_RUNTIME := $(shell command -v podman 2> /dev/null || echo docker) + OCI_RUNTIME ?= "" + +@@ -133,16 +133,7 @@ export PATH := $(PATH):$(GOBIN) + GOMD2MAN ?= $(shell command -v go-md2man || echo '$(GOBIN)/go-md2man') + + CROSS_BUILD_TARGETS := \ +- bin/podman.cross.linux.amd64 \ +- bin/podman.cross.linux.ppc64le \ +- bin/podman.cross.linux.arm \ + bin/podman.cross.linux.arm64 \ +- bin/podman.cross.linux.386 \ +- bin/podman.cross.linux.s390x \ +- bin/podman.cross.linux.mips \ +- bin/podman.cross.linux.mipsle \ +- bin/podman.cross.linux.mips64 \ +- bin/podman.cross.linux.mips64le + + # Dereference variable $(1), return value if non-empty, otherwise raise an error. + err_if_empty = $(if $(strip $($(1))),$(strip $($(1))),$(error Required variable $(1) value is undefined, whitespace, or empty)) +@@ -370,7 +361,7 @@ bin/podman.cross.%: .gopathok + TARGET="$*"; \ + GOOS="$${TARGET%%.*}"; \ + GOARCH="$${TARGET##*.}"; \ +- CGO_ENABLED=0 \ ++ CGO_ENABLED=1 \ + $(GO) build \ + $(BUILDFLAGS) \ + -gcflags '$(GCFLAGS)' \