Opened 6 months ago

Closed 3 weeks ago

#73775 closed defect (fixed)

rust: Offer latest version to macOS 10.12 Sierra

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Priority: Normal Milestone:
Component: ports Version:
Keywords: sierra Cc:
Port: rust

Description

The rust port currently offers the latest version to macOS 10.13 and later and an older version to macOS 10.12 and earlier.

But rust officially supports the latest version on macOS 10.12 and later.

So can we offer the latest version to macOS 10.12?

Change History (4)

comment:1 Changed 6 months ago by ryandesign (Ryan Carsten Schmidt)

We'll need to fix #73575 first which breaks the build on macOS 10.13 and older.

comment:2 Changed 4 weeks ago by herbygillot (Herby Gillot)

In bc9b3dda38c87348f891b694bd65645259695127/macports-ports (master):

rust: offer the current version to macOS 10.12 Sierra

Upstream supports x86_64-apple-darwin back to macOS 10.12, so there is no
reason to hold Sierra at the frozen 1.78.0. Confirmed that the upstream
stage0 binaries actually run there: otool -l on the 1.96.0 stage0 rustc and
cargo both report a 10.12 deployment target. rust_build.stage0_info already
routes mdt >= 10.12 to the "apple" vendor, so no MacPorts-built stage0 is
needed and rust-bootstrap does not have to be rebuilt.

Moves the freeze boundary from "10.12 and below" to "10.11 and below" in the
four coupled conditions in lang/rust (version/revision, supported_archs, source
checksum, cargo.crates) and in the two rust_build procs that key on the
deployment target. All four Portfile conditions must move together -- the
source checksum one in particular, or Sierra would fetch the 1.97.1 tarball and
verify it against the 1.78.0 hash.

10.12 is also dropped from the mirror_all_architectures deployment-target
lists, since x86_64 there now uses the upstream stage0 and i386 is no longer a
supported arch at 10.12.

Note this does drop i386 on 10.12: the current branch is arm64/x86_64 only.
Upstream demoted 32-bit Apple targets to tier 3 in 1.42 and ships no i386
artifacts, and there is no MacPorts i386 stage0 at 1.96. Sierra i386 users
would need the frozen 1.78.0.

Not yet build-tested on 10.12 itself. The compiler path is the same one 10.13
uses -- Sierra's Apple clang is below the cxx_standard 2017 bound, so it falls
back to MacPorts clang -- and 10.13 is green through 1.97.1.

See: #73775

Assisted-by: Claude:claude-opus-5
Co-Authored-By: Claude Opus 5 <noreply@…>

comment:3 Changed 4 weeks ago by herbygillot (Herby Gillot)

Rust has just gotten an update: I've made additional changes to make this latest version available on 10.12, but I can't tell how it did because the build got interrupted: https://build.macports.org/builders/ports-10.12_x86_64-watcher/builds/110460

It _looked_ like it was building, but I'm not sure.

comment:4 Changed 3 weeks ago by herbygillot (Herby Gillot)

Resolution: fixed
Status: assignedclosed

This has successfully built on 10.12: https://build.macports.org/builders/ports-10.12_x86_64-builder/builds/341457

Closing as fixed.

Note: See TracTickets for help on using tickets.