/mandos/release

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/release

« back to all changes in this revision

Viewing changes to Makefile

  • Committer: Teddy Hogeborn
  • Date: 2008-08-02 10:48:24 UTC
  • Revision ID: teddy@fukt.bsnet.se-20080802104824-fx0miwp9o4g9r31e
* plugbasedclient.c (struct process): New fields "eof", "completed",
                                      and "status".
  (handle_sigchld): New function.
  (main): Initialize "dir" to NULL to only closedir() it if necessary.
          Move "process_list" to be a global variable to be accessible
          by "handle_sigchld".  Make "handle_sigchld" handle SIGCHLD.
          Remove redundant check for NULL "dir".  Free "filename" when
          no longer used.  Block SIGCHLD around fork()/exec().
          Restore normal signals in child.  Only loop while running
          processes exist.  Print process buffer when the process is
          done and it has emitted EOF, not when it only emits EOF.
          Remove processes from list which exit non-cleanly.  In
          cleaning up, closedir() if necessary.  Bug fix: set next
          pointer correctly when freeing process list.

* plugins.d/passprompt.c (main): Do not ignore SIGQUIT.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
WARN=-O -Wall -Wformat=2 -Winit-self -Wmissing-include-dirs \
2
 
        -Wswitch-default -Wswitch-enum -Wunused-parameter \
3
 
        -Wstrict-aliasing=1 -Wextra -Wfloat-equal -Wundef -Wshadow \
4
 
        -Wunsafe-loop-optimizations -Wpointer-arith \
5
 
        -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings \
6
 
        -Wconversion -Wstrict-prototypes -Wold-style-definition \
7
 
        -Wpacked -Wnested-externs -Winline -Wvolatile-register-var
8
 
#       -Wunreachable-code
9
 
#DEBUG=-ggdb3
 
1
WARN=-O -Wall -Wformat=2 -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-parameter -Wstrict-aliasing=2 -Wextra -Wfloat-equal -Wundef -Wshadow -Wunsafe-loop-optimizations -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes -Wold-style-definition -Wpacked -Wnested-externs -Wunreachable-code -Winline -Wvolatile-register-var 
 
2
DEBUG=-ggdb3
10
3
# For info about _FORTIFY_SOURCE, see
11
 
# <http://www.kernel.org/doc/man-pages/online/pages/man7/feature_test_macros.7.html>
12
 
# and <http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html>.
13
 
FORTIFY=-D_FORTIFY_SOURCE=2 -fstack-protector-all -fPIC
14
 
LINK_FORTIFY_LD=-z relro -z now
15
 
LINK_FORTIFY=
16
 
 
17
 
# If BROKEN_PIE is set, do not build with -pie
18
 
ifndef BROKEN_PIE
19
 
FORTIFY += -fPIE
20
 
LINK_FORTIFY += -pie
21
 
endif
 
4
# <http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html>
 
5
FORTIFY=-D_FORTIFY_SOURCE=2 # -fstack-protector-all
22
6
#COVERAGE=--coverage
23
7
OPTIMIZE=-Os
24
8
LANGUAGE=-std=gnu99
25
 
htmldir=man
26
 
version=1.5.5
27
 
SED=sed
28
 
 
29
 
USER=$(firstword $(subst :, ,$(shell getent passwd _mandos || getent passwd nobody || echo 65534)))
30
 
GROUP=$(firstword $(subst :, ,$(shell getent group _mandos || getent group nobody || echo 65534)))
31
 
 
32
 
## Use these settings for a traditional /usr/local install
33
 
# PREFIX=$(DESTDIR)/usr/local
34
 
# CONFDIR=$(DESTDIR)/etc/mandos
35
 
# KEYDIR=$(DESTDIR)/etc/mandos/keys
36
 
# MANDIR=$(PREFIX)/man
37
 
# INITRAMFSTOOLS=$(DESTDIR)/etc/initramfs-tools
38
 
# STATEDIR=$(DESTDIR)/var/lib/mandos
39
 
##
40
 
 
41
 
## These settings are for a package-type install
42
 
PREFIX=$(DESTDIR)/usr
43
 
CONFDIR=$(DESTDIR)/etc/mandos
44
 
KEYDIR=$(DESTDIR)/etc/keys/mandos
45
 
MANDIR=$(PREFIX)/share/man
46
 
INITRAMFSTOOLS=$(DESTDIR)/usr/share/initramfs-tools
47
 
STATEDIR=$(DESTDIR)/var/lib/mandos
48
 
##
49
 
 
50
 
GNUTLS_CFLAGS=$(shell pkg-config --cflags-only-I gnutls)
51
 
GNUTLS_LIBS=$(shell pkg-config --libs gnutls)
52
 
AVAHI_CFLAGS=$(shell pkg-config --cflags-only-I avahi-core)
53
 
AVAHI_LIBS=$(shell pkg-config --libs avahi-core)
54
 
GPGME_CFLAGS=$(shell gpgme-config --cflags; getconf LFS_CFLAGS)
55
 
GPGME_LIBS=$(shell gpgme-config --libs; getconf LFS_LIBS; \
56
 
        getconf LFS_LDFLAGS)
57
9
 
58
10
# Do not change these two
59
 
CFLAGS=$(WARN) $(DEBUG) $(FORTIFY) $(COVERAGE) $(OPTIMIZE) \
60
 
        $(LANGUAGE) $(GNUTLS_CFLAGS) $(AVAHI_CFLAGS) $(GPGME_CFLAGS) \
61
 
        -DVERSION='"$(version)"'
62
 
LDFLAGS=-Xlinker --as-needed $(COVERAGE) $(LINK_FORTIFY) $(foreach flag,$(LINK_FORTIFY_LD),-Xlinker $(flag))
63
 
 
64
 
# Commands to format a DocBook <refentry> document into a manual page
65
 
DOCBOOKTOMAN=$(strip cd $(dir $<); xsltproc --nonet --xinclude \
66
 
        --param man.charmap.use.subset          0 \
67
 
        --param make.year.ranges                1 \
68
 
        --param make.single.year.ranges         1 \
69
 
        --param man.output.quietly              1 \
70
 
        --param man.authors.section.enabled     0 \
71
 
         /usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl \
72
 
        $(notdir $<); \
73
 
        $(MANPOST) $(notdir $@);\
74
 
        if locale --all | grep --regexp='^en_US\.utf8$$' && type man \
75
 
        2>/dev/null; then LANG=en_US.UTF-8 MANWIDTH=80 man \
76
 
        --warnings --encoding=UTF-8 --local-file $(notdir $@); fi \
77
 
        >/dev/null)
78
 
# DocBook-to-man post-processing to fix a '\n' escape bug
79
 
MANPOST=$(SED) --in-place --expression='s,\\\\en,\\en,g;s,\\n,\\en,g'
80
 
 
81
 
DOCBOOKTOHTML=$(strip xsltproc --nonet --xinclude \
82
 
        --param make.year.ranges                1 \
83
 
        --param make.single.year.ranges         1 \
84
 
        --param man.output.quietly              1 \
85
 
        --param man.authors.section.enabled     0 \
86
 
        --param citerefentry.link               1 \
87
 
        --output $@ \
88
 
        /usr/share/xml/docbook/stylesheet/nwalsh/xhtml/docbook.xsl \
89
 
        $<; $(HTMLPOST) $@)
90
 
# Fix citerefentry links
91
 
HTMLPOST=$(SED) --in-place \
92
 
        --expression='s/\(<a class="citerefentry" href="\)\("><span class="citerefentry"><span class="refentrytitle">\)\([^<]*\)\(<\/span>(\)\([^)]*\)\()<\/span><\/a>\)/\1\3.\5\2\3\4\5\6/g'
93
 
 
94
 
PLUGINS=plugins.d/password-prompt plugins.d/mandos-client \
95
 
        plugins.d/usplash plugins.d/splashy plugins.d/askpass-fifo \
96
 
        plugins.d/plymouth
97
 
CPROGS=plugin-runner $(PLUGINS)
98
 
PROGS=mandos mandos-keygen mandos-ctl mandos-monitor $(CPROGS)
99
 
DOCS=mandos.8 mandos-keygen.8 mandos-monitor.8 mandos-ctl.8 \
100
 
        mandos.conf.5 mandos-clients.conf.5 plugin-runner.8mandos \
101
 
        plugins.d/mandos-client.8mandos \
102
 
        plugins.d/password-prompt.8mandos plugins.d/usplash.8mandos \
103
 
        plugins.d/splashy.8mandos plugins.d/askpass-fifo.8mandos \
104
 
        plugins.d/plymouth.8mandos intro.8mandos
105
 
 
106
 
htmldocs=$(addsuffix .xhtml,$(DOCS))
107
 
 
108
 
objects=$(addsuffix .o,$(CPROGS))
109
 
 
110
 
all: $(PROGS) mandos.lsm
111
 
 
112
 
doc: $(DOCS)
113
 
 
114
 
html: $(htmldocs)
115
 
 
116
 
%.5: %.xml common.ent legalnotice.xml
117
 
        $(DOCBOOKTOMAN)
118
 
%.5.xhtml: %.xml common.ent legalnotice.xml
119
 
        $(DOCBOOKTOHTML)
120
 
 
121
 
%.8: %.xml common.ent legalnotice.xml
122
 
        $(DOCBOOKTOMAN)
123
 
%.8.xhtml: %.xml common.ent legalnotice.xml
124
 
        $(DOCBOOKTOHTML)
125
 
 
126
 
%.8mandos: %.xml common.ent legalnotice.xml
127
 
        $(DOCBOOKTOMAN)
128
 
%.8mandos.xhtml: %.xml common.ent legalnotice.xml
129
 
        $(DOCBOOKTOHTML)
130
 
 
131
 
intro.8mandos: intro.xml common.ent legalnotice.xml
132
 
        $(DOCBOOKTOMAN)
133
 
intro.8mandos.xhtml: intro.xml common.ent legalnotice.xml
134
 
        $(DOCBOOKTOHTML)
135
 
 
136
 
mandos.8: mandos.xml common.ent mandos-options.xml overview.xml \
137
 
                legalnotice.xml
138
 
        $(DOCBOOKTOMAN)
139
 
mandos.8.xhtml: mandos.xml common.ent mandos-options.xml \
140
 
                overview.xml legalnotice.xml
141
 
        $(DOCBOOKTOHTML)
142
 
 
143
 
mandos-keygen.8: mandos-keygen.xml common.ent overview.xml \
144
 
                legalnotice.xml
145
 
        $(DOCBOOKTOMAN)
146
 
mandos-keygen.8.xhtml: mandos-keygen.xml common.ent overview.xml \
147
 
                 legalnotice.xml
148
 
        $(DOCBOOKTOHTML)
149
 
 
150
 
mandos-monitor.8: mandos-monitor.xml common.ent overview.xml \
151
 
                legalnotice.xml
152
 
        $(DOCBOOKTOMAN)
153
 
mandos-monitor.8.xhtml: mandos-monitor.xml common.ent overview.xml \
154
 
                 legalnotice.xml
155
 
        $(DOCBOOKTOHTML)
156
 
 
157
 
mandos-ctl.8: mandos-ctl.xml common.ent overview.xml \
158
 
                legalnotice.xml
159
 
        $(DOCBOOKTOMAN)
160
 
mandos-ctl.8.xhtml: mandos-ctl.xml common.ent overview.xml \
161
 
                 legalnotice.xml
162
 
        $(DOCBOOKTOHTML)
163
 
 
164
 
mandos.conf.5: mandos.conf.xml common.ent mandos-options.xml \
165
 
                legalnotice.xml
166
 
        $(DOCBOOKTOMAN)
167
 
mandos.conf.5.xhtml: mandos.conf.xml common.ent mandos-options.xml \
168
 
                legalnotice.xml
169
 
        $(DOCBOOKTOHTML)
170
 
 
171
 
plugin-runner.8mandos: plugin-runner.xml common.ent overview.xml \
172
 
                legalnotice.xml
173
 
        $(DOCBOOKTOMAN)
174
 
plugin-runner.8mandos.xhtml: plugin-runner.xml common.ent \
175
 
                overview.xml legalnotice.xml
176
 
        $(DOCBOOKTOHTML)
177
 
 
178
 
plugins.d/mandos-client.8mandos: plugins.d/mandos-client.xml \
179
 
                                        common.ent \
180
 
                                        mandos-options.xml \
181
 
                                        overview.xml legalnotice.xml
182
 
        $(DOCBOOKTOMAN)
183
 
plugins.d/mandos-client.8mandos.xhtml: plugins.d/mandos-client.xml \
184
 
                                        common.ent \
185
 
                                        mandos-options.xml \
186
 
                                        overview.xml legalnotice.xml
187
 
        $(DOCBOOKTOHTML)
188
 
 
189
 
# Update all these files with version number $(version)
190
 
common.ent: Makefile
191
 
        $(strip $(SED) --in-place \
192
 
                --expression='s/^\(<!ENTITY version "\)[^"]*">$$/\1$(version)">/' \
193
 
                $@)
194
 
 
195
 
mandos: Makefile
196
 
        $(strip $(SED) --in-place \
197
 
                --expression='s/^\(version = "\)[^"]*"$$/\1$(version)"/' \
198
 
                $@)
199
 
 
200
 
mandos-keygen: Makefile
201
 
        $(strip $(SED) --in-place \
202
 
                --expression='s/^\(VERSION="\)[^"]*"$$/\1$(version)"/' \
203
 
                $@)
204
 
 
205
 
mandos-ctl: Makefile
206
 
        $(strip $(SED) --in-place \
207
 
                --expression='s/^\(version = "\)[^"]*"$$/\1$(version)"/' \
208
 
                $@)
209
 
 
210
 
mandos-monitor: Makefile
211
 
        $(strip $(SED) --in-place \
212
 
                --expression='s/^\(version = "\)[^"]*"$$/\1$(version)"/' \
213
 
                $@)
214
 
 
215
 
mandos.lsm: Makefile
216
 
        $(strip $(SED) --in-place \
217
 
                --expression='s/^\(Version:\).*/\1\t$(version)/' \
218
 
                $@)
219
 
        $(strip $(SED) --in-place \
220
 
                --expression='s/^\(Entered-date:\).*/\1\t$(shell date --rfc-3339=date --reference=Makefile)/' \
221
 
                $@)
222
 
        $(strip $(SED) --in-place \
223
 
                --expression='s/\(mandos_\)[0-9.]\+\(\.orig\.tar\.gz\)/\1$(version)\2/' \
224
 
                $@)
225
 
 
226
 
plugins.d/mandos-client: plugins.d/mandos-client.c
227
 
        $(LINK.c) $^ -lrt $(GNUTLS_LIBS) $(AVAHI_LIBS) $(strip\
228
 
                ) $(GPGME_LIBS) $(LOADLIBES) $(LDLIBS) -o $@
229
 
 
230
 
.PHONY : all doc html clean distclean run-client run-server install \
231
 
        install-server install-client uninstall uninstall-server \
232
 
        uninstall-client purge purge-server purge-client
233
 
 
 
11
CFLAGS=$(WARN) $(DEBUG) $(FORTIFY) $(COVERAGE) $(OPTIMIZE) $(LANGUAGE)
 
12
LDFLAGS=$(COVERAGE)
 
13
 
 
14
PROGS=plugbasedclient plugins.d/mandosclient plugins.d/passprompt
 
15
 
 
16
objects=$(shell for p in $(PROGS); do echo $${p}.o; done)
 
17
 
 
18
all: $(PROGS)
 
19
 
 
20
plugbasedclient: plugbasedclient.o
 
21
        $(LINK.o) -lgnutls $(COMMON) $^ $(LOADLIBES) $(LDLIBS) -o $@
 
22
 
 
23
plugins.d/mandosclient: plugins.d/mandosclient.o
 
24
        $(LINK.o) -lgnutls -lavahi-core -lgpgme $(COMMON) $^ $(LOADLIBES) $(LDLIBS) -o $@
 
25
 
 
26
plugins.d/passprompt: plugins.d/passprompt.o
 
27
        $(LINK.o) $(COMMON) $^ $(LOADLIBES) $(LDLIBS) -o $@
 
28
 
 
29
.PHONY : clean
234
30
clean:
235
 
        -rm --force $(CPROGS) $(objects) $(htmldocs) $(DOCS) core
236
 
 
237
 
distclean: clean
238
 
mostlyclean: clean
239
 
maintainer-clean: clean
240
 
        -rm --force --recursive keydir confdir statedir
241
 
 
242
 
check:  all
243
 
        ./mandos --check
244
 
 
245
 
# Run the client with a local config and key
246
 
run-client: all keydir/seckey.txt keydir/pubkey.txt
247
 
        @echo "###################################################################"
248
 
        @echo "# The following error messages are harmless and can be safely     #"
249
 
        @echo "# ignored.  The messages are caused by not running as root, but   #"
250
 
        @echo "# you should NOT run \"make run-client\" as root unless you also    #"
251
 
        @echo "# unpacked and compiled Mandos as root, which is NOT recommended. #"
252
 
        @echo "# From plugin-runner: setuid: Operation not permitted             #"
253
 
        @echo "# From askpass-fifo:  mkfifo: Permission denied                   #"
254
 
        @echo "# From mandos-client: setuid: Operation not permitted             #"
255
 
        @echo "#                     seteuid: Operation not permitted            #"
256
 
        @echo "#                     klogctl: Operation not permitted            #"
257
 
        @echo "###################################################################"
258
 
        ./plugin-runner --plugin-dir=plugins.d \
259
 
                --config-file=plugin-runner.conf \
260
 
                --options-for=mandos-client:--seckey=keydir/seckey.txt,--pubkey=keydir/pubkey.txt,--network-hook-dir=network-hooks.d \
261
 
                $(CLIENTARGS)
262
 
 
263
 
# Used by run-client
264
 
keydir/seckey.txt keydir/pubkey.txt: mandos-keygen
265
 
        install --directory keydir
266
 
        ./mandos-keygen --dir keydir --force
267
 
 
268
 
# Run the server with a local config
269
 
run-server: confdir/mandos.conf confdir/clients.conf statedir
270
 
        ./mandos --debug --no-dbus --configdir=confdir \
271
 
                --statedir=statedir $(SERVERARGS)
272
 
 
273
 
# Used by run-server
274
 
confdir/mandos.conf: mandos.conf
275
 
        install --directory confdir
276
 
        install --mode=u=rw,go=r $^ $@
277
 
confdir/clients.conf: clients.conf keydir/seckey.txt
278
 
        install --directory confdir
279
 
        install --mode=u=rw $< $@
280
 
# Add a client password
281
 
        ./mandos-keygen --dir keydir --password >> $@
282
 
statedir:
283
 
        install --directory statedir
284
 
 
285
 
install: install-server install-client-nokey
286
 
 
287
 
install-html: html
288
 
        install --directory $(htmldir)
289
 
        install --mode=u=rw,go=r --target-directory=$(htmldir) \
290
 
                $(htmldocs)
291
 
 
292
 
install-server: doc
293
 
        install --directory $(CONFDIR)
294
 
        install --directory --mode=u=rwx --owner=$(USER) \
295
 
                --group=$(GROUP) $(STATEDIR)
296
 
        install --mode=u=rwx,go=rx mandos $(PREFIX)/sbin/mandos
297
 
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
298
 
                mandos-ctl
299
 
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
300
 
                mandos-monitor
301
 
        install --mode=u=rw,go=r --target-directory=$(CONFDIR) \
302
 
                mandos.conf
303
 
        install --mode=u=rw --target-directory=$(CONFDIR) \
304
 
                clients.conf
305
 
        install --mode=u=rw,go=r dbus-mandos.conf \
306
 
                $(DESTDIR)/etc/dbus-1/system.d/mandos.conf
307
 
        install --mode=u=rwx,go=rx init.d-mandos \
308
 
                $(DESTDIR)/etc/init.d/mandos
309
 
        install --mode=u=rw,go=r default-mandos \
310
 
                $(DESTDIR)/etc/default/mandos
311
 
        if [ -z $(DESTDIR) ]; then \
312
 
                update-rc.d mandos defaults 25 15;\
313
 
        fi
314
 
        gzip --best --to-stdout mandos.8 \
315
 
                > $(MANDIR)/man8/mandos.8.gz
316
 
        gzip --best --to-stdout mandos-monitor.8 \
317
 
                > $(MANDIR)/man8/mandos-monitor.8.gz
318
 
        gzip --best --to-stdout mandos-ctl.8 \
319
 
                > $(MANDIR)/man8/mandos-ctl.8.gz
320
 
        gzip --best --to-stdout mandos.conf.5 \
321
 
                > $(MANDIR)/man5/mandos.conf.5.gz
322
 
        gzip --best --to-stdout mandos-clients.conf.5 \
323
 
                > $(MANDIR)/man5/mandos-clients.conf.5.gz
324
 
        gzip --best --to-stdout intro.8mandos \
325
 
                > $(MANDIR)/man8/intro.8mandos.gz
326
 
 
327
 
install-client-nokey: all doc
328
 
        install --directory $(PREFIX)/lib/mandos $(CONFDIR)
329
 
        install --directory --mode=u=rwx $(KEYDIR) \
330
 
                $(PREFIX)/lib/mandos/plugins.d
331
 
        if [ "$(CONFDIR)" != "$(PREFIX)/lib/mandos" ]; then \
332
 
                install --mode=u=rwx \
333
 
                        --directory "$(CONFDIR)/plugins.d"; \
334
 
        fi
335
 
        install --mode=u=rwx,go=rx --directory \
336
 
                "$(CONFDIR)/network-hooks.d"
337
 
        install --mode=u=rwx,go=rx \
338
 
                --target-directory=$(PREFIX)/lib/mandos plugin-runner
339
 
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
340
 
                mandos-keygen
341
 
        install --mode=u=rwx,go=rx \
342
 
                --target-directory=$(PREFIX)/lib/mandos/plugins.d \
343
 
                plugins.d/password-prompt
344
 
        install --mode=u=rwxs,go=rx \
345
 
                --target-directory=$(PREFIX)/lib/mandos/plugins.d \
346
 
                plugins.d/mandos-client
347
 
        install --mode=u=rwxs,go=rx \
348
 
                --target-directory=$(PREFIX)/lib/mandos/plugins.d \
349
 
                plugins.d/usplash
350
 
        install --mode=u=rwxs,go=rx \
351
 
                --target-directory=$(PREFIX)/lib/mandos/plugins.d \
352
 
                plugins.d/splashy
353
 
        install --mode=u=rwxs,go=rx \
354
 
                --target-directory=$(PREFIX)/lib/mandos/plugins.d \
355
 
                plugins.d/askpass-fifo
356
 
        install --mode=u=rwxs,go=rx \
357
 
                --target-directory=$(PREFIX)/lib/mandos/plugins.d \
358
 
                plugins.d/plymouth
359
 
        install initramfs-tools-hook \
360
 
                $(INITRAMFSTOOLS)/hooks/mandos
361
 
        install --mode=u=rw,go=r initramfs-tools-hook-conf \
362
 
                $(INITRAMFSTOOLS)/conf-hooks.d/mandos
363
 
        install initramfs-tools-script \
364
 
                $(INITRAMFSTOOLS)/scripts/init-premount/mandos
365
 
        install --mode=u=rw,go=r plugin-runner.conf $(CONFDIR)
366
 
        gzip --best --to-stdout mandos-keygen.8 \
367
 
                > $(MANDIR)/man8/mandos-keygen.8.gz
368
 
        gzip --best --to-stdout plugin-runner.8mandos \
369
 
                > $(MANDIR)/man8/plugin-runner.8mandos.gz
370
 
        gzip --best --to-stdout plugins.d/mandos-client.8mandos \
371
 
                > $(MANDIR)/man8/mandos-client.8mandos.gz
372
 
        gzip --best --to-stdout plugins.d/password-prompt.8mandos \
373
 
                > $(MANDIR)/man8/password-prompt.8mandos.gz
374
 
        gzip --best --to-stdout plugins.d/usplash.8mandos \
375
 
                > $(MANDIR)/man8/usplash.8mandos.gz
376
 
        gzip --best --to-stdout plugins.d/splashy.8mandos \
377
 
                > $(MANDIR)/man8/splashy.8mandos.gz
378
 
        gzip --best --to-stdout plugins.d/askpass-fifo.8mandos \
379
 
                > $(MANDIR)/man8/askpass-fifo.8mandos.gz
380
 
        gzip --best --to-stdout plugins.d/plymouth.8mandos \
381
 
                > $(MANDIR)/man8/plymouth.8mandos.gz
382
 
 
383
 
install-client: install-client-nokey
384
 
# Post-installation stuff
385
 
        -$(PREFIX)/sbin/mandos-keygen --dir "$(KEYDIR)"
386
 
        update-initramfs -k all -u
387
 
        echo "Now run mandos-keygen --password --dir $(KEYDIR)"
388
 
 
389
 
uninstall: uninstall-server uninstall-client
390
 
 
391
 
uninstall-server:
392
 
        -rm --force $(PREFIX)/sbin/mandos \
393
 
                $(PREFIX)/sbin/mandos-ctl \
394
 
                $(PREFIX)/sbin/mandos-monitor \
395
 
                $(MANDIR)/man8/mandos.8.gz \
396
 
                $(MANDIR)/man8/mandos-monitor.8.gz \
397
 
                $(MANDIR)/man8/mandos-ctl.8.gz \
398
 
                $(MANDIR)/man5/mandos.conf.5.gz \
399
 
                $(MANDIR)/man5/mandos-clients.conf.5.gz
400
 
        update-rc.d -f mandos remove
401
 
        -rmdir $(CONFDIR)
402
 
 
403
 
uninstall-client:
404
 
# Refuse to uninstall client if /etc/crypttab is explicitly configured
405
 
# to use it.
406
 
        ! grep --regexp='^ *[^ #].*keyscript=[^,=]*/mandos/' \
407
 
                $(DESTDIR)/etc/crypttab
408
 
        -rm --force $(PREFIX)/sbin/mandos-keygen \
409
 
                $(PREFIX)/lib/mandos/plugin-runner \
410
 
                $(PREFIX)/lib/mandos/plugins.d/password-prompt \
411
 
                $(PREFIX)/lib/mandos/plugins.d/mandos-client \
412
 
                $(PREFIX)/lib/mandos/plugins.d/usplash \
413
 
                $(PREFIX)/lib/mandos/plugins.d/splashy \
414
 
                $(PREFIX)/lib/mandos/plugins.d/askpass-fifo \
415
 
                $(PREFIX)/lib/mandos/plugins.d/plymouth \
416
 
                $(INITRAMFSTOOLS)/hooks/mandos \
417
 
                $(INITRAMFSTOOLS)/conf-hooks.d/mandos \
418
 
                $(INITRAMFSTOOLS)/scripts/init-premount/mandos \
419
 
                $(MANDIR)/man8/mandos-keygen.8.gz \
420
 
                $(MANDIR)/man8/plugin-runner.8mandos.gz \
421
 
                $(MANDIR)/man8/mandos-client.8mandos.gz
422
 
                $(MANDIR)/man8/password-prompt.8mandos.gz \
423
 
                $(MANDIR)/man8/usplash.8mandos.gz \
424
 
                $(MANDIR)/man8/splashy.8mandos.gz \
425
 
                $(MANDIR)/man8/askpass-fifo.8mandos.gz \
426
 
                $(MANDIR)/man8/plymouth.8mandos.gz \
427
 
        -rmdir $(PREFIX)/lib/mandos/plugins.d $(CONFDIR)/plugins.d \
428
 
                 $(PREFIX)/lib/mandos $(CONFDIR) $(KEYDIR)
429
 
        update-initramfs -k all -u
430
 
 
431
 
purge: purge-server purge-client
432
 
 
433
 
purge-server: uninstall-server
434
 
        -rm --force $(CONFDIR)/mandos.conf $(CONFDIR)/clients.conf \
435
 
                $(DESTDIR)/etc/dbus-1/system.d/mandos.conf
436
 
                $(DESTDIR)/etc/default/mandos \
437
 
                $(DESTDIR)/etc/init.d/mandos \
438
 
                $(DESTDIR)/var/run/mandos.pid
439
 
        -rmdir $(CONFDIR)
440
 
 
441
 
purge-client: uninstall-client
442
 
        -shred --remove $(KEYDIR)/seckey.txt
443
 
        -rm --force $(CONFDIR)/plugin-runner.conf \
444
 
                $(KEYDIR)/pubkey.txt $(KEYDIR)/seckey.txt
445
 
        -rmdir $(KEYDIR) $(CONFDIR)/plugins.d $(CONFDIR)
 
31
        -rm -f $(PROGS) $(objects) core