The Monthly GNU Column

Brave GNU World

Georg C.F. Greve

This column looks into projects and current affairs in the world of free software from the perspective of the GNU Project and the FSF. In this issue, we focus on communication programs for mobile telephones.

Several free software projects have appeared in the past few years to provide support for mobile applications. In this month's Brave Gnu World, we look at Gnokii, MyGnokii, Gammu. Gammu+, and Wammu.

Gnokii

Gnokii [5] is certainly one of the best-known free software projects for communicating with mobile phones. It was launched in February 1999 as a merger between two projects aimed at bringing the functionality of the "Nokia Cellular Data Suite (CDS)" to other platforms .

The project involved a group of developers centered around Francois Dessart and Hugh Blemings, who had started their original development work in October 1998; Staffan Ulfberg had launched the other project, which had not actually produced any code to that date. After joining forces, the new project soon started to make noticeable progress until the latter half of 2000. Things started to slow down when Pavel Janik and Hugh Blemings - the main developers at the time - could not invest so much time in the project.

Thanks to an active community, other volunteers stepped in to continue the work; Gnokii is now quite mature, and in productive use in many cases.

Figure 1: Gnocky is the new graphical interface for Gnokii on mobile phones; it allows users to query important data.

The Gnokii project mainly consists of three applications: a Gnokii daemon that runs as a privileged background process, a command-line application, and an application with a graphical user interface. There is also a tool that automatically locates a cellphone as a modem for the dial-up connection.

Gnokii is written in C and released as free software under the GNU General Public License (GPL); the program now supports a number of different telephones, more specifically the Nokia 3810, 6110, 7110, and 6510 series. Additionally, there are a few phones by Bosch, Siemens, Motorola, and Sony-Ericsson that are compatible if AT commands are used.

The program suite supports dial-up Internet access via mobile phones and can store the internal phone book in a text file on your hard disk, or restore a safe copy of the phone book to the phone. There is also a front end for composing or reading short messages.

Gnokii's monitoring features track the signal intensity of surrounding base stations. You can also monitor the temperature by reading the thermometer embedded in the telephone battery

MyGnokii

MyGnokii[6] forked off from the Gnokii project in late 2000. The original project was going through a bad patch at the time. Marcin Wiacek became MyGnokii's main programmer, working in conjunction with Gabriele Zappi, Ralf Thelen, and others.

Some people point to forked software projects as a weakness of free software, but forking also provides advantages. History has examples of favorable forks, such as the GCC/egcs fork, which resulted in a remerger and considerable improvements to GCC's C++ capabilities.

Whenever two or more fractions grow within a project and are sufficiently motivated on the one hand, and disagree sufficiently on the other, the programmers involved may follow different development paths and end up as competitors.

In this case, Marcin Wiacek took Gnokii code from MyGnokii. However, Gnokii is licensed under GNU GPL Version 2 or a later version if so desired by the user. MyGnokii was licensed explicitly under GNU GPL Version 2, which the Gnokii team has not honored, according to Marcin.

The Minicom project, a terminal application, was also integrated into Gnokii despite a similar source code issue. It would seem that the copyright notices were lost in migration from Minicom to Gnokii.

Some people have even referred to this as a GNU GPL infringement, and the Debian project has decided to remove Gnokii from the distribution until the situation is clarified.

In fact the current scenario would indicate a copyright infringement, rather than a GPL infringement, as removing or inserting the "or any later version" clause is a copyright issue that has nothing to do with the GPL. After the shouting has died down, there is nothing to prevent people from using the software under the terms of the GNU General Public License (GPL) Version 2.

Thus, Debian could have decided to publish the software explicitly under GNU GPL V2, if it had not been for the issue with the removed copyright notice. This just goes to show the extent the Debian project goes to, to make sure that the distribution is legal.

Gammu

In April 2003, the developers decided to discontinue the MyGnokii project, as the internal design was increasingly proving to be detrimental to continued development. The developers decided to start work on a completely new development, which was dubbed Gammu just a short while later.

Like its predecessors, MyGnokii and Gnokii, Gammu[7] is mainly written in C and is published under the GPL as a free software application. In cooperation with Michal Cihar, Waldek, Joergen Thomsen, and many others, Marcin Wiacek, has put an extremely functional and flexible program together.

The application supports phones by various manufacturers and connections using a variety of cables, infrared interfaces, or Bluetooth stacks. Additionally, Gammu supports transmitting and receiving vcards, traditional short messages, and MMS.

Gammu can read and store phone directories, including associated information such as phone numbers, call groups, or voice activation IDs. Gammu uses the OBEX protocol, a binary protocol similar to HTTP and quite common on the Web, to give users read access (and in some cases write access) to images, ring tones, voice samples, Java programs, email messages, or voice boxes.

Figure 2: Some programs allow users to modify mobile phone logos.

A network monitoring module monitors the net- work quality and provides a diagnostics function for troubleshooting purposes. There is a backup tool for backing up and restoring data. The feature list is endless, and development is still very much under way. However, the newer the phone model, the more issues you can expect.

The major reason for this is the lack of support from mobile phone manufacturers, who are very reticent with information, hardware, and support of any kind. The Gnokii project has also complained of similar difficulties. This means the authors have to procure their own hardware and information in their extremely limited leisure time.

This was the major reason for Marcin Wiacek wanting to change from the GNU General Public License (GPL) to the GNU Lesser General Public License (LGPL) to allow proprietary use. His idea was to improve funding by doing so, but the other developers did not agree, and the plans were shelved.

Gammu+

Marcin decided to work on a reimplementation of Gammu in C++. He has not decided on a license for the project at this time, but he is planning a proprietary license. To be more precise, Gammu+ is free for non-commercial use at present, although it lacks the major premise for a free software ("unrestricted use for any purpose"), and is thus obviously unfree. This is a regrettable step, all the more so as nobody has been interested in proprietary use thus far, although Marcin's website quite obviously invites people to inquire about it.

Figure 3: Wammu provides easy access to mobile phone data.

Wammu

Finally, Wammu [8] is a graphical front-end for Gammu, which was written by Michal Cihar and is available as a free software application under the GPL. Based on wxPython, it provides an attractive graphical user interface for Gammu's central features, address list, todo list, calendar, image tools, sound tools, and backup features.

Packages for Suse and Debian should make Wammu accessible to most users, allowing for a quick install and giving them a head start into the world of mobile communications.

Info

[1] Send ideas, comments, and questions to Brave GNU World: column@brave-gnu-world.org

[2] GNU project homepage: http://www.gnu.org/

[3] Georg's Brave GNU World homepage: http://brave-gnu-world.org

[4] "We run GNU" initiative: http://www.gnu.org/brave-gnu-world/rungnu/rungnu.en.html

[5] Gnokii homepage: http://www.gnokii.org

[6] MyGnokii homepage: http://www.mwiacek.com/gsm/soft/mygnokii.html

[7] Gammu homepage: http://www.mwiacek.com/gsm/soft/gammu.html

[8] Wammu homepage: http://www.cihar.com/gammu/wammu/