Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package slirp4netns for openSUSE:Factory checked in at 2023-10-08 12:17:10 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/slirp4netns (Old) and /work/SRC/openSUSE:Factory/.slirp4netns.new.28202 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "slirp4netns" Sun Oct 8 12:17:10 2023 rev:15 rq:1116064 version:1.2.2 Changes: -------- --- /work/SRC/openSUSE:Factory/slirp4netns/slirp4netns.changes 2023-08-22 08:55:25.114475828 +0200 +++ /work/SRC/openSUSE:Factory/.slirp4netns.new.28202/slirp4netns.changes 2023-10-08 12:18:41.310955809 +0200 @@ -1,0 +2,6 @@ +Mon Oct 2 08:28:59 UTC 2023 - [email protected] + +- version update to 1.2.2 + * Enabled reproducible builds (#324, #325, #326) + +------------------------------------------------------------------- Old: ---- slirp4netns-1.2.1.tar.xz New: ---- slirp4netns-1.2.2.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ slirp4netns.spec ++++++ --- /var/tmp/diff_new_pack.KgfVCo/_old 2023-10-08 12:18:42.342992916 +0200 +++ /var/tmp/diff_new_pack.KgfVCo/_new 2023-10-08 12:18:42.346993059 +0200 @@ -17,7 +17,7 @@ Name: slirp4netns -Version: 1.2.1 +Version: 1.2.2 Release: 0 Summary: User-mode networking for unprivileged network namespaces License: BSD-2-Clause AND GPL-2.0-only AND MIT ++++++ _service ++++++ --- /var/tmp/diff_new_pack.KgfVCo/_old 2023-10-08 12:18:42.374994066 +0200 +++ /var/tmp/diff_new_pack.KgfVCo/_new 2023-10-08 12:18:42.378994210 +0200 @@ -3,7 +3,7 @@ <param name="url">https://github.com/rootless-containers/slirp4netns.git</param> <param name="scm">git</param> <param name="filename">slirp4netns</param> - <param name="revision">v1.2.1</param> + <param name="revision">v1.2.2</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> </service> ++++++ slirp4netns-1.2.1.tar.xz -> slirp4netns-1.2.2.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slirp4netns-1.2.1/.github/workflows/release.yaml new/slirp4netns-1.2.2/.github/workflows/release.yaml --- old/slirp4netns-1.2.1/.github/workflows/release.yaml 2023-08-19 12:28:04.000000000 +0200 +++ new/slirp4netns-1.2.2/.github/workflows/release.yaml 2023-09-13 16:19:04.000000000 +0200 @@ -7,10 +7,45 @@ release: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 + with: + # Reproduce the exact commit hash value + fetch-depth: 0 + ref: ${{ github.event.pull_request.head.sha }} + - run: echo "SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct)" >> $GITHUB_ENV - uses: docker/setup-buildx-action@v2 + - name: Cache var-cache-apt + uses: actions/cache@v3 + with: + path: var-cache-apt + key: var-cache-apt-${{ hashFiles('Dockerfile.artifact') }} + - name: Cache var-lib-apt + uses: actions/cache@v3 + with: + path: var-lib-apt + key: var-lib-apt-${{ hashFiles('Dockerfile.artifact') }} + - name: inject var-cache-apt into docker + uses: overmindtech/buildkit-cache-dance/inject@306d31a77191f643c0c4a95083f36c6ddccb4a16 + with: + cache-source: var-cache-apt + cache-target: /var/cache/apt + - name: inject var-lib-apt into docker + uses: overmindtech/buildkit-cache-dance/inject@306d31a77191f643c0c4a95083f36c6ddccb4a16 + with: + cache-source: var-lib-apt + cache-target: /var/lib/apt - name: "Build binaries from Dockerfile.artifact" - run: docker buildx build -o /tmp/slirpbuilds --platform=amd64,arm64,arm,s390x,ppc64le,riscv64 -f Dockerfile.artifact . + run: docker buildx build -o /tmp/slirpbuilds --build-arg SOURCE_DATE_EPOCH --platform=amd64,arm64,arm,s390x,ppc64le,riscv64 -f Dockerfile.artifact . + - name: extract var-cache-apt into docker + uses: overmindtech/buildkit-cache-dance/extract@306d31a77191f643c0c4a95083f36c6ddccb4a16 + with: + cache-source: var-cache-apt + cache-target: /var/cache/apt + - name: extract var-lib-apt into docker + uses: overmindtech/buildkit-cache-dance/extract@306d31a77191f643c0c4a95083f36c6ddccb4a16 + with: + cache-source: var-lib-apt + cache-target: /var/lib/apt - name: "Create /tmp/artifact" run: | mkdir -p /tmp/artifact @@ -20,6 +55,7 @@ mv /tmp/slirpbuilds/linux_s390x/slirp4netns /tmp/artifact/slirp4netns-s390x mv /tmp/slirpbuilds/linux_ppc64le/slirp4netns /tmp/artifact/slirp4netns-ppc64le mv /tmp/slirpbuilds/linux_riscv64/slirp4netns /tmp/artifact/slirp4netns-riscv64 + echo "${SOURCE_DATE_EPOCH}" >/tmp/artifact/SOURCE_DATE_EPOCH - name: "SHA256SUMS" run: (cd /tmp/artifact; sha256sum *) | tee /tmp/SHA256SUMS - name: "The sha256sum of the SHA256SUMS file" @@ -50,6 +86,16 @@ The build log is available for 90 days: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} The sha256sum of the SHA256SUMS file itself is \`${shasha}\` . + + The binaries should be reproducible with the following command: + \`\`\` + docker buildx build \ + -o /tmp/slirpbuilds \ + --build-arg SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH} \ + --platform=amd64,arm64,arm,s390x,ppc64le,riscv64 \ + -f Dockerfile.artifact \ + "https://github.com/${{ github.repository }}.git#${tag}" + \`\`\` EOF - name: "Create release" if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slirp4netns-1.2.1/Dockerfile.artifact new/slirp4netns-1.2.2/Dockerfile.artifact --- old/slirp4netns-1.2.1/Dockerfile.artifact 2023-08-19 12:28:04.000000000 +0200 +++ new/slirp4netns-1.2.2/Dockerfile.artifact 2023-09-13 16:19:04.000000000 +0200 @@ -1,19 +1,47 @@ +# Usage: +# docker buildx build \ +# -o /tmp/slirpbuilds \ +# --build-arg SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) \ +# --platform=amd64,arm64,arm,s390x,ppc64le,riscv64 \ +# -f Dockerfile.artifact . + ARG LIBSLIRP_COMMIT=v4.7.0 -ARG UBUNTU_VERSION=22.04 +ARG UBUNTU_VERSION=jammy-20230804 ARG XX_VERSION=1.2.1@sha256:8879a398dedf0aadaacfbd332b29ff2f84bc39ae6d4e9c0a1109db27ac5ba012 +ARG REPRO_SOURCES_LIST_VERSION=v0.1.0 FROM --platform=$BUILDPLATFORM tonistiigi/xx:${XX_VERSION} AS xx FROM --platform=$BUILDPLATFORM ubuntu:${UBUNTU_VERSION} AS build-libslirp +ARG REPRO_SOURCES_LIST_VERSION +ADD --chmod=0755 \ + https://raw.githubusercontent.com/reproducible-containers/repro-sources-list.sh/${REPRO_SOURCES_LIST_VERSION}/repro-sources-list.sh \ + /usr/local/bin/repro-sources-list.sh ENV DEBIAN_FRONTEND=noninteractive -RUN apt-get update && apt-get install -y apt-utils automake autotools-dev make git ninja-build meson +RUN \ + --mount=type=cache,target=/var/cache/apt,sharing=locked \ + --mount=type=cache,target=/var/lib/apt,sharing=locked \ + repro-sources-list.sh && \ + apt-get update && \ + apt-get install -y apt-utils automake autotools-dev file make git ninja-build meson +# Set SOURCE_DATE_EPOCH after running repro-sources-list.sh, for cache efficiency +ARG SOURCE_DATE_EPOCH RUN git clone https://git.qemu.org/libslirp.git /libslirp WORKDIR /libslirp ARG LIBSLIRP_COMMIT RUN git pull && git checkout ${LIBSLIRP_COMMIT} COPY --from=xx / / ARG TARGETPLATFORM -RUN xx-apt-get install -y gcc libglib2.0-dev libcap-dev libseccomp-dev +# xx-apt-get cannot be used, as it clobbers /etc/apt/sources.list created by repro-sources-list.sh +RUN \ + --mount=type=cache,target=/var/cache/apt,sharing=locked \ + --mount=type=cache,target=/var/lib/apt,sharing=locked \ + darch="$(xx-info debian-arch)" && \ + dpkg --add-architecture ${darch} && \ + apt-get update && \ + gcc="gcc" && \ + if xx-info is-cross; then gcc="gcc-$(xx-info triple)"; fi; \ + apt-get install -y "${gcc}" "libglib2.0-dev:${darch}" "libcap-dev:${darch}" "libseccomp-dev:${darch}" COPY Dockerfile.artifact.d/meson-cross /meson-cross RUN meson_setup_flags="--default-library=both" ; \ if xx-info is-cross; then meson_setup_flags="${meson_setup_flags} --cross-file=/meson-cross/$(xx-info) -Dprefix=/usr/local/$(xx-info)"; fi ; \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slirp4netns-1.2.1/Makefile.am new/slirp4netns-1.2.2/Makefile.am --- old/slirp4netns-1.2.1/Makefile.am 2023-08-19 12:28:04.000000000 +0200 +++ new/slirp4netns-1.2.2/Makefile.am 2023-09-13 16:19:04.000000000 +0200 @@ -36,7 +36,7 @@ vendor/parson/parson.h # define specific commit if git available or it was replaced during git-archive creation -COMMIT := $(shell V=$Format:%H$ ; \ +COMMIT := $(shell V=0ee2d87523e906518d34a6b423271e4826f71faf ; \ expr match "$$V" ormat: >/dev/null \ && (cd "$$abs_srcdir" && [ -d .git ] && git describe --always --abbrev=0 --dirty --exclude=\* || echo unknown) \ || echo "$$V" ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slirp4netns-1.2.1/configure.ac new/slirp4netns-1.2.2/configure.ac --- old/slirp4netns-1.2.1/configure.ac 2023-08-19 12:28:04.000000000 +0200 +++ new/slirp4netns-1.2.2/configure.ac 2023-09-13 16:19:04.000000000 +0200 @@ -1,5 +1,5 @@ AC_PREREQ([2.69]) -AC_INIT([slirp4netns], [1.2.1], [https://github.com/rootless-containers/slirp4netns/issues]) +AC_INIT([slirp4netns], [1.2.2], [https://github.com/rootless-containers/slirp4netns/issues]) AC_CONFIG_SRCDIR([main.c]) AC_CONFIG_HEADERS([config.h])
