Opened 4 years ago

Closed 19 months ago

#62650 closed defect (fixed)

libheif/libavif cannot be built universal because rav1e cannot be built universal

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: mascguy (Christopher Nielsen)
Priority: Normal Milestone:
Component: ports Version: 2.6.99
Keywords: Cc: Dave-Allured (Dave Allured), MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Port: libheif libavif rav1e

Description

--->  Computing dependencies for rav1e
Error: Cannot install rav1e for the archs 'i386 x86_64' because
Error: its dependency cargo-c only supports the archs 'x86_64 arm64'.
Error: Problem while installing rav1e

I hope this can be fixed, because otherwise a whole lot of ports suddenly became unable to build universal, due to libheif now depending on rav1e.

Change History (8)

comment:1 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)

Port: libheif added
Summary: rav1e cannot be built universallibheif cannot be built universal because rav1e cannot be built universal

I have not been able to upgrade many of my ports for weeks because of this problem. I use the universal variant on High Sierra.

If we cannot make rav1e able to be built universal, which seems like a possibility since I don't think we can make its dependency cargo-c build universal, then can we modify the ports that depend on rav1e (only libheif) so that they do not depend on rav1e when building for i386?

Or can we make libheif only depend on rav1e for the arm64/x86_64 slices? At least for an i386/x86_64 build, that would probably require making libheif use the muniversal portgroup and setting depends_skip_archcheck rav1e.

comment:2 Changed 3 years ago by Dave-Allured (Dave Allured)

Cc: Dave-Allured added

comment:3 Changed 3 years ago by mascguy (Christopher Nielsen)

Cc: mascguy added

comment:4 in reply to:  1 ; Changed 2 years ago by mascguy (Christopher Nielsen)

Port: libavif added
Summary: libheif cannot be built universal because rav1e cannot be built universallibheif/libavif cannot be built universal because rav1e cannot be built universal

Replying to ryandesign:

I have not been able to upgrade many of my ports for weeks because of this problem. I use the universal variant on High Sierra.

If we cannot make rav1e able to be built universal, which seems like a possibility since I don't think we can make its dependency cargo-c build universal, then can we modify the ports that depend on rav1e (only libheif) so that they do not depend on rav1e when building for i386?

Or can we make libheif only depend on rav1e for the arm64/x86_64 slices? At least for an i386/x86_64 build, that would probably require making libheif use the muniversal portgroup and setting depends_skip_archcheck rav1e.

Recently-added port libavif, is also dependent on rav1e. So whatever solution we decide on, would also be applicable there.

comment:5 in reply to:  4 Changed 2 years ago by mascguy (Christopher Nielsen)

Cc: MarcusCalhoun-Lopez added; mascguy removed
Owner: changed from MarcusCalhoun-Lopez to mascguy

comment:6 Changed 2 years ago by WaywardHeart

With i386 rust being a thing again thanks to MarcusCalhoun-Lopez's work, letting cargo-c build as universal is as simple as reverting 514a87e316ac87b54f323f504b3ff81e2a2f9af1. Additionally, in order for rav1e to be built as universal its portfile will need to have the --target [cargo.rust_platform] flag added to the cargo commands in the post-build and destroot phases.

comment:7 Changed 22 months ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

I am able to build rav1e as a i386/x86_64 universal up to macOS 10.13, which means I believe this ticket can be closed as fixed.

comment:8 in reply to:  7 Changed 19 months ago by mascguy (Christopher Nielsen)

Resolution: fixed
Status: assignedclosed

Replying to MarcusCalhoun-Lopez:

I am able to build rav1e as a i386/x86_64 universal up to macOS 10.13, which means I believe this ticket can be closed as fixed.

Thanks Marcus!

Note: See TracTickets for help on using tickets.