lmao
https://twitter.com/fobwashed/status/1575943899478380544?s=4...
(Basically like how Ubuntu's Snaps work filesystem-wise; but interacting directly with the logical-volume manager to create volumes, rather than keeping the disk image around as a file in your filesystem.)
For that matter, given that the APFS OS volume is read-only, is there a reason macOS hasn't yet transitioned to the coreOS model where OS updates just are just Courgette-alike binary diffs that construct a new OS volume beside the old OS volume atomically by stream-merging the old volume with the patch, and then blessing the result? Or the game-console software update model where the base-images of things are immutable, and instead updates are their own read-only volumes that get overlay-mounted on top of the base images when you mount the base images? (I know macOS can already do the latter for security hotfixes; it's strange that they don't use that capability for regular updates.)
> For that matter, given that the APFS OS volume is read-only, is there a reason macOS hasn't yet transitioned to the coreOS model where OS updates just are just Courgette-alike binary diffs that construct a new OS volume beside the old OS volume atomically by stream-merging the old volume with the patch, and then blessing the result?
To my knowledge this is pretty close to how updates work today.
But the key advantage of this model is a sort of green/blue deploy model for your OS — when you do it, you can construct the new updated OS release in the background while the previous release of the OS is running; and then you "update" by just rewriting the UEFI boot priority to default to the new release. There's no reason that an "OS update" should ever be a thing that sits around and blocks startup.
I think your intended meaning, is that the current model involves a binary diff that gets used to patch the OS volume, while the OS is booted into the recovery volume. Which, yeah, uses kind of the same ideas, but doesn't give any of the same advantages.
This is true for Linux and Windows too.
Downloading the command line tools package is just a convenient way to get everything, which is why people recommend it.
I think it’s pretty common knowledge that Macs are sold as consumer machines that don’t include a full tool chain out of the box. Guess what - it’s free to download and sometimes it gets updates.
It’s hard to understand why you are making such a fuss about installing developer tools on a developer machine.
Sometimes I find I have to install gcc or clang or llvm on a Linux machine in order to install some other package. Why would I moan about this?
Why do I need GCC for git?
> Macs are sold as consumer machines that don’t include a full tool chain out of the box.
It wasn't that long ago that Macs had server software out of the box.
Still doesn't explain why I need to download 670 MB of something to install otherwise separate tools.
And why the hell things like git break when XCode upgrades a version
You don’t - but you do need it on Linux to install certain other developer tools. There is nothing unusual about having to install developer tools.
> It wasn't that long ago that Macs had server software out of the box.
So what? Are you saying you didn’t realize MacOS is now aimed at consumers?
And yet, only in MacOS I need to install 670 MB of junk to install, say, git. Why?
> Are you saying you didn’t realize MacOS is now aimed at consumers?
This doesn't explain why I need to install 670 MB of tools to install separate developer tools that are not even Apple's.
With all due respect, it’s very unclear why you are experiencing so much pain over this. It really isn’t a big deal.
I agree that if there is a bug that causes a download to get stuck in a loop, it should be a priority for Apple to fix it.
However that isn’t what you are arguing.
No it doesn't. The GPL is only relevant if you plan to distribute GCC, and you are never made to affirm your agreement when downloading, installing or using GCC. GCC never prompts you with any "click agree to continue" bullshit.
This is no different from Apple’s license, which also allows you to use the software freely unless you want to redistribute it.
Prompt or no prompt, if you use GPL software, you are forced to accept the GPL.
And really? Your complaint is a click to agree to a software license? Why does that upset you so much?
No prompt, no forced acceptance. You are simply wrong. The GPL permits all use, it has no restrictions on use. It restricts only distribution.
> This is no different from Apple’s license, which also allows you to use the software freely unless you want to redistribute it.
You are wrong. You didn't read Xcode's license. I did, it places substantial restrictions on how and where you can use Xcode, not just restrictions on distribution.
Do yourself a favor and read this document, since you obviously have already agreed to it without reading it: https://www.apple.com/legal/sla/docs/xcode.pdf
Fair point about the XCode license being more restrictive than I said.
But trying to download the xcode tools put me into a loop which wasn't completing for some reason. After several attempts waiting for it to download and install I gave up and created an alias 'git' which points to my brew install of git (in usr/local/bin I think).
This will bite me somehow very soon, I'm sure.
The question of "why the he'll do I need to download 670 MB of unknown junk before installing tools that are not even Apple's" remains
Honestly if having to download some tools is your chief complaint about their developer experience, they must be doing magnificently.
https://developer.apple.com/xcode/resources/
The download button gives options website or AppStore.
1. Use DevCleaner[0] to remove old/unnecessary device support files.
2. Remove platforms you don't develop for, e.g.
- rm -rf /Applications/Xcode.app/Contents/Developer/Platforms/Watch*
- rm -rf /Applications/Xcode.app/Contents/Developer/Platforms/AppleTV*
DevCleaner freed up 10G+ for me the first time, the two rm commands above free up ~3G each.
I'm glad I'm not alone in that experience. Why the hell do I need an account to get developer tools in the first place?
Because there is a history of rootkits being embedded into development tools.
https://9to5mac.com/2015/09/20/xcode-ghost-app-store-malware...
Running unsigned code requires several hoops, even running signed code which isn't Apple Approved requires telling the OS that you know what you're doing, twice.
Running signed code which has been altered, such as a hacked XCode, isn't possible, as far as I know.
If this was the reason developer accounts were required, it no longer is. From Apple's perspective, there's only upside in requiring them, which is the most likely explanation for why they do.
I installed the MAS version years ago and it seems to auto-update just fine for me.
When there is a beta, I install that from developer.apple.com and the two work just fine on the same machine.
XCode presumably works fine if you work daily on it. What I can't fucking stand is having to download it to do something unrelated to it (and, lol, how it decides to be the terrible default editor for every file that's even vaguely related to code and then I have to go update all the file associations).
I especially hate that you have to download a second copy every year for the Mac beta. Especially when you have no desire to ever write Swift or Obj-c code in your life, like most of us.
Even the annual "Developer License" is absurd... and the revenue such licenses generate is trivial.
Some will argue iOS is where the money is at... and that is true... but just think about it. The money is on iOS because you are putting up with Apple's absurdities!
If more of you stopped putting up with this nonsense then either Apple will have to change or another platform will become where the money is at... it's that simple.
Steve Balmer chanting "Developers, Developers, Developers!" comes to mind. Microsoft realized early on it's 3rd party developers would cause Windows to sink or swim, and by most accounts developer platforms and tooling coming out of Redmond are really good. Why put up with this stuff from Apple?
> Steve Balmer chanting "Developers, Developers, Developers!" comes to mind.
Yes and because of Steve Balmer’s great leadership, MS was able to conquer mobile like they were able to conquer the desktop. I see where you are coming from, why don’t people just develop for Windows phones?
> If more of you stopped putting up with this nonsense then either Apple will have to change or another platform will become where the money is at... it's that simple.
You really think that if every developer who writes iOS apps and posts to HN stopped that anyone would care?
(And Linux is infuriating for other reasons, like not having the sleek and snappy UX of Mac). Of the three, Apple is my favorite. Still think the company is weirdly incompetent at totally basic things, though. Like all API design. I will never do Apple-specific development for that reason, but I prefer it for general purpose work.
Lol, the feedback is surely "stop deleting all your documentation without replacing it" and also "please don't make me re-download Xcode for 3 hours using an account I forgot thee credentials for in your terrible app store with its un-resumable download flow before I can do anything", but they came up with this?