Skip to content

fix: realign Rust MSRV to 1.93 for Launchpad PPA builds#238

Merged
inureyes merged 1 commit into
mainfrom
fix/ppa-msrv-rust-1.93
May 25, 2026
Merged

fix: realign Rust MSRV to 1.93 for Launchpad PPA builds#238
inureyes merged 1 commit into
mainfrom
fix/ppa-msrv-rust-1.93

Conversation

@inureyes

Copy link
Copy Markdown
Member

Problem

sysinfo 0.39 (pulled in by #228) raised the effective MSRV to 1.95, and #233 propagated rustc-1.95 into the Debian packaging. But no Rust 1.95 toolchain is actually available for the target Ubuntu series:

Series Available rustc
resolute (26.04) archive rustc/cargo 1.93.1, versioned up to rustc-1.93
jammy / noble lablup rustc-release PPA tops out at rustc-1.94
anywhere no rustc-1.95

So the build-dep rustc-1.95 | rustc (>= 1.95) is unsatisfiable and the Launchpad PPA build would fail (dep-wait) on all three series.

Fix

Lower the baseline to Rust 1.93 (what resolute ships natively and what the PPA can provide via rustc-1.93):

  • Revert sysinfo 0.39 → 0.38 (resolves to 0.38.4, MSRV 1.88). After this the highest dependency MSRV is 1.88, so nothing needs more than 1.93. The 0.39-only objc2/dispatch2 subtree is dropped from Cargo.lock.
  • Set rust-version = "1.93"; align Dockerfile (rust:1.93-slim) and all debian packaging.

Make toolchain selection forward-compatible so future PPA bumps don't need packaging edits:

  • Build-deps widened to rustc-1.93 | rustc-1.94 | rustc-1.95 | rustc (>= 1.93) (cargo likewise). APT picks the first installable alternative.
  • debian/rules auto-detects the newest available toolchain (rustc-1.951.941.93 → unversioned rustc), keeping the >= 1.93 guard that validates whichever is selected.

Note: versioned package names are matched literally by APT, so rustc-1.93 would not be satisfied by a rustc-1.95 package. Listing the alternatives explicitly (control) plus newest-available detection (rules) is what makes any >= 1.93 toolchain build cleanly.

Verification

  • cargo check --all-targets --locked on Rust 1.88.0 (the strict dependency floor) passes — confirms sysinfo 0.38 API compatibility and that the code builds well below 1.93.
  • debian/rules detection exercised through make for the fallback / 1.93 / 1.95-preferred cases (correct selection in all three).

Files

Cargo.toml, Cargo.lock, Dockerfile, .github/workflows/launchpad_ppa.yml, debian/control(.source), debian/rules(.source, .launchpad, .launchpad-simple), debian/README.packaging.

sysinfo 0.39 raised the effective MSRV to 1.95, but no Rust 1.95 toolchain
is available for the target Ubuntu series: resolute ships rustc/cargo 1.93.1,
and the lablup rustc-release PPA tops out at rustc-1.94. The debian/control
build-dep "rustc-1.95 | rustc (>= 1.95)" was therefore unsatisfiable and the
Launchpad PPA build would fail (dep-wait) on resolute, jammy and noble.

Changes:
- Revert sysinfo 0.39 -> 0.38 (0.38.4, MSRV 1.88); highest dependency MSRV
  is now 1.88, so nothing requires more than 1.93.
- Set package rust-version = 1.93 and align Dockerfile (rust:1.93-slim) and
  all debian packaging (control, control.source, rules*, README.packaging).
- Make the Launchpad toolchain selection forward-compatible:
  - build-deps widened to
    "rustc-1.93 | rustc-1.94 | rustc-1.95 | rustc (>= 1.93)" (cargo likewise)
  - debian/rules now auto-detects the newest available toolchain among
    rustc-1.95 / rustc-1.94 / rustc-1.93, falling back to the unversioned
    rustc, with a ">= 1.93" guard validating whichever is selected.
  This way any published toolchain >= 1.93 (in the archive or the PPA) builds
  without further packaging edits.

Verification:
- cargo check --all-targets --locked on Rust 1.88.0 (strictest floor) passes;
  sysinfo 0.38 API is fully compatible with the code.
- debian/rules detection exercised through make for the fallback, 1.93 and
  1.95-preferred cases.
@inureyes inureyes added type:dependency Dependency updates area:ci CI/CD related labels May 25, 2026
@inureyes inureyes merged commit f925dda into main May 25, 2026
4 checks passed
@inureyes inureyes deleted the fix/ppa-msrv-rust-1.93 branch May 25, 2026 16:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:ci CI/CD related type:dependency Dependency updates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant