An up-to-date look at free software and its makers

Projects on the Move


The /etc/ directory contains thousands of files, and it is easy to lose an office document in its murky depths. Managing directories files via FTP can be time consuming. We'll investigate utilities that help you keep track of your files. Also in this issue: Trouble at Debian and Future Fears, starring Dunc Tank, Anthony Towns, and Matthew Garret.

By Peter Kreußel and Martin Loschwitz

Everything is a file is an old Unix adage, and as a logical consequence, many thousands of files populate today's systems, making it difficult to find the files you need. If you are looking for an office document or an image file, the Beagle [1] desktop search engine is an excellent choice, as it understands various document formats and can evaluate Exif information.

Beagle also combines the advantages of the locate and find tools. Just like locate, Beagle does not parse the filesystem to retrieve search information in realtime, but - in an approach that speeds up the search - relies on a database instead. In contrast to locate, Beagle does not update the database once a day, or once an hour. Instead, the Inotify interface with Linux kernel 2.6.13 or newer lets the desktop search engine know when the content of one of the directories it monitors changes. Thus, the Beagle database is always up to date. Additionally, Beaglre removes the need to run cronjobs to search the filesystem, in a resource hogging process. The search machine, which is written in Mono, uses a Gtk-based front-end. However, KDE users can go in for Kerry Beagle, a QT-based alternative [2].

If you need to search for one of the myriad of text files used to configure a Linux system, SearchMonkey [3] may be just the tool you need. The search tool combines the functionality of find and grep in an attractive GUI-based interface. It searches for filenames, and in the file content at the same time. SearchMonkey can restrict the search to files of a specific size or with a specific last changed date. The practical tool will highlight matches in the files on the results list in an internal viewer window. If you are unfamiliar with regular expressions, you might also appreciate the Expression Wizard, which gives users the ability to interactively create search expressions. Regular expressions you have used previously are stored in the history list. SearchMonkey supports case-sensitive or non-case-sensitive searching.

Figure 1: Beagle take two: Gtk and QT based front-ends are available for the fast desktop search engine.

Figure 2: SearchMonkey gives point & click fans the functionality of grep and find in a convenient GUI.

Simple Versioning

If you keep things tidy in the first place, you may not need to search. A version control system can help you keep track of different versions of files in an archive. At the same time, the tool coordinates team access to files in collaborative projects. Although the basic principles of version control are easy to understand, inexperienced users often make mistakes, especially if asked to use CVS. By the time a mistake is noticed, it is usually too late, and the required version of the file has been deleted. The Simple Version Control System (ASCVS) [4], which is written in PHP, replaces the command line with a convenient web front-end (Figure 3), facilitating the first steps for version control newcomers. The simple system does not separate working and repository copies. Users can work on files in a central repository via FTP or SSH. After uploading a file, you need to tell the version control system that a new version of the file exists. Alternatively, a cronjob that calls path/to/ASCVS_installation/cli/cronupdateallfiles.php can check the whole repository for changes.

Figure 3: Lightweigt version control: ASCVS provide simple version control on any PHP-capable web server.

The simple architecture of the Simple Version Control System is not suitable for largescale projects with many users. The delay between uploading and committing the new version in the web front-end means that competitive uploads would overwrite each other. A typical application for the minimal, PHP-based solution might be website maintenance by a small team. The installation is straightforward: copy the PHP files, set up an empty database, modify the database server configuration in db.php, and call install.php in your browser to set up the version control system.

Team members can work on files that reside on the server in the normal way. Using an auto-commit function removes the need for team members to interact with the version control system. The required environment for ASCVS (PHP, MySQL, or Postgres) is typically supported in any shared hosting environment even without root access. This means that users of servers without root access can install ASCVS, and benefit from version control without installing any additional software.

Direct Access

FTP is typically the only approach to file management for sites hosted on shared hosts. It can take far too long to move subdirectories containing large numbers of files. PHP gives you the ability to manipulate files directly on the server without taking a detour via the antiquated FTP protocol. BytesFall Explorer [5] uses direct write access to delete, move, or rename files. BytesFall Explorer [5] is a web-based application programmed in PHP. Using the PHP filesystem functions, it gives you direct access to the server's filesystem.

The web application emulates the Windows Explorer (Figure 4). The delays that occur in an FTP client on loading a directory with a large number of files, are no longer an issue. The BytesFall Explorer gives you memory usage information for the server disk, and provides a convenient search function. The application can store login credentials in a MySQL or Postgress database. And it removes the management effort involved in setting up FTP accounts in the typically non-intuitive interfaces provided by most hosters.

Figure 4: No bottlenecks: the PHP-based BytesFall Explorer runs on the server, thus avoiding a detour via the slow FTP protocol.

The installation effort is minimal. Apart from copying the PHP scripts to the server, you just need to initialize the database with the SQL files included with the distribution and set up the database path and login information. Although the BytesFall Explorer can't replace a powerful editor with syntax highlighting, the internal editor is fine for simple text file manipulation, removing the need to download, edit, and upload the changes. If you click an image file, the file manager will show you a preview.

Trouble at Debian

There's trouble at Debian, yet again - this time, the Debian Project Leader Anthony Towns's position is being questioned. This dramatic development was provoked by the Dunc Tank Project (Development Under Numismatic Control), which Towns has been pushing. The aim of the project [6] is to ensure a punctual release of Debian 4.0, and Dunc Tank is collecting donations to pay salaries to Release Managers Steve Langasek, and Andreas Barth in October and November, giving them the freedom to concentrate on Etch. The problem with the approach that Towns suggests is that Debian has always understood itself as a volunteer project (Figure 5).

Towns Recall?

When Towns proposed paying the release managers on the developer mailing list, many developers expressed their concern. A short time later, the whole thing was outsourced into the external Dunc project, and that seemed to be the end of things. Dunc Tank is not officially part of Debian, and thus independent.

What Towns didn't expect was massive objections from some project members. His opponents accused him of trying to push the dubious project in through the back door. Package maintainer Denis Barbier proposed recalling Towns by developer vote [7].

Towns's supporters quickly formed an opposing camp, but could not agree on a common suggestion - instead there are two proposals. One supports Towns, and views the Dunc initiative in a positive light. The other confirms Towns as leader, but distances itself from the Dunc project. The results were not available when this issue of Linux Magazine went to press, however, the Debian vote page at [8] should have the results soon.

Departures

The fact that several committed developers have left Debian in the past few months is becoming increasingly apparent. Matthew Garrett, who campaigned as the Project Leader as recently as 2005 is just one prominent example. Garrett complained of Debian being disoriented, and quoted endless discussions on the same old topics as the reasons for his departure.

Many of these discussion must seem absurd to external observers; not many people will understand why Debian has started to remove Debian much of the documentation published under the GFDL, and thus much of the existing documentation.

The closer the Etch release gets, the larger a permanent bone of contention looms: should Etch be released with kernel drivers for which the sources are not available? Two votes will settle this issue. The proponents are afraid that users will react badly if a Debian install fails due to missing drivers based on binary firmware.

Future Fears

Garrett announced his objections publicly; others have just quietly moved to Ubuntu or other projects. And it is no surprise that Ubuntu has become the most popular Debian derivative. Ubuntu's recipe for success is simple: just take the well-organized Debian code base and hand it to a developer group with a clear hierarchical structure.

Many viewers are convinced that if Debian fails to release Etch, and its successor in the near future, while maintaining quality standards, and providing documentation and kernel firmware, the problems may just disappear in a puff of smoke, taking the project down with them.

INFO
[1] Beagle desktop search engine: http://beagle-project.org/Main_Page
[2] QT front-end for Beagle: http://en.opensuse.org/Kerry
[3] SearchMonkey (GUI-based search tool): http://searchmonkey.sourceforge.net/index.php/Main_Page
[4] ASCVS (simple, PHP-based version control system): http://asvcs.com/
[5] BytesFall Explorer (web-based file manager): http://bfexplorer.sourceforge.net/
[6] Dunc Tank Project: http://www.dunc-tank.org/about.html
[7] Denis Barbier's proposal: http://lists.debian.org/debian-vote/2006/09/msg00267.html
[8] Debian vote page: http://vote.debian.org