Apple to Deprecate Scripting Languages in Future Versions of macOS
tidbits.com
tidbits.com
Apple don't keep their scripting languages updated. For example, macOS Mojave 10.14.6 ships with perl 5, version 18, subversion 4 (v5.18.4) in /usr/bin/perl; but my homebrew setup provides perl 5, version 30, subversion 0 (v5.30.0).
(And for those who don't know perl, it's been semi-permanently pinned at "perl 5" as a major version number for about 20 years due to the existence of perl 6, which is effectively a different language—as different as C++ is from C—so those minor version number differences are as significant as a major version number change in another language.)
While this doesn't bother me much per se, the issue I see as looming is what I've experienced on a few platforms. Where their "protection" mechanisms effectively prevent you from building the code you need to function effectively.
I usually test each (new) platform by taking my code and trying to build it. If the platform is important to what I do, I'll spend some time making sure it builds correctly, and passes regression testing.
WSL in Windows 10, albeit running on a kvm on my linux laptop, does not pass muster as a system worth targeting for a number of reasons. Not the least of which is that the environment breaks the regression testing.
My concern is that MacOS gets to that point. Its getting close, as I have to specifically allow perl/python/julia/jupyter to open ports. I suspect that soon MacOS will disable this capability.
I already run Linux everywhere, MacOS is just what the corporate folks indicate is an acceptable alternative to Windows 10, which doesn't work for me. Once MacOS doesn't work, it will be far easier to argue for corporate issued Linux laptops.
Alienating DevOps, developers, hpc/ai folks ... not really a good idea. But hey, Apple does Apple, so why not.
[Edited for grammar]
[0] https://news.ycombinator.com/item?id=9025572
[1] https://github.com/Apple-FOSS-Mirror/Libc/blob/2ca2ae7464771...
More like "Apple to stop shipping scripting language interpreters in macOS".
Python, Perl are the calc.exe of this story — not integrated into the OS, just bundled with it. There's a long history between OSX and Ruby, with MacRuby and RubyCocoa being some efforts to actually integrate Ruby more tightly into the ecosystem, but those efforts have long been abandoned.
Microsoft have done a lot in Windows 10 to counter PowerShell malware
https://blogs.technet.microsoft.com/poshchap/2015/10/16/secu...
https://www.microsoft.com/security/blog/2017/12/04/windows-d...
It’s not foolproof but it copes with many common attacks. It’s surprising Apple hasn’t taken this approach.
There's been a persistent "That's only a PC thing" for a long time. Fairly sure it was even referenced in Apple's own advertising during the "I'm a Mac, I'm a PC" phase.
Do a google search for "Secure By Design" site:apple.com to see where they use this term for both iOS and OSX. Someday, someone will win in court over this.
Done well it should substantially reduce the number and severity of security issues. To back up your claim from a numbers standpoint you’d have to quantify the number and severity of security issues in Apple OSs vs comparable OSs that aren’t “Secure by Design”. That’s obviously problematic in a few ways. You could also analyze the design of the OS for security flaws. Though again, finding that the design isn’t perfect isn’t enough. You’d need to show how the design disregards security. A proper analysis should acknowledge history, BTW.
I mostly agree with you, but don’t forget the ‘root login with empty password’ or ‘the password hint showing the password on encrypted disk unlock’ issues. I don’t see how anyone can claim that was secure by design. Sure, it was a bug, but a secure design would not have permitted that issue.
Its like using the default web browser to download the "browser of your choice".
There is the issue that apple usually "quarantines" executable downloads ("You downloaded this from X, do you really want to run) and these scripts do an end run around that. will apple be forcing a download of a signed package dng that installs macports or brew..?
> Scripting language runtimes such as Python, Ruby, and Perl are included in macOS for compatibility with legacy software. Future versions of macOS won’t include scripting language runtimes by default, and might require you to install additional packages. If your software depends on scripting languages, it’s recommended that you bundle the runtime within the app.
As to the rest of it, I’ll just re-post the same comment I post every time some muppet starts with all the wailing and rending of teeth:
This is a perfect opportunity for FOSS to position Homebrew—a proven, successful, developer-friendly software distribution channel—as an integral part of the standard development toolkit of ALL Mac developers; up to and including convincing the Xcode team to bundle it themselves.
..
Apple serves on a plate the greatest geek market opportunity in the 20-year history of Mac OS X… and only the geeks could so totally miss it!
It's not a big deal for users of Homebrew or other package managers.
If the Homebrew team aren’t already busting ass to rewrite brew in Objective-C, and negotiating to get it distributed on AppStore or—ideally—included in Xcode as standard, then they’ll have no-one but themselves to blame when they utterly fail to capitalize on the massive market opportunity Apple has handed them here. Believe me, porting brew is a nothing price and the simplest step by far.
This is a once-in-a-product’s-lifetime chance for a proven FOSS platform not only to grab ten million new users but to influence a global platform vendor’s direction too. Fail to seize this opportunity or blow it execution, and you won’t get another (I speak from painful experience here).
A standard installer package would be much better.
Installing via a shell command has nothing to do with the (in)ability to verify signatures. You aren’t more protected running a random installer package than an auditable shell script from the official Homebrew repo. Also, Homebrew supports more installation methods including cloning the git repo by yourself or un-taring an archive.
Homebrew circumvents all the protections built into macOS (like Gatekeeper / Xprotect etc) for convenience.
I don't think this method for distributing software has much of a future.
One good upside from this deprecation is that lots of scripts naively containing "#!/bin/python" and such without invoking them through /usr/bin/env will stop working on macOS, which is good.
That being said, this is a good thing. By pinning the interpreters to ancient versions Apple is maintaining this legacy code that is often replaced by homebrew/Macports anyway.
[1] https://twitter.com/stroughtonsmith/status/11359563313603461...
And The Open Group doesn't use POSIX, it uses the Single Unix Specification.
That was a metaphor. The reality is I'd get in trouble for spending modem time using UUCP to get a decent, usable tool chain in place before I could do anything productive.
Good internally for Apple to stop relying on them.