/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: 2008-12-10 01:26:02 UTC
  • mfrom: (237.1.2 mandos)
  • Revision ID: teddy@fukt.bsnet.se-20081210012602-vhz3h75xkj24t340
First version of a somewhat complete D-Bus server interface.  Also
change user/group name to "_mandos".

* debian/mandos.postinst: Rename old "mandos" user and group to
                          "_mandos"; create "_mandos" user and group
                          if none exist.
* debian/mandos-client.postinst: - '' -

* initramfs-tools-hook: Try "_mandos" before "mandos" as user and
                        group name.

* mandos (_datetime_to_dbus_struct): New; was previously local.
  (Client.started): Renamed to "last_started".  All users changed.
  (Client.started): New; boolean.
  (Client.dbus_object_path): New.
  (Client.check_command): Renamed to "checker_command".  All users
                          changed.
  (Client.__init__): Set and use "self.dbus_object_path".  Set
                     "self.started".
  (Client.start): Update "self.started".  Emit "self.PropertyChanged"
                  signals for both "started" and "last_started".
  (Client.stop): Update "self.started".  Emit "self.PropertyChanged"
                 signal for "started".
  (Client.checker_callback): Take additional "command" argument.  All
                             callers changed. Emit
                             "self.PropertyChanged" signal.
  (Client.bump_timeout): Emit "self.PropertyChanged" signal for
                         "last_checked_ok".
  (Client.start_checker): Emit "self.PropertyChanged" signal for
                          "checker_running".
  (Client.stop_checker): Emit "self.PropertyChanged" signal for
                         "checker_running".
  (Client.still_valid): Bug fix: use "getattr(self, started, False)"
                        instead of "self.started" in case this client
                        object is so new that the "started" attribute
                        has not been created yet.
  (Client.IntervalChanged, Client.CheckerIsRunning, Client.GetChecker,
  Client.GetCreated, Client.GetFingerprint, Client.GetHost,
  Client.GetInterval, Client.GetName, Client.GetStarted,
  Client.GetTimeout, Client.StateChanged, Client.TimeoutChanged):
  Removed; all callers changed.
  (Client.CheckerCompleted): Add "condition" and "command" arguments.
                             All callers changed.
  (Client.GetAllProperties, Client.PropertyChanged): New.
  (Client.StillValid): Renamed to "IsStillValid".
  (Client.StartChecker): Changed to its own function to avoid the
                         return value from "Client.start_checker()".
  (Client.Stop): Changed to its own function to avoid the return value
                 from "Client.stop()".
  (main): Try "_mandos" before "mandos" as user and group name.
          Removed inner function "remove_from_clients".  New inner
          class "MandosServer".

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
WARN=-O -Wall -Wformat=2 -Winit-self -Wmissing-include-dirs \
2
2
        -Wswitch-default -Wswitch-enum -Wunused-parameter \
3
 
        -Wstrict-aliasing=1 -Wextra -Wfloat-equal -Wundef -Wshadow \
 
3
        -Wstrict-aliasing=2 -Wextra -Wfloat-equal -Wundef -Wshadow \
4
4
        -Wunsafe-loop-optimizations -Wpointer-arith \
5
5
        -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings \
6
6
        -Wconversion -Wstrict-prototypes -Wold-style-definition \
7
 
        -Wpacked -Wnested-externs -Winline -Wvolatile-register-var \
8
 
        -Wunreachable-code
 
7
        -Wpacked -Wnested-externs -Winline -Wvolatile-register-var
 
8
#       -Wunreachable-code 
9
9
#DEBUG=-ggdb3
10
 
# For info about _FORTIFY_SOURCE, see feature_test_macros(7)
11
 
# and <http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html>.
12
 
FORTIFY=-D_FORTIFY_SOURCE=2 -fstack-protector-all -fPIC
13
 
LINK_FORTIFY_LD=-z relro -z now
14
 
LINK_FORTIFY=
15
 
 
16
 
# If BROKEN_PIE is set, do not build with -pie
17
 
ifndef BROKEN_PIE
18
 
FORTIFY += -fPIE
19
 
LINK_FORTIFY += -pie
20
 
endif
 
10
# For info about _FORTIFY_SOURCE, see
 
11
# <http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html>
 
12
FORTIFY=-D_FORTIFY_SOURCE=2 -fstack-protector-all -fPIE -pie
 
13
LINK_FORTIFY=-z relro -pie
21
14
#COVERAGE=--coverage
22
15
OPTIMIZE=-Os
23
16
LANGUAGE=-std=gnu99
24
17
htmldir=man
25
 
version=1.6.4
 
18
version=1.0.2
26
19
SED=sed
27
20
 
28
 
USER=$(firstword $(subst :, ,$(shell getent passwd _mandos || getent passwd nobody || echo 65534)))
29
 
GROUP=$(firstword $(subst :, ,$(shell getent group _mandos || getent group nobody || echo 65534)))
30
 
 
31
21
## Use these settings for a traditional /usr/local install
32
22
# PREFIX=$(DESTDIR)/usr/local
33
23
# CONFDIR=$(DESTDIR)/etc/mandos
34
24
# KEYDIR=$(DESTDIR)/etc/mandos/keys
35
25
# MANDIR=$(PREFIX)/man
36
26
# INITRAMFSTOOLS=$(DESTDIR)/etc/initramfs-tools
37
 
# STATEDIR=$(DESTDIR)/var/lib/mandos
38
 
# LIBDIR=$(PREFIX)/lib
39
27
##
40
28
 
41
29
## These settings are for a package-type install
44
32
KEYDIR=$(DESTDIR)/etc/keys/mandos
45
33
MANDIR=$(PREFIX)/share/man
46
34
INITRAMFSTOOLS=$(DESTDIR)/usr/share/initramfs-tools
47
 
STATEDIR=$(DESTDIR)/var/lib/mandos
48
 
LIBDIR=$(shell \
49
 
        for d in \
50
 
        "/usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH 2>/dev/null`" \
51
 
        "`rpm --eval='%{_libdir}' 2>/dev/null`" /usr/lib; do \
52
 
                if [ -d "$$d" -a "$$d" = "$${d%/}" ]; then \
53
 
                        echo "$(DESTDIR)$$d"; \
54
 
                        break; \
55
 
                fi; \
56
 
        done)
57
35
##
58
36
 
59
 
SYSTEMD=$(DESTDIR)$(shell pkg-config systemd --variable=systemdsystemunitdir)
60
 
 
61
 
GNUTLS_CFLAGS=$(shell pkg-config --cflags-only-I gnutls)
62
 
GNUTLS_LIBS=$(shell pkg-config --libs gnutls)
 
37
GNUTLS_CFLAGS=$(shell libgnutls-config --cflags)
 
38
GNUTLS_LIBS=$(shell libgnutls-config --libs)
63
39
AVAHI_CFLAGS=$(shell pkg-config --cflags-only-I avahi-core)
64
40
AVAHI_LIBS=$(shell pkg-config --libs avahi-core)
65
 
GPGME_CFLAGS=$(shell gpgme-config --cflags; getconf LFS_CFLAGS)
66
 
GPGME_LIBS=$(shell gpgme-config --libs; getconf LFS_LIBS; \
67
 
        getconf LFS_LDFLAGS)
 
41
GPGME_CFLAGS=$(shell gpgme-config --cflags)
 
42
GPGME_LIBS=$(shell gpgme-config --libs)
68
43
 
69
44
# Do not change these two
70
 
CFLAGS+=$(WARN) $(DEBUG) $(FORTIFY) $(COVERAGE) $(OPTIMIZE) \
 
45
CFLAGS=$(WARN) $(DEBUG) $(FORTIFY) $(COVERAGE) $(OPTIMIZE) \
71
46
        $(LANGUAGE) $(GNUTLS_CFLAGS) $(AVAHI_CFLAGS) $(GPGME_CFLAGS) \
72
47
        -DVERSION='"$(version)"'
73
 
LDFLAGS+=-Xlinker --as-needed $(COVERAGE) $(LINK_FORTIFY) $(foreach flag,$(LINK_FORTIFY_LD),-Xlinker $(flag))
 
48
LDFLAGS=$(COVERAGE) $(LINK_FORTIFY)
74
49
 
75
50
# Commands to format a DocBook <refentry> document into a manual page
76
 
DOCBOOKTOMAN=$(strip cd $(dir $<); xsltproc --nonet --xinclude \
 
51
DOCBOOKTOMAN=cd $(dir $<); xsltproc --nonet --xinclude \
77
52
        --param man.charmap.use.subset          0 \
78
53
        --param make.year.ranges                1 \
79
54
        --param make.single.year.ranges         1 \
80
55
        --param man.output.quietly              1 \
81
56
        --param man.authors.section.enabled     0 \
82
 
        /usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl \
 
57
         /usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl \
83
58
        $(notdir $<); \
84
 
        $(MANPOST) $(notdir $@);\
85
 
        if locale --all 2>/dev/null | grep --regexp='^en_US\.utf8$$' \
86
 
        && type man 2>/dev/null; then LANG=en_US.UTF-8 MANWIDTH=80 \
87
 
        man --warnings --encoding=UTF-8 --local-file $(notdir $@); \
88
 
        fi >/dev/null)
 
59
        $(MANPOST) $(notdir $@)
89
60
# DocBook-to-man post-processing to fix a '\n' escape bug
90
61
MANPOST=$(SED) --in-place --expression='s,\\\\en,\\en,g;s,\\n,\\en,g'
91
62
 
92
 
DOCBOOKTOHTML=$(strip xsltproc --nonet --xinclude \
 
63
DOCBOOKTOHTML=xsltproc --nonet --xinclude \
93
64
        --param make.year.ranges                1 \
94
65
        --param make.single.year.ranges         1 \
95
66
        --param man.output.quietly              1 \
97
68
        --param citerefentry.link               1 \
98
69
        --output $@ \
99
70
        /usr/share/xml/docbook/stylesheet/nwalsh/xhtml/docbook.xsl \
100
 
        $<; $(HTMLPOST) $@)
 
71
        $<; $(HTMLPOST) $@
101
72
# Fix citerefentry links
102
73
HTMLPOST=$(SED) --in-place \
103
74
        --expression='s/\(<a class="citerefentry" href="\)\("><span class="citerefentry"><span class="refentrytitle">\)\([^<]*\)\(<\/span>(\)\([^)]*\)\()<\/span><\/a>\)/\1\3.\5\2\3\4\5\6/g'
104
75
 
105
76
PLUGINS=plugins.d/password-prompt plugins.d/mandos-client \
106
 
        plugins.d/usplash plugins.d/splashy plugins.d/askpass-fifo \
107
 
        plugins.d/plymouth
 
77
        plugins.d/usplash plugins.d/splashy plugins.d/askpass-fifo
108
78
CPROGS=plugin-runner $(PLUGINS)
109
 
PROGS=mandos mandos-keygen mandos-ctl mandos-monitor $(CPROGS)
110
 
DOCS=mandos.8 mandos-keygen.8 mandos-monitor.8 mandos-ctl.8 \
111
 
        mandos.conf.5 mandos-clients.conf.5 plugin-runner.8mandos \
 
79
PROGS=mandos mandos-keygen $(CPROGS)
 
80
DOCS=mandos.8 plugin-runner.8mandos mandos-keygen.8 \
112
81
        plugins.d/mandos-client.8mandos \
113
 
        plugins.d/password-prompt.8mandos plugins.d/usplash.8mandos \
114
 
        plugins.d/splashy.8mandos plugins.d/askpass-fifo.8mandos \
115
 
        plugins.d/plymouth.8mandos intro.8mandos
 
82
        plugins.d/password-prompt.8mandos mandos.conf.5 \
 
83
        plugins.d/usplash.8mandos plugins.d/splashy.8mandos \
 
84
        plugins.d/askpass-fifo.8mandos mandos-clients.conf.5
116
85
 
117
86
htmldocs=$(addsuffix .xhtml,$(DOCS))
118
87
 
139
108
%.8mandos.xhtml: %.xml common.ent legalnotice.xml
140
109
        $(DOCBOOKTOHTML)
141
110
 
142
 
intro.8mandos: intro.xml common.ent legalnotice.xml
143
 
        $(DOCBOOKTOMAN)
144
 
intro.8mandos.xhtml: intro.xml common.ent legalnotice.xml
145
 
        $(DOCBOOKTOHTML)
146
 
 
147
111
mandos.8: mandos.xml common.ent mandos-options.xml overview.xml \
148
112
                legalnotice.xml
149
113
        $(DOCBOOKTOMAN)
158
122
                 legalnotice.xml
159
123
        $(DOCBOOKTOHTML)
160
124
 
161
 
mandos-monitor.8: mandos-monitor.xml common.ent overview.xml \
162
 
                legalnotice.xml
163
 
        $(DOCBOOKTOMAN)
164
 
mandos-monitor.8.xhtml: mandos-monitor.xml common.ent overview.xml \
165
 
                 legalnotice.xml
166
 
        $(DOCBOOKTOHTML)
167
 
 
168
 
mandos-ctl.8: mandos-ctl.xml common.ent overview.xml \
169
 
                legalnotice.xml
170
 
        $(DOCBOOKTOMAN)
171
 
mandos-ctl.8.xhtml: mandos-ctl.xml common.ent overview.xml \
172
 
                 legalnotice.xml
173
 
        $(DOCBOOKTOHTML)
174
 
 
175
125
mandos.conf.5: mandos.conf.xml common.ent mandos-options.xml \
176
126
                legalnotice.xml
177
127
        $(DOCBOOKTOMAN)
199
149
 
200
150
# Update all these files with version number $(version)
201
151
common.ent: Makefile
202
 
        $(strip $(SED) --in-place \
203
 
                --expression='s/^\(<!ENTITY version "\)[^"]*">$$/\1$(version)">/' \
204
 
                $@)
 
152
        $(SED) --in-place \
 
153
                --expression='s/^\(<ENTITY VERSION "\)[^"]*">$$/\1$(version)"/' \
 
154
                $@
205
155
 
206
156
mandos: Makefile
207
 
        $(strip $(SED) --in-place \
 
157
        $(SED) --in-place \
208
158
                --expression='s/^\(version = "\)[^"]*"$$/\1$(version)"/' \
209
 
                $@)
 
159
                $@
210
160
 
211
161
mandos-keygen: Makefile
212
 
        $(strip $(SED) --in-place \
 
162
        $(SED) --in-place \
213
163
                --expression='s/^\(VERSION="\)[^"]*"$$/\1$(version)"/' \
214
 
                $@)
215
 
 
216
 
mandos-ctl: Makefile
217
 
        $(strip $(SED) --in-place \
218
 
                --expression='s/^\(version = "\)[^"]*"$$/\1$(version)"/' \
219
 
                $@)
220
 
 
221
 
mandos-monitor: Makefile
222
 
        $(strip $(SED) --in-place \
223
 
                --expression='s/^\(version = "\)[^"]*"$$/\1$(version)"/' \
224
 
                $@)
 
164
                $@
225
165
 
226
166
mandos.lsm: Makefile
227
 
        $(strip $(SED) --in-place \
 
167
        $(SED) --in-place \
228
168
                --expression='s/^\(Version:\).*/\1\t$(version)/' \
229
 
                $@)
230
 
        $(strip $(SED) --in-place \
 
169
                $@
 
170
        $(SED) --in-place \
231
171
                --expression='s/^\(Entered-date:\).*/\1\t$(shell date --rfc-3339=date --reference=Makefile)/' \
232
 
                $@)
233
 
        $(strip $(SED) --in-place \
234
 
                --expression='s/\(mandos_\)[0-9.]\+\(\.orig\.tar\.gz\)/\1$(version)\2/' \
235
 
                $@)
236
 
 
237
 
plugins.d/mandos-client: plugins.d/mandos-client.c
238
 
        $(LINK.c) $^ -lrt $(GNUTLS_LIBS) $(AVAHI_LIBS) $(strip\
239
 
                ) $(GPGME_LIBS) $(LOADLIBES) $(LDLIBS) -o $@
240
 
 
241
 
.PHONY : all doc html clean distclean mostlyclean maintainer-clean \
242
 
        check run-client run-server install install-html \
243
 
        install-server install-client-nokey install-client uninstall \
244
 
        uninstall-server uninstall-client purge purge-server \
245
 
        purge-client
 
172
                $@
 
173
 
 
174
plugins.d/mandos-client: plugins.d/mandos-client.o
 
175
        $(LINK.o) $(GNUTLS_LIBS) $(AVAHI_LIBS) $(GPGME_LIBS) \
 
176
                $(COMMON) $^ $(LOADLIBES) $(LDLIBS) -o $@
 
177
 
 
178
.PHONY : all doc html clean distclean run-client run-server install \
 
179
        install-server install-client uninstall uninstall-server \
 
180
        uninstall-client purge purge-server purge-client
246
181
 
247
182
clean:
248
183
        -rm --force $(CPROGS) $(objects) $(htmldocs) $(DOCS) core
250
185
distclean: clean
251
186
mostlyclean: clean
252
187
maintainer-clean: clean
253
 
        -rm --force --recursive keydir confdir statedir
 
188
        -rm --force --recursive keydir confdir
254
189
 
255
190
check:  all
256
191
        ./mandos --check
257
 
        ./mandos-ctl --check
258
192
 
259
193
# Run the client with a local config and key
260
194
run-client: all keydir/seckey.txt keydir/pubkey.txt
261
 
        @echo "###################################################################"
262
 
        @echo "# The following error messages are harmless and can be safely     #"
263
 
        @echo "# ignored.  The messages are caused by not running as root, but   #"
264
 
        @echo "# you should NOT run \"make run-client\" as root unless you also    #"
265
 
        @echo "# unpacked and compiled Mandos as root, which is NOT recommended. #"
266
 
        @echo "# From plugin-runner: setuid: Operation not permitted             #"
267
 
        @echo "# From askpass-fifo:  mkfifo: Permission denied                   #"
268
 
        @echo "# From mandos-client: setuid: Operation not permitted             #"
269
 
        @echo "#                     seteuid: Operation not permitted            #"
270
 
        @echo "#                     klogctl: Operation not permitted            #"
271
 
        @echo "###################################################################"
272
195
        ./plugin-runner --plugin-dir=plugins.d \
273
196
                --config-file=plugin-runner.conf \
274
 
                --options-for=mandos-client:--seckey=keydir/seckey.txt,--pubkey=keydir/pubkey.txt,--network-hook-dir=network-hooks.d \
275
 
                $(CLIENTARGS)
 
197
                --options-for=mandos-client:--seckey=keydir/seckey.txt,--pubkey=keydir/pubkey.txt
276
198
 
277
199
# Used by run-client
278
200
keydir/seckey.txt keydir/pubkey.txt: mandos-keygen
280
202
        ./mandos-keygen --dir keydir --force
281
203
 
282
204
# Run the server with a local config
283
 
run-server: confdir/mandos.conf confdir/clients.conf statedir
284
 
        ./mandos --debug --no-dbus --configdir=confdir \
285
 
                --statedir=statedir $(SERVERARGS)
 
205
run-server: confdir/mandos.conf confdir/clients.conf
 
206
        ./mandos --debug --configdir=confdir
286
207
 
287
208
# Used by run-server
288
209
confdir/mandos.conf: mandos.conf
293
214
        install --mode=u=rw $< $@
294
215
# Add a client password
295
216
        ./mandos-keygen --dir keydir --password >> $@
296
 
statedir:
297
 
        install --directory statedir
298
217
 
299
218
install: install-server install-client-nokey
300
219
 
305
224
 
306
225
install-server: doc
307
226
        install --directory $(CONFDIR)
308
 
        if install --directory --mode=u=rwx --owner=$(USER) \
309
 
                --group=$(GROUP) $(STATEDIR); then \
310
 
                :; \
311
 
        elif install --directory --mode=u=rwx $(STATEDIR); then \
312
 
                chown -- $(USER):$(GROUP) $(STATEDIR) || :; \
313
 
        fi
314
227
        install --mode=u=rwx,go=rx mandos $(PREFIX)/sbin/mandos
315
 
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
316
 
                mandos-ctl
317
 
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
318
 
                mandos-monitor
319
228
        install --mode=u=rw,go=r --target-directory=$(CONFDIR) \
320
229
                mandos.conf
321
230
        install --mode=u=rw --target-directory=$(CONFDIR) \
322
231
                clients.conf
323
 
        install --mode=u=rw,go=r dbus-mandos.conf \
324
 
                $(DESTDIR)/etc/dbus-1/system.d/mandos.conf
325
232
        install --mode=u=rwx,go=rx init.d-mandos \
326
233
                $(DESTDIR)/etc/init.d/mandos
327
 
        if [ "$(SYSTEMD)" != "$(DESTDIR)" -a -d "$(SYSTEMD)" ]; then \
328
 
                install --mode=u=rw,go=r mandos.service $(SYSTEMD); \
329
 
        fi
330
234
        install --mode=u=rw,go=r default-mandos \
331
235
                $(DESTDIR)/etc/default/mandos
332
236
        if [ -z $(DESTDIR) ]; then \
334
238
        fi
335
239
        gzip --best --to-stdout mandos.8 \
336
240
                > $(MANDIR)/man8/mandos.8.gz
337
 
        gzip --best --to-stdout mandos-monitor.8 \
338
 
                > $(MANDIR)/man8/mandos-monitor.8.gz
339
 
        gzip --best --to-stdout mandos-ctl.8 \
340
 
                > $(MANDIR)/man8/mandos-ctl.8.gz
341
241
        gzip --best --to-stdout mandos.conf.5 \
342
242
                > $(MANDIR)/man5/mandos.conf.5.gz
343
243
        gzip --best --to-stdout mandos-clients.conf.5 \
344
244
                > $(MANDIR)/man5/mandos-clients.conf.5.gz
345
 
        gzip --best --to-stdout intro.8mandos \
346
 
                > $(MANDIR)/man8/intro.8mandos.gz
347
245
 
348
246
install-client-nokey: all doc
349
 
        install --directory $(LIBDIR)/mandos $(CONFDIR)
 
247
        install --directory $(PREFIX)/lib/mandos $(CONFDIR)
350
248
        install --directory --mode=u=rwx $(KEYDIR) \
351
 
                $(LIBDIR)/mandos/plugins.d
352
 
        if [ "$(CONFDIR)" != "$(LIBDIR)/mandos" ]; then \
 
249
                $(PREFIX)/lib/mandos/plugins.d
 
250
        if [ "$(CONFDIR)" != "$(PREFIX)/lib/mandos" ]; then \
353
251
                install --mode=u=rwx \
354
252
                        --directory "$(CONFDIR)/plugins.d"; \
355
253
        fi
356
 
        install --mode=u=rwx,go=rx --directory \
357
 
                "$(CONFDIR)/network-hooks.d"
358
254
        install --mode=u=rwx,go=rx \
359
 
                --target-directory=$(LIBDIR)/mandos plugin-runner
 
255
                --target-directory=$(PREFIX)/lib/mandos plugin-runner
360
256
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
361
257
                mandos-keygen
362
258
        install --mode=u=rwx,go=rx \
363
 
                --target-directory=$(LIBDIR)/mandos/plugins.d \
 
259
                --target-directory=$(PREFIX)/lib/mandos/plugins.d \
364
260
                plugins.d/password-prompt
365
261
        install --mode=u=rwxs,go=rx \
366
 
                --target-directory=$(LIBDIR)/mandos/plugins.d \
 
262
                --target-directory=$(PREFIX)/lib/mandos/plugins.d \
367
263
                plugins.d/mandos-client
368
264
        install --mode=u=rwxs,go=rx \
369
 
                --target-directory=$(LIBDIR)/mandos/plugins.d \
 
265
                --target-directory=$(PREFIX)/lib/mandos/plugins.d \
370
266
                plugins.d/usplash
371
267
        install --mode=u=rwxs,go=rx \
372
 
                --target-directory=$(LIBDIR)/mandos/plugins.d \
 
268
                --target-directory=$(PREFIX)/lib/mandos/plugins.d \
373
269
                plugins.d/splashy
374
270
        install --mode=u=rwxs,go=rx \
375
 
                --target-directory=$(LIBDIR)/mandos/plugins.d \
 
271
                --target-directory=$(PREFIX)/lib/mandos/plugins.d \
376
272
                plugins.d/askpass-fifo
377
 
        install --mode=u=rwxs,go=rx \
378
 
                --target-directory=$(LIBDIR)/mandos/plugins.d \
379
 
                plugins.d/plymouth
380
273
        install initramfs-tools-hook \
381
274
                $(INITRAMFSTOOLS)/hooks/mandos
382
275
        install --mode=u=rw,go=r initramfs-tools-hook-conf \
383
276
                $(INITRAMFSTOOLS)/conf-hooks.d/mandos
384
277
        install initramfs-tools-script \
385
 
                $(INITRAMFSTOOLS)/scripts/init-premount/mandos
 
278
                $(INITRAMFSTOOLS)/scripts/local-top/mandos
386
279
        install --mode=u=rw,go=r plugin-runner.conf $(CONFDIR)
387
280
        gzip --best --to-stdout mandos-keygen.8 \
388
281
                > $(MANDIR)/man8/mandos-keygen.8.gz
389
282
        gzip --best --to-stdout plugin-runner.8mandos \
390
283
                > $(MANDIR)/man8/plugin-runner.8mandos.gz
 
284
        gzip --best --to-stdout plugins.d/password-prompt.8mandos \
 
285
                > $(MANDIR)/man8/password-prompt.8mandos.gz
391
286
        gzip --best --to-stdout plugins.d/mandos-client.8mandos \
392
287
                > $(MANDIR)/man8/mandos-client.8mandos.gz
393
 
        gzip --best --to-stdout plugins.d/password-prompt.8mandos \
394
 
                > $(MANDIR)/man8/password-prompt.8mandos.gz
395
288
        gzip --best --to-stdout plugins.d/usplash.8mandos \
396
289
                > $(MANDIR)/man8/usplash.8mandos.gz
397
290
        gzip --best --to-stdout plugins.d/splashy.8mandos \
398
291
                > $(MANDIR)/man8/splashy.8mandos.gz
399
292
        gzip --best --to-stdout plugins.d/askpass-fifo.8mandos \
400
293
                > $(MANDIR)/man8/askpass-fifo.8mandos.gz
401
 
        gzip --best --to-stdout plugins.d/plymouth.8mandos \
402
 
                > $(MANDIR)/man8/plymouth.8mandos.gz
403
294
 
404
295
install-client: install-client-nokey
405
296
# Post-installation stuff
411
302
 
412
303
uninstall-server:
413
304
        -rm --force $(PREFIX)/sbin/mandos \
414
 
                $(PREFIX)/sbin/mandos-ctl \
415
 
                $(PREFIX)/sbin/mandos-monitor \
416
305
                $(MANDIR)/man8/mandos.8.gz \
417
 
                $(MANDIR)/man8/mandos-monitor.8.gz \
418
 
                $(MANDIR)/man8/mandos-ctl.8.gz \
419
306
                $(MANDIR)/man5/mandos.conf.5.gz \
420
307
                $(MANDIR)/man5/mandos-clients.conf.5.gz
421
308
        update-rc.d -f mandos remove
427
314
        ! grep --regexp='^ *[^ #].*keyscript=[^,=]*/mandos/' \
428
315
                $(DESTDIR)/etc/crypttab
429
316
        -rm --force $(PREFIX)/sbin/mandos-keygen \
430
 
                $(LIBDIR)/mandos/plugin-runner \
431
 
                $(LIBDIR)/mandos/plugins.d/password-prompt \
432
 
                $(LIBDIR)/mandos/plugins.d/mandos-client \
433
 
                $(LIBDIR)/mandos/plugins.d/usplash \
434
 
                $(LIBDIR)/mandos/plugins.d/splashy \
435
 
                $(LIBDIR)/mandos/plugins.d/askpass-fifo \
436
 
                $(LIBDIR)/mandos/plugins.d/plymouth \
 
317
                $(PREFIX)/lib/mandos/plugin-runner \
 
318
                $(PREFIX)/lib/mandos/plugins.d/password-prompt \
 
319
                $(PREFIX)/lib/mandos/plugins.d/mandos-client \
 
320
                $(PREFIX)/lib/mandos/plugins.d/usplash \
 
321
                $(PREFIX)/lib/mandos/plugins.d/splashy \
 
322
                $(PREFIX)/lib/mandos/plugins.d/askpass-fifo \
437
323
                $(INITRAMFSTOOLS)/hooks/mandos \
438
324
                $(INITRAMFSTOOLS)/conf-hooks.d/mandos \
439
 
                $(INITRAMFSTOOLS)/scripts/init-premount/mandos \
 
325
                $(INITRAMFSTOOLS)/scripts/local-top/mandos \
 
326
                $(MANDIR)/man8/plugin-runner.8mandos.gz \
440
327
                $(MANDIR)/man8/mandos-keygen.8.gz \
441
 
                $(MANDIR)/man8/plugin-runner.8mandos.gz \
442
 
                $(MANDIR)/man8/mandos-client.8mandos.gz
443
328
                $(MANDIR)/man8/password-prompt.8mandos.gz \
444
329
                $(MANDIR)/man8/usplash.8mandos.gz \
445
330
                $(MANDIR)/man8/splashy.8mandos.gz \
446
331
                $(MANDIR)/man8/askpass-fifo.8mandos.gz \
447
 
                $(MANDIR)/man8/plymouth.8mandos.gz \
448
 
        -rmdir $(LIBDIR)/mandos/plugins.d $(CONFDIR)/plugins.d \
449
 
                 $(LIBDIR)/mandos $(CONFDIR) $(KEYDIR)
 
332
                $(MANDIR)/man8/mandos-client.8mandos.gz
 
333
        -rmdir $(PREFIX)/lib/mandos/plugins.d $(CONFDIR)/plugins.d \
 
334
                 $(PREFIX)/lib/mandos $(CONFDIR) $(KEYDIR)
450
335
        update-initramfs -k all -u
451
336
 
452
337
purge: purge-server purge-client
453
338
 
454
339
purge-server: uninstall-server
455
340
        -rm --force $(CONFDIR)/mandos.conf $(CONFDIR)/clients.conf \
456
 
                $(DESTDIR)/etc/dbus-1/system.d/mandos.conf
457
341
                $(DESTDIR)/etc/default/mandos \
458
342
                $(DESTDIR)/etc/init.d/mandos \
459
 
                $(SYSTEMD)/mandos.service \
460
 
                $(DESTDIR)/run/mandos.pid \
461
343
                $(DESTDIR)/var/run/mandos.pid
462
344
        -rmdir $(CONFDIR)
463
345