/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: 2019-07-14 22:39:15 UTC
  • Revision ID: teddy@recompile.se-20190714223915-aqjkms3t3taa6tye
Only use sanitizing options when debugging

The C compiler's sanitizing options introduce code in the output
binary which is fragile and not very security conscious.  It has
become clear that sanitizing is only really meant for use while
debugging.

As a side effect, this makes compilation faster, as the Makefile, for
production builds, no longer runs the compiler repeatedly to find all
its currently supported sanitizing options.

* Makefile (DEBUG): Add "$(SANITIZE)".
  (SANITIZE): Comment out.
  (CFLAGS): Remove "$(SANITIZE)".
  (plugins.d/mandos-client): Revert back to use plain $(LINK.c), since
                             we no longer need to remove the leak
                             sanitizer by overriding CFLAGS.

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
        -fsanitize=object-size -fsanitize=float-divide-by-zero \
26
26
        -fsanitize=float-cast-overflow -fsanitize=nonnull-attribute \
27
27
        -fsanitize=returns-nonnull-attribute -fsanitize=bool \
28
 
        -fsanitize=enum -fsanitize-address-use-after-scope
 
28
        -fsanitize=enum
29
29
 
30
30
# For info about _FORTIFY_SOURCE, see feature_test_macros(7)
31
31
# and <https://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html>.
32
 
FORTIFY:=-fstack-protector-all -fPIC
33
 
CPPFLAGS+=-D_FORTIFY_SOURCE=3
 
32
FORTIFY:=-D_FORTIFY_SOURCE=2 -fstack-protector-all -fPIC
34
33
LINK_FORTIFY_LD:=-z relro -z now
35
34
LINK_FORTIFY:=
36
35
 
42
41
#COVERAGE=--coverage
43
42
OPTIMIZE:=-Os -fno-strict-aliasing
44
43
LANGUAGE:=-std=gnu11
45
 
CPPFLAGS+=-D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64
46
44
htmldir:=man
47
 
version:=1.8.16
 
45
version:=1.8.4
48
46
SED:=sed
49
 
PKG_CONFIG?=pkg-config
50
 
 
51
 
USER:=$(firstword $(subst :, ,$(shell getent passwd _mandos \
52
 
        || getent passwd nobody || echo 65534)))
53
 
GROUP:=$(firstword $(subst :, ,$(shell getent group _mandos \
54
 
        || getent group nogroup || echo 65534)))
55
 
 
56
 
LINUXVERSION:=$(shell uname --kernel-release)
 
47
 
 
48
USER:=$(firstword $(subst :, ,$(shell getent passwd _mandos || getent passwd nobody || echo 65534)))
 
49
GROUP:=$(firstword $(subst :, ,$(shell getent group _mandos || getent group nogroup || echo 65534)))
57
50
 
58
51
## Use these settings for a traditional /usr/local install
59
52
# PREFIX:=$(DESTDIR)/usr/local
61
54
# KEYDIR:=$(DESTDIR)/etc/mandos/keys
62
55
# MANDIR:=$(PREFIX)/man
63
56
# INITRAMFSTOOLS:=$(DESTDIR)/etc/initramfs-tools
64
 
# DRACUTMODULE:=$(DESTDIR)/usr/lib/dracut/modules.d/90mandos
65
57
# STATEDIR:=$(DESTDIR)/var/lib/mandos
66
58
# LIBDIR:=$(PREFIX)/lib
67
 
# DBUSPOLICYDIR:=$(DESTDIR)/etc/dbus-1/system.d
68
59
##
69
60
 
70
61
## These settings are for a package-type install
73
64
KEYDIR:=$(DESTDIR)/etc/keys/mandos
74
65
MANDIR:=$(PREFIX)/share/man
75
66
INITRAMFSTOOLS:=$(DESTDIR)/usr/share/initramfs-tools
76
 
DRACUTMODULE:=$(DESTDIR)/usr/lib/dracut/modules.d/90mandos
77
67
STATEDIR:=$(DESTDIR)/var/lib/mandos
78
68
LIBDIR:=$(shell \
79
69
        for d in \
80
 
        "/usr/lib/`dpkg-architecture \
81
 
                        -qDEB_HOST_MULTIARCH 2>/dev/null`" \
 
70
        "/usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH 2>/dev/null`" \
82
71
        "`rpm --eval='%{_libdir}' 2>/dev/null`" /usr/lib; do \
83
72
                if [ -d "$$d" -a "$$d" = "$${d%/}" ]; then \
84
73
                        echo "$(DESTDIR)$$d"; \
85
74
                        break; \
86
75
                fi; \
87
76
        done)
88
 
DBUSPOLICYDIR:=$(DESTDIR)/usr/share/dbus-1/system.d
89
77
##
90
78
 
91
 
SYSTEMD:=$(DESTDIR)$(shell $(PKG_CONFIG) systemd \
92
 
                        --variable=systemdsystemunitdir)
93
 
TMPFILES:=$(DESTDIR)$(shell $(PKG_CONFIG) systemd \
94
 
                        --variable=tmpfilesdir)
95
 
SYSUSERS:=$(DESTDIR)$(shell $(PKG_CONFIG) systemd \
96
 
                        --variable=sysusersdir)
 
79
SYSTEMD:=$(DESTDIR)$(shell pkg-config systemd --variable=systemdsystemunitdir)
 
80
TMPFILES:=$(DESTDIR)$(shell pkg-config systemd --variable=tmpfilesdir)
97
81
 
98
 
GNUTLS_CFLAGS:=$(shell $(PKG_CONFIG) --cflags-only-I gnutls)
99
 
GNUTLS_LIBS:=$(shell $(PKG_CONFIG) --libs gnutls)
100
 
AVAHI_CFLAGS:=$(shell $(PKG_CONFIG) --cflags-only-I avahi-core)
101
 
AVAHI_LIBS:=$(shell $(PKG_CONFIG) --libs avahi-core)
102
 
GPGME_CFLAGS:=$(shell $(PKG_CONFIG) --cflags-only-I gpgme 2>/dev/null \
103
 
        || gpgme-config --cflags; getconf LFS_CFLAGS)
104
 
GPGME_LIBS:=$(shell $(PKG_CONFIG) --libs gpgme 2>/dev/null \
105
 
        || gpgme-config --libs; getconf LFS_LIBS; \
 
82
GNUTLS_CFLAGS:=$(shell pkg-config --cflags-only-I gnutls)
 
83
GNUTLS_LIBS:=$(shell pkg-config --libs gnutls)
 
84
AVAHI_CFLAGS:=$(shell pkg-config --cflags-only-I avahi-core)
 
85
AVAHI_LIBS:=$(shell pkg-config --libs avahi-core)
 
86
GPGME_CFLAGS:=$(shell gpgme-config --cflags; getconf LFS_CFLAGS)
 
87
GPGME_LIBS:=$(shell gpgme-config --libs; getconf LFS_LIBS; \
106
88
        getconf LFS_LDFLAGS)
107
 
LIBNL3_CFLAGS:=$(shell $(PKG_CONFIG) --cflags-only-I libnl-route-3.0)
108
 
LIBNL3_LIBS:=$(shell $(PKG_CONFIG) --libs libnl-route-3.0)
109
 
GLIB_CFLAGS:=$(shell $(PKG_CONFIG) --cflags glib-2.0)
110
 
GLIB_LIBS:=$(shell $(PKG_CONFIG) --libs glib-2.0)
 
89
LIBNL3_CFLAGS:=$(shell pkg-config --cflags-only-I libnl-route-3.0)
 
90
LIBNL3_LIBS:=$(shell pkg-config --libs libnl-route-3.0)
111
91
 
112
92
# Do not change these two
113
 
CFLAGS+=$(WARN) $(DEBUG) $(FORTIFY) $(COVERAGE) $(OPTIMIZE) \
114
 
        $(LANGUAGE) -DVERSION='"$(version)"'
115
 
LDFLAGS+=-Xlinker --as-needed $(COVERAGE) $(LINK_FORTIFY) $(strip \
116
 
        ) $(foreach flag,$(LINK_FORTIFY_LD),-Xlinker $(flag))
 
93
CFLAGS+=$(WARN) $(DEBUG) $(FORTIFY) $(COVERAGE) \
 
94
        $(OPTIMIZE) $(LANGUAGE) -DVERSION='"$(version)"'
 
95
LDFLAGS+=-Xlinker --as-needed $(COVERAGE) $(LINK_FORTIFY) $(foreach flag,$(LINK_FORTIFY_LD),-Xlinker $(flag))
117
96
 
118
97
# Commands to format a DocBook <refentry> document into a manual page
119
98
DOCBOOKTOMAN=$(strip cd $(dir $<); xsltproc --nonet --xinclude \
125
104
        /usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl \
126
105
        $(notdir $<); \
127
106
        if locale --all 2>/dev/null | grep --regexp='^en_US\.utf8$$' \
128
 
        && command -v man >/dev/null; then LANG=en_US.UTF-8 \
129
 
        MANWIDTH=80 man --warnings --encoding=UTF-8 --local-file \
130
 
        $(notdir $@); fi >/dev/null)
 
107
        && type man 2>/dev/null; then LANG=en_US.UTF-8 MANWIDTH=80 \
 
108
        man --warnings --encoding=UTF-8 --local-file $(notdir $@); \
 
109
        fi >/dev/null)
131
110
 
132
111
DOCBOOKTOHTML=$(strip xsltproc --nonet --xinclude \
133
112
        --param make.year.ranges                1 \
146
125
        plugins.d/usplash plugins.d/splashy plugins.d/askpass-fifo \
147
126
        plugins.d/plymouth
148
127
PLUGIN_HELPERS:=plugin-helpers/mandos-client-iprouteadddel
149
 
CPROGS:=plugin-runner dracut-module/password-agent $(PLUGINS) \
150
 
        $(PLUGIN_HELPERS)
 
128
CPROGS:=plugin-runner $(PLUGINS) $(PLUGIN_HELPERS)
151
129
PROGS:=mandos mandos-keygen mandos-ctl mandos-monitor $(CPROGS)
152
130
DOCS:=mandos.8 mandos-keygen.8 mandos-monitor.8 mandos-ctl.8 \
153
131
        mandos.conf.5 mandos-clients.conf.5 plugin-runner.8mandos \
154
 
        dracut-module/password-agent.8mandos \
155
132
        plugins.d/mandos-client.8mandos \
156
133
        plugins.d/password-prompt.8mandos plugins.d/usplash.8mandos \
157
134
        plugins.d/splashy.8mandos plugins.d/askpass-fifo.8mandos \
161
138
 
162
139
objects:=$(addsuffix .o,$(CPROGS))
163
140
 
164
 
.PHONY: all
165
141
all: $(PROGS) mandos.lsm
166
142
 
167
 
.PHONY: doc
168
143
doc: $(DOCS)
169
144
 
170
 
.PHONY: html
171
145
html: $(htmldocs)
172
146
 
173
147
%.5: %.xml common.ent legalnotice.xml
232
206
                overview.xml legalnotice.xml
233
207
        $(DOCBOOKTOHTML)
234
208
 
235
 
dracut-module/password-agent.8mandos: \
236
 
                dracut-module/password-agent.xml common.ent \
237
 
                overview.xml legalnotice.xml
238
 
        $(DOCBOOKTOMAN)
239
 
dracut-module/password-agent.8mandos.xhtml: \
240
 
                dracut-module/password-agent.xml common.ent \
241
 
                overview.xml legalnotice.xml
242
 
        $(DOCBOOKTOHTML)
243
 
 
244
209
plugins.d/mandos-client.8mandos: plugins.d/mandos-client.xml \
245
210
                                        common.ent \
246
211
                                        mandos-options.xml \
290
255
                $@)
291
256
 
292
257
# Need to add the GnuTLS, Avahi and GPGME libraries
293
 
plugins.d/mandos-client: CFLAGS += $(GNUTLS_CFLAGS) $(strip \
294
 
        ) $(AVAHI_CFLAGS) $(GPGME_CFLAGS)
295
 
plugins.d/mandos-client: LDLIBS += $(GNUTLS_LIBS) $(strip \
296
 
        ) $(AVAHI_LIBS) $(GPGME_LIBS)
297
 
 
298
 
# Need to add the libnl-route library
299
 
plugin-helpers/mandos-client-iprouteadddel: CFLAGS += $(LIBNL3_CFLAGS)
300
 
plugin-helpers/mandos-client-iprouteadddel: LDLIBS += $(LIBNL3_LIBS)
301
 
 
302
 
# Need to add the GLib and pthread libraries
303
 
dracut-module/password-agent: CFLAGS += $(GLIB_CFLAGS)
304
 
# Note: -lpthread is unnecessary with the GNU C library 2.34 or later
305
 
dracut-module/password-agent: LDLIBS += $(GLIB_LIBS) -lpthread
306
 
 
307
 
.PHONY: clean
 
258
plugins.d/mandos-client: plugins.d/mandos-client.c
 
259
        $(LINK.c) $^ $(GNUTLS_CFLAGS) $(AVAHI_CFLAGS) $(strip\
 
260
                ) $(GPGME_CFLAGS) -lrt $(GNUTLS_LIBS) $(strip\
 
261
                ) $(AVAHI_LIBS) $(GPGME_LIBS) $(LOADLIBES) $(strip\
 
262
                ) $(LDLIBS) -o $@
 
263
 
 
264
plugin-helpers/mandos-client-iprouteadddel: plugin-helpers/mandos-client-iprouteadddel.c
 
265
        $(LINK.c) $(LIBNL3_CFLAGS) $^ $(LIBNL3_LIBS) $(strip\
 
266
                ) $(LOADLIBES) $(LDLIBS) -o $@
 
267
 
 
268
.PHONY : all doc html clean distclean mostlyclean maintainer-clean \
 
269
        check run-client run-server install install-html \
 
270
        install-server install-client-nokey install-client uninstall \
 
271
        uninstall-server uninstall-client purge purge-server \
 
272
        purge-client
 
273
 
308
274
clean:
309
275
        -rm --force $(CPROGS) $(objects) $(htmldocs) $(DOCS) core
310
276
 
311
 
.PHONY: distclean
312
277
distclean: clean
313
 
.PHONY: mostlyclean
314
278
mostlyclean: clean
315
 
.PHONY: maintainer-clean
316
279
maintainer-clean: clean
317
280
        -rm --force --recursive keydir confdir statedir
318
281
 
319
 
.PHONY: check
320
 
check: all
 
282
check:  all
321
283
        ./mandos --check
322
284
        ./mandos-ctl --check
323
 
        ./mandos-keygen --version
324
 
        ./plugin-runner --version
325
 
        ./plugin-helpers/mandos-client-iprouteadddel --version
326
 
        ./dracut-module/password-agent --test
327
285
 
328
286
# Run the client with a local config and key
329
 
.PHONY: run-client
330
 
run-client: all keydir/seckey.txt keydir/pubkey.txt \
331
 
                        keydir/tls-privkey.pem keydir/tls-pubkey.pem
332
 
        @echo '######################################################'
333
 
        @echo '# The following error messages are harmless and can  #'
334
 
        @echo '#  be safely ignored:                                #'
335
 
        @echo '## From plugin-runner:                               #'
336
 
        @echo '# setgid: Operation not permitted                    #'
337
 
        @echo '# setuid: Operation not permitted                    #'
338
 
        @echo '## From askpass-fifo:                                #'
339
 
        @echo '# mkfifo: Permission denied                          #'
340
 
        @echo '## From mandos-client:                               #'
341
 
        @echo '# Failed to raise privileges: Operation not permi... #'
342
 
        @echo '# Warning: network hook "*" exited with status *     #'
343
 
        @echo '# ioctl SIOCSIFFLAGS +IFF_UP: Operation not permi... #'
344
 
        @echo '# Failed to bring up interface "*": Operation not... #'
345
 
        @echo '#                                                    #'
346
 
        @echo '# (The messages are caused by not running as root,   #'
347
 
        @echo '# but you should NOT run "make run-client" as root   #'
348
 
        @echo '# unless you also unpacked and compiled Mandos as    #'
349
 
        @echo '# root, which is also NOT recommended.)              #'
350
 
        @echo '######################################################'
 
287
run-client: all keydir/seckey.txt keydir/pubkey.txt keydir/tls-privkey.pem keydir/tls-pubkey.pem
 
288
        @echo "###################################################################"
 
289
        @echo "# The following error messages are harmless and can be safely     #"
 
290
        @echo "# ignored:                                                        #"
 
291
        @echo "# From plugin-runner: setgid: Operation not permitted             #"
 
292
        @echo "#                     setuid: Operation not permitted             #"
 
293
        @echo "# From askpass-fifo:  mkfifo: Permission denied                   #"
 
294
        @echo "# From mandos-client:                                             #"
 
295
        @echo "#             Failed to raise privileges: Operation not permitted #"
 
296
        @echo "#             Warning: network hook \"*\" exited with status *      #"
 
297
        @echo "#                                                                 #"
 
298
        @echo "# (The messages are caused by not running as root, but you should #"
 
299
        @echo "# NOT run \"make run-client\" as root unless you also unpacked and  #"
 
300
        @echo "# compiled Mandos as root, which is also NOT recommended.)        #"
 
301
        @echo "###################################################################"
351
302
# We set GNOME_KEYRING_CONTROL to block pam_gnome_keyring
352
303
        ./plugin-runner --plugin-dir=plugins.d \
353
304
                --plugin-helper-dir=plugin-helpers \
360
311
keydir/seckey.txt keydir/pubkey.txt keydir/tls-privkey.pem keydir/tls-pubkey.pem: mandos-keygen
361
312
        install --directory keydir
362
313
        ./mandos-keygen --dir keydir --force
363
 
        if ! [ -e keydir/tls-privkey.pem ]; then \
364
 
                install --mode=u=rw /dev/null keydir/tls-privkey.pem; \
365
 
        fi
366
 
        if ! [ -e keydir/tls-pubkey.pem ]; then \
367
 
                install --mode=u=rw /dev/null keydir/tls-pubkey.pem; \
368
 
        fi
369
314
 
370
315
# Run the server with a local config
371
 
.PHONY: run-server
372
316
run-server: confdir/mandos.conf confdir/clients.conf statedir
373
317
        ./mandos --debug --no-dbus --configdir=confdir \
374
318
                --statedir=statedir $(SERVERARGS)
385
329
statedir:
386
330
        install --directory statedir
387
331
 
388
 
.PHONY: install
389
332
install: install-server install-client-nokey
390
333
 
391
 
.PHONY: install-html
392
334
install-html: html
393
335
        install --directory $(htmldir)
394
336
        install --mode=u=rw,go=r --target-directory=$(htmldir) \
395
337
                $(htmldocs)
396
338
 
397
 
.PHONY: install-server
398
339
install-server: doc
399
340
        install --directory $(CONFDIR)
400
341
        if install --directory --mode=u=rwx --owner=$(USER) \
403
344
        elif install --directory --mode=u=rwx $(STATEDIR); then \
404
345
                chown -- $(USER):$(GROUP) $(STATEDIR) || :; \
405
346
        fi
406
 
        if [ "$(TMPFILES)" != "$(DESTDIR)" \
407
 
                        -a -d "$(TMPFILES)" ]; then \
 
347
        if [ "$(TMPFILES)" != "$(DESTDIR)" -a -d "$(TMPFILES)" ]; then \
408
348
                install --mode=u=rw,go=r tmpfiles.d-mandos.conf \
409
349
                        $(TMPFILES)/mandos.conf; \
410
350
        fi
411
 
        if [ "$(SYSUSERS)" != "$(DESTDIR)" \
412
 
                        -a -d "$(SYSUSERS)" ]; then \
413
 
                install --mode=u=rw,go=r sysusers.d-mandos.conf \
414
 
                        $(SYSUSERS)/mandos.conf; \
415
 
        fi
416
351
        install --mode=u=rwx,go=rx mandos $(PREFIX)/sbin/mandos
417
352
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
418
353
                mandos-ctl
423
358
        install --mode=u=rw --target-directory=$(CONFDIR) \
424
359
                clients.conf
425
360
        install --mode=u=rw,go=r dbus-mandos.conf \
426
 
                $(DBUSPOLICYDIR)/mandos.conf
 
361
                $(DESTDIR)/etc/dbus-1/system.d/mandos.conf
427
362
        install --mode=u=rwx,go=rx init.d-mandos \
428
363
                $(DESTDIR)/etc/init.d/mandos
429
364
        if [ "$(SYSTEMD)" != "$(DESTDIR)" -a -d "$(SYSTEMD)" ]; then \
447
382
        gzip --best --to-stdout intro.8mandos \
448
383
                > $(MANDIR)/man8/intro.8mandos.gz
449
384
 
450
 
.PHONY: install-client-nokey
451
385
install-client-nokey: all doc
452
386
        install --directory $(LIBDIR)/mandos $(CONFDIR)
453
387
        install --directory --mode=u=rwx $(KEYDIR) \
454
388
                $(LIBDIR)/mandos/plugins.d \
455
389
                $(LIBDIR)/mandos/plugin-helpers
456
 
        if [ "$(SYSUSERS)" != "$(DESTDIR)" \
457
 
                        -a -d "$(SYSUSERS)" ]; then \
458
 
                install --mode=u=rw,go=r sysusers.d-mandos.conf \
459
 
                        $(SYSUSERS)/mandos-client.conf; \
460
 
        fi
461
390
        if [ "$(CONFDIR)" != "$(LIBDIR)/mandos" ]; then \
462
391
                install --mode=u=rwx \
463
392
                        --directory "$(CONFDIR)/plugins.d" \
468
397
        install --mode=u=rwx,go=rx \
469
398
                --target-directory=$(LIBDIR)/mandos plugin-runner
470
399
        install --mode=u=rwx,go=rx \
471
 
                --target-directory=$(LIBDIR)/mandos \
472
 
                mandos-to-cryptroot-unlock
 
400
                --target-directory=$(LIBDIR)/mandos mandos-to-cryptroot-unlock
473
401
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
474
402
                mandos-keygen
475
403
        install --mode=u=rwx,go=rx \
503
431
                $(INITRAMFSTOOLS)/scripts/init-premount/mandos
504
432
        install initramfs-tools-script-stop \
505
433
                $(INITRAMFSTOOLS)/scripts/local-premount/mandos
506
 
        install --directory $(DRACUTMODULE)
507
 
        install --mode=u=rw,go=r --target-directory=$(DRACUTMODULE) \
508
 
                dracut-module/ask-password-mandos.path \
509
 
                dracut-module/ask-password-mandos.service
510
 
        install --mode=u=rwxs,go=rx \
511
 
                --target-directory=$(DRACUTMODULE) \
512
 
                dracut-module/module-setup.sh \
513
 
                dracut-module/cmdline-mandos.sh \
514
 
                dracut-module/password-agent
515
434
        install --mode=u=rw,go=r plugin-runner.conf $(CONFDIR)
516
435
        gzip --best --to-stdout mandos-keygen.8 \
517
436
                > $(MANDIR)/man8/mandos-keygen.8.gz
529
448
                > $(MANDIR)/man8/askpass-fifo.8mandos.gz
530
449
        gzip --best --to-stdout plugins.d/plymouth.8mandos \
531
450
                > $(MANDIR)/man8/plymouth.8mandos.gz
532
 
        gzip --best --to-stdout dracut-module/password-agent.8mandos \
533
 
                > $(MANDIR)/man8/password-agent.8mandos.gz
534
451
 
535
 
.PHONY: install-client
536
452
install-client: install-client-nokey
537
453
# Post-installation stuff
538
454
        -$(PREFIX)/sbin/mandos-keygen --dir "$(KEYDIR)"
539
 
        if command -v update-initramfs >/dev/null; then \
540
 
            update-initramfs -k all -u; \
541
 
        elif command -v dracut >/dev/null; then \
542
 
            for initrd in $(DESTDIR)/boot/initr*-$(LINUXVERSION); do \
543
 
                if [ -w "$$initrd" ]; then \
544
 
                    chmod go-r "$$initrd"; \
545
 
                    dracut --force "$$initrd"; \
546
 
                fi; \
547
 
            done; \
548
 
        fi
 
455
        update-initramfs -k all -u
549
456
        echo "Now run mandos-keygen --password --dir $(KEYDIR)"
550
457
 
551
 
.PHONY: uninstall
552
458
uninstall: uninstall-server uninstall-client
553
459
 
554
 
.PHONY: uninstall-server
555
460
uninstall-server:
556
461
        -rm --force $(PREFIX)/sbin/mandos \
557
462
                $(PREFIX)/sbin/mandos-ctl \
564
469
        update-rc.d -f mandos remove
565
470
        -rmdir $(CONFDIR)
566
471
 
567
 
.PHONY: uninstall-client
568
472
uninstall-client:
569
473
# Refuse to uninstall client if /etc/crypttab is explicitly configured
570
474
# to use it.
581
485
                $(INITRAMFSTOOLS)/hooks/mandos \
582
486
                $(INITRAMFSTOOLS)/conf-hooks.d/mandos \
583
487
                $(INITRAMFSTOOLS)/scripts/init-premount/mandos \
584
 
                $(INITRAMFSTOOLS)/scripts/local-premount/mandos \
585
 
                $(DRACUTMODULE)/ask-password-mandos.path \
586
 
                $(DRACUTMODULE)/ask-password-mandos.service \
587
 
                $(DRACUTMODULE)/module-setup.sh \
588
 
                $(DRACUTMODULE)/cmdline-mandos.sh \
589
 
                $(DRACUTMODULE)/password-agent \
590
488
                $(MANDIR)/man8/mandos-keygen.8.gz \
591
489
                $(MANDIR)/man8/plugin-runner.8mandos.gz \
592
490
                $(MANDIR)/man8/mandos-client.8mandos.gz
595
493
                $(MANDIR)/man8/splashy.8mandos.gz \
596
494
                $(MANDIR)/man8/askpass-fifo.8mandos.gz \
597
495
                $(MANDIR)/man8/plymouth.8mandos.gz \
598
 
                $(MANDIR)/man8/password-agent.8mandos.gz \
599
496
        -rmdir $(LIBDIR)/mandos/plugins.d $(CONFDIR)/plugins.d \
600
 
                 $(LIBDIR)/mandos $(CONFDIR) $(KEYDIR) $(DRACUTMODULE)
601
 
        if command -v update-initramfs >/dev/null; then \
602
 
            update-initramfs -k all -u; \
603
 
        elif command -v dracut >/dev/null; then \
604
 
            for initrd in $(DESTDIR)/boot/initr*-$(LINUXVERSION); do \
605
 
                test -w "$$initrd" && dracut --force "$$initrd"; \
606
 
            done; \
607
 
        fi
 
497
                 $(LIBDIR)/mandos $(CONFDIR) $(KEYDIR)
 
498
        update-initramfs -k all -u
608
499
 
609
 
.PHONY: purge
610
500
purge: purge-server purge-client
611
501
 
612
 
.PHONY: purge-server
613
502
purge-server: uninstall-server
614
503
        -rm --force $(CONFDIR)/mandos.conf $(CONFDIR)/clients.conf \
615
504
                $(DESTDIR)/etc/dbus-1/system.d/mandos.conf
620
509
                $(DESTDIR)/var/run/mandos.pid
621
510
        -rmdir $(CONFDIR)
622
511
 
623
 
.PHONY: purge-client
624
512
purge-client: uninstall-client
625
513
        -shred --remove $(KEYDIR)/seckey.txt $(KEYDIR)/tls-privkey.pem
626
514
        -rm --force $(CONFDIR)/plugin-runner.conf \