DAViCal is not quite RSCDS

by on Dec.02, 2008, under Linux

At one point I had a working CalDAV store on my home server using RSCDS 0.9.2.  It was a little touchy and the clients were flaky (Sunbird/Lightning and Evolution), but it worked.  One day it didn’t, which turned out to be an unnoticed upgrade of the rscds package.  I just recently had a chance to look into the issue.

It seems to have been an issue with the database schema, but I decided to upgrade to the latest package instead, now called davical.  Well that turned into a big mess, as I couldn’t even get it to work with a completely clean database.  Everything looked great in the admin interface, even after re-importing all of the events, but the caldav.php interface would return a completely empty response to all clients.  Not even a VCalendar…just nothing.  After fighting with it for several hours, I found that the issue was actually with libawl (Andrew’s own little utility library).  Apparently, DAViCal does not like libawl 0.33.  Upgrading to 0.34 fixed the issue.

Hopefully Andrew will fix the package dependency.

Leave a Comment : more...

site-upload 0.4-1

by on Nov.25, 2008, under Linux

Version 0.4-1 of site-upload has been released. This is the first version I am releasing publicly, but I have actually been using this tool for many years to upload changes to various websites that I maintain. It works easily and quickly form the command-line, which is handy when making changes on my home server remotely.


  • Initial public release.
  • Major clean-up of the code.
  • Do not delete remote files if they are now being ignored.
  • Add –start-path and –norecurse to allow fast uploads of large sites when little has changed.
  • Allow command-line options to properly override config file options.
  • Fix logic for boolean config options.Only check the checksum if the modification time changed.
Leave a Comment :, , more...

LIRC module Debian packages for 2.6.27 kernels

by on Nov.20, 2008, under Linux

“LIRC is a package that allows you to decode and send infra-red signals of many (but not all) commonly used remote controls.”

It seems that any time I try to use the Debian LIRC modules source package, it is too old to build against the kernel I am trying to use. I have updated the 0.8.3 package currently found in Lenny and Sid to 0.8.4a. It will now build against Linux 2.6.27.

Source Packages

Binary Packages

What I have built with the above source.  Unlikely to be useful to you, but here you go anyway…

2 Comments :, more...

Downgrade from Irritating Ibex

by on Nov.14, 2008, under Linux

Lately, I have not been as diligent in testing Ubuntu releases before upgrading my important machines.  There are always some small hiccups, but most were fixed fairly easily.  Upgrades to both Feisty and Gutsy went fairly well and didn’t introduce any serious issues that I can remember.  I had a few snags with Hardy on one or two machines, but once a few weeks went by and the flurry of updates subsided, it proved to be one of the more solid versions I have used to date.

Unfortunately, the same cannot be said for Intrepid Ibex.  The upgrade went OK, but it introduced a lot of issues with usability such that I have decided to downgrade at least one of my machines.  The two main issues are:

  • GNOME 2.24 was (intentionally) released with completely broken session management.  Sessions are no longer saved.  This is extremely irritating for me on laptops and other machines that I don’t keep on 24/7.  You can sort-of work around it by manually adding apps to the session, but most of those apps will not be placed and sized how they were originally.  I’m sort of anal that way and have workspaces dedicated to certain tasks.  I like those workspaces to be restored the way I left them.  This is very basic functionality that I have been using on UNIX for the past 10 years until now.
  • Xorg 7.4 introduced a mysterious incompatibility with older X clients on Solaris hosts such that they immediately crash on any key press.  The result is that I can no longer use any tools on the servers at work via this machine.
  • Random slowdown and lockups of the machine for no apparent reason.  The CPU and hard disk are idle when this happens, but the mouse becomes sluggish and any back ground tasks (such as music playback) will get interrupted.  On one or two occasions, my machine has locked-up hard.  This is probably a kernel issue, but I have not looked too deeply into it yet.

The 2nd issue is preventing me from doing any useful amount of work at my job.  Thus, I have been forced to downgrade that machine.

Downgrading Debian or Ubuntu is not trivial, but not impossible either.  It does require a lot of attention, however. Here is approximately how I did it (it’s best to do all this from a text console and not the desktop via Ctrl+Alt+F1):

  1. Set your /etc/apt/sources.list to:
    deb hardy main restricted universe multiverse
    deb intrepid main restricted universe multiverse
  2. Set your /etc/apt/preferences to (be careful about extra white space, as apt-get will quietly ignore these if there are any parsing issues):
    Package: *
    Pin: release a=hardy
    Pin-Priority: 1001
    Package: *
    Pin: release a=intrepid
    Pin-Priority: 60
  3. apt-get update
  4. apt-get upgrade

The upgrade will fail for various reasons.  Most of them can be resolved by:

  1. dpkg -i –force-overwrite /var/cache/apt/archives/problematic-package.deb
  2. apt-get -f install
  3. apt-get upgrade

Keep repeating the above sequence, replacing step 1 with whatever needs to be worked-around.  I ran into a problem with exim’s pre-install script and had to temporarily hack /etc/init.d/exim4 to succeed so that the package would install (don’t forget to unhack it once exim is installed).  I also had to manually remove “python-twisted-core” and “landscape-common” to avoid another conflict.

Eventually you will get to a point where some of hardy is installed, but much of intrepid remains.  You can illustrate this by trying “apt-get dist-upgrade”.  You will get a huge list of packages to remove, including some critical ones.  Don’t attempt to continue this way.  What causes this are packages installed by Intrepid that claim to “conflict” with some of Hardy’s packages.  APT needs some hand-holding to get through this.

  1. Remove Intrepid from /etc/apt/sources.list
  2. apt-get install libselinux1 sysvutils sysvconfig
  3. apt-get upgrade

Even now you will have seen a huge list of packages that will get removed.  There should only be one “critical” package getting removed.  Go ahead and proceed.  If you are currently logged-in via GNOME, applications will likely start crashing around you during the next phase.  Just let them and try to avoid doing anything else with the system.  It’s best to do all this from a text console, though (Ctrl+Alt+F1).  The procedure is the same as before:

  1. dpkg -i –force-overwrite /var/cache/apt/archives/problematic-package.deb
  2. apt-get -f install
  3. apt-get upgrade

Now you should be free of more of Intrepid, but you’ve also lost most of the desktop.  Restore it simply by:

  1. apt-get install ubuntu-desktop linux-image-generic

I tried various methods to get through that last half in one step without removing so much of the system, but APT was getting highly confused by various package conflicts as before.  I think much of the trouble stems from Xorg, Python, libc, and CUPS (the packages were renamed from cupsys), but it could also be that I have a lot of extra stuff installed beyond your basic Ubuntu desktop.  It may have helped to remove the pinning rules from /etc/apt/preferences earlier, but I think all that would do is allow more of Intrepid to stick around without APT trying to do anything about it.  Following the steps above allowed APT to tackle the job a chunk at a time so that in the end “ubuntu-desktop” installed cleanly as it should.  Then I forced libc, cups, the 2.6.24 kernel to downgrade and kept trying apt-get dist-upgrade.  Once the dist-upgrade looked sane (not trying to uninstall the world), I let it go and called it a day.

Once you get through all this, a few loose ends remain:

  1. Restore your original Hardy /etc/apt/sources.list from before you upgraded to Intrepid.  It should have been saved as /etc/apt/sources.list.distUpgrade.
  2. Remove the pinning rules in /etc/apt/preferences.
  3. apt-get update ; apt-get dist-upgrade
  4. Restore your Hardy /etc/X11/xorg if you can (should have been backed-up).
  5. Make SURE you have a kernel still installed.
  6. Reboot

Wish yourself luck!  After that it was a matter of reinstalling the nvidia drivers with module-assistant for my system.  YMMV.

Leave a Comment :, more...

Keyspan USB to Serial Converter Driver

by on Oct.29, 2008, under Linux

Update 01/17/2012: Sorry for the broken links. I think I lost some .htaccess magic when moving around my site hosting. I’ve been using my Keyspan on my Debian box running the stock 2.6.32 kernel and have not had issues. That’s why this page is so stale…I forgot all about it.

This driver source code and firmware was taken directly from the sources and packaged as a kernel module.  It supports several of the Keyspan “USA” Series USB to Serial converters.  This driver was removed from official Debian kernel sources due to its change in status as “non-free” per the Debian Free Software Guidelines (DFSG).  This was the result of some unclear language in the license found in the firmware header files.

I had invested in several of these dongles due to their quality, performance, and good Linux support.  Debian is the only distribution that is not happy with the licensing terms.  Even Ubuntu (a Debian-derived distribution) has added this driver back to its kernels.  I was a bit frustrated by this and have decided to package the driver for other Debian users.

Source Packages

The sources can currently be built for 2.6.18 and 2.6.26 kernels intended for Debian GNU/Linux 4.0 “etch” and Debian GNU/Linux 5.0 “lenny”, respectively.  Other kernels are likely supported as well, but will require Makefile and possibly source modifications due to internal API changes between kernel versions. You should be able to build the module by installing the keyspan-source package and then using module-assistant: “m-a prepare; m-a auto-install keyspan”.

Binary Packages

Debian GNU/Linux 4.0 “etch”:

Debian GNU/Linux 5.0 “lenny”:

Changes from Original Source

  • Created Makefile to build outside of kernel tree.
  • Initial release based on Linux Kernel for Etch.
  • Added driver source and firmware from for Lenny.
  • Modified Makefile to build for either kernel tree.
  • Added preinst script to divert existing keyspan module.
6 Comments :, more...


by on May.22, 2008, under Linux

NEdit is a multi-purpose text editor for the X Window System, which combines a standard, easy to use, graphical user interface with the thorough functionality and stability required by users who edit text eight hours a day.  It provides intensive support for development in a wide variety of languages, text processors, and other tools, but at the same time can be used productively by just about anyone who needs to edit text.”  Features include:

  • Very complete functionality. NEdit is the primary editor for thousands of Unix and VMS programmers.
  • Thorough consistency with Motif, MS Windows, and Macintosh conventions.
  • Designed for intensive use: keystroke efficiency, fast response time, streamlined interaction.
  • Unlimited undo.
  • True multi-window, fully graphical design.
  • Mouse-based editing.
  • Secondary/quick action selections.
  • Fully integrated rectangular selection.
  • Interactive WYSIWYG dragable selections.
  • Maximum compatibility with X, Motif, and inter-client protocols, for interaction with the widest possible range of X programs and systems.
  • Easy to learn: just point and type.
  • Capabilities are clearly organized and presented in top-level menus.
  • Comprehensive on-line help.
  • No special knowledge of X Windows required, all important options are GUI-settable within the program.
  • State of the art syntax highlighting with built-in patterns for C, C++, Java, Ada, FORTRAN, Pascal, Yacc, Perl, Python, Tcl, Csh, Awk, HTML, LaTeX, VHDL, Verilog, and more.
  • Auto-indent, programmable language-sensitive smart-indent.
  • Block indentation adjustment.
  • Parenthesis flashing and matching.
  • Find lines directly from compiler error output.
  • Tab emulation.
  • Unix ctags support.
  • Client/Server mode for integration with software development tools.
  • Programmable: Learn / Replay.
  • Easy to use C-like macro language, safe and fully interruptable.
  • Includes a library of over 150 built-in editing functions.

See the online documentation and the Wiki for more information.

NEdit is the most powerful and induitive editor that I have found that is available for all of the different types of systems that I use (Linux, Solaris, Windows, etc).  The interface is somewhat dated due to its Motif-based GUI, but there are ways to improve its looks and customize the interface.

In Linux, NEdit can have difficulties when trying to make use of the resident Motif libraries.  In particular, the GNU lesstif implementation causes a number of problems that lead to frustration.  This version is linked against OpenMotif which tends to fair much better.  The current stable 5.5 version is quite old and running into problems the more recent XOrg servers, glibc locales, etc.  Many of these issues seem to be fixed in CVS, so I am offering a CVS snapshot of the upcoming 5.6 release here.


Here is the latest CVS snapshot:

If you are using Debian Etch, you will find that the OpenMotif libraries are missing from the release.  You will need to install these backports:

Changes in these packages from original Source

  • Added proper GNOME/KDE/OpenDesktop desktop and MIME integration.
  • Created wrapper scripts to launching NEdit safely and also to the background.
  • Added some shell prompt shortcuts.
Leave a Comment :, , more...


by on Dec.18, 2007, under Linux

Misterhouse is an open source home automation program.  It’s fun, it’s free, and it’s entirely geeky.  Written in Perl, it fires events based on time, web, socket, voice, and serial data.  Perl subroutines and objects are used to give a powerful programming interface.  Features include:

  • Executes actions based on voice input, time of day, file data, serial port data, and socket data. Serial and speech data can also be read or written to proxies on remote boxes.
  • It has a web interface to allow control and feedback from any browser, either on a local intranet or on the internet. Check the Winter’s house at
  • On Windows systems, it uses OLE calls to the free MS VR and TTS engines for voice recognition and text->speech. The high quality AT&T NaturalVoices TTS engine may also be used. If using IE, you can enable remote VR and TTS using an MS Agent.
  • On Unix systems, it uses the free Festival, flite, IBM ViaVoice and non-free AT&T NaturalVoices TTS speech engines for text->speech and on Linux IBM’s ViaVoice engine for voice recognition. These engines can also be called from Windows version of mh.
  • Reads/writes any data from any serial attached device.
  • Speaks the speed, course, and position of vehicles, by interfacing to a ham radio modem.
  • (TNC). Brian Klier wrote has a nice article about it. You can see our car position logs here.

  • Sends/receives X10 data from the X10 CM11 (ActiveHome) interface.
  • Sends wireless X10 data using the X10 CM17 (Firecracker) interface.
  • Send/receive data to the Ibutton family of devices, including the weather station.
  • Reads/writes data from the JDS interfaces (Stargate, Time Commandar, HomeBase) interface.
  • Reads/writes data from the HomeVision interfaces.
  • Reads/writes serial port data from the Weeder Technologies PIC kits that can process X10, digital, analog, callerID, and outgoing phone data.
  • Reads/writes to Applied Digital’s CPU-XA and Ocelot interfaces via the cpuxad socket deamon.
  • Reads data from IRman infrared receiver serial interface and writes to X10 IR Commander wireless interface.
  • Code has been written for DSC Alarm pannels, Stargate LCD displays, Slinke IR send/receive, Marrick X10, RCI X10 sprinklers, Xantech preamps, ISDN modems, voice modems, ComPool and Aqualink pool equipment.
  • Reads and writes from the lcdproc server which interfaces to inexpensive LCD modules and keypads.
  • Shares a modem for caller ID and paging.
  • Reads/writes internet mail, http, and ftp files unattended.
  • Sends/receive instant messages using AIM, MSN, or Jabber.
  • Reads MS Outlook, Unix ical, or the built in Organizer calendar for event reminders and VCR programing.
  • Uses free internet TV web pages to allow for VCR programing and show reminders.
  • Has an entertaining ‘chatbox’ web page that will listen to all your problems.
  • Can monitor NetGear RT311 / RT314 or LinkSys syslog router traffic, so you can track stuff like incoming web hits and online game time.
  • Uses Voice XML to interface to To try it, dial 1-800-555-Tell, then after you ear ‘tellme more’, enter 1-46630 (1-HOME0). With a XML browser (e.g. IE), you can see a test vxml menu here.
  • Use simple menu templates to generate menus for LCD, VXML, or WAP phones. If you have a WAP phone or WAP browser, you can see this test menu with this url: You can also walk the menus with an html browser with a frames version or a a simpler version . These menus can also be controled with a single switch (e.g. air sip switch for the disabled), using audible feedback to select items/states.
  • Logs weather data to the wunderground personal weather project. Here’s weather logs from my house
  • Here is a list of some users written code files along with standard code files that demonstrate some other MisterHouse features.
  • You can use RSS readers to track various data, like phone or speak logs.

See the online documentation for more information.


The latest release using debconf to configure basic fucntionality:

The last stable release that did not use debconf:

Changes from Original Source

  • Separate code/libraries/binaries to the appropriate places (see README.Debian).
  • Created wrapper scripts, init files, etc.
  • Created man pages.
  • Created a default configuration that is compatible with Debian/FHS.
  • Added debconf templates for common code activation and some basic functionality.
3 Comments :, , more...


by on Dec.02, 2007, under Linux

debian-helper-scripts is a set of tools to help with the maintenance of a Debian system.  It is basically a package of scripts (Perl and Bourne-shell) that I generally install on any Debian system that I maintain.  They are:


Leave a Comment :, more...

Debian on the Xbox

by on Nov.07, 2007, under Linux

Update 01/17/2012:  It seems that my internal links suffered from bit rot and broke at some point while moving my website around.  I have fixed those.  Also it appears that the site is borked and has been for some time.  I still get emails about this process, so I have annotated some of the steps below as best I can from memory.

Below are a series of Debian packages specific for the Microsoft Xbox.  Their purpose is to assist upgrades from Xebian 1.1.4, which is based on a rather old version of Debian GNU/Linux 3.0 “woody”.  These packages allowed me to upgrade my Xebian installation to Debian GNU/Linux 4.0 “etch”, with some additional effort.  Here is an approximation of the steps required to install Debian on an Xbox:

  1. Read the Getting Started Guide at the Xbox Linux Project Wiki.  The exact methods that you chose depend entirely on what you have to start with and what are your goals.  You may have to flash the BIOS, etc. In other words, this is where you have to hack the Xbox so that you can boot Linux. There are several ways to do it and they are documented elsewhere on the Internet. I used a mod chip and loaded Debian into the unused area at the end of the hard drive so that I could still use Xbox Live (though I never did). There are other methods that don’t require hardware mods as long as you don’t mind getting your device blacklisted on Xbox Live. Given the age of this device, I suspect you probably don’t care. One caveat is that the kernel sources below do not have the FATX patches applied. If you plan to install Xebian in the game partition, you’ll need these. I remember seeing them ported to a later kernel by someone else out there.
  2. You should evntually end up at the Xebian Download page.  Download the Xebian 1.1.4 archive of your choice.  The “basic” archive is effectively a Debian base install for the Xbox, while the “xbox” archive is a full graphical desktop.  Both work on the Xbox, of course.  If you are an advanced Debian user and intend to immediately upgrade to the latest stable Debian, the upgrade may be more painless by starting with the “basic” archive and adding packages after the upgrade is complete.  I already had the “xbox” archive installed for several years, as it was being used as a MythTV frontend.
  3. Be sure to read the Xbox Linux Boot CD/DVD Burning HOWTO before burning any images.  There are some caveats with the Xbox. Basically, don’t use CD+RW or and RW DVD media because the drive doesn’t like it. CD-RW media seems to work fine as do regular CD-R’s.
  4. Read the Xebian HOWTO all the way through. I don’t remember anything from this, but there is some information in the README that comes in the Xebian archive.
  5. Install and configure Xebian per the procedure outlined in the HOWTO.

Once you have Xebian installed and configured, you need to prepare for the Debian upgrade.  At the time of this writing, Debian GNU/Linux 4.0 “etch” is the most recent release.  This procedure has that assumption in mind.  If Cromwell BIOS is used, version 2.40 or higher is required. Obviously, this is a rather old version of Debian. Debian doesn’t support skipping over stable versions, so your best bet is probably to download Etch from the archives and do the upgrade per the steps below. If you only did a base install of Xebian, you might be able to get away with skipping straight to the latest version, but I haven’t tried it.

  1. Configure your apt sources.list as shown here and execute “apt-get update”.
  2. Upgrade the kernel and modules to version 2.6 using the packages below.  Due to something strange about make-kpkg, the sources may need to be untarred in “/usr/src” for the installation to succeed. This kernel is rather long in the tooth, but I never got around to making an updated one. The patched sources are below, so you can generate your own patch set from the pristine sources and try to patch a later kernel. If you have luck, I will be happy to post a newer kernel here for those who may follow.
  3. Install the module-init-tools package with “apt-get install module-init-tools”.
  4. Replace/merge your “/etc/modules” config file with this one.
  5. Add an entry for the new kernel to “/boot/linuxboot.cfg” as described on the Xebian-1.1.4-Kernel-2.6-Upgrade Wiki page under “Compile the Kernel -> xebian”.  You will need to change the “append” line for the new kernel to “root=/dev/hda2 kbd-reset xbox=hdd”, as Xebian uses the obsolete devfs driver.  Be sure to leave the entry for the old kernel in case something goes wrong.  This one works with the kernel package below. Just use the config file below. It should be self-explanatory.
  6. Reboot the Xbox with the new kernel.  You need to manually select the HDD boot device to make the kernel selection menu appear.  If all goes well, add a “default” entry to “/boot/linuxboot.cfg” to make the new kernel the default.
  7. Now perform the Debian upgrade.  There are some caveats with “etch”, so be sure to carefully follow the upgrade procedure in the Release Notes for Debian GNU/Linux 4.0 (“etch”), Intel x86.  Some manual intervention is required to get the upgrades to go smoothly, including removing some old packages (hotplug and python2.3 come to mind) and browsing through various scenarios presented by the aptitude tool.  This is due to old Xebian cruft. There are caveats to most Debian upgrades, so be sure to carefully read those release notes as well.
  8. Once the final “aptitude dist-upgrade” has been completed, reboot the Xbox to make sure it comes back up OK.
  9. Install the “nvxbox” driver for X.Org and place this xorg.conf as “/etc/X11/xorg.conf” to get the X server up. This is going to be a problem for later versions of Debian. If you need X, you may have some difficulty. Definitely look at the nouveau driver as they were actively trying to support the Xbox at one point.
  10. Replace your “/etc/lirc/lircd.conf” with this one if you were using the Xbox DVD remote with Xebian.  The new lirc_atiusb module only returns one byte per code instead of the 3 byte sequence of the old driver.
  11. Xebian’s “blink” tool to control the Xbox LED will not work, again due to its usage of the obsolete devfs device node structure.  I haven’t been able to get it to recompile yet, but a simple workaround is to create the device node manually and creating a symlink to it to emulate the devfs structure.  As root (this won’t stick if you are using udev):

cd /dev

mknod i2c-0 c 89 0

chgrp mythtv i2c-0

mkdir i2c

ln -s ../i2c-0 i2c/0



Linux Kernel 2.6.16 for the Microsoft XBox

This is a recent point-release of the 2.6.16 kernel with the Xbox patches applied and the modules for LIRC 0.8.0.  Also available is the patched kernel sources that may need to be present in /usr/src when installing the kernel package.  Note that FATX support has not been ported to the 2.6 kernel series yet.


X.Org nVidia Driver

This is a packaged version of the original xf86-video-nvxbox driver found in the Xbox Linux CVS. The driver itself is old, but is suitable for Debian Etch (X.Org v7.1.0) and works sufficiently well for use as a media center.

I also attempted to merge the changes from the xf86-video-nvxbox driver found in the Xbox Linux CVS into the xserver-xorg-video-nv driver for Debian Etch (X.Org v7.1.0).  This seems to work for me, though it will segfault if you do not set “NoAccel” to “true” in xorg.conf.  There is some breakage in the DMA support code that is not present in the older driver, however with the accel disabled the performance of the overlay is poor.  It’s not suitable for use as a media center.  It probably breaks support other nVidia GPUs too, so don’t try to use it for those.

9 Comments :, more...


by on Nov.05, 2005, under Linux

Synctree is a tool to synchronize two directory trees based on a set of rules.  It has been enhanced with the ability to interface with the Sorune database manager for the Neuros audio player.  By handling the transfer of files with this tool, it can automatically transcode/peel audio files into a format that is fully supoorted by the Neuros (which has trouble with high bitrate files).  It is written in Perl.


Leave a Comment :, , more...


Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact me.

Sites that interest me

A few highly recommended friends...