Interview with the GNU Directory's Janet Casey
Q: Please give us an overview of the purpose, history, and mechanics of the FSF/UNESCO Free Software Directory site.
The scope of the Directory has broadened considerably over its lifetime: when Richard Stallman and I designed the original template for an entry, it had 30 possible fields; the current template has 47. The additional fields reflect changes in free software in general; for example, adding irc-help and irc-devel fields, and a bug-database field for packages that use (for example) bugzilla, reflects the general movement towards real-time interaction. Packages using Qt or written in PHP4, originally excluded due to licensing issues, are now included. We now list packages written in Java or Perl, which we did not when the Directory began.
I'm the only FSF employee working full-time on content for the Directory. I'm not a techie, so our sysadmins, Paul Fisher and Jim Blair, handle all the technical demands for the Directory (for the entire FSF, in fact). Bradley Kuhn, our Executive Director, did the Perl coding for some of the backend software.
Developers can submit packages and update packages already listed through the Web interface at the online entry submission form. I will still vet all information (to make sure it conforms to our specs) and license check all entries. We will consider any package that is under a license we consider acceptably free (see the Various Licenses and Comments about Them document), that runs on a free OS, that does not depend on non-free software, and that is reasonably stable.
Q: What kind of hardware does the site run on?
Q: What functions do you carry out for this site?
I decide which packages go into the Directory, license check them, write up entries, and update existing entries so the Directory is as accurate as possible. In the beginning I never had to chase down dead links, but now the Directory has been around long enough that packages disappear, and I have to find them. I also answer user email, both what comes to me personally and what comes in through our trouble ticket system (we use RequestTracker).
The single most important of these tasks is license-checking; it's what sets the FSD apart from other free software directories. I open each package and check the license of each source code file. Almost 90% of the packages in the Directory are under the GPL or LGPL, but we will include any package under a license we consider acceptably free (see http://www.gnu.org/licenses/license-list.html), that runs on a free OS, and that does not depend on non-free software.
I also have to keep long terms development in mind, such as deciding when our classification system needs updating to accurately represent the growing width and depth of the Directory. We're always looking to expand the Directory's exposure; our partnership with UNESCO is an example of this. I've just started talking with the Wayback machine people about archiving not just the current version of the Directory but all the versions of source code that we have listed in the past.
Q: Could you explain the connection between the Free Software Directory and Source Forge? Does the FSF site just link to Source Forge project pages, or is there a higher level of communication between the sites?
Q: As one of the people in charge of The Free Software Directory, have you observed any software categories that have been particularly busy lately? Are there any other trends in the open-source software world that you have noticed?
Classpath (see also classpathx, cp-tools, and mauve), the free version of the Java Swing GUI, is being consistently improved. I've had to exclude many Java packages from the Directory because Swing is non-free.
A really exciting and creative area is free software for video artists. There are packages available for real-time processing/manipulation (FreeJ, MoB, EffecTV, PiDiP, veejay), editing (LiVes), and a set of general tools and libraries (piksel).
The authors of these packages, originally developers, have moved into the artistic arena through their software. This isn't surprising; the ideals of freedom that underlie free software are the same as those that drive artistic creation. The ability to create (or hire someone to create) tools to create exactly the effect you want, without having to depend on the development whims of a software corporation, will attract video and multimedia artists, people who might not otherwise choose free software as their platform.
In general, the development of the Directory has mirrored the trends in free software. In the early days of the Directory, standard software had a command-line interface and was written in C; GUIs were just coming into vogue. Now, almost all packages have some kind of GUI interface, whether native or a front-end. In the past couple of years the Web interface has come to the fore. This reflects an increase in live/interactive communications in general, as we see in the growth of blogs and forums for both personal expression and technical support.
C remains the predominant language, but scripting languages have really taken off. I rarely saw Apache/MySQL/PHP programs in the first couple of years I worked on the Directory. In the last two to three years, however, that combination has become standard for Web applications.
There's an interesting licensing issue here also. When the Directory started, I regularly found licenses, named after the company that wrote them, that were simply minor variations of standards licenses like the GPL. I felt that these companies were trying to "brand" their license to make people believe that it was something unique, perhaps to attract the investment money that was still floating around then. I rarely see such licenses today; companies are returning to the GPL because it is a generally accepted standard that has stood the test of time.
Q: What direction do you see the site going in? Is it expanding or stable, and are there any big changes coming?
The number of packages will increase steadily, but we always need volunteers to write up packages. I license check each package before it goes into the Directory, so writing them up is more time consuming than it might seem at first.
I'd like to tweak the Directory's home page. Right now it has a listing of "most recently updated" packages; I'd like to break that into "updated" and "new" packages, and add a sidebar that regularly features a different group of software: i.e. software for video streaming, software from one research facility, even fun stuff like a list of software by French developers for the week of Bastille Day. The Directory has more than 3,400 packages; I want to use the front page to tell users about *all* of them, not just the well-known ones.
We will, however, keep the interface as simple as possible. Many people still have slow or expensive connections; we don't want to make free software less accessible by making it slow or expensive to download.
Q: In a recent LWN editorial, we pointed out some difficulties in finding current change information on new project releases. Has there been any progress in improving the access to this information?
The editorial also revived an ongoing internal discussion about how to mine the deeper levels of data (possibly down to the file level) that are collected in the Directory. We've got a huge amount of data, and I know that, properly presented, it would be of great value to our users.
It's no secret, however, that documentation is not always the most important priority for free software developers. I urge developers to keep changelogs up to date. It would also be useful if a package's home page listed the changes for the most recent version, if not the changelog itself.
Q: Would you like to fill our readers in on any other issues regarding the Free Software Directory?
I know a lot of great software was written because a developer couldn't find a package with certain features. That's great, and if in the end you decide you want to write something from scratch, go ahead. All I suggest is that you first take an unbiased look at the package you're planning to write. If only a few features differentiate it from what's already out there, consider contributing those features to a package that already exists.
Last, please pay attention to proper licensing. Put a license header with copyright date, name of copyright holder, and a statement telling what license the package is listed under in each source code file. The full text of a short license, such as the X11 license, can go right in the header. With the GPL or LGPL, please include a full copy of the license in the distribution. Since the "How To Enforce These Terms and Conditions" text is legally considered part of the GPL and LGPL, please be sure that it's in the copy of the license that you include in your software.
The more popular and economically viable free software becomes, the more it will come under attack. A trail of legal bread crumbs, in the form of a clear statement that the software you've written is free, is the best way to ensure that it remains free.
LWN: Thank you for your time.