From 56b27821719d524815904b9ddc276caed81c5c47 Mon Sep 17 00:00:00 2001 From: Jeongkyu Shin Date: Sun, 19 Jul 2026 21:27:42 +0900 Subject: [PATCH] build: source resolute toolchain from rustc-release PPA and pin vendor_rust to 1.96.0 Verified against the ~lablup/+archive/ubuntu/rustc-release PPA that rustc-1.96 is published for jammy, noble, and resolute at 1.96.0+dfsg1. Two adjustments follow from that: Resolute (Ubuntu 26.04) now documents the same dependent-PPA toolchain source as jammy and noble instead of claiming it builds from the archive without the dependency PPA, since the rustc-release PPA serves 26.04 too and debian/control already prefers the versioned rustc-1.96 alternative. vendor_rust drops from 1.96.1 to 1.96.0 so the runner-side lockfile validation and cargo vendor step use the exact patch Launchpad compiles with, eliminating any patch-level skew between the vendoring toolchain and the build toolchain. --- .github/workflows/launchpad_ppa.yml | 8 ++++---- debian/README.packaging | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/launchpad_ppa.yml b/.github/workflows/launchpad_ppa.yml index afdb495c..c9e66b06 100644 --- a/.github/workflows/launchpad_ppa.yml +++ b/.github/workflows/launchpad_ppa.yml @@ -25,14 +25,14 @@ jobs: matrix: include: - distro: jammy - vendor_rust: "1.96.1" + vendor_rust: "1.96.0" toolchain_source: "Requires backend-ai PPA dependency on ~lablup/+archive/ubuntu/rustc-release" - distro: noble - vendor_rust: "1.96.1" + vendor_rust: "1.96.0" toolchain_source: "Requires backend-ai PPA dependency on ~lablup/+archive/ubuntu/rustc-release" - distro: resolute - vendor_rust: "1.96.1" - toolchain_source: "Uses the official Ubuntu 26.04 archive Rust 1.96+ toolchain" + vendor_rust: "1.96.0" + toolchain_source: "Requires backend-ai PPA dependency on ~lablup/+archive/ubuntu/rustc-release" steps: - name: Checkout code diff --git a/debian/README.packaging b/debian/README.packaging index b1ed7a78..86e459dd 100644 --- a/debian/README.packaging +++ b/debian/README.packaging @@ -19,10 +19,10 @@ The following packages are required and must be available to Launchpad through t This project currently requires Rust 1.96 or newer because the vendored dependency set no longer builds with Rust 1.85. This means: - Ubuntu 22.04 (Jammy): requires a versioned Rust 1.96 toolchain from the dependent PPA `~lablup/+archive/ubuntu/rustc-release` - Ubuntu 24.04 (Noble): requires a versioned Rust 1.96 toolchain from the dependent PPA `~lablup/+archive/ubuntu/rustc-release` -- Ubuntu 26.04 (Resolute): can use the archive's Rust 1.96+ toolchain without the extra dependency PPA +- Ubuntu 26.04 (Resolute): requires a versioned Rust 1.96 toolchain from the dependent PPA `~lablup/+archive/ubuntu/rustc-release` If building for older Ubuntu versions, you may need to: -1. Add a Launchpad PPA dependency on `~lablup/+archive/ubuntu/rustc-release` so Jammy and Noble can see `rustc-1.96` and `cargo-1.96` +1. Add a Launchpad PPA dependency on `~lablup/+archive/ubuntu/rustc-release` so Jammy, Noble, and Resolute can see `rustc-1.96` and `cargo-1.96` 2. Limit support to distributions with Rust 1.96+ ### Build Process @@ -37,7 +37,7 @@ If the build fails on Launchpad: 2. Common issues: - Missing build dependencies: Add them to debian/control - Rust version incompatibility: Ensure Rust 1.96+ is available - - Missing PPA dependency: Jammy/Noble need access to `rustc-1.96` and `cargo-1.96` + - Missing PPA dependency: Jammy/Noble/Resolute need access to `rustc-1.96` and `cargo-1.96` - Missing vendored crates: Ensure `vendor/` and `.cargo/config.toml` are included in the source package - Cargo registry access: The build will fail if it tries to download crates