/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
 
# Does the linker support the --no-warn-execstack option?
293
 
ifeq ($(shell echo 'int main(){}'|$(CC) --language=c /dev/stdin -o /dev/null -Xlinker --no-warn-execstack && echo yes),yes)
294
 
# These programs use nested functions, which uses an executable stack
295
 
plugin-runner: LDFLAGS += -Xlinker --no-warn-execstack
296
 
dracut-module/password-agent: LDFLAGS += -Xlinker --no-warn-execstack
297
 
plugins.d/password-prompt: LDFLAGS += -Xlinker --no-warn-execstack
298
 
plugins.d/mandos-client: LDFLAGS += -Xlinker --no-warn-execstack
299
 
plugins.d/plymouth: LDFLAGS += -Xlinker --no-warn-execstack
300
 
endif
301
 
 
302
275
# Need to add the GnuTLS, Avahi and GPGME libraries
303
 
plugins.d/mandos-client: CFLAGS += $(GNUTLS_CFLAGS) $(strip \
304
 
        ) $(AVAHI_CFLAGS) $(GPGME_CFLAGS)
305
 
plugins.d/mandos-client: LDLIBS += $(GNUTLS_LIBS) $(strip \
306
 
        ) $(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 $@
307
281
 
308
282
# Need to add the libnl-route library
309
 
plugin-helpers/mandos-client-iprouteadddel: CFLAGS += $(LIBNL3_CFLAGS)
310
 
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 $@
311
286
 
312
287
# Need to add the GLib and pthread libraries
313
 
dracut-module/password-agent: CFLAGS += $(GLIB_CFLAGS)
314
 
# Note: -lpthread is unnecessary with the GNU C library 2.34 or later
315
 
dracut-module/password-agent: LDLIBS += $(GLIB_LIBS) -lpthread
316
 
 
317
 
.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
 
318
298
clean:
319
299
        -rm --force $(CPROGS) $(objects) $(htmldocs) $(DOCS) core
320
300
 
321
 
.PHONY: distclean
322
301
distclean: clean
323
 
.PHONY: mostlyclean
324
302
mostlyclean: clean
325
 
.PHONY: maintainer-clean
326
303
maintainer-clean: clean
327
304
        -rm --force --recursive keydir confdir statedir
328
305
 
329
 
.PHONY: check
330
306
check: all
331
307
        ./mandos --check
332
308
        ./mandos-ctl --check
336
312
        ./dracut-module/password-agent --test
337
313
 
338
314
# Run the client with a local config and key
339
 
.PHONY: run-client
340
 
run-client: all keydir/seckey.txt keydir/pubkey.txt \
341
 
                        keydir/tls-privkey.pem keydir/tls-pubkey.pem
342
 
        @echo '######################################################'
343
 
        @echo '# The following error messages are harmless and can  #'
344
 
        @echo '#  be safely ignored:                                #'
345
 
        @echo '## From plugin-runner:                               #'
346
 
        @echo '# setgid: Operation not permitted                    #'
347
 
        @echo '# setuid: Operation not permitted                    #'
348
 
        @echo '## From askpass-fifo:                                #'
349
 
        @echo '# mkfifo: Permission denied                          #'
350
 
        @echo '## From mandos-client:                               #'
351
 
        @echo '# Failed to raise privileges: Operation not permi... #'
352
 
        @echo '# Warning: network hook "*" exited with status *     #'
353
 
        @echo '# ioctl SIOCSIFFLAGS +IFF_UP: Operation not permi... #'
354
 
        @echo '# Failed to bring up interface "*": Operation not... #'
355
 
        @echo '#                                                    #'
356
 
        @echo '# (The messages are caused by not running as root,   #'
357
 
        @echo '# but you should NOT run "make run-client" as root   #'
358
 
        @echo '# unless you also unpacked and compiled Mandos as    #'
359
 
        @echo '# root, which is also NOT recommended.)              #'
360
 
        @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 "###################################################################"
361
330
# We set GNOME_KEYRING_CONTROL to block pam_gnome_keyring
362
331
        ./plugin-runner --plugin-dir=plugins.d \
363
332
                --plugin-helper-dir=plugin-helpers \
370
339
keydir/seckey.txt keydir/pubkey.txt keydir/tls-privkey.pem keydir/tls-pubkey.pem: mandos-keygen
371
340
        install --directory keydir
372
341
        ./mandos-keygen --dir keydir --force
373
 
        if ! [ -e keydir/tls-privkey.pem ]; then \
374
 
                install --mode=u=rw /dev/null keydir/tls-privkey.pem; \
375
 
        fi
376
 
        if ! [ -e keydir/tls-pubkey.pem ]; then \
377
 
                install --mode=u=rw /dev/null keydir/tls-pubkey.pem; \
378
 
        fi
379
342
 
380
343
# Run the server with a local config
381
 
.PHONY: run-server
382
344
run-server: confdir/mandos.conf confdir/clients.conf statedir
383
345
        ./mandos --debug --no-dbus --configdir=confdir \
384
346
                --statedir=statedir $(SERVERARGS)
385
347
 
386
348
# Used by run-server
387
349
confdir/mandos.conf: mandos.conf
388
 
        install -D --mode=u=rw,go=r $^ $@
 
350
        install --directory confdir
 
351
        install --mode=u=rw,go=r $^ $@
389
352
confdir/clients.conf: clients.conf keydir/seckey.txt keydir/tls-pubkey.pem
390
 
        install -D --mode=u=rw $< $@
 
353
        install --directory confdir
 
354
        install --mode=u=rw $< $@
391
355
# Add a client password
392
356
        ./mandos-keygen --dir keydir --password --no-ssh >> $@
393
357
statedir:
394
358
        install --directory statedir
395
359
 
396
 
.PHONY: install
397
360
install: install-server install-client-nokey
398
361
 
399
 
.PHONY: install-html
400
362
install-html: html
401
 
        install -D --mode=u=rw,go=r --target-directory=$(htmldir) \
 
363
        install --directory $(htmldir)
 
364
        install --mode=u=rw,go=r --target-directory=$(htmldir) \
402
365
                $(htmldocs)
403
366
 
404
 
.PHONY: install-server
405
367
install-server: doc
 
368
        install --directory $(CONFDIR)
406
369
        if install --directory --mode=u=rwx --owner=$(USER) \
407
370
                --group=$(GROUP) $(STATEDIR); then \
408
371
                :; \
409
372
        elif install --directory --mode=u=rwx $(STATEDIR); then \
410
373
                chown -- $(USER):$(GROUP) $(STATEDIR) || :; \
411
374
        fi
412
 
        if [ "$(TMPFILES)" != "$(DESTDIR)" ]; then \
413
 
                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 \
414
377
                        $(TMPFILES)/mandos.conf; \
415
378
        fi
416
 
        if [ "$(SYSUSERS)" != "$(DESTDIR)" ]; then \
417
 
                install -D --mode=u=rw,go=r sysusers.d-mandos.conf \
418
 
                        $(SYSUSERS)/mandos.conf; \
419
 
        fi
420
 
        install --directory $(PREFIX)/sbin
421
 
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
422
 
                mandos
 
379
        install --mode=u=rwx,go=rx mandos $(PREFIX)/sbin/mandos
423
380
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
424
381
                mandos-ctl
425
382
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
426
383
                mandos-monitor
427
 
        install --directory $(CONFDIR)
428
384
        install --mode=u=rw,go=r --target-directory=$(CONFDIR) \
429
385
                mandos.conf
430
386
        install --mode=u=rw --target-directory=$(CONFDIR) \
431
387
                clients.conf
432
 
        install -D --mode=u=rw,go=r dbus-mandos.conf \
433
 
                $(DBUSPOLICYDIR)/mandos.conf
434
 
        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 \
435
391
                $(DESTDIR)/etc/init.d/mandos
436
 
        if [ "$(SYSTEMD)" != "$(DESTDIR)" ]; then \
437
 
                install -D --mode=u=rw,go=r mandos.service \
438
 
                        $(SYSTEMD); \
 
392
        if [ "$(SYSTEMD)" != "$(DESTDIR)" -a -d "$(SYSTEMD)" ]; then \
 
393
                install --mode=u=rw,go=r mandos.service $(SYSTEMD); \
439
394
        fi
440
 
        install -D --mode=u=rw,go=r default-mandos \
 
395
        install --mode=u=rw,go=r default-mandos \
441
396
                $(DESTDIR)/etc/default/mandos
442
397
        if [ -z $(DESTDIR) ]; then \
443
398
                update-rc.d mandos defaults 25 15;\
444
399
        fi
445
 
        install --directory $(MANDIR)/man8 $(MANDIR)/man5
446
400
        gzip --best --to-stdout mandos.8 \
447
401
                > $(MANDIR)/man8/mandos.8.gz
448
402
        gzip --best --to-stdout mandos-monitor.8 \
456
410
        gzip --best --to-stdout intro.8mandos \
457
411
                > $(MANDIR)/man8/intro.8mandos.gz
458
412
 
459
 
.PHONY: install-client-nokey
460
413
install-client-nokey: all doc
 
414
        install --directory $(LIBDIR)/mandos $(CONFDIR)
461
415
        install --directory --mode=u=rwx $(KEYDIR) \
462
416
                $(LIBDIR)/mandos/plugins.d \
463
417
                $(LIBDIR)/mandos/plugin-helpers
464
 
        if [ "$(SYSUSERS)" != "$(DESTDIR)" ]; then \
465
 
                install -D --mode=u=rw,go=r sysusers.d-mandos.conf \
466
 
                        $(SYSUSERS)/mandos-client.conf; \
467
 
        fi
468
418
        if [ "$(CONFDIR)" != "$(LIBDIR)/mandos" ]; then \
469
 
                install --directory \
470
 
                        --mode=u=rwx "$(CONFDIR)/plugins.d" \
 
419
                install --mode=u=rwx \
 
420
                        --directory "$(CONFDIR)/plugins.d" \
471
421
                        "$(CONFDIR)/plugin-helpers"; \
472
422
        fi
473
 
        install --directory --mode=u=rwx,go=rx \
 
423
        install --mode=u=rwx,go=rx --directory \
474
424
                "$(CONFDIR)/network-hooks.d"
475
425
        install --mode=u=rwx,go=rx \
476
426
                --target-directory=$(LIBDIR)/mandos plugin-runner
477
427
        install --mode=u=rwx,go=rx \
478
 
                --target-directory=$(LIBDIR)/mandos \
479
 
                mandos-to-cryptroot-unlock
480
 
        install --directory $(PREFIX)/sbin
 
428
                --target-directory=$(LIBDIR)/mandos mandos-to-cryptroot-unlock
481
429
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
482
430
                mandos-keygen
483
431
        install --mode=u=rwx,go=rx \
501
449
        install --mode=u=rwx,go=rx \
502
450
                --target-directory=$(LIBDIR)/mandos/plugin-helpers \
503
451
                plugin-helpers/mandos-client-iprouteadddel
504
 
        install -D initramfs-tools-hook \
 
452
        install initramfs-tools-hook \
505
453
                $(INITRAMFSTOOLS)/hooks/mandos
506
 
        install -D --mode=u=rw,go=r initramfs-tools-conf \
 
454
        install --mode=u=rw,go=r initramfs-tools-conf \
507
455
                $(INITRAMFSTOOLS)/conf.d/mandos-conf
508
 
        install -D --mode=u=rw,go=r initramfs-tools-conf-hook \
 
456
        install --mode=u=rw,go=r initramfs-tools-conf-hook \
509
457
                $(INITRAMFSTOOLS)/conf-hooks.d/zz-mandos
510
 
        install -D initramfs-tools-script \
 
458
        install initramfs-tools-script \
511
459
                $(INITRAMFSTOOLS)/scripts/init-premount/mandos
512
 
        install -D initramfs-tools-script-stop \
 
460
        install initramfs-tools-script-stop \
513
461
                $(INITRAMFSTOOLS)/scripts/local-premount/mandos
514
 
        install -D --mode=u=rw,go=r \
515
 
                --target-directory=$(DRACUTMODULE) \
 
462
        install --directory $(DRACUTMODULE)
 
463
        install --mode=u=rw,go=r --target-directory=$(DRACUTMODULE) \
516
464
                dracut-module/ask-password-mandos.path \
517
465
                dracut-module/ask-password-mandos.service
518
466
        install --mode=u=rwxs,go=rx \
521
469
                dracut-module/cmdline-mandos.sh \
522
470
                dracut-module/password-agent
523
471
        install --mode=u=rw,go=r plugin-runner.conf $(CONFDIR)
524
 
        install --directory $(MANDIR)/man8
525
472
        gzip --best --to-stdout mandos-keygen.8 \
526
473
                > $(MANDIR)/man8/mandos-keygen.8.gz
527
474
        gzip --best --to-stdout plugin-runner.8mandos \
541
488
        gzip --best --to-stdout dracut-module/password-agent.8mandos \
542
489
                > $(MANDIR)/man8/password-agent.8mandos.gz
543
490
 
544
 
.PHONY: install-client
545
491
install-client: install-client-nokey
546
492
# Post-installation stuff
547
493
        -$(PREFIX)/sbin/mandos-keygen --dir "$(KEYDIR)"
548
494
        if command -v update-initramfs >/dev/null; then \
549
495
            update-initramfs -k all -u; \
550
496
        elif command -v dracut >/dev/null; then \
551
 
            for initrd in $(DESTDIR)/boot/initr*-$(LINUXVERSION); do \
 
497
            for initrd in $(DESTDIR)/boot/initr*-$(shell uname --kernel-release); do \
552
498
                if [ -w "$$initrd" ]; then \
553
499
                    chmod go-r "$$initrd"; \
554
500
                    dracut --force "$$initrd"; \
557
503
        fi
558
504
        echo "Now run mandos-keygen --password --dir $(KEYDIR)"
559
505
 
560
 
.PHONY: uninstall
561
506
uninstall: uninstall-server uninstall-client
562
507
 
563
 
.PHONY: uninstall-server
564
508
uninstall-server:
565
509
        -rm --force $(PREFIX)/sbin/mandos \
566
510
                $(PREFIX)/sbin/mandos-ctl \
573
517
        update-rc.d -f mandos remove
574
518
        -rmdir $(CONFDIR)
575
519
 
576
 
.PHONY: uninstall-client
577
520
uninstall-client:
578
521
# Refuse to uninstall client if /etc/crypttab is explicitly configured
579
522
# to use it.
610
553
        if command -v update-initramfs >/dev/null; then \
611
554
            update-initramfs -k all -u; \
612
555
        elif command -v dracut >/dev/null; then \
613
 
            for initrd in $(DESTDIR)/boot/initr*-$(LINUXVERSION); do \
 
556
            for initrd in $(DESTDIR)/boot/initr*-$(shell uname --kernel-release); do \
614
557
                test -w "$$initrd" && dracut --force "$$initrd"; \
615
558
            done; \
616
559
        fi
617
560
 
618
 
.PHONY: purge
619
561
purge: purge-server purge-client
620
562
 
621
 
.PHONY: purge-server
622
563
purge-server: uninstall-server
623
564
        -rm --force $(CONFDIR)/mandos.conf $(CONFDIR)/clients.conf \
624
565
                $(DESTDIR)/etc/dbus-1/system.d/mandos.conf
625
566
                $(DESTDIR)/etc/default/mandos \
626
567
                $(DESTDIR)/etc/init.d/mandos \
 
568
                $(SYSTEMD)/mandos.service \
627
569
                $(DESTDIR)/run/mandos.pid \
628
570
                $(DESTDIR)/var/run/mandos.pid
629
 
        if [ "$(SYSTEMD)" != "$(DESTDIR)" -a -d "$(SYSTEMD)" ]; then \
630
 
                -rm --force -- $(SYSTEMD)/mandos.service; \
631
 
        fi
632
571
        -rmdir $(CONFDIR)
633
572
 
634
 
.PHONY: purge-client
635
573
purge-client: uninstall-client
636
574
        -shred --remove $(KEYDIR)/seckey.txt $(KEYDIR)/tls-privkey.pem
637
575
        -rm --force $(CONFDIR)/plugin-runner.conf \