7 ms·
Sure would be nice if they could upgrade bash to 4.x
by pstuart 9y ago
Sure would be nice if they could upgrade bash to 4.x
- saagarjha 9y agoIf I remember correctly it’s because newer versions of Bash use GPLv3 which Apple doesn’t want to have to deal with.
- astrodust 9y agoNeed a BSD or MIT licensed bash work-alike, but that is not a fun project to undertake.
- skrause 9y agoWhy not drop bash completely and make zsh the default shell? Apple has been shipping zsh for a very long time already...
- kruhft 9y agoWhy not just use /bin/ksh which is installed by default on macOS? Better programming, faster and 'set -o emacs' give it readline keybindings.
- kitotik 9y agoIIRC csh was the default pre OS 10.2 days. I previously thought zsh fit the Apple ethos and aesthetic the best with its nice completions and clean(er) syntax. Now I wish they’d start shipping fish as it provides such a nice experience out of the box, and is gplv2
- jolux 9y agofish should be the default shell on macOS, possibly with a cool custom theme. then again it might turn off some of the hardcore bearded UNIX people who use it.
- dionian 9y agoI mean, any UNIX beard who isn't willing to configure his/her machine to use a different shell, probably really isn't a true UNIX power user... I would not care either way since I just use ohmyzsh, their github page has a shell oneliner to install it, good enough for me
- moondev 9y agoFish is not 100% bash compatible so that would break scripts everywhere
- stephenr 9y agoOnly scripts that are sourced by the active shell Edit: to clarify, any shell script that is executed will define its own shell to execute with (the #! line). There may be some issues if scripts have declared their shell as /bin/sh but they use bashisms, and then /bin/sh isn't provided by bash anymore, but honestly that's not necessarily related. The discussion here is about changing the default login shell for interactive user accounts to fish. If they did this though, it would be nice if they would use dash for /bin/sh, but I'm not sure how that's licenced - possibly gpl3 too?
- jolux 9y agoIt's not bash or POSIX compatible at all, they're basically incompatible.
- jolux 9y agoOn second thought this might lose them SUS certification so perhaps they shouldn't do this. I just think macOS is a friendly OS and fish is a lot friendlier than bash or even zsh out of the box (it's even right there in the name!).
- duskwuff 9y agoEarly versions of Mac OS X used tcsh as the default shell. That caused a lot of nasty compatibility issues -- I'm glad they changed it. Ironically, the primary developer of fish is an Apple employee. This is probably a significant reason why it's GPLv2 and not v3!
- kitotik 9y agoAhh right, tcsh! Thanks for reminding me. I think being so lost at the tcsh prompt is what first prompted me to start learning other shells and ended up with Zsh for a long awhile. Also, I had no idea the fish dev worked at Apple. I have no hopes of them going with that as a default, but I could certainly see them shipping it as part of the os...
- zanchey 9y agofish has been GPLv2 since well before ridiculousfish took over as the maintainer; changing to GPLv3 is not something we have the appetite or energy for!
- raimue 9y agotcsh was the default shell on OS X before Apple switched to bash with OS X 10.3 Panther released in 2003.
- jaytaylor 9y agoSee: https://fishshell.com/ https://fishshell.com/ Source code: https://github.com/fish-shell/fish-shell https://github.com/fish-shell/fish-shell
- fasquoika 9y agoWhat does FreeBSD use? IIRC they've been trying hard to avoid the GPL
- petre 9y agoJust use zsh. A recent enough version comes with MacOS.
- pstuart 9y agoBash is universal. It's nice to be able to write a script that takes advantage of later features that runs on both Mac and Linux.
- pjmlp 9y agoAs it is zsh. I remember the days where each login into an UNIX system would give me a totally different shell. But all relevant ones were installed, so it was only a matter of having the right shebang paths.
- ChickeNES 9y agoAs are Ruby and Python. I can't remember the last time I used Bash for scripting
- pstuart 9y agoYeah, I'm aware. But if since they're providing the source code it's not clear how this taints anything.
- millstone 9y agoIt's the Tivoization clause of course. Darwin is the basis for not only macOS but also iOS, and Apple doesn't want to provide support for replacing the software on iOS devices.
- belorn 9y agoIf I recall right it was the patent agreement clause, where they would have to transfer any patent rights from negotiations with partners that in theory could cover the GPLv3 work. So if Apple has a deal with a patent troll which has a an obvious broken patent that covers all and every program (but which would fall apart if challenged), then apple could in theory get into trouble with the troll if they distributed GPLv3 software.
- slrz 9y agoDon't do shady deals with trolls then? Or, if that's not possible, at least do them in a way that grants downstream recipients of your software the same patent rights that you got from the deal. There is precedent for the latter. When Red Hat paid off the Firestar troll, it negotiated a patent license for all recipients of the software, including upstream and derivative versions. Discouraging individual patent deals with a troll while leaving the rest of the community (from whose software you benefit) vulnerable doesn't seem like a bad thing to me.
- viraptor 9y agoAt this point it could well be about keeping backwards compatibility. There are some obscure cases where the bash on mac behaves differently to a modern one. And there are going to be scripts relying on it.
- jason_slack 9y agoYou can upgrade yourself via `brew`. But you probably already know that. Just in case.
- Crontab 9y agoWhat I would like to see is for them to ditch all the GNU/GPL stuff and go with BSD for userland. Shipping old stuff is unacceptable and it's not like we can't install it if we want it.
- josteink 9y ago> What I would like to see is for them to ditch all the GNU/GPL stuff and go with BSD for userland. That sounds like an odd thing to wish for in software where you are the user. That's asking for less freedom. So why would you do that? > Shipping old stuff is unacceptable and it's not like we can't install it if we want it. I can't see how 1. this is related and 2. how Apple would bother putting in the effort to replacing its full toolchain with completely different implementations when they can't even bother updating the one they already have. Basically... This is all on Apple's hand. But if you want a modern, updated toolset which you know will be kept up to date, I know there are lots of Linux distros out there which can deliver what Apple seemingly can not.
- Crontab 9y ago"That sounds like an odd thing to wish for in software where you are the user. That's asking for less freedom. So why would you do that?" First, the BSD license offers more total freedom than the GPL does. I say this despite liking both the FSF and the GPL. Second, I would rather have up to date version of good BSD software than an old versions of good GPL software.
- josteink 9y ago> First, the BSD license offers more total freedom than the GPL does That's objectively false. GPL provides more end-user freedom. BSD provides more developer freedom. There's not a single license which objectively and universally offers more freedom. > I would rather have up to date version of good BSD software than an old versions of good GPL software. False dichtohomy. That's comparing rotten apples to ripe oranges. You either have to compare old GPL to old BSD or new GPL to new BSD. And as an end-user I would prefer both new and GPL.