/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk
918 by Teddy Hogeborn
Use "simply expanded" variables in Makefile
1
WARN:=-O -Wall -Wextra -Wdouble-promotion -Wformat=2 -Winit-self \
672 by Teddy Hogeborn
Update GCC warning flags and function attributes to GCC 4.7.
2
	-Wmissing-include-dirs -Wswitch-default -Wswitch-enum \
3
	-Wunused -Wuninitialized -Wstrict-overflow=5 \
4
	-Wsuggest-attribute=pure -Wsuggest-attribute=const \
5
	-Wsuggest-attribute=noreturn -Wfloat-equal -Wundef -Wshadow \
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
6
	-Wunsafe-loop-optimizations -Wpointer-arith \
7
	-Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings \
672 by Teddy Hogeborn
Update GCC warning flags and function attributes to GCC 4.7.
8
	-Wconversion -Wlogical-op -Waggregate-return \
9
	-Wstrict-prototypes -Wold-style-definition \
10
	-Wmissing-format-attribute -Wnormalized=nfc -Wpacked \
11
	-Wredundant-decls -Wnested-externs -Winline -Wvla \
12
	-Wvolatile-register-var -Woverlength-strings
1111 by Teddy Hogeborn
Only use sanitizing options when debugging
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)))
800 by Teddy Hogeborn
Use AddressSanitizer and UndefinedBehaviorSanitizer.
19
# <https://developerblog.redhat.com/2014/10/16/gcc-undefined-behavior-sanitizer-ubsan/>
871 by Teddy Hogeborn
Makefile: Replace "-fsanitize=address" with "-fsanitize=leak"
20
ALL_SANITIZE_OPTIONS:=-fsanitize=leak -fsanitize=undefined \
817 by Teddy Hogeborn
Only use -fsanitize=... options if they work.
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 \
1117 by Teddy Hogeborn
Add another sanitizer option
28
        -fsanitize=enum -fsanitize-address-use-after-scope
1111 by Teddy Hogeborn
Only use sanitizing options when debugging
29
30
# 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
918 by Teddy Hogeborn
Use "simply expanded" variables in Makefile
33
LINK_FORTIFY_LD:=-z relro -z now
34
LINK_FORTIFY:=
399 by Teddy Hogeborn
* Makefile (BROKEN_PIE): Add comment.
35
36
# If BROKEN_PIE is set, do not build with -pie
237.2.31 by Teddy Hogeborn
* Makefile: Don't use PIE if BROKEN_PIE is set.
37
ifndef BROKEN_PIE
38
FORTIFY += -fPIE
39
LINK_FORTIFY += -pie
40
endif
24.1.90 by Björn Påhlsson
fixed two bugs:
41
#COVERAGE=--coverage
918 by Teddy Hogeborn
Use "simply expanded" variables in Makefile
42
OPTIMIZE:=-Os -fno-strict-aliasing
43
LANGUAGE:=-std=gnu11
1146 by Teddy Hogeborn
Client: Always build with LFS enabled
44
FEATURES:=-D_FILE_OFFSET_BITS=64
918 by Teddy Hogeborn
Use "simply expanded" variables in Makefile
45
htmldir:=man
237.4.122 by Teddy Hogeborn
* Makefile (version): Change to 1.8.8.
46
version:=1.8.8
918 by Teddy Hogeborn
Use "simply expanded" variables in Makefile
47
SED:=sed
1137 by Teddy Hogeborn
Makefile: "pkg-config" is now overrideable by PKG_CONFIG
48
PKG_CONFIG?=pkg-config
175 by Teddy Hogeborn
* Makefile: Clearly separate "local" install variable settings from
49
1112 by Teddy Hogeborn
Makefile: Break long lines
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)))
518.2.2 by Teddy Hogeborn
Directory with persistent state can now be changed with the "statedir"
54
1136 by Teddy Hogeborn
Break some long lines and refine documentation
55
LINUXVERSION:=$(shell uname --kernel-release)
56
175 by Teddy Hogeborn
* Makefile: Clearly separate "local" install variable settings from
57
## Use these settings for a traditional /usr/local install
918 by Teddy Hogeborn
Use "simply expanded" variables in Makefile
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
1127 by Teddy Hogeborn
Add dracut(8) support
63
# DRACUTMODULE:=$(DESTDIR)/usr/lib/dracut/modules.d/90mandos
918 by Teddy Hogeborn
Use "simply expanded" variables in Makefile
64
# STATEDIR:=$(DESTDIR)/var/lib/mandos
65
# LIBDIR:=$(PREFIX)/lib
177 by Teddy Hogeborn
* Makefile (CONFDIR): Changed to be the same ("/etc/mandos") in both a
66
##
175 by Teddy Hogeborn
* Makefile: Clearly separate "local" install variable settings from
67
177 by Teddy Hogeborn
* Makefile (CONFDIR): Changed to be the same ("/etc/mandos") in both a
68
## These settings are for a package-type install
918 by Teddy Hogeborn
Use "simply expanded" variables in Makefile
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
1127 by Teddy Hogeborn
Add dracut(8) support
74
DRACUTMODULE:=$(DESTDIR)/usr/lib/dracut/modules.d/90mandos
918 by Teddy Hogeborn
Use "simply expanded" variables in Makefile
75
STATEDIR:=$(DESTDIR)/var/lib/mandos
76
LIBDIR:=$(shell \
640 by Teddy Hogeborn
Use architecture libdir.
77
	for d in \
1136 by Teddy Hogeborn
Break some long lines and refine documentation
78
	"/usr/lib/`dpkg-architecture \
79
			-qDEB_HOST_MULTIARCH 2>/dev/null`" \
640 by Teddy Hogeborn
Use architecture libdir.
80
	"`rpm --eval='%{_libdir}' 2>/dev/null`" /usr/lib; do \
81
		if [ -d "$$d" -a "$$d" = "$${d%/}" ]; then \
82
			echo "$(DESTDIR)$$d"; \
83
			break; \
84
		fi; \
85
	done)
177 by Teddy Hogeborn
* Makefile (CONFDIR): Changed to be the same ("/etc/mandos") in both a
86
##
21 by Teddy Hogeborn
* Makefile (CFLAGS): Changed to use $(WARN), $(DEBUG), $(COVERAGE) and
87
1137 by Teddy Hogeborn
Makefile: "pkg-config" is now overrideable by PKG_CONFIG
88
SYSTEMD:=$(DESTDIR)$(shell $(PKG_CONFIG) systemd \
1136 by Teddy Hogeborn
Break some long lines and refine documentation
89
			--variable=systemdsystemunitdir)
1137 by Teddy Hogeborn
Makefile: "pkg-config" is now overrideable by PKG_CONFIG
90
TMPFILES:=$(DESTDIR)$(shell $(PKG_CONFIG) systemd \
91
			--variable=tmpfilesdir)
1159 by Teddy Hogeborn
Use the systemd sysusers.d mechanism, if present
92
SYSUSERS:=$(DESTDIR)$(shell $(PKG_CONFIG) systemd \
93
			--variable=sysusersdir)
638 by Teddy Hogeborn
Add systemd service support for Mandos server.
94
1137 by Teddy Hogeborn
Makefile: "pkg-config" is now overrideable by PKG_CONFIG
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)
918 by Teddy Hogeborn
Use "simply expanded" variables in Makefile
99
GPGME_CFLAGS:=$(shell gpgme-config --cflags; getconf LFS_CFLAGS)
100
GPGME_LIBS:=$(shell gpgme-config --libs; getconf LFS_LIBS; \
317 by Teddy Hogeborn
Use "getconf" to get correct LFS compile and link flags.
101
	getconf LFS_LDFLAGS)
1137 by Teddy Hogeborn
Makefile: "pkg-config" is now overrideable by PKG_CONFIG
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)
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
106
21 by Teddy Hogeborn
* Makefile (CFLAGS): Changed to use $(WARN), $(DEBUG), $(COVERAGE) and
107
# Do not change these two
1146 by Teddy Hogeborn
Client: Always build with LFS enabled
108
CFLAGS+=$(WARN) $(DEBUG) $(FORTIFY) $(COVERAGE) $(OPTIMIZE) \
109
	$(LANGUAGE) $(FEATURES) -DVERSION='"$(version)"'
1112 by Teddy Hogeborn
Makefile: Break long lines
110
LDFLAGS+=-Xlinker --as-needed $(COVERAGE) $(LINK_FORTIFY) $(strip \
111
	) $(foreach flag,$(LINK_FORTIFY_LD),-Xlinker $(flag))
16 by Teddy Hogeborn
* Makefile: Include targets for all binaries.
112
175 by Teddy Hogeborn
* Makefile: Clearly separate "local" install variable settings from
113
# Commands to format a DocBook <refentry> document into a manual page
398 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN, DOCBOOKTOHTML, common.ent, mandos,
114
DOCBOOKTOMAN=$(strip cd $(dir $<); xsltproc --nonet --xinclude \
62 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN): Do not generate AUTHORS section.
115
	--param man.charmap.use.subset		0 \
116
	--param make.year.ranges		1 \
117
	--param make.single.year.ranges		1 \
118
	--param man.output.quietly		1 \
84 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN): Use the local manpages/docbook.xsl file, do
119
	--param man.authors.section.enabled	0 \
595 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN): Don't show errors from "locale".
120
	/usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl \
91 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN): Include all DocBook-to-manpage-related
121
	$(notdir $<); \
595 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN): Don't show errors from "locale".
122
	if locale --all 2>/dev/null | grep --regexp='^en_US\.utf8$$' \
1122 by Teddy Hogeborn
Fix bashisms: Use "command -v" instead of "type"
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)
24.1.25 by Björn Påhlsson
* clients.conf.xml: Renamed to "mandos-clients.conf.xml".
126
398 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN, DOCBOOKTOHTML, common.ent, mandos,
127
DOCBOOKTOHTML=$(strip xsltproc --nonet --xinclude \
216 by Teddy Hogeborn
* Makefile: Add HTML rules for manual pages.
128
	--param make.year.ranges		1 \
129
	--param make.single.year.ranges		1 \
130
	--param man.output.quietly		1 \
131
	--param man.authors.section.enabled	0 \
132
	--param citerefentry.link		1 \
133
	--output $@ \
134
	/usr/share/xml/docbook/stylesheet/nwalsh/xhtml/docbook.xsl \
398 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN, DOCBOOKTOHTML, common.ent, mandos,
135
	$<; $(HTMLPOST) $@)
216 by Teddy Hogeborn
* Makefile: Add HTML rules for manual pages.
136
# Fix citerefentry links
918 by Teddy Hogeborn
Use "simply expanded" variables in Makefile
137
HTMLPOST:=$(SED) --in-place \
235 by Teddy Hogeborn
* INSTALL: Fixed typo.
138
	--expression='s/\(<a class="citerefentry" href="\)\("><span class="citerefentry"><span class="refentrytitle">\)\([^<]*\)\(<\/span>(\)\([^)]*\)\()<\/span><\/a>\)/\1\3.\5\2\3\4\5\6/g'
216 by Teddy Hogeborn
* Makefile: Add HTML rules for manual pages.
139
918 by Teddy Hogeborn
Use "simply expanded" variables in Makefile
140
PLUGINS:=plugins.d/password-prompt plugins.d/mandos-client \
425 by Teddy Hogeborn
* Makefile: Compile and install new "plymouth" plugin.
141
	plugins.d/usplash plugins.d/splashy plugins.d/askpass-fifo \
142
	plugins.d/plymouth
918 by Teddy Hogeborn
Use "simply expanded" variables in Makefile
143
PLUGIN_HELPERS:=plugin-helpers/mandos-client-iprouteadddel
1127 by Teddy Hogeborn
Add dracut(8) support
144
CPROGS:=plugin-runner dracut-module/password-agent $(PLUGINS) \
145
	$(PLUGIN_HELPERS)
918 by Teddy Hogeborn
Use "simply expanded" variables in Makefile
146
PROGS:=mandos mandos-keygen mandos-ctl mandos-monitor $(CPROGS)
147
DOCS:=mandos.8 mandos-keygen.8 mandos-monitor.8 mandos-ctl.8 \
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
148
	mandos.conf.5 mandos-clients.conf.5 plugin-runner.8mandos \
1127 by Teddy Hogeborn
Add dracut(8) support
149
	dracut-module/password-agent.8mandos \
171 by Teddy Hogeborn
Renamed "password-request" to "mandos-client".
150
	plugins.d/mandos-client.8mandos \
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
151
	plugins.d/password-prompt.8mandos plugins.d/usplash.8mandos \
152
	plugins.d/splashy.8mandos plugins.d/askpass-fifo.8mandos \
493 by Teddy Hogeborn
* Makefile (DOCS): Added "intro.8mandos".
153
	plugins.d/plymouth.8mandos intro.8mandos
16 by Teddy Hogeborn
* Makefile: Include targets for all binaries.
154
918 by Teddy Hogeborn
Use "simply expanded" variables in Makefile
155
htmldocs:=$(addsuffix .xhtml,$(DOCS))
216 by Teddy Hogeborn
* Makefile: Add HTML rules for manual pages.
156
918 by Teddy Hogeborn
Use "simply expanded" variables in Makefile
157
objects:=$(addsuffix .o,$(CPROGS))
16 by Teddy Hogeborn
* Makefile: Include targets for all binaries.
158
233 by Teddy Hogeborn
* Makefile (all): Also depend on "mandos.lsm".
159
all: $(PROGS) mandos.lsm
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
160
161
doc: $(DOCS)
24.1.25 by Björn Påhlsson
* clients.conf.xml: Renamed to "mandos-clients.conf.xml".
162
216 by Teddy Hogeborn
* Makefile: Add HTML rules for manual pages.
163
html: $(htmldocs)
164
217 by Teddy Hogeborn
* .bzrignore: Added "man" directory (created by "make install-html").
165
%.5: %.xml common.ent legalnotice.xml
166
	$(DOCBOOKTOMAN)
167
%.5.xhtml: %.xml common.ent legalnotice.xml
168
	$(DOCBOOKTOHTML)
169
170
%.8: %.xml common.ent legalnotice.xml
171
	$(DOCBOOKTOMAN)
172
%.8.xhtml: %.xml common.ent legalnotice.xml
173
	$(DOCBOOKTOHTML)
174
175
%.8mandos: %.xml common.ent legalnotice.xml
176
	$(DOCBOOKTOMAN)
177
%.8mandos.xhtml: %.xml common.ent legalnotice.xml
178
	$(DOCBOOKTOHTML)
179
493 by Teddy Hogeborn
* Makefile (DOCS): Added "intro.8mandos".
180
intro.8mandos: intro.xml common.ent legalnotice.xml
181
	$(DOCBOOKTOMAN)
182
intro.8mandos.xhtml: intro.xml common.ent legalnotice.xml
183
	$(DOCBOOKTOHTML)
184
217 by Teddy Hogeborn
* .bzrignore: Added "man" directory (created by "make install-html").
185
mandos.8: mandos.xml common.ent mandos-options.xml overview.xml \
186
		legalnotice.xml
187
	$(DOCBOOKTOMAN)
188
mandos.8.xhtml: mandos.xml common.ent mandos-options.xml \
189
		overview.xml legalnotice.xml
190
	$(DOCBOOKTOHTML)
191
192
mandos-keygen.8: mandos-keygen.xml common.ent overview.xml \
193
		legalnotice.xml
194
	$(DOCBOOKTOMAN)
195
mandos-keygen.8.xhtml: mandos-keygen.xml common.ent overview.xml \
196
		 legalnotice.xml
197
	$(DOCBOOKTOHTML)
198
430 by teddy at bsnet
* mandos-monitor.xml: New.
199
mandos-monitor.8: mandos-monitor.xml common.ent overview.xml \
200
		legalnotice.xml
201
	$(DOCBOOKTOMAN)
202
mandos-monitor.8.xhtml: mandos-monitor.xml common.ent overview.xml \
203
		 legalnotice.xml
204
	$(DOCBOOKTOHTML)
205
434 by teddy at bsnet
* mandos-ctl.xml: New.
206
mandos-ctl.8: mandos-ctl.xml common.ent overview.xml \
207
		legalnotice.xml
208
	$(DOCBOOKTOMAN)
209
mandos-ctl.8.xhtml: mandos-ctl.xml common.ent overview.xml \
210
		 legalnotice.xml
211
	$(DOCBOOKTOHTML)
212
217 by Teddy Hogeborn
* .bzrignore: Added "man" directory (created by "make install-html").
213
mandos.conf.5: mandos.conf.xml common.ent mandos-options.xml \
214
		legalnotice.xml
215
	$(DOCBOOKTOMAN)
216
mandos.conf.5.xhtml: mandos.conf.xml common.ent mandos-options.xml \
217
		legalnotice.xml
218
	$(DOCBOOKTOHTML)
219
220
plugin-runner.8mandos: plugin-runner.xml common.ent overview.xml \
221
		legalnotice.xml
222
	$(DOCBOOKTOMAN)
223
plugin-runner.8mandos.xhtml: plugin-runner.xml common.ent \
224
		overview.xml legalnotice.xml
216 by Teddy Hogeborn
* Makefile: Add HTML rules for manual pages.
225
	$(DOCBOOKTOHTML)
143 by Teddy Hogeborn
* Makefile (mandos.8): Add dependency on "overview.xml" and
226
1127 by Teddy Hogeborn
Add dracut(8) support
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
171 by Teddy Hogeborn
Renamed "password-request" to "mandos-client".
236
plugins.d/mandos-client.8mandos: plugins.d/mandos-client.xml \
217 by Teddy Hogeborn
* .bzrignore: Added "man" directory (created by "make install-html").
237
					common.ent \
143 by Teddy Hogeborn
* Makefile (mandos.8): Add dependency on "overview.xml" and
238
					mandos-options.xml \
239
					overview.xml legalnotice.xml
91 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN): Include all DocBook-to-manpage-related
240
	$(DOCBOOKTOMAN)
216 by Teddy Hogeborn
* Makefile: Add HTML rules for manual pages.
241
plugins.d/mandos-client.8mandos.xhtml: plugins.d/mandos-client.xml \
217 by Teddy Hogeborn
* .bzrignore: Added "man" directory (created by "make install-html").
242
					common.ent \
216 by Teddy Hogeborn
* Makefile: Add HTML rules for manual pages.
243
					mandos-options.xml \
244
					overview.xml legalnotice.xml
245
	$(DOCBOOKTOHTML)
16 by Teddy Hogeborn
* Makefile: Include targets for all binaries.
246
217 by Teddy Hogeborn
* .bzrignore: Added "man" directory (created by "make install-html").
247
# Update all these files with version number $(version)
248
common.ent: Makefile
398 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN, DOCBOOKTOHTML, common.ent, mandos,
249
	$(strip $(SED) --in-place \
318 by Teddy Hogeborn
* Makefile (common.ent): Update "version" entity correctly.
250
		--expression='s/^\(<!ENTITY version "\)[^"]*">$$/\1$(version)">/' \
398 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN, DOCBOOKTOHTML, common.ent, mandos,
251
		$@)
217 by Teddy Hogeborn
* .bzrignore: Added "man" directory (created by "make install-html").
252
253
mandos: Makefile
398 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN, DOCBOOKTOHTML, common.ent, mandos,
254
	$(strip $(SED) --in-place \
235 by Teddy Hogeborn
* INSTALL: Fixed typo.
255
		--expression='s/^\(version = "\)[^"]*"$$/\1$(version)"/' \
398 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN, DOCBOOKTOHTML, common.ent, mandos,
256
		$@)
217 by Teddy Hogeborn
* .bzrignore: Added "man" directory (created by "make install-html").
257
258
mandos-keygen: Makefile
398 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN, DOCBOOKTOHTML, common.ent, mandos,
259
	$(strip $(SED) --in-place \
235 by Teddy Hogeborn
* INSTALL: Fixed typo.
260
		--expression='s/^\(VERSION="\)[^"]*"$$/\1$(version)"/' \
398 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN, DOCBOOKTOHTML, common.ent, mandos,
261
		$@)
217 by Teddy Hogeborn
* .bzrignore: Added "man" directory (created by "make install-html").
262
24.1.121 by Björn Påhlsson
mandos-ctl: Added support for all client calls
263
mandos-ctl: Makefile
398 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN, DOCBOOKTOHTML, common.ent, mandos,
264
	$(strip $(SED) --in-place \
240 by Teddy Hogeborn
Merge "mandos-list" from belorn.
265
		--expression='s/^\(version = "\)[^"]*"$$/\1$(version)"/' \
398 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN, DOCBOOKTOHTML, common.ent, mandos,
266
		$@)
240 by Teddy Hogeborn
Merge "mandos-list" from belorn.
267
430 by teddy at bsnet
* mandos-monitor.xml: New.
268
mandos-monitor: Makefile
269
	$(strip $(SED) --in-place \
270
		--expression='s/^\(version = "\)[^"]*"$$/\1$(version)"/' \
271
		$@)
272
233 by Teddy Hogeborn
* Makefile (all): Also depend on "mandos.lsm".
273
mandos.lsm: Makefile
398 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN, DOCBOOKTOHTML, common.ent, mandos,
274
	$(strip $(SED) --in-place \
235 by Teddy Hogeborn
* INSTALL: Fixed typo.
275
		--expression='s/^\(Version:\).*/\1\t$(version)/' \
398 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN, DOCBOOKTOHTML, common.ent, mandos,
276
		$@)
277
	$(strip $(SED) --in-place \
235 by Teddy Hogeborn
* INSTALL: Fixed typo.
278
		--expression='s/^\(Entered-date:\).*/\1\t$(shell date --rfc-3339=date --reference=Makefile)/' \
398 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN, DOCBOOKTOHTML, common.ent, mandos,
279
		$@)
280
	$(strip $(SED) --in-place \
255 by Teddy Hogeborn
* Makefile (mandos.lsm): Also update file name using version number.
281
		--expression='s/\(mandos_\)[0-9.]\+\(\.orig\.tar\.gz\)/\1$(version)\2/' \
398 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN, DOCBOOKTOHTML, common.ent, mandos,
282
		$@)
233 by Teddy Hogeborn
* Makefile (all): Also depend on "mandos.lsm".
283
1111 by Teddy Hogeborn
Only use sanitizing options when debugging
284
# Need to add the GnuTLS, Avahi and GPGME libraries
398 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN, DOCBOOKTOHTML, common.ent, mandos,
285
plugins.d/mandos-client: plugins.d/mandos-client.c
1111 by Teddy Hogeborn
Only use sanitizing options when debugging
286
	$(LINK.c) $^ $(GNUTLS_CFLAGS) $(AVAHI_CFLAGS) $(strip\
1114 by Teddy Hogeborn
Stop linking to librt
287
		) $(GPGME_CFLAGS) $(GNUTLS_LIBS) $(strip\
1111 by Teddy Hogeborn
Only use sanitizing options when debugging
288
		) $(AVAHI_LIBS) $(GPGME_LIBS) $(LOADLIBES) $(strip\
289
		) $(LDLIBS) -o $@
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
290
1118 by Teddy Hogeborn
Client: Document requirement of libnl-route library
291
# Need to add the libnl-route library
738.1.4 by Teddy Hogeborn
Add plugin for mandos-client to add and delete local routes.
292
plugin-helpers/mandos-client-iprouteadddel: plugin-helpers/mandos-client-iprouteadddel.c
293
	$(LINK.c) $(LIBNL3_CFLAGS) $^ $(LIBNL3_LIBS) $(strip\
294
		) $(LOADLIBES) $(LDLIBS) -o $@
295
1127 by Teddy Hogeborn
Add dracut(8) support
296
# Need to add the GLib and pthread libraries
297
dracut-module/password-agent: dracut-module/password-agent.c
298
	$(LINK.c) $(GLIB_CFLAGS) $^ $(GLIB_LIBS) -lpthread $(strip\
299
		) $(LOADLIBES) $(LDLIBS) -o $@
300
665 by Teddy Hogeborn
* Makefile (WARN): Re-add "-Wunreachable-code".
301
.PHONY : all doc html clean distclean mostlyclean maintainer-clean \
302
	check run-client run-server install install-html \
303
	install-server install-client-nokey install-client uninstall \
304
	uninstall-server uninstall-client purge purge-server \
305
	purge-client
47 by Teddy Hogeborn
* plugbasedclient.c: Renamed to "mandos-client.c". All users changed.
306
1 by Björn Påhlsson
First working version with: IPv6, GnuTLS, X.509 certificates, DN
307
clean:
217 by Teddy Hogeborn
* .bzrignore: Added "man" directory (created by "make install-html").
308
	-rm --force $(CPROGS) $(objects) $(htmldocs) $(DOCS) core
47 by Teddy Hogeborn
* plugbasedclient.c: Renamed to "mandos-client.c". All users changed.
309
310
distclean: clean
311
mostlyclean: clean
312
maintainer-clean: clean
518.2.2 by Teddy Hogeborn
Directory with persistent state can now be changed with the "statedir"
313
	-rm --force --recursive keydir confdir statedir
47 by Teddy Hogeborn
* plugbasedclient.c: Renamed to "mandos-client.c". All users changed.
314
1116 by Teddy Hogeborn
Debian package change: Add autopkgtest support
315
check: all
47 by Teddy Hogeborn
* plugbasedclient.c: Renamed to "mandos-client.c". All users changed.
316
	./mandos --check
608 by Teddy Hogeborn
* Makefile (check): Also check mandos-ctl.
317
	./mandos-ctl --check
1116 by Teddy Hogeborn
Debian package change: Add autopkgtest support
318
	./mandos-keygen --version
319
	./plugin-runner --version
320
	./plugin-helpers/mandos-client-iprouteadddel --version
1127 by Teddy Hogeborn
Add dracut(8) support
321
	./dracut-module/password-agent --test
47 by Teddy Hogeborn
* plugbasedclient.c: Renamed to "mandos-client.c". All users changed.
322
141 by Teddy Hogeborn
* Makefile (run-client): Add "--config-file=plugin-runner.conf".
323
# Run the client with a local config and key
1136 by Teddy Hogeborn
Break some long lines and refine documentation
324
run-client: all keydir/seckey.txt keydir/pubkey.txt \
325
			keydir/tls-privkey.pem keydir/tls-pubkey.pem
326
	@echo '######################################################'
327
	@echo '# The following error messages are harmless and can  #'
328
	@echo '#  be safely ignored:                                #'
329
	@echo '## From plugin-runner:                               #'
330
	@echo '# setgid: Operation not permitted                    #'
331
	@echo '# setuid: Operation not permitted                    #'
332
	@echo '## From askpass-fifo:                                #'
333
	@echo '# mkfifo: Permission denied                          #'
334
	@echo '## From mandos-client:                               #'
335
	@echo '# Failed to raise privileges: Operation not permi... #'
336
	@echo '# Warning: network hook "*" exited with status *     #'
337
	@echo '# ioctl SIOCSIFFLAGS +IFF_UP: Operation not permi... #'
338
	@echo '# Failed to bring up interface "*": Operation not... #'
339
	@echo '#                                                    #'
340
	@echo '# (The messages are caused by not running as root,   #'
341
	@echo '# but you should NOT run "make run-client" as root   #'
342
	@echo '# unless you also unpacked and compiled Mandos as    #'
343
	@echo '# root, which is also NOT recommended.)              #'
344
	@echo '######################################################'
706 by Teddy Hogeborn
mandos-client: Better error messages.
345
# We set GNOME_KEYRING_CONTROL to block pam_gnome_keyring
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
346
	./plugin-runner --plugin-dir=plugins.d \
738.1.1 by Teddy Hogeborn
Add a plugin helper directory, available to all plugins.
347
		--plugin-helper-dir=plugin-helpers \
141 by Teddy Hogeborn
* Makefile (run-client): Add "--config-file=plugin-runner.conf".
348
		--config-file=plugin-runner.conf \
962 by Teddy Hogeborn
Add support for using raw public keys in TLS (RFC 7250)
349
		--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 \
706 by Teddy Hogeborn
mandos-client: Better error messages.
350
		--env-for=mandos-client:GNOME_KEYRING_CONTROL= \
260 by Teddy Hogeborn
* Makefile (run-client): Pass $(CLIENTARGS) to plugin-runner.
351
		$(CLIENTARGS)
47 by Teddy Hogeborn
* plugbasedclient.c: Renamed to "mandos-client.c". All users changed.
352
104 by Teddy Hogeborn
* Makefile (maintainer-clean): Also remove "confdir".
353
# Used by run-client
962 by Teddy Hogeborn
Add support for using raw public keys in TLS (RFC 7250)
354
keydir/seckey.txt keydir/pubkey.txt keydir/tls-privkey.pem keydir/tls-pubkey.pem: mandos-keygen
104 by Teddy Hogeborn
* Makefile (maintainer-clean): Also remove "confdir".
355
	install --directory keydir
356
	./mandos-keygen --dir keydir --force
357
358
# Run the server with a local config
574 by Teddy Hogeborn
* mandos: White space and other misc. format fixes only.
359
run-server: confdir/mandos.conf confdir/clients.conf statedir
518.2.2 by Teddy Hogeborn
Directory with persistent state can now be changed with the "statedir"
360
	./mandos --debug --no-dbus --configdir=confdir \
361
		--statedir=statedir $(SERVERARGS)
104 by Teddy Hogeborn
* Makefile (maintainer-clean): Also remove "confdir".
362
363
# Used by run-server
364
confdir/mandos.conf: mandos.conf
365
	install --directory confdir
160 by Teddy Hogeborn
* Makefile: Changed to use symbolic instead of octal modes throughout.
366
	install --mode=u=rw,go=r $^ $@
962 by Teddy Hogeborn
Add support for using raw public keys in TLS (RFC 7250)
367
confdir/clients.conf: clients.conf keydir/seckey.txt keydir/tls-pubkey.pem
104 by Teddy Hogeborn
* Makefile (maintainer-clean): Also remove "confdir".
368
	install --directory confdir
166 by Teddy Hogeborn
* Makefile (confdir/clients.conf): Tighten permissions to "u=rw".
369
	install --mode=u=rw $< $@
104 by Teddy Hogeborn
* Makefile (maintainer-clean): Also remove "confdir".
370
# Add a client password
708 by Teddy Hogeborn
mandos-keygen: Generate "checker" option to use SSH fingerprints.
371
	./mandos-keygen --dir keydir --password --no-ssh >> $@
518.2.2 by Teddy Hogeborn
Directory with persistent state can now be changed with the "statedir"
372
statedir:
373
	install --directory statedir
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
374
182 by Teddy Hogeborn
* Makefile (install): Use "install-client-nokey".
375
install: install-server install-client-nokey
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
376
235 by Teddy Hogeborn
* INSTALL: Fixed typo.
377
install-html: html
217 by Teddy Hogeborn
* .bzrignore: Added "man" directory (created by "make install-html").
378
	install --directory $(htmldir)
379
	install --mode=u=rw,go=r --target-directory=$(htmldir) \
380
		$(htmldocs)
216 by Teddy Hogeborn
* Makefile: Add HTML rules for manual pages.
381
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
382
install-server: doc
185 by Teddy Hogeborn
* .bzr-builddeb/default.conf: New.
383
	install --directory $(CONFDIR)
643 by Teddy Hogeborn
Don't require /var/lib/mandos to be installed with user & group.
384
	if install --directory --mode=u=rwx --owner=$(USER) \
385
		--group=$(GROUP) $(STATEDIR); then \
386
		:; \
387
	elif install --directory --mode=u=rwx $(STATEDIR); then \
388
		chown -- $(USER):$(GROUP) $(STATEDIR) || :; \
389
	fi
1136 by Teddy Hogeborn
Break some long lines and refine documentation
390
	if [ "$(TMPFILES)" != "$(DESTDIR)" \
391
			-a -d "$(TMPFILES)" ]; then \
842 by Teddy Hogeborn
Server: Do not set execute bit on tmpfiles.d/mandos.conf
392
		install --mode=u=rw,go=r tmpfiles.d-mandos.conf \
838 by Teddy Hogeborn
Server: New tmpfiles.d file for persistent state directory
393
			$(TMPFILES)/mandos.conf; \
394
	fi
1159 by Teddy Hogeborn
Use the systemd sysusers.d mechanism, if present
395
	if [ "$(SYSUSERS)" != "$(DESTDIR)" \
396
			-a -d "$(SYSUSERS)" ]; then \
397
		install --mode=u=rw,go=r sysusers.d-mandos.conf \
398
			$(SYSUSERS)/mandos.conf; \
399
	fi
160 by Teddy Hogeborn
* Makefile: Changed to use symbolic instead of octal modes throughout.
400
	install --mode=u=rwx,go=rx mandos $(PREFIX)/sbin/mandos
430 by teddy at bsnet
* mandos-monitor.xml: New.
401
	install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
402
		mandos-ctl
403
	install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
404
		mandos-monitor
162 by Teddy Hogeborn
* Makefile (PIDDIR, USER, GROUP): New variables.
405
	install --mode=u=rw,go=r --target-directory=$(CONFDIR) \
406
		mandos.conf
166 by Teddy Hogeborn
* Makefile (confdir/clients.conf): Tighten permissions to "u=rw".
407
	install --mode=u=rw --target-directory=$(CONFDIR) \
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
408
		clients.conf
420.1.1 by teddy at bsnet
* Makefile (install-server): Install dbus-mandos.conf as
409
	install --mode=u=rw,go=r dbus-mandos.conf \
410
		$(DESTDIR)/etc/dbus-1/system.d/mandos.conf
175 by Teddy Hogeborn
* Makefile: Clearly separate "local" install variable settings from
411
	install --mode=u=rwx,go=rx init.d-mandos \
412
		$(DESTDIR)/etc/init.d/mandos
638 by Teddy Hogeborn
Add systemd service support for Mandos server.
413
	if [ "$(SYSTEMD)" != "$(DESTDIR)" -a -d "$(SYSTEMD)" ]; then \
639 by Teddy Hogeborn
Bug fix: Make sure systemd service file is installed.
414
		install --mode=u=rw,go=r mandos.service $(SYSTEMD); \
638 by Teddy Hogeborn
Add systemd service support for Mandos server.
415
	fi
175 by Teddy Hogeborn
* Makefile: Clearly separate "local" install variable settings from
416
	install --mode=u=rw,go=r default-mandos \
417
		$(DESTDIR)/etc/default/mandos
200 by Teddy Hogeborn
* Makefile: Put the init script before avahi-daemon.
418
	if [ -z $(DESTDIR) ]; then \
419
		update-rc.d mandos defaults 25 15;\
420
	fi
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
421
	gzip --best --to-stdout mandos.8 \
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
422
		> $(MANDIR)/man8/mandos.8.gz
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
423
	gzip --best --to-stdout mandos-monitor.8 \
424
		> $(MANDIR)/man8/mandos-monitor.8.gz
425
	gzip --best --to-stdout mandos-ctl.8 \
426
		> $(MANDIR)/man8/mandos-ctl.8.gz
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
427
	gzip --best --to-stdout mandos.conf.5 \
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
428
		> $(MANDIR)/man5/mandos.conf.5.gz
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
429
	gzip --best --to-stdout mandos-clients.conf.5 \
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
430
		> $(MANDIR)/man5/mandos-clients.conf.5.gz
549 by teddy at recompile
* Makefile (install-server): Add intro(8mandos) man page.
431
	gzip --best --to-stdout intro.8mandos \
432
		> $(MANDIR)/man8/intro.8mandos.gz
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
433
182 by Teddy Hogeborn
* Makefile (install): Use "install-client-nokey".
434
install-client-nokey: all doc
640 by Teddy Hogeborn
Use architecture libdir.
435
	install --directory $(LIBDIR)/mandos $(CONFDIR)
185 by Teddy Hogeborn
* .bzr-builddeb/default.conf: New.
436
	install --directory --mode=u=rwx $(KEYDIR) \
738.1.6 by Teddy Hogeborn
Fix minor bugs and typos and add some more debug output.
437
		$(LIBDIR)/mandos/plugins.d \
438
		$(LIBDIR)/mandos/plugin-helpers
1160 by Teddy Hogeborn
Client: Use the systemd sysusers.d mechanism, if present
439
	if [ "$(SYSUSERS)" != "$(DESTDIR)" \
440
			-a -d "$(SYSUSERS)" ]; then \
441
		install --mode=u=rw,go=r sysusers.d-mandos.conf \
442
			$(SYSUSERS)/mandos-client.conf; \
443
	fi
640 by Teddy Hogeborn
Use architecture libdir.
444
	if [ "$(CONFDIR)" != "$(LIBDIR)/mandos" ]; then \
166 by Teddy Hogeborn
* Makefile (confdir/clients.conf): Tighten permissions to "u=rw".
445
		install --mode=u=rwx \
839 by Teddy Hogeborn
Client: Make plugin helper override directory mode u=rwx,go=
446
			--directory "$(CONFDIR)/plugins.d" \
447
			"$(CONFDIR)/plugin-helpers"; \
166 by Teddy Hogeborn
* Makefile (confdir/clients.conf): Tighten permissions to "u=rw".
448
	fi
505.3.17 by Teddy Hogeborn
* Makefile (install-client-nokey): Create network hook directory.
449
	install --mode=u=rwx,go=rx --directory \
450
		"$(CONFDIR)/network-hooks.d"
162 by Teddy Hogeborn
* Makefile (PIDDIR, USER, GROUP): New variables.
451
	install --mode=u=rwx,go=rx \
640 by Teddy Hogeborn
Use architecture libdir.
452
		--target-directory=$(LIBDIR)/mandos plugin-runner
953 by Teddy Hogeborn
Adapt to changes in cryptsetup; use "cryptroot-unlock" program
453
	install --mode=u=rwx,go=rx \
1136 by Teddy Hogeborn
Break some long lines and refine documentation
454
		--target-directory=$(LIBDIR)/mandos \
455
		mandos-to-cryptroot-unlock
160 by Teddy Hogeborn
* Makefile: Changed to use symbolic instead of octal modes throughout.
456
	install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
457
		mandos-keygen
160 by Teddy Hogeborn
* Makefile: Changed to use symbolic instead of octal modes throughout.
458
	install --mode=u=rwx,go=rx \
640 by Teddy Hogeborn
Use architecture libdir.
459
		--target-directory=$(LIBDIR)/mandos/plugins.d \
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
460
		plugins.d/password-prompt
160 by Teddy Hogeborn
* Makefile: Changed to use symbolic instead of octal modes throughout.
461
	install --mode=u=rwxs,go=rx \
640 by Teddy Hogeborn
Use architecture libdir.
462
		--target-directory=$(LIBDIR)/mandos/plugins.d \
171 by Teddy Hogeborn
Renamed "password-request" to "mandos-client".
463
		plugins.d/mandos-client
208 by Teddy Hogeborn
* Makefile (PLUGINS): Added "plugins.d/usplash".
464
	install --mode=u=rwxs,go=rx \
640 by Teddy Hogeborn
Use architecture libdir.
465
		--target-directory=$(LIBDIR)/mandos/plugins.d \
160 by Teddy Hogeborn
* Makefile: Changed to use symbolic instead of octal modes throughout.
466
		plugins.d/usplash
205 by Teddy Hogeborn
* Makefile (PLUGINS, uninstall-client,
467
	install --mode=u=rwxs,go=rx \
640 by Teddy Hogeborn
Use architecture libdir.
468
		--target-directory=$(LIBDIR)/mandos/plugins.d \
205 by Teddy Hogeborn
* Makefile (PLUGINS, uninstall-client,
469
		plugins.d/splashy
214 by Teddy Hogeborn
* Makefile (PLUGINS): Added "plugins.d/askpass-fifo".
470
	install --mode=u=rwxs,go=rx \
640 by Teddy Hogeborn
Use architecture libdir.
471
		--target-directory=$(LIBDIR)/mandos/plugins.d \
214 by Teddy Hogeborn
* Makefile (PLUGINS): Added "plugins.d/askpass-fifo".
472
		plugins.d/askpass-fifo
425 by Teddy Hogeborn
* Makefile: Compile and install new "plymouth" plugin.
473
	install --mode=u=rwxs,go=rx \
640 by Teddy Hogeborn
Use architecture libdir.
474
		--target-directory=$(LIBDIR)/mandos/plugins.d \
425 by Teddy Hogeborn
* Makefile: Compile and install new "plymouth" plugin.
475
		plugins.d/plymouth
836 by Teddy Hogeborn
Client: Fix permissions on plugin helper directory.
476
	install --mode=u=rwx,go=rx \
738.1.6 by Teddy Hogeborn
Fix minor bugs and typos and add some more debug output.
477
		--target-directory=$(LIBDIR)/mandos/plugin-helpers \
478
		plugin-helpers/mandos-client-iprouteadddel
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
479
	install initramfs-tools-hook \
175 by Teddy Hogeborn
* Makefile: Clearly separate "local" install variable settings from
480
		$(INITRAMFSTOOLS)/hooks/mandos
954 by Teddy Hogeborn
Move UMASK setting to more proper place
481
	install --mode=u=rw,go=r initramfs-tools-conf \
482
		$(INITRAMFSTOOLS)/conf.d/mandos-conf
1099 by Teddy Hogeborn
Installation: Fix UMASK even if set by some other initramfs hook
483
	install --mode=u=rw,go=r initramfs-tools-conf-hook \
484
		$(INITRAMFSTOOLS)/conf-hooks.d/zz-mandos
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
485
	install initramfs-tools-script \
302 by Teddy Hogeborn
* Makefile (install-client-nokey): Move "initramfs-tools-script" from
486
		$(INITRAMFSTOOLS)/scripts/init-premount/mandos
953 by Teddy Hogeborn
Adapt to changes in cryptsetup; use "cryptroot-unlock" program
487
	install initramfs-tools-script-stop \
488
		$(INITRAMFSTOOLS)/scripts/local-premount/mandos
1127 by Teddy Hogeborn
Add dracut(8) support
489
	install --directory $(DRACUTMODULE)
490
	install --mode=u=rw,go=r --target-directory=$(DRACUTMODULE) \
491
		dracut-module/ask-password-mandos.path \
492
		dracut-module/ask-password-mandos.service
493
	install --mode=u=rwxs,go=rx \
494
		--target-directory=$(DRACUTMODULE) \
495
		dracut-module/module-setup.sh \
496
		dracut-module/cmdline-mandos.sh \
497
		dracut-module/password-agent
160 by Teddy Hogeborn
* Makefile: Changed to use symbolic instead of octal modes throughout.
498
	install --mode=u=rw,go=r plugin-runner.conf $(CONFDIR)
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
499
	gzip --best --to-stdout mandos-keygen.8 \
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
500
		> $(MANDIR)/man8/mandos-keygen.8.gz
501
	gzip --best --to-stdout plugin-runner.8mandos \
502
		> $(MANDIR)/man8/plugin-runner.8mandos.gz
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
503
	gzip --best --to-stdout plugins.d/mandos-client.8mandos \
504
		> $(MANDIR)/man8/mandos-client.8mandos.gz
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
505
	gzip --best --to-stdout plugins.d/password-prompt.8mandos \
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
506
		> $(MANDIR)/man8/password-prompt.8mandos.gz
225 by Teddy Hogeborn
* Makefile (DOCS): Added "plugins.d/usplash.8mandos" and
507
	gzip --best --to-stdout plugins.d/usplash.8mandos \
508
		> $(MANDIR)/man8/usplash.8mandos.gz
509
	gzip --best --to-stdout plugins.d/splashy.8mandos \
510
		> $(MANDIR)/man8/splashy.8mandos.gz
226 by Teddy Hogeborn
* Makefile (DOCS): Added "plugins.d/askpass-fifo.8mandos".
511
	gzip --best --to-stdout plugins.d/askpass-fifo.8mandos \
512
		> $(MANDIR)/man8/askpass-fifo.8mandos.gz
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
513
	gzip --best --to-stdout plugins.d/plymouth.8mandos \
514
		> $(MANDIR)/man8/plymouth.8mandos.gz
1127 by Teddy Hogeborn
Add dracut(8) support
515
	gzip --best --to-stdout dracut-module/password-agent.8mandos \
516
		> $(MANDIR)/man8/password-agent.8mandos.gz
182 by Teddy Hogeborn
* Makefile (install): Use "install-client-nokey".
517
518
install-client: install-client-nokey
166 by Teddy Hogeborn
* Makefile (confdir/clients.conf): Tighten permissions to "u=rw".
519
# Post-installation stuff
160 by Teddy Hogeborn
* Makefile: Changed to use symbolic instead of octal modes throughout.
520
	-$(PREFIX)/sbin/mandos-keygen --dir "$(KEYDIR)"
1127 by Teddy Hogeborn
Add dracut(8) support
521
	if command -v update-initramfs >/dev/null; then \
522
	    update-initramfs -k all -u; \
523
	elif command -v dracut >/dev/null; then \
1136 by Teddy Hogeborn
Break some long lines and refine documentation
524
	    for initrd in $(DESTDIR)/boot/initr*-$(LINUXVERSION); do \
1127 by Teddy Hogeborn
Add dracut(8) support
525
		if [ -w "$$initrd" ]; then \
526
		    chmod go-r "$$initrd"; \
527
		    dracut --force "$$initrd"; \
528
		fi; \
529
	    done; \
530
	fi
160 by Teddy Hogeborn
* Makefile: Changed to use symbolic instead of octal modes throughout.
531
	echo "Now run mandos-keygen --password --dir $(KEYDIR)"
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
532
533
uninstall: uninstall-server uninstall-client
534
160 by Teddy Hogeborn
* Makefile: Changed to use symbolic instead of octal modes throughout.
535
uninstall-server:
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
536
	-rm --force $(PREFIX)/sbin/mandos \
430 by teddy at bsnet
* mandos-monitor.xml: New.
537
		$(PREFIX)/sbin/mandos-ctl \
538
		$(PREFIX)/sbin/mandos-monitor \
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
539
		$(MANDIR)/man8/mandos.8.gz \
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
540
		$(MANDIR)/man8/mandos-monitor.8.gz \
541
		$(MANDIR)/man8/mandos-ctl.8.gz \
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
542
		$(MANDIR)/man5/mandos.conf.5.gz \
543
		$(MANDIR)/man5/mandos-clients.conf.5.gz
162 by Teddy Hogeborn
* Makefile (PIDDIR, USER, GROUP): New variables.
544
	update-rc.d -f mandos remove
163 by Teddy Hogeborn
* Makefile (PIDDIR, USER, GROUP): Removed.
545
	-rmdir $(CONFDIR)
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
546
547
uninstall-client:
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
548
# Refuse to uninstall client if /etc/crypttab is explicitly configured
549
# to use it.
550
	! grep --regexp='^ *[^ #].*keyscript=[^,=]*/mandos/' \
175 by Teddy Hogeborn
* Makefile: Clearly separate "local" install variable settings from
551
		$(DESTDIR)/etc/crypttab
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
552
	-rm --force $(PREFIX)/sbin/mandos-keygen \
640 by Teddy Hogeborn
Use architecture libdir.
553
		$(LIBDIR)/mandos/plugin-runner \
554
		$(LIBDIR)/mandos/plugins.d/password-prompt \
555
		$(LIBDIR)/mandos/plugins.d/mandos-client \
556
		$(LIBDIR)/mandos/plugins.d/usplash \
557
		$(LIBDIR)/mandos/plugins.d/splashy \
558
		$(LIBDIR)/mandos/plugins.d/askpass-fifo \
559
		$(LIBDIR)/mandos/plugins.d/plymouth \
175 by Teddy Hogeborn
* Makefile: Clearly separate "local" install variable settings from
560
		$(INITRAMFSTOOLS)/hooks/mandos \
561
		$(INITRAMFSTOOLS)/conf-hooks.d/mandos \
302 by Teddy Hogeborn
* Makefile (install-client-nokey): Move "initramfs-tools-script" from
562
		$(INITRAMFSTOOLS)/scripts/init-premount/mandos \
1127 by Teddy Hogeborn
Add dracut(8) support
563
		$(INITRAMFSTOOLS)/scripts/local-premount/mandos \
564
		$(DRACUTMODULE)/ask-password-mandos.path \
565
		$(DRACUTMODULE)/ask-password-mandos.service \
566
		$(DRACUTMODULE)/module-setup.sh \
567
		$(DRACUTMODULE)/cmdline-mandos.sh \
568
		$(DRACUTMODULE)/password-agent \
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
569
		$(MANDIR)/man8/mandos-keygen.8.gz \
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
570
		$(MANDIR)/man8/plugin-runner.8mandos.gz \
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
571
		$(MANDIR)/man8/mandos-client.8mandos.gz
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
572
		$(MANDIR)/man8/password-prompt.8mandos.gz \
225 by Teddy Hogeborn
* Makefile (DOCS): Added "plugins.d/usplash.8mandos" and
573
		$(MANDIR)/man8/usplash.8mandos.gz \
574
		$(MANDIR)/man8/splashy.8mandos.gz \
226 by Teddy Hogeborn
* Makefile (DOCS): Added "plugins.d/askpass-fifo.8mandos".
575
		$(MANDIR)/man8/askpass-fifo.8mandos.gz \
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
576
		$(MANDIR)/man8/plymouth.8mandos.gz \
1127 by Teddy Hogeborn
Add dracut(8) support
577
		$(MANDIR)/man8/password-agent.8mandos.gz \
640 by Teddy Hogeborn
Use architecture libdir.
578
	-rmdir $(LIBDIR)/mandos/plugins.d $(CONFDIR)/plugins.d \
1127 by Teddy Hogeborn
Add dracut(8) support
579
		 $(LIBDIR)/mandos $(CONFDIR) $(KEYDIR) $(DRACUTMODULE)
580
	if command -v update-initramfs >/dev/null; then \
581
	    update-initramfs -k all -u; \
582
	elif command -v dracut >/dev/null; then \
1136 by Teddy Hogeborn
Break some long lines and refine documentation
583
	    for initrd in $(DESTDIR)/boot/initr*-$(LINUXVERSION); do \
1127 by Teddy Hogeborn
Add dracut(8) support
584
		test -w "$$initrd" && dracut --force "$$initrd"; \
585
	    done; \
586
	fi
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
587
588
purge: purge-server purge-client
589
590
purge-server: uninstall-server
162 by Teddy Hogeborn
* Makefile (PIDDIR, USER, GROUP): New variables.
591
	-rm --force $(CONFDIR)/mandos.conf $(CONFDIR)/clients.conf \
420.1.1 by teddy at bsnet
* Makefile (install-server): Install dbus-mandos.conf as
592
		$(DESTDIR)/etc/dbus-1/system.d/mandos.conf
175 by Teddy Hogeborn
* Makefile: Clearly separate "local" install variable settings from
593
		$(DESTDIR)/etc/default/mandos \
594
		$(DESTDIR)/etc/init.d/mandos \
638 by Teddy Hogeborn
Add systemd service support for Mandos server.
595
		$(SYSTEMD)/mandos.service \
637 by Teddy Hogeborn
Fix fallback to /var/run if /run does not exist for Makefile.
596
		$(DESTDIR)/run/mandos.pid \
597
		$(DESTDIR)/var/run/mandos.pid
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
598
	-rmdir $(CONFDIR)
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
599
600
purge-client: uninstall-client
962 by Teddy Hogeborn
Add support for using raw public keys in TLS (RFC 7250)
601
	-shred --remove $(KEYDIR)/seckey.txt $(KEYDIR)/tls-privkey.pem
161 by Teddy Hogeborn
* Makefile (purge-client): Also remove "plugin-runner.conf".
602
	-rm --force $(CONFDIR)/plugin-runner.conf \
962 by Teddy Hogeborn
Add support for using raw public keys in TLS (RFC 7250)
603
		$(KEYDIR)/pubkey.txt $(KEYDIR)/seckey.txt \
604
		$(KEYDIR)/tls-pubkey.txt $(KEYDIR)/tls-privkey.txt
160 by Teddy Hogeborn
* Makefile: Changed to use symbolic instead of octal modes throughout.
605
	-rmdir $(KEYDIR) $(CONFDIR)/plugins.d $(CONFDIR)