Anuradha Weeraman

Archive for 2008|Yearly archive page

Software Freedom Day 2008

In Events, GNU on September 23, 2008 at 10:59 pm

An event to mark the Software Freedom Day was organized by the Free Software Foundation and held in Boston over the weekend. I felt that a long drive was just what I needed to get my mind off the series of mini catastrophes that have been taking place at work during the week.

By the time I reached Chinatown, it was mid-day on Saturday and the event was nearly over. Helped myself to some GNU memorabilia, and briefly spoke with Mako before being distracted by Stallman’s voice singing the Free Software song.

GNU celebrates its 25th anniversary this year, and a small 5-minute short of Stephen Fry endorsing Free Software was screened. Happy birthday GNU, and many more!

Some photos from the event can be found here.

Debian packaging with git – Part 1

In Playing Around on May 29, 2008 at 1:48 am

Recently, I’ve been taking a look at tools to version control and maintain my Debian packages in git.

Git, like mercurial, is a distributed SCM used to maintain the Linux kernel since version 2.6.12. Branching in git is very cheap, and merging is trivial and follows a decentralized model where developers can push and pull code with each other in true distributed fashion.

Of the Debian tools I’ve tried, the main contenders are:

  • gitpkg
  • git-buildpackage

gitpkg, is extremely simple to use, and quick to get you off the ground. If you already have an entire revision history of .dsc, .diff.gz files, maintained in the good old fashioned way, gitpkg provides the git-debimport utility that lets you import everything into a git repository in one go. It does this intelligently by applying consecutive revisions and tagging the different versions along the way.

Here are the steps that I took to import my ncc package history into git:

$ mkdir /git/repo
$ cd /git/repo
$ git-debimport ../../debian/ncc/ncc

It will then pick up all the files beginning with ncc in the ../../debian/ncc directory.

To see the revision history:

$ cd ncc
$ gitk

The .orig.tar.gz files will be extracted to a branch called upstream and tagged (v2.5), it will then be merged to master and the .diff.gz files applied sequentially and tagged at each step (v2.5-1). A list of tags like the following will be created:

v2.5
v2.5-1
v2.5-2
v2.6
v2.6-1
v2.6-2

To create the source package for a particular revision:

gitpkg v2.6-1 v2.6

Where the first argument is the tag with the Debian changes, and the second argument is the tag for upstream code.

$ ls -F ../deb-packages/ncc/
ncc-2.6/ ncc_2.6-1.diff.gz ncc_2.6-1.dsc ncc_2.6.orig.tar.gz
$ cd ../deb-packages/ncc/ncc-2.6
$ debuild

These steps didn’t work for me the first time as git silently dropped an empty directory that caused the build to fail. The workaround was to create a .gitignore file in the empty directory. This is probably something that gitpkg could be configured to handle.

To upgrade to a new upstream version:

$ git checkout upstream
$ rm -rf *
$ tar zxvf /path/to/new/upstream.tar.gz
$ git add .
$ git commit -m
$ git tag v2.7

# Merge the Debian changes
$ git checkout master
$ git branch debian
$ git checkout debian
$ git merge upstream

# Fix conflicts / make Debian specific changes / test

$ git add .
$ git commit -a
$ git checkout master
$ git merge debian
$ git tag v2.7-1

# Generate Debian package artifacts
$ gitpkg v2.7-1 v2.7

# Build Debian package
$ cd ../deb-packages/ncc/ncc-2.7
$ debuild

A couple of caveats – gitpkg generates the orig.tar.gz by tarring up the upstream branch. As far as I know, gitpkg does not yet have pristine-tar support yet and that’s a must-have if you don’t want to re-package the upstream sources. I also noticed that git-debimport had trouble with absolute paths, for which I submitted a patch – so I don’t have a whole lot of confidence in the tool yet, but it’s getting there.

FireFox + GPG

In Crypto, Playing Around on May 8, 2008 at 12:55 am

FireGPG is a neat little FireFox plugin that acts as a front-end for GPG and provides seamless integration with Gmail. Once installed and Gmail support is enabled (which is, by default), a series of signing/encryption related buttons will appear at the top of the Compose Mail page.

It also lets you easily encrypt or sign any selected text area on a web page.

It’s a very intuitive and effective plugin. I just wish I had stumbled upon this sooner.

On OpenSolaris

In GNU, Rants on April 26, 2008 at 2:03 am

In a recent article, Ted T’so makes some interesting points on Sun’s motives behind OpenSolaris, and how it fares today in the FOSS ecosystem as a result.

“Fundamentally, Open Solaris has been released under a Open Source license, but it is not an Open Source development community.”

It’s quite sad that this is the case simply considering the enormous potential that OpenSolaris had back in 2005, and the opportunities for cross pollination with Linux had the licenses been compatible. Given some of killer features of the operating system, it’s quite a shame that it has not been able to rally the developer community that it deserves.

At this point, I think the only hope for OpenSolaris is GPLv3 and a truly open development process. Then for once, Linus’ kernel will have a strong contender and a raised bar on licensing grounds.

Nexenta (a project unaffiliated with Sun), and essentially a Debian distribution with an OpenSolaris kernel, has been a strong attempt at attracting developers. Debian is by far is the most developer friendly GNU/Linux distribution out there, with a mature and proven development model, and to build an OpenSolaris distribution with user land tools of Debian makes the most sense.

I’ve been a Solaris user since version 6, which I attempted to run (quite foolishly) on a 333MHz Pentium. The user experience was anything but smooth, but still ended up gaining a lot of respect for the platform. Only time can say whether the tide changes for OpenSolaris or whether it ends up relegating to the Minix boat.

Updated: 03 May – Corrections on Nexenta

Linux on Palm TX

In Playing Around on March 3, 2008 at 9:54 pm

Here are the steps to get Linux running on a Palm TX. For the approach described, you’ll need an SD card, an SD card reader and a Palm TX that you can hopefully live without. Remember, backup the handheld using a tool such as JPilot. It’s really
quite simple and you’ll thank yourself later.

For the impatient, here’s the list of steps to get you up and running:

- Mount the SD card on your Linux desktop

- Extract tx-bootbundle-20060813.tar.gz to a temporary location

- Copy linux.boot.cfg to the SD card

- Copy garux.prc to Palm/Launcher on the SD card

- Download the root image with your choice of environment

GPE – GTK+ widget toolkit/X Windows
Opie – a fork of Qtopia developed by Trolltech

The links for the root images above are for version 0.8.4-RC3 of the Familiar distribution and are somewhat dated.

- Copy the root image(s) to the SD card

- Create 32M swap file in SD card

dd if=/dev/zero of=swap.fs bs=1k count=32k
mkswap swap.fs

- Edit linux.boot.cfg and uncomment the line with the root image that you wish to boot

- Uncomment the following line

SWAP_DEV=/media/mmc1/swap.fs

- Unmount SD card, giving it ample time to flush its buffers

- Pop the card in the Palm TX

- Tap on “Garux” and you’re ready to boot Linux

Garux is a loadlin-style bootloader that unloads the Palm OS from memory and boots Linux. PalmOS will still be present in ROM so a reset of the handheld will boot the device back into PalmOS. Because of the way PalmOS works, the Linux kernel is broken up into 64k chunks and rejoined at runtime. The kernel is embedded in Garux, and so a Garux image cannot be used to boot a kernel other than the version it was compiled for. Cocoboot is a newer bootloader that can be used to boot any supported kernel. To setup Cocoboot, simply follow the additional steps:

- Copy zImage to the root of the SD card from the tx-bootbundle

- Copy cocoboot-0.4 to Palm/Launcher of the SD card

- Start the cocoboot application from the handheld and follow the steps

Next week, Linux powered toaster.

Marmot ’08

In Marmot on February 26, 2008 at 11:30 pm

So, there’s a thread on the Debian mailing lists on a mascot for the project. Someone jokingly suggested a Marmot.

Marmots typically live in burrows, and hibernate there through the winter. Most marmots are highly social, and use loud whistles to communicate with one another, especially when alarmed.

Now if that’s not a reason why the Marmot shouldn’t be the Debian mascot…

And just look at this froody Marmot. He’s the complete embodiment of all that is free and open.

And here’s yet another blissfully content Marmot, chilling out. These dudes are cool. This post deserves a whole new category. And it’s called…

wait.. for… it…

Marmot.

My vote is for the Marmot.

Follow

Get every new post delivered to your Inbox.