installing Tomcat 5.5 on SUSE Linux Enterprise Server 9

It was busy in June and July over at $WORK, so I didn’t get a chance to write any entries here. Some of the work I’ve been doing include turning off all legacy servers (among the legacy servers are only 2 FreeBSD boxes and a handful of HP/UX dinosaurs, but the rest of the production environment is SUSE Linux Enterprise), shepherding the BlueArc storage upgrade through (a huge pallet containing disks, controllers, disk shelves, and a replacement Fibre Channel switch arrived last week), and, of course, planning our upgrade to a modern Apache/Java environment. This will consist of Apache 2.x with a Tomcat 5.5 back end — a far cry from our current Apache 1.x and Tomcat 3.x setup.

One of the major challenges is getting Tomcat 5.5 running on SLES 9 under a Java 1.5.x virtual machine. Actually, it’s not so much the “running” part — I’m sure that since it’s Java, it would just run if I did the old tar zxvf tomcat-5.5.tar.gz && make && make install dance. But we’re after sensible package management here, and that means trying to make SLES 9 behave the standard way. SLES 9 is missing a lot of the “standard” tools that folks use to manage Java apps; it has no jpackage-utils built-in, it doesn’t use the alternatives system, and it can’t talk to Yum repositories out of the box. The work instructions I developed here hack up the base OS a bit to bolt on these tools, but ultimately do the job.

The long-term solution, of course, is to move to either SLES 10 or RedHat Enterprise Linux 5. SLES 10 ships Tomcat 5.0.x out of the box (just like SLES 9) so on the surface, it doesn’t seem like much of an improvement. But they have moved to the alternatives system; jpackage-utils is bundled with the base system, and ZMD (for what it’s worth) will talk to Yum repositories. (Of course, that’s in theory: in practice, as with many Novell tools, it’s broken.) RHEL 5 seems like the obvious answer, since it ships Tomcat 5.5 right out of the box.

Anyway, that’s a bit of a digression. Here are my directions for getting Tomcat 5.5 installed and properly package-managed on SLES 9 with JPackage. Continue reading

Top 10 Things That ZMD Is Doing While “Waking Up”

10 Ordering CDs from Bill Gates’ wishlist just like RRDtool claims to do when running configure.
9 Booting Windows XP and running CHKDSK.
8 Defragmenting /usr/lib so that Mono can run more efficiently.
7 Converting your /var partition from ext3 to FAT-16.
6 Drawing the Windows “flying folders” in the background.
5 Downloading patches from the RedHat Network and then pretending them came from Novell.
4 Installing IPX/SPX for Linux and registering with any eDirectory servers it can find.
3 Launching Python for Windows to run the old version of rug that didn’t suck (as badly).
2 Upgrading the TCP/IP stack on your computer to support Web 2.0.

And the number one thing ZMD is doing while waking up:

1 Downloading YUM and creating YUM repositories so that when you throw ZMD out the window in frustration, you can still update your software.

fixing Adobe Acrobat Reader’s “expr: syntax error” message

I just upgraded to Fedora (no longer “Core”) 7 and decided to finally install Adobe Acrobat Reader for Linux. Normally I’ve used the built-in “Document Viewer”, but I needed to fill in a PDF form, and only Reader will allow you to do that.

Upon installing Reader, I found it would loop forever, printing expr: syntax error on the screen. Fortunately, someone has already solved this problem:

Fix Adobe Acrobat Reader’s “expr: syntax error” message

Now it works perfectly. Thanks, Javier Arturo Rodríguez!

There are a few other annoyances with Fedora 7. One is that Azureus crashes right after startup using the Sun JVM 1.6.0_01 (Update 1). I’m also getting a strange BUG: warning on system startup which apparently has been fixed in CVS.

I also had to perform an upgrade using Yum instead of booting off the installation CD and doing a binary upgrade, because my system has a Highpoint 1740 SATA RAID adapter and a driver disk is not yet available from Highpoint for this. My procedure for upgrading using Yum and keeping the system functional was as follows:

  1. Upgrade using the procedure described in the Yum Upgrade FAQ as above. This involved a lot of manual dependency munging, specifically me having to massage an upgrade of mkinitrd and nash manually.
  2. Build the Highpoint rr174x driver for the new kernel and install it into the initrd. This involved a magic incantation of the sort cd /usr/src/rr174x-linux-src-1.02/product/rr174x/linux/ && make install KERNELDIR=/usr/src/kernels/2.6.21-1.3194.fc7-x86_64.
  3. Resolve .rpmsave/.rpmnew conflicts (basically mergemaster for Linux)
  4. Fix up /boot/grub/grub.conf to make sure the new kernel is there (for some reason it wasn’t)
  5. Comment out old /dev/hd*-format devices in /etc/fstab because Fedora has switched to using libata entirely, so even old PATA devices now use the /dev/sd* notation.
  6. Reboot and cross fingers.
  7. Fix up disk device names in /etc/fstab with the new sd* name.
  8. Reconfigure samba so girlfriend can access MP3s again. 🙂

Altogether, not the most painful upgrade I’ve done, but I would have preferred to do the binary upgrade using the installer CD. Only if Highpoint would release its drivers as open source and then they could be incorporated into the kernel tree…

SuSE Linux Enterprise and Mono: Not a recipe for success

As some of you know, I run SUSE Linux Enterprise Desktop (SLED) on my CBC-issued desktop. also uses a combination of SUSE Linux Enterprise Server 9 and 10 systems to produce and host the website, and most of the corporate infrastructure is Novell-based (Novell Groupwise is the corporate e-mail system, the file servers are all Netware, etc.) I use SLED because it gives me the right balance of being a UNIX-like operating system, and giving me access to corporate file shares through eDirectory. But let me be clear: I use SLED because it’s UNIX-like, just as we use SLES on the servers because it’s UNIX-like. One element of SLED/SLES that is distinctly not UNIX-like is the package management toolchain, ZenWorks Linux Management (ZLM). And that really bothers me.

Continue reading

A Review of SuSE Linux Enterprise Desktop 10

I’m writing this entry under SuSE Linux Enterprise Desktop (SLED) 10, which I recently installed on my CBC-issued ThinkPad T42. The laptop came with Windows XP installed, which I decided to retain in a dual-boot configuration, because there are still certain tools at CBC (like our antiquated Visual Basic-based “Guests & Boardrooms” booking system) that still require Windows. I did manage to get Remedy ARS to run properly under Wine, however (the latest version, 0.9.28, that is; earlier versions had weird problems rendering dropdowns).

I decided to evaluate SLED because of a number of reasons:

  1. I am fairly satisfied with my OpenSuSE-based CBC-issued desktop, and wanted to see what a “vendor-supported” branch of OpenSuSE would look like;
  2. Novell Client for Linux is only officially supported under SLED, although I have it installed under OpenSuSE, with some hackery (like --force and --nodeps manual installation of RPMs);
  3. There is a rumour flying about the IT grapevine that in the not-too-distant future, CBC will be converting many of its desktops to run SLED.

My expectations for SLED were somewhat low. Although I fully expected everything to work as advertised in the product literature, I worried that the feature set would lag behind the cutting-edge by at least twelve months, as is the norm with RedHat Enterprise Linux (RHEL). For example, I was surprised to see a 2.6.16.x Linux kernel; had I installed RHEL, I would probably be running a 2.4.x kernel.

I decided to put SLED through the paces by trying out a few things that it advertises as working, but with which I’ve had problems in the past:

  1. stable wireless networking
  2. wireless networking with WPA2-PSK encryption for my home
  3. NovellVPN client which purportedly talks to Nortel Contivity VPN concentrators (used at CBC)
  4. NetworkManager for switching connection profiles
  5. suspend/resume to disk
  6. Evolution connectivity to Groupwise servers using the Groupwise SOAP interface
  7. On-board Intel modem

Finally, I wanted to play around with the Xgl display effects, and to see how well that worked (and whether it looks as nifty as my colleagues claim)

I have to say that after a couple of weeks of using SLED that I’m very impressed. This is perhaps the nicest-looking Linux distribution I’ve ever used, and everything does “just work”. Wireless networking is stable and functional, which is absolutely unprecedented for me under Linux. The NovellVPN client does in fact talk to CBC’s Contivity VPN with no problems. And all the problems that have plagued NetworkManager in the past seem to have disappeared. Connection profile switching is as seamless as Mac OS X, which is more than can be said for the IBM Access Connections hackery that is required under Windows.

There’s only one challenge remaining for me, and that’s to see if I can get PPTP working under SLED. This is because the CBC in-building wireless network requires it; association to the AP requires no authentication or encryption, but in order to get onto the BAN, a PPTP VPN connection through a Bluesocket concentrator must be made. I’ll keep you all posted as to my progress!

And yes, the Xgl desktop effects are very nifty — but my laptop’s video card is woefully underpowered, so sometimes X fails to start with Xgl turned on. However, on a desktop machine with a decent video card, I’m sure they would perform perfectly.

SuSE Linux round two

I decided to format my CBC-issued desktop and install SuSE Linux 10.1. You will recall that back in January I tried to install SuSE 10.0 on a Thinkpad T42, with very poor results. So why did I decide to try again? There are a number of reasons:

  1. CBC is a Novell shop internally; they use GroupWise for email and make extensive use of NDS, ZENworks Desktop Management, iPrint, and many other Novell technologies. SuSE, as you probably know, is a division of Novell.
  2. I despise GroupWise but I am hoping at some point in the future to be able to use Ximian Evolution’s Groupwise connector to talk to our Groupwise servers. This probably won’t happen until corporate IT upgrades to Groupwise 7, though (or at least until they turn on the web services interface in Groupwise)
  3. runs SuSE Linux Enterprise Server 9 on all of its production web and Java servers, so having a similar environment on my desktop for development purposes makes sense.

After a few weeks of using SuSE Linux 10.1, I’m generally happy with it. Part of that is due to the fact that I’m not using it on a laptop, so my original beef about WPA being broken is a non-issue in my use case. (That doesn’t mean that the problems have been solved, though; 10.1 still doesn’t support WPA properly.) I still have a couple of complaints:

  1. The successor to Red Carpet, Zen Updater, is horribly broken out of the box. In order to “fix” it I still needed to run YaST to upgrade to the latest versions of libzypp and all that jazz. Still, YaST and Zen Updater are both far, far slower than any other package management tool I’ve ever used.
  2. SaX2, SuSE’s X Server configuration tool, is still extremely buggy. This would be only slightly annoying if you could hack the xorg.conf yourself, but SaX puts all kinds of proprietary directives in there (such as Option "SaXDualHead") and prefaces the file with a warning to not hand-edit it. So what are you supposed to do when SaX fails you, e.g. it refuses to properly configure my Matrox G450 in dual-head mode?

There are some positive aspects to SuSE Linux though, namely its integration with NDS (I guess they call this "eDirectory" now). I was able to successfully install the Novell Client for Linux 1.2 and log onto eDirectory. There’s a nice fancy QT GUI and GNOME tray icon for managing Novell connections and for the most part it works flawlessly, just like Novell Client for Windows. This is a huge improvement over the awful NovelClient (sic) that I used to use before during my first term at CBC.

As I said, I’m generally happy with SuSE Linux. My one remaining complaint is this: why does Novell have so many confusing names for its Linux products, and why do they seem to change them every 6 months? We have SuSE Linux Enterprise Server (SLES), Novell Linux Desktop (NLD), OpenSuSE, SuSE Linux Enterprise Desktop (SLED), SuSE Linux Enterprise OpenExchange Server (SLEOS? SLOS???), Open Enterprise Server (which I gather isn’t even really Linux but some form of Netware?), and so on. Even SuSE Linux 10.1 has two versions: a so-called “retail” version that comes with support, and a downloadable “community” edition (that I’m using) with no support and missing a bunch of non-GPL packages like RealPlayer, Flash, Adobe Reader, etc. but which you can install later. Worse still, Novell refers to SuSE Linux 10.1 as “created by the openSuSE project”, but the next version of SuSE Linux, 10.2, is going to be called openSuSE 10.2 …?!

All of this SLES, SLOS, and SLED nonsense makes my head spin — makes me want to give the Novell marketing monkeys a SLAP.

NetworkManager starts getting some docs

Looks like someone has started putting together some informal documentation for NetworkManager.

In a completely unrelated note, the upgrading of my Fedora Core 5 Thinkpad T42 to kernel 2.6.17-1.2139 has broken wireless (again). Any attempt to use NetworkManager with it causes ipw2200: Firmware error detected. Restarting. to be seen in the dmesg. However, if I run wpa_supplicant manually and then dhclient, it works.

I’m really looking forward to the day when all this is fixed, although I suspect wireless is such a bleeding edge problem space that the day won’t be coming soon.

Linux WiFi improvements on the horizon

Wireless device support — and indeed, wireless reliability — has been frankly awful in Linux up to this point. Even among the devices that work (at least some of the time), there are frequent problems. For example, my IBM Thinkpad T42 laptop comes with an IPW2200BG adapter that mostly works — except after suspend, when it will refuse to function unless the driver is unloaded and reloaded. I’m using NetworkManager to "magically" manage my network connection; when it works, it works fabulously, but there are no docs. None. I challenge you to try and find a man page or any scrap of documentation about NetworkManager anywhere on the Internet.

At least on the driver side there might be some hope on the horizon. Devicescape, a WiFi software stack specialist, has just released their "Advanced Datapath" IEEE 802.11 driver stack under an open source license, and several kernel developers are trying to get it integrated into the Linux kernel. Of course, as with all integrations, this won’t happen overnight, but when it does, many wireless features such as WPA, WEP, software MAC, and so on that currently require add-ons like the userland wpa_supplicant for WPA could be directly run by this stack.

I’m looking forward to the day when I don’t have to do this magic incantation to get wireless working after suspend:

# /etc/init.d/NetworkManager stop
# /sbin/modprobe -r ipw2200
# /sbin/modprobe ipw2200
# sleep 10
# /etc/init.d/NetworkManager start

A complete non-sequitur: survey questions that make no sense.
how quickly?