Development
Mutter: a window manager for GNOME 3
GNOME 3 is the GNOME project's ambitious effort to take its desktop into the future. A key component of the desktop is the window manager, which defines much of the overall feel of the system. Thomas Thurman, the maintainer of Metacity—GNOME's current window manager—is looking ahead to "Mutter" as the window manager for GNOME 3. Metacity 2 will gradually be phased out in favor of Mutter; in GNOME 2.28 it will be an alternative window manager, while in GNOME 3, it will take over the reins from Metacity.
The GNOME Shell, responsible for the new user experience in GNOME 3, runs as a plugin for Mutter. Started as a fork of Metacity, Mutter uses the Clutter toolkit. Clutter does its rendering using OpenGL or OpenGL ES, so using it in Mutter makes hardware acceleration for the window manager possible. Meanwhile, Clutter has just announced its 1.0 release.
500 bugs to squash
With Mutter becoming the new kid in town for GNOME 3, Metacity 2 will not
be actively developed any more, except for bug fixes. This makes Mutter
essentially Metacity 3. Of course people who would like Metacity 2 to
continue because they don't like the Clutter backend may fork it, but it
remains to be seen if that would happen. On his blog, Thurman welcomes anybody
to do that and offers them "as much support in doing so as
possible
", but he will switch to working on Mutter himself. Besides
all the work that has been done over the years on Metacity, Mutter has 12
contributors with at least three commits. The project is maintained by Owen
Taylor and Tomas Frydrych.
This fork, however, has one big problem: what to do with the more
than five hundred bugs open against Metacity? As Thurman describes
on his blog, "this is more than one maintainer can humanly
tackle.
" The simplest "solution" is to close them all, a mistake
that GNOME has made in the past with the switch from GNOME 1.4 to GNOME
2. Jamie Zawinski called this the cascade of attention-deficit
teenagers model.
Thurman proposes a better solution: work through all the bug reports, then decide what to do with each bug. Enhancement requests will not be fixed, unless Mutter or GNOME Shell could use it. Bugs that can be reproduced in Mutter should be reassigned. Bugs that are already fixed in Mutter, such as enhancement requests, should be marked as already fixed. Thurman kindly asks his readers to help him with this painstaking work, for which no volunteers seem to have stepped up yet.
New directions for a window manager
The development of GNOME 3 seems to be bringing new ideas from many different directions. Thurman has been doing some investigation into switching to a CSS-based format for Metacity themes; as Mutter is just the new incarnation of Metacity, many of these considerations directly carry over into Mutter:
Thurman is proposing a switch to CSS, or at least the use of CSS as an alternative format. He sees several advantages of this approach:
- The Metacity/Mutter developers will be able to use existing libraries for layout rather than doing it all with custom code in the window manager.
- Theme designers will be able to use their existing knowledge of CSS rather than having to learn a complicated new format.
- CSS's box model is far more amenable to a simple drag-and-drop editor program than Metacity's current expression-based system.
Thurman is also imagining a theme designer, with a simple mode that is a wizard: it would ask the user a series of questions and would then produce some CSS code. An advanced mode would let the user edit each CSS rule individually, and reflect the changes on the screen. He is also working on a wiki, which he'll announce soon, that allows users to enter CSS and render it to an image of the window borders:
Owen Taylor explains another new direction: Mutter will get application-aware window management. More specifically it will get knowledge about tabs:
Another developer, Sam Hoffstaetter, is working on letting the user group together arbitrary windows as tabs, something that so-called tabbed window managers offer. Each application would think it had multiple windows open, but the user would see them as tabs. The reasoning, which your author is very sympathetic to, is as follows:
Some issues with Mutter
Interesting as the new directions may be, some people fear that Mutter will not run on older hardware. For example, the Sugar developers didn't choose Mutter, and went for Metacity instead, exactly because of this fear. However, Taylor puts that in perspective:
Another fear that has been expressed is that Mutter will be too tightly
coupled with GNOME 3. As GNOME Shell is a Mutter plugin, it depends on it,
so users will not be able to use another window manager with GNOME
Shell. According to Taylor, this integration is not coincidental but by
design. For example, supporting Compiz instead of Mutter would require
a window management abstraction layer that "greatly increases the
amount of work
".
However, this approach is problematic for some use cases, as Sam Spilsbury, one of the Compiz developers, pointed out a few months ago:
Of course it will perfectly be possible to create a GNOME desktop using another window manager, but then the user would miss out on the new desktop experience of GNOME Shell. For example, users will not be able to swap GNOME's window manager with a flexible window manager such as xmonad and still leave all GNOME functionality intact.
Accessibility growing pains
The fact that GNOME Shell and Mutter use Clutter directly makes support for accessibility features such as AT-SPI (Assistive Technologies Service Provider) tricky, because Clutter has no accessibility support at the moment. GTK applications, on the other hand, have ATK (Accessibility Toolkit) which talks with the AT-SPI daemon. However, there's no inherent reason that a switch to a Clutter-based composited user interface should pose any problem for accessibility. The switch in toolkits will need a certain amount of reimplementation. That said, Taylor maintains that some accessibility features such as good magnification could become much easier in Mutter.
An active project to provide accessibility interfaces for Clutter is Cally (the name stems from Clutter + a11y), originally funded by Nokia that uses Clutter in Maemo 5. The main developer, Alejandro Piñeiro Iglesias, explains the work he has done:
Cally would be useful to implement accessibility support in Mutter and GNOME Shell, but Iglesias says he should check the code first and see what he needs to implement and how. He presented Cally [PDF.GZ] at the recent Gran Canaria Desktop Summit.
A fresh start
According to Taylor, Mutter is not that exciting in isolation, but it is
meant to provide a platform for building exciting user interfaces like
Moblin and GNOME Shell: "I'm personally pretty interested in getting
applications and the compositor properly synchronized so the user sees
everything drawn as smoothly and cleanly as possible.
" Thurman is
excited about the opportunity to get a fresh start and rethink how to
interact with the user:
The new directions of CSS-based themes and application-aware window management finally make GNOME's window manager more than a dull but necessary component. However, the developers have made some decisions under the hood that will not be popular in some circles. There is no fallback option for those that cannot or do not want to use compositing, and the integration of GNOME Shell with Mutter shuts out alternative window managers. But maybe this is the price that must be paid for innovation.
System Applications
Database Software
Firebird 2.1.3 RC2 released
Version 2.1.3 RC2 of the Firebird DBMS has been announced. "The Team is pleased to announce that the second (hopefully final) release candidate builds are ready to field-test. Builds for 32-bit and 64-bit Linux, Windows and MacOSX Intel are available."
MySQL Server 5.1.37 has been released
Version 5.1.37 of MySQL Community Server has been announced, it includes numerous bug fixes and a security fix.PostgreSQL Weekly News
The August 2, 2009 edition of the PostgreSQL Weekly News is online with the latest PostgreSQL DBMS articles and resources.
Embedded Systems
BusyBox 1.14.3 released
Stable version 1.14.3 of BusyBox, a collection of command line utilities for embedded systems, has been announced: "Bug fix release. Contains fixes in df (fix for "df /"), ls (problems with colored output in some configurations), ping6 (was not suid, unlike ping), test (parameter to "not" operator is optional), udhcpd (fixed lease file restore routine)."
Filesystem Utilities
Tahoe 1.5 released
Version 1.5 of Tahoe, the Lofty-Atmospheric Filesystem, has been released. "The Tahoe-LAFS team is pleased to announce the immediate availability of version 1.5 of Tahoe, the Lofty Atmospheric File System. Tahoe-LAFS is the first cloud storage technology which offers security and privacy in the sense that the cloud storage service provider itself can't read or alter your data."
Interoperability
Samba 3.3.7 is available
Version 3.3.7 of Samba has been announced. "This is the latest stable release of the Samba 3.3 series".
Miscellaneous
upstart 0.6.3 released
Version 0.6.3 of upstart, an event-based replacement for the /sbin/init daemon, has been announced. "The biggest disadvantage to people actually using your software is that they find bugs, this one's a doozy because it looks like it affects older 0.3 releases as well. Now seems as good a time as any to repeat my recommendation that distributions, mobile and embedded appliance developers using Upstart consider using 0.6 in their next release rather than sticking with 0.3".
Desktop Applications
Desktop Environments
GNOME 2.27.5 released
Version 2.27.5 of GNOME has been announced. "It's a good release to get a first feeling of what will be in GNOME 2.28, with the new modules now being integrated and new features popping here and there, in many differents modules. Ah, if only it could do something for the temperature ;-) Please note that this milestone marks the beginning of the feature freeze."
RunPON 0.3 released
Version 0.3 of RunPON has been announced. "RunPON is a small Python program useful to run the pon/poff scripts. It shows the elapsed connection time and periodically checks if a given network interface is still active. It can run as a stand-alone application (with a status icon in the tray) or as a Gnome panel applet (and compatible panels)."
GNOME Software Announcements
The following new GNOME software has been announced this week:- clutter-gst 0.10.0 (stable release, documentation work)
- Clutter-GTK 0.10.2 (new features, bug fixes and documentation work)
- GENIUS 1.0.7 (new features, bug fixes and translation work)
- gnome-packagekit 2.27.5 (bug fixes)
- GNOME Power Manager 2.26.4 (new features and bug fixes)
- GNOME Power Manager 2.27.5 (new features, bug fixes and translation work)
- gtk-css-engine 0.3 (new features)
- libchamplain 0.3.4 (new features and bug fixes)
- libchamplain 0.3.6 (new feature and bug fixes)
- Libgee 0.3.0 (new features)
- Nautilus-Actions 1.11.2 (new features, bug fixes and translation work)
- Nemiver 0.7.1 (bug fixes and translation work)
- Vala 0.7.5 (new features and bug fixes)
KDE 4.3.0 Released: Caizen
The KDE Community has announced the immediate availability of KDE 4.3 "Caizen". "KDE 4.3 continues to refine the unique features brought in previous releases while bringing new innovations. With the 4.2 release aimed at the majority of end users, KDE 4.3 offers a more stable and complete product for the home and small office."
KDE Software Announcements
The following new KDE software has been announced this week:- 2ManDVD 0.9 (bug fixes and translation work)
- Cirkuit 0.2 (new features)
- Cirkuit 0.2.1 (new feature and bug fix)
- eric4 4.3.6 (bug fixes)
- eXaro 1.90.0 (new features and bug fixes)
- FlashQard 0.13.1 (new features, bug fixes, documentation and translation work)
- KAlarm 2.3.0 (new features and bug fixes)
- KDE Partition Manager 1.0.0-RC1 (bug fixes)
- KdeSudo 3.4.2 (bug fixes)
- kdesvn 1.4.0 (unspecified)
- Konversation 1.2-alpha5 (new features, bug fixes and performance improvements)
- OkularSlideShow 0.1 (initial release)
- QMediaBibliothek 0.2.0 (unspecified)
- QTeXEngine 0.1 (initial release)
- rkward 0.5.1 (new features and bug fixes)
- rekonq Web Browser 0.1.95 (bug fixes and translation work)
- Simple Root Actions Menu 2.1.1 (new feature and translation work)
- SparkleMedia 0.1 (initial release)
Xorg Software Announcements
The following new Xorg software has been announced this week:- libX11 1.2.99.901 (new features and bug fixes)
- rstart 1.0.3 (bug fix and code cleanup)
- xf86-input-evdev 2.2.3 (new features, bug fixes and documentation work)
- xf86-input-synaptics 1.1.3 (bug fix)
- xf86-video-apm 1.2.2 (bug fixes and code cleanup)
- xf86-video-ast 0.89.9 (new features and code cleanup)
- xf86-video-cirrus 1.3.2 (code cleanup)
- xf86-video-fbdev 0.4.1 (new features, code cleanup and documentation work)
- xf86-video-glint 1.2.4 (code cleanup)
- xf86-video-i128 1.3.3 (code cleanup)
- xf86-video-i740 1.3.2 (bug fixes and code cleanup)
- xf86-video-mach64 6.8.2 (new features, code cleanup and documentation work)
- xf86-video-mga 1.4.11 (code cleanup and documentation work)
- xf86-video-neomagic 1.2.4
- xf86-video-r128 6.8.1 (code cleanup)
- xf86-video-s3 0.6.3 (bug fixes and code cleanup)
- xf86-video-s3virge 1.10.4 (code cleanup)
- xf86-video-savage 2.3.1 (new features and code cleanup)
- xf86-video-siliconmotion 1.7.3 (bug fixes and code cleanup)
- xf86-video-sisusb 0.9.3 (new features and code cleanup)
- xf86-video-sis 0.10.2 (new features, bug fixes and code cleanup)
- xf86-video-tdfx 1.4.3 (code cleanup)
- xf86-video-trident 1.3.3 (code cleanup)
- xf86-video-vesa 2.2.1 (bug fixes and code cleanup)
- xf86-video-voodoo 1.2.3 (new features and code cleanup)
- xinput 1.4.99.2 (bug fixes and documentation work)
- xmag 1.0.3 (bug fixes)
- xorg-server 1.6.3 (new features and bug fixes)
- xrx 1.0.3 (bug fixes and code cleanup)
- xtrans 1.2.4 (bug fixes)
Games
pygame 1.9.0 released
Version 1.9.0 of pygame, a Python-based game development platform, has been announced. "Summary of changes: many, many fixes and improvements. The largest amount of changes has gone into this release than any other pygame release."
GUI Packages
PyQwt 5.2.0 released
Version 5.2.0 of PyQwt has been announced, it includes support for Qwt 5.2.0, bug fixes and more. "it is a set of Python bindings for the Qwt C++ class library which extends the Qt framework with widgets for scientific and engineering applications. It provides a 2-dimensional plotting widget and various widgets to display and control bounded or unbounded floating point values."
Multimedia
Miro 2.5 released
Version 2.5 of Miro, a video player and podcast client, has been announced. "Yes! We have just released Miro 2.5, a major update with new features, faster performance, audio podcasts, and lots of polish."
Music Applications
Guitar-ZyX-0.3 LiveOS announced
The Guitar-ZyX-0.3 LiveOS is available. "Guitar-ZyX(tm) is a LiveDVD/USB operating system distribution, that can immediately boot both your Nintendo(tm)-DS or DSi, and your x86/64 PC, into a guitar pre-amp f/x processing appliance, complete with wireless dual touchscreen remote control, that you could even velcro or embed in your guitar if you were so inclined. In addition to switching among 80 different f/x presets, the NDS remote control's touchscreen can also linearly control any two of about a hundred independent f/x parameters in real-time. For now, I'm calling the result a 'supertouchwhammypad'."
Office Applications
Leo 4.6.2 released
Version 4.6.2 of Leo has been announced, it includes bug fixes and other improvements. "Leo is a text editor, data organizer, project manager and much more."
Pyspread 0.0.12 released
Version 0.0.12 of Pyspread has been announced, it includes new features and bug fixes. "Pyspread is a cross-platform Python spreadsheet application. It is based on and written in the programming language Python. Instead of spreadsheet formulas, Python expressions are entered into the spreadsheet cells. Each expression returns a Python object that can be accessed from other cells. These objects can represent anything including lists or matrices."
Web Browsers
Firefox 3.5.2 and 3.0.13 fix SSL security problems
Firefox updates for two nasty security problems are now available for the 3.0 and 3.5 series. The two problems were recently reported at the Black Hat security conference by Moxie Marlinspike and Dan Kaminsky and can lead to arbitrary code execution via crafted SSL certificates or allow SSL certificate spoofing. "We strongly recommend that all Firefox users upgrade to this latest release." Click below for the full announcement.
Miscellaneous
FLiP 1.0 released
Version 1.0 of Flip, the Logical Framework in Python, has been announced. "A logical framework is a library for defining logics and writing applications such as theorem provers. One Flip application is a proof checker for entering and editing proofs in natural deduction style".
Languages and Tools
C
GCC 4.3.5 Status Report
The August 4, 2009 edition of the GCC 4.3.5 Status Report has been published. "The 4.3.4 release has been created and the final bits of the release process will be carried out soon. The 4.3 branch is now open again for checkins under the usual release branch rules (regression and documentation fixes only). A 4.3.5 release is expected shortly after the 4.4.2 release."
GCC 4.5 Status Report
The July 29, 2009 edition of the GCC 4.5 Status Report has been published. "Trunk is in Stage 1. We expect that Stage 1 will last through at least the end of August. Pending large merges include at least Graphite, LTO and VTA and these will be considered in deciding when to move to Stage 3. All these merges will need the usual technical review of patches where not already approved by maintainers of the relevant parts of the compiler."
Editors
Emacs 23.1 released
The Emacs 23.1 release has happened. There's a lot of new stuff in this release, including the much-anticipated (by some, dreaded by others) antialiased font rendering, better Unicode support, an improved daemon mode, a PDF viewer, and more. The NEWS file contains the full list of changes.
Test Suites
pylib/py.test 1.0.0 released
Version 1.0.0 of pylib/py.test is out. "I am happy to announce pylib/py.test 1.0.0, a MIT-licensed library geared towards advanced testing and elastic distributed programming with Python. It features the mature cross-project py.test automated testing tool with many new features..."
Page editor: Forrest Cook
Next page:
Linux in the news>>
