Yet another rant about Ubuntu's not UNIX (UNU ?) philosophy - things to make me distro hop

Here’s something that really cheeses me off…

For 25+ years, I’ve logged into a UNIX like system - and thought vague obscure things like : “hmmm, what day of the week is the 15th of next month” and - if this month is January, “cal 02 2021” will show me an array of the 2nd month of the current year (2021) :

╭─x@titan ~  
╰─➤  uname -a
Linux titan 5.11.0-27-generic #29~20.04.1-Ubuntu SMP Wed Aug 11 15:58:17 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
╭─x@titan ~  
╰─➤  cal 02 2021                                                                                                                                64 ↵
   February 2021      
Su Mo Tu We Th Fr Sa  
    1  2  3  4  5  6  
 7  8  9 10 11 12 13  
14 15 16 17 18 19 20  
21 22 23 24 25 26 27  
28

Armed with the above information, I can easily learn that the 15th of next month (February) is a MONDAY!

So - someone on facebook shares a meme about the symmetry of the 22nd of February 2022 (but uses lame US date format 2/22/22 - which is NOT symmetrical and irks my OCD) - the joke being “dad joke” worthy as it’s a “tuesday / toosday / twosday” - anyway - I thought I’d double check - so I typed “cal 02 2022” on my x64_64 21.04 machine :

╭─x@fenrir ~  
╰─➤  uname -a
Linux fenrir 5.11.0-31-generic #33-Ubuntu SMP Wed Aug 11 13:19:04 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
╭─x@fenrir ~  
╰─➤  cal 02 2022
zsh: command not found: cal

WTF?

So I go to my RPi4B, also running 21.04 :

╭─x@bebhionn ~/MPZ/XylourisWhite  
╰─➤  uname -a
Linux bebhionn 5.11.0-1016-raspi #17-Ubuntu SMP PREEMPT Thu Jul 29 15:33:06 UTC 2021 aarch64 aarch64 aarch64 GNU/Linux
╭─x@bebhionn ~/MPZ/XylourisWhite  
╰─➤  cal 02 2022                                                                                                                             127 ↵
zsh: command not found: cal

Seriously WTF? and - wait a minute - that x86_64 machine started life as a 20.04… I know “cal” gets installed in a default install of 18.04 at the least… but what about 20.04… gonna have to do some testing…

But - all this begs the question : WHICH DICKHEAD DECIDED TO EXPLICITLY REMOVE IT? Was it so VAST in size they ran out of room to include it? “Oh holy hell, the ncal binary is a MASSIVE 37 k and we only have 2 k left to squeeze stuff in!”…
(yeah in most cases, “cal” is just a symlink to “ncal”)

╭─x@titan ~/Documents/receipts  
╰─➤  ls -alh /usr/bin/cal
lrwxrwxrwx 1 root root 4 Mar 30  2020 /usr/bin/cal -> ncal
╭─x@titan ~/Documents/receipts  
╰─➤  ls -alh /usr/bin/ncal
-rwxr-xr-x 1 root root 37K Mar 30  2020 /usr/bin/ncal

Let’s save some room by not including cal/ncal ?

I can understand such thinking if we were still in the 1980s, e.g. like when Commodore 64 was named because it had a MASSIVE 64K of RAM… yeah - back then - a binary that ATE a WHOPPING 37K would be bad juju for sure! But now? In 1984 when I was programming BASIC into my TRS-80, which had 8K of RAM, I would have been f–ked if my app (after compile) had been 37K… I’d have had to write in swap in, and out, routines, and needed nearline storage (I had to save my BASIC apps to audio cassette tape - NO FLOPPIES! i.e. they had to fit in RAM or not at all).

TL;DR :
Apparently you can restore “cal / ncal” functionality with :

sudo apt install bsdmainutils ncal

But as I asked before - which DICKHEAD decided to remove it? I reckon it was probably more effort to remove the package, from the repo and distro, than it was for someone to think “Oh wait, I never use that ncal package, I’ll remove it because it’s using up a MASSIVE 37K of storage on my Linux root disk on a Floppy system of 1440K storage!”

Sheeze - I still remember running Slackware with a boot and root disk, on 1.44 MB floppies, and probably wouldn’t have batted an eyelid at 37 kilobytes!

5 Likes

There might be a solution to get cal back into the standard installation:

Set up a bot farm and see that it gets downloaded and installed on a few hundred or thousand machines.

A tool so popular might then come back.

1 Like

On first thought, this sounds like a good joke and a nice parody…:laughing:

However…

On second thought…

This ain’t actually far from the truth. Some Linux distributions (I think even Debian) offer to collect statistics about package usage, etc. So, the package might’ve be indeed removed because it was “not popular enough”. It’s definitely possible. :thinking:

If “nobody” uses it, they might’ve pulled off a “It’s a matter of principle.”, when it comes to what the majority of people need.
Still, it wonders me why it was removed altogether from the repository. Security issues perhaps? It’s not maintained since 20 years? (Though, some xmodmap tools aren’t maintained for 25 years and yet they still are available…) Perhaps, someone can find out.

My friend who loves using Kubuntu is one such “It’s a matter of principle.” guy, especially in terms of having stuff, that one doesn’t need (He partially evolved into a hardcore minimalist, depending on the situation.). He would probably understand the decision to remove something unused, even if it has such a minuscule capacity drain.

Another reason might be, that they think, that they already have like a billion packages and removing any package that “nobody” uses anyway helps the economical factor of servers, their bandwidth, etc.
If a billion servers run apt update every single day, then removing metadata for one package might save a couple of cents in bandwidth. Now, a couple of cents every day make a couple of bucks, every year. That is an additional example.

At least Debian offers a wide variety of third party repository hosts, so Debian doesn’t have to serve all the repositories for everyone on earth. Don’t know how it works in the case of Ubuntu repositories.

Long story short, I can find a way to understand both parties. If there is 10 people all around the world that use this package for the past 10 years and it’s not maintained since then, perhaps I would consider removing it, too, even if it’s taking up MASSIVE 37KB… :wink:

P.S.:

If Alpine for Docker wouldn’t exist, one could even argue with Ubuntu in Docker and have much better arguments. However, if every KB counts for your Docker image, you will use Alpine, anyway, because it’s simply the boss in terms of minimalism and size efficiency.

3 Likes

I’ve worked with “minimilists” (I call them morons of poor vision) who’ve arbitrarily decided, on Solaris to REMOVE ALL THE MAN PAGES!

Wow - they save maybe 100K ??? Good move MORON!

Maybe some people don’t care about man pages, and I don’t look at them regularly, but, boy, if and when you need them - and they’re not there, YOU ARE F–KED!

And - Solaris man pages are/were among the best - just about every one of them, has useful examples at the bottom, so if your pager is “less” (instead of “more”) - you man a subject, e.g. “ifconfig” - then press “shift G” to go to the bottom, then use “vi” navigation to scroll up a bit, and there’s a useful example or two! How good is that? I still kinda miss Solaris man pages - because of that very feature : practical / usefull examples on how to “implement” the command… But aside from that - I kinda cringe these days if I get a ticket to work on Solaris issue, because Oracle pretty much killed Solaris 10+ years ago, and it’s kinda 15 years behind everything in Linux these days…

1 Like

Exactly! It was a joke, but also a serious thought behind it.

This is fucking absurd.

From my .bashrc:

alias more=less

1 Like

It is extremely frustrating and I concur 100%.
I’m continually having to install commands like traceroute , ifconfig…
It wont’ be long before Ubuntu isn’t UNIX anymore.

1 Like

Perhaps, the time will come, when Ubuntu will start using a pre-historic Bash, because of licensing issues, as macOS does(?) or did.

1 Like

Well I love the way you use the expression “dickhead”…rules me out straight away as being the culprit
:slightly_smiling_face::upside_down_face::slightly_smiling_face:

1 Like

I’m pretty sure MacOS uses a fairly recent version of Bash…

I wouldn’t know - first thing I did when I got my Macbook Pro was change my shell to ZSH and install oh-my-zsh… and install iTerm2 to replace Apple’s default terminal application (then of course a bunch of NIX stuff using brew).

What was that bash exploit in 2014/15? Something about a cow or something? Just googled it - it was “shellshock”.

I remember I had to patch a bunch of Macs where I worked, as well as about 150-200 Linux VM’s on Oracle VM for X86 (not the same product as VirtualBox) and hosted as EC2 instances in AWS… Sheeze I can’t even remember how I patched the Macs…

That’s the gist of what I know, roughly.

Bash 3.2 is very old. It could even be considered stone old, when you count in the context that it’s probably the most popular shell on earth and is used by millions of users every single day.

9 days ago, someone had another problem with macOS having an ancient Bash version installed by default:


I personally use Bash 5.0 or higher on my machines.
Usually, when a product is that old, there are barely new features, as most stuff was already implemented years ago.
However, wouldn’t you know, Bash actually delivers new useful features, even after such a long time. There were a couple of occasions where I used features, that weren’t available on 4.4, so I had to upgrade to 5.0.

Full circle - again!

Yesterday - I tried a live USB of the latest KDE Neon distro… didn’t grab me…

My Ubuntu 20.04 install needed wiping anyway (previously discussed lagging, I attribute to ZFS and/or ZFS encrypted root) - so I tried out Garuda live USB for an hour or so, and was impressed.

So I tried out the Inkscape/InkStitch thing - got it going - then trashed Ubuntu 20.04.

Wiped that ZFS encrypted Ubuntu 20.04 install, installed Garuda KDE “Dragonised” Gaming Edition - and per my earlier posts, in other threads - I was unhappy with it - it seemed bloated, I was like a fish out of water without apt or yum/dnf - and some stuff I wanted wasn’t readily available -

Resilio Sync (got it partially installed, but the whole “systemctl --user start|stop|restart|enable|status resiliosync.service” thing wasn’t working - Garuda’s completely systemd, but not for me, with Resilio Sync)
Symless Synergy (no binaries from vendor, my server is running 1.14, Garuda can only provide 1.10 client)
Sayonara player (didn’t bother looking)

Not having Resilio Sync is a show stopper for me - so - now I’m back at Ubuntu 20.04, with encrypted LVM for my "/’… Was pulling my hair out last night, got Brave installed, but it was NOT sync’ing my settings from other Brave installs - I got so fed up, I actually purged Brave a few times, but still no sync on re-install! Fired it up again this a.m. , nothing sync’d, decided I was going to have to use Google Chrome (or Edge) but left Brave running, look at Brave again 20-30 minutes later, and there’s all my f–king bookmarks! How non-intuitive is that? This wasn’t happening last night! It’s so flaky, I am tempted to go back to Chrome, but, I reckon if I did, 10 minutes of youtube ads would be enough to push me back to Brave…

Note : per what petty first world grievance triggered this whole thread : Ubuntu 20.04 comes with “cal” :

╭─x@fenriz ~/sbin/tor-browser_en-US/Browser  
╰─➤  cal
     March 2022       
Su Mo Tu We Th Fr Sa  
       1  2  3  4  5  
 6  7  8  9 10 11 12  
13 14 15 16 17 18 19  
20 21 22 23 24 25 26  
27 28 29 30 31

So I wonder which “genius” decided to remove cal/ncal from 21.04 ???