summaryrefslogtreecommitdiff
path: root/community/gsoc/project_ideas/hardware_libs.mdwn
blob: c30505cbeae9fe9e39a65a1de409dcace967c787 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]

[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no Invariant
Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the license
is included in the section entitled
[[GNU Free Documentation License|/fdl]]."]]"""]]

[[!meta title="Stub Implementations of Hardware Specific Libraries"]]

Many programs use special libraries to access certain hardware devices,
like libusb, libbluetooth, libraw1394, libiw-dev (though there already is a
wireless-tools-gnumach package), etc.

The Hurd presently doesn't support these devices. Nevertheless, all of these
programs could still be built -- and most of them would indeed be useful --
without actual support of these hardware devices, kdebase for instance. However,
as the libraries are presently not available for Hurd, the programs can't be
easily built in Debian GNU/Hurd due to missing dependencies.

This could be avoided by providing dummy libraries, which the programs could
link against, but which wouldn't actually do any hardware access: instead, they
would simply return appropriate error codes, reporting that no devices were
found.

There are two possible approaches for providing such stub libraries: Either
implement replacement libraries providing the same API as the real ones; or
implement dummy backends for the Hurd in the proper libraries. Which approach
to prefer probably depends on the structure of the various libraries.

The goal of this project is to create working dummy libraries/backends for the
mentioned devices, and get them into Debian GNU/Hurd. It shouldn't require any
special previous knowledge, though some experience with build systems would be
helpful. Finishing this task will probably require learning a bit about the
hardware devices in question, and about Debian packaging.

Possible mentors: Samuel Thibault (youpi)

Exercise: Get one of the libraries to compile on Debian GNU/Hurd. It doesn't
need to report reasonable error codes yet -- just make it build at all for now.