SXDE 5/07: eating your own dog food or sipping your own champagne?

I'm a fundamental believer in scratching your own itch to be the best kind of motivation for software development. And Project D-Light is not an exception here: if I want it to be useful for others I have to make it useful to myself. Of course, given that Project D-Light tries to utilize the most cutting edge features of the DTrace technology it just makes sense to run it on the most recent build of Solaris. And the fact that we are building a tool first and foremost for the developers pretty much narrows the choice to the Solaris Express Developer Edition (SXDE 5/07).

Of course these days I do most of my development on my laptop (good old ThinkPad T43) but the Solaris OS that I have there is kind of clunky. It is a heavily tweaked Solaris 10, which serves more as a proof that it is possible to run Solaris 10 on a ThinkPad after all, rather than a convenient development environment. In short I had all the reasons to upgrade when I settled on a quest for the ultimate development environment based on Solaris OS. The rest is my account of this quest. You've been warned ;-)

As with any OS these days the first step is quite obvious -- you go to the Solaris Express Developer Edition webpage and dowload the ISO image. You burn it and boot it and then the fun begins. The first screen that you see after the booting procedure is complete happens to be the GRUB boot menu with the multiple choices -- the first one being the one that I need: "Solaris Express, Developer Edition". So far so good. After a while you get presented with the next text-based screen asking whether you want to go right into installation or to drop into a single user shell. I must admit that the purist in me definitely wants these two menus to be combined in one, but this is minor nitpick and besides the next instalmemnt of SXDE is supposed to have a brand new installer anyway. Wait a second! What's that? The previous menu had timed out but instead of going into an interactive install I got: "This installer requires a minimum of 768MB of RAM. This system only has 511MB.". Now, I must admit, as much as this message is useful for me to go to my boss and request an upgrade, I could very well feel the frustration of the users out there. After all half a megabyte is nothing to sneeze at even in 2007. Negative brownie points for SXDE installer and a note to self: steal memory from every single workstation that the installer team uses so that they too can feel my pain. But back to the console: I hit Ctrl-D and the next message I see says: "You need a minimum of 768MB, either upgrade your memory or install by choosing the 'Solaris Express'". Now how do I go back to choose 'Solaris Express'? The only option seems to be a full reboot (well, there's definitely more work to be done on installer, hopefully the Caiman guys will address it). Back to square one: GRUB menu. This time I select 'Solaris Express' and I guess that means I'm on my own. All the niceties which went into SXDE's installer are no longer applicable. I get the old text-based clunker of an installer -- but hey! I grew up on Slackware so the fact that I have to press F2 to move to the next screen doesn't really bother me that much ;-) What does bother me however is how random the configuration questions feel. But then again, I'm on my own. I had it coming with my 512MB.

Finally I got to the point of no return -- fdisk. It is a good thing that I had my previous installation of Solaris because there seems to be no way of resizing a partition or doing serious modifications to the partition table. I keep hearing that adding something like GParted to the Solaris installation experience is unacceptable because there's a remote chance of users destroying their data. I don't buy that. And I hope that I can convince the rest of the SXDE team to provide this helpful service. At least as a separate boot menu item in the GRUB menu. But I digressed. My installation finished in about an hour, and I got rebooted into the SuSE's lilo boot menu. Which is a good thing. It means that Solaris just minded its own business and didn't touch anything in the MBR. So far so good. Now lets see if I can login as root into a Gnome desktop and setup a proper user account for myself. Should be easy, right? Wrong! For some reason I keep staring at a blank X screen and nothing happens. Finally it dawns on me "The network is the computer" so perhaps Solaris is waiting for something over the network and given that my laptop is not currently plugged into an ethernet that might take a while. I give up and reach for the ethernet cable. What a miracle! I can log in.

These days all operating systems look like either Gnome or KDE -- no surprise there, what was surprising for me was the fact that the default Gnome theme in Solaris is actually pretty cool looking. Kudos to the graphic design team working on the desktop look and feel. Of course, what I'm really looking for right now is functionality and in my particular case functionality that would let me get rid of that pesky ethernet cable I have to keep handy to make Solaris boot process go to completion in reasonable time. So without further ado I go directly into Administration->Network and get a nice looking Network Settings window. And here's the first very pleasant surprise -- there's a WiFi icon waiting for me there (Intel's ipw2200). Nice! Not only can I ditch that ethernet cable just once but it seems I'll be able to ditch it for good. I click enable and...nothing happens. Moreover my ethernet connection dies a sudden death. Not good. I futz around for about 10 more minutes and nothing continues to happen. Worse yet, I completely screw up my wired ethernet connection so that I have to go to my other desktop to do some Googling. The thing I Google, of course, is Network Automagic my last hope for making Net work. Now, in the ideal world I wouldn't have to Google for it and it would have been enabled by default, but we have to be fair: the project is still very young and should be excused for making its users suffer from remembering the cryptic set of commands enabling it:
  # svcadm disable svc:/network/physical:default
  # svcadm enable svc:/network/physical:nwam
  # svcs nwam
  STATE          STIME    FMRI
  online         19:57:16 svc:/network/physical:nwam
Wow! The minute I hit enter on the last command a window pops up informing me that my ethernet cable is unplugged. A second later another window pops up presenting a list of WiFi networks around. One click later I'm browsing Now that's what I call useful service and customer satisfaction! Now lets see if the changes I've made would last. Reboot (speaking of which there's now a proper Shutdown button in the Gnome menu -- something that, believe it or not, took quite a lot of convincing of some of the most notorious Solaris gerontocrats)...

Niiiceee! I'm writing this very sentence from the Firefox running on Solaris and I didn't have to do a thing for it to pick up my WiFi. But wait! There's more! I now plug-in that pesky ethernet cable and all of a sudden I don't have to see ads of my free WiFi service any longer. The ethernet connection got recognized, enabled and at the same time WiFi got disabled all without me doing anything! May be we should just replace that broken Administration->Network application with a 3 lines of sh(1) script enabling NWAM. There's a thought...

Ok. What else do I have to configure on this systems to make it the ultimate developer's box. First of all, remember how I wasn't lucky enough to go through the SXDE setup and I had to go through the usual Solaris Express one? Well, there's an extra bit I payed on top of everything else: Sun Studio compilers and tools didn't get installed. But not to worry! Since my goal is to work on Project D-Light I might as well install Sun Studio Express from the web:
  # cd /opt
  # /usr/sfw/bin/gtar xjvf ~/Desktop/StudioExpress-sol-x86-2007-05-29.ii.tar.bz2
And I seriously have to stop running as root. So lets create an actual user and give him proper rights to be able to run DTrace (a key component of a setup needed for Project D-Light):
  # useradd -m -K defaultpriv=basic,dtrace_user,dtrace_kernel,dtrace_proc \\
    -g staff -c 'Roman V. Shaposhnik' -d /export/roman -s /bin/bash roman
  # passwd roman
  # su - roman
  $ echo 'PATH=/opt/SUNWspro/bin:/usr/ccs/bin:/usr/sfw/bin:/usr/sbin:$PATH' >> .profile
Looks like I'm all set (and yes -- those pesky /usr/sfw/bin and /usr/ccs/bin are still as important as ever :-(). Now I just need to re-login into Gnome as a proper user (but first I need to save this blog entry as a draft...)

Seems like I'm all set. Now lets see if my setup is good enough to start working on one of the OpenSource projects I contribute to: FFmpeg
  $ mkdir src
  $ cd src
  $ svn checkout svn:// ffmpeg
  $ cd ffmpeg
  $ ./configure
  Broken shell detected.  Trying alternatives.
  Trying shell bash
  grep: illegal option -- q
  Usage: grep -hblcnsviw pattern file . . .
  grep: illegal option -- q
  Usage: grep -hblcnsviw pattern file . . .
  GNU make not found.
  If you think configure made a mistake, make sure you are using the latest
  version from SVN.  If the latest version fails, report the problem to the mailing list or IRC #ffmpeg on
  Include the log file "config.err" produced by configure as this will help
  solving the problem.
Ok. This didn't go far enough and the reason is most of the stuff in /usr/sfw/bin has a 'g' prefix in front of it. Which means that I have to fix FFmpeg's configure script to use ggrep instead of grep. Oh well...
  $ mv configure /tmp/
  $ sed -e 's/grep/ggrep/' < /tmp/configure > configure
  $ chmod 755 configure
  $ export MAKE=gmake 
  $ ./configure
  $ gmake
Not bad! I have a working FFmpeg now and the only thing left is to start using it as a guinea pig for the Project D-Light. But that'll be a subject of my next blog entry. For now, here's how SXDE scored:
  • Installer: Ugly
  • Networks configuration: Bad
  • Developer tools: Good!
  • Network Automagic: Priceless!!!
So is it like eating your own dog food or sipping your own champagne? Well, I guess you would have to give it try to decide for yourself. Personally, I'm reaching for my beer mug.

Post a Comment:
  • HTML Syntax: NOT allowed



Top Tags
« July 2016