13.02.2013 Views

2 Debian Code Search: An Overview

2 Debian Code Search: An Overview

2 Debian Code Search: An Overview

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

2 <strong>Debian</strong> <strong>Code</strong> <strong>Search</strong>: <strong>An</strong> <strong>Overview</strong><br />

“<strong>Debian</strong> is a computer operating system composed of software packages released<br />

as free and open source software primarily under the GNU General Public License<br />

along with other free software licenses.” [21]<br />

<strong>Debian</strong> <strong>Code</strong> <strong>Search</strong>, built during this thesis, is a search engine covering all source code<br />

contained in the <strong>Debian</strong> archive. By using an existing archive of free software 1 , the time- and<br />

resource-consuming crawling of the public internet for source code is avoided. Additionally,<br />

<strong>Debian</strong> <strong>Code</strong> <strong>Search</strong> takes advantage of the large amount of high-quality metadata which is<br />

readily available within <strong>Debian</strong> for ranking search results.<br />

2.1 Target audience and use cases<br />

A public instance of <strong>Debian</strong> <strong>Code</strong> <strong>Search</strong> is available for members of the <strong>Debian</strong> project and<br />

anyone who is interested in using it. The target audience is primarily any FLOSS developer<br />

or user (especially using <strong>Debian</strong>) and everybody who deals with <strong>Debian</strong> packaging.<br />

Typical use cases are:<br />

• The documentation of many open source libraries is too sparse to be helpful. By entering<br />

the function name of a library function like XCreateWindow, you can find either the<br />

function’s definition, its implementation or source code which uses the function (to be<br />

used as an example).<br />

• Given the name of an algorithm, find an implementation of that algorithm.<br />

Due to the search result ranking, the implementations that are presented first are very<br />

likely to be widely used and well-tested implementations unless the algorithm is very<br />

specific.<br />

• Given a backtrace with debug symbols of a crashed program, quickly locate and browse<br />

the source code referred to in the backtrace to understand and solve the problem at<br />

hand.<br />

This frees the person looking into the bug report from having to download the relevant<br />

source code first. Instead, the source code can be browsed online without having to<br />

wait for downloads to finish and without having to use disk space for storing source<br />

code. This lowers the barrier and hopefully leads to more people working on these<br />

kind of bug reports.<br />

• Find fragments within <strong>Debian</strong> packaging files. E.g. find all <strong>Debian</strong>-specific patches<br />

which use the old gethostbyname for resolving DNS names instead of its replacement<br />

1 Free software as defined by the <strong>Debian</strong> Free Software Guidelines (DFSG)<br />

3

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!