/mandos/trunk

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

« back to all changes in this revision

Viewing changes to Makefile

  • Committer: Teddy Hogeborn
  • Date: 2016-03-17 20:40:55 UTC
  • Revision ID: teddy@recompile.se-20160317204055-bhsh5xsidq7w5cxu
Client: Fix plymouth agent; broken since 1.7.2.

Fix an very old memory bug in the plymouth agent (which has been
present since its apperance in version 1.2), but which was only
recently detected at run time due to the new -fsanitize=address
compile- time flag, which has been used since version 1.7.2.  This
detection of a memory access violation causes the program to abort,
making the Plymouth graphical boot system unable to accept interactive
input of passwords when using the Mandos client.

* plugins.d/plymouth.c (exec_and_wait): Fix memory allocation bug when
  allocating new_argv.  Also tolerate a zero-length argv.

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 \
 
1
WARN=-O -Wall -Wextra -Wdouble-promotion -Wformat=2 -Winit-self \
 
2
        -Wmissing-include-dirs -Wswitch-default -Wswitch-enum \
 
3
        -Wunused -Wuninitialized -Wstrict-overflow=5 \
 
4
        -Wsuggest-attribute=pure -Wsuggest-attribute=const \
 
5
        -Wsuggest-attribute=noreturn -Wfloat-equal -Wundef -Wshadow \
4
6
        -Wunsafe-loop-optimizations -Wpointer-arith \
5
7
        -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 
 
8
        -Wconversion -Wlogical-op -Waggregate-return \
 
9
        -Wstrict-prototypes -Wold-style-definition \
 
10
        -Wmissing-format-attribute -Wnormalized=nfc -Wpacked \
 
11
        -Wredundant-decls -Wnested-externs -Winline -Wvla \
 
12
        -Wvolatile-register-var -Woverlength-strings
9
13
#DEBUG=-ggdb3
10
 
# For info about _FORTIFY_SOURCE, see
11
 
# <http://www.kernel.org/doc/man-pages/online/pages/man7/feature_test_macros.7.html>
 
14
# For info about _FORTIFY_SOURCE, see feature_test_macros(7)
12
15
# and <http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html>.
13
16
FORTIFY=-D_FORTIFY_SOURCE=2 -fstack-protector-all -fPIC
 
17
# <https://developerblog.redhat.com/2014/10/16/gcc-undefined-behavior-sanitizer-ubsan/>
 
18
ALL_SANITIZE_OPTIONS:=-fsanitize=address -fsanitize=undefined \
 
19
        -fsanitize=shift -fsanitize=integer-divide-by-zero \
 
20
        -fsanitize=unreachable -fsanitize=vla-bound -fsanitize=null \
 
21
        -fsanitize=return -fsanitize=signed-integer-overflow \
 
22
        -fsanitize=bounds -fsanitize=alignment \
 
23
        -fsanitize=object-size -fsanitize=float-divide-by-zero \
 
24
        -fsanitize=float-cast-overflow -fsanitize=nonnull-attribute \
 
25
        -fsanitize=returns-nonnull-attribute -fsanitize=bool \
 
26
        -fsanitize=enum
 
27
# Check which sanitizing options can be used
 
28
SANITIZE:=$(foreach option,$(ALL_SANITIZE_OPTIONS),$(shell \
 
29
        echo 'int main(){}' | $(CC) --language=c $(option) /dev/stdin \
 
30
        -o /dev/null >/dev/null 2>&1 && echo $(option)))
14
31
LINK_FORTIFY_LD=-z relro -z now
15
32
LINK_FORTIFY=
16
33
 
20
37
LINK_FORTIFY += -pie
21
38
endif
22
39
#COVERAGE=--coverage
23
 
OPTIMIZE=-Os
24
 
LANGUAGE=-std=gnu99
 
40
OPTIMIZE=-Os -fno-strict-aliasing
 
41
LANGUAGE=-std=gnu11
25
42
htmldir=man
26
 
version=1.0.14
 
43
version=1.7.6
27
44
SED=sed
28
45
 
 
46
USER=$(firstword $(subst :, ,$(shell getent passwd _mandos || getent passwd nobody || echo 65534)))
 
47
GROUP=$(firstword $(subst :, ,$(shell getent group _mandos || getent group nogroup || echo 65534)))
 
48
 
29
49
## Use these settings for a traditional /usr/local install
30
50
# PREFIX=$(DESTDIR)/usr/local
31
51
# CONFDIR=$(DESTDIR)/etc/mandos
32
52
# KEYDIR=$(DESTDIR)/etc/mandos/keys
33
53
# MANDIR=$(PREFIX)/man
34
54
# INITRAMFSTOOLS=$(DESTDIR)/etc/initramfs-tools
 
55
# STATEDIR=$(DESTDIR)/var/lib/mandos
 
56
# LIBDIR=$(PREFIX)/lib
35
57
##
36
58
 
37
59
## These settings are for a package-type install
40
62
KEYDIR=$(DESTDIR)/etc/keys/mandos
41
63
MANDIR=$(PREFIX)/share/man
42
64
INITRAMFSTOOLS=$(DESTDIR)/usr/share/initramfs-tools
 
65
STATEDIR=$(DESTDIR)/var/lib/mandos
 
66
LIBDIR=$(shell \
 
67
        for d in \
 
68
        "/usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH 2>/dev/null`" \
 
69
        "`rpm --eval='%{_libdir}' 2>/dev/null`" /usr/lib; do \
 
70
                if [ -d "$$d" -a "$$d" = "$${d%/}" ]; then \
 
71
                        echo "$(DESTDIR)$$d"; \
 
72
                        break; \
 
73
                fi; \
 
74
        done)
43
75
##
44
76
 
 
77
SYSTEMD=$(DESTDIR)$(shell pkg-config systemd --variable=systemdsystemunitdir)
 
78
 
45
79
GNUTLS_CFLAGS=$(shell pkg-config --cflags-only-I gnutls)
46
80
GNUTLS_LIBS=$(shell pkg-config --libs gnutls)
47
81
AVAHI_CFLAGS=$(shell pkg-config --cflags-only-I avahi-core)
49
83
GPGME_CFLAGS=$(shell gpgme-config --cflags; getconf LFS_CFLAGS)
50
84
GPGME_LIBS=$(shell gpgme-config --libs; getconf LFS_LIBS; \
51
85
        getconf LFS_LDFLAGS)
 
86
LIBNL3_CFLAGS=$(shell pkg-config --cflags-only-I libnl-route-3.0)
 
87
LIBNL3_LIBS=$(shell pkg-config --libs libnl-route-3.0)
52
88
 
53
89
# Do not change these two
54
 
CFLAGS=$(WARN) $(DEBUG) $(FORTIFY) $(COVERAGE) $(OPTIMIZE) \
55
 
        $(LANGUAGE) $(GNUTLS_CFLAGS) $(AVAHI_CFLAGS) $(GPGME_CFLAGS) \
56
 
        -DVERSION='"$(version)"'
57
 
LDFLAGS=$(COVERAGE) $(LINK_FORTIFY) $(foreach flag,$(LINK_FORTIFY_LD),-Xlinker $(flag))
 
90
CFLAGS+=$(WARN) $(DEBUG) $(FORTIFY) $(SANITIZE) $(COVERAGE) \
 
91
        $(OPTIMIZE) $(LANGUAGE) $(GNUTLS_CFLAGS) $(AVAHI_CFLAGS) \
 
92
        $(GPGME_CFLAGS) -DVERSION='"$(version)"'
 
93
LDFLAGS+=-Xlinker --as-needed $(COVERAGE) $(LINK_FORTIFY) $(foreach flag,$(LINK_FORTIFY_LD),-Xlinker $(flag))
58
94
 
59
95
# Commands to format a DocBook <refentry> document into a manual page
60
96
DOCBOOKTOMAN=$(strip cd $(dir $<); xsltproc --nonet --xinclude \
63
99
        --param make.single.year.ranges         1 \
64
100
        --param man.output.quietly              1 \
65
101
        --param man.authors.section.enabled     0 \
66
 
         /usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl \
 
102
        /usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl \
67
103
        $(notdir $<); \
68
 
        $(MANPOST) $(notdir $@))
69
 
# DocBook-to-man post-processing to fix a '\n' escape bug
70
 
MANPOST=$(SED) --in-place --expression='s,\\\\en,\\en,g;s,\\n,\\en,g'
 
104
        if locale --all 2>/dev/null | grep --regexp='^en_US\.utf8$$' \
 
105
        && type man 2>/dev/null; then LANG=en_US.UTF-8 MANWIDTH=80 \
 
106
        man --warnings --encoding=UTF-8 --local-file $(notdir $@); \
 
107
        fi >/dev/null)
71
108
 
72
109
DOCBOOKTOHTML=$(strip xsltproc --nonet --xinclude \
73
110
        --param make.year.ranges                1 \
83
120
        --expression='s/\(<a class="citerefentry" href="\)\("><span class="citerefentry"><span class="refentrytitle">\)\([^<]*\)\(<\/span>(\)\([^)]*\)\()<\/span><\/a>\)/\1\3.\5\2\3\4\5\6/g'
84
121
 
85
122
PLUGINS=plugins.d/password-prompt plugins.d/mandos-client \
86
 
        plugins.d/usplash plugins.d/splashy plugins.d/askpass-fifo
87
 
CPROGS=plugin-runner $(PLUGINS)
88
 
PROGS=mandos mandos-keygen mandos-ctl $(CPROGS)
89
 
DOCS=mandos.8 plugin-runner.8mandos mandos-keygen.8 \
 
123
        plugins.d/usplash plugins.d/splashy plugins.d/askpass-fifo \
 
124
        plugins.d/plymouth
 
125
PLUGIN_HELPERS=plugin-helpers/mandos-client-iprouteadddel
 
126
CPROGS=plugin-runner $(PLUGINS) $(PLUGIN_HELPERS)
 
127
PROGS=mandos mandos-keygen mandos-ctl mandos-monitor $(CPROGS)
 
128
DOCS=mandos.8 mandos-keygen.8 mandos-monitor.8 mandos-ctl.8 \
 
129
        mandos.conf.5 mandos-clients.conf.5 plugin-runner.8mandos \
90
130
        plugins.d/mandos-client.8mandos \
91
 
        plugins.d/password-prompt.8mandos mandos.conf.5 \
92
 
        plugins.d/usplash.8mandos plugins.d/splashy.8mandos \
93
 
        plugins.d/askpass-fifo.8mandos mandos-clients.conf.5
 
131
        plugins.d/password-prompt.8mandos plugins.d/usplash.8mandos \
 
132
        plugins.d/splashy.8mandos plugins.d/askpass-fifo.8mandos \
 
133
        plugins.d/plymouth.8mandos intro.8mandos
94
134
 
95
135
htmldocs=$(addsuffix .xhtml,$(DOCS))
96
136
 
117
157
%.8mandos.xhtml: %.xml common.ent legalnotice.xml
118
158
        $(DOCBOOKTOHTML)
119
159
 
 
160
intro.8mandos: intro.xml common.ent legalnotice.xml
 
161
        $(DOCBOOKTOMAN)
 
162
intro.8mandos.xhtml: intro.xml common.ent legalnotice.xml
 
163
        $(DOCBOOKTOHTML)
 
164
 
120
165
mandos.8: mandos.xml common.ent mandos-options.xml overview.xml \
121
166
                legalnotice.xml
122
167
        $(DOCBOOKTOMAN)
131
176
                 legalnotice.xml
132
177
        $(DOCBOOKTOHTML)
133
178
 
 
179
mandos-monitor.8: mandos-monitor.xml common.ent overview.xml \
 
180
                legalnotice.xml
 
181
        $(DOCBOOKTOMAN)
 
182
mandos-monitor.8.xhtml: mandos-monitor.xml common.ent overview.xml \
 
183
                 legalnotice.xml
 
184
        $(DOCBOOKTOHTML)
 
185
 
 
186
mandos-ctl.8: mandos-ctl.xml common.ent overview.xml \
 
187
                legalnotice.xml
 
188
        $(DOCBOOKTOMAN)
 
189
mandos-ctl.8.xhtml: mandos-ctl.xml common.ent overview.xml \
 
190
                 legalnotice.xml
 
191
        $(DOCBOOKTOHTML)
 
192
 
134
193
mandos.conf.5: mandos.conf.xml common.ent mandos-options.xml \
135
194
                legalnotice.xml
136
195
        $(DOCBOOKTOMAN)
177
236
                --expression='s/^\(version = "\)[^"]*"$$/\1$(version)"/' \
178
237
                $@)
179
238
 
 
239
mandos-monitor: Makefile
 
240
        $(strip $(SED) --in-place \
 
241
                --expression='s/^\(version = "\)[^"]*"$$/\1$(version)"/' \
 
242
                $@)
 
243
 
180
244
mandos.lsm: Makefile
181
245
        $(strip $(SED) --in-place \
182
246
                --expression='s/^\(Version:\).*/\1\t$(version)/' \
189
253
                $@)
190
254
 
191
255
plugins.d/mandos-client: plugins.d/mandos-client.c
192
 
        $(LINK.c) $(GNUTLS_LIBS) $(AVAHI_LIBS) $(GPGME_LIBS) $(strip\
193
 
                ) $(COMMON) $^ $(LOADLIBES) $(LDLIBS) -o $@
194
 
 
195
 
.PHONY : all doc html clean distclean run-client run-server install \
196
 
        install-server install-client uninstall uninstall-server \
197
 
        uninstall-client purge purge-server purge-client
 
256
        $(LINK.c) $^ -lrt $(GNUTLS_LIBS) $(AVAHI_LIBS) $(strip\
 
257
                ) $(GPGME_LIBS) $(LOADLIBES) $(LDLIBS) -o $@
 
258
 
 
259
plugin-helpers/mandos-client-iprouteadddel: plugin-helpers/mandos-client-iprouteadddel.c
 
260
        $(LINK.c) $(LIBNL3_CFLAGS) $^ $(LIBNL3_LIBS) $(strip\
 
261
                ) $(LOADLIBES) $(LDLIBS) -o $@
 
262
 
 
263
.PHONY : all doc html clean distclean mostlyclean maintainer-clean \
 
264
        check run-client run-server install install-html \
 
265
        install-server install-client-nokey install-client uninstall \
 
266
        uninstall-server uninstall-client purge purge-server \
 
267
        purge-client
198
268
 
199
269
clean:
200
270
        -rm --force $(CPROGS) $(objects) $(htmldocs) $(DOCS) core
202
272
distclean: clean
203
273
mostlyclean: clean
204
274
maintainer-clean: clean
205
 
        -rm --force --recursive keydir confdir
 
275
        -rm --force --recursive keydir confdir statedir
206
276
 
207
277
check:  all
208
278
        ./mandos --check
 
279
        ./mandos-ctl --check
209
280
 
210
281
# Run the client with a local config and key
211
282
run-client: all keydir/seckey.txt keydir/pubkey.txt
214
285
        @echo "# ignored.  The messages are caused by not running as root, but   #"
215
286
        @echo "# you should NOT run \"make run-client\" as root unless you also    #"
216
287
        @echo "# unpacked and compiled Mandos as root, which is NOT recommended. #"
217
 
        @echo "# From plugin-runner: setuid: Operation not permitted             #"
 
288
        @echo "# From plugin-runner: setgid: Operation not permitted             #"
 
289
        @echo "#                     setuid: Operation not permitted             #"
218
290
        @echo "# From askpass-fifo:  mkfifo: Permission denied                   #"
219
 
        @echo "# From mandos-client: setuid: Operation not permitted             #"
220
 
        @echo "#                     seteuid: Operation not permitted            #"
221
 
        @echo "#                     klogctl: Operation not permitted            #"
 
291
        @echo "# From mandos-client:                                             #"
 
292
        @echo "#             Failed to raise privileges: Operation not permitted #"
 
293
        @echo "#             Warning: network hook \"*\" exited with status *      #"
222
294
        @echo "###################################################################"
 
295
# We set GNOME_KEYRING_CONTROL to block pam_gnome_keyring
223
296
        ./plugin-runner --plugin-dir=plugins.d \
 
297
                --plugin-helper-dir=plugin-helpers \
224
298
                --config-file=plugin-runner.conf \
225
 
                --options-for=mandos-client:--seckey=keydir/seckey.txt,--pubkey=keydir/pubkey.txt \
 
299
                --options-for=mandos-client:--seckey=keydir/seckey.txt,--pubkey=keydir/pubkey.txt,--network-hook-dir=network-hooks.d \
 
300
                --env-for=mandos-client:GNOME_KEYRING_CONTROL= \
226
301
                $(CLIENTARGS)
227
302
 
228
303
# Used by run-client
231
306
        ./mandos-keygen --dir keydir --force
232
307
 
233
308
# Run the server with a local config
234
 
run-server: confdir/mandos.conf confdir/clients.conf
235
 
        @echo "#################################################################"
236
 
        @echo "# NOTE: Please IGNORE errors about \"No permission to bind to    #"
237
 
        @echo "# interface\" or \"Could not open file u'/var/run/mandos.pid'\" -  #"
238
 
        @echo "# they are harmless and are caused by the server not running as #"
239
 
        @echo "# root.  Do NOT run \"make run-server\" server as root if you did #"
240
 
        @echo "# not also unpack and compile it as root.                       #"
241
 
        @echo "#################################################################"
242
 
        ./mandos --debug --no-dbus --configdir=confdir $(SERVERARGS)
 
309
run-server: confdir/mandos.conf confdir/clients.conf statedir
 
310
        ./mandos --debug --no-dbus --configdir=confdir \
 
311
                --statedir=statedir $(SERVERARGS)
243
312
 
244
313
# Used by run-server
245
314
confdir/mandos.conf: mandos.conf
249
318
        install --directory confdir
250
319
        install --mode=u=rw $< $@
251
320
# Add a client password
252
 
        ./mandos-keygen --dir keydir --password >> $@
 
321
        ./mandos-keygen --dir keydir --password --no-ssh >> $@
 
322
statedir:
 
323
        install --directory statedir
253
324
 
254
325
install: install-server install-client-nokey
255
326
 
260
331
 
261
332
install-server: doc
262
333
        install --directory $(CONFDIR)
 
334
        if install --directory --mode=u=rwx --owner=$(USER) \
 
335
                --group=$(GROUP) $(STATEDIR); then \
 
336
                :; \
 
337
        elif install --directory --mode=u=rwx $(STATEDIR); then \
 
338
                chown -- $(USER):$(GROUP) $(STATEDIR) || :; \
 
339
        fi
263
340
        install --mode=u=rwx,go=rx mandos $(PREFIX)/sbin/mandos
 
341
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
 
342
                mandos-ctl
 
343
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
 
344
                mandos-monitor
264
345
        install --mode=u=rw,go=r --target-directory=$(CONFDIR) \
265
346
                mandos.conf
266
347
        install --mode=u=rw --target-directory=$(CONFDIR) \
267
348
                clients.conf
 
349
        install --mode=u=rw,go=r dbus-mandos.conf \
 
350
                $(DESTDIR)/etc/dbus-1/system.d/mandos.conf
268
351
        install --mode=u=rwx,go=rx init.d-mandos \
269
352
                $(DESTDIR)/etc/init.d/mandos
 
353
        if [ "$(SYSTEMD)" != "$(DESTDIR)" -a -d "$(SYSTEMD)" ]; then \
 
354
                install --mode=u=rw,go=r mandos.service $(SYSTEMD); \
 
355
        fi
270
356
        install --mode=u=rw,go=r default-mandos \
271
357
                $(DESTDIR)/etc/default/mandos
272
358
        if [ -z $(DESTDIR) ]; then \
274
360
        fi
275
361
        gzip --best --to-stdout mandos.8 \
276
362
                > $(MANDIR)/man8/mandos.8.gz
 
363
        gzip --best --to-stdout mandos-monitor.8 \
 
364
                > $(MANDIR)/man8/mandos-monitor.8.gz
 
365
        gzip --best --to-stdout mandos-ctl.8 \
 
366
                > $(MANDIR)/man8/mandos-ctl.8.gz
277
367
        gzip --best --to-stdout mandos.conf.5 \
278
368
                > $(MANDIR)/man5/mandos.conf.5.gz
279
369
        gzip --best --to-stdout mandos-clients.conf.5 \
280
370
                > $(MANDIR)/man5/mandos-clients.conf.5.gz
 
371
        gzip --best --to-stdout intro.8mandos \
 
372
                > $(MANDIR)/man8/intro.8mandos.gz
281
373
 
282
374
install-client-nokey: all doc
283
 
        install --directory $(PREFIX)/lib/mandos $(CONFDIR)
 
375
        install --directory $(LIBDIR)/mandos $(CONFDIR)
284
376
        install --directory --mode=u=rwx $(KEYDIR) \
285
 
                $(PREFIX)/lib/mandos/plugins.d
286
 
        if [ "$(CONFDIR)" != "$(PREFIX)/lib/mandos" ]; then \
 
377
                $(LIBDIR)/mandos/plugins.d \
 
378
                $(LIBDIR)/mandos/plugin-helpers
 
379
        if [ "$(CONFDIR)" != "$(LIBDIR)/mandos" ]; then \
287
380
                install --mode=u=rwx \
288
381
                        --directory "$(CONFDIR)/plugins.d"; \
 
382
                install --directory "$(CONFDIR)/plugin-helpers"; \
289
383
        fi
 
384
        install --mode=u=rwx,go=rx --directory \
 
385
                "$(CONFDIR)/network-hooks.d"
290
386
        install --mode=u=rwx,go=rx \
291
 
                --target-directory=$(PREFIX)/lib/mandos plugin-runner
 
387
                --target-directory=$(LIBDIR)/mandos plugin-runner
292
388
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
293
389
                mandos-keygen
294
390
        install --mode=u=rwx,go=rx \
295
 
                --target-directory=$(PREFIX)/lib/mandos/plugins.d \
 
391
                --target-directory=$(LIBDIR)/mandos/plugins.d \
296
392
                plugins.d/password-prompt
297
393
        install --mode=u=rwxs,go=rx \
298
 
                --target-directory=$(PREFIX)/lib/mandos/plugins.d \
 
394
                --target-directory=$(LIBDIR)/mandos/plugins.d \
299
395
                plugins.d/mandos-client
300
396
        install --mode=u=rwxs,go=rx \
301
 
                --target-directory=$(PREFIX)/lib/mandos/plugins.d \
 
397
                --target-directory=$(LIBDIR)/mandos/plugins.d \
302
398
                plugins.d/usplash
303
399
        install --mode=u=rwxs,go=rx \
304
 
                --target-directory=$(PREFIX)/lib/mandos/plugins.d \
 
400
                --target-directory=$(LIBDIR)/mandos/plugins.d \
305
401
                plugins.d/splashy
306
402
        install --mode=u=rwxs,go=rx \
307
 
                --target-directory=$(PREFIX)/lib/mandos/plugins.d \
 
403
                --target-directory=$(LIBDIR)/mandos/plugins.d \
308
404
                plugins.d/askpass-fifo
 
405
        install --mode=u=rwxs,go=rx \
 
406
                --target-directory=$(LIBDIR)/mandos/plugins.d \
 
407
                plugins.d/plymouth
 
408
        install --mode=u=rwxs,go=rx \
 
409
                --target-directory=$(LIBDIR)/mandos/plugin-helpers \
 
410
                plugin-helpers/mandos-client-iprouteadddel
309
411
        install initramfs-tools-hook \
310
412
                $(INITRAMFSTOOLS)/hooks/mandos
311
413
        install --mode=u=rw,go=r initramfs-tools-hook-conf \
317
419
                > $(MANDIR)/man8/mandos-keygen.8.gz
318
420
        gzip --best --to-stdout plugin-runner.8mandos \
319
421
                > $(MANDIR)/man8/plugin-runner.8mandos.gz
 
422
        gzip --best --to-stdout plugins.d/mandos-client.8mandos \
 
423
                > $(MANDIR)/man8/mandos-client.8mandos.gz
320
424
        gzip --best --to-stdout plugins.d/password-prompt.8mandos \
321
425
                > $(MANDIR)/man8/password-prompt.8mandos.gz
322
 
        gzip --best --to-stdout plugins.d/mandos-client.8mandos \
323
 
                > $(MANDIR)/man8/mandos-client.8mandos.gz
324
426
        gzip --best --to-stdout plugins.d/usplash.8mandos \
325
427
                > $(MANDIR)/man8/usplash.8mandos.gz
326
428
        gzip --best --to-stdout plugins.d/splashy.8mandos \
327
429
                > $(MANDIR)/man8/splashy.8mandos.gz
328
430
        gzip --best --to-stdout plugins.d/askpass-fifo.8mandos \
329
431
                > $(MANDIR)/man8/askpass-fifo.8mandos.gz
 
432
        gzip --best --to-stdout plugins.d/plymouth.8mandos \
 
433
                > $(MANDIR)/man8/plymouth.8mandos.gz
330
434
 
331
435
install-client: install-client-nokey
332
436
# Post-installation stuff
338
442
 
339
443
uninstall-server:
340
444
        -rm --force $(PREFIX)/sbin/mandos \
 
445
                $(PREFIX)/sbin/mandos-ctl \
 
446
                $(PREFIX)/sbin/mandos-monitor \
341
447
                $(MANDIR)/man8/mandos.8.gz \
 
448
                $(MANDIR)/man8/mandos-monitor.8.gz \
 
449
                $(MANDIR)/man8/mandos-ctl.8.gz \
342
450
                $(MANDIR)/man5/mandos.conf.5.gz \
343
451
                $(MANDIR)/man5/mandos-clients.conf.5.gz
344
452
        update-rc.d -f mandos remove
350
458
        ! grep --regexp='^ *[^ #].*keyscript=[^,=]*/mandos/' \
351
459
                $(DESTDIR)/etc/crypttab
352
460
        -rm --force $(PREFIX)/sbin/mandos-keygen \
353
 
                $(PREFIX)/lib/mandos/plugin-runner \
354
 
                $(PREFIX)/lib/mandos/plugins.d/password-prompt \
355
 
                $(PREFIX)/lib/mandos/plugins.d/mandos-client \
356
 
                $(PREFIX)/lib/mandos/plugins.d/usplash \
357
 
                $(PREFIX)/lib/mandos/plugins.d/splashy \
358
 
                $(PREFIX)/lib/mandos/plugins.d/askpass-fifo \
 
461
                $(LIBDIR)/mandos/plugin-runner \
 
462
                $(LIBDIR)/mandos/plugins.d/password-prompt \
 
463
                $(LIBDIR)/mandos/plugins.d/mandos-client \
 
464
                $(LIBDIR)/mandos/plugins.d/usplash \
 
465
                $(LIBDIR)/mandos/plugins.d/splashy \
 
466
                $(LIBDIR)/mandos/plugins.d/askpass-fifo \
 
467
                $(LIBDIR)/mandos/plugins.d/plymouth \
359
468
                $(INITRAMFSTOOLS)/hooks/mandos \
360
469
                $(INITRAMFSTOOLS)/conf-hooks.d/mandos \
361
470
                $(INITRAMFSTOOLS)/scripts/init-premount/mandos \
 
471
                $(MANDIR)/man8/mandos-keygen.8.gz \
362
472
                $(MANDIR)/man8/plugin-runner.8mandos.gz \
363
 
                $(MANDIR)/man8/mandos-keygen.8.gz \
 
473
                $(MANDIR)/man8/mandos-client.8mandos.gz
364
474
                $(MANDIR)/man8/password-prompt.8mandos.gz \
365
475
                $(MANDIR)/man8/usplash.8mandos.gz \
366
476
                $(MANDIR)/man8/splashy.8mandos.gz \
367
477
                $(MANDIR)/man8/askpass-fifo.8mandos.gz \
368
 
                $(MANDIR)/man8/mandos-client.8mandos.gz
369
 
        -rmdir $(PREFIX)/lib/mandos/plugins.d $(CONFDIR)/plugins.d \
370
 
                 $(PREFIX)/lib/mandos $(CONFDIR) $(KEYDIR)
 
478
                $(MANDIR)/man8/plymouth.8mandos.gz \
 
479
        -rmdir $(LIBDIR)/mandos/plugins.d $(CONFDIR)/plugins.d \
 
480
                 $(LIBDIR)/mandos $(CONFDIR) $(KEYDIR)
371
481
        update-initramfs -k all -u
372
482
 
373
483
purge: purge-server purge-client
374
484
 
375
485
purge-server: uninstall-server
376
486
        -rm --force $(CONFDIR)/mandos.conf $(CONFDIR)/clients.conf \
 
487
                $(DESTDIR)/etc/dbus-1/system.d/mandos.conf
377
488
                $(DESTDIR)/etc/default/mandos \
378
489
                $(DESTDIR)/etc/init.d/mandos \
 
490
                $(SYSTEMD)/mandos.service \
 
491
                $(DESTDIR)/run/mandos.pid \
379
492
                $(DESTDIR)/var/run/mandos.pid
380
493
        -rmdir $(CONFDIR)
381
494