annotate thesis/pieces/old/3-MasqmailProject.tex @ 238:d60e5843db7f

moved text from ch04 to ch01
author meillo@marmaro.de
date Sat, 10 Jan 2009 22:26:29 +0100
parents e050221efd38
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
89
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
1 \chapter{The \masqmail\ project}
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
2
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
3 %TODO: have text by oliver here?
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
4
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
5 \section{Purpose of \masqmail}
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
6
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
7 \subsection{Target field}
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
8 Its original author, Oliver Kurth, sees \masqmail\ so:
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
9 \begin{quote}
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
10 MasqMail is a mail server designed for hosts that do not have a permanent internet connection eg. a home network or a single host at home. It has special support for connections to different ISPs. It replaces sendmail or other MTAs such as qmail or exim.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
11 \end{quote}
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
12
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
13 \masqmail\ is inteded to cover a specific niche: non-permanent internet connection and different \NAME{ISP}s.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
14
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
15 Although it can basically replace other \MTA{}s, it is not generally aimed to do so. The package description of \debian\citeweb{packages.debian:masqmail} states this more clearly by changing the last sentence to:
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
16 \begin{quote}
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
17 In these cases, MasqMail is a slim replacement for full-blown MTAs such as sendmail, exim, qmail or postfix.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
18 \end{quote}
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
19 \masqmail\ is a good replacement ``in these cases'', but not generally, since is lacks features essential for running on mail servers. It is primarily not secure enough for being accessable from untrusted locations.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
20
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
21 The program is best used in home networks, which are non-permanently connected to the internet. \masqmail\ sends mail to local destinations, like users on the same machine and on other machines in the local net, immediately. Email to recipients outside the local net are queued when offline and sent when a online connection gets established.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
22
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
23 Further more does \masqmail\ respect online connections through different \NAME{ISP}s; a common thing for dial-up connections. In particular can different sender addresses be set, dependent on the \NAME{ISP} that is used. This prevents mail to be likely classified as spam.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
24
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
25
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
26
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
27 \subsection{Typical usage}
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
28 This section describes situations that make senseful use of \masqmail.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
29
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
30 A home network consisting of some workstations without a server. The network is connected to the internet by dial-up or broadband. Going online is initiated by computers inside the local net. \NAME{IP} addresses change at least once every day.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
31
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
32 Every workstation would be equiped with \masqmail. Mail transfer within the same machine or within the local net works straight forward. Outgoing mail to the internet is sent, to the concerning \NAME{ISP} for relaying, whenever the router goes online. Receiving of mail from outside needs to be done by a mail fetch program, like the \masqmail\ internal \NAME{POP3} client or \name{fetchmail} for example. The configuration for \masqmail\ would be the same on every computer, except the hostname.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
33
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
34 For the same network but having a server, one could have \masqmail\ running on the server and using simple forwarders (see \ref{subsec:relay-only}) to the server on the workstations. This setup does only support mail transfer to the server, but not back to a workstation; also sending mail to another user on the same workstation is not possible.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
35
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
36 A better setup is to run \masqmail\ on every machine %FIXME
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
37
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
38
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
39
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
40 \subsection{What makes it special}
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
41
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
42 As main advantage, \masqmail\ makes it easy to set up an \MTA\ on workstations or notebooks without the need to do complex configuration or to be an mail server expert.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
43
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
44 Workstations use %FIXME
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
45
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
46
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
47 \subsection{Alternatives?}
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
48 % http://anfi.homeunix.org/sendmail/dialup10.html
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
49
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
50 \section{History}
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
51 %TODO: let oliver prove read it!
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
52 %FIXME: add references
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
53 %FIXME: where does the name come from: masqdialer (guessed)
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
54
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
55 The date of the first release (version 0.0.1) is unknown.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
56 The only information available is, that it was packaged for \debian\ at 15\nth\ of September in 1999.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
57 Further releases were made every few weeks or month during 2000, 2001 and 2002.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
58 Development ended in mid-2003 in a hard stop.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
59 The last ordinary release known to me is version 0.2.20, released on 4\nth\ of June in 2003.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
60
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
61 During the time of development, Oliver released 53 versions.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
62 That means a new release in less than every 20 days in average!
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
63
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
64 Mentionable are the four \emph{beta} releases of version 0.1.8 (named with the trailing letters `a' to `d') in winter 2000/2001 and the security-fix 0.1.15.1 in 2002.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
65
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
66 One extra release (version 0.2.21) was made by him in November 2005.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
67 This one is only available from the \debian\ pool.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
68 Comparing it to version 0.2.20 shows, that no source code was altered.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
69 Only building documents (like Makefiles) and \debian\ packageing documents were changed.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
70 That leeds to the assumption that this last release was specificly created for the needs of \debian---to fix some errors in the package.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
71
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
72 In May 2000 the minor version number increased to `1'.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
73 Nothing special is mentioned in the documentation about that.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
74 When it increased again to start the 0.2.x releases, Oliver titled them as the ``development branch'' of \masqmail.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
75 At that second time, he started developing the 0.2.x ``development branch'', continuing to work on the 0.1.x series.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
76 His parallel work on both branches lasted for four month, and one additional last release, numbered 0.1.17, one more year later.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
77
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
78
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
79
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
80 \section{Taking \masqmail}
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
81
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
82
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
83
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
84
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
85 \section{About \freesw\ projects}
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
86
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
87 % http://www.faqs.org/docs/artu/
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
88
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
89 There are several differences between \freesw\ projects and projects about proprietary software.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
90 To understand \freesw\ projects, one needs to understand \freesw\ itself first.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
91
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
92 \subsection{About \freesw}
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
93 The term ``Free Software'' was coined by the \name{Free Software Foundation} (short: \NAME{FSF}), founded by Richard~M.\ Stallman (known as ``RMS'') in 1985.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
94 Although various licenses make software free, none of them represents the thinking of \freesw\ like the the \GNU\ \gpl\ (short: \GPL). Its first version was written by Stallman in 1989.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
95 One could say, the \GPL\ catalized the \name{Free Software movement}.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
96
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
97 % http://www.fsf.org/about/what-is-free-software
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
98
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
99 After all, the \GPL\ was not the first \freesw\ license used.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
100 The \name{MIT License} (or \name{X Consortium License}) for example is older; published in 1988.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
101 Licenses providing the same rights have been used since long time ago.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
102 But none of them was so often (re)used by other projects---thus gattering less awareness.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
103 Further more was the \GPL\ created to be a \emph{general} license for all kinds of programs, unlike most other licenses written for one particular program.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
104
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
105 \freesw\ gives freedoms to its users.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
106 In contrast to proprietary software restricting the users freedom.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
107 The freedoms (or rights) the user has are stated in the \name{Free Software Definition} of the \NAME{FSF}. Namely these are:
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
108 % http://www.gnu.org/philosophy/free-sw.html
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
109 % http://www.fsf.org/licensing/essays/free-sw.html
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
110 \begin{enumerate}
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
111 \item The freedom to run the program, for any purpose (freedom 0).
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
112 \item The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
113 \item The freedom to redistribute copies so you can help your neighbor (freedom 2).
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
114 \item The freedom to improve the program, and release your improvements to the public, so that the whole community benefits (freedom 3). Access to the source code is a precondition for this.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
115 \end{enumerate}
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
116
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
117
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
118 \subsection{The term ``Open Source''}
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
119 \name{Open Source Software} often stands for the same as \freesw.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
120 But there is an essential difference: \name{Open Source} focuses on the availability of source code, while \freesw\ is about freedoms for people.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
121
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
122 \name{Open Source Software} is a subset of \freesw, meaning: All \freesw\ is \name{Open Source}, but there exists \name{Open Source Software} that is not free.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
123
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
124 % http://www.gnu.org/philosophy/open-source-misses-the-point.html
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
125 % http://catb.org/~esr/open-source.html
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
126
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
127
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
128 \subsection{Development of \freesw}
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
129 Having source code available and the right to modify it, encouridges programmers to actually do so.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
130 Their modifications are manifoldly.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
131 Some tailor the software to their needs.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
132 Some add features.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
133 Some do it just for fun.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
134 There are no limitations---whoever wants to, may work on it.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
135
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
136 Since the boom of the internet, \freesw\ typically is developed by an open community of programmers interested in the software.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
137 The process of development is watchable by everyone.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
138
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
139 The other, now less common, method is a more closed group, developing in a ``sealed'' room, but releasing finished versions to the public.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
140
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
141 Eric~S.\ Raymond discusses about these methods, which he named \name{the bazaar} and \name{the cathedral} \cite{catb}.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
142
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
143 The following text will focus on the ``bazaar'' model.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
144
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
145
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
146 \subsection{The role of the community}
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
147 \freesw\ projects rise and fall with their community!
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
148
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
149 Most \freesw\ programs are developed by a very small group of programmers, often only one person.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
150 But they are used by many people.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
151 In between the programmers and the users, are people located who are a bit of both.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
152 These are the ones that write documentation, find bugs and probably even fix it.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
153 They discuss on mailing lists, bulletin boards and \NAME{IRC} chats.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
154 The program is often spread by their ``advertising''.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
155
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
156 The \emph{community} consists of the actual developers and all users that contribute to the program.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
157 Contribution can be one of the described ways, or others like providing a server for the project website for example.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
158
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
159 \emph{Community} is everyone who is in contact through the project.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
160 Be it on the mailing list, the discussion board, or by telling the developers about a new feature wanted.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
161
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
162 There will hardly be a community if no communication channels are available.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
163 If the development team does not provide them, there is a chance that encouraged users set them up on their own.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
164 But this is rare and the program needs to be very popular. %TODO: maybe include an example here (w3m?)
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
165
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
166 Projects without a good community tend to die sooner or later.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
167
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
168
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
169 \subsection{Evolution of a community}
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
170 Let us look at the process a community establishes: In most times it's only one who has an idea, in the beginning.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
171 He starts developing.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
172 When others get in contact with the project, there may be some who are so much interested that they start co-developing.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
173 Others report bugs, and some only use the program.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
174
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
175 After some time, one will find a small group of core developers, a larger group of contributers (bugs, patches, documentation) and a very large group of users.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
176 The size ratio of the groups vary by type of project.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
177
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
178 One should have that in mind, when starting a \freesw\ project.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
179
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
180
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
181 \subsection{Creating a strong community}
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
182 Building up a good community needs some effort of the main developers.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
183 %TODO: search for documents about this topic
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
184
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
185 First communication channels need to be set up, to enable the growth of a community.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
186
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
187 Second, development should be visible by everyone who is interested in it.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
188 Time between work done on the project and its visibility to the public should be kept short.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
189 This makes it interesting for other developers to join.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
190 Developers are the core of a community.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
191
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
192 Third, there is a rule of thumb that should be followed: ``Release early, release often!'' \cite{catb}.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
193 Releases are (more) stable versions, primary for users.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
194 They should be created, frequently.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
195 People will more likely use programs of active projects.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
196
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
197 Fourth, the developers should try to get the users ``in the boat''.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
198 Good communities have a large group of users that do not only receive, but also give something back to the project.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
199 The project leaders should motivate users to contribute.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
200 This unlocks a big work force and gets lot of unexiting work done.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
201
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
202 Fifth, documentation matters.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
203 Good documentation makes it easy for users and developers to start.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
204 And it helps to avoid a lot of unsatisfaction.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
205 Documentation is something that shows quality and that people care about the project.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
206
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
207 And sixth, project leaders should be good souvereigns.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
208 They should try to be fair, to motivate, be visionaires and try to put power and work on many shoulders.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
209
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
210 Not to forget: Every work that was done, every contribution that was made and every idea received needs to be honored in an appropriate way!
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
211 Volunteer work lives by acknowledgement of the effort spent.
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
212
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
213
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
214
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
215
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
216
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
217 \section{Project infrastructure}
3b5ba7331eb5 complete restructuring of whole document
meillo@marmaro.de
parents:
diff changeset
218