Monday, 28 February 2011

Build-Depends-Indep is useless

The words in the title are not mine, but only a quote from Debian Wiki.

However, if you're reading a debian/control file and wondering what Build-Depends-Indep means, starting from the assumption that it is useless may help.

Otherwise you can follow the rule to put in Build-Depends all those packages that are absolutely necessary to build architecture-dependent files, while the rest goes into Build-Depends-Indep.

Saturday, 26 February 2011

Use the Warnings, Luke

Browsing StackOverflow on perl-related topics, I have two main considerations:
1. Answers are typically very good, concise and useful
2. Questions are submitted with code that doesn't have 'warnings' enabled

I'd say that a considerable portion of the questions submitted would not be posted, or would be less generic, if authors used 'use warnings;' in their code.

Then add a pinch of the great perl critic, and possibly only half of the questions would really be submitted.

If you're using perl, or plan to use it, I strongly recommend to:
1. Always set 'use warnings;'
2. Always submit your code to perl critic (and keep a copy of Perl Best Practices handy).
3. First create the tests, then write the code. That's the only reasonable way (unless you're working on a one-liner for a quick admin task). TDD is your friend.

See more on Perl Critic here.

Tuesday, 1 February 2011

debian - cleaning up stale configuration files

As suggested in Debian Cleanup Tip #1: Get rid of useless configuration files, it's worth using grep-status to retrieve information about configuration files left behind a package removal or upgrade.

For example, on my Squeeze VM:
$ grep-status -n -sPackage -FStatus config-files
libjack-jackd2-0


You can confirm with 'dpkg -l' that's a package in 'rc' status:
$ dpkg -l | grep libjack-jackd2-0
rc libjack-jackd2-0 1.9.6~dfsg.1-2 JACK Audio Connection Kit (libraries)


You may probably want to remove definitely those configuration files; just purge the package. For example:
$ dpkg -P libjack-jackd2-0


See also about debian configuration files, an important assumption Debian takes.