Opened 22 months ago

Last modified 11 months ago

#66427 closed defect

migrating macports to M1 fails to build cmake — at Version 2

Reported by: jmgurney (John-Mark Gurney) Owned by:
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc:
Port: cmake

Description (last modified by ryandesign (Ryan Carsten Schmidt))

I am migrating my system from an old Intel MBP to a new M1 Pro based MBP (13.0.1 (22A400)).

I am following the direction here: wiki:Migration to rebuild the ports.

The issue I'm running into is that cmake is being built as a dependency, but the +universal variant is being built. This means that cmake is attempting to build for x86_64, and as part of the configure process, tries to run an x86_64 binary but this fails. I have not installed Rosetta (not sure if this would fix the issue or not), as I'm trying to make sure I get as many native binaries as possible before breaking down and using it.

The output from restore_ports.tcl:

--->  Computing dependencies for cmake
--->  Fetching archive for cmake
--->  Attempting to fetch cmake-3.24.3_0+universal.darwin_22.arm64-x86_64.tbz2 from http://mirror.fcix.net/macports/packages/cmake
--->  Attempting to fetch cmake-3.24.3_0+universal.darwin_22.arm64-x86_64.tbz2 from https://packages.macports.org/cmake
--->  Attempting to fetch cmake-3.24.3_0+universal.darwin_22.arm64-x86_64.tbz2 from https://ywg.ca.packages.macports.org/mirror/macports/packages/cmake
--->  Configuring cmake
Error: Failed to configure cmake: configure failure: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_cmake/cmake/main.log for details.
upgrade tiff failed
    while executing
"macports::_upgrade_mport_deps $mport $target"
    (procedure "mportexec" line 46)
    invoked from within
"mportexec $workername $install_target"
Unable to execute target 'install' for port 'qt4-mac': upgrade tiff failed
    while executing
"install_ports $operationList"
    (file "./restore_ports.tcl" line 299)

Attached are the relevant logs as well.

I'd expect that either cmake not support a universal variant, or the migration to not attempt to install universal variants if they don't work.

I did notice a similar bug in #66213 and I also noticed that the build systems don't actually build/test the universal variant of ports: https://build.macports.org/builders/ports-12_arm64-builder/builds/73986/steps/install-port/logs/stdio which explains why this failure was not caught.

Change History (4)

Changed 22 months ago by jmgurney (John-Mark Gurney)

Attachment: main.log added

cmake main.log

Changed 22 months ago by jmgurney (John-Mark Gurney)

Attachment: cmake_bootstrap.log added

cmake configure failure log, showing failure to run x86_64 binary

comment:1 Changed 22 months ago by kencu (Ken)

This is both a feature and a curse of the way MacPorts handles universal ports.

For cmake, if you install it separately, like this:

sudo port -v install cmake

before you run the restore script, at least that one will install without universal, and will then be ignored by the restore script as it will be seen to be already installed.

(I am curious what else you have on your list that is calling for cmake to be installed as universal though -- you might run into troubles with more universal builds still -- perhaps you can spot the issue in your list of ports.)

comment:2 Changed 22 months ago by ryandesign (Ryan Carsten Schmidt)

Description: modified (diff)
Port: cmake added
Note: See TracTickets for help on using tickets.