|
|
Log in / Subscribe / Register

LWN.net Weekly Edition for August 27, 2009

Pyjamas: writing AJAX applications in Python

By Jake Edge
August 26, 2009

Maintaining a complex web application that uses a lot of Javascript for client-side, "AJAX"-style interactivity is rather difficult. The clumsiness of the Javascript language itself, as well as the various tricks needed to make an application work consistently across multiple browsers, all of which must be wrapped up inside HTML, makes for a jumble of issues for the application developer. Pyjamas is meant to ease that development, by allowing client-side applications to be written in Python, then translating that code to Javascript for use by the browser.

Pyjamas is a port of the Google Web Toolkit (GWT), which pioneered the technique, but GWT uses Java instead of Python. For developers who prefer Python, pyjamas provides an environment that almost completely insulates them from the code that actually runs in the user's browser. As described on the home page:

You can write web applications in python - a readable programming language - instead of in HTML and Javascript, both of which become quickly unreadable for even medium-sized applications. Your application's design can benefit from encapsulating high level concepts into classes and modules (instead of trying to fit as much HTML as you can stand into one page); you can reuse - and import - classes and modules.

Also, the AJAX library takes care of all the browser interoperability issues on your behalf, leaving you free to focus on application development instead of learning all the "usual" browser incompatibilities.

Essentially, a developer uses the pyjamas-supplied libraries that provide user interface widgets and Document Object Model (DOM) control from Python. This code is then combined with a library that implements various Javascript language features in Python—an impedance-matching layer between the two languages called pyjslib—and turned into Javascript and HTML that can be loaded into a browser. The pyjs program "translates Python code to Javascript by walking the Python abstract syntax tree and generating Javascript".

But, using pyjamas is not at all like "normal" web programming. As the web site and FAQ are quick to point out, pyjamas is not just another AJAX (Asynchronous Javascript and XML) framework, it is more akin to writing a desktop program that is translated into web application. In fact, Pyjamas-Desktop allows the same code that is developed for the web application to be run, unmodified, on the desktop. The same Python source that gets fed into the translator can, instead, be run, and, more importantly, debugged, on the developer's desktop.

The tool is best suited to writing one-page web applications that rely entirely on AJAX techniques to do their job—things like Gmail, Mozilla's Bespin, and many others. Each page load in a pyjamas application requires loading all of the Javascript that makes up the application. That includes code generated from the application as well as pyjamas libraries, so, ideally, that would only be done once. That is quite a contrast from the traditional, multi-page-oriented web application, but is certainly in keeping with the direction of web interaction.

The key to understanding pyjamas is to note that, unlike AJAX frameworks, it is not meant to add a bit of interactivity, or some desktop-like features, to an existing web application. Instead, the entire application is written in Python, likely debugged on the desktop, and then turned into a big blob (or, really, blobs) of Javascript for deployment. The application code will look very familiar to Python GUI developers. For example, the canonical "Hello World" program—which does a bit more than Kernighan and Ritchie's original C program—looks like:

    import pyjd # this is dummy in pyjs.
    from pyjamas.ui.RootPanel import RootPanel
    from pyjamas.ui.Button import Button
    from pyjamas.ui.HTML import HTML
    from pyjamas.ui.Label import Label
    from pyjamas import Window

    import pygwt

    def greet(fred):
	print "greet button"
	Window.alert("Hello, AJAX!")

    if __name__ == '__main__':
	pyjd.setup("public/Hello.html?fred=foo#me")
	b = Button("Click me", greet, StyleName='teststyle')
	h = HTML("<b>Hello World</b> (html)", StyleName='teststyle')
	l = Label("Hello World (label)", StyleName='teststyle')
	base = HTML("Hello from %s" % pygwt.getModuleBaseURL(),
				      StyleName='teststyle')
	RootPanel().add(b)
	RootPanel().add(h)
	RootPanel().add(l)
	RootPanel().add(base)
	pyjd.run()

Running the build.sh script on that example, as described on the "getting started" page, creates output and public directories that hold the generated code. There is a tiny bit of HTML and CSS, along with roughly 9,000 lines of Javascript that implement the example. Much of that is likely boilerplate code to implement pyjamas itself. A better example might be something like TimeSheet, which implements a more realistic application, and weighs in around 23,500 lines.

There are numerous examples on the pyjamas web page, many of which were ported from GWT. Both the source code and the running application are available, so one can get a sense for how much code it takes to create the examples—as well as use them as templates for other applications. There is quite a bit of documentation, though the FAQ would indicate that there have been complaints about that, on the site as well, including the in-progress Pyjamas Book (which is implemented as a pyjamas book reader application).

The project has just released version 0.6 of the tool, with many new features outlined in the CHANGELOG. There are some 140 changes from the version 0.5, including a rework of pyjs to make more Python features available (multiple inheritance and superclasses are specifically mentioned) and bringing Pyjamas-Desktop into the standard distribution. The pace of development is relatively quick; 0.5 was released in March, and 0.6 adds quite a bit of functionality on top of that.

Pyjamas is definitely worth a look for anyone considering building a new-style web application, and who would rather use Python than Java. Because GWT was released as free software, Pyjamas could leverage much of that work to give developers another language choice. Writing—and worse, debugging—complex Javascript applications is a major chore, so any tools that make that easier should be quite welcome. Those that just want a bit more interactivity in their existing web applications, though, might find the Pyjamas (and GWT) approach to be too heavy-handed for their needs.

Comments (26 posted)

Bespin adds collaborative features

August 26, 2009

This article was contributed by Nathan Willis

Mozilla released version 0.4 of its online code editor Bespin last week, debuting integrated collaboration features that include project sharing and real-time live collaborative editing. Bespin is an in-browser web application, making it available from anywhere, but the "social coding" features are what really separates it from other collaborative editing solutions.

Welcome to Bespin

A Mozilla Labs project, Bespin is a free web service to which users can connect from any supported browser. The main Bespin server on which new official releases are rolled out is bespin.mozilla.com; to use it one must register a free Bespin server account. The client side of the editing environment runs entirely within the page: no extensions or other add-ons are required. Source code to the server is available under the Mozilla Public License version 1.1, and instructions for installing and running Bespin on a private server are provided on the Mozilla wiki.

Bespin was first unveiled in February of 2009, and is described as a code editor for web developers, built with web technologies. It supports line numbering, syntax highlighting (for HTML, CSS, and JavaScript by default), multiple projects, version control with Mercurial, cut-copy-paste with a clipboard, search, undo and redo, and previewing on the web. Code projects are stored on the server, but the editor can upload zipped or gzipped archives as well as clone existing Mercurial projects into the user's Bespin server account.

[Bespin command line]

Once logged into their Bespin server account, users can begin using Bespin immediately. Bespin's editor takes up the entire window, save for a thin toolbar at the top that displays the current project and file and a few basic buttons. The other major mode provided by the program is the Bespin command line, which can be activated from the toolbar or by hitting Ctrl-j (which toggles between the editor and command line). The command line allows the user to create new projects, change interface settings, open files, and more. Command completion, history, and tooltip-style help assist new users in getting up to speed with the command set. For opening files and examining projects, a graphical file browser is also provided, which mimics the left-to-right navigation panes of Mac OS X's Finder rather than a more traditional Unix-like folder tree.

The Bespin editor is rendered inside of an HTML5 canvas element, so a canvas-supporting browser is required. Currently, this includes all recent versions of Firefox, Chrome/Chromium, Opera, and WebKit/Safari. The canvas is used to render the entire editing environment — window panes, menus, buttons, scroll bars, even the cursor — with JavaScript. Developer Ben Galbraith described the use of canvas as a superior alternative to building on top of the textarea tag or contentEditable property and native user interface widgets because canvas allows better flexibility to adapt the UI to users' personal preferences, better accessibility, and better performance and compatibility when editing large files. He also offered a caveat in his explanation, noting that "there may very well be a more effective way to do what we've done than with canvas. I'm not saying this is the best way to do it; I just want to explain why we did it."

One outcome from the decision to use canvas is that the Bespin team developed its own UI toolkit, which it plans to spin off into a reusable code project called Thunderhead. Likewise, the editing component itself could be easily reused in other Web applications, so it will eventually be separated out into a stand-alone, reusable component, too.

Bespin is designed to be adjustable to the individual tastes of the user, so it provides user-configurable settings. In addition to basic configuration options like auto-indentation and "strict lines" mode, each Bespin server account automatically includes a BespinSettings project that contains a config.js file for tweaking Bespin with JavaScript. Users can write their own commands, using the same syntax as Mozilla Labs' Ubiquity project, and Bespin has a plugin API which is still undergoing development.

Collaborate

[Bespin collaboration]

The 0.4 release added some niceties to the existing feature set — such as argument completion for commands and the addition of Subversion as the second supported version control system — but the most exciting new addition is a built-in framework for sharing and live collaboration. Users must activate the collaborative features by executing set collaborate on from the Bespin command line.

The new "share" command allows users to mark projects as visible to other users on the Bespin server, as individuals, groups, or globally. Projects can be shared in read-only or read/write mode. Executing:

    share add projectname user1

shares the project in read-only mode, while

    share add projectname user1 edit

activates read-write permission. For sharing to work, the user on the receiving end of the shared project must explicitly accept shared code from the originating user with:

    follow username

This mechanism prevents spamming innocent users by sharing scores of unwanted projects with them. Substituting the string everyone for a username shares the project with everyone on the server who chooses to follow the project owner.

Other users' shared projects appear in the Bespin file browser just like locally-owned projects. If a project is shared in read-write mode, all users with access to it can edit a file simultaneously. Edits and text selection are visible in real time to all who have the file open in the editor. A collaboration window showing which users are currently editing the file appears in the upper right-hand corner of the editor window.

"Groups" in Bespin collaboration are strictly a private user-defined convenience, not a social feature; adding other people to a group simply saves keystrokes by permitting the user to type:

    share add myproject mygroup

instead of:

    share add myproject user1
    share add myproject user2
    ...

To define a group, just execute:

    group add groupname user1 user2 ... userN

Bespin uses Mobwrite to handle synchronization and conflict resolution between user edits. The system uses differential synchronization to keep copies of the file in sync. This algorithm is symmetric, repeatedly calculating the differences between each editing session's copy of the document and a previously-updated "shadow" copy, then relaying patches to every other session. Since every session receives every other session's updates, there is no "master" copy responsible for merging all of the changes and potentially creating bottlenecks. Unlike "event passing" synchronization, diffs automatically catch all changes, whether originating from typing, cut-and-paste, undo, or search-and-replace. Developer Dion Almaer said that the team has successfully tested Bespin with 30 concurrent users and 100,000-line files, making it significantly more robust than other online sharing tools.

Currently, sharing and collaborative editing are only possible between users on the same Bespin server, but Almaer said that the team very much wants to include support for federation in the future. "We want to create a compelling, fun, productive social editing experience for as many people as possible," he said. Joe Walker, who added the collaboration support to 0.4, commented that the Bespin team hopes to enable collaborative sessions between Bespin and other editors capable of collaboration, such as GEdit, Eclipse, and Emacs.

The future of Bespin will include more features to enhance this social dimension, Almaer explained:

We have agile environments being successful in software, but where are the tools to make coding more agile and social? ... Being able to see what people are doing in your project and alerting you when code is being stepped on etc (before merges!) is going to be a lot of fun.

Likewise, the Bespin team encourages users to add new features via JavaScript and the plugin API. Outside contributors have already added syntax highlighting support for Ruby and Arduino code. Almaer said that the initial feature set of the editor focuses on web technologies merely because the web is Mozilla's focus and the team has limited resources. If the Bespin development community wants to expand the scope of the project, it will.

Collaborative editing is possible in several other open source applications, from word processors like Abiword to text editors like Gobby, and via plugins for many more applications — even popular development tools like Emacs, gVim, and Eclipse. At first glance, Bespin seems to sport the same feature set as most of these other options, but it has two distinctive qualities that users may find attractive.

First, as pointed out in the initial release announcement, Bespin is available everywhere, on every platform with a modern web browser. The alternatives require installation, and in many cases are dependent on specific versions of the application for compatibility. Some are limited to specific operating systems because they rely on underlying packages like Telepathy.

Second and more importantly, Bespin is pushing the "social" nature of coding itself as the key feature, not just synchronization of files. The concepts of sharing projects and following individuals are the beginnings of a social graph implementation that could extend the concept beyond simple text changes. As Almaer hinted, and as shown in the project's roadmap and in various demo videos, more is on the way, such as a "heatmap" that graphically depicts where a codebase is changing and a dashboard that tracks what other users are doing.

Bespin 0.4 is stable and responsive enough that the Bespin team uses it for Bespin development. It should prove to be a valuable asset to remote development teams, particularly (in the short term) for those working in the core web technologies that remain its focus. Looking further out, the social coding concepts Bespin explores could significantly improve on the traditional distributed version control systems most developers use today.

Comments (4 posted)

SCO: not dead yet?

By Jonathan Corbet
August 25, 2009
Back in 2007, it seemed like the SCO nightmare was done; the company had suffered a summary judgment depriving it of its claim to the Unix copyrights and it had gone into bankruptcy proceedings. In the latter half of 2009, though, SCO is still here. Now, an appeals court has ruled [PDF] that part of the 2007 judgment was erroneous and must be reconsidered; some worry that SCO could come back, zombie-like, to terrorize again. The real threat may not be SCO, though, but what comes after.

The agreement between Novell and the Santa Cruz Operation was a mess which never clearly spelled out what was being sold. It is far from surprising that Novell and the company now known as the SCO Group disagree on its particulars. The lawyers involved in making that agreement, quite simply, did not do their job. Even so, the district court, in 2007, was able to obtain enough clarity from this document to conclude that there was no question at all of whether the Unix copyrights had been transferred to SCO. The result was a summary judgment throwing out SCO's claims regarding those copyrights. That judgment was welcomed in the community, but there may be justice to SCO's claim that it was a little too hasty.

The appeals court took that view of the district court ruling, finding SCO's arguments sufficiently credible to create some doubt as to the facts in the case. As the ruling states:

When a contract is ambiguous, and parties present conflicting evidence regarding their intent at the time of the agreement, a genuine issue of material fact exists which cannot be determined summarily by the court.

It is worth noting that the appeals court did not rule that the copyrights do, in fact, belong to SCO. In fact, the ruling reads:

We recognize that Novell has powerful arguments to support its version of the transaction, and that, as the district court suggested, there may be reasons to discount the credibility, relevance, or persuasiveness of the extrinsic evidence that SCO presents.

All the court has said is that there is enough doubt here that a full trial is needed to resolve the question. The end result could well be the same - Novell could still win - but SCO has created enough uncertainty to gain its full day in court.

SCO did not prevail in all of its appeals, though. The district court had ruled that SCO had converted ("stolen") $2.5 million in licensing revenue from Sun which, by the asset purchase agreement, truly belonged to Novell. The appeals court agreed with this part of the summary judgment and left SCO on the hook. This ruling has led some observers to believe that SCO may now head quickly into Chapter 7 bankruptcy, resulting in the liquidation of the company. Should that happen, it is said, the SCO zombie will truly be gone forever.

Unfortunately, the end of the SCO Group would not necessarily mean the end of the troubles it has created. Chapter 7 bankruptcy would result in the sale of SCO's remaining assets to pay the claims of the company's creditors. Those assets are likely to include office chairs belonging to both remaining employees, a storage locker full of unsold Caldera OpenLinux boxes, Darl McBride's bullhorn, a few SCO Mobile Server manuals - and the claimed ownership of the Unix copyrights. The bankruptcy trustee's job will be to sell all of these assets for the highest price possible.

The Unix copyright "asset" is an uncertain value, to say the least; it could evaporate entirely when SCO v. Novell runs its full course. But SCO v. Novell was always a sideshow; the real game is the multi-billion dollar claims against IBM. Who would be willing to bet that no trolls willing to try for that payoff exist? Instead, such trolls must certainly exist, and some of them will be well funded. One of them could come out of the bankruptcy process owning these "assets" and the related lawsuits.

What we could see then is a new push on these claims, with more money behind it and, possibly, less buffoonery as well. The new owner might just succeed in establishing ownership of the Unix copyrights - that agreement is, as was stated previously, a mess - and carry the IBM case forward. The fact that SCO's original claims against IBM are still without merit offers little comfort; we could be in for another extended period of FUD and bad press before the courts finally come to that conclusion.

Things need not go that way, of course. Should SCO go into chapter 7, we might see Novell and/or IBM hold their noses and buy the Unix claims themselves, putting an end to the entire affair. It could be the cheapest way for them to go. One assumes that lawyers in those companies are thinking about their options at this point; they, too, must be tired of this whole circus by now.

Comments (34 posted)

Page editor: Jonathan Corbet

Security

Firefox extension vulnerabilities

By Jake Edge
August 26, 2009

Browser extensions, or add-ons, typically provide extra functionality, beyond that which the browser provides, but that comes with a price: increased vulnerability potential. The recent disclosure of five separate vulnerabilities in Firefox extensions serves as a reminder that extensions occupy a privileged position within the browser. That position makes flaws in extensions particularly dangerous, as they generally will allow an attacker's code to run with all the privileges of the user running the browser.

The vulnerabilities were disclosed by Nick Freeman and Roberto Suggi Liverani of Security-Assessment.com, a New Zealand-based web and network security firm. In doing research for a DEFCON presentation [PDF], they found flaws in the following Firefox extensions: Feed Sidebar, ScribeFire, WizzRSS, CoolPreviews, and Update Scanner. The flaws were found between February and June of this year, and the presentation lists three more that have yet to be disclosed.

All five of the flaws have something in common: in one way or another, they take content from a remote site and handle it incorrectly within the privileged Mozilla "chrome" context. For example, the Feed Sidebar extension incorrectly handles the RSS <description> tags, such that a malicious site could do cross-site scripting (XSS) or HTML injection into the chrome trusted zone. That would allow the remote site to potentially perform any action the browser could: access the filesystem, retrieve web site passwords, execute programs, and so on.

The presentation has several proof-of-concept examples; the one associated with Feed Sidebar steals all of the login credentials and sends them off to a remote site. Another example using the ScribeFire extension sets up a reverse VNC session so that an attacker could view the desktop of the browser user. Yet another uses XSS to send a copy of /etc/passwd off to a remote site. These are all very potent exploits that could be used to seriously compromise users' privacy and security.

There are certainly more of these problems out there (beyond even the three undisclosed, thus presumably unpatched, vulnerabilities). Part of the problem is that the "Mozilla extension security model is nonexistent", according to Freeman and Liverani's presentation. All extensions are treated as completely trusted code by Firefox. In addition, there are no security boundaries between the extensions, so one can quietly modify another. They also note that other Mozilla applications that allow extensions (e.g. Thunderbird) are also susceptible to these kinds of vulnerabilities.

Many Firefox extensions are available through addons.mozilla.org (AMO), but the researchers point out that extension developers, and the AMO reviewers, are not necessarily security experts, so bugs like these may slip through. They also note that the NoScript extension, with its XSS protection, may be giving a false sense of security. NoScript whitelists chrome: URLs, which means that it provides no protection against malicious or buggy extensions.

In many ways, it should come as no surprise that there are bugs—and security holes—in Firefox extensions, but it is a problem that has largely flown under the radar. Malicious extensions, downloaded from sites other than AMO, are a fairly well-understood vector for attack—at least to users who are somewhat security-conscious. Extensions that have, or appear to have, the "blessing" of AMO are a bit of a different story. Many users, even those who pay attention to security issues, may well expect that those extensions are rigorously vetted, which seems not to be the case.

There is no reason to believe that these vulnerabilities were anything other than "standard" programming errors, but those with a malicious intent probably could sneak vulnerabilities into AMO extensions—perhaps they have already done so. The presentation lists two plausible scenarios for how malware authors might get vulnerabilities introduced into extensions, particularly popular or recommended extensions.

This research gives us yet another attack vector to be worried about, but there is also some useful information on what to look for in extensions that could lead to these kinds of flaws. With luck, that will help reduce the number of extensions with holes. That still leaves us with the worry about malicious extension authors. Without a more rigorous review of extensions—even that won't find every flaw—there is little that can be done. It is a problem that will likely be with us for quite some time.

Comments (3 posted)

Brief items

Walsh: Secure Virtualization Using SELinux (sVirt)

Red Hat SELinux hacker Dan Walsh writes about Secure Virtualization (sVirt) on his web log. The basic idea is to leverage SELinux to isolate virtual machines from each other and from the host. "After virtualization, we have multiple services running on the same host. If a virtual machine is broken into, the cracker just needs to break though the hypervisor. If a hypervisor vulnerability exists, the cracker can take over all of the virtual machines on the host. He can even write into any virtual host images that are accessible from the host machine. [...] This is very scary stuff. The question is not 'if', but 'when'. Hacker/cracker conventions are already examining hypervisor vulnerabilities. Crackers have already broken though the xen hypervisor, as I documented in one of my previous blogs."

Comments (37 posted)

New vulnerabilities

buildbot: cross-site scripting

Package(s):buildbot CVE #(s):
Created:August 24, 2009 Updated:August 26, 2009
Description:

From the buildbot advisory:

In addition to the XSS vulnerability announced on August 12, several other such vulnerabilities were discovered in other portions of the Buildbot web status, by Nicolas Sylvain and Nicolás Alvarez. The severity of these vulnerabilities is no different that that announced on August 12, except that the vulnerabilities are not limited to the waterfall view.

Alerts:
Fedora FEDORA-2009-8516 buildbot 2009-08-15
Fedora FEDORA-2009-8577 buildbot 2009-08-15

Comments (none posted)

expat: denial of service

Package(s):expat CVE #(s):CVE-2009-2625
Created:August 24, 2009 Updated:June 13, 2011
Description:

From the Gentoo bug report:

Apache Xerces2 Java, as used in Sun Java Runtime Environment (JRE) in JDK and JRE 6 before Update 15 and JDK and JRE 5.0 before Update 20, and in other products, allows remote attackers to cause a denial of service (infinite loop and application hang) via malformed XML input, as demonstrated by the Codenomicon XML fuzzing framework.

Alerts:
Mandriva MDVSA-2011:108 xerces-j2 2011-06-13
Scientific Linux SL-xerc-20110608 xerces-j2 2011-06-08
Slackware SSA:2011-041-02 expat 2011-02-11
SUSE SUSE-SR:2010:015 gpg2, krb5, kvirc, libpcsclite1/pcsc-lite, libpython2_6-1_0, libvorbis, libwebkit, squidGuard, strongswan 2010-08-17
SUSE SUSE-SR:2010:014 OpenOffice_org, apache2-slms, aria2, bogofilter, cifs-mount/samba, clamav, exim, ghostscript-devel, gnutls, krb5, kvirc, lftp, libpython2_6-1_0, libtiff, libvorbis, lxsession, mono-addon-bytefx-data-mysql/bytefx-data-mysql, moodle, openldap2, opera, otrs, popt, postgresql, python-mako, squidGuard, vte, w3m, xmlrpc-c, XFree86/xorg-x11, yast2-webclient 2010-08-02
SuSE SUSE-SR:2010:012 evolution-data-server, python/libpython2_6-1_0, mozilla-nss, memcached, texlive/te_ams, mono/bytefx-data-mysql, libpng-devel, apache2-mod_php5, ncpfs, pango, libcmpiutil 2010-05-25
SuSE SUSE-SR:2010:011 dovecot12, cacti, java-1_6_0-openjdk, irssi, tar, fuse, apache2, libmysqlclient-devel, cpio, moodle, libmikmod, libicecore, evolution-data-server, libpng/libpng-devel, libesmtp 2010-05-10
SuSE SUSE-SR:2010:013 apache2-mod_php5/php5, bytefx-data-mysql/mono, flash-player, fuse, java-1_4_2-ibm, krb5, libcmpiutil/libvirt, libmozhelper-1_0-0/mozilla-xulrunner190, libopenssl-devel, libpng12-0, libpython2_6-1_0, libtheora, memcached, ncpfs, pango, puppet, python, seamonkey, te_ams, texlive 2010-06-14
Ubuntu USN-890-6 cmake 2010-04-15
Ubuntu USN-890-4 python-xml 2010-01-26
Ubuntu USN-890-3 python2.4 2010-01-22
Ubuntu USN-890-2 python2.5 2010-01-21
Ubuntu USN-890-1 expat 2010-01-20
Mandriva MDVSA-2009:316-1 expat 2010-01-08
Mandriva MDVSA-2009:220-1 davfs 2010-01-05
CentOS CESA-2009:1615 xerces-j2 2009-12-17
Mandriva MDVSA-2009:212-1 python 2009-12-04
Mandriva MDVSA-2009:213-1 wxgtk 2009-12-04
Mandriva MDVSA-2009:211-1 expat 2009-12-04
Mandriva MDVSA-2009:218-1 w3c-libwww 2009-12-04
Mandriva MDVSA-2009:217-3 mozilla-thunderbird 2009-12-03
SuSE SUSE-SR:2010:005 fetchmail, krb5, rubygem-actionpack-2_1, libexpat0, unbound, apache2-mod_php5/php5 2010-02-23
Ubuntu USN-890-5 xmlrpc-c 2010-02-18
Red Hat RHSA-2009:1236-01 java-1.5.0-ibm 2009-08-28
Mandriva MDVSA-2009:220 davfs 2009-08-24
Mandriva MDVSA-2009:219 kompozer 2009-08-24
Mandriva MDVSA-2009:218 w3c-libwww 2009-08-24
Mandriva MDVSA-2009:217 mozilla-thunderbird 2009-08-23
Mandriva MDVSA-2009:216 mozilla-thunderbird 2009-08-23
Mandriva MDVSA-2009:215 audacity 2009-08-23
Mandriva MDVSA-2009:214 python-celementtree 2009-08-23
Mandriva MDVSA-2009:213 wxgtk 2009-08-23
Mandriva MDVSA-2009:212 python 2009-08-23
Mandriva MDVSA-2009:211 expat 2009-08-23
SuSE SUSE-SA:2009:053 java-1_6_0-ibm 2009-11-04
Debian DSA-1984-1 libxerces2-java 2010-01-30
Debian DSA-1921-1 expat 2009-10-28
Red Hat RHSA-2009:1615-01 xerces-j2 2009-11-30

Comments (none posted)

gnutls: certificate spoofing vulnerability

Package(s):gnutls12, gnutls13, gnutls26 CVE #(s):CVE-2009-2730
Created:August 20, 2009 Updated:February 16, 2010
Description: From the National Vulnerability Database entry: "libgnutls in GnuTLS before 2.8.2 does not properly handle a '\0' character in a domain name in the subject's Common Name (CN) or Subject Alternative Name (SAN) field of an X.509 certificate, which allows man-in-the-middle attackers to spoof arbitrary SSL servers via a crafted certificate issued by a legitimate Certification Authority."
Alerts:
Gentoo 201206-18 gnutls 2012-06-23
Gentoo 201110-05 gnutls 2011-10-10
Mandriva MDVSA-2009:308 gnutls 2009-12-03
SuSE SUSE-SR:2010:004 moodle, xpdf, pdns-recursor, pango, horde, gnome-screensaver, fuse, gnutls, flash-player 2010-02-16
Fedora FEDORA-2009-8565 gnutls 2009-08-15
Fedora FEDORA-2009-8622 gnutls 2009-08-15
SuSE SUSE-SR:2009:015 OpenOffice_org, OpenOffice_org-math, dnsmasq, gnutls, ia32el, ib-bonding-kmp-rt/kernel-rt, libxml, opera, perl-IO-Socket-SSL, xen 2009-09-15
CentOS CESA-2009:1232 gnutls 2009-08-26
CentOS CESA-2009:123 gnutls 2009-08-26
Red Hat RHSA-2009:1232-01 gnutls 2009-08-26
Mandriva MDVSA-2009:210 gnutls 2009-08-20
Ubuntu USN-809-1 gnutls12, gnutls13, gnutls26 2009-08-19
Debian DSA-1935-1 gnutls13 2009-11-17
Slackware SSA:2009-290-01 gnutls 2009-10-19

Comments (none posted)

kernel: privilege escalation

Package(s):kernel CVE #(s):CVE-2009-2698
Created:August 24, 2009 Updated:March 21, 2011
Description:

From the Red Hat advisory:

a flaw was found in the udp_sendmsg() implementation in the Linux kernel when using the MSG_MORE flag on UDP sockets. A local, unprivileged user could use this flaw to cause a local denial of service or escalate their privileges. (CVE-2009-2698, Important)

Alerts:
Mandriva MDVSA-2011:051 kernel 2011-03-18
Red Hat RHSA-2009:1469-01 kernel 2009-09-30
Red Hat RHSA-2009:1457-01 kernel 2009-09-22
CentOS CESA-2009:1233 kernel 2009-08-29
SuSE SUSE-SA:2009:046 kernel 2009-08-28
Red Hat RHSA-2009:1233-01 kernel 2009-08-27
Debian DSA-1872-1 linux-2.6 2009-08-24
CentOS CESA-2009:1222 kernel 2009-08-24
CentOS CESA-2009:1223 kernel 2009-08-24
Red Hat RHSA-2009:1222-02 kernel 2009-08-24
Red Hat RHSA-2009:1223-02 kernel 2009-08-24
Ubuntu USN-852-1 linux, linux-source-2.6.15 2009-10-22

Comments (none posted)

kernel: multiple vulnerabilities

Package(s):linux-2.6 CVE #(s):CVE-2009-2846 CVE-2009-2847 CVE-2009-2848 CVE-2009-2849
Created:August 25, 2009 Updated:October 8, 2010
Description: From the Debian advisory:

Michael Buesch noticed a typing issue in the eisa-eeprom driver for the hppa architecture. Local users could exploit this issue to gain access to restricted memory. (CVE-2009-2846)

Ulrich Drepper noticed an issue in the do_sigalstack routine on 64-bit systems. This issue allows local users to gain access to potentially sensitive memory on the kernel stack. (CVE-2009-2847)

Eric Dumazet discovered an issue in the execve path, where the clear_child_tid variable was not being properly cleared. Local users could exploit this issue to cause a denial of service (memory corruption). (CVE-2009-2848)

Neil Brown discovered an issue in the sysfs interface to md devices. When md arrays are not active, local users can exploit this vulnerability to cause a denial of service (oops). (CVE-2009-2849)

Alerts:
Mandriva MDVSA-2010:188 kernel 2010-09-23
Mandriva MDVSA-2010:198 kernel 2010-10-07
SuSE SUSE-SA:2010:012 kernel 2010-02-15
Red Hat RHSA-2009:1455-01 kernel 2009-09-29
Red Hat RHSA-2009:1466-01 kernel 2009-09-29
CentOS CESA-2009:1243 kernel 2009-09-15
CentOS CESA-2009:1438 kernel 2009-09-15
Red Hat RHSA-2009:1438-01 kernel 2009-09-15
SuSE SUSE-SA:2009:056 kernel 2009-11-16
Red Hat RHSA-2009:1540-01 kernel-rt 2009-11-03
Red Hat RHSA-2009:1243-02 kernel 2009-09-02
Red Hat RHSA-2009:1239-02 kernel-rt 2009-09-01
Red Hat RHSA-2009:1239-01 kernel-rt 2009-09-01
Fedora FEDORA-2009-9044 kernel 2009-08-27
Debian DSA-1872-1 linux-2.6 2009-08-24
Ubuntu USN-852-1 linux, linux-source-2.6.15 2009-10-22
SuSE SUSE-SA:2009:054 kernel 2009-11-11
CentOS CESA-2009:1455 kernel 2009-10-30
Fedora FEDORA-2009-10639 kernel 2009-10-21
CentOS CESA-2009:1550 kernel 2009-11-04
Red Hat RHSA-2009:1550-01 kernel 2009-11-03
Debian DSA-1928-1 linux-2.6.24 2009-11-05
Fedora FEDORA-2009-10165 kernel 2009-10-03

Comments (none posted)

libneon: man in the middle attack

Package(s):libneon0.27 CVE #(s):CVE-2009-2474
Created:August 25, 2009 Updated:December 4, 2009
Description: From the Mandriva advisory: neon before 0.28.6, when OpenSSL is used, does not properly handle a '\0' (NUL) character in a domain name in the subject's Common Name (CN) field of an X.509 certificate, which allows man-in-the-middle attackers to spoof arbitrary SSL servers via a crafted certificate issued by a legitimate Certification Authority, a related issue to CVE-2009-2408
Alerts:
Mandriva MDVSA-2009:315 libneon 2009-12-04
Ubuntu USN-835-1 neon, neon27 2009-09-21
CentOS CESA-2009:1452 neon 2009-09-22
Red Hat RHSA-2009:1452-01 neon 2009-09-21
Mandriva MDVSA-2009:228 libneon 2009-09-10
Mandriva MDVSA-2009:221 libneon0.27 2009-08-24
CentOS CESA-2009:1452 neon 2009-10-30

Comments (none posted)

neon: denial of service, man in the middle attack

Package(s):neon CVE #(s):CVE-2009-2473
Created:August 21, 2009 Updated:January 17, 2013
Description: From the Fedora advisory: There are two security issues in neon: the "billion laughs" attack against expat could allow a Denial of Service attack by a malicious server. (CVE-2009-2473), and an embedded NUL byte in a certificate subject name could allow an undetected MITM attack against an SSL server if a trusted CA issues such a cert.
Alerts:
Scientific Linux SL-gnom-20130116 gnome-vfs2 2013-01-16
Oracle ELSA-2013-0131 gnome-vfs2 2013-01-12
CentOS CESA-2013:0131 gnome-vfs2 2013-01-09
CentOS CESA-2009:1452 neon 2009-09-22
Red Hat RHSA-2009:1452-01 neon 2009-09-21
SuSE SUSE-SR:2009:018 cyrus-imapd, neon/libneon, freeradius, strongswan, openldap2, apache2-mod_jk, expat, xpdf, mozilla-nspr 2009-11-10
Mandriva MDVSA-2009:221 libneon0.27 2009-08-24
Fedora FEDORA-2009-8815 neon 2009-08-20
Fedora FEDORA-2009-8794 neon 2009-08-20
CentOS CESA-2009:1452 neon 2009-10-30

Comments (none posted)

ocsinventory: SQL injection

Package(s):ocsinventory CVE #(s):
Created:August 21, 2009 Updated:August 26, 2009
Description: SQL injection vulnerabiltiy found in GUI V.1.02
Alerts:
Fedora FEDORA-2009-8819 ocsinventory 2009-08-20
Fedora FEDORA-2009-8799 ocsinventory 2009-08-20

Comments (none posted)

php5: remote denial of service

Package(s):php5 CVE #(s):CVE-2009-2687
Created:August 25, 2009 Updated:February 23, 2010
Description: From the Ubuntu advisory: It was discovered that PHP did not properly handle certain malformed JPEG images when being parsed by the Exif module. A remote attacker could exploit this flaw and cause the PHP server to crash, resulting in a denial of service.
Alerts:
SuSE SUSE-SR:2010:005 fetchmail, krb5, rubygem-actionpack-2_1, libexpat0, unbound, apache2-mod_php5/php5 2010-02-23
CentOS CESA-2010:0040 php 2010-01-15
Red Hat RHSA-2010:0040-01 php 2010-01-13
CentOS CESA-2010:0040 php 2010-01-13
Gentoo 201001-03 php 2010-01-05
Mandriva MDVSA-2009:324 php 2009-12-07
Red Hat RHSA-2009:1461-01 Red Hat Application Stack 2009-09-23
Ubuntu USN-824-1 php5 2009-08-24
SuSE SUSE-SR:2009:017 php5, newt, rubygem-actionpack, rubygem-activesupport, java-1_4_2-ibm, postgresql, samba, phpMyAdmin, viewvc 2009-10-26
Debian DSA-1940-1 php5 2009-11-25

Comments (none posted)

pidgin: "crash" from crafted URL

Package(s):pidgin CVE #(s):
Created:August 24, 2009 Updated:August 26, 2009
Description:

From the Fedora advisory:

2.6.1 fixes an issue where pidgin can crash if you are sent a certain type of URL over Yahoo.

Alerts:
Fedora FEDORA-2009-8874 pidgin 2009-08-22
Fedora FEDORA-2009-8826 pidgin 2009-08-22

Comments (none posted)

squirrelmail: cross-site request forgery

Package(s):squirrelmail CVE #(s):
Created:August 21, 2009 Updated:August 26, 2009
Description: From the Red Hat bugzilla: It was reported that SquirrelMail did not implement protections against cross-site request forgery (CSRF) attacks. This can be exploited to e.g. change user preferences, delete emails, and potentially send emails when a logged-in user visits a malicious web page.
Alerts:
Fedora FEDORA-2009-8822 squirrelmail 2009-08-20
Fedora FEDORA-2009-8797 squirrelmail 2009-08-20

Comments (none posted)

wordpress: multiple vulnerabilities

Package(s):wordpress CVE #(s):CVE-2009-2854 CVE-2009-2851 CVE-2009-2853
Created:August 24, 2009 Updated:August 28, 2009
Description:

From the Debian advisory:

CVE-2009-2854: It was discovered that wordpress lacks authentication checks in various actions, thus allowing remote attackers to produce unauthorised edits or additions.

CVE-2009-2851: It was discovered that the administrator interface is prone to a cross-site scripting attack.

CVE-2009-2853: It was discovered that remote attackers can gain privileges via certain direct requests.

Alerts:
Debian DSA-1871-2 wordpress 2009-08-27
Debian DSA-1871-1 wordpress 2009-08-23

Comments (9 posted)

xerces-c27: stack consumption vulnerability

Package(s):xerces-c27 CVE #(s):CVE-2009-1885
Created:August 25, 2009 Updated:December 4, 2009
Description: From the CVE entry: Stack consumption vulnerability in validators/DTD/DTDScanner.cpp in Apache Xerces C++ 2.7.0 and 2.8.0 allows context-dependent attackers to cause a denial of service (application crash) via vectors involving nested parentheses and invalid byte values in "simply nested DTD structures," as demonstrated by the Codenomicon XML fuzzing framework.
Alerts:
Mandriva MDVSA-2009:223-1 xerces-c 2009-12-04
SuSE SUSE-SR:2009:014 dnsmasq, icu, libcurl3/libcurl2/curl/compat-curl2, Xerces-c/xerces-j2, tiff/libtiff, acroread_ja, xpdf, xemacs, mysql, squirrelmail, OpenEXR, wireshark 2009-09-01
Mandriva MDVSA-2009:223 xerces-c 2009-08-30
Fedora FEDORA-2009-8345 xerces-c 2009-08-07
Fedora FEDORA-2009-8350 xerces-c 2009-08-07
Fedora FEDORA-2009-8332 xerces-c27 2009-08-07
Fedora FEDORA-2009-8305 xerces-c27 2009-08-07

Comments (none posted)

Page editor: Jake Edge

Kernel development

Brief items

Kernel release status

The current development kernel is 2.6.31-rc7, released on August 21. "But apart from a couple of bigger ones (OMAP GPIO/UART fixes and the radeon/kms changes), it's really pretty small. The bulk of those 290 files changed are basically few-liners in 213 commits (shortlog below), and in general we should have cut down the regression list another tiny bit.". The short format changelog is in the announcement, along with some other descriptions of changes and areas that need testing.

The current unresolved regression count stands at 26, out of a total reported of 108.

Comments (none posted)

Kernel development news

Quotes of the week

Many kernel developers believe that userspace is burned into ROM and the only thing they can change is the kernel. That turns out to be incorrect.
-- Avi Kivity

+	if (iommu->cap == (uint64_t)-1 && iommu->ecap == (uint64_t)-1) {
+		/* Promote an attitude of violence to a BIOS engineer today */
-- David Woodhouse

You don't get a consistent filesystem with ext2, either. And if your claim is that several hundred lines of fsck output detailing the filesystem's destruction somehow makes things all better, I suspect most users would disagree with you.
-- Ted Ts'o

I recommend a sledgehammer. If you want to lose your data, you might as well have some fun.
-- Rik van Riel

Comments (9 posted)

In brief

By Jonathan Corbet
August 26, 2009
What is direct I/O, really? Linux, like many operating systems, supports direct I/O operations to block devices. But how, exactly, should programmers expect direct I/O to work? As a recent document posted by Ted Ts'o notes, there is no real specification for what direct I/O means:

It is not a part of POSIX, or SUS, or any other formal standards specification. The exact meaning of O_DIRECT has historically been negotiated in non-public discussions between powerful enterprise database companies and proprietary Unix systems, and its behaviour has generally been passed down as oral lore rather than as a formal set of requirements and specifications.

Ted's document is an attempt to better specify what is really going on when a process requests a direct I/O operation. It is currently focused on the ext4 filesystem, but the hope is to forge a consensus among Linux filesystem developers so that consistent semantics can be obtained on all filesystems.

Can you thaw out TuxOnIce? TuxOnIce is the perennially out-of-tree hibernation implementation. It has a number of nice features which are not available with the mainstream version; these features have never managed to get into a form where they could be merged. TuxOnIce developer Nigel Cunningham has recently concluded that it looks like this merger is not going to happen because the relevant people are simply too busy. He says:

Given that this has been the outcome so far, I see no reason to imagine that we're going to make any serious progress any time soon.

In response, he is now actively looking for developers who would like to take on the task of getting TuxOnIce (or, at least, parts of it) into the mainline. He has put together a "todo" list for potentially interested parties.

Lazy workqueues. Kernel developers have been concerned for years that the number of kernel threads was growing beyond reason; see, for example, this article from 2007. Jens Axboe recently became concerned himself when he noticed that his system (a modest 64-processor box) had 531 kernel threads running on it. Enough, he decided, was enough.

His response was the lazy workqueue concept. As might be expected, this patch is an extension of the workqueue mechanism. A "lazy" workqueue can be created with create_lazy_workqueue(); it will be established with a single worker thread. Unlike single-threaded workqueues, though, lazy workqueues still try to preserve the concept of dedicated, per-CPU worker threads. Whenever a task is submitted to a lazy workqueue, the kernel will direct it toward the thread running on the submitting CPU; if no such thread exists, the kernel will create it. These threads will exit if they are idle for a sufficient period.

The end result was a halving of the number of kernel threads on Jens's system. That still seems like too many threads, but it's a good step in the right direction.

Embedded x86. Thomas Gleixner started his patch series with a note that the "embedded nightmare" has finally come to the x86 architecture. The key development here is a new set of patches intended to support Intel's new "Moorestown" processor series; these patches added a bunch of code to deal with the new quirks in this processor. Rather than further clutter the x86 architecture code, Thomas decided that it was time for a major cleanup.

The result is a new, global platform_setup structure designed to tell the architecture code how to set up the current processor. It includes a set of function pointers which handle platform-specific tasks like locating BIOS ROMs, setting up interrupt handling, initializing clocks, and much more; it is a 32-part patch in all. This new structure is able to encapsulate many of the initialization-time differences between the 32-bit and 64-bit x86 architectures, the new "Moorestown" architecture, and various virtualized variants as well. It is also runtime-configurable, so a single kernel should be able to run efficiently on any of the supported systems.

O_NOSTD. Longstanding Unix practice dictates that applications are started with the standard input, output, and error I/O streams on file descriptors 0, 1, and 2, respectively. The assumption that these file descriptors will be properly set up is so strong that most developers never think to check them. So interesting things can happen if an application is run with one or more of the standard file descriptors closed.

Consider, for example, running a program with file descriptor 2 closed. The next file the program opens will be assigned that descriptor. If something then causes the program to write to (what it thinks is) the standard error stream, that output will, instead, go to the other file which had been opened, probably corrupting that file. A malicious user can easily make messes this way; when setuid programs are involved, the potential consequences are worse.

There are a number of ways to avoid falling into this trap. An application can, on startup, ensure that the first three file descriptors are open. Or it can check the returned file descriptor from open() calls and use dup() to change the descriptor if need be. But these options are expensive, especially considering that, almost all of the time, the standard file descriptors are set up just as they should be.

Eric Blake has proposed a new alternative in the form of the O_NOSTD flag. The semantics are simple: if this flag is provided to an open() call, the kernel will not return one of the "standard" file descriptors. If this patch goes in (and there does not seem to be any opposition to that), application developers will be able to use it to ensure that they are not getting any file descriptor surprises without additional runtime cost.

There is a cost, of course, in the form of a non-standard flag that will not be supported on all platforms. One could almost argue that it would be better to add a specific flag for cases where a file descriptor in the [0..2] range is desired. But that would be a major ABI change to say the least; it's not an idea that would be well received.

Linux-ARM mailing lists. Russell King has announced that the ARM-related mailing lists on arm.linux.kernel.org will be shut down immediately. He is, it seems, not happy about some of the criticism he has received about the operation of those lists. So the lists will be moving, though exactly where is not entirely clear. David Woodhouse has created a new set of lists on infradead; he appears to have moved the subscriber lists over as well. There is also a push to move the list traffic to vger, but the preservation of the full set of lists and their subscribers suggests that the infradead lists are the ones which will actually get used.

Comments (35 posted)

Page-based direct I/O

By Jonathan Corbet
August 25, 2009
An "address space" in kernel jargon is a mapping between a range of addresses and their representation in an underlying filesystem or device. There is an address space associated with every open file; any given address space may or may not be tied to a virtual memory area in a process's virtual (memory) address space. In a typical process, a number of address spaces will exist for mappings of the executable being run, files the process has open, and ranges of anonymous user memory (which use swap as their backing store). There are a number of ways for processes to operate on their address spaces, one of the stranger of which being direct I/O. A new patch series from Jens Axboe looks to rationalize the direct I/O path a bit, making it more flexible in the process.

The idea behind direct I/O is that data blocks move directly between the storage device and user-space memory without going through the page cache. Developers use direct memory for either (or both) of two reasons: (1) they believe they can manage caching of file contents better than the kernel can, or (2) they want to avoid overflowing the page cache with data which is unlikely to be of use in the near future. It is a relatively little-used feature which is often combined with another obscure kernel capability: asynchronous I/O. The biggest consumers, by far, of this functionality are large relational database systems, so it is not entirely surprising that a developer currently employed by Oracle is working in this area.

When the kernel needs to do something with an address space, it usually looks into the associated address_space_operations structure for an appropriate function. So, for example, normal file I/O are handled with:

    int (*writepage)(struct page *page, struct writeback_control *wbc);
    int (*readpage)(struct file *filp, struct page *page);

As with the bulk of low-level, memory-oriented kernel operations, these functions operate on page structures. When memory is managed at this level, there is little need to worry about whether it is user-space or kernel memory, or whether it is in the high-memory zone. It's all just memory. The function which handles direct I/O looks a little different, though:

    ssize_t (*direct_IO)(int rw, struct kiocb *iocb, const struct iovec *iov,
			 loff_t offset, unsigned long nr_segs);

The use of the kiocb structure shows the assumption that direct I/O will be submitted through the asynchronous I/O path. Beyond that, though, the iovec structure pointing to the buffers to be transferred comes directly from user space, and it contains user-space addresses. That, in turn implies that the direct_IO() function must itself deal with the process of getting access to the user-space buffers. That task is generally handled in VFS-layer generic code, but there's another problem: the direct_IO() function cannot be called on kernel memory.

The kernel does not normally need to use the direct I/O paths itself, but there is one exception: the loopback driver. This driver allows an ordinary file to be mounted as if it were a block device; it can be most useful for accessing filesystem images stored within disk files. But files accessed via a loopback mount may well be represented in the page cache twice: once on each side of the loopback mount. The result is a waste of memory which could probably be put to better uses.

It would, in summary, be nice to change the direct_IO() interface to avoid this memory waste, and to make it a little bit more consistent with the other address space operations. That is what Jens's patch does. With that patch, the interface becomes:

    struct dio_args {
	int rw;
	struct page **pages;
	unsigned int first_page_off;
	unsigned long nr_segs;
	unsigned long length;
	loff_t offset;

	/*
	 * Original user pointer, we'll get rid of this
	 */
	unsigned long user_addr;
    };

    ssize_t (*direct_IO)(struct kiocb *iocb, struct dio_args *args);

In the new API, many of the relevant parameters have been grouped into the dio_args structure. The memory to be transferred can be found by way of the pages_array. The higher-level VFS direct I/O code now handles the task of mapping user-space buffers and creating the pages array.

The impact on the code is, for the most part, small; it's mostly a matter of moving the location where the translation from user-space address to page structures is done. The current code does have a potential problem in that it only processes one I/O segment at a time, possibly creating performance problems for some kinds of applications. That mode of operation is not really wired into the system, though, and can presumably be fixed at some point.

The only other objection came from Andrew Morton, who does not like the way Jens implemented the process of working through the array of page structures. The index into this array (called head_page) is built into struct dio and hidden from the code which is actually working through the pages; that leads to potential confusion, especially if the operation aborts partway through. Andrew called it "a disaster waiting to happen" and recommended that indexing be made explicit where the pages array is processed.

That is a detail, though - albeit a potentially important one. The core goals and implementation appear to have been received fairly well. It seems highly unlikely that this code could be ready for the 2.6.32 merge window, but we might see it aiming for the mainline in a subsequent development cycle.

Comments (4 posted)

Development statistics for 2.6.31

By Jonathan Corbet
August 26, 2009
The Linux Foundation recently announced the release of an updated version of its kernel authorship report, co-written by LWN editor Jonathan Corbet. The information there is interesting, but, since it stops with the 2.6.30 kernel, it also is ancient history at this point. 2.6.30 came out two full months ago, after all. LWN readers, certainly, are used to more current information. Since 2.6.31 is getting close to ready, it seems like the right time to look at this development cycle and see where the code came from.

As of this writing (just after the release of 2.6.31-rc7), the 2.6.31 development cycle had seen the incorporation of 10,663 non-merge changesets from 1,146 individual developers. These patches added almost 903,000 lines of code and removed just over 494,000 lines, for a net growth of just over 408,000 lines. According to Rafael Wysocki's August 25 report, this work introduced 108 regressions into the kernel, 26 of which still lack a resolution.

The largest individual contributors in the 2.6.31 development cycle were:

Most active 2.6.31 developers
By changesets
Ingo Molnar2762.6%
Peter Zijlstra2602.4%
Paul Mundt2041.9%
Takashi Iwai1501.4%
Bartlomiej Zolnierkiewicz1491.4%
Steven Rostedt1391.3%
Tejun Heo1341.3%
Johannes Berg1331.2%
Magnus Damm1191.1%
Mike Frysinger1151.1%
roel kluin1051.0%
Greg Kroah-Hartman1010.9%
Erik Andrén1000.9%
Paul Mackerras850.8%
Mark Brown850.8%
Bill Pemberton820.8%
Jaswinder Singh Rajput790.7%
Ben Dooks720.7%
Joe Perches720.7%
Alexander Beregalov710.7%
By changed lines
Bartlomiej Zolnierkiewicz22074918.3%
Jerry Chuang784416.5%
Forest Bond508344.2%
David Daney400523.3%
Jerome Glisse386043.2%
Vlad Zolotarov232601.9%
Ingo Molnar226141.9%
James Smart192091.6%
Bill Pemberton172491.4%
dmitry pervushin145321.2%
Greg Kroah-Hartman132341.1%
Wai Yew CHAY127411.1%
Michael Chan118871.0%
Linus Walleij116261.0%
Paul Mundt107350.9%
Peter Zijlstra102020.8%
Zhu Yi101970.8%
Ben Dooks101500.8%
Johannes Berg95320.8%
Kalle Valo92630.8%

Ingo Molnar always shows up near the top of the changeset statistics. He has, as usual, contributed work all over the core kernel and x86 architecture code, but the bulk of his work this time is in the performance counters code; most of Peter Zijlstra's contributions were also in this area. The merging of this fast-changing subsystem caused those two developers to be responsible for 5% of the patches going into the 2.6.31 release. Paul Mundt wrote a vast number of Super-H architecture patches, and Takashi Iwai contributed large numbers of ALSA patches.

#5 on the changesets list is Bartlomiej Zolnierkiewicz, who also comes out on top in terms of the number of lines changed. He contributed a few IDE patches, despite having handed off responsibility for that subsystem, but most of his work went into the cleaning-up of Ralink wireless drivers in the staging tree. This cleanup resulted in the removal of an amazing 208,000 lines of code. Jerry Chuang added the RealTek RTL8192SU wireless driver (to staging), Forest Bond added the VIA Technologies VT6655 driver (to staging), David Daney did a bunch of MIPS work (including adding the Octeon Ethernet driver to the staging tree), and Jerome Glisse added kernel mode setting support for Radeon graphics chipsets.

As we have seen in the past few development cycles, the staging tree is the source of much of the change in the kernel tree. The nature of that change is, itself, changing, though. The rush of adding out-of-tree drivers to the staging tree has slowed considerably; we're starting to see more work dedicated to fixing up the code which is already there.

The developers contributing to 2.6.31 were supported by a minimum of 194 employers. The most active of those were:

Most active 2.6.31 employers
By changesets
(None)170416.0%
Red Hat158714.9%
Intel8788.2%
(Unknown)8467.9%
IBM6676.3%
Novell6145.8%
Renesas Technology3453.2%
Fujitsu2232.1%
(Consultant)2122.0%
Analog Devices2122.0%
Oracle1751.6%
Nokia1311.2%
AMD1291.2%
Atheros Communications1181.1%
MontaVista1041.0%
Xelerated AB1000.9%
(Academia)920.9%
NetApp910.9%
HP860.8%
Wolfson Microelectronics850.8%
By lines changed
(None)31180325.8%
Red Hat12483110.3%
Realtek784416.5%
Intel625595.2%
Broadcom518064.3%
Logic Supply514014.3%
(Unknown)471653.9%
Cavium Networks400863.3%
IBM399913.3%
Novell319792.6%
Renesas Technology316742.6%
(Consultant)236592.0%
Emulex192091.6%
University of Virginia176071.5%
Nokia162341.3%
Embedded Alley Solutions152291.3%
Creative Technology127411.1%
Oracle117041.0%
Analog Devices107600.9%
Texas Instruments106390.9%

The top group in either category is developers working on their own time, followed by Red Hat, which merged a few large chunks of code this time around.

A look at non-author signoffs (a hint as to which subsystem maintainers admitted the patches into the mainline) shows a continuation of recent trends:

Top non-author signoffs in 2.6.31
Individuals
David S. Miller96410.1%
Ingo Molnar9489.9%
Greg Kroah-Hartman5826.1%
John W. Linville5756.0%
Andrew Morton5696.0%
Mauro Carvalho Chehab5355.6%
Linus Torvalds2542.7%
James Bottomley2372.5%
Benny Halevy1912.0%
Paul Mundt1591.7%
Employers
Red Hat368638.7%
Novell106111.1%
Intel8298.7%
Google5726.0%
(None)4224.4%
IBM3834.0%
Linux Foundation2542.7%
Oracle2282.4%
Panasas1932.0%
(Consultant)1681.8%

49.8% of the patches going into the mainline for 2.6.31 passed through the hands of developers working for just two companies: Red Hat and Novell. Linux kernel developers work for a large number of companies, but subsystem maintainers are increasingly concentrated in a very small number of places.

In summary, it is a fairly typical development cycle for the kernel in recent times. The number of changes is high (but not a record), as is the number of developers. The transient effect of the staging tree is beginning to fade; it is becoming just another path for drivers heading into the mainline. As a whole, the process seems to be functioning in a smooth and robust manner.

(As always, your editor would like to thank Greg Kroah-Hartman for his assistance in the preparation of these statistics.)

Comments (1 posted)

HWPOISON

August 26, 2009

This article was contributed by Jon Ashburn

One downside to the ever-increasing memory size available on computers is an increase in memory failures. As memory density increases, error rates also rise. To offset this increased error rate, recent processors have included support for "poisoned" memory, an adaptive method for flagging and recovering from memory errors. The HWPOISON patch recently developed by Andi Kleen and Fengguang Wu provides the Linux kernel support for memory poisoning. Thus, when HWPOISON is coupled with the appropriate fault-tolerant processors, Linux users can enjoy systems that are more tolerant to memory errors in spite of increased memory densities.

Memory errors are classified as either soft (transient) or hard (permanent). In soft errors, cosmic rays or random errors can toggle the state of a bit in a SRAM or DRAM memory cell. In hard errors, memory cells become physically degraded. Hardware can detect - and automatically correct - some of these errors via Error Correcting Codes (ECC). While single bit data errors can be corrected via ECC, multi-bit data errors cannot. For these uncorrectable errors, the hardware typically generates a trap which, in turn, causes a kernel panic.

The blanket action of crashing the machine for all uncorrected soft and hard memory errors is sometimes over-reactive. If the detected memory error never actually corrupts executing software, then ignoring or isolating the error is the most desirable action. Memory "poisoning", with its delayed handling of errors, allows for a more graceful recovery from and isolation of uncorrected memory errors rather than just crashing the system. However, memory poisoning requires both hardware and kernel support.

The HWPOISON patch is very timely: Intel's recent preview of its Xeon processor (codenamed Nehalem-EX) promises support for memory poisoning. Intel has included its Machine Check Abort (MCA) Recovery architecture in Nehalem-EX. Originally developed for ia64 processors, Intel's MCA Recovery architecture supports memory poisoning and various other hardware failure recovery mechanisms. While, HWPOISON adopted Intel's usage of the term "poisoning", this should not be confused with the unrelated Linux kernel concept of poisoning: writing a pattern to memory to catch uninitialized memory.

While the specifics of how hardware and the kernel might implement memory poisoning varies, the general concept is as follows. First, hardware detects an uncorrectable error from memory transfers into the system cache or on the system bus. Alternatively, memory may be occasionally "scrubbed." That is, a background process may initiate an ECC check on one or more memory pages. In either case, the hardware doesn't immediately cause a machine check but rather flags the data unit as poisoned until read (or consumed). Later, when erroneous data is read by executing software, a machine check is initiated. If the erroneous data is never read, no machine check is necessary. For example, a modified cache line written back to main memory may have a data word error that is marked as poisoned. Once the poisoned data is actually used (loaded into a processor register, etc.), a machine check occurs, but not before. Thus, any poisoning machine check event may happen long after the corresponding data error event.

HWPOISON is a poisoned data handler invoked by the low-level Linux machine check code. Where possible, HWPOISON attempts to gracefully recover from memory errors, and contain faulty hardware to prevent future errors. At first glance, an obvious solution for the poison handler would focus on the specific process and memory address(es) associated with the data error. However, this is infeasible for two reasons. First, the offending instruction and process cannot be determined due to delays between the data error consumption and execution of the poison handler. These delays include asynchronous hardware reporting of the machine check event, and delayed execution of the handler via a workqueue. Thus, a different process may be executing by the time the HWPOISON handler is ready to act. Second, bad-memory containment must be done at a level where the kernel actually manages memory. Thus, HWPOISON focuses on memory containment at the page granularity rather than the low granularity supported by Intel's MCA Recovery hardware.

HWPOISON finds the page containing the poisoned data and attempts to isolate this page from further use. Potentially corrupted processes can then be located by finding all processes that have the corrupted page mapped. HWPOISON performs a variety of different actions. Its exact behavior depends upon the type of corrupted page and various kernel configuration parameters.

To enable the HWPOISON handler, the kernel configuration parameter MEMORY_FAILURE must be set. Otherwise, hardware poisoning will cause a system panic. Additionally, the architecture must support data poisoning. As of this writing, HWPOISON is enabled for all architectures to make testing on any machine possible via a user-mode fault injector, which is detailed below.

The handler must allow for multiple poisoning events occurring in a short time window. HWPOISON uses a bit in the flags field of a struct page to mark and lock a page as poisoned. Since page flags are currently in short supply, this choice was not made without consternation and debate by kernel hackers. See this LWN article for further details about this issue. In any case, this bit allows previously poisoned pages to be ignored by the handler.

The handler ignores the following types of pages: 1) pages that have been previously poisoned, 2) pages that are outside of kernel control (an invalid page frame number), 3) reserved kernel pages, and 4) pages with usage count of zero, which implies either a free or higher order kernel page. The poisoned bit in the flags field serves as a lock allowing rapid-fire poisoning machine checks on the same page to be handled only once by ignoring subsequent calls to the handler. Reserved kernel pages and zero count pages are ignored with the peril of a system panic. However, these pages containing critical kernel data cannot be isolated. Thus, HWPOISON has no useful options for recovery.

In addition to ignoring pages, possible HWPOISON actions include recovery, delay, and failure. Recovery means HWPOISON took action to isolate a page. Ignore, failure, and delay are all similar in that the page was not completely isolated, except for flagging the page as poisoned. With delay, handling can be safely postponed until a later time when the page might be referenced. By delaying, some transient errors may not reoccur or may be irrelevant. HWPOISON delays any action on kernel slab or buddy allocator pages or free pages. With failure, HWPOISON could, but does not support handling the page. HWPOISON takes an action of failure on unknown or huge pages. Huge pages fail since reverse mapping is not supported to identify the process which owns the page.

Clean pages in either the swap or page cache can be easily recovered by invalidating the cache entry for these pages. Since these pages have a duplicate backing copy on disk, the in-memory cache copy can be invalidated. Unlike clean pages, dirty pages in these caches have differences between the memory and disk copies. Thus, poisoned dirty pages may have important data corruption. However, dirty pages in the page cache are recovered by invalidation of the cache. Additionally, a page error is set for the dirty page cache page so subsequent user system calls on the file associated with the page will return an I/O error. Dirty pages in the swap cache are handled in a delayed fashion. The dirty flag is cleared for the page and the page swap cache entry is maintained. On a later page fault the associated application will be killed.

To recover from poisoned, user-mapped pages, HWPOISON first finds all user processes which mapped the corrupted page. For clean pages with backing store, HWPOISON need not take recovery action since the process does not need to be killed. Dirty pages are unmapped from all associated processes, which are subsequently killed. Two VM sysctl parameters are supported by HWPOISON with respect to killing user processes: vm.memory_failure_early_kill and vm.memory_failure_recovery. Setting the vm.memory_failure_early_kill parameter causes an immediate SIGBUS to be sent to the user process(es). The kill is done using a catchable SIGBUS with BUS_MCEERR_AO. Thus, processes can decide how they want to handle the data poisoning. The vm.memory_failure_recovery parameter delays the killing: the page is merely unmapped by HWPOISON. When this unmapped page is actually referenced at a later time then a SIGBUS will be sent.

An HWPOISON patch git repository is available at

    git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6.git hwpoison

Since faulty hardware that supports data poisoning is not easy to come by, a fault injection test harness mm/hwpoison-inject.c has also been developed. This simple harness uses debugfs to allow failures at an arbitrary page to be injected.

While HWPOISON was developed for x86-based machines, interest has been expressed by supporters of other Linux server architectures, such as ia64 and sparc (discussed here). Thus, the patch may proliferate on future Linux server distributions, allowing users of future Linux servers to enjoy increased fault tolerance. Now that Intel is supporting MCA Recovery on x86 machines, some desktop users may also enjoy its benefits in the near future.

Comments (23 posted)

Patches and updates

Kernel trees

Linus Torvalds Linux 2.6.31-rc7 ?
Thomas Gleixner 2.6.31-rc6-rt5 ?
Thomas Gleixner 2.6.31-rc6-rt6 ?
Thomas Gleixner 2.6.31-rc7-rt8 ?

Architecture-specific

Core kernel code

Development tools

Device drivers

Documentation

Filesystems and block I/O

Memory management

Networking

Virtualization and containers

Benchmarks and bugs

Miscellaneous

Page editor: Jonathan Corbet

Distributions

News and Editorials

Test driving pre-releases of Ubuntu and openSUSE

August 26, 2009

This article was contributed by Ivan Jelic

In this article we will look at pre-releases of Ubuntu and openSUSE. The latest versions at the time were Ubuntu 9.10 Alpha 4 and openSUSE 11.2 Milestone 6. We will look at the planned features and see how each one is stacking up.

Ubuntu Karmic Alpha 4

Back in February, Mark Shuttleworth announced Karmic Koala and revealed the plans for an even speedier boot process, a new look, and new applications for cloud computing. "During the Karmic cycle we want to make it easy to deploy applications into the cloud, with ready-to-run appliances or by quickly assembling a custom image." Since then the blueprints for Karmic have been updated with the plans for new features.

So far Alpha 4 looks much the same as 9.04, with minor changes in the GDM login screen and a new default wallpaper. According to the release schedule, the artwork deadline won't be until September 24, 2009, so while the Karmic incoming artwork page shows a lot of activity, we'll have to wait to see the final choices for the new appearance.

Ubuntu Karmic Alpha 4

Alpha 4 enables GRUB 2 by default for new installations. Overall, testing this new feature was painless. The boot loader found and listed all operating systems on the test machine, just like GRUB 1 did. The setup on the test machine is plain, however, without LVM or password protection, which is noted not to work in the Alpha 4 release announcement. For more detailed information please refer to the GRUB 2 testing wiki page, which contains the results of the community testing.

Ubuntu 9.10 targets the 2.6.31 Linux kernel, so the current alpha ships a kernel based on 2.6.31-rc5. HAL deprecation, which started in Alpha 1, moves storage device and hotkey handling over to the DeviceKit subsystem. Again, the transition went relatively smoothly, since the hotkeys and disks were managed almost as well as in 9.04. The wireless key now switches on wifi and bluetooth together.

The Intel video driver architecture is being moved from EXA to UXA during the Karmic release cycle, which should solve the performance regressions in Jaunty. Unfortunately, the test machine we used is based on Nvidia graphics, so we couldn't test this. According to this Phoronix article, the problem wasn't solved in Alpha 3:

We also wanted to deliver new OpenGL results from Ubuntu 9.10 Alpha 3 using an Intel 945 IGP found in the Dell Mini 9, but that was to no avail. The Intel graphics performance was bad in Ubuntu 9.04, but at least World of Padman, OpenArena, Tremulous, and Urban Terror were able to run successfully. With Ubuntu 9.10 Alpha 3 on the Dell Mini 9 and with each of these games being run through the Phoronix Test Suite, the system would lock-up at various points.

Ext4 is now the default filesystem for new installations. This gives a performance boost to Karmic, at least my system seemed faster than it did using 9.04 on ext3 partitions.

Like Alpha 3, Alpha 4 ships GNOME 2.27.4, which introduced a default instant messaging application transition from Pidgin to Empathy. It seems that Ubuntu developers were thinking only about the technical benefits, since there is no tool for account and data migration. Other Ubuntu applications are shipped with new versions, like OpenOffice 3.1.1 RC1 and Firefox 3.5.2. Ubuntu One, Canonical's cloud computing storage service is enabled by default during Karmic development, providing the company's service out of the box. That's not all, Alpha 4 introduces Karmic Amazon EC2 test images, as mentioned in the original announcement.

Over in Kubuntu land, KDE 4.3 is still being integrated into Alpha 4. This release continues Kubuntu's Netbook effort, with the Plasma Netbook shell addition. Netbook shell is planned for Kubuntu 4.4, but thanks to the cooperation between Kubuntu and KDE developers, it is planned to be integrated in Karmic. The Kubuntu Netbook Remix is very nice, stable and fast, with some interesting ideas and concepts. At the same time, this effort depends on the Intel video driver subsystem progress. A full list of new features in the latest Kubuntu Alpha is available here.

Ubuntu Alpha 4 is interesting release. Fresh software, GRUB 2, Ext4, Empathy and Ubuntu One by default, and the Kubuntu Netbook remix are some of the new features already implemented. We will have to wait for the beta release to see the new look, even faster boot times and GRUB2 optimizations. The performance improvements we experienced during the test are mostly related to the filesystem speed up and the SQLite performance regression that was solved in the latest kernel releases.

openSUSE 11.2 Milestone 6

The latest openSUSE 11.2 milestone was released just after two important announcements. It was decided that KDE would be the default desktop in 11.2 and newer releases, as proposed in openSUSE's openFATE feature tracking system. Also openSUSE 11.2 and beyond will be supported 18 months after the release (2 release cycles plus 2 months). Previous releases received updates for 24 months.

openSUSE 11.2 Milestone 6

According to the roadmap, features were frozen at Milestone 5. Patches for software on the DVD will still be accepted during Milestone 6, but this pre-release is feature complete. From here on its bug fixes and some spit and polish.

All the planned features were working during the installation process. OpenSUSE has finished it's ext4 transition, marking it as a default for new installations. A new partition interface is there too. 11.2 will be based on the 2.6.31 kernel, so Milestone 6 uses the 2.6.31-rc6 "desktop flavor." Milestone 5 introduced the desktop kernel flavor by default, optimized for desktop and laptop machines.

The first testing steps in the freshly-installed Milestone 6 system revealed a bug. For some reason, KnetworkManager failed to connect to the wireless network, without any error or notification. I eventually used the terminal to connect to the internet. Ubuntu accomplished this task flawlessly.

The new YaST QT4 interface was speedy and well organized, and showed improved package and repository management. The package management system distribution upgrade feature (like Debian's dist/full-upgrade) will be supported officially from 11.2 and on.

openSUSE 11.2 YaST

11.2 ships with KDE 4.3 which provided a smooth, fast and elegant desktop experience. The new default desktop theme is Air. The GNOME desktop is also shipped with a new appearance, named Sonar. GNOME 2.28 is targeted for 11.2 so v2.27 ships with Milestone 6. The latest versions of other popular programs are on the DVD and live ISOs, including Firefox 3.5 and OpenOffice 3.1. There is also social networking support on the desktop in the form of a microblogging plasmoid and applications including Kopete and Pidgin, Facebook support, KDE Twitter and the Identica client Choqok). GIMP is available on the KDE live CD, showing an effort into integrating GTK applications in KDE4. OpenOffice comes with the KDE4 theme and file choosing dialogs, Firefox is shipped with the Oxygen theme.

Nearly all of the planned features for 11.2 are present and working, so Milestone 6 is quite close to what the final 11.2 will look like, which is promising overall. YaST seems to be faster than it was in the past, desktops and applications run faster thanks to ext4 and improvements in the new releases. The only problem we had was the previously mentioned connectivity issue. According to the 11.2 roadmap, the remaining milestones and release candidates will focus on bug squashing, polishing and localization. The final release is expected in November so openSUSE 11.2 should be a very good release indeed.

Comments (3 posted)

New Releases

CentOS-4.8 released

The long-awaited CentOS 4.8 release is available. "This release corresponds to the upstream vendor U8 release. Also released in the updates repository for CentOS-4.8 are all updates through August 20th, 2009."

Full Story (comments: none)

Fedora 12 Alpha released

The Fedora 12 alpha release is out. There's a lot of stuff in this release; see the announcement for the list. "Automatic Bug Reporting Tool - This release provides ABRT, a service that automatically reports application crashed to Fedora, without requiring the end user to have any special knowledge on error reporting."

Full Story (comments: 23)

Mandriva Linux 2010 beta version is available

Mandriva has announced the release of Mandriva Linux 2010 Beta for 32 and 64 bit systems. "These isos are hybrid isos which means you can dump it on an USB key to install it. Use Mandriva-seeds, it's as easy as a click! This beta version comes with many major updates and new exciting stuff..."

Comments (none posted)

Moblin v2.0 beta refresh for netbooks

A refresh of the Moblin v2.0 beta for Netbooks is available for download and testing. There are no new features, just lots of bug fixes and tweaks.

Full Story (comments: none)

openSUSE 11.2 Milestone 6 Released

The openSUSE Project has announced that openSUSE 11.2 Milestone 6 (M6) is available. This release includes new packages on the GNOME and KDE live CDs, Python 3.1, and Linux kernel 2.6.31-rc6. Click below for more information.

Full Story (comments: none)

Distribution News

Debian GNU/Linux

Bits from the release team: Release goals, schedule, state of the union

In these bits from the Debian release team (click below) you can find out more about Release Goals, Release planning, Release state, and Release preparations. "The current state of unstable and testing isn't very good and we would like to change this with your help."

Full Story (comments: none)

Mini-DebConf in Taiwan

There will be a mini-DebConf in Taiwan at ICOS (International Conference on Open Source) in Taipei, Taiwan; September 26-27, 2009. (Thanks to Paul Wise)

Comments (none posted)

Mandriva Linux

Noteworthy Mandriva Cooker changes

Frederik Himpe takes a look at some recent changes in Mandriva Cooker. "Mandriva's boot splash is now provided by Plymouth, the same technology used by Fedora. Together with kernel mode setting (currently enabled for Intel graphics chipsets in the standard Mandriva kernel), this will provide a high resolution boot splash and high resolution virtual consoles and seamless switching between virtual consoles and X."

Comments (none posted)

SUSE Linux and openSUSE

openSUSE to default to KDE

openSUSE board chair Michael Löffler has announced that openSUSE will be defaulting to the KDE desktop starting with openSUSE 11.2. LWN looked at the discussion two weeks ago, and now a decision has been made. "We want to make clear that both desktops are considered equal citizens within the openSUSE Project, and this will not have any impact on the quality of the GNOME desktop within openSUSE. GNOME will continue to be offered as a top- level installation choice, and we will continue to strive to provide the best GNOME and KDE desktop experience." Click below for the full announcement.

Full Story (comments: 16)

Ubuntu family

Minutes from the Ubuntu Technical Board meeting

Click below for the minutes from the August 25, 2009 meeting of the Ubuntu Technical Board. Topics include a Review of outstanding actions, Developer Membership Board, Archive reorganisation, Check up on community bugs, Drivers for Ubuntu, and Base-2 prefix names.

Full Story (comments: none)

Distribution Newsletters

DistroWatch Weekly, Issue 317

The DistroWatch Weekly for August 24, 2009 is out. "Despite the ever increasing power of modern computer hardware, lightweight distributions designed for older or underpowered systems continue to flourish. One of them, Puppy Linux, has become a rather popular choice in recent years, mainly due to its optimised performance and careful choice of integrated applications. This week's issue of DistroWatch weekly takes a look at the latest release of Puppy Linux, version 4.2.1. In the news section, the openSUSE project has decided to return to its roots and make KDE the default desktop on its installation media once again, Novell continues to promote SUSE Studio as the best tool for creating custom Linux-based appliances, Mandriva integrates Plymouth into its boot process and removes all traces of KDE 3 from its distribution, and Sabayon Linux launches the first development build of its upcoming 5.0 release in the form of an internal test. Finally, take a critical look at the updated layout of our distribution pages - as always, any feedback and suggestions are most welcome! Happy reading!"

Comments (none posted)

Fedora Weekly News 190

The Fedora Weekly News for August 23, 2009 is out. "This issue kicks off with an announcement of the next FUDCon, to be held in Toronto, Canada, in early December, along with update on the Fedora 12 release schedule. In Marketing news, Fedora Insight will be launched along with the Fedora 12 beta timeframe, and a test version of zikula is now available. Highlights from the most recent Test day and Fit and Finish meeting, along with much detail on work towards Fedora 12 is covered in the Quality Assurance beat. In Translation news, updates from the Fedora Localization Project, including new FLP members, freeze break requests for comps and initscripts, as well as updated Fedora 12 translation schedule. In Art/Design news, coverage of recent discussion on design schedule, generally speaking. Also news of a new icon artist who has joined the Design team. Our issue rounds out with virtualization news, with updates on Fedora virtualization for Fedora 12, and also detail on recent discussion regarding the Dom0 kernel under Xen on Fedora 11. We hope you enjoy this issue of FWN!"

Full Story (comments: none)

OpenMoko Community Updates

The OpenMoko Community Updates for August 19, 2009 covers Qalee, VisualBoyAdvance 1.7.2, PISI 0.4, and much more.

Comments (none posted)

OpenSUSE Weekly News/85

This issue of the OpenSUSE Weekly News covers Change in Maintenance for openSUSE 11.2 and Future Versions, Joe Brockmeier: OpenSource World, Ian MacGregor: Finding files on the command line, Lydia Pintscher: Social Media Guide for free Software Projects, ITManagement/Bruce Byfield: OpenOffice.org and the 'Ribbons' Interface Brouhaha, and more.

Comments (none posted)

Ubuntu Weekly Newsletter #156

The Ubuntu Weekly Newsletter for August 22, 2009 is out. "In this issue we cover: Ubuntu Developer Week, Karmic UNR packages now open for translation, Another reason to become an Official Ubuntu Member, Next Ubuntu Global Jam, Free Art of Community Book for Approved LoCo teams, Ubuntu Arizona Team Installfest, Launchpad screencasts, Ubuntu Forums Community Interview, Computers without internet are no fun, One Hundred Paper Cuts Round 7, Support the Ubuntu Global Jam, and much, much more!"

Full Story (comments: none)

Distribution reviews

Fedora 12 Alpha to bring many Linux desktop improvements (Phoronix)

Phoronix has posted a short review of Fedora 12 Alpha. "Like all Fedora releases, Fedora 12 will contain a number of new (mostly updated) upstream packages from KDE 4.3 to GNOME 2.28 on the desktop to the Linux 2.6.31 kernel underneath. Fedora 12 will also be shipping with all of the latest X bits, which by the time of its release come in November, hopefully will mean an official X.Org 7.5 / X Server 1.7 build, but for the Fedora 12 Alpha there are already development snapshots in place of the major components."

Comments (1 posted)

Page editor: Rebecca Sobol

Development

A look at Robot OS

By Rebecca Sobol
August 25, 2009

Robot OS (or ROS) is described as: "an open-source, meta-operating system for your robot. It provides the services you would expect from an operating system, including hardware abstraction, low-level device control, implementation of commonly-used functionality, message-passing between processes, and package management." It also provides tools and libraries for software development, along with some applications that should be common to all robots.

There has not been much collaboration in the robot world, according to this New Scientist article:

[ROS.org]

Each robot is individually manufactured to meet a specific need and more than likely built in isolation. This sorry state of affairs is set to change. Roboticists have begun to think about what robots have in common and what aspects of their construction can be standardised, hopefully resulting in a basic operating system everyone can use. This would let roboticists focus their attention on taking the technology forward.

ROS got its start as an open source project developed by Willow Garage and Stanford University. Now Willow Garage is focusing on ROS and has started the ROS wiki to further collaborative efforts among other robot developers. ROS is all about reusing code as much as possible among robots. While ROS is implemented in Python and C++, there are also experimental libraries written in Lisp, Octave and Java. ROS is a developer framework but people using other developer frameworks can use ROS libraries and package repositories. In fact, ROS has been integrated with other robot software frameworks such as Player and Orca.

The Robot OS Concepts document explains how the project is organized. "ROS has three levels of concepts: the Filesystem level, the Computation Graph level, and the Community level." The Filesystem level contains the resources that are stored on disk. "The Computation Graph is the peer-to-peer network of ROS processes that are processing data together. The basic Computation Graph concepts of ROS are Nodes, Master, Parameter Server, Messages, Services, Topics, and Bags, all of which provide data to the Graph in different ways." The ROS Community level includes the online Wiki, the code repository and other networked resources.

ROS code can be installed on a variety of Linux distributions including Debian, Ubuntu, Fedora and Arch. There is also an experimental Mac OS X port. After installing the ROS packages the developer can use the rosconfig tool to install a configuration of ROS on their machine. The ROS configuration can also be shared on multiple machines.

The rosconfig documentation explains the utility:

rosconfig is a command-line tool for installing, configuring, and building a ROS installation. The motivation for rosconfig is the kernel's "menuconfig" or "xconfig" tools, which set up a build environment for you. The idea is that you can use the rosconfig tool, combined with a YAML description of the system you want, and poof it sets it up for you -- which may entail SVN checkouts, network-filesystem symlinks, etc.

Robot OS includes an extensive package list that includes documented development tools, libraries, drivers and applications. In some ways ROS may be thought of as both a software development kit and an "app store". The ROS wiki also includes developer documentation and tutorials. For additional information you can also join the ROS users mailing list or browse the archives. Bugs in the core software or feature requests can be filed on the ROS bug tracker.

If the robotics community can come together around ROS, it will allow developers to improve and perfect the common robotics functions instead of simply reinventing them. New and interesting robotics innovations should come about as developers build higher level software on top of the underlying platform.

Comments (1 posted)

On properly packaging perl

By Jonathan Corbet
August 21, 2009
The perl5-porters recently saw a rather acrimonious discussion on how the Red Hat and Fedora distributions choose to package the Perl language and associated modules. Things have calmed down (the parties have essentially agreed to disagree), but an interesting issue remains: what can development projects do if they're unhappy with how distributors are treating their code?

When Tom Christiansen gets irritated with somebody, one can generally be assured that they will know about it. In this case, Tom let the world know that he was not happy with the way Red Hat packages and distributes Perl. The complaint is that, if one installs "perl," one does not get the entire Perl 5.10 distribution. Tom says:

Of these, the most egregious omission is CPAN.pm itself, as its absence precludes the easy fix of using CPAN to grab what Redhat forgot. Other pieces notably missing include Text::Harness and h2xs -- although h2ph *is* included! Go figger.

As it happens, it is possible to get the entire 5.10 distribution; one simply needs to install "perl-core" instead of plain "perl." Tom asserts that this arrangement is confusing; "perl-core" should not be a superset of "perl"; the package called simply "perl" (which is what most users will install) should be the thing that the Perl developers shipped. He says that Red Hat's arrangement causes confusion, with users not knowing if they actually have "Perl" or not.

Beyond that, it goes against the developers' intent, which included providing users with all the basic modules they needed from the outset. Many users, it seems, will not (or cannot) add extension modules to their systems; the Perl developers tried to ensure that these users would have a minimally-functioning system available to them. But, alas:

But why did we bother? For all that effort is now undermined, even unravelled, if now vendors choose to strip down the real Perl distribution by paring away pieces that we've decided to ship. I don't envy them their positioning themselves as forkers, doomed to winnow and weed and forever maintain, but that's their own problem. Worse is when they present this stripped minidistro as the real thing. It's a misleading and confusing state of affairs which should be discouraged.

Tom "spot" Callaway explained Red Hat's packaging decisions:

At the time of the split, we had a LOT of packages which depended on simply "perl". We also had a lot of people who wanted individual perl modules updated that live within the "perl tarball", which is a complicated task to undertake. By splitting the perl modules out into separate subpackages we were at least able to allow people to build newer RPMs. In addition, the split had the added benefit that people who did not need nor want all of the components built with perl could get a system without them. This lowered the default Fedora installation footprint.

Tom says that the package naming could be changed, but that would have a number of unfortunate effects on users. That said, there are some possibilities for improving the situation, but the best course is not entirely clear. Tom Christiansen was not completely happy with the explanation, but he also seemed to understand the pressures which led to Red Hat's way of doing things.

In the near term, it looks like things will not change a whole lot be changing; see this comment for details. But we're likely to see this kind of debate come back in the future. Distributors serve as a sort of middleman, tweaking and refining upstream packages in ways which they think improve things - either for their users or for themselves. Distributor changes can include splitting up the package (as with Perl), removing user-unfriendly messages (as has happened with cdrtools), making the software more consistent with the rest of the distribution, fixing security problems, removing software seen as legally problematic, and so on. It's part of what distributors do, and users generally appreciate the effort.

Upstream developers are harder to convince; they have released the software in the form that they think is best, so it can be discouraging to see others messing with it. Most developers suffer in stoic silence, taking comfort in the fact that their software is finding a wider audience. But others have taken various types of action in an attempt to influence how distributors treat their code.

Consider some examples. The kernel developers changed their release process dramatically with the (successful) goal of reducing the number of patches applied by distributors. Some developers do their own packaging. Jeff Waugh has suggested that much of the packaging role of distributions could be "disintermediated" entirely, with users routinely getting their software directly from its developers. Jörg Schilling inserted (widely ignored) statements into his code stating the alteration of some parts of the program would be a copyright violation. Firefox makes aggressive use of its trademarks to control the changes made by distributors. Daniel Bernstein took things to a (non-free) extreme, only allowing qmail to be distributed if it had not been modified at all; this restriction inhibited qmail development for years until the code was finally released into the public domain.

In the end, releasing code under a free license means giving up control over what is done with it. So free software developers will always be at the mercy of distributors, who will always have the right to make the changes they think are necessary. The occasional grumble notwithstanding, the system works pretty well; all of the parties involved share an interest in having the software work as well as possible for their users.

Comments (79 posted)

System Applications

Audio Projects

Rivendell 1.5.2 released

Version 1.5.2 of the Rivendell radio station automation system has been announced. "This is a maintenance release of Rivendell. The following issues have been corrected: Fixed problems with build the Rivendell Pluggable Authentication Module (PAM) plug-in. Fixed problems with hard-start events in RDAirPlay. Added checks in rddbcheck(8) to verify cart/cut/audio consistency. Fixed a regression that caused audio exports to fail when the path contained one or more spaces."

Full Story (comments: none)

Database Software

Benetl 3.0 released

Version 3.0 of Benetl, an ETL tool for files using postgreSQL and MySQL, has been announced. "This new version is correcting several bugs: - a bug with entities groups names - a bug (since 2.7) with creation script - a bug in labels for connection trouble".

Full Story (comments: none)

MySQL Community Server 5.0.85 released

Version 5.0.85 of MySQL Community Server has been announced, it includes numerous bug fixes. "MySQL Community Server 5.0.85, a new version of the popular Open Source Database Management System, has been released. This and future releases in the MySQL Community Server 5.0 series share version numbers with their MySQL Enterprise Server counterparts."

Full Story (comments: none)

PostgreSQL 8.5alpha1 released

The PostgreSQL project is trying something new by releasing 8.5alpha1 - the first alpha release they have ever done. "We've started doing alpha releases on the 'release early, release often' principle, so that our advanced users will try new features and new code as early as possible and get back to us with adjustments and problems. These alphas are not stable and should never be used in production; they are for developers to try new features only." See the release notes for information on what will be in 8.5.

Full Story (comments: none)

PostgreSQL Weekly News

The August 23, 2009 edition of the PostgreSQL Weekly News is online with the latest PostgreSQL DBMS articles and resources.

Full Story (comments: none)

Embedded Systems

BusyBox 1.15.0 (unstable) released

Unstable version 1.15.0 of BusyBox, a collection of command line utilities for embedded systems, is out. "Changes since previous release: New applets: * beep: new applet by Bernhard * dnsdomainname: new applet - the alias to "hostname -d" * flash_lock, flash_unlock: new applets by Thierry Reding (thierry.reding AT avionic-design.de) * ifplugd: new applet by Maksym Kryzhanovskyy (xmaks AT email.cz) * scriptreplay: new applet * volname: new applet".

Comments (none posted)

Web Site Development

Django 0.96.5 released

Version 0.96.5 of the Django web development platform has been announced. "The recent security-oriented releases of Django included what was intended to be the final supported release in the Django 0.96 series. However, an issue was discovered with the patch applied to the 0.96 release branch; a portion of the updated code was not correctly applied, and as a result the runserver command no longer functioned at all. To remedy this, tonight we have issued Django 0.96.5, which includes the full corrected code."

Comments (none posted)

luban 0.2a1 released

Version 0.2a1 of luban has been announced. "The luban package is a python-based, cross- platform user interface builder. It provides UI developers a generic language to describe the user interface, and then render that description as web or native interfaces."

Full Story (comments: 1)

Desktop Applications

Audio Applications

Ardour Shortcut Cheatsheets available

The first edition of the Ardour Shortcut Cheatsheets have been announced. "I'm happy to release an initial version of the Ardour shortcut cheatsheet - a handy 2-sided tri-fold guide to almost every shortcut in Ardour. There is one version for X Window (Linux, FreeBSD, etc) and another for OS X (reflecting different conventions about modifier keys in both systems.) These cheatsheets will hopefully convey a lot of Ardour's power that is generally hidden to most users."

Comments (none posted)

Data Visualization

Python cgkit 2.0.0 alpha 9 released

Version 2.0.0 alpha 9 of Python cgkit has been announced, it includes new capabilities and bug fixes. "The Python Computer Graphics Kit is a collection of utilities and Python modules that simplify working with 3D data of any kind. The provided functionality can be used in domains such as scientific visualization, Virtual Reality, VFX, animation or even games. Currently, the package is implemented in Python and C++ where the C++ part is wrapped and made available in Python."

Full Story (comments: none)

Desktop Environments

GNOME 2.28.0 beta 2 (2.27.91) released

Version 2.28.0 beta 2 of the GNOME desktop has been announced. "This is the seventh development release, and the second beta, towards our 2.28 release that will happen in September 2009. By now most things are in place, and your mission is easy: Go download it. Go compile it. Go test it. And go hack on it, document it, translate it, fix it. With this release we are now string frozen".

Full Story (comments: none)

GNOME Software Announcements

The following new GNOME software has been announced this week: You can find more new GNOME software releases at gnomefiles.org.

Comments (none posted)

Simon - speech activated user interface for KDE (KDE.News)

KDE.News has a look at simon, which is a speech-activated interface for KDE. It looks like an interesting project, but, unfortunately, may suffer from some licensing snags: "HTK, the toolkit responsible for the HMM [Hidden Markov Model] evaluation is distributed under GPL-incompatible, restrictive license that prevents redistribution. In order to install simon, one must separately download HTK from their website which requires registration. The source is available, and they encourage you to modify and contribute to it, but it cannot be redistributed. [...] Additionally, Julius, used for the voice recognition has an attribution clause which causes problems with the GPL in a way that is reminiscent of the old-style BSD license (the one with the advertising clause). Any research conducted with simon would thereby require a reference to the Julius authors in the bibliography."

Comments (19 posted)

KDE Software Announcements

The following new KDE software has been announced this week: You can find more new KDE software releases at kde-apps.org.

Comments (none posted)

Xorg Software Announcements

The following new Xorg software has been announced this week: More information can be found on the X.Org Foundation wiki.

Comments (none posted)

Desktop Publishing

LyX 1.6.4 released

Version 1.6.4 of LyX, a GUI front-end to the TeX typesetter, has been announced. "This is the fourth maintenance release in the 1.6.x series. This release covers, amongst many minor improvements, fixes to some rather severe issues".

Full Story (comments: none)

Financial Applications

KMyMoney 1.0 released

The long-awaited KMyMoney 1.0 release is out. "Over 2 years of development have resulted in the addition of budgets, a forecast feature, many new reports, report charts, a complete redesign of the import feature, which allows for a much easier migration from other application and a swifter synchronization with online banking." This release was reviewed in the August 20 LWN Weekly Edition.

Comments (3 posted)

Graphics

pycairo release 1.8.8 is available

Version 1.8.8 of pycairo, a set of Python bindings for the Cairo multi-platform 2D graphics library, has been announced. "General Changes: Pycairo 1.8.8 requires cairo 1.8.8 (or later). Move from CVS to git. Add support for the waf build tool. Updated methods The PDF/PS/SVGSurface constructors now accept None as a filename."

Full Story (comments: none)

Interoperability

Wine 1.1.28 announced

Version 1.1.28 of Wine has been announced. Changes include: "- Support for IRDA protocol. - Faster initial wineprefix creation. - Axis remapping with evdev joysticks. - More image formats in WindowsCodecs. - Various bug fixes."

Comments (none posted)

Music Applications

Simple Sysexxer 0.2 beta released

Version 0.2 beta of Simple Sysexxer, a MIDI utility, has been announced. "I have completely rewritten Simple Sysexxer. As I need feedback how it copes with various MIDI devices, here's a first public beta release."

Full Story (comments: none)

Miscellaneous

Transifex 0.7 released

Version 0.7 of Transifex has been announced, it includes new features and bug fixes. "Indifex and the Transifex Community are proud to announce the newest version of their flagship Open Translation Platform, Transifex 0.7 codenamed "Pyro". Transifex is a web application that gives translators a simple yet featureful web interface to manage translations for multiple remotely-hosted projects. Files to be translated can be translated straight from the user's browser or retrieved for offline translation, and various translation statistics can be read at a glance."

Full Story (comments: none)

Languages and Tools

Assembly Language

Linux_Logo in assembly language 0.40 released

Vince Weaver has released version 0.40 of his Linux_Logo in assembly language has been announced. "This is a port of my linux_logo program to use raw assembly language. By using assembly and syscalls, you can have extremely fast and small binaries that don't use libc at all! So far I have 6502, 8086, alpha, arm, arm_thumb, avr32, crisv32, ia64, m68k, m88k, microblaze, mips, parisc, pdp-11, ppc, s390, sh3, sparc, vax, x86, x86_64, and z80 versions."

Full Story (comments: none)

C

GCC 4.4.2 Status Report

The August 20, 2009 edition of the GCC 4.4.2 Status Report has been published. "The 4.4 branch is open for commits under the usual release branch rules. The timing of the 4.4.2 release (at least two months after the 4.4.1 release, at a point when there are no P1 regressions open for the branch) has yet to be determined."

Full Story (comments: none)

GCC 4.5.0 Status Report

The August 23, 2009 edition of the GCC 4.5.0 Status Report has been published. "The trunk is in Stage 1. As previously stated, we expect that Stage 1 will last through at least the end of August. In my opinion, the single hardest issue we face with respect to 4.5 is how to handle the VTA branch. I've consulted with various people who have a lot of experience with GCC and the opinions on this work seem to be quite mixed. I've looked at the branch myself and can't seem to form a firm opinion. The problem it's setting out to solve is definitely important, but the scope of this particular solution frightens me. On the other hand, I can't see a viable better solution. So, I'd be very interested in further comments on this topic."

Full Story (comments: none)

Caml

Caml Weekly News

The August 25, 2009 edition of the Caml Weekly News is out with new articles about the Caml language.

Full Story (comments: none)

Perl

Perl 5.10.1 is released

Version 5.10.1 of Perl has been announced. For change information, see the Use Perl RC2 release announcement.

Full Story (comments: none)

Rakudo Perl 6 development release #20 (use Perl)

use Perl has published the announcement for Rakudo Perl 6 development release #20, an implementation of Perl 6 on the Parrot Virtual Machine. "Beginning with this release, Rakudo Perl builds from an "installed Parrot" instead of using Parrot's build tree. This release of Rakudo requires Parrot 1.5.0. For the latest information on building and using Rakudo Perl, see the README file section titled "Building and invoking Rakudo"."

Comments (none posted)

Python

pyxser 1.2r released

Version 1.2r of pyxser has been announced, the main change is support for encoded serialization of Unicode strings. "I'm pleased to announce pyxser-1.2r, a Python-Object to XML serializer and deserializer. This module package it's completely written in C and licensed under LGPLv3."

Full Story (comments: none)

Python-URL! - weekly Python news and links

The August 23, 2009 edition of the Python-URL! is online with a new collection of Python article links.

Full Story (comments: none)

Tcl/Tk

Tcl-URL! - weekly Tcl news and links

The August 19, 2009 edition of the Tcl-URL! is online with new Tcl/Tk articles and resources.

Full Story (comments: none)

Debuggers

Valgrind 3.5.0 is available

Version 3.5.0 of Valgrind has been announced. "Valgrind is an open-source suite of simulation based debugging and profiling tools. With the tools that come with Valgrind, you can detect many memory management and threading bugs. You can also perform detailed time and space profiling to help speed up and slim down your programs. 3.5.0 is a feature release with many significant improvements and the usual collection of bug fixes."

Full Story (comments: none)

IDEs

Pydev 1.4.8 released

Version 1.4.8 of Pydev and Pydev Extensions have been announced, changes include new features and bug fixes. "PyDev is a plugin that enables users to use Eclipse for Python, Jython and Iron Python development -- making Eclipse a first class Python IDE -- It comes with many goodies such as code completion, syntax highlighting, syntax analysis, refactor, debug and many others."

Full Story (comments: none)

Version Control

GIT 1.6.4.1 released

Version 1.6.4.1 of the GIT distributed version control system has been announced, it includes numerous bug fixes and documentation work.

Full Story (comments: none)

Page editor: Forrest Cook

Linux in the news

Recommended Reading

40 years of Unix (BBC)

The BBC covers the history of Unix, which celebrates its 40th anniversary. "The computer world is notorious for its obsession with what is new - largely thanks to the relentless engine of Moore's Law that endlessly presents programmers with more powerful machines. Given such permanent change, anything that survives for more than one generation of processors deserves a nod. Think then what the Unix operating system deserves because in August 2009, it celebrates its 40th anniversary. And it has been in use every year of those four decades and today is getting more attention than ever before." (Thanks to Paul Sladen).

Comments (57 posted)

Linux Needs Open Multimedia on the Web (Linux Magazine)

Christopher Smart comments on the state of Linux and web media in a Linux Magazine article. "The situation on the Linux desktop is particularly horrible. Thanks to the lack of a free and open framework for multimedia, users need closed source applications and patent encumbered codecs to view content on the web. This is outrageous! Imagine if sending an email required a proprietary application which had to be compatible with the recipient’s system? What if to view a plain HTML website one had to pay royalties? Imagine further that these were controlled by a single company. If such a world had existed in the past, then the Internet would not have become the useful medium that it is today. We must make sure this doesn’t happen in the future."

Comments (18 posted)

The SCO Problem

SCO v. Novell appellate decision: $$ from Sun deal affirmed as Novell's; rest remanded for jury trial (Groklaw)

Groklaw has a report on SCO's appeal of the summary judgment for Novell. It was a partial victory for SCO, remanding the issue of the UNIX copyright ownership back to the court in Utah to be decided by a jury. "The issue was whether it is appropriate to decide matters on summary judgment, and this court thought the APA was complex enough and ambiguous enough that a jury trial is more appropriate. Here's the heart of it all: 'But so long as sufficient evidence could lead a rational trier of fact to resolve the dispute in favor of either party, granting either party's dueling motions for summary judgment would be inappropriate.'" It would seem that the bankruptcy trustee for SCO, who has not yet been appointed, will get to decide where things go from here, but we haven't heard the last of this case.

Comments (none posted)

Companies

Updegrove: So What About Those XML Patents, Anyway?

Andy Updegrove writes about the XML patents owned by Microsoft and i4i. "As always, we come back to the usual elephant in the software bedroom. Do patents really do any good, or only harm in the marketplace? They didn't help little i4i much. Microsoft apparently destroyed its business despite it's patent application, and i4i hasn't received a dime yet. Would i4i have launched its business around its technology even if it hadn't been able to get a patent? Of course it would have. Another new software company (if not more) makes a similar decision every day. Always has, and always will."

Comments (6 posted)

Analysis: How Moonlight 2.0 Fits into Novell's Linux and Open Source Plans (Linux.com)

Over at Linux.com, Todd R. Weiss analyzes Moonlight, looking at how it fits into Novell's (and Microsoft's) plans. "Creating an open source version of Silverlight became important to Novell two years ago, said Joseph Hill, Novell's product manager for the Mono and Moonlight 2.0 projects. That's when Microsoft announced that it would be using its .Net development environment to create Silverlight content, Hill said. That was important to Novell, he said, because millions of .Net developers were already out there and could then use Silverlight to add rich Web features. That scenario meant that Linux desktop users would ultimately be left in the cold because all of that .Net-created content wouldn't be optimized to give them the same rich experiences. And when Microsoft said it wouldn't build Silverlight and .Net tools for Linux, Novell worked out an arrangement with Microsoft to provide those pieces, by creating the Moonlight project."

Comments (8 posted)

Legal

Public Citizen: Federal court using scare tactics to block sharing of public records

Public Citizen looks at the response of the U.S. federal court system to the Firefox "RECAP" extension, which enables sharing of court documents. "Please be aware that RECAP is 'open-source' software, which means it can be freely obtained by anyone with Internet access and could possibly be modified for benign or malicious purposes. This raises the possibility that the software could be used for facilitating unauthorized access to restricted or sealed documents." Of course, the courts could nullify this "threat" by simply making public documents, well, public.

Comments (11 posted)

Interviews

On the PySide - interview (KDEDot)

Jos Poortvliet talks with Matti Airas about PySide. "I'm having the time of my life being able to work in Nokia's Maemo division, surrounded with top-notch talents and a can-do atmosphere. :-) I've been working with the PySide project from the very beginning and am now acting as a "liaison officer" between Nokia and INdT, helping them with the PyMaemo and PySide efforts. I've been a Linux user since, what, 1997 and have contributed to various FOSS projects. I did a PhD on speech processing (go figure!) before joining the Nokia Python team."

Comments (none posted)

Reviews

64-bit Chrome takes centre stage in Linux land (The Register)

The Register takes a look at a 64-bit Linux port for the Chrome browser. "Google engineers have been beavering away at a 64-bit version of the company's Chrome browser for the Linux platform. According to Chrome developer Dean McNamee, Mountain View's V8 team has been tinkering with a Chromium Linux 64-bit for several weeks now. V8, in case you were wondering, is the web kingpin's JavaScript engine."

Comments (8 posted)

Introducing Guitarix (Linux Journal)

Dave Phillips takes a look at Guitarix. "According to its developers Guitarix is a monaural amplifier designed for creating the distorted sounds typical of thrash, heavy metal, blues, and other rock guitar styles. In fact, Guitarix is capable of much more than distortion sounds. In this article I'll remove the software speaker grill and pull out the virtual chassis to take a closer look at the sonic possibilities of this "simple mono amplifier"."

Comments (2 posted)

Health Check: Mono (The H)

Over at The H, there is a look at the Mono project, including its history and current status. "And much of the current controversy around de Icaza and Mono surrounds the adoption, or proposed adoption, of Mono as a framework for the rapid development of applications for GNOME, and the proprietorial nature of the technologies that Mono uses. The story is rife with irony, not least because .NET was Microsoft's attempt to undermine Java, and the free software movement had its own issues with the proprietorial nature of Java."

Comments (27 posted)

Page editor: Forrest Cook

Announcements

Non-Commercial announcements

FSF launches campaign against Microsoft and proprietary software

The Free Software Foundation has launched a public awareness campaign entitled Windows 7 Sins that protests against Microsoft and proprietary software. "The campaign outlines seven major areas where proprietary software in general and Microsoft Windows in particular hurt all computer users: invading privacy, poisoning education, locking users in, abusing standards, leveraging monopolistic behavior, enforcing Digital Restrictions Management (DRM), and threatening user security."

Full Story (comments: none)

Become a GNOME Ambassador

The GNOME Press Team has been announced. "The GNOME Marketing team is pleased to announce the creation of the GNOME Press Team. The Press Team is a subset of the Marketing team, with a focus on tracking GNOME events worldwide, and communicating and engaging with journalists all over the world to help spread GNOME news."

Full Story (comments: none)

Commercial announcements

Tuxera signs up with Microsoft

Tuxera, a company based around the NTFS-3G filesystem project, seems to have come up with a new line of business based on the recent FAT patent scare: they have signed a deal with Microsoft and are offering proprietary "exFAT" filesystem drivers for Linux. "As an open source company, we feel excited to sign an intellectual property agreement with Microsoft. They are a great partner, and I am confident that our agreements, and this collaboration, will ensure a bright future for file system interoperability and data portability that benefits device manufacturers and consumers alike."

Full Story (comments: 32)

Wing IDE 3.2 released

Wingware has announced the release of Wing IDE 3.2.0, a commercial Python IDE. Features include: "* Support for Python 3.0 and 3.1 * Rewritten version control integration with support for Subversion, CVS, Bazaar, git, Mercurial, and Perforce * Added 64-bit Debian, RPM, and tar file installers for Linux * File management in Project view * Auto-completion in the editor obtains completion data from live runtime when the debugger is active * Perspectives: Create and save named GUI layouts and optionally automatically transition when debugging is started * Improved support for Cython and Pyrex (*.pyx files) * Added key binding documentation to the manual * Added Restart Debugging item in Debug menu and tool bar".

Full Story (comments: none)

New Books

Education and Certification

Linux Professional Institute events at LinuxCon

The Linux Professional Institute has announced its LinuxCon events. The conference takes place on September 21-23 in Portland, Oregon. "The Linux Professional Institute (LPI), the world's premier Linux certification organization, announced that they will offer LPI exams at the first annual LinuxCon on Monday, September 21, 2009 in Portland, Oregon. During LinuxCon LPI will also host a community consultation on their Linux certification program on Tuesday September 22, 2009."

Full Story (comments: none)

Calls for Presentations

CONFidence 2009 cfp

A call for participation has gone out for CONFIdence 2009, submissions are due by September 15. "Calling all practitioners in the field of IT security! The 6th edition of CONFIdence 2009 2.0, is taking place in Warsaw on November 19/20, 2009."

Full Story (comments: none)

Upcoming Events

Libre Graphics Meeting 2010 in Brussels Announced

The 2010 Libre Graphics Meeting has been scheduled for May 26-29 in Brussels, Belgium. "The Libre Graphics Meeting exists to unite and accelerate the efforts behind Free, Libre and Open Source creative software. Since 2006, this annual meeting is the premiere conference for developers, users and supporters of projects such as GIMP, Inkscape, Blender, Krita, Scribus, Hugin, the Open Clipart Library, and the Open Font Library gather to work on interoperability, shared standards, and new ideas. Work at prior LGMs has pushed the state of the art in important areas such as color management, cross-application sharing of assets, and common formats." Click below for the full announcement.

Full Story (comments: 2)

Announcing the Ubuntu Global Jam

The Ubuntu Global Jam has been announced. "The Ubuntu Global Jam is an incredible opportunity for the Ubuntu community to unite together around the weekend of 2nd - 4th Oct 2009 to work together to improve Ubuntu. Everyone is able to contribute to the Jam, and everyone is welcome and encouraged to get involved. Curious about how to make a real difference to Ubuntu? This is a great chance to make that difference."

Full Story (comments: none)

PyCon Argentina 2009

PyCon Argentina 2009 takes place in Buenos Aires, Argentina on September 4-5. "The first national Python conference in Argentina "PyCon Argentina 2009", also the first PyCon at a Spanish-speaking country, will be held on Buenos Aires next month. There are more than 30 programmed talks covering many different subjects, short lightning talks, and two special speakers: Collin Winter (Unladen Swallow) and Jacob Kaplan-Moss (Django)."

Full Story (comments: none)

FSF to host a mini-summit on Women in Free Software

The Free Software Foundation (FSF) will be hosting a mini-summit on "Women in Free Software" on September 19. Participants will include Deborah Nicholson of the FSF, Stormy Peters of the GNOME Foundation, and Hillary Rettig, free software activist and author of The Lifelong Activist, along with a small group of other women to discuss how to increase and sustain participation by women in free software. "Historically, women have been underrepresented in the technology and free software communities, and despite recent increases in the adoption of free software, the situation has not significantly improved. Deborah Nicholson said, 'At the summit, we will discuss existing entry points, why women don't always feel invited, and when they do, why they don't always stay. Individual projects have found ways to make women welcome and we will look at some of these examples and discuss how to build on those successes. We will also identify new strategies and tactics to help create a balanced community.'" Click below for the full announcement.

Full Story (comments: 413)

Events: September 3, 2009 to November 2, 2009

The following event listing is taken from the LWN.net Calendar.

Date(s)EventLocation
August 31
September 4
Ubuntu Developer Week Internet, Internet
September 1
September 4
JBoss World Chicago Chicago, IL, USA
September 1
September 4
Red Hat Summit Chicago Chicago, IL, USA
September 1
September 5
DrupalCon Paris, France
September 4
September 5
PyCon 2009 Argentina Buenos Aires, Argentina
September 7
September 11
XtreemOS summer school Oxford, UK
September 7
September 8
FRHACK.ORG IT Security Conference Besançon, France
September 8
September 12
DjangoCon '09 Portland, OR, USA
September 10
September 11
Fedora Developer Conference 2009 Brno, Czech Republic
September 12 Evil Robot Conference (Free Conference, Free Software) Raleigh, NC, USA
September 14
September 18
Django Bootcamp at the Big Nerd Ranch Atlanta, Georgia, USA
September 15
September 17
International Conference on IT Security Incident Management and IT Forensics Stuttgart, Germany
September 17
September 18
Internet Security Operations and Intelligence 7 San Diego, CA, USA
September 17
September 20
openSUSE Conference Nuremberg, Germany
September 18
September 19
BruCON Brussels, Belgium
September 18
September 20
EuroBSDCon 2009 Cambridge, UK
September 19 Atlanta Linux Fest 2009 Atlanta, Georgia, USA
September 19 Beijing Perl Workshop Beijing, China
September 19 Software Freedom Day Worldwide
September 20 SELinux Developer Summit 2009 @ LinuxCon Portland, Oregon, USA
September 21
September 23
LinuxCon 2009 Portland, OR, USA
September 21
September 25
Ruby on Rails Bootcamp with Charles B. Quinn Atlanta, USA
September 23
September 25
Linux Plumbers Conference Portland, Oregon, USA
September 23
September 25
Recent Advances in Intrusion Detection Saint-Malo, Brittany, France
September 23
September 25
OpenSolaris Developer Conference 2009 Hamburg, Germany
September 23 Bacula Conference 2009 Cologne, Germany
September 24
September 26
Joomla! and Virtue Mart Day Germany Bad Nauheim, Germany
September 25
September 27
International Conference on Open Source Taipei, Taiwan
September 25
September 27
Ohio LinuxFest Columbus, Ohio, USA
September 26
September 27
PyCon India 2009 Bengaluru, India
September 26 Open Source Conference 2009 Okinawa Ginowan City, Okinawa, Japan
September 26
September 27
Mini-DebConf at ICOS Taipei, Taiwan
September 28
September 30
Real time Linux workshop Dresden, Germany
September 28
September 30
X Developers' Conference 2009 Portland, OR, USA
September 28
October 2
Sixteenth Annual Tcl/Tk Conference (2009) Portland, OR 97232, USA
September 30 HCC!Linux Theme Day Houten, Netherlands
October 1
October 2
Open World Forum Paris, France
October 2
October 4
7th International Conference on Scalable Vector Graphics Mountain View, CA, USA
October 2 LLVM Developers' Meeting Cupertino, CA, USA
October 2
October 4
Linux Autumn (Jesien Linuksowa) 2009 Huta Szklana, Poland
October 2
October 4
Ubuntu Global Jam Online, Online
October 2
October 3
Open Source Developers Conference France Paris, France
October 2 Mozilla Public DevDay/Open Web Camp 2009 Prague, Czech Republic
October 3
October 4
T-DOSE 2009 Eindhoven, The Netherlands
October 3
October 4
EU MozCamp 2009 Prague, Czech Republic
October 7
October 9
Jornadas Regionales de Software Libre Santiago, Chile
October 8
October 10
Utah Open Source Conference Salt Lake City, Utah, USA
October 9
October 11
Maemo Summit 2009 Amsterdam, The Netherlands
October 10
October 12
Gnome Boston Summit Cambridge, MA, USA
October 10 OSDN Conference 2009 Kiev, Ukraine
October 12
October 14
Qt Developer Days Munich, Germany
October 15
October 16
Embedded Linux Conference Europe 2009 Grenoble, France
October 16
October 17
Pycon Poland 2009 Ustron, Poland
October 16
October 18
Pg Conference West 09 Seattle, WA, USA
October 16
October 18
German Ubuntu conference Göttingen, Germany
October 18
October 20
2009 Kernel Summit Tokyo, Japan
October 19
October 22
ZendCon 2009 San Jose, CA, USA
October 21
October 23
Japan Linux Symposium Tokyo, Japan
October 22
October 24
Décimo Encuentro Linux 2009 Valparaiso, Chile
October 23
October 24
Ontario GNU Linux Fest Toronto, Ontario, Canada
October 23
October 24
PGCon Brazil 2009 Sao Paulo, Brazil
October 24
October 25
PyTexas Fort Worth, TX, USA
October 24
October 25
FOSS.my 2009 Kuala Lumpur, Malaysia
October 24 Florida Linux Show 2009 Orlando, Florida, USA
October 24 LUG Radio Live Wolverhampton, UK
October 25 Linux Outlaws and Ubuntu UK Podcast OggCamp Wolverhampton, UK
October 26
October 28
Techno Forensics and Digital Investigations Conference Gaithersburg, MD, USA
October 26
October 28
GitTogether '09 Mountain View, CA, USA
October 26
October 28
Pacific Northwest Software Quality Conference Portland, OR, USA
October 27
October 30
Linux-Kongress 2009 Dresden, Germany
October 28
October 30
Hack.lu 2009 Luxembourg
October 28
October 30
no:sql(east). Atlanta, USA
October 29 NLUUG autumn conference: The Open Web Ede, The Netherlands
October 30
November 1
YAPC::Brasil 2009 Rio de Janeiro, Brazil
October 31 Linux theme day with ubuntu install party Ede, Netherlands
November 1
November 6
23rd Large Installation System Administration Conference Baltimore, MD, USA

If your event does not appear here, please tell us about it.

Page editor: Forrest Cook


Copyright © 2009, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds