Opened 5 years ago

Closed 10 months ago

#57234 closed defect (fixed)

Some ports are failing to build due to new build system in Xcode 10

Reported by: mf2k (Frank Schima) Owned by:
Priority: Normal Milestone:
Component: ports Version:
Keywords: xcode10 Cc: michaellass (Michael Lass), radarhere (Andrew Murray), rlhamil, inyeollee, justr1 (Juergen), kpreid (Kevin Reid), jeremyhu (Jeremy Huddleston Sequoia), yan12125 (Chih-Hsuan Yen), cooljeanius (Eric Gallager), danchr (Dan Villiom Podlaski Christiansen)
Port: BGHUDAppKit cotvnc gimp-app macports-notifier MacVim pinentry-mac terminal-notifier unison VLC xhyve

Description (last modified by mf2k (Frank Schima))

Xcode 9 introduced a new build system but it was not the default. Xcode 10 has made it the default.

This is an example of a failure message usually seen.

:info:build Details:  Failed to create workspace arena at <DVTFilePath:0x7f9ad0459500:'/Users/macports/Library/Developer/Xcode/DerivedData/pinentry-mac-asqmjqvkuvyzkeaduqaryxjqemdk'>: Error Domain=NSCocoaErrorDomain Code=513 "You don’t have permission to save the file “pinentry-mac-asqmjqvkuvyzkeaduqaryxjqemdk” in the folder “DerivedData”." UserInfo={NSFilePath=/Users/macports/Library/Developer/Xcode/DerivedData/pinentry-mac-asqmjqvkuvyzkeaduqaryxjqemdk, NSUnderlyingError=0x7f9ad02c4190 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"}}
75	:info:build Object:   <IDEWorkspaceArena: 0x7f9ad01ea080>
76	:info:build Method:   -createWorkspaceArenaFolderIfNecessary
77	:info:build Thread:   <NSThread: 0x7f9acb617690>{number = 1, name = main}
78	:info:build Please file a bug at https://bugreport.apple.com with this warning message and any useful information you can provide.

This ticket will track ports that are affected by it. It is a work in progress so feel free to add/remove ports and improve my description of it.

port maintainer status
BGHUDAppKit https://github.com/macports/macports-ports/pull/2720
cotvnc #57174
gimp-app #2718
macports-notifier #57209
MacVim @raimue #57170
mkconsole #58585
pinentry-mac@Ionic #57178
terminal-notifier@raimue,openmaintainer #57210
unison #57347
VLC@RJVB,openmaintainer #57260
xhyve@jeremyhu #57223

Change History (43)

comment:1 Changed 5 years ago by mf2k (Frank Schima)

Description: modified (diff)

comment:2 Changed 5 years ago by mf2k (Frank Schima)

Summary: Some ports are failing at staging due to new build system in Xcode 10Some ports are failing to build due to new build system in Xcode 10

comment:3 Changed 5 years ago by michaellass (Michael Lass)

Cc: michaellass added

comment:4 Changed 5 years ago by radarhere (Andrew Murray)

Cc: radarhere added

comment:5 Changed 5 years ago by amake (Aaron Madlon-Kay)

Description: modified (diff)

comment:6 Changed 5 years ago by michaellass (Michael Lass)

BGHUDAppKit is also affected. A workaround was proposed as #2720.

comment:7 Changed 5 years ago by michaellass (Michael Lass)

... and so is VLC: #57260

comment:8 Changed 5 years ago by Aaron Madlon-Kay <amake@…>

In 6e5b5bd7177b4ae6cbf3ee31d5a6409dd2258775/macports-ports (master):

gimp-app: fix build on macOS 10.14

refs #57234

comment:9 Changed 5 years ago by pmetzger (Perry E. Metzger)

BTW note that the kludge for this is really only needed for destroot. Typically if the build itself fails and is fixed by this, it means that the include statements in the sources are incorrectly using angle brackets instead of double quotes.

comment:10 Changed 5 years ago by kencu (Ken)

I would worry that using the new build system for the build and then the old build system for the destroot might truly be leading into totally unknown territory. Seems logical to me to use one or the other throughout.

Last edited 5 years ago by kencu (Ken) (previous) (diff)

comment:11 in reply to:  9 ; Changed 5 years ago by kencu (Ken)

Replying to pmetzger:

it means that the include statements in the sources are incorrectly using angle brackets instead of double quotes.

This behaviour seems to have changed in Xcode10. I am unable to find any documentation about exactly what is different about the CPP search path handling anywhere on the web so far (if that is what this is about). I would appreciate any information anyone knows about this.

comment:12 Changed 5 years ago by mf2k (Frank Schima)

Description: modified (diff)
Port: BGHUDAppKit VLC added

comment:13 Changed 5 years ago by mf2k (Frank Schima)

Description: modified (diff)
Port: gimp-app added

comment:14 Changed 5 years ago by rlhamil

Cc: rlhamil added

comment:15 Changed 5 years ago by rlhamil

Cc: rlhamil removed

comment:16 Changed 5 years ago by rlhamil

Cc: rlhamil added

comment:17 Changed 5 years ago by rlhamil

Cc: rlhamil removed

comment:18 Changed 5 years ago by rlhamil

Cc: rlhamil added

comment:19 Changed 5 years ago by mf2k (Frank Schima)

Description: modified (diff)
Port: MacVim added

comment:20 Changed 5 years ago by mf2k (Frank Schima)

Description: modified (diff)

comment:21 Changed 5 years ago by d0wntime

this also affects the mkconsole port; I don't seem to have the perms to edit the table above, but wanted to contribute.

Last edited 5 years ago by d0wntime (previous) (diff)

comment:22 Changed 5 years ago by mf2k (Frank Schima)

Description: modified (diff)

comment:23 Changed 5 years ago by mf2k (Frank Schima)

@d0wntime: Is there a Trac ticket that shows the problem? If not, please open one and submit the main.log that proves it. Thanks!

comment:24 Changed 5 years ago by mf2k (Frank Schima)

Port: unison added

comment:25 Changed 5 years ago by inyeollee

Cc: inyeollee added

comment:26 in reply to:  11 Changed 5 years ago by kencu (Ken)

Replying to kencu:

it means that the include statements in the sources are incorrectly using angle brackets instead of double quotes.

This behaviour seems to have changed in Xcode10. I am unable to find any documentation about exactly what is different about the CPP search path handling anywhere on the web so far (if that is what this is about). I would appreciate any information anyone knows about this.

I found some documentation about this change in header path searching, and other changes in the build system that we've been running into: <https://developer.apple.com/documentation/xcode_release_notes/xcode_10_release_notes/build_system_release_notes_for_xcode_10>

comment:27 Changed 5 years ago by justr1 (Juergen)

Cc: justr1 added

comment:28 Changed 5 years ago by kpreid (Kevin Reid)

Cc: kpreid added

comment:29 Changed 5 years ago by ryandesign (Ryan Carsten Schmidt)

We are certain that there is a problem with these ports and the new build system? We are certain it isn't solved by the change proposed in #57137?

comment:30 Changed 5 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Has someone filed a radar on this issue? Please provide reference to it.

comment:31 Changed 5 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Cc: jeremyhu added

comment:32 in reply to:  29 Changed 5 years ago by jmroot (Joshua Root)

Replying to ryandesign:

We are certain that there is a problem with these ports and the new build system? We are certain it isn't solved by the change proposed in #57137?

The headermap change is deliberate and not a bug. Ports relying on the old behaviour need to be fixed.

There is a definite bug where a symlink cannot be created when building and destrooting in separate xcodebuild invocations. This can easily be reproduced with the cocoa app template project included with Xcode. Using the old build system works around this problem. I'm not sure if it's related to the DerivedData permissions thing.

comment:33 Changed 5 years ago by mf2k (Frank Schima)

Description: modified (diff)

comment:34 in reply to:  23 Changed 5 years ago by d0wntime

Replying to mf2k:

@d0wntime: Is there a Trac ticket that shows the problem? If not, please open one and submit the main.log that proves it. Thanks!

There is now, sorry for the delay. Ticket #58585.

comment:35 Changed 5 years ago by yan12125 (Chih-Hsuan Yen)

As a side note, the port welly-clyang fails to build with Xcode 10.2.1 (1) while it builds fine with Xcode 11 beta 3 on my machine.

(1) https://build.macports.org/builders/ports-10.14_x86_64-builder/builds/34157/steps/install-port/logs/stdio

comment:36 Changed 5 years ago by yan12125 (Chih-Hsuan Yen)

Cc: yan12125 added

comment:37 Changed 5 years ago by Andrew Udvare <audvare@…>

In 4674f0894199716285239c3c15876db700c8c443/macports-ports (master):

BGHUDAppKit: patch for Xcode 10.1+

See: #57234

comment:38 Changed 4 years ago by cooljeanius (Eric Gallager)

Cc: cooljeanius added

comment:39 Changed 4 years ago by mascguy (Christopher Nielsen)

Cc: mascguy added

comment:40 Changed 4 years ago by danchr (Dan Villiom Podlaski Christiansen)

I ran into this when creating a port for Aerial; disabling the “new” build system didn't help. The only solution I could find was relocating the build root and derived data directory to /tmp.

https://github.com/macports/macports-ports/pull/8244

comment:41 Changed 4 years ago by danchr (Dan Villiom Podlaski Christiansen)

Cc: danchr added

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

Cc: mascguy removed

comment:43 Changed 10 months ago by mf2k (Frank Schima)

Resolution: fixed
Status: newclosed

I think we can close this generic issue. Any remaining ports that don't build should already have tickets.

Note: See TracTickets for help on using tickets.