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