[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
|
|
Subscribe / Log in / New account

Sparse gets a maintainer

The "sparse" utility has long been one of Linux's best-kept secrets. It is a static analysis tool which can find a wide variety of bugs in the kernel code base; sparse is a useful tool, but it can be surprisingly hard to find. It has never had a web page, and almost no distributions package it. Interested users must, instead, track down the git tree or Dave Jones's snapshot directory.

Sparse was originally written by Linus Torvalds, but he has not done much with it for a while, and he recently suggested that somebody else should take it over:

Anyway, I suspect it would be better if people didn't consider me the maintainer for sparse, simply because it does the things I really cared about, and as a result I'm not really very active.

As a result of this discussion, sparse has a new maintainer: Josh Triplett. Josh started things off with sparse 0.1, the first-ever sparse release with a version number. He has set up a new git tree for sparse, and, even, a sparse web page.

Josh was kind enough to answer some questions posed by your editor. It turns out that he has been working with sparse for a while; it was part of his PhD work, where he enhanced it to be able to verify proper use of the read-copy-update (RCU) primitives. That work continued at IBM over the summer, where he was able to work on RCU verification with Paul McKenney.

As a result, his first priority for sparse in the near future is the continuation of the RCU work. This effort is also expanding into locking verification in general; some of the necessary annotations and resulting fixes have gone into the 2.6.18 and 2.6.19-rc kernels. Josh also plans to work on the elimination of false positives and on noise reduction in general. Then, there's various patches from other developers which have been floating around for a while and really need to be merged into the sparse mainline.

In terms of project management, Josh says:

I plan to continue making regular Sparse releases, and I'd like to get Sparse packaged in various distributions, at least in their "experimental" sections or equivalent. Any potential distribution packagers, feel free to join the linux-sparse list, and let me know what I can do to help or to get things going more smoothly.

Getting sparse into distributions could only help increase its use - and bring about a corresponding reduction in bugs in shipped code. This will be especially true if Josh succeeds in another one of his goals: expanding sparse usage beyond the kernel into user-space projects. X.org seems like it could be an early sparse adopter.

Longer-term, Josh wants to look at more advanced techniques which can look at larger chunks of a program and find potential bugs. Part of this effort will require attracting other researchers interested in static analysis to the sparse platform. Says Josh:

I feel that several classes of bugs exist in the Linux kernel and in userspace code which simply should not exist, because the tools exist to find and eliminate almost all of them. This includes bugs like "scheduling while atomic", __init-related bugs, errors on error paths, and many locking-related bugs.

One can only imagine that free software users all over are wishing Josh the best of luck in his effort to track down and get rid of all those unnecessary bugs.

Index entries for this article
KernelDevelopment tools/Sparse
Kernelsparse


to post comments

Sparse gets a maintainer

Posted Nov 9, 2006 2:55 UTC (Thu) by rahulsundaram (subscriber, #21946) [Link] (1 responses)

Sparse has recently been submitted for review in Fedora. I guess the new developments cited here are responsible for the upsurge in interest

https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=212513

Sparse gets a maintainer

Posted Nov 9, 2006 14:08 UTC (Thu) by mdomsch (guest, #5920) [Link]

Yes, it's in Fedora Extras for FC{5,6} and -development.

Sparse gets a maintainer

Posted Nov 9, 2006 6:50 UTC (Thu) by zhllg (guest, #26587) [Link]

It has been in Gentoo portage for at least more than one year.

$ eix sparse
[I] sys-devel/sparse
Available versions: (~)2005.10.28 (~)2006.09.23
Installed: 2006.09.23(12:16:44 PM 09/29/2006)
Homepage: http://kernel.org/pub/scm/devel/sparse/
Description: C semantic parser

License is DFSG-incompatible

Posted Nov 9, 2006 10:43 UTC (Thu) by bgoglin (subscriber, #7800) [Link] (4 responses)

The license (OSL v1.1) seems to be considered non-free in Debian because of patent/reciprocity issues. So it cannot be included in Debian. Kind of sad...

http://wiki.debian.org/DFSGLicenses#head-2b7e4b3507dcc565...

License is DFSG-incompatible

Posted Nov 9, 2006 18:12 UTC (Thu) by branden (guest, #7029) [Link] (2 responses)

I agree that it's kind of sad, but it's also kind of intriguing.

Debian's problem is with the following clause, which is short enough to quote:

10) Mutual Termination for Patent Action. This License shall terminate automatically and You may no longer exercise any of the rights granted to You by this License if You file a lawsuit in any court alleging that any OSI Certified open source software that is licensed under any license containing this "Mutual Termination for Patent Action" clause infringes any patent claims that are essential to use that software.

So, basically, anybody who asserts a patent claim in *any* court against *any* code under the OSL[1], loses their copyright license to modify/distribute sparse.

This is an interesting choice of license given the reception that most Linux kernel developers have given the GPLv3.

RMS and Linux kernel hackers agree that DRM is bad.

RMS and Linux kernel hackers agree that software patents are bad.

According to Linux kernel hackers, a software license is an inappropriate forum in which to fight the badness of DRM. Hence his choice of the OSL for sparse.

However, according to Linus at least, a software license is not an inappropriate forum in which to fight the badness of software patents.

I'd be fascinated to hear why this is in no way inconsistent. My guess would have to be that Linus (and perhaps other kernel hackers who signed on to the joint critique of GPLv3) feel that software patents restrict freedoms they care about, whereas DRM restricts freedoms they don't care about.

[1] It's actually broader than that. It's "any OSI Certified open source software that is licensed under any license containing this ... clause." (Emphasis added.)

License is DFSG-incompatible

Posted Nov 9, 2006 21:25 UTC (Thu) by vonbrand (guest, #4458) [Link] (1 responses)

Why are you assuming that Linus choose this license specifically because of this clause?

License is DFSG-incompatible

Posted Nov 17, 2006 0:39 UTC (Fri) by arcticwolf (guest, #8341) [Link]

Why are you assuming that Linus didn't read/understand the license or didn't care about this clause?

I think the question is a valid one: if Linus read the license carefully (and seriously, does anyone think he didn't?), why was he OK with this if he's not OK with similar provisions concerning DRM instead of patents in the GPLv3 drafts, for example?

I'm actually pretty sure he's got a good answer (he *is* Linus, after all, and experience shows that he pretty much always has a good reason for what he does), but I'm rather curious what it could be.

License is DFSG-incompatible

Posted Nov 12, 2006 15:33 UTC (Sun) by lool (subscriber, #36299) [Link]

(But it was uploaded to Debian's non-free component, and accepted today.)


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