Free Software and its Makers

Projects on the Move

Martin Loschwitz

Free software covers such a diverse range of utilities, applications, and other assorted projects that it can be hard to find the perfect tool. We pick the best of the bunch. This month’s column covers file management with Xfe, IRC, the Sync2cd backup tool, and email printing with Muttprint.

By the time this issue hits the newsstands, the election of the new Debian Project Leader will already have happened. Debian developers are again deciding who will be hold the reins of the Debian Project. When this issue went to press, there weren’t even rumors about the candidates. But one thing was for sure, Martin Michlmayr, who had held the office for two years, was not running. The reason Martin gave for this decision was that he needed more time for other things.

Debian Project Secretary, Manoj Srivastava, will be posting the latest updates on the election regularly in the Debian-devel-announce [1] mailing list. The nomination phase is just the start of an election process that takes about three months to complete.

X File Explorer

Admittedly, there is no lack of graphical file managers for Linux, although the selection is more restricted for users who need more than simple copying, deletion, or file moving. And if you do not have either KDE or Gnome, you can cross the Konqueror or Nautilus file managers off your list.

The X File Explorer (Xfe) [2] makes efficient use of resources and stiill gives users a useful feature set. It works independently of the desktop environment using the frugal Fox graphics library. Color schemes allow users to modify Xfe’s appearance to resemble Gnome, KDE, or their preferred GUI.

Xfe is based on the X Win Commander, which is no longer under active development, and emulates the Windows Explorer interface (see Figure 1). The way child windows and buttons are organized resembles the Windows counterpart. A context menu gives users features for running applications on selected files. For example, on RPM-based distributions, users can point and click in Xfe to install. The file manager also integrates an image viewer, text editors, and archival tools, and it supports keyboard shortcuts.

New IRC Major Release

Internet Relay Chat (IRC) is one of the most popular Internet services. Numerous IRC networks give users the ability to communicate quickly and easily. Many of them use modified variants of the original IRC server. The most popular examples are Hybrid [3] by Efnet and Ircu [4] by Undernet. The original IRC is still based on the program code by Jarkko Oikarinen, which dates back to the years 1988 through 1991 and which is still used by Ircnet. For the first time since 1998, a new major release of the original IRC server program, simply named IRC 2.11, has now become available.

The main reason for many networks opting for alternative IRC server programs is the fact that the original lacks feature-richness. For example, the Unrealircd variant automatically gives some users operator privileges for any channel. Most server programs also provide Chanserv and Nickserv services, that is, channel and nickname (IRC user name) management. However, the new IRC doesn’t aim to blindly follow the herd. Instead of introducing new features that make life easier for chat users, the aim was to facilitate the administrative side of IRC. The new version improves netsplit (disruption-based IRC network breakup) handling, allowing servers that are separated to carry on working as normal and accept new users. This means that users with the same nickname can co-exist when the servers finally join forces again after the split.

Figure 1: Quick, lean and feature-rich – Xfe manages files independently of your desktop environment and integrates third-party tools.

No Kick Out

IRC 2.10 adopted a hardline approach in this scenario: users with identical nicknames were kicked off the server and had to re-connect. Additionally, the nickname was blocked for a while. This gave attackers who wanted to grab control over a channel, or simply disrupt service, an attack vector. Attackers could use existing nicknames to log multiple clients on to a server that had split from the main IRC network. When the split server rejoined the network, the original users of these nicknames would be kicked off the server. A skilled attacker could thus clear out a whole channel. To prevent this from happening, IRC 2.11 [5] uses a new approach. The IRC server assigns a unique ID to each client that logs in. The unique ID is a four-digit number that identifies the server and also includes a random string. If two users with the same nickname exist after a netsplit, IRC 2.11 no longer kicks these users off the server but simply changes the nicknames for both clients to their respective unique IDs.

The unique ID also helps to oust destructive users out of channels. As the unique ID identifies the IRC server, operators can simply use the unique ID to identify the user who appears to be the source of the attack. Version 2.11 now also supports CIDR notation for more precise addressing of network subsections, allowing operators more granular control over exclusion criteria. Earlier versions supported IP address or subnet-based exclusion, which proved ineffective as IP addresses are exchangeable, and excluding a whole subnet typically hits a large number of innocent bystanders.

Administrators and users of the original IRC will still have to do without features such as Chanserv and Nickserv, but unique IDs should go a long way to ensuring disruption-free communication. Of course, it may take a while for the Ircnet to migrate to IRC 2.11, and the new features will not be fully available until that happens.

Creating Backups with Sync2cd

As professional users are well aware, regular backups are imperative, but amateur administrators and home users often lack the funds to invest in commercial software or expensive backup hardware. Of course, this does not mean they do not care about their data. A Python program called Sync2cd [6] (Figure 2) by Remy Blank creates right-sized backups that easily fit on re-writable CDs or DVDs.

Users modify the configuration file to specify the directories and files to back up, as well as the size of the backup medium. Sync2cd packs the files, starting with the oldest and moving towards the newest files until the backup reaches the pre-configured media size. If required, the tool will output the file to stdout, allowing users to redirect the output to mkisofs, create a CD image, and then pipe the results to cdrecord to automagically create backup CDs.

Flexible Backups

Sync2cd uses a logfile to keep track of the backups it has created, and the logfile opens up the option of incremental backups. Sync2cd reads MD5 or SHA1 checksums to ascertain which files have changed since the last backup. It takes Sync2cd a while to set up the list when first launched, but subsequent backups are a lot quicker. The tool keeps a list of the files it has stored on the backup medium, allowing users to check the contents of the medium as required.

Neat Printing with Mutt

The text-based Mutt email client [7] is popular with users who require quick access to messages without needing to launch a GUI. Power users often prefer a clear cut overview and speed to colorful graphics. However, mail hardcopies created by Mutt are anything but a pretty sight; they typically include the full set of headers and fail to separate the body text from the headers. Also, the font is reminiscent of the bygone days of dot matrix printers.

Bernhard Walle did not want to do without Mutt, but he did want clearer and more eye-catching hardcopy. This is what prompted Bernhard to develop a Perl script called Muttprint [8]. Muttprint acts as a wrapper that Mutt calls when printing. Muttprint accepts the printout data, processes that data, and sends the results to the printer. After installing the program, it is business as usual for the users, as the [P] key will send a Mutt message to the printer, but the results are far more pleasing.

Figure 2: Sync2cd creates flexible backups based on information in a well-documented configuration file.

Muttprint is based on the Tex program and consequently uses the eleven basic fonts that Tex supports. Users can select the font size and specify which headers to print. The headers can also be placed in a box to separate them from the body text. And Muttprint has a feature that places longer messages on a single page to give you the whole message at a glance. You can even insert a graphical letterhead at the start of each page of printout.

Figure 3: The controversial Hot-Babe utility reveals more than just system activity.

Muttprint also supports other text-based email clients, such as Gnus [9], for example. The Muttprint distribution has a configuration guide for Gnus; generally speaking, mail users just have to get used to sending output to Muttprint rather than sending their output directly to the printer. Unfortunately, the Muttprint project is orphaned at present, and development has come to a standstill.

Flame Wars

The Debian developer mailing lists are often the scene of heated discussions, but a storm that blew up recently went well beyond the norm. The bone of contention in this case was a 500KB program called Hot-Babe (Figure 3). Hot-Babe gives users a graphical display of the system load, but instead of the normal bars and figures, Hot-Babe displays a drawing of a woman who strips to reflect increasing system load.

The topic hit the Debian mailing list when Thibaut Varene announced that he intended to create a Debian package and add the program to the official Debian tree. Only minutes later, a whole bunch of developers complained about the pornographic content of the Hot-Babe tool. The members of Debian-Women [10] objected to Hot-Babe, and it soon emerged that laws banning pornography in many countries would prevent Debian from being distributed in those countries.

Other developers are in favor of adding Hot-Babe to Debian, not because of the program in its own right. They refer to censorship and content controls and argue in favor of freedom of speech. As a compromise, Paul Hampson suggested reinstating what was previously known as the Non-US Debian branch for cases like this. This was the branch that previously had encryption programs banned from being imported to the USA. Paul Hampson’s suggestion was to use this branch for any programs that are banned in some countries.

Personnel Decisions

Anyone wanting to join the Debian project first has to complete the new maintainer process and then wait for the Debian account manager to assign a user account for the Debian machines. This last step has given rise to lengthy discussions in the past. James Troup is the only active account manager, and James often lacks the time to assign accounts. Candidates often have to wait for months, and some of them give up along the way. Over 70 potential Debian developers were waiting for accounts in December last year, for example. This prompted Joerg Jaspert, who was actively involved in the new maintainer system for a long while, to offer his assistance. Joerg Jaspert offered to assume the time-consuming task of reading the reports concerning the individual candidates and deciding which candidates should be given access to the Debian systems. Within the new maintainer process, reports are generated as the result of cooperation between the candidate and his or her sponsor. They give readers a comprehensive vita for the candidate and form the basis for decision taking.

New Cooperation

James Troup was hesitant to accept at first and insisted on a test phase. This led to Joerg Jaspert taking on the work without administrative privileges on the Debian systems at first; James Troup will still be handling the technical side of setting up new accounts. If and when Joerg Jaspert has full access some time in the future, he hopes to be able to speed up the acceptance of new Debian maintainers and thus give useful service to the whole project.

That’s all folksÖ

Ö for this month at least, but I do have one request before I go: if you can recommend a program that you would like to see featured in Projects on the Move, why not mail me with your suggestion [11]. I look forward to your comments!

INFO

[1] Debian developer mailing list: http://lists.debian.org/debian-devel-announce/

[2] X File Explorer: http://roland65.free.fr/xfe/

[3] Hybrid: http://www.ircd-hybrid.org

[4] Ircu: http://coder-com.undernet.org

[5] IRC 2.11: ftp://ftp.irc.org/irc/server/irc2.11.0.tgz

[6] Sync2cd: http://www.calins.ch/software/sync2cd.html

[7] Mutt: http://www.mutt.org

[8] Muttprint: http://muttprint.sf.net

[9] Gnus: http://www.gnus.org

[10] Debian-Women: http://women.alioth.debian.org

[11] Tips and suggestions: projects@linux-magazine.com