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