1 | Thu Mar 4 01:02:34 PST 2010 jacob@appelbaum.net |
---|
2 | * debian init and default scripts |
---|
3 | |
---|
4 | Thu Mar 4 01:05:16 PST 2010 jacob@appelbaum.net |
---|
5 | * defaults for init.d script |
---|
6 | |
---|
7 | Thu Mar 4 01:10:27 PST 2010 jacob@appelbaum.net |
---|
8 | * postinst fix |
---|
9 | |
---|
10 | Thu Mar 4 01:15:00 PST 2010 jacob@appelbaum.net |
---|
11 | * getent fixup |
---|
12 | |
---|
13 | Thu Mar 4 01:17:05 PST 2010 jacob@appelbaum.net |
---|
14 | * daemon fixups |
---|
15 | |
---|
16 | Thu Mar 4 01:24:00 PST 2010 jacob@appelbaum.net |
---|
17 | * remove user at dpkg --remove |
---|
18 | |
---|
19 | Thu Mar 4 01:25:46 PST 2010 jacob@appelbaum.net |
---|
20 | * disable the daemon by default |
---|
21 | |
---|
22 | Thu Mar 4 01:26:43 PST 2010 jacob@appelbaum.net |
---|
23 | * only remove user, not group |
---|
24 | |
---|
25 | Thu Mar 4 01:31:37 PST 2010 jacob@appelbaum.net |
---|
26 | * purging user at purge time only |
---|
27 | |
---|
28 | New patches: |
---|
29 | |
---|
30 | [debian init and default scripts |
---|
31 | jacob@appelbaum.net**20100304090234] { |
---|
32 | addfile ./misc/lenny/debian/allmydata-tahoe.init |
---|
33 | hunk ./misc/lenny/debian/allmydata-tahoe.init 1 |
---|
34 | +#! /bin/sh |
---|
35 | +### BEGIN INIT INFO |
---|
36 | +# Provides: allmydata-tahoe |
---|
37 | +# Required-Start: $remote_fs |
---|
38 | +# Required-Stop: $remote_fs |
---|
39 | +# Default-Start: 2 3 4 5 |
---|
40 | +# Default-Stop: 0 1 6 |
---|
41 | +# Short-Description: Tahoe-LAFS initscript |
---|
42 | +# Description: This starts Tahoe and runs it as a daemon |
---|
43 | +### END INIT INFO |
---|
44 | + |
---|
45 | +# Author: Jacob Appelbaum <jacob@appelbaum.net> |
---|
46 | + |
---|
47 | +# Do NOT "set -e" |
---|
48 | + |
---|
49 | +# PATH should only include /usr/* if it runs after the mountnfs.sh script |
---|
50 | +PATH=/sbin:/usr/sbin:/bin:/usr/bin |
---|
51 | +DESC="Tahoe-LAFS is a secure, decentralized, data store." |
---|
52 | +NAME=tahoe |
---|
53 | +DEFAULTS=allmydata-tahoe |
---|
54 | +DAEMONHOME="/var/lib/tahoelafsd/" |
---|
55 | +DAEMON=/usr/bin/$NAME |
---|
56 | +DAEMON_ARGS=" start $DAEMONHOME" |
---|
57 | +PIDFILE=/var/lib/tahoelafsd/twisted.pid |
---|
58 | +USERNAME=tahoelafsd |
---|
59 | +SCRIPTNAME=/etc/init.d/$NAME |
---|
60 | + |
---|
61 | +# Exit if the package is not installed |
---|
62 | +[ -x "$DAEMON" ] || exit 0 |
---|
63 | + |
---|
64 | +# Read configuration variable file if it is present |
---|
65 | +[ -r /etc/default/$DEFAULTS ] && . /etc/default/$DEFAULTS |
---|
66 | + |
---|
67 | +# Exit if we're unconfigured |
---|
68 | +if [ "$ENABLED" = "FALSE" ]; then |
---|
69 | + echo "Tahoe is disabled; please edit /etc/defaults/$DEFAULTS"; |
---|
70 | + exit 0; |
---|
71 | +fi |
---|
72 | + |
---|
73 | +# Load the VERBOSE setting and other rcS variables |
---|
74 | +. /lib/init/vars.sh |
---|
75 | + |
---|
76 | +# Define LSB log_* functions. |
---|
77 | +# Depend on lsb-base (>= 3.0-6) to ensure that this file is present. |
---|
78 | +. /lib/lsb/init-functions |
---|
79 | + |
---|
80 | +# |
---|
81 | +# Function that starts the daemon/service |
---|
82 | +# |
---|
83 | +do_start() |
---|
84 | +{ |
---|
85 | + # Return |
---|
86 | + # 2 if daemon could not be started |
---|
87 | + su -c "$DAEMON $DAEMON_ARGS" $USERNAME \ |
---|
88 | + || return 2 |
---|
89 | +} |
---|
90 | + |
---|
91 | +# |
---|
92 | +# Function that stops the daemon/service |
---|
93 | +# |
---|
94 | +do_stop() |
---|
95 | +{ |
---|
96 | + # Return |
---|
97 | + # 0 if daemon has been stopped |
---|
98 | + # 1 if daemon was already stopped |
---|
99 | + # 2 if daemon could not be stopped |
---|
100 | + su -c "$DAEMON stop $DAEMONHOME" $USERNAME \ |
---|
101 | + || return 2 |
---|
102 | + RETVAL="$?" |
---|
103 | + [ "$RETVAL" = 2 ] && return 2 |
---|
104 | + return "$RETVAL" |
---|
105 | +} |
---|
106 | + |
---|
107 | +# |
---|
108 | +# Function that sends a SIGHUP to the daemon/service |
---|
109 | +# |
---|
110 | +do_reload() { |
---|
111 | + # |
---|
112 | + # If the daemon can reload its configuration without |
---|
113 | + # restarting (for example, when it is sent a SIGHUP), |
---|
114 | + # then implement that here. |
---|
115 | + # |
---|
116 | + echo "Tahoe does not currently support HUP by reloading its config file." |
---|
117 | + return 0 |
---|
118 | +} |
---|
119 | + |
---|
120 | +case "$1" in |
---|
121 | + start) |
---|
122 | + [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" |
---|
123 | + do_start |
---|
124 | + case "$?" in |
---|
125 | + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; |
---|
126 | + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; |
---|
127 | + esac |
---|
128 | + ;; |
---|
129 | + stop) |
---|
130 | + [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" |
---|
131 | + do_stop |
---|
132 | + case "$?" in |
---|
133 | + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; |
---|
134 | + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; |
---|
135 | + esac |
---|
136 | + ;; |
---|
137 | + #reload|force-reload) |
---|
138 | + # |
---|
139 | + # If do_reload() is not implemented then leave this commented out |
---|
140 | + # and leave 'force-reload' as an alias for 'restart'. |
---|
141 | + # |
---|
142 | + #log_daemon_msg "Reloading $DESC" "$NAME" |
---|
143 | + #do_reload |
---|
144 | + #log_end_msg $? |
---|
145 | + #;; |
---|
146 | + restart|force-reload) |
---|
147 | + # |
---|
148 | + # If the "reload" option is implemented then remove the |
---|
149 | + # 'force-reload' alias |
---|
150 | + # |
---|
151 | + log_daemon_msg "Restarting $DESC" "$NAME" |
---|
152 | + do_stop |
---|
153 | + case "$?" in |
---|
154 | + 0|1) |
---|
155 | + do_start |
---|
156 | + case "$?" in |
---|
157 | + 0) log_end_msg 0 ;; |
---|
158 | + 1) log_end_msg 1 ;; # Old process is still running |
---|
159 | + *) log_end_msg 1 ;; # Failed to start |
---|
160 | + esac |
---|
161 | + ;; |
---|
162 | + *) |
---|
163 | + # Failed to stop |
---|
164 | + log_end_msg 1 |
---|
165 | + ;; |
---|
166 | + esac |
---|
167 | + ;; |
---|
168 | + *) |
---|
169 | + #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 |
---|
170 | + echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 |
---|
171 | + exit 3 |
---|
172 | + ;; |
---|
173 | +esac |
---|
174 | + |
---|
175 | +: |
---|
176 | addfile ./misc/lenny/debian/allmydata-tahoe.postinst |
---|
177 | hunk ./misc/lenny/debian/allmydata-tahoe.postinst 1 |
---|
178 | +# Automatically added by dh_pycentral |
---|
179 | +if which pycentral >/dev/null 2>&1; then |
---|
180 | + pycentral pkginstall allmydata-tahoe |
---|
181 | + if grep -qs '^allmydata-tahoe$' /var/lib/pycentral/delayed-pkgs; then |
---|
182 | + sed -i '/^allmydata-tahoe$/d' /var/lib/pycentral/delayed-pkgs |
---|
183 | + fi |
---|
184 | +fi |
---|
185 | +# End automatically added section |
---|
186 | +# Automatically added by dh_pycentral |
---|
187 | +if which pycentral >/dev/null 2>&1; then |
---|
188 | + pycentral pkginstall allmydata-tahoe |
---|
189 | + if grep -qs '^allmydata-tahoe$' /var/lib/pycentral/delayed-pkgs; then |
---|
190 | + sed -i '/^allmydata-tahoe$/d' /var/lib/pycentral/delayed-pkgs |
---|
191 | + fi |
---|
192 | +fi |
---|
193 | +# End automatically added section |
---|
194 | + |
---|
195 | +# This checks for a tahoelafsd user |
---|
196 | +uid=`getend passwd tahoelafsd | cut -d ":" -f 3` |
---|
197 | +home=`getent passwd tahoelafsd |cut -d ":" -f 6` |
---|
198 | + |
---|
199 | +if [ "$uid" ]; then |
---|
200 | + if [ "$home" = "/var/lib/tahoelafsd" ]; then |
---|
201 | + chmod 750 /var/lib/tahoelafs/ |
---|
202 | + else |
---|
203 | + echo "tahoelafsd has an incorrect home directory!" |
---|
204 | + fi |
---|
205 | +else |
---|
206 | + echo "Adding tahoelafsd group..." |
---|
207 | + addgroup --system tahoelafsd |
---|
208 | + echo "Adding tahoelafsd user..." |
---|
209 | + adduser --disabled-login --system --home /var/lib/tahoelafs \ |
---|
210 | + --shell /bin/bash --ingroup tahoelafsd tahoelafsd |
---|
211 | + echo "Protecting tahoelafsd home directory from snooping eyes" |
---|
212 | + chmod 750 /var/lib/tahoelafs/ |
---|
213 | +fi |
---|
214 | addfile ./misc/lenny/debian/allmydata-tahoe.postrm |
---|
215 | hunk ./misc/lenny/debian/allmydata-tahoe.postrm 1 |
---|
216 | +#!/bin/sh -e |
---|
217 | + |
---|
218 | +if [ "$1" = "purge" ]; then |
---|
219 | + rm -rf /var/lib/tahoelafsd/ |
---|
220 | +fi |
---|
221 | + |
---|
222 | +exit 0 |
---|
223 | } |
---|
224 | |
---|
225 | [defaults for init.d script |
---|
226 | jacob@appelbaum.net**20100304090516] { |
---|
227 | addfile ./misc/lenny/debian/allmydata-tahoe.default |
---|
228 | hunk ./misc/lenny/debian/allmydata-tahoe.default 1 |
---|
229 | +# Defaults for tahoelafsd initscript |
---|
230 | +# sourced by /etc/init.d/allmydata-tahoe |
---|
231 | +# installed at /etc/default/allmydata-tahoe by the maintainer scripts |
---|
232 | + |
---|
233 | +# Uncomment these to change the default settings in the init.d script |
---|
234 | +# USERNAME="tahoelafsd" |
---|
235 | +# DAEMONHOME="/var/lib/tahoelafsd/" |
---|
236 | +# DAEMON_ARGS=" start $DAEMONHOME" |
---|
237 | + |
---|
238 | +# By default, Tahoe is unconfigured |
---|
239 | +# (this is very unfriendly to non-power users) |
---|
240 | +# To configure Tahoe, consider running: |
---|
241 | +# tahoe create-client $DAEMONHOME |
---|
242 | + |
---|
243 | +# Once you've run the above command, set the following line to "TRUE" |
---|
244 | +# to have the init.d script start Tahoe |
---|
245 | +ENABLED="TRUE" |
---|
246 | + |
---|
247 | } |
---|
248 | |
---|
249 | [postinst fix |
---|
250 | jacob@appelbaum.net**20100304091027] hunk ./misc/lenny/debian/allmydata-tahoe.postinst 1 |
---|
251 | +#!/bin/sh -e |
---|
252 | |
---|
253 | [getent fixup |
---|
254 | jacob@appelbaum.net**20100304091500] { |
---|
255 | hunk ./misc/lenny/debian/allmydata-tahoe.postinst 2 |
---|
256 | -# Automatically added by dh_pycentral |
---|
257 | -if which pycentral >/dev/null 2>&1; then |
---|
258 | - pycentral pkginstall allmydata-tahoe |
---|
259 | - if grep -qs '^allmydata-tahoe$' /var/lib/pycentral/delayed-pkgs; then |
---|
260 | - sed -i '/^allmydata-tahoe$/d' /var/lib/pycentral/delayed-pkgs |
---|
261 | - fi |
---|
262 | -fi |
---|
263 | -# End automatically added section |
---|
264 | -# Automatically added by dh_pycentral |
---|
265 | -if which pycentral >/dev/null 2>&1; then |
---|
266 | - pycentral pkginstall allmydata-tahoe |
---|
267 | - if grep -qs '^allmydata-tahoe$' /var/lib/pycentral/delayed-pkgs; then |
---|
268 | - sed -i '/^allmydata-tahoe$/d' /var/lib/pycentral/delayed-pkgs |
---|
269 | - fi |
---|
270 | -fi |
---|
271 | -# End automatically added section |
---|
272 | hunk ./misc/lenny/debian/allmydata-tahoe.postinst 4 |
---|
273 | -uid=`getend passwd tahoelafsd | cut -d ":" -f 3` |
---|
274 | +uid=`getent passwd tahoelafsd | cut -d ":" -f 3` |
---|
275 | } |
---|
276 | |
---|
277 | [daemon fixups |
---|
278 | jacob@appelbaum.net**20100304091705] { |
---|
279 | hunk ./misc/lenny/debian/allmydata-tahoe.postinst 9 |
---|
280 | - chmod 750 /var/lib/tahoelafs/ |
---|
281 | + chmod 750 /var/lib/tahoelafsd/ |
---|
282 | hunk ./misc/lenny/debian/allmydata-tahoe.postinst 17 |
---|
283 | - adduser --disabled-login --system --home /var/lib/tahoelafs \ |
---|
284 | + adduser --disabled-login --system --home /var/lib/tahoelafsd \ |
---|
285 | hunk ./misc/lenny/debian/allmydata-tahoe.postinst 20 |
---|
286 | - chmod 750 /var/lib/tahoelafs/ |
---|
287 | + chmod 750 /var/lib/tahoelafsd/ |
---|
288 | } |
---|
289 | |
---|
290 | [remove user at dpkg --remove |
---|
291 | jacob@appelbaum.net**20100304092400] hunk ./misc/lenny/debian/allmydata-tahoe.postrm 3 |
---|
292 | +delgroup tahoelafsd |
---|
293 | +deluser tahoelafsd |
---|
294 | + |
---|
295 | |
---|
296 | [disable the daemon by default |
---|
297 | jacob@appelbaum.net**20100304092546] hunk ./misc/lenny/debian/allmydata-tahoe.default 17 |
---|
298 | -ENABLED="TRUE" |
---|
299 | +ENABLED="FALSE" |
---|
300 | |
---|
301 | [only remove user, not group |
---|
302 | jacob@appelbaum.net**20100304092643] hunk ./misc/lenny/debian/allmydata-tahoe.postrm 3 |
---|
303 | -delgroup tahoelafsd |
---|
304 | |
---|
305 | [purging user at purge time only |
---|
306 | jacob@appelbaum.net**20100304093137] { |
---|
307 | hunk ./misc/lenny/debian/allmydata-tahoe.postrm 3 |
---|
308 | -deluser tahoelafsd |
---|
309 | - |
---|
310 | hunk ./misc/lenny/debian/allmydata-tahoe.postrm 5 |
---|
311 | + deluser tahoelafsd |
---|
312 | } |
---|
313 | |
---|
314 | Context: |
---|
315 | |
---|
316 | [CREDITS to Jacob Appelbaum |
---|
317 | zooko@zooko.com**20100304015616 |
---|
318 | Ignore-this: 70db493abbc23968fcc8db93f386ea54 |
---|
319 | ] |
---|
320 | [desert-island-build-with-proper-versions |
---|
321 | jacob@appelbaum.net**20100304013858] |
---|
322 | [docs: a few small edits to try to guide newcomers through the docs |
---|
323 | zooko@zooko.com**20100303231902 |
---|
324 | Ignore-this: a6aab44f5bf5ad97ea73e6976bc4042d |
---|
325 | These edits were suggested by my watching over Jake Appelbaum's shoulder as he completely ignored/skipped/missed install.html and also as he decided that debian.txt wouldn't help him with basic installation. Then I threw in a few docs edits that have been sitting around in my sandbox asking to be committed for months. |
---|
326 | ] |
---|
327 | [TAG allmydata-tahoe-1.6.1 |
---|
328 | david-sarah@jacaranda.org**20100228062314 |
---|
329 | Ignore-this: eb5f03ada8ea953ee7780e7fe068539 |
---|
330 | ] |
---|
331 | Patch bundle hash: |
---|
332 | 48eb3a8ddd4c04f5494873d8c823fbad3e5b3512 |
---|