On 12/21/21 11:23 PM, jason-tuhs@shalott.net wrote: > As an end user, you would not care. That tends to explain why I've not personally cared. > As a vendor or distributor, you would care.  Anyone doing an OS or other > software distribution (think the BSDs, of course; but also think Apple > or Microsoft) needs to care.  Anyone selling a hardware device with > embedded software (think switches/routers; think IOT devices; think > consumer devices like DVRs; etc) needs to care.  GPL (or similar > "virally" licensed) software carries legal implications for anyone > selling or distributing products that contain such software; and this > can be a motivation to use software with less-restrictive license terms. Okay. My limited understanding is that the GPLed parts of the product must be made available. But I'm not aware that using GPLed parts means that /everything/ /else/ must also be made available. Also, I believe /made/ /available/ means that it must be accessible or provided when asked. Thus it does not mean that the GPLed code needs to be shipped with the product. > I'm aware of a few random features that are in ksh93 but not other > shells (random, trivial, example that I saw just today*: "printf > %(FORMAT)T"). That said, my first impulse would have been to say no, > there aren't any meaningful (technical) advantages to ksh over bash -- > except that it seems there's still some amount of active development > going on in ksh: The biggest motivation I had in a previous job was to make sure that my account's shell was set to a shell that lived on the root file system. I could easily have that shell test to see if my preferred shell was available and start or exec it. That way I could still log in if the file system with my preferred shell was not mounted. As if I needed to address the underlying issue that was preventing the desired shell from being accessible. E.g. /usr/bin/bash wasn't available b/c /usr wasn't automatically mounted at boot. > So I guess, for some people at least, there are indeed reasons to prefer > it, including (according to users in those github issues) performance. At my last job I helped administer some systems that didn't have any shells other than was was in the base OS installation. (We won't talk about why.) > On the licensing front, the GPL is an issue for bash; but zsh is > available as a more modern, fully-featured shell that avoids any GPL > issues.  This is why Apple switched the default shell in OSX from bash > to zsh: they wanted to avoid the GPLv3.  Previously, they had been > shipping the last GPLv2 version of bash, which was from 2006.  According > to this blog, they've been avoiding any GPLv3 code and actively working > to remove even GPLv2 code in OSX for quite a while: That makes sense. > * bash seems to recognize %(FORMAT)T, but only takes epoch seconds as an > argument.  ksh93 takes anything vaguely date-like.  zsh and pdksh don't > recognize it at all. Interesting. Thank you for the informative reply Jason. -- Grant. . . . unix || die