/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: 2015-03-10 18:03:38 UTC
  • mto: (237.7.304 trunk)
  • mto: This revision was merged to the branch mainline in revision 325.
  • Revision ID: teddy@recompile.se-20150310180338-pcxw6r2qmw9k6br9
Add ":!RSA" to GnuTLS priority string, to disallow non-DHE kx.

If Mandos was somehow made to use a non-ephemeral Diffie-Hellman key
exchange algorithm in the TLS handshake, any saved network traffic
could then be decrypted later if the Mandos client key was obtained.
By default, Mandos uses ephemeral DH key exchanges which does not have
this problem, but a non-ephemeral key exchange algorithm was still
enabled by default.  The simplest solution is to simply turn that off,
which ensures that Mandos will always use ephemeral DH key exchanges.

There is a "PFS" priority string specifier, but we can't use it because:

1. Security-wise, it is a mix between "NORMAL" and "SECURE128" - it
   enables a lot more algorithms than "SECURE256".

2. It is only available since GnuTLS 3.2.4.

Thanks to Andreas Fischer <af@bantuX.org> for reporting this issue.

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