Removing AdminTool and replacing what’s left with a very small shell script

For a few years, Solaris sported a nifty user command called admintool(1M). This used to be my friend when I started doing system administration around 1997 on Solaris 2.5.1, but slowly the tack at Sun changed and admintool(1M) was replaced with solstice(1M), it was more extensible but low and behold that was soon replaced with the current Solaris Management Console (smc(1M)), however, solstice too used the backing admintool libraries.

This certainly makes sense from software engineering principles, as who wants to rewrite code you don’t have to? However, there was a small command many systems administrators know and love for its patching knowledge caught up in these libraries too. This command was showrev(1M). This little command is all that’s left of the once very large and mighty admintool libraries. Though it’s certainly time for the libraries, and all last vestiges of solstice to leave the code base, but showrev(1M) should stick around a bit longer.

Certainly the days of showrev(1M) should be numbered.All of its tasks are either obsolete, very weird, or better performed by other commands. So what’s a systems administrator, now developer left to do? Especially who’s tasked with getting rid of it’s backing libraries? Replace it with a very small shell script of course! This has been the source of a joke going around the Install Group here in Broomfield, thanks to this ThinkGeek shirt.

So what’s the line count difference?
The old showrev(1M) was implemented in two files linked against the admintool libraries. Here are the sizes compared thanks to wc -l:

Old:
1,631 showrev.c
29 showrev.h
6,694 libadmagt
5,139 libadmsec
16,507 libadmapm
1,746 libadmapp
31,746 total
New:
260 showrev.ksh
260 total

Many goofy things exist in the old version of showrev(1M). The command dates from before 1991, as it was a command which was transitioned from the SunOS 4 days to Solaris; there’s even an ARC case from 1991 talking about moving it out of /usr/kvm, and another from 1995 talking about getting rid of it! Still, it does a few, now, very likely, little used things such as parsing a command’s ELF headers for comments (just with the use of lseek(2) and lib ELF), and showing a system’s OpenWindows version. However, now in this day and age of Solaris, all these, even rather odd features, can be implemented with various commands already available on the system.

Sadly, this begs the question, how long should this long lived command continue to live?

Leave a Reply