ugh.book

(singke) #1
Configuration Files 237

I use Solaris 2.x. Turns out the version of RCS we use around here is
kinda old and doesn’t run under Solaris. It won’t run under the
Binary Compatibility package, either; instead, it quietly dumps core
in some random directory. But the latest version of RCS does work in
Solaris, so I got the latest sources and built them and got back to
work.


I then discovered that our Emacs RCS package doesn’t work with the
latest version of RCS. Why? One of the changes to RCS is an appar-
ently gratuitous and incompatible change to the format of the output
from rlog. Thank you. So I hack the elisp code and get back to work.


I then discovered that our shell scripts are losing because of this same
change. While I’m at it I fix a couple of other problems with them,
things like using “echo ... | -c” instead of “echo -n ...” under Solaris.
One of the great things about Suns (now that they no longer boot
fast) is that they are so compatible. With other Suns. Sometimes.
Hack, hack, hack, and back to work.


All seemed OK for a short time, until somebody using the older RCS
tried to check out a file I had checked in. It turns out that one of the
changes to RCS was a shift from local time to GMT. The older ver-
sion of RCS looked at the time stamp and figured that the file didn’t
even exist yet, so it wouldn’t let the other person access the file. At
this point the only thing to do is to upgrade all copies of RCS to the
latest, so that we are all dealing in GMT. Compile, test, edit, compile,
install, back to work.


I then discover that there are multiple copies of the Emacs RCS code
floating around here, and of course I had only fixed one of them.
Why? Because there are multiple copies of Emacs. Why? I don't ask
why, I just go ahead and fix things and try to get back to work.


We also have some HP machines here, so they needed to have the lat-
est version of RCS, too. Compile, test, edit, compile, install, back to
work. Almost. Building RCS is a magical experience. There’s this
big, slow, ugly script that is used to create an architecture-specific
header file. It tests all sorts of interesting things about the system and
tries to do the right thing on most every machine. And it appears to
work. But that's only “appears.” The HP machines don't really sup-
port mmap. It’s there, but it doesn’t work, and they tell you to not use
it. But the RCS configuration script doesn’t read the documentation,
it just looks to see if it's there, and it is, so RCS ends up using it.

Free download pdf