/mandos/release

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