/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-07-20 03:03:33 UTC
  • Revision ID: teddy@recompile.se-20150720030333-203m2aeblypcsfte
Bug fix for GnuTLS 3: be compatible with old 2048-bit DSA keys.

The mandos-keygen program in Mandos version 1.6.0 and older generated
2048-bit DSA keys, and when GnuTLS uses these it has trouble
connecting using the Mandos default priority string.  This was
previously fixed in Mandos 1.6.2, but the bug reappeared when using
GnuTLS 3, so the default priority string has to change again; this
time also the Mandos client has to change its default, so now the
server and the client should use the same default priority string:

SECURE256:!CTYPE-X.509:+CTYPE-OPENPGP:!RSA:+SIGN-DSA-SHA256

* mandos (main/server_defaults): Changed default priority string.
* mandos-options.xml (/section/para[id="priority_compat"]): Removed.
  (/section/para[id="priority"]): Changed default priority string.
* mandos.conf ([DEFAULT]/priority): - '' -
* mandos.conf.xml (OPTIONS/priority): Refer to the id "priority"
                                      instead of "priority_compat".
* mandos.xml (OPTIONS/--priority): - '' -
* plugins.d/mandos-client.c (main): Changed default priority string.

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
22
 
LANGUAGE=-std=gnu99
 
26
OPTIMIZE=-Os -fno-strict-aliasing
 
27
LANGUAGE=-std=gnu11
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)
47
69
GPGME_CFLAGS=$(shell gpgme-config --cflags; getconf LFS_CFLAGS)
48
70
GPGME_LIBS=$(shell gpgme-config --libs; getconf LFS_LIBS; \
49
71
        getconf LFS_LDFLAGS)
 
72
LIBNL3_CFLAGS=$(shell pkg-config --cflags-only-I libnl-route-3.0)
 
73
LIBNL3_LIBS=$(shell pkg-config --libs libnl-route-3.0)
50
74
 
51
75
# Do not change these two
52
 
CFLAGS=$(WARN) $(DEBUG) $(FORTIFY) $(COVERAGE) $(OPTIMIZE) \
 
76
CFLAGS+=$(WARN) $(DEBUG) $(FORTIFY) $(COVERAGE) $(OPTIMIZE) \
53
77
        $(LANGUAGE) $(GNUTLS_CFLAGS) $(AVAHI_CFLAGS) $(GPGME_CFLAGS) \
54
78
        -DVERSION='"$(version)"'
55
 
LDFLAGS=$(COVERAGE) $(LINK_FORTIFY) $(foreach flag,$(LINK_FORTIFY_LD),-Xlinker $(flag))
 
79
LDFLAGS+=-Xlinker --as-needed $(COVERAGE) $(LINK_FORTIFY) $(foreach flag,$(LINK_FORTIFY_LD),-Xlinker $(flag))
56
80
 
57
81
# Commands to format a DocBook <refentry> document into a manual page
58
 
DOCBOOKTOMAN=cd $(dir $<); xsltproc --nonet --xinclude \
 
82
DOCBOOKTOMAN=$(strip cd $(dir $<); xsltproc --nonet --xinclude \
59
83
        --param man.charmap.use.subset          0 \
60
84
        --param make.year.ranges                1 \
61
85
        --param make.single.year.ranges         1 \
62
86
        --param man.output.quietly              1 \
63
87
        --param man.authors.section.enabled     0 \
64
 
         /usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl \
 
88
        /usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl \
65
89
        $(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'
 
90
        if locale --all 2>/dev/null | grep --regexp='^en_US\.utf8$$' \
 
91
        && type man 2>/dev/null; then LANG=en_US.UTF-8 MANWIDTH=80 \
 
92
        man --warnings --encoding=UTF-8 --local-file $(notdir $@); \
 
93
        fi >/dev/null)
69
94
 
70
 
DOCBOOKTOHTML=xsltproc --nonet --xinclude \
 
95
DOCBOOKTOHTML=$(strip xsltproc --nonet --xinclude \
71
96
        --param make.year.ranges                1 \
72
97
        --param make.single.year.ranges         1 \
73
98
        --param man.output.quietly              1 \
75
100
        --param citerefentry.link               1 \
76
101
        --output $@ \
77
102
        /usr/share/xml/docbook/stylesheet/nwalsh/xhtml/docbook.xsl \
78
 
        $<; $(HTMLPOST) $@
 
103
        $<; $(HTMLPOST) $@)
79
104
# Fix citerefentry links
80
105
HTMLPOST=$(SED) --in-place \
81
106
        --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
107
 
83
108
PLUGINS=plugins.d/password-prompt plugins.d/mandos-client \
84
 
        plugins.d/usplash plugins.d/splashy plugins.d/askpass-fifo
85
 
CPROGS=plugin-runner $(PLUGINS)
86
 
PROGS=mandos mandos-keygen mandos-ctl $(CPROGS)
87
 
DOCS=mandos.8 plugin-runner.8mandos mandos-keygen.8 \
 
109
        plugins.d/usplash plugins.d/splashy plugins.d/askpass-fifo \
 
110
        plugins.d/plymouth
 
111
PLUGIN_HELPERS=plugin-helpers/mandos-client-iprouteadddel
 
112
CPROGS=plugin-runner $(PLUGINS) $(PLUGIN_HELPERS)
 
113
PROGS=mandos mandos-keygen mandos-ctl mandos-monitor $(CPROGS)
 
114
DOCS=mandos.8 mandos-keygen.8 mandos-monitor.8 mandos-ctl.8 \
 
115
        mandos.conf.5 mandos-clients.conf.5 plugin-runner.8mandos \
88
116
        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
 
117
        plugins.d/password-prompt.8mandos plugins.d/usplash.8mandos \
 
118
        plugins.d/splashy.8mandos plugins.d/askpass-fifo.8mandos \
 
119
        plugins.d/plymouth.8mandos intro.8mandos
92
120
 
93
121
htmldocs=$(addsuffix .xhtml,$(DOCS))
94
122
 
115
143
%.8mandos.xhtml: %.xml common.ent legalnotice.xml
116
144
        $(DOCBOOKTOHTML)
117
145
 
 
146
intro.8mandos: intro.xml common.ent legalnotice.xml
 
147
        $(DOCBOOKTOMAN)
 
148
intro.8mandos.xhtml: intro.xml common.ent legalnotice.xml
 
149
        $(DOCBOOKTOHTML)
 
150
 
118
151
mandos.8: mandos.xml common.ent mandos-options.xml overview.xml \
119
152
                legalnotice.xml
120
153
        $(DOCBOOKTOMAN)
129
162
                 legalnotice.xml
130
163
        $(DOCBOOKTOHTML)
131
164
 
 
165
mandos-monitor.8: mandos-monitor.xml common.ent overview.xml \
 
166
                legalnotice.xml
 
167
        $(DOCBOOKTOMAN)
 
168
mandos-monitor.8.xhtml: mandos-monitor.xml common.ent overview.xml \
 
169
                 legalnotice.xml
 
170
        $(DOCBOOKTOHTML)
 
171
 
 
172
mandos-ctl.8: mandos-ctl.xml common.ent overview.xml \
 
173
                legalnotice.xml
 
174
        $(DOCBOOKTOMAN)
 
175
mandos-ctl.8.xhtml: mandos-ctl.xml common.ent overview.xml \
 
176
                 legalnotice.xml
 
177
        $(DOCBOOKTOHTML)
 
178
 
132
179
mandos.conf.5: mandos.conf.xml common.ent mandos-options.xml \
133
180
                legalnotice.xml
134
181
        $(DOCBOOKTOMAN)
156
203
 
157
204
# Update all these files with version number $(version)
158
205
common.ent: Makefile
159
 
        $(SED) --in-place \
 
206
        $(strip $(SED) --in-place \
160
207
                --expression='s/^\(<!ENTITY version "\)[^"]*">$$/\1$(version)">/' \
161
 
                $@
 
208
                $@)
162
209
 
163
210
mandos: Makefile
164
 
        $(SED) --in-place \
 
211
        $(strip $(SED) --in-place \
165
212
                --expression='s/^\(version = "\)[^"]*"$$/\1$(version)"/' \
166
 
                $@
 
213
                $@)
167
214
 
168
215
mandos-keygen: Makefile
169
 
        $(SED) --in-place \
 
216
        $(strip $(SED) --in-place \
170
217
                --expression='s/^\(VERSION="\)[^"]*"$$/\1$(version)"/' \
171
 
                $@
 
218
                $@)
172
219
 
173
220
mandos-ctl: Makefile
174
 
        $(SED) --in-place \
175
 
                --expression='s/^\(version = "\)[^"]*"$$/\1$(version)"/' \
176
 
                $@
 
221
        $(strip $(SED) --in-place \
 
222
                --expression='s/^\(version = "\)[^"]*"$$/\1$(version)"/' \
 
223
                $@)
 
224
 
 
225
mandos-monitor: Makefile
 
226
        $(strip $(SED) --in-place \
 
227
                --expression='s/^\(version = "\)[^"]*"$$/\1$(version)"/' \
 
228
                $@)
177
229
 
178
230
mandos.lsm: Makefile
179
 
        $(SED) --in-place \
 
231
        $(strip $(SED) --in-place \
180
232
                --expression='s/^\(Version:\).*/\1\t$(version)/' \
181
 
                $@
182
 
        $(SED) --in-place \
 
233
                $@)
 
234
        $(strip $(SED) --in-place \
183
235
                --expression='s/^\(Entered-date:\).*/\1\t$(shell date --rfc-3339=date --reference=Makefile)/' \
184
 
                $@
185
 
        $(SED) --in-place \
 
236
                $@)
 
237
        $(strip $(SED) --in-place \
186
238
                --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
 
239
                $@)
 
240
 
 
241
plugins.d/mandos-client: plugins.d/mandos-client.c
 
242
        $(LINK.c) $^ -lrt $(GNUTLS_LIBS) $(AVAHI_LIBS) $(strip\
 
243
                ) $(GPGME_LIBS) $(LOADLIBES) $(LDLIBS) -o $@
 
244
 
 
245
plugin-helpers/mandos-client-iprouteadddel: plugin-helpers/mandos-client-iprouteadddel.c
 
246
        $(LINK.c) $(LIBNL3_CFLAGS) $^ $(LIBNL3_LIBS) $(strip\
 
247
                ) $(LOADLIBES) $(LDLIBS) -o $@
 
248
 
 
249
.PHONY : all doc html clean distclean mostlyclean maintainer-clean \
 
250
        check run-client run-server install install-html \
 
251
        install-server install-client-nokey install-client uninstall \
 
252
        uninstall-server uninstall-client purge purge-server \
 
253
        purge-client
196
254
 
197
255
clean:
198
256
        -rm --force $(CPROGS) $(objects) $(htmldocs) $(DOCS) core
200
258
distclean: clean
201
259
mostlyclean: clean
202
260
maintainer-clean: clean
203
 
        -rm --force --recursive keydir confdir
 
261
        -rm --force --recursive keydir confdir statedir
204
262
 
205
263
check:  all
206
264
        ./mandos --check
 
265
        ./mandos-ctl --check
207
266
 
208
267
# Run the client with a local config and key
209
268
run-client: all keydir/seckey.txt keydir/pubkey.txt
212
271
        @echo "# ignored.  The messages are caused by not running as root, but   #"
213
272
        @echo "# you should NOT run \"make run-client\" as root unless you also    #"
214
273
        @echo "# unpacked and compiled Mandos as root, which is NOT recommended. #"
215
 
        @echo "# From plugin-runner: setuid: Operation not permitted             #"
 
274
        @echo "# From plugin-runner: setgid: Operation not permitted             #"
 
275
        @echo "#                     setuid: Operation not permitted             #"
216
276
        @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            #"
 
277
        @echo "# From mandos-client:                                             #"
 
278
        @echo "#             Failed to raise privileges: Operation not permitted #"
 
279
        @echo "#             Warning: network hook \"*\" exited with status *      #"
220
280
        @echo "###################################################################"
 
281
# We set GNOME_KEYRING_CONTROL to block pam_gnome_keyring
221
282
        ./plugin-runner --plugin-dir=plugins.d \
 
283
                --plugin-helper-dir=plugin-helpers \
222
284
                --config-file=plugin-runner.conf \
223
 
                --options-for=mandos-client:--seckey=keydir/seckey.txt,--pubkey=keydir/pubkey.txt \
 
285
                --options-for=mandos-client:--seckey=keydir/seckey.txt,--pubkey=keydir/pubkey.txt,--network-hook-dir=network-hooks.d \
 
286
                --env-for=mandos-client:GNOME_KEYRING_CONTROL= \
224
287
                $(CLIENTARGS)
225
288
 
226
289
# Used by run-client
229
292
        ./mandos-keygen --dir keydir --force
230
293
 
231
294
# 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)
 
295
run-server: confdir/mandos.conf confdir/clients.conf statedir
 
296
        ./mandos --debug --no-dbus --configdir=confdir \
 
297
                --statedir=statedir $(SERVERARGS)
241
298
 
242
299
# Used by run-server
243
300
confdir/mandos.conf: mandos.conf
247
304
        install --directory confdir
248
305
        install --mode=u=rw $< $@
249
306
# Add a client password
250
 
        ./mandos-keygen --dir keydir --password >> $@
 
307
        ./mandos-keygen --dir keydir --password --no-ssh >> $@
 
308
statedir:
 
309
        install --directory statedir
251
310
 
252
311
install: install-server install-client-nokey
253
312
 
258
317
 
259
318
install-server: doc
260
319
        install --directory $(CONFDIR)
 
320
        if install --directory --mode=u=rwx --owner=$(USER) \
 
321
                --group=$(GROUP) $(STATEDIR); then \
 
322
                :; \
 
323
        elif install --directory --mode=u=rwx $(STATEDIR); then \
 
324
                chown -- $(USER):$(GROUP) $(STATEDIR) || :; \
 
325
        fi
261
326
        install --mode=u=rwx,go=rx mandos $(PREFIX)/sbin/mandos
 
327
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
 
328
                mandos-ctl
 
329
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
 
330
                mandos-monitor
262
331
        install --mode=u=rw,go=r --target-directory=$(CONFDIR) \
263
332
                mandos.conf
264
333
        install --mode=u=rw --target-directory=$(CONFDIR) \
265
334
                clients.conf
 
335
        install --mode=u=rw,go=r dbus-mandos.conf \
 
336
                $(DESTDIR)/etc/dbus-1/system.d/mandos.conf
266
337
        install --mode=u=rwx,go=rx init.d-mandos \
267
338
                $(DESTDIR)/etc/init.d/mandos
 
339
        if [ "$(SYSTEMD)" != "$(DESTDIR)" -a -d "$(SYSTEMD)" ]; then \
 
340
                install --mode=u=rw,go=r mandos.service $(SYSTEMD); \
 
341
        fi
268
342
        install --mode=u=rw,go=r default-mandos \
269
343
                $(DESTDIR)/etc/default/mandos
270
344
        if [ -z $(DESTDIR) ]; then \
272
346
        fi
273
347
        gzip --best --to-stdout mandos.8 \
274
348
                > $(MANDIR)/man8/mandos.8.gz
 
349
        gzip --best --to-stdout mandos-monitor.8 \
 
350
                > $(MANDIR)/man8/mandos-monitor.8.gz
 
351
        gzip --best --to-stdout mandos-ctl.8 \
 
352
                > $(MANDIR)/man8/mandos-ctl.8.gz
275
353
        gzip --best --to-stdout mandos.conf.5 \
276
354
                > $(MANDIR)/man5/mandos.conf.5.gz
277
355
        gzip --best --to-stdout mandos-clients.conf.5 \
278
356
                > $(MANDIR)/man5/mandos-clients.conf.5.gz
 
357
        gzip --best --to-stdout intro.8mandos \
 
358
                > $(MANDIR)/man8/intro.8mandos.gz
279
359
 
280
360
install-client-nokey: all doc
281
 
        install --directory $(PREFIX)/lib/mandos $(CONFDIR)
 
361
        install --directory $(LIBDIR)/mandos $(CONFDIR)
282
362
        install --directory --mode=u=rwx $(KEYDIR) \
283
 
                $(PREFIX)/lib/mandos/plugins.d
284
 
        if [ "$(CONFDIR)" != "$(PREFIX)/lib/mandos" ]; then \
 
363
                $(LIBDIR)/mandos/plugins.d \
 
364
                $(LIBDIR)/mandos/plugin-helpers
 
365
        if [ "$(CONFDIR)" != "$(LIBDIR)/mandos" ]; then \
285
366
                install --mode=u=rwx \
286
367
                        --directory "$(CONFDIR)/plugins.d"; \
 
368
                install --directory "$(CONFDIR)/plugin-helpers"; \
287
369
        fi
 
370
        install --mode=u=rwx,go=rx --directory \
 
371
                "$(CONFDIR)/network-hooks.d"
288
372
        install --mode=u=rwx,go=rx \
289
 
                --target-directory=$(PREFIX)/lib/mandos plugin-runner
 
373
                --target-directory=$(LIBDIR)/mandos plugin-runner
290
374
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
291
375
                mandos-keygen
292
376
        install --mode=u=rwx,go=rx \
293
 
                --target-directory=$(PREFIX)/lib/mandos/plugins.d \
 
377
                --target-directory=$(LIBDIR)/mandos/plugins.d \
294
378
                plugins.d/password-prompt
295
379
        install --mode=u=rwxs,go=rx \
296
 
                --target-directory=$(PREFIX)/lib/mandos/plugins.d \
 
380
                --target-directory=$(LIBDIR)/mandos/plugins.d \
297
381
                plugins.d/mandos-client
298
382
        install --mode=u=rwxs,go=rx \
299
 
                --target-directory=$(PREFIX)/lib/mandos/plugins.d \
 
383
                --target-directory=$(LIBDIR)/mandos/plugins.d \
300
384
                plugins.d/usplash
301
385
        install --mode=u=rwxs,go=rx \
302
 
                --target-directory=$(PREFIX)/lib/mandos/plugins.d \
 
386
                --target-directory=$(LIBDIR)/mandos/plugins.d \
303
387
                plugins.d/splashy
304
388
        install --mode=u=rwxs,go=rx \
305
 
                --target-directory=$(PREFIX)/lib/mandos/plugins.d \
 
389
                --target-directory=$(LIBDIR)/mandos/plugins.d \
306
390
                plugins.d/askpass-fifo
 
391
        install --mode=u=rwxs,go=rx \
 
392
                --target-directory=$(LIBDIR)/mandos/plugins.d \
 
393
                plugins.d/plymouth
 
394
        install --mode=u=rwxs,go=rx \
 
395
                --target-directory=$(LIBDIR)/mandos/plugin-helpers \
 
396
                plugin-helpers/mandos-client-iprouteadddel
307
397
        install initramfs-tools-hook \
308
398
                $(INITRAMFSTOOLS)/hooks/mandos
309
399
        install --mode=u=rw,go=r initramfs-tools-hook-conf \
315
405
                > $(MANDIR)/man8/mandos-keygen.8.gz
316
406
        gzip --best --to-stdout plugin-runner.8mandos \
317
407
                > $(MANDIR)/man8/plugin-runner.8mandos.gz
 
408
        gzip --best --to-stdout plugins.d/mandos-client.8mandos \
 
409
                > $(MANDIR)/man8/mandos-client.8mandos.gz
318
410
        gzip --best --to-stdout plugins.d/password-prompt.8mandos \
319
411
                > $(MANDIR)/man8/password-prompt.8mandos.gz
320
 
        gzip --best --to-stdout plugins.d/mandos-client.8mandos \
321
 
                > $(MANDIR)/man8/mandos-client.8mandos.gz
322
412
        gzip --best --to-stdout plugins.d/usplash.8mandos \
323
413
                > $(MANDIR)/man8/usplash.8mandos.gz
324
414
        gzip --best --to-stdout plugins.d/splashy.8mandos \
325
415
                > $(MANDIR)/man8/splashy.8mandos.gz
326
416
        gzip --best --to-stdout plugins.d/askpass-fifo.8mandos \
327
417
                > $(MANDIR)/man8/askpass-fifo.8mandos.gz
 
418
        gzip --best --to-stdout plugins.d/plymouth.8mandos \
 
419
                > $(MANDIR)/man8/plymouth.8mandos.gz
328
420
 
329
421
install-client: install-client-nokey
330
422
# Post-installation stuff
336
428
 
337
429
uninstall-server:
338
430
        -rm --force $(PREFIX)/sbin/mandos \
 
431
                $(PREFIX)/sbin/mandos-ctl \
 
432
                $(PREFIX)/sbin/mandos-monitor \
339
433
                $(MANDIR)/man8/mandos.8.gz \
 
434
                $(MANDIR)/man8/mandos-monitor.8.gz \
 
435
                $(MANDIR)/man8/mandos-ctl.8.gz \
340
436
                $(MANDIR)/man5/mandos.conf.5.gz \
341
437
                $(MANDIR)/man5/mandos-clients.conf.5.gz
342
438
        update-rc.d -f mandos remove
348
444
        ! grep --regexp='^ *[^ #].*keyscript=[^,=]*/mandos/' \
349
445
                $(DESTDIR)/etc/crypttab
350
446
        -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 \
 
447
                $(LIBDIR)/mandos/plugin-runner \
 
448
                $(LIBDIR)/mandos/plugins.d/password-prompt \
 
449
                $(LIBDIR)/mandos/plugins.d/mandos-client \
 
450
                $(LIBDIR)/mandos/plugins.d/usplash \
 
451
                $(LIBDIR)/mandos/plugins.d/splashy \
 
452
                $(LIBDIR)/mandos/plugins.d/askpass-fifo \
 
453
                $(LIBDIR)/mandos/plugins.d/plymouth \
357
454
                $(INITRAMFSTOOLS)/hooks/mandos \
358
455
                $(INITRAMFSTOOLS)/conf-hooks.d/mandos \
359
456
                $(INITRAMFSTOOLS)/scripts/init-premount/mandos \
 
457
                $(MANDIR)/man8/mandos-keygen.8.gz \
360
458
                $(MANDIR)/man8/plugin-runner.8mandos.gz \
361
 
                $(MANDIR)/man8/mandos-keygen.8.gz \
 
459
                $(MANDIR)/man8/mandos-client.8mandos.gz
362
460
                $(MANDIR)/man8/password-prompt.8mandos.gz \
363
461
                $(MANDIR)/man8/usplash.8mandos.gz \
364
462
                $(MANDIR)/man8/splashy.8mandos.gz \
365
463
                $(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)
 
464
                $(MANDIR)/man8/plymouth.8mandos.gz \
 
465
        -rmdir $(LIBDIR)/mandos/plugins.d $(CONFDIR)/plugins.d \
 
466
                 $(LIBDIR)/mandos $(CONFDIR) $(KEYDIR)
369
467
        update-initramfs -k all -u
370
468
 
371
469
purge: purge-server purge-client
372
470
 
373
471
purge-server: uninstall-server
374
472
        -rm --force $(CONFDIR)/mandos.conf $(CONFDIR)/clients.conf \
 
473
                $(DESTDIR)/etc/dbus-1/system.d/mandos.conf
375
474
                $(DESTDIR)/etc/default/mandos \
376
475
                $(DESTDIR)/etc/init.d/mandos \
 
476
                $(SYSTEMD)/mandos.service \
 
477
                $(DESTDIR)/run/mandos.pid \
377
478
                $(DESTDIR)/var/run/mandos.pid
378
479
        -rmdir $(CONFDIR)
379
480