On 02/05/2018 09:41 PM, Robert Thompson wrote: > Yeah, I ran into some similar issues years ago... In my case, I got > burned into learning not to assume that bash (or any other shell) is > correct, or even necessarily *self* consistent(even on linux), so I > tend to reflexively do differential checks. It's a very small amount > of effort in the normal case, but months of project time and a major > missed deadline tend to leave a bit of a scar :) > > there was a "posix, we swear" vendor /bin/sh, a classic /bin/bash, a > "new and sexy" /bin/bash, and the same version/same configuration > /bin/bash running on a different hardware/os... > > We wasted months assuming that the newer bash was most likely correct > (it was a heisenbug, both rare and inconsistent). In that case, turned > out that the posix sh was technically correct and consistent, and > *all* of the bashes exhibited *different* incompatible heisenbugs. And > they tended to show up only about a day into a massive > un-checkpointable processing run...
The FSF is bad at writing software, yes. :) Part of my formative experience with Linux is that the FSF's software development efforts basically died for five years (1999-2004), so distros were using fixed stable versions of the userspace stuff. It was all basically "done". There were some ubiquitous local vendor patches (adding -j to tar and such in the 5 year gap between 1.13 and 1.14 being released, for example), and things that DID need to change like compiler development forked off as other projects (egcs, libc5), but there was a de-facto set of tools everybody agreed on, and that mostly included specific _versions_, and nobody had to care what the FSF thought about anything. Then the FSF noticed its ftp server had been broken into and was distributing malware, and they took all the source tarballs down and replaced them with a note asking if anybody had backup copies (of course the FSF itself didn't: it's the FSF). I noticed this had happened because I was doing Linux From Scratch, and three weeks later nobody'd cared enough to do anything about it so I poked slashdot (https://developers.slashdot.org/story/03/08/13/1530239/fsf-ftp-site-cracked-looking-for-md5-sums) and that whole debacle seems to have gotten people to notice the FSF was dead, but instead of _replacing_ them they volunteered at them and tried to work through their horrible crazy lens, and when that round of excitement subsided and the FSF went back to dying they tried suing people to reclaim attention (https://www.linux.com/news/gpl-requirement-could-have-chilling-effect-derivative-distros) and that "all we've got to squeeze money out of people is control of the license" nonsense snowballed into GPLv3. Not a net win, really. Anyway, even back at busybox I was mostly targeting equivalents of those 5-year "stable" versions from 1999, and only cherry-picking newer features when people asked for them or the kernel grew some new thing I wanted to take advantage of. These days my baseline is posix-2008 plus any Y2k-era Linux extensions that posix rejected because That's Not Solaris I Want Solaris La La La Solaris. So when I say "a proper bash replacement" I'm _mostly_ targeting bash 2.x with proper utf8 and the occasional new feature like ~= (regex matches) that are easy to do. Stuff like <(command) and file{1,2}.txt are over 20 years old. I really don't care what the FSF's done since about 2005. As far as I'm concerned the Mepis thing I linked above was a career limiting move _before_ they split "the GPL" into incompatible versions so the Linux kernel and Samba can't share code even though they implement 2 ends of the same protocol and are both "GPL". (None of this excuses dash, though. :) Rob P.S. Yes, I did my own GPLv2 enforcement lawsuits circa 2006. That's another story... _______________________________________________ Toybox mailing list [email protected] http://lists.landley.net/listinfo.cgi/toybox-landley.net
