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