The Wayland display server may grab more headlines these days, but
that does not mean that X is sitting still. In fact, the X.org Foundation
is due to release X11R7.7 shortly, with a host of new input and display features.
The last major release of the X Window System was X11R7.6, from December 2010. The modular design of X releases (adopted with X11R7.0)
means that different parts of the source tree evolve at different paces;
consequently it can be a little work to sort out precisely what
improvements land with each full release. Release manager Alan
posted a draft of the upcoming release notes, though, which gives
a concise summary of the changes slated to arrive.
The XInput2 extension (XI2) is a highly-visible example of important,
user-facing changes that land via extensions rather than in the core.
XI2 2.2 added multi-touch input
earlier this year; a long-awaited feature implemented by Peter
Hutterer that enables the X server to recognize multiple input points
from a single hardware device, thus allowing applications to interpret
simultaneous input events, such as gestures. It also defines touch
event sequences and cleanly differentiates between touch-sensitive
input devices like trackpads and touch-sensitive screens. Both are
enhancements that will prove useful as application toolkits like GTK+
and Qt make moves into the consumer tablet space.
But XI2 2.1 was also released between X11R7.6 and now, bringing
with it a large patch
set from Daniel Stone that improves the smooth-scrolling behavior. Other changes added
a way for applications to track raw
device events (largely of interest to game controllers), and added several missing
defines to the XI2 API. The latter issue was that XI2 provided
some-but-not-all defines in its own XI* namespace, and
programmers were forced to fall back on core defines to keep track of
other constants, such as AnyPropertyType or
GrabSuccess. Falling back on such core defines is bad style,
particularly because it was easy to accidentally do so when a relevant
XI2 define did exist (such as using AnyModifier
instead of XIAnyModifier), which would cause the program to break.
New features for client applications
Fixes extension adds the notion of "pointer barriers" in this
release. The feature is derived from applications' desire to set
easy-to-reach targets as active regions on the screen — such as
the upper-left-corner of the display, which is used by several desktop
environments to activate a "dashboard" style overlay. While
monitoring the upper-left corner is child's play in a single monitor
setup, the task becomes trickier with multiple displays. Some
developers might want the upper-left-corner of the right-hand display
— which is physically in the middle of the combined screen
— to retain its active target status and still be easily
reachable. Pointer barriers allow them to do so, by giving the
desired target region some "friction" (for lack of a better
term) that constrains pointer motion; the result is that the cursor
slows down when it hits the target area, making it more difficult to overshoot.
The X Synchronization extension (XSync) now allows client
applications to create "fence" objects that they can use to
synchronize different rendering back-ends in use at the same time.
This is important because not all renderers function at the same speed
— such as when OpenGL is used to render only one portion of the
client window. X is normally oblivious to this reality, but, as Aaron
Plattner explained it when the work began, the application can
create a fence (initially in an un-triggered state), and tell the
OpenGL renderer to wait until the fence is triggered. When the rest
of the X screen is finished rendering, the fence is triggered, and
OpenGL updates its portion of the screen immediately.
The font system receives several improvements in this release. The
first is that the location of installed X11 fonts can be changed at
configuration time; the example given in the draft release notes moves
them to /usr/share/fonts/X11/, which would put them closer to
other system-installed fonts than the old location,
/usr/X11R6/lib/X11/fonts/. The second change is the
deprecation of some old code. Previous X releases included a bundled
PostScript Type1 font backend; in X11R7.7 this backend is removed and
FreeType is used instead. Support for the now-obsolete CID-keyed font
format has been replaced entirely, as its functionality has been taken
over by the OpenType format.
Under the hood
Primarily for debugging purposes, the X Resource extension now
allows client applications to request more information about other
clients, including their process IDs and the size of other clients'
allocated resources. There are also several new debugging functions
in the X server that can be bound to key sequences — although to
prevent tragic mishaps, they are not bound by default.
XF86LogGrabInfo will write the current set of input grabs to the X log
file, and XF86LogWindowTree will write the current window tree.
XF86Ungrab will release all active input grabs, while XF86ClearGrab
will kill the connections of all active input grabs. These two
potentially-dangerous functions were the source of CVE-2012-0064,
which allowed attackers to bypass password-protected screensavers.
Leaving the functions unbound offers partial protection only, so the
new release also requires users to explicitly turn on support for the
functions in their X Keyboard extension (XKB) configuration file.
Also of potential interest to developers is progress being made on
the X protocol C Bindings (XCB). XCB is intended to one day
completely replace the aging Xlib, which is already accessed primarily
through compatibility layers provided by higher-level toolkits.
Although it remains a work in progress, XCB developers have begun to
add support for the OpenGL X extension (GLX) and XKB.
Several components are now marked as deprecated, specifically the
nested and virtual X servers Xvfb, Xnest, Xephyr, and Xfake. All are
designed to either display their contents inside another X server or
to render content into a virtual framebuffer. The plan is for both
types of functionality to eventually be replaced by substitute video
drivers, xf86-video-nested and xf86-video-dummy. The
functionality will remain unchanged, but with less maintenance
demanded of the project.
Last but by no means least, the project has migrated its
documentation to DocBook. That documentation includes the X protocol
as well as the APIs and ABIs. Previously the documentation existed in
a variety of different formats; the standardization on DocBook not
only unifies it, but thanks to DocBook's XML underpinnings, allows it
to be cross-linked for reference.
Of course, there are always long lists of changes and bugfixes made
to the video drivers, input drivers, and modules that do not bring new
functionality, but still provide a better experience. The project has
a massive combined
change-log document online that provides an entry point into every
fix released during this development cycle. Between that and the new
DocBook documentation, X11 fans have lots of reading to look forward
Comments (1 posted)
The moral of the story, at least for me, was that the Free software
desktop has come leaps and bounds in the last decade. My
dinosaur-era expectations of trouble were not rewarded, and instead
I was treated to a great experience. Thank you to everyone who has
worked on making this possible: those who have slaved over printing
support, those who have made awesome toolkits like Qt to tap into
all the features, those who have guided companies like Samsung from
the relative dark ages into the light when it comes to Linux
support ... to all of you: my deepest gratitude.
-- Aaron Seigo
Comments (4 posted)
Google has open-sourced its Ceres solver
least squares library. "Ceres Solver is used at Google to estimate
the pose of Street View cars, aircrafts, and satellites; to build 3D models
for PhotoTours; to estimate satellite image sensor characteristics, and
Comments (1 posted)
ODB is an object-relational mapping system for C++; the 2.0.0 release is
now available. New features include C++11 integration, support for
polymorphism, composite object ID support, and more; see this
for more information.
Full Story (comments: none)
Red Hat has announced
the release of its OpenShift "platform as a service" system as the
open-source OpenShift Origin
. "The cloud in general, and Infrastructure-as-a-Service
(IaaS) and PaaS implementations specifically, should not be vehicles that
promote vendor lock-in, nor should they be under the control or 'guidance'
of vendors. For the cloud to remain open and vibrant, implementations
should be truly open, not only in license, but in governance. The OpenShift
Origin project sets a high bar for PaaS offerings, developed and governed
by developers, for developers.
Comments (1 posted)
of the Xfce desktop environment is out. New features include a rewritten
application finder, tiling support, and more; see the Xfce 4.10 tour page
Comments (37 posted)
Newsletters and articles
Comments (none posted)
On his blog, Nicu Buculei has an interesting retrospective of browser design
, complete with screen shots. Readers may or may not agree with his opinions, but the walk down memory lane is fun. "[It's] debatable if their move to rewrite the entire suite from scratch was a good thing or not (on one hand it was a chance to get rid of the old cruft, on the other it was a huge delay), but here I talk only about the design, so the rewrite brought also a new interface and new widgets. At the time there were "milestone release" from the development tree, working to various degrees. It also has a new interface with a "futuristic", non-native, look, to show the power of XUL and allowed for a new feature: theming - at the time making the interface themeable was the rage of the industry, I don't know who invented it, but Winamp (by then also an AOL property, as Netscape) made it really popular.
Comments (31 posted)
Michael Meeks has posted a
comparison of new features
added to LibreOffice and the upcoming
OpenOffice 3.4 release. As a LibreOffice developer, Michael is
clearly trying to prove a point. "On the other hand, thus far, there
are rather few really new features in the [Apache OpenOffice] release that
did not come from Oracle's existing work; that is outside of some pleasant
drawing improvements, which we hope to merge into LibreOffice for our next
Comments (16 posted)
The first issue of PostgreSQL magazine is out. The "read it online" page
require flash, but the PDF
works fine and looks quite slick. Articles in the inaugural
edition cover PostgreSQL 9.1, NoSQL, and interview with Stefan
Kaltenbrunner, a look forward to the 9.2 release, and more.
Full Story (comments: 2)
Page editor: Jonathan Corbet
Next page: Announcements>>