/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-08-29 05:53:59 UTC
  • Revision ID: teddy@fukt.bsnet.se-20080829055359-wkdasnyxtylmnxus
* mandos.xml (EXAMPLE): Replaced all occurences of command name with
                        "&COMMANDNAME;".

* plugins.d/password-prompt.c (main): Improved some documentation
                                      strings.  Do perror() of
                                      tcgetattr() fails.  Add debug
                                      output if interrupted by signal.
                                      Loop over write() instead of
                                      using fwrite() when outputting
                                      password.  Add debug output if
                                      getline() returns 0, unless it
                                      was caused by a signal.  Add
                                      exit status code to debug
                                      output.

* plugins.d/password-prompt.xml: Changed all single quotes to double
                                 quotes for consistency.  Removed
                                 <?xml-stylesheet>.
  (ENTITY TIMESTAMP): New.  Automatically updated by Emacs time-stamp
                      by using Emacs local variables.
  (/refentry/refentryinfo/title): Changed to "Mandos Manual".
  (/refentry/refentryinfo/productname): Changed to "Mandos".
  (/refentry/refentryinfo/date): New; set to "&TIMESTAMP;".
  (/refentry/refentryinfo/copyright): Split copyright holders.
  (/refentry/refnamediv/refpurpose): Improved wording.
  (SYNOPSIS): Fix to use correct markup.  Add short options.
  (DESCRIPTION, OPTIONS): Improved wording.
  (OPTIONS): Improved wording.  Use more correct markup.  Document
             short options.
  (EXIT STATUS): Add text.
  (ENVIRONMENT): Document use of "cryptsource" and "crypttarget".
  (FILES): REMOVED.
  (BUGS): Add text.
  (EXAMPLE): Added some examples.
  (SECURITY): Added text.
  (SEE ALSO): Remove reference to mandos(8).  Add reference to
              crypttab(5).

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 
9
 
#DEBUG=-ggdb3
 
7
        -Wpacked -Wnested-externs -Wunreachable-code -Winline \
 
8
        -Wvolatile-register-var
 
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_LD += -fPIE
21
 
LINK_FORTIFY += -pie
22
 
endif
 
11
# <http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html>
 
12
FORTIFY=-D_FORTIFY_SOURCE=2 # -fstack-protector-all
23
13
#COVERAGE=--coverage
24
14
OPTIMIZE=-Os
25
15
LANGUAGE=-std=gnu99
26
 
htmldir=man
27
 
version=1.0.14
28
 
SED=sed
29
 
 
30
 
## Use these settings for a traditional /usr/local install
31
 
# PREFIX=$(DESTDIR)/usr/local
32
 
# CONFDIR=$(DESTDIR)/etc/mandos
33
 
# KEYDIR=$(DESTDIR)/etc/mandos/keys
34
 
# MANDIR=$(PREFIX)/man
35
 
# INITRAMFSTOOLS=$(DESTDIR)/etc/initramfs-tools
36
 
##
37
 
 
38
 
## These settings are for a package-type install
 
16
# PREFIX=/usr/local
39
17
PREFIX=$(DESTDIR)/usr
 
18
# CONFDIR=/usr/local/lib/mandos
40
19
CONFDIR=$(DESTDIR)/etc/mandos
41
 
KEYDIR=$(DESTDIR)/etc/keys/mandos
42
 
MANDIR=$(PREFIX)/share/man
43
 
INITRAMFSTOOLS=$(DESTDIR)/usr/share/initramfs-tools
44
 
##
 
20
# MANDIR=/usr/local/man
 
21
MANDIR=$(DESTDIR)/usr/share/man
45
22
 
46
 
GNUTLS_CFLAGS=$(shell pkg-config --cflags-only-I gnutls)
47
 
GNUTLS_LIBS=$(shell pkg-config --libs gnutls)
 
23
GNUTLS_CFLAGS=$(shell libgnutls-config --cflags)
 
24
GNUTLS_LIBS=$(shell libgnutls-config --libs)
48
25
AVAHI_CFLAGS=$(shell pkg-config --cflags-only-I avahi-core)
49
26
AVAHI_LIBS=$(shell pkg-config --libs avahi-core)
50
 
GPGME_CFLAGS=$(shell gpgme-config --cflags; getconf LFS_CFLAGS)
51
 
GPGME_LIBS=$(shell gpgme-config --libs; getconf LFS_LIBS; \
52
 
        getconf LFS_LDFLAGS)
 
27
GPGME_CFLAGS=$(shell gpgme-config --cflags)
 
28
GPGME_LIBS=$(shell gpgme-config --libs)
53
29
 
54
30
# Do not change these two
55
31
CFLAGS=$(WARN) $(DEBUG) $(FORTIFY) $(COVERAGE) $(OPTIMIZE) \
56
 
        $(LANGUAGE) $(GNUTLS_CFLAGS) $(AVAHI_CFLAGS) $(GPGME_CFLAGS) \
57
 
        -DVERSION='"$(version)"'
58
 
LDFLAGS=$(COVERAGE) $(LINK_FORTIFY) $(foreach flag,$(LINK_FORTIFY_LD),-Xlinker $(flag))
 
32
        $(LANGUAGE) $(GNUTLS_CFLAGS) $(AVAHI_CFLAGS) $(GPGME_CFLAGS)
 
33
LDFLAGS=$(COVERAGE)
59
34
 
60
 
# Commands to format a DocBook <refentry> document into a manual page
61
 
DOCBOOKTOMAN=$(strip cd $(dir $<); xsltproc --nonet --xinclude \
 
35
# Commands to format a DocBook refentry document into a manual page
 
36
DOCBOOKTOMAN=cd $(dir $<); xsltproc --nonet --xinclude \
62
37
        --param man.charmap.use.subset          0 \
63
38
        --param make.year.ranges                1 \
64
39
        --param make.single.year.ranges         1 \
66
41
        --param man.authors.section.enabled     0 \
67
42
         /usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl \
68
43
        $(notdir $<); \
69
 
        $(MANPOST) $(notdir $@))
70
 
# DocBook-to-man post-processing to fix a '\n' escape bug
71
 
MANPOST=$(SED) --in-place --expression='s,\\\\en,\\en,g;s,\\n,\\en,g'
72
 
 
73
 
DOCBOOKTOHTML=$(strip xsltproc --nonet --xinclude \
74
 
        --param make.year.ranges                1 \
75
 
        --param make.single.year.ranges         1 \
76
 
        --param man.output.quietly              1 \
77
 
        --param man.authors.section.enabled     0 \
78
 
        --param citerefentry.link               1 \
79
 
        --output $@ \
80
 
        /usr/share/xml/docbook/stylesheet/nwalsh/xhtml/docbook.xsl \
81
 
        $<; $(HTMLPOST) $@)
82
 
# Fix citerefentry links
83
 
HTMLPOST=$(SED) --in-place \
84
 
        --expression='s/\(<a class="citerefentry" href="\)\("><span class="citerefentry"><span class="refentrytitle">\)\([^<]*\)\(<\/span>(\)\([^)]*\)\()<\/span><\/a>\)/\1\3.\5\2\3\4\5\6/g'
85
 
 
86
 
PLUGINS=plugins.d/password-prompt plugins.d/mandos-client \
87
 
        plugins.d/usplash plugins.d/splashy plugins.d/askpass-fifo
88
 
CPROGS=plugin-runner $(PLUGINS)
89
 
PROGS=mandos mandos-keygen mandos-ctl $(CPROGS)
 
44
        $(MANPOST) $(notdir $@)
 
45
# DocBook-to-man post-processing to fix a \n escape bug
 
46
MANPOST=sed --in-place --expression='s,\\\\en,\\en,g;s,\\n,\\en,g'
 
47
 
 
48
PLUGINS=plugins.d/password-prompt plugins.d/password-request
 
49
PROGS=plugin-runner $(PLUGINS)
90
50
DOCS=mandos.8 plugin-runner.8mandos mandos-keygen.8 \
91
 
        plugins.d/mandos-client.8mandos \
 
51
        plugins.d/password-request.8mandos \
92
52
        plugins.d/password-prompt.8mandos mandos.conf.5 \
93
 
        plugins.d/usplash.8mandos plugins.d/splashy.8mandos \
94
 
        plugins.d/askpass-fifo.8mandos mandos-clients.conf.5
95
 
 
96
 
htmldocs=$(addsuffix .xhtml,$(DOCS))
97
 
 
98
 
objects=$(addsuffix .o,$(CPROGS))
99
 
 
100
 
all: $(PROGS) mandos.lsm
 
53
        mandos-clients.conf.5
 
54
 
 
55
objects=$(addsuffix .o,$(PROGS))
 
56
 
 
57
all: $(PROGS)
101
58
 
102
59
doc: $(DOCS)
103
60
 
104
 
html: $(htmldocs)
105
 
 
106
 
%.5: %.xml common.ent legalnotice.xml
107
 
        $(DOCBOOKTOMAN)
108
 
%.5.xhtml: %.xml common.ent legalnotice.xml
109
 
        $(DOCBOOKTOHTML)
110
 
 
111
 
%.8: %.xml common.ent legalnotice.xml
112
 
        $(DOCBOOKTOMAN)
113
 
%.8.xhtml: %.xml common.ent legalnotice.xml
114
 
        $(DOCBOOKTOHTML)
115
 
 
116
 
%.8mandos: %.xml common.ent legalnotice.xml
117
 
        $(DOCBOOKTOMAN)
118
 
%.8mandos.xhtml: %.xml common.ent legalnotice.xml
119
 
        $(DOCBOOKTOHTML)
120
 
 
121
 
mandos.8: mandos.xml common.ent mandos-options.xml overview.xml \
122
 
                legalnotice.xml
123
 
        $(DOCBOOKTOMAN)
124
 
mandos.8.xhtml: mandos.xml common.ent mandos-options.xml \
125
 
                overview.xml legalnotice.xml
126
 
        $(DOCBOOKTOHTML)
127
 
 
128
 
mandos-keygen.8: mandos-keygen.xml common.ent overview.xml \
129
 
                legalnotice.xml
130
 
        $(DOCBOOKTOMAN)
131
 
mandos-keygen.8.xhtml: mandos-keygen.xml common.ent overview.xml \
132
 
                 legalnotice.xml
133
 
        $(DOCBOOKTOHTML)
134
 
 
135
 
mandos.conf.5: mandos.conf.xml common.ent mandos-options.xml \
136
 
                legalnotice.xml
137
 
        $(DOCBOOKTOMAN)
138
 
mandos.conf.5.xhtml: mandos.conf.xml common.ent mandos-options.xml \
139
 
                legalnotice.xml
140
 
        $(DOCBOOKTOHTML)
141
 
 
142
 
plugin-runner.8mandos: plugin-runner.xml common.ent overview.xml \
143
 
                legalnotice.xml
144
 
        $(DOCBOOKTOMAN)
145
 
plugin-runner.8mandos.xhtml: plugin-runner.xml common.ent \
146
 
                overview.xml legalnotice.xml
147
 
        $(DOCBOOKTOHTML)
148
 
 
149
 
plugins.d/mandos-client.8mandos: plugins.d/mandos-client.xml \
150
 
                                        common.ent \
151
 
                                        mandos-options.xml \
152
 
                                        overview.xml legalnotice.xml
153
 
        $(DOCBOOKTOMAN)
154
 
plugins.d/mandos-client.8mandos.xhtml: plugins.d/mandos-client.xml \
155
 
                                        common.ent \
156
 
                                        mandos-options.xml \
157
 
                                        overview.xml legalnotice.xml
158
 
        $(DOCBOOKTOHTML)
159
 
 
160
 
# Update all these files with version number $(version)
161
 
common.ent: Makefile
162
 
        $(strip $(SED) --in-place \
163
 
                --expression='s/^\(<!ENTITY version "\)[^"]*">$$/\1$(version)">/' \
164
 
                $@)
165
 
 
166
 
mandos: Makefile
167
 
        $(strip $(SED) --in-place \
168
 
                --expression='s/^\(version = "\)[^"]*"$$/\1$(version)"/' \
169
 
                $@)
170
 
 
171
 
mandos-keygen: Makefile
172
 
        $(strip $(SED) --in-place \
173
 
                --expression='s/^\(VERSION="\)[^"]*"$$/\1$(version)"/' \
174
 
                $@)
175
 
 
176
 
mandos-ctl: Makefile
177
 
        $(strip $(SED) --in-place \
178
 
                --expression='s/^\(version = "\)[^"]*"$$/\1$(version)"/' \
179
 
                $@)
180
 
 
181
 
mandos.lsm: Makefile
182
 
        $(strip $(SED) --in-place \
183
 
                --expression='s/^\(Version:\).*/\1\t$(version)/' \
184
 
                $@)
185
 
        $(strip $(SED) --in-place \
186
 
                --expression='s/^\(Entered-date:\).*/\1\t$(shell date --rfc-3339=date --reference=Makefile)/' \
187
 
                $@)
188
 
        $(strip $(SED) --in-place \
189
 
                --expression='s/\(mandos_\)[0-9.]\+\(\.orig\.tar\.gz\)/\1$(version)\2/' \
190
 
                $@)
191
 
 
192
 
plugins.d/mandos-client: plugins.d/mandos-client.c
193
 
        $(LINK.c) $(GNUTLS_LIBS) $(AVAHI_LIBS) $(GPGME_LIBS) $(strip\
194
 
                ) $(COMMON) $^ $(LOADLIBES) $(LDLIBS) -o $@
195
 
 
196
 
.PHONY : all doc html clean distclean run-client run-server install \
 
61
%.5: %.xml
 
62
        $(DOCBOOKTOMAN)
 
63
 
 
64
%.8: %.xml
 
65
        $(DOCBOOKTOMAN)
 
66
 
 
67
%.8mandos: %.xml
 
68
        $(DOCBOOKTOMAN)
 
69
 
 
70
mandos.8: mandos.xml mandos-options.xml
 
71
        $(DOCBOOKTOMAN)
 
72
 
 
73
mandos.conf.5: mandos.conf.xml mandos-options.xml
 
74
        $(DOCBOOKTOMAN)
 
75
 
 
76
plugins.d/password-request: plugins.d/password-request.o
 
77
        $(LINK.o) $(GNUTLS_LIBS) $(AVAHI_LIBS) $(GPGME_LIBS) \
 
78
                $(COMMON) $^ $(LOADLIBES) $(LDLIBS) -o $@
 
79
 
 
80
.PHONY : all doc clean distclean run-client run-server install \
197
81
        install-server install-client uninstall uninstall-server \
198
82
        uninstall-client purge purge-server purge-client
199
83
 
200
84
clean:
201
 
        -rm --force $(CPROGS) $(objects) $(htmldocs) $(DOCS) core
 
85
        -rm --force $(PROGS) $(objects) $(DOCS) core
202
86
 
203
87
distclean: clean
204
88
mostlyclean: clean
205
89
maintainer-clean: clean
206
90
        -rm --force --recursive keydir confdir
207
91
 
208
 
check:  all
 
92
check:
209
93
        ./mandos --check
210
94
 
211
 
# Run the client with a local config and key
212
 
run-client: all keydir/seckey.txt keydir/pubkey.txt
 
95
# Run the server with a local key
 
96
run-client: all keydir/seckey.txt keydir/pubkey.txt \
 
97
        keydir/secring.gpg keydir/pubring.gpg
213
98
        ./plugin-runner --plugin-dir=plugins.d \
214
 
                --config-file=plugin-runner.conf \
215
 
                --options-for=mandos-client:--seckey=keydir/seckey.txt,--pubkey=keydir/pubkey.txt \
216
 
                $(CLIENTARGS)
 
99
                --options-for=password-request:--keydir=keydir
217
100
 
218
101
# Used by run-client
 
102
keydir/secring.gpg: keydir/seckey.txt
 
103
        gpg --homedir $(dir $<) --import $^
 
104
keydir/pubring.gpg: keydir/pubkey.txt
 
105
        gpg --homedir $(dir $<) --import $^
219
106
keydir/seckey.txt keydir/pubkey.txt: mandos-keygen
220
107
        install --directory keydir
221
108
        ./mandos-keygen --dir keydir --force
222
109
 
223
110
# Run the server with a local config
224
111
run-server: confdir/mandos.conf confdir/clients.conf
225
 
        ./mandos --debug --no-dbus --configdir=confdir $(SERVERARGS)
 
112
        ./mandos --debug --configdir=confdir
226
113
 
227
114
# Used by run-server
228
115
confdir/mandos.conf: mandos.conf
229
116
        install --directory confdir
230
 
        install --mode=u=rw,go=r $^ $@
 
117
        install $^ $@
231
118
confdir/clients.conf: clients.conf keydir/seckey.txt
232
119
        install --directory confdir
233
 
        install --mode=u=rw $< $@
 
120
        install clients.conf $@
234
121
# Add a client password
235
122
        ./mandos-keygen --dir keydir --password >> $@
236
123
 
237
 
install: install-server install-client-nokey
238
 
 
239
 
install-html: html
240
 
        install --directory $(htmldir)
241
 
        install --mode=u=rw,go=r --target-directory=$(htmldir) \
242
 
                $(htmldocs)
 
124
install: install-server install-client
243
125
 
244
126
install-server: doc
245
 
        install --directory $(CONFDIR)
246
 
        install --mode=u=rwx,go=rx mandos $(PREFIX)/sbin/mandos
247
 
        install --mode=u=rw,go=r --target-directory=$(CONFDIR) \
248
 
                mandos.conf
249
 
        install --mode=u=rw --target-directory=$(CONFDIR) \
 
127
        install --directory --parents $(CONFDIR) $(MANDIR)/man5 \
 
128
                $(MANDIR)/man8
 
129
        install --mode=0755 mandos $(PREFIX)/sbin/mandos
 
130
        install --mode=0644 --target-directory=$(CONFDIR) mandos.conf
 
131
        install --mode=0640 --target-directory=$(CONFDIR) \
250
132
                clients.conf
251
 
        install --mode=u=rwx,go=rx init.d-mandos \
252
 
                $(DESTDIR)/etc/init.d/mandos
253
 
        install --mode=u=rw,go=r default-mandos \
254
 
                $(DESTDIR)/etc/default/mandos
255
 
        if [ -z $(DESTDIR) ]; then \
256
 
                update-rc.d mandos defaults 25 15;\
257
 
        fi
258
133
        gzip --best --to-stdout mandos.8 \
259
134
                > $(MANDIR)/man8/mandos.8.gz
260
135
        gzip --best --to-stdout mandos.conf.5 \
262
137
        gzip --best --to-stdout mandos-clients.conf.5 \
263
138
                > $(MANDIR)/man5/mandos-clients.conf.5.gz
264
139
 
265
 
install-client-nokey: all doc
266
 
        install --directory $(PREFIX)/lib/mandos $(CONFDIR)
267
 
        install --directory --mode=u=rwx $(KEYDIR) \
268
 
                $(PREFIX)/lib/mandos/plugins.d
269
 
        if [ "$(CONFDIR)" != "$(PREFIX)/lib/mandos" ]; then \
270
 
                install --mode=u=rwx \
271
 
                        --directory "$(CONFDIR)/plugins.d"; \
272
 
        fi
273
 
        install --mode=u=rwx,go=rx \
274
 
                --target-directory=$(PREFIX)/lib/mandos plugin-runner
275
 
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
 
140
install-client: all doc /usr/share/initramfs-tools/hooks/.
 
141
        install --directory --parents $(PREFIX)/lib/mandos \
 
142
                $(CONFDIR) $(MANDIR)/man8
 
143
        install --directory --mode=0700 $(PREFIX)/lib/mandos/plugins.d
 
144
        chmod u=rwx,g=,o= $(PREFIX)/lib/mandos/plugins.d
 
145
        install --mode=0755 --target-directory=$(PREFIX)/lib/mandos \
 
146
                plugin-runner
 
147
        install --mode=0755 --target-directory=$(PREFIX)/sbin \
276
148
                mandos-keygen
277
 
        install --mode=u=rwx,go=rx \
 
149
        install --mode=0755 \
278
150
                --target-directory=$(PREFIX)/lib/mandos/plugins.d \
279
151
                plugins.d/password-prompt
280
 
        install --mode=u=rwxs,go=rx \
281
 
                --target-directory=$(PREFIX)/lib/mandos/plugins.d \
282
 
                plugins.d/mandos-client
283
 
        install --mode=u=rwxs,go=rx \
284
 
                --target-directory=$(PREFIX)/lib/mandos/plugins.d \
285
 
                plugins.d/usplash
286
 
        install --mode=u=rwxs,go=rx \
287
 
                --target-directory=$(PREFIX)/lib/mandos/plugins.d \
288
 
                plugins.d/splashy
289
 
        install --mode=u=rwxs,go=rx \
290
 
                --target-directory=$(PREFIX)/lib/mandos/plugins.d \
291
 
                plugins.d/askpass-fifo
 
152
        install --mode=4755 \
 
153
                --target-directory=$(PREFIX)/lib/mandos/plugins.d \
 
154
                plugins.d/password-request
292
155
        install initramfs-tools-hook \
293
 
                $(INITRAMFSTOOLS)/hooks/mandos
294
 
        install --mode=u=rw,go=r initramfs-tools-hook-conf \
295
 
                $(INITRAMFSTOOLS)/conf-hooks.d/mandos
 
156
                /usr/share/initramfs-tools/hooks/mandos
 
157
        install initramfs-tools-hook-conf \
 
158
                /usr/share/initramfs-tools/conf-hooks.d/mandos
296
159
        install initramfs-tools-script \
297
 
                $(INITRAMFSTOOLS)/scripts/init-premount/mandos
298
 
        install --mode=u=rw,go=r plugin-runner.conf $(CONFDIR)
 
160
                /usr/share/initramfs-tools/scripts/local-top/mandos
299
161
        gzip --best --to-stdout mandos-keygen.8 \
300
162
                > $(MANDIR)/man8/mandos-keygen.8.gz
301
163
        gzip --best --to-stdout plugin-runner.8mandos \
302
164
                > $(MANDIR)/man8/plugin-runner.8mandos.gz
303
165
        gzip --best --to-stdout plugins.d/password-prompt.8mandos \
304
166
                > $(MANDIR)/man8/password-prompt.8mandos.gz
305
 
        gzip --best --to-stdout plugins.d/mandos-client.8mandos \
306
 
                > $(MANDIR)/man8/mandos-client.8mandos.gz
307
 
        gzip --best --to-stdout plugins.d/usplash.8mandos \
308
 
                > $(MANDIR)/man8/usplash.8mandos.gz
309
 
        gzip --best --to-stdout plugins.d/splashy.8mandos \
310
 
                > $(MANDIR)/man8/splashy.8mandos.gz
311
 
        gzip --best --to-stdout plugins.d/askpass-fifo.8mandos \
312
 
                > $(MANDIR)/man8/askpass-fifo.8mandos.gz
313
 
 
314
 
install-client: install-client-nokey
315
 
# Post-installation stuff
316
 
        -$(PREFIX)/sbin/mandos-keygen --dir "$(KEYDIR)"
 
167
        gzip --best --to-stdout plugins.d/password-request.8mandos \
 
168
                > $(MANDIR)/man8/password-request.8mandos.gz
 
169
        -$(PREFIX)/sbin/mandos-keygen
317
170
        update-initramfs -k all -u
318
 
        echo "Now run mandos-keygen --password --dir $(KEYDIR)"
319
171
 
320
172
uninstall: uninstall-server uninstall-client
321
173
 
322
 
uninstall-server:
 
174
uninstall-server: $(PREFIX)/sbin/mandos
323
175
        -rm --force $(PREFIX)/sbin/mandos \
324
176
                $(MANDIR)/man8/mandos.8.gz \
325
177
                $(MANDIR)/man5/mandos.conf.5.gz \
326
178
                $(MANDIR)/man5/mandos-clients.conf.5.gz
327
 
        update-rc.d -f mandos remove
328
179
        -rmdir $(CONFDIR)
329
180
 
330
181
uninstall-client:
331
182
# Refuse to uninstall client if /etc/crypttab is explicitly configured
332
183
# to use it.
333
184
        ! grep --regexp='^ *[^ #].*keyscript=[^,=]*/mandos/' \
334
 
                $(DESTDIR)/etc/crypttab
 
185
                /etc/crypttab
335
186
        -rm --force $(PREFIX)/sbin/mandos-keygen \
336
187
                $(PREFIX)/lib/mandos/plugin-runner \
337
188
                $(PREFIX)/lib/mandos/plugins.d/password-prompt \
338
 
                $(PREFIX)/lib/mandos/plugins.d/mandos-client \
339
 
                $(PREFIX)/lib/mandos/plugins.d/usplash \
340
 
                $(PREFIX)/lib/mandos/plugins.d/splashy \
341
 
                $(PREFIX)/lib/mandos/plugins.d/askpass-fifo \
342
 
                $(INITRAMFSTOOLS)/hooks/mandos \
343
 
                $(INITRAMFSTOOLS)/conf-hooks.d/mandos \
344
 
                $(INITRAMFSTOOLS)/scripts/init-premount/mandos \
 
189
                $(PREFIX)/lib/mandos/plugins.d/password-request \
 
190
                /usr/share/initramfs-tools/hooks/mandos \
 
191
                /usr/share/initramfs-tools/conf-hooks.d/mandos \
345
192
                $(MANDIR)/man8/plugin-runner.8mandos.gz \
346
193
                $(MANDIR)/man8/mandos-keygen.8.gz \
347
194
                $(MANDIR)/man8/password-prompt.8mandos.gz \
348
 
                $(MANDIR)/man8/usplash.8mandos.gz \
349
 
                $(MANDIR)/man8/splashy.8mandos.gz \
350
 
                $(MANDIR)/man8/askpass-fifo.8mandos.gz \
351
 
                $(MANDIR)/man8/mandos-client.8mandos.gz
 
195
                $(MANDIR)/man8/password-request.8mandos.gz
352
196
        -rmdir $(PREFIX)/lib/mandos/plugins.d $(CONFDIR)/plugins.d \
353
 
                 $(PREFIX)/lib/mandos $(CONFDIR) $(KEYDIR)
 
197
                 $(PREFIX)/lib/mandos $(CONFDIR)
354
198
        update-initramfs -k all -u
355
199
 
356
200
purge: purge-server purge-client
357
201
 
358
202
purge-server: uninstall-server
359
 
        -rm --force $(CONFDIR)/mandos.conf $(CONFDIR)/clients.conf \
360
 
                $(DESTDIR)/etc/default/mandos \
361
 
                $(DESTDIR)/etc/init.d/mandos \
362
 
                $(DESTDIR)/var/run/mandos.pid
 
203
        -rm --force $(CONFDIR)/mandos.conf $(CONFDIR)/clients.conf
363
204
        -rmdir $(CONFDIR)
364
205
 
365
206
purge-client: uninstall-client
366
 
        -shred --remove $(KEYDIR)/seckey.txt
367
 
        -rm --force $(CONFDIR)/plugin-runner.conf \
368
 
                $(KEYDIR)/pubkey.txt $(KEYDIR)/seckey.txt
369
 
        -rmdir $(KEYDIR) $(CONFDIR)/plugins.d $(CONFDIR)
 
207
        -rm --force $(CONFDIR)/seckey.txt $(CONFDIR)/pubkey.txt
 
208
        -rmdir $(CONFDIR) $(CONFDIR)/plugins.d