Opened 7 weeks ago

Last modified 3 weeks ago

#73711 assigned defect

py313-maturin @1.12.6_0: failed to parse manifest

Reported by: thetrial (alabay) Owned by: tobypeterson
Priority: Normal Milestone:
Component: ports Version: 2.12.4
Keywords: legacy-os leopard snowleopard lion mountainlion mavericks yosemite elcapitan sierra Cc: ryandesign (Ryan Carsten Schmidt)
Port: py313-maturin, py313-cryptography

Description

Seems to be necessary for py313-cryptography. Does not build under 10.12.6 Sierra, though py313-cryptography is shown as compatible (and py313-maturin not).

Attachments (1)

main.log (244.8 KB) - added by thetrial (alabay) 7 weeks ago.

Download all attachments as: .zip

Change History (8)

Changed 7 weeks ago by thetrial (alabay)

Attachment: main.log added

comment:1 Changed 7 weeks ago by ryandesign (Ryan Carsten Schmidt)

though py313-cryptography is shown as compatible (and py313-maturin not).

If you are referring to the ports web site details for py313-maturin and py313-cryptography, the build status only reflects the most recent build. The most recent build of py313-maturin (on March 6) did fail for the same reason you encountered. py313-cryptography's revision was increased 9 hours ago but a build of this has not yet been attempted on the macOS Sierra build machine because we have a huge backlog of builds due to the recent libxml2 and icu updates, so the build status shown on the site reflects the results of successfully building the previous revision of the port back in November when a Sierra-compatible version of maturin was still present. This is confusing and I wish the web site provided clearer information.

The log says:

error: failed to parse manifest at `/opt/local/var/macports/build/py313-maturin-8176722f/work/maturin-1.12.6/Cargo.toml`
Caused by:
  feature `edition2024` is required
  The package requires the Cargo feature called `edition2024`, but that feature is not stabilized in this version of Cargo (1.78.0).
  Consider adding `cargo-features = ["edition2024"]` to the top of Cargo.toml (above the [package] table) to tell Cargo you are opting in to use this unstable feature.
  See https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#edition-2024 for more information about the status of this feature.
error: `cargo metadata --manifest-path Cargo.toml --format-version 1 --locked` failed with code 101

The rust port offers rust 1.78.0 to macOS 10.12 and earlier and a more recent version to newer macOS versions. Unfortunately this port uses a feature of rust ("edition2024") that doesn't work in rust 1.78.0, so you cannot use this version of this port on macOS 10.12 or earlier. This port (and all other ports using edition2024) should communicate this incompatibility by setting the platforms keyword correctly. Possibly, this port could offer an earlier (pre-edition2024) version of maturin to macOS 10.12 and earlier.

comment:2 in reply to:  1 Changed 7 weeks ago by ryandesign (Ryan Carsten Schmidt)

Cc: ryandesign added
Keywords: leopard snowleopard lion mountainlion mavericks yosemite elcapitan added

Replying to ryandesign:

so you cannot use this version of this port on macOS 10.12 or earlier.

py313-cryptography is a dependency of certbot, which I use on the buildmaster which runs OS X 10.11, so this problem affected me when trying to update ports on the buildmaster.

this port could offer an earlier (pre-edition2024) version of maturin to macOS 10.12 and earlier.

Pending another solution, I will add an older version of maturin to the ports overlay I use on the buildmaster.

comment:3 Changed 7 weeks ago by ryandesign (Ryan Carsten Schmidt)

maturin's minimum supported rust version was increased to 1.85.0 and it started using edition2024 in version 1.11.0. It had been increased to 1.83.0 in version 1.10.0. So for older systems we need the preceding version, 1.9.6, which supports rust 1.74.0 and later.

comment:4 Changed 7 weeks ago by ryandesign (Ryan Carsten Schmidt)

Here's the Portfile for py-maturin 1.9.6, if you want to use it temporarily to be able to build py-cryptography.

https://raw.githubusercontent.com/ryandesign/macports-infrastructure/d3801d503e4b4f43c4f4425d3b4a1c3450ca0771/ports/python/py-maturin/Portfile

comment:5 Changed 6 weeks ago by tobypeterson

That seems like a reasonable approach, though I suspect its longevity will be limited. As Rust adoption increases across the open-source ecosystem, it's going to become increasingly more difficult to support systems that cannot use the latest Rust versions.

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

Then we should offer the latest version of rust to older systems.

comment:7 Changed 3 weeks ago by thetrial (alabay)

I can't keep up anymore … now my MP system breaks because also py314-* is called when trying to upgrade. I just can replay backups – and don’t know anymore where the forks are causing problems.

Note: See TracTickets for help on using tickets.