/
HACKING
124 lines (97 loc) · 4.98 KB
/
HACKING
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
RoarAudio
As loud as a Lion
---------------------
--- 0. INDEX
0. Index
1. Infos for maintainers
2. Infos for developer
--- 1. Infos for maintainers:
If you want to maintain a packet for your favorite OS please let me know!
We would love to be in contact with the maintainers to send them infos about
updates and maybe get feedback or things like init scripts or the like
(see 2. Infos for developer).
If it would make your work simpler we can put things in trunk
(info files for pkg build tools or the like). Just ask.
Also if you need any help you may contact us.
You can conntact us at our mailinglist or on IRC.
If you do not want to subscribe to the full traffic mailinglist
but want to keep informed about new releases and such (very recommended)
please join our announce list.
Contact information can be found in our homepage at:
http://roaraudio.keep-cool.org/contact.html
Here is my recommendation on how to split the RoarAudio in pkgs:
libroar includes libroar, libroardsp, libroarmidi,
libroarlight and libroareio
roaraudio-common include roard and roarclients
(at least the ones with no special deps)
roaraudio-tools includes all other tools not in roaraudio-common
because of special deps (if any)
libroar-compat includes libroaresd, libroararts, libroarpulse
and libroaryiff, ... and the compatinitly binarys.
It would be nice to ask the user
if he wants symlinks from libesd, libarts*, libpulse*.
roaraudio-dev includes include/, *.pc and such
someplayer-roar pkgs from plugins/
roaraudio-server virtual package provided by the package containing
roard. Applications should recommend this package
not the package with roard directly.
This is to enable the use to use an alternative server.
manpages should be included in the corresponding packet.
If your system includes a libdnet (Linux DECnet support) please build
it with DECnet support compiled in. There will be no strange warning messages
anymore with DECnet enabled on a non-DECnet system. libdnet does not
require any Kernel modules or has any non standard deps itself.
But be aware that several systems ship a libdnet which is not DECnet support.
In this case disable the build with libdnet.
If your system includes libslp (normaly one of the deps of cups) please
consider to build with libslp support.
In addition you should configure with --runtime-detect: this will
let roard/libroar detect the presents of some tools at runtime and
will reduce deps.
Please ensure that configure finds the correct audio users group.
In case it does not detect the correct one please set it via
--audio-group.
In case you want to provide emulation of other sound systems
they need to be install on the build system (only). This is
because we use parts of them (mainly header files) in order
to build the compatibility librarys and abstraction layers
to ensure best comaptibility. They will not be required
after the build has been done and thereof does not need to be a
dependency of the final packet you build.
The only expection is in case you build driver support for
one or more of them. If you do so you of cause need to ensure
that all needed librarys are avalible on the target system.
Running roard:
Global (system wide) roards normaly are started as root.
Ensure it drops it's privilegs by setting --setuid/--setgid
and maybe -U and -G.
Common usernames are: roard, roar, roaraudio, nobody.
You can use the init script for debian (in dist/debian-like/)
as example.
It is allways nice to use --pidfile. If you use a pidfile
you can start and stop roard by using --start and --stop easily.
You can use --chroot to chroot into an empty directory to improve security.
roard does the chrooting after loading everything so it is perfectly safe
to chroot into an empty directory. In case your system includes a /var/empty
or simular directory please do the chroot.
To ensure no drops consider to add one or two --realtime.
In case of a public (for LAN) server have some way for the user
to set --location and use --slp for Zero Conf.
For more information see roard --help.
--- 2. Infos for developer
At the moment all the libs are under GPLv3.
As libesd, libarts*, libpulse* and maybe other are under
LGPL the corresponding roar replacements should be under LGPL as well.
Because they link libroar independent of what licenses they are under
they are downgraded to GPL. This may change in future.
Because of that we *require* that *everything* that is contributed by
someone we get under LGPL so we can upgrade code to LGPL if needed
in future without asking. Code we get under a different license
will *NOT* get into trunk nor will be hosted by us.
Also add full contact infos when sending code to us, this includes:
1) Full name
2) nickname
3) E-Mail
4) OpenPGP key
When sending code please sign it with OpenPGP.
#ll