Development
Debating icon names and ad-hoc specifications
Freedesktop.org's Icon Naming specification became a center of contention for several days in May courtesy of a heated discussion on the XDG mailing list. At issue was whether the specification should enumerate a minimum contingent of icons for system-wide use, a comprehensive list, or something in between. The debate also raised questions about how the specification is crafted and, perhaps, what it means in light of Freedesktop.org's founding principle not to legislate standards.
The Icon Naming specification is a hierarchical set of named icons meant to be provided by a desktop environment like GNOME, KDE, or Xfce. The standard named icons include common functions such as opening and closing documents, and reusable components like the desktop's help browser. The specification defines a set of eleven contexts into which icons are grouped: actions, animations, applications, categories, devices, emblems, emotes, international, MIME types, places, and status. An application can take advantage of the system by referencing the named icons rather than having to embed its own copy of each icon it needs.
A related specification, the Icon Theme specification, shows how artists can create complete implementations of the set to install alongside the system's default. The Desktop base directory specification describes where in the filesystem applications should look for the icons provided.
Seeking icon specification specifics
Like many Freedesktop.org specifications and projects, the Icon Naming specification is discussed on the XDG mailing list (the name of which reflects Freedesktop.org's original name: X Desktop Group). May's debate was prompted by a request from PulseAudio's Lennart Poettering to add four new icon names to the devices context, representing common audio hardware devices (audio-headset, audio-headphones, audio-speakers, and audio-handsfree). Rodney Dawes, maintainer of the specification, countered with a different proposal he said would better fit the specification's existing hierarchy and not introduce unnecessary icons: a new icon for headset, replacing audio-card with speaker, making headphones a secondary icon named speaker-headphones, and dropping the audio- prefix from all of the names. Poettering defended his initial request, arguing that the audio- prefix should stay, and that speakers, headsets, and headphones were distinct enough form factors that they deserved separate icon names. When several weeks passed without a reply from Dawes, Poettering announced that he was going to use his proposed icon names anyway, bypassing the specification to talk directly to the distros, and suggested that Dawes hand over maintainership to someone else — reigniting the debate.
The back-and-forth then shifted from the original topic into a discussion of how the specification is maintained and updated. Critics of Dawes accused him of rejecting all requests for new icon names, and not listening to the needs of application developers. Dawes contended that the developer community seemed unwilling to provide input into the process; because the specification is intended to represent a community consensus, accepting a single developer's request for new icons without discussion would rapidly cause it to break down under a mountain of single-purpose icons. He had asked for input from other audio developers, he said, but received none.
Jakob Petsovits suggested
that the specification did not need a formal process or maintainer at all,
and that
"if an icon is used by projects across different desktops and has a
semantically clean purpose then that pretty much makes it 'approved' on its
own.
" Marius Vollmer argued
for creating another specification describing an "extra icon set" that would be
separately maintained. Dawes then replied
that such an extension mechanism already exists in the form of addenda to
the Icon Naming specification, and expressed frustration that the community did not
know of or take part in it.
Finally, talk turned to the purpose of the specification itself, with
Dawes arguing
that it "is a base specification, designed to be the minimal list of
icons that everything else can fall back to. It is not going to have every
little icon that ever random developer thinks needs to be in the spec for
their app to have that icon. It doesn't make sense.
" Brian Tarricone
responded
that "the 'goals of the specification' (whatever the hell that means;
inanimate documents don't have goals) are irrelevant. The needs of the
community and of the people who will use the specification are
paramount
" and that "the goals of the spec don't fit what the
developers need.
"
Tarricone's position seemed to be that the specification should try and be as inclusive as possible, trusting that the developer community would not suggest conflicting, confusing, or an excessive number of icon names. Dawes repeatedly pointed out that he was not opposed to adding new icon names, but felt that the developer community needed to weigh in on the merits of suggested additions, or else the specification would not reflect the community's consensus.
Thus, in different ways, both viewpoints do want the specification to be
shaped by the community itself. They disagree on how best to implement
that goal. Several pointed out that part of the problem is that icon
themes by their nature involve both programmers and artists, two groups
with very little overlap. Even among developers, who actively participate
in the XDG list, individual change requests rarely elicit much response.
As Tarricone asked in a subsequent message, "how do you get proper
consensus for something where only one person seems to be working on a
particular problem and needs icons for it?
"
Participants in the discussion agreed that the informal mailing-list-only process was inefficient and led to proposals ending up in long-term limbo. Some suggested using wiki and bug-tracking software to manage proposed changes, but there is not yet a concrete plan for how to smooth out the process.
Standards, specifications, and open source developers
The diverging opinions about the purpose of the Icon Naming specification are limited to that specification alone, but they reveal another stumbling block — that despite producing specifications, Freedesktop.org is not a "standards body" in the traditional sense. Participation in any Freedesktop.org project is voluntary, and there is no attempt to enforce adherence to any specification it produces.
The group was founded in 2000 by Havoc Pennington (then at Red Hat) as a neutral place where projects and companies working on X-based desktop environments could meet to collaborate on common tasks. It currently provides hosting for several important Linux projects, including D-Bus, HAL, the X.Org server, and Compiz. Its other main activity, however, is producing cross-project specifications for system and application behavior. There are currently 50 specifications listed on the site's wiki, covering topics from desktop launchers to X extensions.
The Freedesktop.org mission statement
emphasizes that it is not interested in "blessing" or legislating formal
standards — a claim important enough to bear repeating on its
specifications page. The fact that it produces specifications but makes no
attempt to dictate their adoption places the group in an ambiguous
position. As Pennington commented, "Freedesktop is basically a place
people can document any consensus they may reach on interoperability. No
rough consensus and it pretty much just gets stuck.
"
That may be frustrating for the participants, but for a completely voluntary-membership organization, it is unavoidable. In contrast, the Linux Foundation's Linux Standard Base has a formal workgroup, specification process, and certification.
Ted Gould, who weighed in on the confusion over the Icon Naming
specification, summed up the Freedesktop.org distinction. "The
reality is that most 'Freedesktop Specs' aren't really anything like IEEE
Specifications or anything that typically is described using the word
'specification.' Really they all are more agreements on the way things do
work in the code on the various desktops. But, in a truly open source way,
code rules, so the only thing that really matters is who's implemented it
as a vote yeah or nay on the spec.
" As the Icon Naming specification
discussion recently showed, that process may not always be smooth.
System Applications
Clusters and Grids
rsplib 2.6.4 released
Version 2.6.4 of rsplib has been announced. "RSPLIB is the Open Source implementation (GPLv3) of the IETF's new framework for Reliable Server Pooling (RSerPool), which is described in RFC 5351 to RFC 5356. If you a looking for a Grid comput[at]ion solution which is simple, easy to setup and mostly self-configuring, you are probably looking for RSerPool!"
Database Software
cx_Oracle 5.0.2 released
Version 5.0.2 of cx_Oracle has been announced, it includes a number of bug fixes. "cx_Oracle is a Python extension module that allows access to Oracle and conforms to the Python database API 2.0 specifications with a few exceptions."
MySQL 6.0.11 Alpha released
Version 6.0.11 Alpha of MySQL has been announced. "6.0.11 will be the last release of 6.0. After this we will be transitioning into a New Release Model for the MySQL Server".
PostgreSQL 8.4 Beta 2 released
Version 8.4 Beta 2 of PostgreSQL has been announced. "This beta release fixes a number of issues with the first 8.4 beta, especially issues with pg_standby, PL/pgSQL and encoding and collation handling. We need all users to test 8.4 Beta 2 as soon as possible in order to speed the final release of the new version."
PostgreSQL Weekly News
The May 24, 2009 edition of the PostgreSQL Weekly News is online with the latest PostgreSQL DBMS articles and resources.SQLite release 3.6.14.2 announced
Version 3.6.14.2 of the SQLite DBMS has been announced. "Changes associated with this release include the following: * Fix a code generator bug introduced in version 3.6.14. This bug can cause incorrect query results under obscure circumstances. Ticket #3879."
Device Drivers
LIRC 0.8.5 released
Version 0.8.5 of LIRC, the Linux Infrared Remote Control driver, has been announced. From the ChangeLog file: "ANNOUNCE, NEWS, configure.ac, doc/html-source/index.html, setup.sh: 0.8.5 release"
Printing
CUPS 1.4b3 released
Version 1.4b3 of CUPS, the Common Unix Printing System, has been announced. "The third beta release of CUPS 1.4 includes many bug fixes, updated localizations for many languages, new logging features, and greatly improved Kerberos support."
Desktop Applications
Desktop Environments
GNOME 2.26.2 released
Stable version 2.26.2 of the GNOME desktop environment has been announced. "This is the second update to GNOME 2.26. It contains many fixes for important bugs that directly affect our users, documentation updates and also a large number of updated translations. Many thanks to all the contributors who worked hard on delivering those changes in time. We hope it will help people feel better in their daily use of computers!"
GNOME Software Announcements
The following new GNOME software has been announced this week:- Accerciser 1.7.2 (bug fixes and GtkBuilder migration)
- Brasero 2.27.2 (bug fixes, code cleanup and translation work)
- Cheese 2.27.2 (bug fixes, documentation and translation work)
- Deskbar-Applet 2.27.2 (bug fixes and translation work)
- Empathy 2.27.2 (bug fixes and translation work)
- Eye of GNOME 2.27.2 (new features, bug fixes and translation work)
- GCalctool 5.27.2 (new features, bug fixes and translation work)
- gnome-applets 2.27.2 (bug fixes, documentation and translation work)
- gnome-games 2.27.2 (new features, bug fixes and translation work)
- GOK 2.27.2 (bug fixes and translation work)
- krb5-auth-dialog 0.10 (new features, bug fixes and translation work)
- libgdata 0.3.0 (new features, bug fixes and translation work)
- libgnomekbd 2.27.2 (new features and translation work)
- Mistelix 0.2 (new features and code cleanup)
- mousetweaks 2.27.2 (bug fixes, documentation and translation work)
- Orca v2.27.2 (bug fixes and translation work)
- PyGobject 2.18.0 (new features, bug fixes and documentation work)
- PyGTK 2.15.1 (new features and bug fixes)
- seahorse 2.26.2 (translation work)
- seahorse-plugins 2.26.2 (bug fixes and translation work)
- Tomboy 0.15.1 (new features, bug fixes, documentation and translation work)
- Vala 0.7.3 (new features and bug fixes)
KDE Software Announcements
The following new KDE software has been announced this week:- Choqok 0.6 (new features, bug fixes and translation work)
- Frescobaldi 0.7.9 (bug fixes and code cleanup)
- GradeL 0.11.1 (bug fixes)
- K3b 1.66.0alpha2 (bug fixes)
- KBackup 0.6 (new features and bug fixes)
- Konversation 1.2-alpha2 (first stable KDE4 release)
- kopcat 0.2.2 (bug fixes)
- KRunner Kopete Contacts 0.2 (new features)
- Linux Unified Kernel 0.2.4 (new features and bug fixes)
- rekonq 0.1 (bug fixes)
- Social Networks Visualiser 0.6.0 (new features and bug fixes)
Xorg Software Announcements
The following new Xorg software has been announced this week:- glproto 1.4.10 (build improvements and license change)
- pixman 0.15.6 (bug fixes and refactoring)
- xf86-input-synaptics 1.1.1 (bug fixes and documentation work)
Electronics
GNU Radio Release 3.2 available
Version 3.2 of the GNU Software Radio toolkit, a control package for the GNU Radio software defined radio platform, has been announced. "Release 3.2 is the beginning of the new stable branch series 3.2.x. Users who develop their GNU Radio applications to the 3.2 C++ and Python APIs will not need to change their source code to work with any of the releases along this line, though recompilation of C++ code may be needed." The release notes don't mention any changes.
Interoperability
Wine 1.1.22 announced
Version 1.1.22 of Wine has been announced. Changes include: "- More improvements to OLE copy/paste. - Beginnings of x86_64 exception handling. - Direct3D locking fixes. - ARB shaders improvements. - Better OpenGL pixel format support. - Various bug fixes."
Mail Clients
SquirrelMail 1.4.19 released
Version 1.4.19 of SquirrelMail has been announced. "The security fix to map_yp_alias in 1.4.18 turned out to be incomplete. We also exp[eri]enced some regressions in the updated filter plugin. Both are addressed in this new release 1.4.19 which contains a few other small fixes as well. If you do not use map_yp_alias or the filters plugin there's no urgent need to upgrade now if you already installed 1.4.18."
Music Applications
guitarix 0.04.4-1 released
Version 0.04.4-1 of guitarix has been announced. "guitarix is a simple Linux Rock Guitar amplifier for jack(Jack Audio Connektion Kit) with one input and two outputs. Designed to get nice thrash/metal/rock/blues guitar sounds. . . . Some new effect's in the amp section with new controllers, overworked tuner, overworked midi output (still it is experimental but can be useful for rhythm blues or jazz or. . . fun)"
Video Applications
PiTiVi 0.13.1 announced
Version 0.13.1 of PiTiVi, a video editor based on the GStreamer multimedia framework, has been announced. "The PiTiVi team is proud to announce the first release in the unstable 0.13 PiTiVi series. This is the result of the past 6 months of intensive hacking. Over 700 commits of goodness awaits you."
Languages and Tools
C
GCC 4.4.1 Status Report
The May 21, 2009 edition of the GCC 4.4.1 Status Report has been published. "The 4.4 branch is open under the usual release branch rules, a 4.4.1 release planned around June 21st. The branch seems to be in good shape and new bugs still get fixed quickly. There are a few bugs that I would block the 4.4.1 release for, including the reported ICE building SPEC on i?86. All seem to have patches though."
Caml
Caml Weekly News
The May 26, 2009 edition of the Caml Weekly News is out with new articles about the Caml language.
Haskell
Haskell Communities and Activities Report
The May, 2009 edition of the semi-annual Haskell Communities and Activities Report has been published. "This is the 16th edition of the Haskell Communities and Activities Report. There are a number of completely new entries and many small updates. As usual, fresh entries are formatted using a blue background, while updated entries have a header with a blue background. Entries on which no activity has been reported for a year or longer have been dropped. Please do revive them next time if you have news on them."
Perl
Parrot 1.2.0 released
Version 1.2.0 of Parrot has been announced, it includes bug fixes, code cleanup, documentation work and more. "Parrot is a virtual machine aimed at running all dynamic languages."
Python
Jython 2.5.0 Release Candidate 3 is out
Release Candidate 3 of Jython 2.5.0, an implementation of Python in Java, has been released. "This is the third release candidate of the 2.5 version of Jython. It partially fixes JLine on Cygwin and fixes some threading issues. Almost every release in the past year has been followed shortly by another release to fix a windows bug. Today I finally got off of my butt and installed Windows on a VM and spent the day testing, so hopefully this one will not follow that pattern."
Python-URL! - weekly Python news and links
The May 22, 2009 edition of the Python-URL! is online with a new collection of Python article links.
Debuggers
CodeInvestigator 0.12.0 released
Version 0.12.0 of CodeInvestigator is out with one new feature and bug fixes. "CodeInvestigator is a tracing tool for Python programs. Running a program through CodeInvestigator creates a recording. Program flow, function calls, variable values and conditions are all stored for every line the program executes. The recording is then viewed with an interface consisting of the code. The code can be clicked: A clicked variable displays its value, a clicked loop displays its iterations."
Editors
Emacs 23.0.94 pretest released
Version 23.0.94 of the Emacs editor has been announced. "Pretesters: please send an email to me reporting success or failure on your build platform. In addition, please report bugs via M-x report-emacs-bugs, or send an email to emacs-pretest-bug@gnu.org."
IDEs
Pydev 1.4.6 released
Version 1.4.6 of Pydev, an Eclipse plugin for Python, has been announced. Changes include: "* Auto-import for from __future__ import with_statement will add a 'with' token instead of a with_statement token * Globals browser improved (only for Eclipse 3.3 onwards, older versions will have the old interface): o Can filter with working sets o Can match based on module names. E.g.: django.A would match all the django classes/methods/attributes starting with 'A'"
Version Control
bzr 1.15 final released
Version 1.15 final of the bzr version control system has been announced. "The smart server will no longer raise 'NoSuchRevision' when streaming content with a size mismatch in a reconstructed graph search. New command ``bzr dpush``. Plugins can now define their own annotation tie- breaker when two revisions introduce the exact same line."
Page editor: Forrest Cook
Next page:
Linux in the news>>