bind 8.2.4: limiting used memory?

Pete Ehlke pde at ehlke.net
Thu Aug 9 01:28:56 UTC 2001


D. J. Bernstein (75628121832146-bind at sublist.cr.yp.to) said, on [010808 17:05]:
> 
> Try following the installation instructions. Upgrades from BIND are
> explained in detail in http://cr.yp.to/djbdns/frombind.html.
> 
Well. I've got a little project going on that includes evaluating
djbdns on Solaris 8 machines. I *did* follow the installation
instructions, and here's what I came up with:

It's a pretty simple install, *if* I'm content to install daemontools
and djbdns where *you* think I should install them, under /usr/local.
However, the shop I'm doing this for has, like a lot of shops out there,
localization rules that specify third-party applications get installed
under /opt. With bind, this is easy:

$ ./configure --prefix=/opt/bind
$ make
$ su
# make install

This is all clearly and quickly spelled out in the README.

With djbdns, it's a little more involved:

we find that there is no configuration file for the build process, nor
is there any documented method for telling the package to install into a
directory other than /usr/local. So we run make -n setup, and see that
it runs ./install.

./install turns out to be a compiled program that's built during the
initial make, so we dig into the source. We see that install.c defines
the functions h(), d(), c(), and z(). Since they're so clevery named, and
there are no comments whatsoever, we have to read each line to try to
discern their purpose. Then we see that main() calls the function
hier(), which is extern to install.c. We find heir() in hier.c, and find
that all *it* does is call h(), d(), and c(), which were defined back
there in install.c. Whew! That was fun!

But wait! We still haven't found how to tell install to put things under
our company's standard directory structure, so we keep digging. hier()
calls d(), h(), and c() with one argument we haven't yet identified:
auto_home. hier.c includes auto_home.h, so let's go look there.
Hmmmm. auto_home[] is a string of octal characters. Huh??? That's pretty
odd... Dan *can't* have deliberately obfuscated /usr/local here, can
he? Let's have a look at that Makefile again.

Ohhh, look. We build a program called auto-str, and it looks like *that*
gets run next, for the sole purpose of adding the contents of something
called conf-home to auto_home.

EUREKA! After we've dug through a bunch of code and wasted a bunch of
time, we have discovered that we can change the contents of conf-home.

See, now, *this* is what people mean when they say that your software is
hard to work with, Dan. One little line in your installation
instructions telling people how to install djbdns somewhere other than
where *you* think is should go, and this could have been avoided. But
that would mean acknowledging that some people might be interested in
doing things differently than The DJB Way(TM). Oh, and: may I just say,
apropos posts earlier this week: your install program *is* a kludge.

-Pete



More information about the bind-users mailing list