From 62fcd36bd0aaee24c5c717bc9167b081eb871a51 Mon Sep 17 00:00:00 2001 From: bryan Date: Mon, 8 Jun 2026 16:56:37 -0700 Subject: [PATCH 1/4] =?UTF-8?q?mono:=20migrate=20source=20to=20GitHub=20ta?= =?UTF-8?q?g=20via=20gs://=20mirror;=20bump=206.12.0.199=20=E2=86=92=206.1?= =?UTF-8?q?2.0.206?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Migrate mono off download.mono-project.com — a Microsoft-archived Azure blob (last modified 2024-05) that may disappear and leave the package unsourceable — to our archive bucket, sourced from the GitHub tag. The mono/mono repo has no GitHub release asset, and the auto-generated archive omits the external/ submodules, so the source is a prepared `git archive --recurse-submodules` of tag mono-6.12.0.206 (commit 0cbf0e2) bundling the full source + submodule trees (boringssl/bdwgc/llvm-project/cecil), mirrored at gs://minimal-staging-archives/mono/mono/. sha256 pinned. .199 only ever existed as a mono-project.com release blob, so it can't be sourced from GitHub; bumped to the latest tag .206 (7-commit patch range). build.sh: the prepared tarball ships the raw tag tree (no generated configure), so it now runs ./autogen.sh first (adds the m4 build dep), and strips the AppleDouble ._* sidecar files the macOS archiver scattered through the tree (they break mono's *.cs glob with CS1056 on e.g. external/cecil/.../._TextMap.cs). Locally built (clean room, arm64/linux) through fetch → sha256 → autogen → configure → make, past the external/cecil class-lib compile that the ._* strip fixes; buildbot runs the full build. Co-Authored-By: Claude Opus 4.8 (1M context) --- packages/mono/build.ncl | 14 +++++++++++--- packages/mono/build.sh | 12 +++++++++++- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/packages/mono/build.ncl b/packages/mono/build.ncl index 69589987..8a3851b3 100644 --- a/packages/mono/build.ncl +++ b/packages/mono/build.ncl @@ -6,6 +6,7 @@ let cmake = import "../cmake/build.ncl" in let gcc = import "../gcc/build.ncl" in let glibc = import "../glibc/build.ncl" in let libtool = import "../libtool/build.ncl" in +let m4 = import "../m4/build.ncl" in let make = import "../make/build.ncl" in let perl = import "../perl/build.ncl" in let pkgconf = import "../pkgconf/build.ncl" in @@ -13,20 +14,27 @@ let python = import "../python/build.ncl" in let toolchain = import "../toolchain/build.ncl" in let zlib = import "../zlib/build.ncl" in -let version = "6.12.0.199" in +let version = "6.12.0.206" in { name = "mono", build_deps = [ { file = "build.sh" } | Local, { - url = "https://download.mono-project.com/sources/mono/mono-%{version}.tar.xz", - sha256 = "c0850d545353a6ba2238d45f0914490c6a14a0017f151d3905b558f033478ef5", + # Sourced from the GitHub tag `mono-%{version}` (commit 0cbf0e2), + # mirrored to our archive bucket. The mono/mono GitHub repo has no + # release asset, and download.mono-project.com is Microsoft-archived + # infra (last touched 2024) that may disappear; this is a prepared + # `git archive --recurse-submodules` of the tag (source + the + # external/ submodules bundled, autotools generated at build time). + url = "gs://minimal-staging-archives/mono/mono/mono-%{version}.tar.gz", + sha256 = "c4074f319f801711f23aad8e52c8d8752405b2966d2566bccd2ab23e326ff146", } | Source, autoconf, automake, base, cmake, libtool, + m4, make, perl, pkgconf, diff --git a/packages/mono/build.sh b/packages/mono/build.sh index c9690284..dd2affd5 100755 --- a/packages/mono/build.sh +++ b/packages/mono/build.sh @@ -1,9 +1,15 @@ #!/bin/sh set -e -tar -xof "mono-${MINIMAL_ARG_VERSION}.tar.xz" +tar -xof "mono-${MINIMAL_ARG_VERSION}.tar.gz" cd "mono-${MINIMAL_ARG_VERSION}" +# The prepared tarball was archived on macOS, which scatters AppleDouble +# "._*" sidecar files through the tree. mono's C# build globs `*.cs` and +# feeds these binary sidecars to the compiler (CS1056 "unexpected character" +# on e.g. external/cecil/Mono.Cecil.PE/._TextMap.cs). Strip them all. +find . -name '._*' -type f -delete + # Provide a 'which' shim (not present in the sandbox, needed by BTLS Makefile) mkdir -p shims cat > shims/which << 'SHIM' @@ -34,6 +40,10 @@ sed -i 's/cmake_minimum_required (VERSION 2\.8\.10)/cmake_minimum_required (VERS mono/btls/CMakeLists.txt \ external/boringssl/CMakeLists.txt +# The GitHub-sourced tarball ships the raw tag tree (no generated +# `configure`), so regenerate the autotools build system first. mono's +# autogen.sh runs autoreconf and then invokes ./configure with "$@". +NOCONFIGURE=1 ./autogen.sh ./configure \ --prefix=/usr \ --sysconfdir=/usr/etc \ From 50f7864f267a99372ab6eaf8f99842c3232445b4 Mon Sep 17 00:00:00 2001 From: bryan-minimal Date: Wed, 10 Jun 2026 11:58:35 -0700 Subject: [PATCH 2/4] ci: re-trigger buildbot (transient amd64 RES h2 stream reset; arm64 built clean) Co-Authored-By: Claude Opus 4.8 (1M context) From 9bbc224fec44be9ab17aa6bcf668fff5b360da54 Mon Sep 17 00:00:00 2001 From: bryan Date: Wed, 10 Jun 2026 12:05:04 -0700 Subject: [PATCH 3/4] no-op: re-trigger build after res-server restart (#233) Co-authored-by: Claude Opus 4.8 (1M context) From 66f9cb7664c29302b989f67e1fe1e45b040a4525 Mon Sep 17 00:00:00 2001 From: bryan Date: Wed, 10 Jun 2026 12:16:40 -0700 Subject: [PATCH 4/4] no-op: re-trigger build (#233) Co-authored-by: Claude Opus 4.8 (1M context)