Skip navigation

Monthly Archives: December 2009

I finally reached melting point with the gnome which ships with Solaris 10, and so I decided to take a look at some other window managers.

A bit bored of Flux and Openbox, I finally settled on DWM.

For those of you who don’t know – DWM is an exceptionally lightweight window manager (weighing in at just over 2000 lines of C) which has no configuration outside of config.h, and should be pushed out with the next release over at blastwave (my sources tell me this will be today).

To get started:

# /opt/csw/bin/pkgutil -U
# /opt/csw/bin/pkgutil -i dwm-dtlogin

This will pull down DWM itself, the dtlogin integration files (/etc/dt/config), urxvt and the artwiz fonts. Select DWM from your sessions list in dtlogin, and press MOD4(Windows Key) + Shift + Enter to open a terminal.

I’ve added DMENU to the repo for those who want it, too.

Some obligatory screenies.

“Floating Layout”

“Tiled Layout”

The patch for the zenburn-esque colour theme is here

Have fun! 🙂

Over at blastwave, we’ve been hard at work getting a new perl package togeather, and one of the things we like to do is have 64 bit binaries in the same package as the 32 bit binaries..

We achieve this with the help of a binary called isaexec; our packages install their binaries into (e.g for perl) /opt/csw/bin/sparcv9/perl and /opt/csw/bin/sparcv8/perl, and then a hard link is created as /opt/csw/bin/perl=isaexec in our package prototype.

When /opt/csw/bin/perl (which is actually isaexec) is run, it uses getexecname() and isaexec() to run the correct binary for that host.

On solaris 8 however, we noticed a bit of a strange problem. The /opt/csw/bin/perl link was working as expected, but when we use it in a script #!, we were seeing some unusl behaviour.

To demonstrate this, we’ll set up some isaexec links for bash:

root@mimas:/opt/csw/bin > cp bash sparcv8/bash_2
root@mimas:/opt/csw/bin > cp bash sparcv9/bash_2
root@mimas:/opt/csw/bin > ln isaexec bash_2

Next, a little script which calls the isaexec’d up /opt/csw/bin/bash_2:

houston@mimas:/tmp > cat
echo test
houston@mimas:/tmp > ./
/opt/csw/bin/bash_2: cannot find/execute “” in ISA subdirectories

To cut a very long story very short – there is no trivial way around this, the problem lies deep within exec on Solaris 8.

As a result, we’re making the sparcv8 binaries for perl (and anything else) the default for Solaris 8.

The v9 bins are still there, but if you want them you’ll need to use /opt/csw/bin/sparcv9/foo in your scripts.


Not a very interesting update, but I felt compelled to write something:

I’ve been back in the real world for a few weeks now, and of course the first thing I needed to do was set up a workstation.

Initially, my first choice was opensolaris-dev (in this instance, build 127) which turned out to be a rather painful experience. Besides the random crashes, 10 minute boot times and broken audio drivers, the real problem for me is that opensolaris has one of the worst packaging systems ever made.

Many people with much better prose than mine can explain the problems with IPS, if they weren’t painstakingly obvious from the moment you first used it – so I’ll leave that rant for another day.

So, I went off to and downloaded the latest Solaris 10 release and stuck it on my machine, and so far everything is working great – and compared to OpenSolaris it’s rock solid stable.

To make it more usable, the first thing I had to take care of was the lack of a decent terminal program, the gnome-terminal that ships with Solaris 10 is terribly dated, and when I’m inside vim and the cursor is over a comment, it disappears!

So I logged into the blastwave farm and made a package for urxvt, which should be available in the repo soon!

Some obligatory screenshots:

vim with a 256 color theme (zenburn)

Color test:

Next up was to install the latest Firefox which you can download from their website.

My next task is to get a proper window manager on there, such as awesomewm – which’ll come when I find some free time! 🙂