Opened 6 years ago

Last modified 20 months ago

#60817 new update

darwinbuild @37: update to PureDarwin fork of darwinbuild

Reported by: cooljeanius (Eric Gallager) Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.6.2
Keywords: Cc:
Port: darwinbuild

Description (last modified by cooljeanius (Eric Gallager))

Currently darwinbuild fails to build on Catalina because it tries to build for i386, which is no longer supported. The main thing I had used darwinbuild for in the past was building PureDarwin, so when I raised this issue with them, they told me that they had their own fork of it: https://github.com/PureDarwin/PureDarwin/issues/53#issuecomment-657109554

The fork is many commits ahead of the MacOSForge one, and I managed to build it on my own, so it seems like updating to PureDarwin version of darwinbuild would be a good way to continue to support it in MacPorts: https://github.com/PureDarwin/darwinbuild

The latest tag is 1640.0.2: https://github.com/PureDarwin/darwinbuild/releases/tag/1640.0.2

Change History (12)

comment:1 Changed 6 years ago by cooljeanius (Eric Gallager)

Description: modified (diff)

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

Seems reasonable. Feel free to submit a pull request and, if you're interested in darwinbuild, to become the port's maintainer.

comment:3 in reply to:  2 Changed 6 years ago by cooljeanius (Eric Gallager)

Replying to ryandesign:

Seems reasonable. Feel free to submit a pull request and, if you're interested in darwinbuild, to become the port's maintainer.

ok I've given it a try; preliminary Portfile is here: https://github.com/cooljeanius/LocalPorts/blob/master/devel/darwinbuild/Portfile

Unfortunately it fails building for me under MacPorts; output looks like this:

--->  Building darwinbuild
DEBUG: Executing org.macports.build (darwinbuild)
DEBUG: Assembled command: 'cd "/opt/local/var/macports/build/_Users_ericgallager_LocalPorts_devel_darwinbuild/darwinbuild/work/darwinbuild-1640.0.2" && /usr/bin/xcodebuild  -target "world" -configuration Public build   OBJROOT="/opt/local/var/macports/build/_Users_ericgallager_LocalPorts_devel_darwinbuild/darwinbuild/work/darwinbuild-1640.0.2/build/" SYMROOT="/opt/local/var/macports/build/_Users_ericgallager_LocalPorts_devel_darwinbuild/darwinbuild/work/darwinbuild-1640.0.2/build/" MACOSX_DEPLOYMENT_TARGET=10.15 ARCHS=x86_64 SDKROOT="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk" GCC_VERSION=com.apple.compilers.llvm.clang.1_0 CLANG_CXX_LIBRARY="libc++" PREFIX=/opt/local GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS=NO'
DEBUG: system: cd "/opt/local/var/macports/build/_Users_ericgallager_LocalPorts_devel_darwinbuild/darwinbuild/work/darwinbuild-1640.0.2" && /usr/bin/xcodebuild  -target "world" -configuration Public build   OBJROOT="/opt/local/var/macports/build/_Users_ericgallager_LocalPorts_devel_darwinbuild/darwinbuild/work/darwinbuild-1640.0.2/build/" SYMROOT="/opt/local/var/macports/build/_Users_ericgallager_LocalPorts_devel_darwinbuild/darwinbuild/work/darwinbuild-1640.0.2/build/" MACOSX_DEPLOYMENT_TARGET=10.15 ARCHS=x86_64 SDKROOT="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk" GCC_VERSION=com.apple.compilers.llvm.clang.1_0 CLANG_CXX_LIBRARY="libc++" PREFIX=/opt/local GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS=NO
Command line invocation:
    /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -target world -configuration Public build OBJROOT=/opt/local/var/macports/build/_Users_ericgallager_LocalPorts_devel_darwinbuild/darwinbuild/work/darwinbuild-1640.0.2/build/ SYMROOT=/opt/local/var/macports/build/_Users_ericgallager_LocalPorts_devel_darwinbuild/darwinbuild/work/darwinbuild-1640.0.2/build/ MACOSX_DEPLOYMENT_TARGET=10.15 ARCHS=x86_64 SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk GCC_VERSION=com.apple.compilers.llvm.clang.1_0 CLANG_CXX_LIBRARY=libc++ PREFIX=/opt/local GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS=NO

Build settings from command line:
    ARCHS = x86_64
    CLANG_CXX_LIBRARY = libc++
    GCC_VERSION = com.apple.compilers.llvm.clang.1_0
    GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO
    MACOSX_DEPLOYMENT_TARGET = 10.15
    OBJROOT = /opt/local/var/macports/build/_Users_ericgallager_LocalPorts_devel_darwinbuild/darwinbuild/work/darwinbuild-1640.0.2/build/
    PREFIX = /opt/local
    SDKROOT = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk
    SYMROOT = /opt/local/var/macports/build/_Users_ericgallager_LocalPorts_devel_darwinbuild/darwinbuild/work/darwinbuild-1640.0.2/build/

2020-07-12 18:52:48.508 xcodebuild[71105:77482318] [MT] IDELogStore: Failed to open log store at /Users/macports/Library/Developer/Xcode/DerivedData/darwinbuild-eteqwnveeqaljebpqchxajorkddd/Logs/Build
2020-07-12 18:52:48.508 xcodebuild[71105:77482318] [MT] IDELogStore: Failed to open Build log store: Error Domain=IDEFoundationErrorDomain Code=1 "Unable to create log store directory at '/Users/macports/Library/Developer/Xcode/DerivedData/darwinbuild-eteqwnveeqaljebpqchxajorkddd/Logs/Build': (513) You don’t have permission to save the file “Build” in the folder “Logs”." UserInfo={NSLocalizedDescription=Unable to create log store directory at '/Users/macports/Library/Developer/Xcode/DerivedData/darwinbuild-eteqwnveeqaljebpqchxajorkddd/Logs/Build': (513) You don’t have permission to save the file “Build” in the folder “Logs”.}. User info: {
    NSLocalizedDescription = "Unable to create log store directory at '/Users/macports/Library/Developer/Xcode/DerivedData/darwinbuild-eteqwnveeqaljebpqchxajorkddd/Logs/Build': (513) You don\U2019t have permission to save the file \U201cBuild\U201d in the folder \U201cLogs\U201d.";
}.
2020-07-12 18:52:48.539 xcodebuild[71105:77482318] [MT] IDELogStore: Failed to open log store at /Users/macports/Library/Developer/Xcode/DerivedData/darwinbuild-eteqwnveeqaljebpqchxajorkddd/Logs/Package
2020-07-12 18:52:48.539 xcodebuild[71105:77482318] [MT] IDELogStore: Failed to open Package log store: Error Domain=IDEFoundationErrorDomain Code=1 "Unable to create log store directory at '/Users/macports/Library/Developer/Xcode/DerivedData/darwinbuild-eteqwnveeqaljebpqchxajorkddd/Logs/Package': (513) You don’t have permission to save the file “Package” in the folder “Logs”." UserInfo={NSLocalizedDescription=Unable to create log store directory at '/Users/macports/Library/Developer/Xcode/DerivedData/darwinbuild-eteqwnveeqaljebpqchxajorkddd/Logs/Package': (513) You don’t have permission to save the file “Package” in the folder “Logs”.}. User info: {
    NSLocalizedDescription = "Unable to create log store directory at '/Users/macports/Library/Developer/Xcode/DerivedData/darwinbuild-eteqwnveeqaljebpqchxajorkddd/Logs/Package': (513) You don\U2019t have permission to save the file \U201cPackage\U201d in the folder \U201cLogs\U201d.";
}.
2020-07-12 18:52:48.551 xcodebuild[71105:77482318] [MT] IDELogStore: Failed to open log store at /Users/macports/Library/Developer/Xcode/DerivedData/darwinbuild-eteqwnveeqaljebpqchxajorkddd/Logs/Test
2020-07-12 18:52:48.551 xcodebuild[71105:77482318] [MT] IDELogStore: Failed to open Test log store: Error Domain=IDEFoundationErrorDomain Code=1 "Unable to create log store directory at '/Users/macports/Library/Developer/Xcode/DerivedData/darwinbuild-eteqwnveeqaljebpqchxajorkddd/Logs/Test': (513) You don’t have permission to save the file “Test” in the folder “Logs”." UserInfo={NSLocalizedDescription=Unable to create log store directory at '/Users/macports/Library/Developer/Xcode/DerivedData/darwinbuild-eteqwnveeqaljebpqchxajorkddd/Logs/Test': (513) You don’t have permission to save the file “Test” in the folder “Logs”.}. User info: {
    NSLocalizedDescription = "Unable to create log store directory at '/Users/macports/Library/Developer/Xcode/DerivedData/darwinbuild-eteqwnveeqaljebpqchxajorkddd/Logs/Test': (513) You don\U2019t have permission to save the file \U201cTest\U201d in the folder \U201cLogs\U201d.";
}.
Resolve Package Graph
xcodebuild: error: Could not resolve package dependencies:
  Error Domain=NSCocoaErrorDomain Code=513 "You don’t have permission to save the file “repositories” in the folder “SourcePackages”." UserInfo={NSFilePath=/Users/macports/Library/Developer/Xcode/DerivedData/darwinbuild-eteqwnveeqaljebpqchxajorkddd/SourcePackages/repositories, NSUnderlyingError=0x7fa6756e10c0 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"}}

Command failed: cd "/opt/local/var/macports/build/_Users_ericgallager_LocalPorts_devel_darwinbuild/darwinbuild/work/darwinbuild-1640.0.2" && /usr/bin/xcodebuild  -target "world" -configuration Public build   OBJROOT="/opt/local/var/macports/build/_Users_ericgallager_LocalPorts_devel_darwinbuild/darwinbuild/work/darwinbuild-1640.0.2/build/" SYMROOT="/opt/local/var/macports/build/_Users_ericgallager_LocalPorts_devel_darwinbuild/darwinbuild/work/darwinbuild-1640.0.2/build/" MACOSX_DEPLOYMENT_TARGET=10.15 ARCHS=x86_64 SDKROOT="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk" GCC_VERSION=com.apple.compilers.llvm.clang.1_0 CLANG_CXX_LIBRARY="libc++" PREFIX=/opt/local GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS=NO
Exit code: 74
Error: Failed to build darwinbuild: command execution failed
DEBUG: Error code: NONE
DEBUG: Backtrace: command execution failed
    while executing
"$procedure $targetname"
Error: See /opt/local/var/macports/logs/_Users_ericgallager_LocalPorts_devel_darwinbuild/darwinbuild/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets to report a bug.
Error: Processing of port darwinbuild failed

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

That sounds like #57137.

comment:5 Changed 4 years ago by barracuda156

Unfortunately, some of their updated break down functionality on earlier systems: https://github.com/macosforge/darwinbuild/pull/142/commits/ff1c173232a0649714772d6bb92f7df7f1d88569 This then has to be restored with a patch on MP side.

comment:6 in reply to:  5 ; Changed 4 years ago by cooljeanius (Eric Gallager)

Replying to barracuda156:

Unfortunately, some of their updated break down functionality on earlier systems: https://github.com/macosforge/darwinbuild/pull/142/commits/ff1c173232a0649714772d6bb92f7df7f1d88569 This then has to be restored with a patch on MP side.

That pull request hasn't been merged yet...

Edit: actually never mind, the pull request is against the macosforge version, so it's already part of the puredarwin version...

Last edited 4 years ago by cooljeanius (Eric Gallager) (previous) (diff)

comment:7 in reply to:  6 Changed 4 years ago by barracuda156

Replying to cooljeanius:

Edit: actually never mind, the pull request is against the macosforge version, so it's already part of the puredarwin version...

Then that has to be fixed if darwinbuild gets updated. Or someone has to fix it with puredarwin upstream.

comment:8 in reply to:  6 ; Changed 4 years ago by barracuda156

Replying to cooljeanius:

Looked briefly at the code, apparently more things are broken: plists do not have arch settings, unless I miss something. We may need to restore quite a bit more than two files for Xcode 3.1 and 3.2.

comment:9 in reply to:  8 Changed 2 years ago by cooljeanius (Eric Gallager)

Replying to barracuda156:

Replying to cooljeanius:

Looked briefly at the code, apparently more things are broken: plists do not have arch settings, unless I miss something. We may need to restore quite a bit more than two files for Xcode 3.1 and 3.2.

Please let the PureDarwin folks know; you can join our Discord server here: https://discord.gg/9kz8XXRRcT

comment:10 Changed 20 months ago by barracuda156

Maybe it makes a better practical sense to have separate versions. Since this is a tool to build system components and nothing else, perhaps there is no benefit in using a much newer version, that will only increase a number of patches needed LOL

I mean, I want PowerPC supported in the current PureDarwin, of course. But until then, it may be sensible to update modern systems to modern version and peg older ones to the older (corresponding to the OS historically).

comment:11 in reply to:  10 Changed 20 months ago by cooljeanius (Eric Gallager)

Replying to barracuda156:

Maybe it makes a better practical sense to have separate versions. Since this is a tool to build system components and nothing else, perhaps there is no benefit in using a much newer version, that will only increase a number of patches needed LOL

I mean, I want PowerPC supported in the current PureDarwin, of course. But until then, it may be sensible to update modern systems to modern version and peg older ones to the older (corresponding to the OS historically).

Separate versions as in completely separate Portfiles, or as in one as a subport of the other?

comment:12 Changed 20 months ago by kencu (Ken)

Because darwinbuild has NEVER WORKED in the 10 years I have been involved with MacPorts, ever, at all -- and who knows when (or if) it ever worked before that -- we don't want push more broken junk to the main MacPorts tree.

If you would like to start a working group to see if darwinbuild of any ilk might someday be resurrected, that sounds fine -- people can work away on it.

But please only bring something back to macports if it actually really does work on at least a few machines supported by macports.

There are a number of ports currently in the tree that have been added over the past year or two that are just junk, and although they may be of interest to a couple of folks, the main macports repo is no place for them.

libdispatch-legacy, xdarwintools, libcxx-powerpc, and others --- mostly-non-working, unmaintained noise.

Note: See TracTickets for help on using tickets.