<div dir="ltr"><div>Speaking as someone who's watched it happen before, Ken HAS been known to troll the industry once or twice, or maybe 3 times, or ...<br><br></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Mar 18, 2023 at 1:40 PM Theodore Ts'o <<a href="mailto:tytso@mit.edu">tytso@mit.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Sat, Mar 18, 2023 at 04:21:24PM +0000, segaloco via TUHS wrote:<br>
> <br>
> Do Linux providers even know the POSIX standard exists? No I don't<br>
> expect them to go pay for certification but geeze, the amount of<br>
> times in the past few years I've propped up a random distro on a<br>
> machine or VM and been unable to rely on even the most basic stuff<br>
> being there is disheartening. No wonder people don't use Linux in<br>
> the UNIX-y way so often, half the darn system isn't represented in<br>
> most Linux base installs. Is this the LSBs fault or does nobody look<br>
> at that anymore either? My experiences recently say not...<br>
<br>
The Linux Standard Base has largely been abandoned --- none of the<br>
major Linux companies were willing to pay their engineers to spend<br>
time working on it.  (It was one of those things that really only<br>
mattered to people who were selling software to enterprises, and the<br>
*reason* why companies spent $$$ paying engineers to work on LSB and<br>
going to ISO meetings was so that enterprise softare vendors could<br>
more easily ship product that would work equally well on Red Hat<br>
Enterprise Linux and SuSE Enterprise Linux.)<br>
<br>
But even when LSB was around (Debian is dropping LSB support in the<br>
next release), it was generally not installed by default and was *not*<br>
part of the base install.  If you installed the LSB package, it would<br>
drag in all of the userspace utilities and libraries needed to provide<br>
POSIX.1 and POSIX.2 conformance.<br>
<br>
One of the reasons why users prefer a very small base install is<br>
because if they are trying to install on small systems (such as<br>
Rasberry PI), or if they are using container systems (e.g., Docker),<br>
they want to keep the base system as small as possible.  And there are<br>
utilities like uuencode and uudecode, which while required by POSIX.2,<br>
in reality, the most users for most Linux distributions don't use, so<br>
it's not installed by default.  If you want it, you can always install<br>
the sharutils package.<br>
<br>
Finally, I'll note that what Posix.2 requires has changed over time.<br>
For example uucp used to be required for POSIX.2 compliance.  It no<br>
longer is required.  In addition, POSIX.2 has withdrawn tools like<br>
banner and chroot, and they will be withdrawing calendar, col, cpio,<br>
pg, spell, sum, and other utilities in the next revisions of the<br>
standard.<br>
<br>
Complaining about what is the default seems to me to rather pointless.<br>
And if you are going to insist on complaining aobut it, what about<br>
Solaris?  The default Solaris install didn't come with cc or fort77<br>
installed, even though they are required by POSIX.2.  You had to pay<br>
$$$ to get an optional package if you wanted those tools, and Solaris<br>
was still considered "Unix" since it was descended from AT&T code, and<br>
they didn't need to present their system for POSIX compliance before<br>
being able to use the "Unix" trademark.  (And if they did, they would<br>
presumably just state in their conformance document that you had to<br>
pay $$$ for a copy of Sun Studio.)<br>
<br>
And I can assure you that Sun Microsystems knew about POSIX.  They<br>
just chose to not include everything required by POSIX.2 in their<br>
default install.<br>
<br>
                                        - Ted<br>
<br>
</blockquote></div><br clear="all"><br><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div>James D. (jj) Johnston</div><div><br></div><div>Chief Scientist, Immersion Networks<br></div></div></div>