Opened 2 years ago

Closed 2 years ago

#64281 closed defect (fixed)

freac @1.1.4: xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: Janosch (Janosch Peters)
Priority: Normal Milestone:
Component: ports Version: 2.7.1
Keywords: haspatch Cc:
Port: freac

Description

Building freac succeeds but the log contains a bunch of junk like this:

:info:build xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
:info:build bash: line 1: [: -le: unary operator expected
:info:build xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
:info:build bash: line 1: [: -eq: unary operator expected
:info:build xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
:info:build bash: line 1: [: -ge: unary operator expected
:info:build make[1]: Entering directory `/opt/local/var/macports/build/_Users_rschmidt_macports_macports-ports-ryandesign-fork_audio_freac/freac/work/freac-1.1.4/components'
:info:build cd extension && /Library/Developer/CommandLineTools/usr/bin/make  && cd ..
:info:build xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
:info:build bash: line 1: [: -le: unary operator expected
:info:build xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
:info:build bash: line 1: [: -eq: unary operator expected
:info:build xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
:info:build bash: line 1: [: -ge: unary operator expected

If the port needs a full Xcode installation, it should specify use_xcode yes. However, looking in to Makefile-options, it looks like it's just using the Xcode version to decide what -arch flags and other similar flags to add. MacPorts probably doesn't want any of that, since MacPorts selects which -arch flags to use, so all of that should probably be ripped out of Makefile-options.

Change History (4)

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

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

Keywords: haspatch added

The developer pointed out that although it is running xcodebuild to set some variables, it doesn't use those variables unless a "release" build is being done, which it isn't by default and which it's not recommended for us to do. The developer fixed it to only run xcodebuild for release builds, and I've backported that patch as part of https://github.com/macports/macports-ports/pull/13522.

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

Owner: changed from janosch to Janosch

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

Resolution: fixed
Status: assignedclosed

In e9902fe41f4cb3b468ac80c3f5da6a585fbb71e3/macports-ports (master):

freac: Don't invoke xcodebuild

The build system only uses xcodebuild to determine the Xcode version
on the basis of which it decides what flags to use during a release
build but we are not doing a release build.

xcodebuild requires Xcode and MacPorts hides Xcode from the build system
because the port does not specify "use_xcode yes" so the build log is
otherwise filled with errors about xcodebuild not being able to run and
subsequent script errors from the build system which did not expect
that to occur.

Closes: #64281

Note: See TracTickets for help on using tickets.