





From the wonderful collection of Lawrence Harley “Larry” Luckham.
The general Solaris guide for adding a new service can be found here :-
http://www.sun.com/software/solaris/howtoguides/smfmanifesthowto.jsp#4
Copy your working .fetchmailrc from your home directory to /
Be warned though that running fetchmail as root is apparently not such a good idea.
ben@sunblade /export/home/ben $ cp .fetchmailrc /
ben@sunblade /export/home/ben $ cd /
ben@sunblade / $ sudo chmod 600 .fetchmailrc
A good sample manifest XML can be borrowed from :-
http://www.blastwave.org/smf/manifests.php
Pasting XML into WordPress is not straight forward at all. Much easier if you simply download the file from here :-
http://www.blastwave.org/smf/xml/fetchmail.xml
I changed this line to the correct path to the fetchmail binary for my machine :-
exec_method type=”method” name=”start” exec=”/opt/csw/bin/fetchmail -s -d 600 -K” timeout_seconds=”30″
NOTE: After some experimentation I found that this will not work. I suspect that as we are making this service a network service any other disks are not yet mounted, in this case /opt is mounted from another disk. speculation Which means that the fetchmail binary must be on the boot disk./speculation I moved it from /opt/csw/bin/fetchmail to /usr/local/bin/fetchmail and it works fine.
Save this file (with root permissions) to /var/svc/manifest/network
Then run the procedure to add and start the service :-
ben@sunblade /var/svc/manifest/network $ sudo svccfg validate fetchmail.xml
ben@sunblade /var/svc/manifest/network $ sudo svccfg import fetchmail.xml
ben@sunblade /var/svc/manifest/network $ sudo svcadm enable fetchmail:default
ben@sunblade /var/svc/manifest/network $ sudo svcadm disable fetchmail:default
Logging is written to :-
/var/svc/log
To remove the service :-
ben@sunblade /var/svc/manifest/network $ sudo svccfg delete fetchmail
Update 27/02/2009 : This is isn’t working correctly so I’m giving up. Added the following to cron :-
0,15,30,45 * * * * /opt/csw/bin/fetchmail > /dev/null 2> /dev/null
fetchmail is really noisy even in slient mode so stdout and stderr are redirected to /dev/null to avoid receiving lots of email from crond.
Before :-
ben@sunblade /export/home/ben/Documents $ fetchmail
fetchmail: Server CommonName mismatch: h03.com != mail.ipcress.net
fetchmail: Server certificate verification error: self signed certificate
fetchmail: Server certificate verification error: certificate has expired
fetchmail: No mail for spy1u838p1 at mail.ipcress.net
What SHOULD work but doesn’t :-
ben@sunblade /export/home/ben/Documents $ fetchmail -s
fetchmail: Server CommonName mismatch: h03.com != mail.ipcress.net
fetchmail: Server certificate verification error: self signed certificate
fetchmail: Server certificate verification error: certificate has expired
ben@sunblade /export/home/ben/Documents $
After :-
ben@sunblade /export/home/ben/Documents $ fetchmail > /dev/null 2> /dev/null
ben@sunblade /export/home/ben/Documents $
One question I get asked a lot is “hey you’ve got all that Sun gear at home, what the hell do you do with it?”
After working on a telco IP PBX solution for a couple of years I’ve just discovered Asterisk.

It’s a Free software implementation of an IP Private Branch Exchange (or IP Centrex) application server. It provides IP telephony call control (soft switching) and all the usual PSTN style features for SIP (and other protocol) clients on hard and soft phones. All of which used to be done by extremely expensive proprietary equipment.
These are the features I have played with so far :-
I have got it running at home on my Ultra 5 and it works very well. It’s actually rather too much for home use but it makes a very good platform to learn about the setup and maintenance of an IP PBX. The software is supplied with a demo configuration and this demonstrates back to back (PBX to PBX) test calls to an Asterisk development server in the US via the internet.
For the moment I have no connection from my home server to the local PSTN network so all calls are SIP only. The software development of Asterisk is primarily supported by a company which makes TDM interface PCI cards for PCs called Digium:-
http://www.digium.com/en/index.php
The application documentation is still rather sparse but an O’Reilly book is available online for free, this is what I have been reading to setup a simple dial plan at home :-
The last couple of days have been something of an epiphany for me, I’m used to trying to sell this kind of stuff for millions and yet here it is for free (as in speech and beer).
Now when someone asks what I’ve been doing with “all that Sun stuff” I say “running my own private branch exchange!”.
For more information and Solaris .pkg binaries see this site :-
I thought I’d better start encrypting my wireless LAN at home. I had been using just a MAC address access list but with a another couple of wireless LANs appearing in the neighbourhood some extra security could be good.
I had some difficulty to get the Wii working with WEP so tried WPA which worked. Of course then the LAN in the attic which is connected by an Airport Express acting as a WDS remote stopped working.

I’d forgotten the rather obscure and seemingly undocumented procedure to set this up but found it again here :-
http://forums.macosxhints.com/archive/index.php/t-27269.html
Reset your airport to start from scratch. Use a pen to press the reset button and hold the button without letting go while unplugging the device, wait 10 second, replug, (keep holding!), wait until you see the green light flash four times. Let go of reset button. Wait 45 seonds.
Run the Airport Express Assistant.
Select: Set Up a New Airport Express
Select: Connect to my Current Wirelss Network, and place a Checkmark in the box for Extend the Range of my Airport Wirless Network
Tell the assitant to join your existing network, name your Airport Express and Quit.
Open the Airport Admin program
Select the new Airport Express basestation that you just configured (above)
Click on Configure
Click on WDS tab
Put a check in the WDS box and select “remote” from the drop down menu.
Gareth mentioned that the DS only does WEP, oh dear.
This image was used in a lot of AT&T publications related to UNIX :-

I have several early shell scripting guides from my time at Lucent featuring it on the cover.
Nancy received an early christmas present this weekend and I couldn’t resist stealing a few.

I was thinking about the way my first employer, Compuware acted after we had finished the Y2K testing project in Brussels. They were left with this oddball team of mainframe junkies and they had no idea what to do with us. They had only one sales person trying to sell our team part time and they treated us like dirt, refusing to give us our own PCs and forcing us to “hot desk” etc. I remember that we were told off for reading the newspaper in the office when there was simply nothing else to do. We’d go off and play cards in an empty meeting room.
Of course you can’t put up with that for long and everybody left after a couple of months, just what they wanted. I came to Belgium and the rest of the team joined a competitor in the city. I think many of them were happy to get out of Slough and into central London.
I think I was the only one of the team actually interested in the technical workings of MVS. I bought this extremely expensive book in Foyles :-

I even got into Rexx programming and wrote a very bad version of Hangman for the terminal. Looking back through old floppies I couldn’t find any of my own JCL so here’s a bit from Wikipedia :-
//IS198CPY JOB (IS198T30500),’COPY JOB’,CLASS=L,MSGCLASS=X
//COPY01 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=OLDFILE,DISP=SHR
//SYSUT2 DD DSN=NEWFILE,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(40,5),RLSE),
// DCB=(LRECL=115,BLKSIZE=1150)
//SYSIN DD DUMMY
$ SET PROCESS/NAME=”THX-1138″
$ ACS SET LIB [.ADALIB]
$ ACS SET SOURCE [.ADALIB.SOURCE]
$
$ COLPR :==”PRINT/QUEUE=ITC$COLOUR_PRINT/NOTIFY ”
$ LASER :==”PRINT/QUEUE=SYS$LASER/NOTIFY ”
$ LQ :==”PRINT/QUEUE=SYS$LQPRINT/NOTIFY ”
$ P281 :==”PRINT/QUEUE=J281$LPA/NOTIFY ”
$ PRINT :==”PRINT/QUEUE=ITC$PRINT/NOTIFY ”
$ PS :==”PRINT/QUEUE=ITC$PSCRIPT/NOTIFY ”
$
$ SHCOLPR :==”SHOW QUEUE ITC$COLOUR_PRINT/ALL ”
$ SHEN :==”SHOW ENTRY/FULL ”
$ SHGEN :==”SHOW QUEUE GEN BATCH/ALL ”
$ SHLASER :==”SHOW QUEUE SYS$LASER/ALL ”
$ SHLQ :==”SHOW QUEUE SYS$LQPRINT/ALL ”
$ SHP281 :==”SHOW QUEUE J281$LPA/ALL ”
$ SHPR :==”SHOW QUEUE ITC$PRINT/ALL ”
$ SHPS :==”SHOW QUEUE ITC$PSCRIPT/ALL ”
$
$ CLS :== “WRITE SYS$OUTPUT CLR+HOME ”
$ COOL :== “SET ACL/ACL=(IDENTIFIER=[*,*],ACCESS=EXECUTE) GRAPHICS.DIR”
$ FTP :== “$UCX$FTP/ULTRIX ”
$ LO :== “logout/f ”
$
$ LOCAL :== “SET DEF DISK$LOCAL:[SCRATCH] ”
$ M*AIL :== “MAIL /EDIT=SEND ”
$ MAIN :== “SET DEF SYS$LOGIN ”
$ NO*TES :== “RUN SYS$SYSTEM:NOTES$MAIN ”
$ R*UN :== “RUN ”
$ TNB :== “SET TERMINAL/NOBROAD ”
$ TYB :== “SET TERMINAL/BROAD ”
$ USESYS :== “ASSIGN/USER_MODE SYS$COMMAND SYS$INPUT ”
$
$ SA :== “SHOW ACC ”
$ SB :== “SHOW BROAD ”
$ SCPU :== “SHOW SYS/NODE=V8800 ”
$ SDEV :== “SHOW DEVICE ”
$
$ SM :== “SHOW USER BLEWIS/FULL ”
$ SN :== “SHOW USERS/NODE=ALL/FULL ”
$ SO :== “SHOW USER OPERATOR/FULL ”
$ SQ :== “SHOW QUOTA ”
$ SS :== “SHOW SYSTEM ”
$ ST :== “SHOW TERMINAL ”
$ SU :== “SHOW USERS /FULL ”
$ TIME :== “SHOW TIME ”
$ WHAT :== “SHOW SYMBOL/GLOBAL ”
$
$ E*VE :== “EDIT/TPU/NOCOMMAND ”
$ EL :== “EDIT/TPU/NOCOMMAND [BSCIT00IS01.BLEWIS]LOGIN.COM ”
$ PHOTOLOG :== “PLAYBACK PHOTO.LOG/OUT=EDIT.TXT/TYPE=RECORD/STRIP ”
$ T :== “TYPE/PAGE ”
$
$ SAY :== “WRITE SYS$OUTPUT ”
$