/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: 2014-07-25 22:44:20 UTC
  • mto: This revision was merged to the branch mainline in revision 724.
  • Revision ID: teddy@recompile.se-20140725224420-4a5ct2ptt0hsc92z
Require Python 2.7.

This is in preparation for the eventual move to Python 3, which will
happen as soon as all Python modules required by Mandos are available.
The mandos-ctl and mandos-monitor programs are already portable
between Python 2.6 and Python 3 without changes; this change will
bring the requirement up to Python 2.7.

* INSTALL (Prerequisites/Libraries/Mandos Server): Document
                                                   requirement of
                                                   Python 2.7; remove
                                                   Python-argparse
                                                   which is in the
                                                   Python 2.7 standard
                                                   library.
* debian/control (Source: mandos/Build-Depends-Indep): Depend on
                                                       exactly the
                                                       python2.7
                                                       package and all
                                                       the Python 2.7
                                                       versions of the
                                                       python modules.
  (Package: mandos/Depends): - '' - but still depend on python (<=2.7)
                            and the generic versions of the Python
                            modules; this is for mandos-ctl and
                            mandos-monitor, both of which are
                            compatible with Python 3, and use
                            #!/usr/bin/python.
* mandos: Use #!/usr/bin/python2.7 instead of #!/usr/bin/python.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
WARN:=-O -Wall -Wextra -Wdouble-promotion -Wformat=2 -Winit-self \
 
1
WARN=-O -Wall -Wextra -Wdouble-promotion -Wformat=2 -Winit-self \
2
2
        -Wmissing-include-dirs -Wswitch-default -Wswitch-enum \
3
3
        -Wunused -Wuninitialized -Wstrict-overflow=5 \
4
4
        -Wsuggest-attribute=pure -Wsuggest-attribute=const \
10
10
        -Wmissing-format-attribute -Wnormalized=nfc -Wpacked \
11
11
        -Wredundant-decls -Wnested-externs -Winline -Wvla \
12
12
        -Wvolatile-register-var -Woverlength-strings
13
 
 
14
 
#DEBUG:=-ggdb3 -fsanitize=address $(SANITIZE)
15
 
## Check which sanitizing options can be used
16
 
#SANITIZE:=$(foreach option,$(ALL_SANITIZE_OPTIONS),$(shell \
17
 
#       echo 'int main(){}' | $(CC) --language=c $(option) \
18
 
#       /dev/stdin -o /dev/null >/dev/null 2>&1 && echo $(option)))
19
 
# <https://developerblog.redhat.com/2014/10/16/gcc-undefined-behavior-sanitizer-ubsan/>
20
 
ALL_SANITIZE_OPTIONS:=-fsanitize=leak -fsanitize=undefined \
21
 
        -fsanitize=shift -fsanitize=integer-divide-by-zero \
22
 
        -fsanitize=unreachable -fsanitize=vla-bound -fsanitize=null \
23
 
        -fsanitize=return -fsanitize=signed-integer-overflow \
24
 
        -fsanitize=bounds -fsanitize=alignment \
25
 
        -fsanitize=object-size -fsanitize=float-divide-by-zero \
26
 
        -fsanitize=float-cast-overflow -fsanitize=nonnull-attribute \
27
 
        -fsanitize=returns-nonnull-attribute -fsanitize=bool \
28
 
        -fsanitize=enum -fsanitize-address-use-after-scope
29
 
 
 
13
#DEBUG=-ggdb3
30
14
# For info about _FORTIFY_SOURCE, see feature_test_macros(7)
31
 
# and <https://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html>.
32
 
FORTIFY:=-D_FORTIFY_SOURCE=2 -fstack-protector-all -fPIC
33
 
LINK_FORTIFY_LD:=-z relro -z now
34
 
LINK_FORTIFY:=
 
15
# and <http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html>.
 
16
FORTIFY=-D_FORTIFY_SOURCE=2 -fstack-protector-all -fPIC
 
17
LINK_FORTIFY_LD=-z relro -z now
 
18
LINK_FORTIFY=
35
19
 
36
20
# If BROKEN_PIE is set, do not build with -pie
37
21
ifndef BROKEN_PIE
39
23
LINK_FORTIFY += -pie
40
24
endif
41
25
#COVERAGE=--coverage
42
 
OPTIMIZE:=-Os -fno-strict-aliasing
43
 
LANGUAGE:=-std=gnu11
44
 
FEATURES:=-D_FILE_OFFSET_BITS=64
45
 
htmldir:=man
46
 
version:=1.8.9
47
 
SED:=sed
48
 
PKG_CONFIG?=pkg-config
49
 
 
50
 
USER:=$(firstword $(subst :, ,$(shell getent passwd _mandos \
51
 
        || getent passwd nobody || echo 65534)))
52
 
GROUP:=$(firstword $(subst :, ,$(shell getent group _mandos \
53
 
        || getent group nogroup || echo 65534)))
54
 
 
55
 
LINUXVERSION:=$(shell uname --kernel-release)
 
26
OPTIMIZE=-Os -fno-strict-aliasing
 
27
LANGUAGE=-std=gnu99
 
28
htmldir=man
 
29
version=1.6.7
 
30
SED=sed
 
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)))
56
34
 
57
35
## Use these settings for a traditional /usr/local install
58
 
# PREFIX:=$(DESTDIR)/usr/local
59
 
# CONFDIR:=$(DESTDIR)/etc/mandos
60
 
# KEYDIR:=$(DESTDIR)/etc/mandos/keys
61
 
# MANDIR:=$(PREFIX)/man
62
 
# INITRAMFSTOOLS:=$(DESTDIR)/etc/initramfs-tools
63
 
# DRACUTMODULE:=$(DESTDIR)/usr/lib/dracut/modules.d/90mandos
64
 
# STATEDIR:=$(DESTDIR)/var/lib/mandos
65
 
# LIBDIR:=$(PREFIX)/lib
 
36
# PREFIX=$(DESTDIR)/usr/local
 
37
# CONFDIR=$(DESTDIR)/etc/mandos
 
38
# KEYDIR=$(DESTDIR)/etc/mandos/keys
 
39
# MANDIR=$(PREFIX)/man
 
40
# INITRAMFSTOOLS=$(DESTDIR)/etc/initramfs-tools
 
41
# STATEDIR=$(DESTDIR)/var/lib/mandos
 
42
# LIBDIR=$(PREFIX)/lib
66
43
##
67
44
 
68
45
## These settings are for a package-type install
69
 
PREFIX:=$(DESTDIR)/usr
70
 
CONFDIR:=$(DESTDIR)/etc/mandos
71
 
KEYDIR:=$(DESTDIR)/etc/keys/mandos
72
 
MANDIR:=$(PREFIX)/share/man
73
 
INITRAMFSTOOLS:=$(DESTDIR)/usr/share/initramfs-tools
74
 
DRACUTMODULE:=$(DESTDIR)/usr/lib/dracut/modules.d/90mandos
75
 
STATEDIR:=$(DESTDIR)/var/lib/mandos
76
 
LIBDIR:=$(shell \
 
46
PREFIX=$(DESTDIR)/usr
 
47
CONFDIR=$(DESTDIR)/etc/mandos
 
48
KEYDIR=$(DESTDIR)/etc/keys/mandos
 
49
MANDIR=$(PREFIX)/share/man
 
50
INITRAMFSTOOLS=$(DESTDIR)/usr/share/initramfs-tools
 
51
STATEDIR=$(DESTDIR)/var/lib/mandos
 
52
LIBDIR=$(shell \
77
53
        for d in \
78
 
        "/usr/lib/`dpkg-architecture \
79
 
                        -qDEB_HOST_MULTIARCH 2>/dev/null`" \
 
54
        "/usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH 2>/dev/null`" \
80
55
        "`rpm --eval='%{_libdir}' 2>/dev/null`" /usr/lib; do \
81
56
                if [ -d "$$d" -a "$$d" = "$${d%/}" ]; then \
82
57
                        echo "$(DESTDIR)$$d"; \
85
60
        done)
86
61
##
87
62
 
88
 
SYSTEMD:=$(DESTDIR)$(shell $(PKG_CONFIG) systemd \
89
 
                        --variable=systemdsystemunitdir)
90
 
TMPFILES:=$(DESTDIR)$(shell $(PKG_CONFIG) systemd \
91
 
                        --variable=tmpfilesdir)
92
 
SYSUSERS:=$(DESTDIR)$(shell $(PKG_CONFIG) systemd \
93
 
                        --variable=sysusersdir)
 
63
SYSTEMD=$(DESTDIR)$(shell pkg-config systemd --variable=systemdsystemunitdir)
94
64
 
95
 
GNUTLS_CFLAGS:=$(shell $(PKG_CONFIG) --cflags-only-I gnutls)
96
 
GNUTLS_LIBS:=$(shell $(PKG_CONFIG) --libs gnutls)
97
 
AVAHI_CFLAGS:=$(shell $(PKG_CONFIG) --cflags-only-I avahi-core)
98
 
AVAHI_LIBS:=$(shell $(PKG_CONFIG) --libs avahi-core)
99
 
GPGME_CFLAGS:=$(shell gpgme-config --cflags; getconf LFS_CFLAGS)
100
 
GPGME_LIBS:=$(shell gpgme-config --libs; getconf LFS_LIBS; \
 
65
GNUTLS_CFLAGS=$(shell pkg-config --cflags-only-I gnutls)
 
66
GNUTLS_LIBS=$(shell pkg-config --libs gnutls)
 
67
AVAHI_CFLAGS=$(shell pkg-config --cflags-only-I avahi-core)
 
68
AVAHI_LIBS=$(shell pkg-config --libs avahi-core)
 
69
GPGME_CFLAGS=$(shell gpgme-config --cflags; getconf LFS_CFLAGS)
 
70
GPGME_LIBS=$(shell gpgme-config --libs; getconf LFS_LIBS; \
101
71
        getconf LFS_LDFLAGS)
102
 
LIBNL3_CFLAGS:=$(shell $(PKG_CONFIG) --cflags-only-I libnl-route-3.0)
103
 
LIBNL3_LIBS:=$(shell $(PKG_CONFIG) --libs libnl-route-3.0)
104
 
GLIB_CFLAGS:=$(shell $(PKG_CONFIG) --cflags glib-2.0)
105
 
GLIB_LIBS:=$(shell $(PKG_CONFIG) --libs glib-2.0)
106
72
 
107
73
# Do not change these two
108
74
CFLAGS+=$(WARN) $(DEBUG) $(FORTIFY) $(COVERAGE) $(OPTIMIZE) \
109
 
        $(LANGUAGE) $(FEATURES) -DVERSION='"$(version)"'
110
 
LDFLAGS+=-Xlinker --as-needed $(COVERAGE) $(LINK_FORTIFY) $(strip \
111
 
        ) $(foreach flag,$(LINK_FORTIFY_LD),-Xlinker $(flag))
 
75
        $(LANGUAGE) $(GNUTLS_CFLAGS) $(AVAHI_CFLAGS) $(GPGME_CFLAGS) \
 
76
        -DVERSION='"$(version)"'
 
77
LDFLAGS+=-Xlinker --as-needed $(COVERAGE) $(LINK_FORTIFY) $(foreach flag,$(LINK_FORTIFY_LD),-Xlinker $(flag))
112
78
 
113
79
# Commands to format a DocBook <refentry> document into a manual page
114
80
DOCBOOKTOMAN=$(strip cd $(dir $<); xsltproc --nonet --xinclude \
120
86
        /usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl \
121
87
        $(notdir $<); \
122
88
        if locale --all 2>/dev/null | grep --regexp='^en_US\.utf8$$' \
123
 
        && command -v man >/dev/null; then LANG=en_US.UTF-8 \
124
 
        MANWIDTH=80 man --warnings --encoding=UTF-8 --local-file \
125
 
        $(notdir $@); fi >/dev/null)
 
89
        && type man 2>/dev/null; then LANG=en_US.UTF-8 MANWIDTH=80 \
 
90
        man --warnings --encoding=UTF-8 --local-file $(notdir $@); \
 
91
        fi >/dev/null)
126
92
 
127
93
DOCBOOKTOHTML=$(strip xsltproc --nonet --xinclude \
128
94
        --param make.year.ranges                1 \
134
100
        /usr/share/xml/docbook/stylesheet/nwalsh/xhtml/docbook.xsl \
135
101
        $<; $(HTMLPOST) $@)
136
102
# Fix citerefentry links
137
 
HTMLPOST:=$(SED) --in-place \
 
103
HTMLPOST=$(SED) --in-place \
138
104
        --expression='s/\(<a class="citerefentry" href="\)\("><span class="citerefentry"><span class="refentrytitle">\)\([^<]*\)\(<\/span>(\)\([^)]*\)\()<\/span><\/a>\)/\1\3.\5\2\3\4\5\6/g'
139
105
 
140
 
PLUGINS:=plugins.d/password-prompt plugins.d/mandos-client \
 
106
PLUGINS=plugins.d/password-prompt plugins.d/mandos-client \
141
107
        plugins.d/usplash plugins.d/splashy plugins.d/askpass-fifo \
142
108
        plugins.d/plymouth
143
 
PLUGIN_HELPERS:=plugin-helpers/mandos-client-iprouteadddel
144
 
CPROGS:=plugin-runner dracut-module/password-agent $(PLUGINS) \
145
 
        $(PLUGIN_HELPERS)
146
 
PROGS:=mandos mandos-keygen mandos-ctl mandos-monitor $(CPROGS)
147
 
DOCS:=mandos.8 mandos-keygen.8 mandos-monitor.8 mandos-ctl.8 \
 
109
CPROGS=plugin-runner $(PLUGINS)
 
110
PROGS=mandos mandos-keygen mandos-ctl mandos-monitor $(CPROGS)
 
111
DOCS=mandos.8 mandos-keygen.8 mandos-monitor.8 mandos-ctl.8 \
148
112
        mandos.conf.5 mandos-clients.conf.5 plugin-runner.8mandos \
149
 
        dracut-module/password-agent.8mandos \
150
113
        plugins.d/mandos-client.8mandos \
151
114
        plugins.d/password-prompt.8mandos plugins.d/usplash.8mandos \
152
115
        plugins.d/splashy.8mandos plugins.d/askpass-fifo.8mandos \
153
116
        plugins.d/plymouth.8mandos intro.8mandos
154
117
 
155
 
htmldocs:=$(addsuffix .xhtml,$(DOCS))
 
118
htmldocs=$(addsuffix .xhtml,$(DOCS))
156
119
 
157
 
objects:=$(addsuffix .o,$(CPROGS))
 
120
objects=$(addsuffix .o,$(CPROGS))
158
121
 
159
122
all: $(PROGS) mandos.lsm
160
123
 
224
187
                overview.xml legalnotice.xml
225
188
        $(DOCBOOKTOHTML)
226
189
 
227
 
dracut-module/password-agent.8mandos: \
228
 
                dracut-module/password-agent.xml common.ent \
229
 
                overview.xml legalnotice.xml
230
 
        $(DOCBOOKTOMAN)
231
 
dracut-module/password-agent.8mandos.xhtml: \
232
 
                dracut-module/password-agent.xml common.ent \
233
 
                overview.xml legalnotice.xml
234
 
        $(DOCBOOKTOHTML)
235
 
 
236
190
plugins.d/mandos-client.8mandos: plugins.d/mandos-client.xml \
237
191
                                        common.ent \
238
192
                                        mandos-options.xml \
281
235
                --expression='s/\(mandos_\)[0-9.]\+\(\.orig\.tar\.gz\)/\1$(version)\2/' \
282
236
                $@)
283
237
 
284
 
# Need to add the GnuTLS, Avahi and GPGME libraries
285
 
plugins.d/mandos-client: CFLAGS += $(GNUTLS_CFLAGS) $(strip \
286
 
        ) $(AVAHI_CFLAGS) $(GPGME_CFLAGS)
287
 
plugins.d/mandos-client: LDLIBS += $(GNUTLS_LIBS) $(strip \
288
 
        ) $(AVAHI_LIBS) $(GPGME_LIBS)
289
 
 
290
 
# Need to add the libnl-route library
291
 
plugin-helpers/mandos-client-iprouteadddel: CFLAGS += $(LIBNL3_CFLAGS)
292
 
plugin-helpers/mandos-client-iprouteadddel: LDLIBS += $(LIBNL3_LIBS)
293
 
 
294
 
# Need to add the GLib and pthread libraries
295
 
dracut-module/password-agent: CFLAGS += $(GLIB_CFLAGS)
296
 
dracut-module/password-agent: LDLIBS += $(GLIB_LIBS) -lpthread
 
238
plugins.d/mandos-client: plugins.d/mandos-client.c
 
239
        $(LINK.c) $^ -lrt $(GNUTLS_LIBS) $(AVAHI_LIBS) $(strip\
 
240
                ) $(GPGME_LIBS) $(LOADLIBES) $(LDLIBS) -o $@
297
241
 
298
242
.PHONY : all doc html clean distclean mostlyclean maintainer-clean \
299
243
        check run-client run-server install install-html \
309
253
maintainer-clean: clean
310
254
        -rm --force --recursive keydir confdir statedir
311
255
 
312
 
check: all
 
256
check:  all
313
257
        ./mandos --check
314
258
        ./mandos-ctl --check
315
 
        ./mandos-keygen --version
316
 
        ./plugin-runner --version
317
 
        ./plugin-helpers/mandos-client-iprouteadddel --version
318
 
        ./dracut-module/password-agent --test
319
259
 
320
260
# Run the client with a local config and key
321
 
run-client: all keydir/seckey.txt keydir/pubkey.txt \
322
 
                        keydir/tls-privkey.pem keydir/tls-pubkey.pem
323
 
        @echo '######################################################'
324
 
        @echo '# The following error messages are harmless and can  #'
325
 
        @echo '#  be safely ignored:                                #'
326
 
        @echo '## From plugin-runner:                               #'
327
 
        @echo '# setgid: Operation not permitted                    #'
328
 
        @echo '# setuid: Operation not permitted                    #'
329
 
        @echo '## From askpass-fifo:                                #'
330
 
        @echo '# mkfifo: Permission denied                          #'
331
 
        @echo '## From mandos-client:                               #'
332
 
        @echo '# Failed to raise privileges: Operation not permi... #'
333
 
        @echo '# Warning: network hook "*" exited with status *     #'
334
 
        @echo '# ioctl SIOCSIFFLAGS +IFF_UP: Operation not permi... #'
335
 
        @echo '# Failed to bring up interface "*": Operation not... #'
336
 
        @echo '#                                                    #'
337
 
        @echo '# (The messages are caused by not running as root,   #'
338
 
        @echo '# but you should NOT run "make run-client" as root   #'
339
 
        @echo '# unless you also unpacked and compiled Mandos as    #'
340
 
        @echo '# root, which is also NOT recommended.)              #'
341
 
        @echo '######################################################'
 
261
run-client: all keydir/seckey.txt keydir/pubkey.txt
 
262
        @echo "###################################################################"
 
263
        @echo "# The following error messages are harmless and can be safely     #"
 
264
        @echo "# ignored.  The messages are caused by not running as root, but   #"
 
265
        @echo "# you should NOT run \"make run-client\" as root unless you also    #"
 
266
        @echo "# unpacked and compiled Mandos as root, which is NOT recommended. #"
 
267
        @echo "# From plugin-runner: setgid: Operation not permitted             #"
 
268
        @echo "#                     setuid: Operation not permitted             #"
 
269
        @echo "# From askpass-fifo:  mkfifo: Permission denied                   #"
 
270
        @echo "# From mandos-client:                                             #"
 
271
        @echo "#             Failed to raise privileges: Operation not permitted #"
 
272
        @echo "#             Warning: network hook \"*\" exited with status *      #"
 
273
        @echo "###################################################################"
342
274
# We set GNOME_KEYRING_CONTROL to block pam_gnome_keyring
343
275
        ./plugin-runner --plugin-dir=plugins.d \
344
 
                --plugin-helper-dir=plugin-helpers \
345
276
                --config-file=plugin-runner.conf \
346
 
                --options-for=mandos-client:--seckey=keydir/seckey.txt,--pubkey=keydir/pubkey.txt,--tls-privkey=keydir/tls-privkey.pem,--tls-pubkey=keydir/tls-pubkey.pem,--network-hook-dir=network-hooks.d \
 
277
                --options-for=mandos-client:--seckey=keydir/seckey.txt,--pubkey=keydir/pubkey.txt,--network-hook-dir=network-hooks.d \
347
278
                --env-for=mandos-client:GNOME_KEYRING_CONTROL= \
348
279
                $(CLIENTARGS)
349
280
 
350
281
# Used by run-client
351
 
keydir/seckey.txt keydir/pubkey.txt keydir/tls-privkey.pem keydir/tls-pubkey.pem: mandos-keygen
 
282
keydir/seckey.txt keydir/pubkey.txt: mandos-keygen
352
283
        install --directory keydir
353
284
        ./mandos-keygen --dir keydir --force
354
285
 
361
292
confdir/mandos.conf: mandos.conf
362
293
        install --directory confdir
363
294
        install --mode=u=rw,go=r $^ $@
364
 
confdir/clients.conf: clients.conf keydir/seckey.txt keydir/tls-pubkey.pem
 
295
confdir/clients.conf: clients.conf keydir/seckey.txt
365
296
        install --directory confdir
366
297
        install --mode=u=rw $< $@
367
298
# Add a client password
384
315
        elif install --directory --mode=u=rwx $(STATEDIR); then \
385
316
                chown -- $(USER):$(GROUP) $(STATEDIR) || :; \
386
317
        fi
387
 
        if [ "$(TMPFILES)" != "$(DESTDIR)" \
388
 
                        -a -d "$(TMPFILES)" ]; then \
389
 
                install --mode=u=rw,go=r tmpfiles.d-mandos.conf \
390
 
                        $(TMPFILES)/mandos.conf; \
391
 
        fi
392
 
        if [ "$(SYSUSERS)" != "$(DESTDIR)" \
393
 
                        -a -d "$(SYSUSERS)" ]; then \
394
 
                install --mode=u=rw,go=r sysusers.d-mandos.conf \
395
 
                        $(SYSUSERS)/mandos.conf; \
396
 
        fi
397
318
        install --mode=u=rwx,go=rx mandos $(PREFIX)/sbin/mandos
398
319
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
399
320
                mandos-ctl
431
352
install-client-nokey: all doc
432
353
        install --directory $(LIBDIR)/mandos $(CONFDIR)
433
354
        install --directory --mode=u=rwx $(KEYDIR) \
434
 
                $(LIBDIR)/mandos/plugins.d \
435
 
                $(LIBDIR)/mandos/plugin-helpers
436
 
        if [ "$(SYSUSERS)" != "$(DESTDIR)" \
437
 
                        -a -d "$(SYSUSERS)" ]; then \
438
 
                install --mode=u=rw,go=r sysusers.d-mandos.conf \
439
 
                        $(SYSUSERS)/mandos-client.conf; \
440
 
        fi
 
355
                $(LIBDIR)/mandos/plugins.d
441
356
        if [ "$(CONFDIR)" != "$(LIBDIR)/mandos" ]; then \
442
357
                install --mode=u=rwx \
443
 
                        --directory "$(CONFDIR)/plugins.d" \
444
 
                        "$(CONFDIR)/plugin-helpers"; \
 
358
                        --directory "$(CONFDIR)/plugins.d"; \
445
359
        fi
446
360
        install --mode=u=rwx,go=rx --directory \
447
361
                "$(CONFDIR)/network-hooks.d"
448
362
        install --mode=u=rwx,go=rx \
449
363
                --target-directory=$(LIBDIR)/mandos plugin-runner
450
 
        install --mode=u=rwx,go=rx \
451
 
                --target-directory=$(LIBDIR)/mandos \
452
 
                mandos-to-cryptroot-unlock
453
364
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
454
365
                mandos-keygen
455
366
        install --mode=u=rwx,go=rx \
470
381
        install --mode=u=rwxs,go=rx \
471
382
                --target-directory=$(LIBDIR)/mandos/plugins.d \
472
383
                plugins.d/plymouth
473
 
        install --mode=u=rwx,go=rx \
474
 
                --target-directory=$(LIBDIR)/mandos/plugin-helpers \
475
 
                plugin-helpers/mandos-client-iprouteadddel
476
384
        install initramfs-tools-hook \
477
385
                $(INITRAMFSTOOLS)/hooks/mandos
478
 
        install --mode=u=rw,go=r initramfs-tools-conf \
479
 
                $(INITRAMFSTOOLS)/conf.d/mandos-conf
480
 
        install --mode=u=rw,go=r initramfs-tools-conf-hook \
481
 
                $(INITRAMFSTOOLS)/conf-hooks.d/zz-mandos
 
386
        install --mode=u=rw,go=r initramfs-tools-hook-conf \
 
387
                $(INITRAMFSTOOLS)/conf-hooks.d/mandos
482
388
        install initramfs-tools-script \
483
389
                $(INITRAMFSTOOLS)/scripts/init-premount/mandos
484
 
        install initramfs-tools-script-stop \
485
 
                $(INITRAMFSTOOLS)/scripts/local-premount/mandos
486
 
        install --directory $(DRACUTMODULE)
487
 
        install --mode=u=rw,go=r --target-directory=$(DRACUTMODULE) \
488
 
                dracut-module/ask-password-mandos.path \
489
 
                dracut-module/ask-password-mandos.service
490
 
        install --mode=u=rwxs,go=rx \
491
 
                --target-directory=$(DRACUTMODULE) \
492
 
                dracut-module/module-setup.sh \
493
 
                dracut-module/cmdline-mandos.sh \
494
 
                dracut-module/password-agent
495
390
        install --mode=u=rw,go=r plugin-runner.conf $(CONFDIR)
496
391
        gzip --best --to-stdout mandos-keygen.8 \
497
392
                > $(MANDIR)/man8/mandos-keygen.8.gz
509
404
                > $(MANDIR)/man8/askpass-fifo.8mandos.gz
510
405
        gzip --best --to-stdout plugins.d/plymouth.8mandos \
511
406
                > $(MANDIR)/man8/plymouth.8mandos.gz
512
 
        gzip --best --to-stdout dracut-module/password-agent.8mandos \
513
 
                > $(MANDIR)/man8/password-agent.8mandos.gz
514
407
 
515
408
install-client: install-client-nokey
516
409
# Post-installation stuff
517
410
        -$(PREFIX)/sbin/mandos-keygen --dir "$(KEYDIR)"
518
 
        if command -v update-initramfs >/dev/null; then \
519
 
            update-initramfs -k all -u; \
520
 
        elif command -v dracut >/dev/null; then \
521
 
            for initrd in $(DESTDIR)/boot/initr*-$(LINUXVERSION); do \
522
 
                if [ -w "$$initrd" ]; then \
523
 
                    chmod go-r "$$initrd"; \
524
 
                    dracut --force "$$initrd"; \
525
 
                fi; \
526
 
            done; \
527
 
        fi
 
411
        update-initramfs -k all -u
528
412
        echo "Now run mandos-keygen --password --dir $(KEYDIR)"
529
413
 
530
414
uninstall: uninstall-server uninstall-client
557
441
                $(INITRAMFSTOOLS)/hooks/mandos \
558
442
                $(INITRAMFSTOOLS)/conf-hooks.d/mandos \
559
443
                $(INITRAMFSTOOLS)/scripts/init-premount/mandos \
560
 
                $(INITRAMFSTOOLS)/scripts/local-premount/mandos \
561
 
                $(DRACUTMODULE)/ask-password-mandos.path \
562
 
                $(DRACUTMODULE)/ask-password-mandos.service \
563
 
                $(DRACUTMODULE)/module-setup.sh \
564
 
                $(DRACUTMODULE)/cmdline-mandos.sh \
565
 
                $(DRACUTMODULE)/password-agent \
566
444
                $(MANDIR)/man8/mandos-keygen.8.gz \
567
445
                $(MANDIR)/man8/plugin-runner.8mandos.gz \
568
446
                $(MANDIR)/man8/mandos-client.8mandos.gz
571
449
                $(MANDIR)/man8/splashy.8mandos.gz \
572
450
                $(MANDIR)/man8/askpass-fifo.8mandos.gz \
573
451
                $(MANDIR)/man8/plymouth.8mandos.gz \
574
 
                $(MANDIR)/man8/password-agent.8mandos.gz \
575
452
        -rmdir $(LIBDIR)/mandos/plugins.d $(CONFDIR)/plugins.d \
576
 
                 $(LIBDIR)/mandos $(CONFDIR) $(KEYDIR) $(DRACUTMODULE)
577
 
        if command -v update-initramfs >/dev/null; then \
578
 
            update-initramfs -k all -u; \
579
 
        elif command -v dracut >/dev/null; then \
580
 
            for initrd in $(DESTDIR)/boot/initr*-$(LINUXVERSION); do \
581
 
                test -w "$$initrd" && dracut --force "$$initrd"; \
582
 
            done; \
583
 
        fi
 
453
                 $(LIBDIR)/mandos $(CONFDIR) $(KEYDIR)
 
454
        update-initramfs -k all -u
584
455
 
585
456
purge: purge-server purge-client
586
457
 
595
466
        -rmdir $(CONFDIR)
596
467
 
597
468
purge-client: uninstall-client
598
 
        -shred --remove $(KEYDIR)/seckey.txt $(KEYDIR)/tls-privkey.pem
 
469
        -shred --remove $(KEYDIR)/seckey.txt
599
470
        -rm --force $(CONFDIR)/plugin-runner.conf \
600
 
                $(KEYDIR)/pubkey.txt $(KEYDIR)/seckey.txt \
601
 
                $(KEYDIR)/tls-pubkey.txt $(KEYDIR)/tls-privkey.txt
 
471
                $(KEYDIR)/pubkey.txt $(KEYDIR)/seckey.txt
602
472
        -rmdir $(KEYDIR) $(CONFDIR)/plugins.d $(CONFDIR)