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