/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-29 16:35:53 UTC
  • Revision ID: teddy@recompile.se-20190729163553-1i442i2cbx64c537
Make tests and man page examples match

Make the tests test_manual_page_example[1-5] match exactly what is
written in the manual page, and add comments to manual page as
reminders to keep tests and manual page examples in sync.

* mandos-ctl (Test_commands_from_options.test_manual_page_example_1):
  Remove "--verbose" option, since the manual does not have it as the
  first example, and change assertion to match.
* mandos-ctl.xml (EXAMPLE): Add comments to all examples documenting
  which test function they correspond to.  Also remove unnecessary
  quotes from option arguments in fourth example, and clarify language
  slightly in fifth example.

Show diffs side-by-side

added added

removed removed

Lines of Context:
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
47
 
51
48
USER:=$(firstword $(subst :, ,$(shell getent passwd _mandos \
52
49
        || getent passwd nobody || echo 65534)))
53
50
GROUP:=$(firstword $(subst :, ,$(shell getent group _mandos \
54
51
        || getent group nogroup || echo 65534)))
55
52
 
56
 
LINUXVERSION:=$(shell uname --kernel-release)
57
 
 
58
53
## Use these settings for a traditional /usr/local install
59
54
# PREFIX:=$(DESTDIR)/usr/local
60
55
# CONFDIR:=$(DESTDIR)/etc/mandos
64
59
# DRACUTMODULE:=$(DESTDIR)/usr/lib/dracut/modules.d/90mandos
65
60
# STATEDIR:=$(DESTDIR)/var/lib/mandos
66
61
# LIBDIR:=$(PREFIX)/lib
67
 
# DBUSPOLICYDIR:=$(DESTDIR)/etc/dbus-1/system.d
68
62
##
69
63
 
70
64
## These settings are for a package-type install
77
71
STATEDIR:=$(DESTDIR)/var/lib/mandos
78
72
LIBDIR:=$(shell \
79
73
        for d in \
80
 
        "/usr/lib/`dpkg-architecture \
81
 
                        -qDEB_HOST_MULTIARCH 2>/dev/null`" \
 
74
        "/usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH 2>/dev/null`" \
82
75
        "`rpm --eval='%{_libdir}' 2>/dev/null`" /usr/lib; do \
83
76
                if [ -d "$$d" -a "$$d" = "$${d%/}" ]; then \
84
77
                        echo "$(DESTDIR)$$d"; \
85
78
                        break; \
86
79
                fi; \
87
80
        done)
88
 
DBUSPOLICYDIR:=$(DESTDIR)/usr/share/dbus-1/system.d
89
81
##
90
82
 
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)
 
83
SYSTEMD:=$(DESTDIR)$(shell pkg-config systemd --variable=systemdsystemunitdir)
 
84
TMPFILES:=$(DESTDIR)$(shell pkg-config systemd --variable=tmpfilesdir)
97
85
 
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; \
 
86
GNUTLS_CFLAGS:=$(shell pkg-config --cflags-only-I gnutls)
 
87
GNUTLS_LIBS:=$(shell pkg-config --libs gnutls)
 
88
AVAHI_CFLAGS:=$(shell pkg-config --cflags-only-I avahi-core)
 
89
AVAHI_LIBS:=$(shell pkg-config --libs avahi-core)
 
90
GPGME_CFLAGS:=$(shell gpgme-config --cflags; getconf LFS_CFLAGS)
 
91
GPGME_LIBS:=$(shell gpgme-config --libs; getconf LFS_LIBS; \
106
92
        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)
 
93
LIBNL3_CFLAGS:=$(shell pkg-config --cflags-only-I libnl-route-3.0)
 
94
LIBNL3_LIBS:=$(shell pkg-config --libs libnl-route-3.0)
 
95
GLIB_CFLAGS:=$(shell pkg-config --cflags glib-2.0)
 
96
GLIB_LIBS:=$(shell pkg-config --libs glib-2.0)
111
97
 
112
98
# Do not change these two
113
 
CFLAGS+=$(WARN) $(DEBUG) $(FORTIFY) $(COVERAGE) $(OPTIMIZE) \
114
 
        $(LANGUAGE) -DVERSION='"$(version)"'
 
99
CFLAGS+=$(WARN) $(DEBUG) $(FORTIFY) $(COVERAGE) \
 
100
        $(OPTIMIZE) $(LANGUAGE) -DVERSION='"$(version)"'
115
101
LDFLAGS+=-Xlinker --as-needed $(COVERAGE) $(LINK_FORTIFY) $(strip \
116
102
        ) $(foreach flag,$(LINK_FORTIFY_LD),-Xlinker $(flag))
117
103
 
161
147
 
162
148
objects:=$(addsuffix .o,$(CPROGS))
163
149
 
164
 
.PHONY: all
165
150
all: $(PROGS) mandos.lsm
166
151
 
167
 
.PHONY: doc
168
152
doc: $(DOCS)
169
153
 
170
 
.PHONY: html
171
154
html: $(htmldocs)
172
155
 
173
156
%.5: %.xml common.ent legalnotice.xml
289
272
                --expression='s/\(mandos_\)[0-9.]\+\(\.orig\.tar\.gz\)/\1$(version)\2/' \
290
273
                $@)
291
274
 
292
 
# Uses nested functions
293
 
plugin-runner: LDFLAGS += -Xlinker --no-warn-execstack
294
 
dracut-module/password-agent: LDFLAGS += -Xlinker --no-warn-execstack
295
 
plugins.d/password-prompt: LDFLAGS += -Xlinker --no-warn-execstack
296
 
plugins.d/mandos-client: LDFLAGS += -Xlinker --no-warn-execstack
297
 
plugins.d/plymouth: LDFLAGS += -Xlinker --no-warn-execstack
298
 
 
299
275
# Need to add the GnuTLS, Avahi and GPGME libraries
300
 
plugins.d/mandos-client: CFLAGS += $(GNUTLS_CFLAGS) $(strip \
301
 
        ) $(AVAHI_CFLAGS) $(GPGME_CFLAGS)
302
 
plugins.d/mandos-client: LDLIBS += $(GNUTLS_LIBS) $(strip \
303
 
        ) $(AVAHI_LIBS) $(GPGME_LIBS)
 
276
plugins.d/mandos-client: plugins.d/mandos-client.c
 
277
        $(LINK.c) $^ $(GNUTLS_CFLAGS) $(AVAHI_CFLAGS) $(strip\
 
278
                ) $(GPGME_CFLAGS) $(GNUTLS_LIBS) $(strip\
 
279
                ) $(AVAHI_LIBS) $(GPGME_LIBS) $(LOADLIBES) $(strip\
 
280
                ) $(LDLIBS) -o $@
304
281
 
305
282
# Need to add the libnl-route library
306
 
plugin-helpers/mandos-client-iprouteadddel: CFLAGS += $(LIBNL3_CFLAGS)
307
 
plugin-helpers/mandos-client-iprouteadddel: LDLIBS += $(LIBNL3_LIBS)
 
283
plugin-helpers/mandos-client-iprouteadddel: plugin-helpers/mandos-client-iprouteadddel.c
 
284
        $(LINK.c) $(LIBNL3_CFLAGS) $^ $(LIBNL3_LIBS) $(strip\
 
285
                ) $(LOADLIBES) $(LDLIBS) -o $@
308
286
 
309
287
# Need to add the GLib and pthread libraries
310
 
dracut-module/password-agent: CFLAGS += $(GLIB_CFLAGS)
311
 
# Note: -lpthread is unnecessary with the GNU C library 2.34 or later
312
 
dracut-module/password-agent: LDLIBS += $(GLIB_LIBS) -lpthread
313
 
 
314
 
.PHONY: clean
 
288
dracut-module/password-agent: dracut-module/password-agent.c
 
289
        $(LINK.c) $(GLIB_CFLAGS) $^ $(GLIB_LIBS) -lpthread $(strip\
 
290
                ) $(LOADLIBES) $(LDLIBS) -o $@
 
291
 
 
292
.PHONY : all doc html clean distclean mostlyclean maintainer-clean \
 
293
        check run-client run-server install install-html \
 
294
        install-server install-client-nokey install-client uninstall \
 
295
        uninstall-server uninstall-client purge purge-server \
 
296
        purge-client
 
297
 
315
298
clean:
316
299
        -rm --force $(CPROGS) $(objects) $(htmldocs) $(DOCS) core
317
300
 
318
 
.PHONY: distclean
319
301
distclean: clean
320
 
.PHONY: mostlyclean
321
302
mostlyclean: clean
322
 
.PHONY: maintainer-clean
323
303
maintainer-clean: clean
324
304
        -rm --force --recursive keydir confdir statedir
325
305
 
326
 
.PHONY: check
327
306
check: all
328
307
        ./mandos --check
329
308
        ./mandos-ctl --check
333
312
        ./dracut-module/password-agent --test
334
313
 
335
314
# Run the client with a local config and key
336
 
.PHONY: run-client
337
 
run-client: all keydir/seckey.txt keydir/pubkey.txt \
338
 
                        keydir/tls-privkey.pem keydir/tls-pubkey.pem
339
 
        @echo '######################################################'
340
 
        @echo '# The following error messages are harmless and can  #'
341
 
        @echo '#  be safely ignored:                                #'
342
 
        @echo '## From plugin-runner:                               #'
343
 
        @echo '# setgid: Operation not permitted                    #'
344
 
        @echo '# setuid: Operation not permitted                    #'
345
 
        @echo '## From askpass-fifo:                                #'
346
 
        @echo '# mkfifo: Permission denied                          #'
347
 
        @echo '## From mandos-client:                               #'
348
 
        @echo '# Failed to raise privileges: Operation not permi... #'
349
 
        @echo '# Warning: network hook "*" exited with status *     #'
350
 
        @echo '# ioctl SIOCSIFFLAGS +IFF_UP: Operation not permi... #'
351
 
        @echo '# Failed to bring up interface "*": Operation not... #'
352
 
        @echo '#                                                    #'
353
 
        @echo '# (The messages are caused by not running as root,   #'
354
 
        @echo '# but you should NOT run "make run-client" as root   #'
355
 
        @echo '# unless you also unpacked and compiled Mandos as    #'
356
 
        @echo '# root, which is also NOT recommended.)              #'
357
 
        @echo '######################################################'
 
315
run-client: all keydir/seckey.txt keydir/pubkey.txt keydir/tls-privkey.pem keydir/tls-pubkey.pem
 
316
        @echo "###################################################################"
 
317
        @echo "# The following error messages are harmless and can be safely     #"
 
318
        @echo "# ignored:                                                        #"
 
319
        @echo "# From plugin-runner: setgid: Operation not permitted             #"
 
320
        @echo "#                     setuid: Operation not permitted             #"
 
321
        @echo "# From askpass-fifo:  mkfifo: Permission denied                   #"
 
322
        @echo "# From mandos-client:                                             #"
 
323
        @echo "#             Failed to raise privileges: Operation not permitted #"
 
324
        @echo "#             Warning: network hook \"*\" exited with status *      #"
 
325
        @echo "#                                                                 #"
 
326
        @echo "# (The messages are caused by not running as root, but you should #"
 
327
        @echo "# NOT run \"make run-client\" as root unless you also unpacked and  #"
 
328
        @echo "# compiled Mandos as root, which is also NOT recommended.)        #"
 
329
        @echo "###################################################################"
358
330
# We set GNOME_KEYRING_CONTROL to block pam_gnome_keyring
359
331
        ./plugin-runner --plugin-dir=plugins.d \
360
332
                --plugin-helper-dir=plugin-helpers \
367
339
keydir/seckey.txt keydir/pubkey.txt keydir/tls-privkey.pem keydir/tls-pubkey.pem: mandos-keygen
368
340
        install --directory keydir
369
341
        ./mandos-keygen --dir keydir --force
370
 
        if ! [ -e keydir/tls-privkey.pem ]; then \
371
 
                install --mode=u=rw /dev/null keydir/tls-privkey.pem; \
372
 
        fi
373
 
        if ! [ -e keydir/tls-pubkey.pem ]; then \
374
 
                install --mode=u=rw /dev/null keydir/tls-pubkey.pem; \
375
 
        fi
376
342
 
377
343
# Run the server with a local config
378
 
.PHONY: run-server
379
344
run-server: confdir/mandos.conf confdir/clients.conf statedir
380
345
        ./mandos --debug --no-dbus --configdir=confdir \
381
346
                --statedir=statedir $(SERVERARGS)
382
347
 
383
348
# Used by run-server
384
349
confdir/mandos.conf: mandos.conf
385
 
        install -D --mode=u=rw,go=r $^ $@
 
350
        install --directory confdir
 
351
        install --mode=u=rw,go=r $^ $@
386
352
confdir/clients.conf: clients.conf keydir/seckey.txt keydir/tls-pubkey.pem
387
 
        install -D --mode=u=rw $< $@
 
353
        install --directory confdir
 
354
        install --mode=u=rw $< $@
388
355
# Add a client password
389
356
        ./mandos-keygen --dir keydir --password --no-ssh >> $@
390
357
statedir:
391
358
        install --directory statedir
392
359
 
393
 
.PHONY: install
394
360
install: install-server install-client-nokey
395
361
 
396
 
.PHONY: install-html
397
362
install-html: html
398
 
        install -D --mode=u=rw,go=r --target-directory=$(htmldir) \
 
363
        install --directory $(htmldir)
 
364
        install --mode=u=rw,go=r --target-directory=$(htmldir) \
399
365
                $(htmldocs)
400
366
 
401
 
.PHONY: install-server
402
367
install-server: doc
 
368
        install --directory $(CONFDIR)
403
369
        if install --directory --mode=u=rwx --owner=$(USER) \
404
370
                --group=$(GROUP) $(STATEDIR); then \
405
371
                :; \
406
372
        elif install --directory --mode=u=rwx $(STATEDIR); then \
407
373
                chown -- $(USER):$(GROUP) $(STATEDIR) || :; \
408
374
        fi
409
 
        if [ "$(TMPFILES)" != "$(DESTDIR)" ]; then \
410
 
                install -D --mode=u=rw,go=r tmpfiles.d-mandos.conf \
 
375
        if [ "$(TMPFILES)" != "$(DESTDIR)" -a -d "$(TMPFILES)" ]; then \
 
376
                install --mode=u=rw,go=r tmpfiles.d-mandos.conf \
411
377
                        $(TMPFILES)/mandos.conf; \
412
378
        fi
413
 
        if [ "$(SYSUSERS)" != "$(DESTDIR)" ]; then \
414
 
                install -D --mode=u=rw,go=r sysusers.d-mandos.conf \
415
 
                        $(SYSUSERS)/mandos.conf; \
416
 
        fi
417
 
        install --directory $(PREFIX)/sbin
418
 
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
419
 
                mandos
 
379
        install --mode=u=rwx,go=rx mandos $(PREFIX)/sbin/mandos
420
380
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
421
381
                mandos-ctl
422
382
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
423
383
                mandos-monitor
424
 
        install --directory $(CONFDIR)
425
384
        install --mode=u=rw,go=r --target-directory=$(CONFDIR) \
426
385
                mandos.conf
427
386
        install --mode=u=rw --target-directory=$(CONFDIR) \
428
387
                clients.conf
429
 
        install -D --mode=u=rw,go=r dbus-mandos.conf \
430
 
                $(DBUSPOLICYDIR)/mandos.conf
431
 
        install -D --mode=u=rwx,go=rx init.d-mandos \
 
388
        install --mode=u=rw,go=r dbus-mandos.conf \
 
389
                $(DESTDIR)/etc/dbus-1/system.d/mandos.conf
 
390
        install --mode=u=rwx,go=rx init.d-mandos \
432
391
                $(DESTDIR)/etc/init.d/mandos
433
 
        if [ "$(SYSTEMD)" != "$(DESTDIR)" ]; then \
434
 
                install -D --mode=u=rw,go=r mandos.service \
435
 
                        $(SYSTEMD); \
 
392
        if [ "$(SYSTEMD)" != "$(DESTDIR)" -a -d "$(SYSTEMD)" ]; then \
 
393
                install --mode=u=rw,go=r mandos.service $(SYSTEMD); \
436
394
        fi
437
 
        install -D --mode=u=rw,go=r default-mandos \
 
395
        install --mode=u=rw,go=r default-mandos \
438
396
                $(DESTDIR)/etc/default/mandos
439
397
        if [ -z $(DESTDIR) ]; then \
440
398
                update-rc.d mandos defaults 25 15;\
441
399
        fi
442
 
        install --directory $(MANDIR)/man8 $(MANDIR)/man5
443
400
        gzip --best --to-stdout mandos.8 \
444
401
                > $(MANDIR)/man8/mandos.8.gz
445
402
        gzip --best --to-stdout mandos-monitor.8 \
453
410
        gzip --best --to-stdout intro.8mandos \
454
411
                > $(MANDIR)/man8/intro.8mandos.gz
455
412
 
456
 
.PHONY: install-client-nokey
457
413
install-client-nokey: all doc
 
414
        install --directory $(LIBDIR)/mandos $(CONFDIR)
458
415
        install --directory --mode=u=rwx $(KEYDIR) \
459
416
                $(LIBDIR)/mandos/plugins.d \
460
417
                $(LIBDIR)/mandos/plugin-helpers
461
 
        if [ "$(SYSUSERS)" != "$(DESTDIR)" ]; then \
462
 
                install -D --mode=u=rw,go=r sysusers.d-mandos.conf \
463
 
                        $(SYSUSERS)/mandos-client.conf; \
464
 
        fi
465
418
        if [ "$(CONFDIR)" != "$(LIBDIR)/mandos" ]; then \
466
 
                install --directory \
467
 
                        --mode=u=rwx "$(CONFDIR)/plugins.d" \
 
419
                install --mode=u=rwx \
 
420
                        --directory "$(CONFDIR)/plugins.d" \
468
421
                        "$(CONFDIR)/plugin-helpers"; \
469
422
        fi
470
 
        install --directory --mode=u=rwx,go=rx \
 
423
        install --mode=u=rwx,go=rx --directory \
471
424
                "$(CONFDIR)/network-hooks.d"
472
425
        install --mode=u=rwx,go=rx \
473
426
                --target-directory=$(LIBDIR)/mandos plugin-runner
474
427
        install --mode=u=rwx,go=rx \
475
 
                --target-directory=$(LIBDIR)/mandos \
476
 
                mandos-to-cryptroot-unlock
477
 
        install --directory $(PREFIX)/sbin
 
428
                --target-directory=$(LIBDIR)/mandos mandos-to-cryptroot-unlock
478
429
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
479
430
                mandos-keygen
480
431
        install --mode=u=rwx,go=rx \
498
449
        install --mode=u=rwx,go=rx \
499
450
                --target-directory=$(LIBDIR)/mandos/plugin-helpers \
500
451
                plugin-helpers/mandos-client-iprouteadddel
501
 
        install -D initramfs-tools-hook \
 
452
        install initramfs-tools-hook \
502
453
                $(INITRAMFSTOOLS)/hooks/mandos
503
 
        install -D --mode=u=rw,go=r initramfs-tools-conf \
 
454
        install --mode=u=rw,go=r initramfs-tools-conf \
504
455
                $(INITRAMFSTOOLS)/conf.d/mandos-conf
505
 
        install -D --mode=u=rw,go=r initramfs-tools-conf-hook \
 
456
        install --mode=u=rw,go=r initramfs-tools-conf-hook \
506
457
                $(INITRAMFSTOOLS)/conf-hooks.d/zz-mandos
507
 
        install -D initramfs-tools-script \
 
458
        install initramfs-tools-script \
508
459
                $(INITRAMFSTOOLS)/scripts/init-premount/mandos
509
 
        install -D initramfs-tools-script-stop \
 
460
        install initramfs-tools-script-stop \
510
461
                $(INITRAMFSTOOLS)/scripts/local-premount/mandos
511
 
        install -D --mode=u=rw,go=r \
512
 
                --target-directory=$(DRACUTMODULE) \
 
462
        install --directory $(DRACUTMODULE)
 
463
        install --mode=u=rw,go=r --target-directory=$(DRACUTMODULE) \
513
464
                dracut-module/ask-password-mandos.path \
514
465
                dracut-module/ask-password-mandos.service
515
466
        install --mode=u=rwxs,go=rx \
518
469
                dracut-module/cmdline-mandos.sh \
519
470
                dracut-module/password-agent
520
471
        install --mode=u=rw,go=r plugin-runner.conf $(CONFDIR)
521
 
        install --directory $(MANDIR)/man8
522
472
        gzip --best --to-stdout mandos-keygen.8 \
523
473
                > $(MANDIR)/man8/mandos-keygen.8.gz
524
474
        gzip --best --to-stdout plugin-runner.8mandos \
538
488
        gzip --best --to-stdout dracut-module/password-agent.8mandos \
539
489
                > $(MANDIR)/man8/password-agent.8mandos.gz
540
490
 
541
 
.PHONY: install-client
542
491
install-client: install-client-nokey
543
492
# Post-installation stuff
544
493
        -$(PREFIX)/sbin/mandos-keygen --dir "$(KEYDIR)"
545
494
        if command -v update-initramfs >/dev/null; then \
546
495
            update-initramfs -k all -u; \
547
496
        elif command -v dracut >/dev/null; then \
548
 
            for initrd in $(DESTDIR)/boot/initr*-$(LINUXVERSION); do \
 
497
            for initrd in $(DESTDIR)/boot/initr*-$(shell uname --kernel-release); do \
549
498
                if [ -w "$$initrd" ]; then \
550
499
                    chmod go-r "$$initrd"; \
551
500
                    dracut --force "$$initrd"; \
554
503
        fi
555
504
        echo "Now run mandos-keygen --password --dir $(KEYDIR)"
556
505
 
557
 
.PHONY: uninstall
558
506
uninstall: uninstall-server uninstall-client
559
507
 
560
 
.PHONY: uninstall-server
561
508
uninstall-server:
562
509
        -rm --force $(PREFIX)/sbin/mandos \
563
510
                $(PREFIX)/sbin/mandos-ctl \
570
517
        update-rc.d -f mandos remove
571
518
        -rmdir $(CONFDIR)
572
519
 
573
 
.PHONY: uninstall-client
574
520
uninstall-client:
575
521
# Refuse to uninstall client if /etc/crypttab is explicitly configured
576
522
# to use it.
607
553
        if command -v update-initramfs >/dev/null; then \
608
554
            update-initramfs -k all -u; \
609
555
        elif command -v dracut >/dev/null; then \
610
 
            for initrd in $(DESTDIR)/boot/initr*-$(LINUXVERSION); do \
 
556
            for initrd in $(DESTDIR)/boot/initr*-$(shell uname --kernel-release); do \
611
557
                test -w "$$initrd" && dracut --force "$$initrd"; \
612
558
            done; \
613
559
        fi
614
560
 
615
 
.PHONY: purge
616
561
purge: purge-server purge-client
617
562
 
618
 
.PHONY: purge-server
619
563
purge-server: uninstall-server
620
564
        -rm --force $(CONFDIR)/mandos.conf $(CONFDIR)/clients.conf \
621
565
                $(DESTDIR)/etc/dbus-1/system.d/mandos.conf
622
566
                $(DESTDIR)/etc/default/mandos \
623
567
                $(DESTDIR)/etc/init.d/mandos \
 
568
                $(SYSTEMD)/mandos.service \
624
569
                $(DESTDIR)/run/mandos.pid \
625
570
                $(DESTDIR)/var/run/mandos.pid
626
 
        if [ "$(SYSTEMD)" != "$(DESTDIR)" -a -d "$(SYSTEMD)" ]; then \
627
 
                -rm --force -- $(SYSTEMD)/mandos.service; \
628
 
        fi
629
571
        -rmdir $(CONFDIR)
630
572
 
631
 
.PHONY: purge-client
632
573
purge-client: uninstall-client
633
574
        -shred --remove $(KEYDIR)/seckey.txt $(KEYDIR)/tls-privkey.pem
634
575
        -rm --force $(CONFDIR)/plugin-runner.conf \