Day 20 of 60: Running Sendmail in the zones (pt 2)

I've now got Sendmail built and installed, and adjusted the SMF so that it uses my local version of Sendmail (with DTrace probes) in favour of the system version.

Day 19 of 60: Running Sendmail in the zones (pt 1)

Now that Sendmail is building and correctly installing in to a custom directory it's time to start looking at how I get my version of Sendmail used instead of the version that's supplied with Solaris.

For that, I need to delve in to the Solaris Service Management Facility (SMF).

Day 19 of 60: M4 issues resolved, ministat updates

The issues with M4 have been resolved. A colleague, Andre Lucas, took up the challenge and worked out a fix which he describes in detail. And ministat's now looking much better. It's grown some useful new options, a lot of documentation, and can now (optionally) generate plots in colour. Look below the fold for two example plots.

Day 17 of 60: ministat

I've spent some of today porting some useful statistics reporting software from C to Perl.

ministat reads in two or more files of data and uses the Student's t test to determine if there is any statistical difference between the means of the datasets. This is especially useful when comparing benchmark results.

For instance, I figure that this will be useful to compare data from several Sendmail runs, where the number of queue directories differ between the runs. It should highlight any benefits between different numbers of queue directories.

Rather than explain more here, I'll point you at the code. There's documentation towards the end of the file. Note that this still needs some work -- there's no proper command line option handling at the moment, some of the documentation needs fleshing out, and I wouldn't use this as an example of good Perl code, as it still looks far too much like a Perl program that's been written in C.

When I've fixed that I'll put it up on CPAN.

Day 16 of 60: I strongly dislike M4

Which is a problem because the Sendmail build system is written in it.

Here's the problem I'm trying to solve.

Day 16 of 60: Reinstall

I've just had to carry out a complete reinstall of the OS, which was uncommonly tedious.

Day 15 of 60: Installing Sendmail

I've spent some time today getting Sendmail+DTrace to install properly.

This wasn't quite as straightforward as it could be, requiring a little build infrastructure hacking.

Day 14 of 60: Minor updates

I've been a bit busy with other work over the past few days, and haven't made quite as much progress as I'd like.

There are a few things that have moved forward though.

Day 10 of 60: First probes added to Sendmail

Following Monday's info dump about queues, I've spent some time over the last few days reading the DTrace documentation in detail. In particular, the Solaris Dynamic Tracing Guide. This is the DTrace handbook, with a great deal of information about how to use DTrace.

It also contains the information about how to add custom DTrace probes to user applications. I was a bit surprised when I first read that, as it's only a couple of pages long.

It turns out that adding DTrace probes really is that simple...

Day 8 of 60: Sendmail queues

The time has come to start adding DTrace functionality to Sendmail. Of course, there's no point in just diving in and adding code left, right, and centre, so over the last couple of days I've been thinking about what I should be instrumenting first.

Day 5 of 60: DTrace mode for Emacs?

I'm just starting to get my feet wet with DTrace. Does anyone know of a decent Emacs mode for editing .d files?

Day 5 of 60: Building test zones

I've spent a bit of time today preparing some zones that I'll be using for testing my changes to Sendmail.

Day 4 of 60: Sendmail first build

It's not much of a milestone, but spent five minutes getting Sendmail to build on Solaris 10 with the Sun Studio 11 compiler.

Day 4 of 60: The learning zone

One of the new features that Solaris 10 has that I'm interested in is zones. A zone is lightweight virtualisation environment. Unlike VMWare, or Xen, the whole environment is not virtualised. You still have one running OS kernel which arbitrates access to the hardware, for example. A zone is more like a separate instance of the userland, with its own IP address, users, running processes, and so on.

In this respect Solaris Zones are very similar to FreeBSD Jails, and if I was going to sum it up I might call it "chroot on steroids, with a much better management interface."

I'm quite familiar with FreeBSD's Jail system, much less so with Zones. I've offered up a Zone to some of the pkgsrc developers so they can experiment with pkgsrc on Solaris 10, and I'm planning on using Zones for testing the changes that I'll be making to Sendmail, so I need to learn how to create and manage them.

Day 2 of 60: Synergy

This is a plug for one of the handiest network programs I've used in a long time. Synergy.

Day 2 of 60: Blastwave

I wrote earlier about getting pkgsrc builds up and working.

Unfortunately, I wrote too soon.

Day 2 of 60: Importing and branching Sendmail

Now that I've started to get a development environment that I feel comfortable with I've imported the latest release of Sendmail in to my Subversion repository. This is publicly accessible, so you can follow along at home if you've got a Subversion client installed.

Day 2 of 60: SSH agent authentication

I've just configured the desktop to prompt me for my SSH credentials once, instead of on every connection, using ssh-agent and an X11 SSH password requestor.

This is bread-and-butter stuff that should be easy, made a little more complex by documentation not being accessible on the Sun site. Since I couldn't find the correct incantation through Google I'm documenting it here

Day 1 of 60: Fun and games with pkgsrc

In the years that I've been using Solaris it's support for third party packages has, to my mind, always let it down. The open source community writes and releases software at a phenomenal rate, and systems like FreeBSD and Linux have developed a number of interesting ways to make it as easy as possible to get this software, install it, and (much more importantly) manage it once it's been installed.

Day 1 of 60: Tourist

I've spent a bit of time poking around the workstation and Solaris 10. I feel like a tourist in a Western European city. Everything's pretty familiar -- the roadsigns all look the same (although the font might be a bit different, and the speeds are marked in kph not mph) but there are things everywhere that remind you that you're not quite home.

Day 1 of 60: First boot

After a few phone calls along the way to find out where it had got to, the workstation arrived today a little after midday. I was greeted with two large boxes, one containing the machine itself, the other containing a far smaller box with the keyboard and mouse. As a friend has already remarked, there's a certain something about new computer smell.

ENOSERVER

No, I haven't given up already. Although the box was supposed to arrive on the 5th there's been no sign of it so far. I did try using the tracking number that Sun sent me at mysun.sun.com.

Sadly that just gives me:
Thank you for your interest in Order Status. It will take three business days to activate your Order Status entitlements.

I've been on the phone to them, and they do assure me that it will arrive later today.

In the meantime, here's something else I've been working on -- scrollable commit timelines for SVN::Web.

raison d’être

It started when I read a number of posts at Jonathan Schwartz's blog (in order: here, here, here, here, and here).

Jonathan is Sun's CEO (although he wasn't at the time he started this series). The essence of it is that Sun are so stoked about their new hardware that:
So... here's an invitation to developers and customers that don't want to move to Solaris, want to stay on GNU/Linux, but still want to take advantage of Niagara's (or our Galaxy system's) energy efficiency - click here, we'll send you a Niagara or Galaxy system, free. Write a thorough*, public review (good or bad - we just care about the fidelity/integrity of what's written - to repeat, it can be a good review, or a poor review), we'll let you keep the system. Free.

That sounds like a good deal to me. So I started thinking about how I might take advantage of this offer.