Skip to content

Conversation

nesnrve
Copy link

@nesnrve nesnrve commented Sep 17, 2025

The Xcode application ships all the tools from the standalone CLT at /Applications/Xcode.app/Contents/Developer, but installing brew currently forces a duplicate CLT installation separate from the Xcode application. This change should now make the install script respect the Xcode application if present.

@SMillerDev
Copy link
Member

Those are not the same. The CLT from Xcode does not completely match the Command Line Tools package.

@carlocab carlocab closed this Sep 17, 2025
@nesnrve
Copy link
Author

nesnrve commented Sep 17, 2025

@SMillerDev that'd be news to me... what's your references?

Edit: I compared the binaries included from the Xcode application and the standalone CLT. As I had expected, Xcode ships all binaries and headers present in the standalone CLT, and more.

The two Xcode paths in interest:

  • /Applications/Xcode.app/Contents/Developer
  • /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain

vimdiff for binaries:

vimdiff <( (ls /Applications/Xcode.app/Contents/Developer/usr/bin; ls /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin) | sort ) <( ls /Library/Developer/CommandLineTools/usr/bin | sort )

vimdiff for headers:

vimdiff <( (ls /Applications/Xcode.app/Contents/Developer/usr/lib; ls /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib; ls /Applications/Xcode.app/Contents/Developer/Makefiles/pb_makefiles) | sort ) <( ls /Library/Developer/CommandLineTools/usr/lib | sort )

Unless there is something else to it (waiting for @SMillerDev's response), I'll rehearse that I don't think it makes sense having a dependency on the standalone CLT installation when the Xcode application is present, this should be reconsidered and reopened @carlocab.

@carlocab
Copy link
Member

This has been discussed at length very many times in various issues and pull requests here and at Homebrew/brew. Please read those instead.

@nesnrve
Copy link
Author

nesnrve commented Sep 17, 2025

@carlocab Cc: @SMillerDev

I've now read #509, #586, #757 and #340. All of which are rehearsing the same statement made in here, that the standalone CLT is "not the same thing" as those provided by the Xcode application, without any references to support that claim whatsoever.

As to my observation above, the Xcode application ships everything you get from the standalone CLT installation, so if a dependance can be declared on the latter then I see no reason why not the former... it'd be sensible if it were vice versa given the standalone CLT doesn't ship everything that's available from the Xcode application, but that appears to not be the case. I'd be pleased to be enlightened further.

@p-linnane
Copy link
Member

The fact that major formulae like gcc and [email protected] have issues without CLT being installed is reason enough. Check out the formula files if you want, but there are comments explaining issues with incorrect sysroot, headers that can't be found, etc. unless CLT is installed.

Further, multiple maintainers have stated both in this thread, and the ones you linked, that we won't support this. There's no real obligation on our part to 'prove' to you, or anyone else, why that is.

@MikeMcQuaid
Copy link
Member

without any references to support that claim whatsoever.

Here's a reference: we're Homebrew maintainers. I've been doing this for 16 years. I'm in direct communication with Apple around things like the CLT. Homebrew is part of the reason the CLT exists. We know than you about this. We're not obliged (nor is it a good use of our time) to explain to you any more details than have already been provided.

@Homebrew Homebrew locked as resolved and limited conversation to collaborators Sep 18, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants