Opened 7 weeks ago

Last modified 5 weeks ago

#70945 new defect

All code needs to be signed as of macOS 15

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by:
Priority: Normal Milestone:
Component: base Version: 2.10.1
Keywords: sequoia Cc:
Port:

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

After installing the buildbot worker software on a 2018 Mac mini running macOS Sequoia, it could not connect to the buildmaster, claiming "No route to host", despite ping and ssh being able to reach that host just fine from the Terminal.

It sounds like macOS 15 requires all code to be signed to access devices on the local network, unless they are run manually in the Terminal. After I ran

sudo codesign --force -s - /opt/bblocal/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python 

I got a dialog box asking if I wanted to allow Python to connect to devices on the local network, and after I said yes, then buildbot was able to connect to the master. Only after doing this did Python appear in System Settings > Privacy & Security > Local Network.

Previously I had installed buildbot on an unsupported Mac running macOS Sequoia via OpenCore Legacy Patcher and had not encountered this problem, probably because OCLP disables some aspects of System Integrity Protection.

The need to sign all code on macOS 15 was also mentioned in https://github.com/macports/macports-ports/pull/25862 where it was proposed to add code to a single port to sign its files. It needs to be handled in MacPorts base so that such signing code doesn't need to be added to all 40,000 ports individually.

How we are going to handle pushing out signed versions of all the ports that macOS 15 users have already installed without revbumping all ports, I don't know.

Change History (7)

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

Description: modified (diff)

comment:2 Changed 7 weeks ago by jmroot (Joshua Root)

Does the toolchain not add ad-hoc signatures automatically? This requirement has been in place on arm64 for quite a while.

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

It has always done so on arm64 but it doesn't appear to on x86_64.

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

It has sign to on arm64 because otherwise programs would not run at all. On x86_64 unsigned code can still run it just can't have special privileges, which apparently now includes accessing local network devices.

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

What I was reading before filing this ticket:

https://forums.developer.apple.com/forums/thread/764523

comment:6 Changed 7 weeks ago by jmroot (Joshua Root)

Have you observed this with programs other than python? We've had previous reports of similar problems with python27 and the firewall, e.g. #53168.

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

I haven't tried to observe it with any other program but it seems like it should affect any program.

Note: See TracTickets for help on using tickets.