/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>.
1240 by Teddy Hogeborn
Use _FORTIFY_SOURCE=3, supported by GNU C Library version 2.33
32
FORTIFY:=-D_FORTIFY_SOURCE=3 -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.140 by Teddy Hogeborn
Version 1.8.16-1
46
version:=1.8.16
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)
1262 by Teddy Hogeborn
Prefer "pkg-config" over the old "gpgme-config" command.
99
GPGME_CFLAGS:=$(shell $(PKG_CONFIG) --cflags-only-I gpgme 2>/dev/null \
100
	|| gpgme-config --cflags; getconf LFS_CFLAGS)
101
GPGME_LIBS:=$(shell $(PKG_CONFIG) --libs gpgme 2>/dev/null \
102
	|| gpgme-config --libs; getconf LFS_LIBS; \
317 by Teddy Hogeborn
Use "getconf" to get correct LFS compile and link flags.
103
	getconf LFS_LDFLAGS)
1137 by Teddy Hogeborn
Makefile: "pkg-config" is now overrideable by PKG_CONFIG
104
LIBNL3_CFLAGS:=$(shell $(PKG_CONFIG) --cflags-only-I libnl-route-3.0)
105
LIBNL3_LIBS:=$(shell $(PKG_CONFIG) --libs libnl-route-3.0)
106
GLIB_CFLAGS:=$(shell $(PKG_CONFIG) --cflags glib-2.0)
107
GLIB_LIBS:=$(shell $(PKG_CONFIG) --libs glib-2.0)
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
108
21 by Teddy Hogeborn
* Makefile (CFLAGS): Changed to use $(WARN), $(DEBUG), $(COVERAGE) and
109
# Do not change these two
1146 by Teddy Hogeborn
Client: Always build with LFS enabled
110
CFLAGS+=$(WARN) $(DEBUG) $(FORTIFY) $(COVERAGE) $(OPTIMIZE) \
111
	$(LANGUAGE) $(FEATURES) -DVERSION='"$(version)"'
1112 by Teddy Hogeborn
Makefile: Break long lines
112
LDFLAGS+=-Xlinker --as-needed $(COVERAGE) $(LINK_FORTIFY) $(strip \
113
	) $(foreach flag,$(LINK_FORTIFY_LD),-Xlinker $(flag))
16 by Teddy Hogeborn
* Makefile: Include targets for all binaries.
114
175 by Teddy Hogeborn
* Makefile: Clearly separate "local" install variable settings from
115
# Commands to format a DocBook <refentry> document into a manual page
398 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN, DOCBOOKTOHTML, common.ent, mandos,
116
DOCBOOKTOMAN=$(strip cd $(dir $<); xsltproc --nonet --xinclude \
62 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN): Do not generate AUTHORS section.
117
	--param man.charmap.use.subset		0 \
118
	--param make.year.ranges		1 \
119
	--param make.single.year.ranges		1 \
120
	--param man.output.quietly		1 \
84 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN): Use the local manpages/docbook.xsl file, do
121
	--param man.authors.section.enabled	0 \
595 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN): Don't show errors from "locale".
122
	/usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl \
91 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN): Include all DocBook-to-manpage-related
123
	$(notdir $<); \
595 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN): Don't show errors from "locale".
124
	if locale --all 2>/dev/null | grep --regexp='^en_US\.utf8$$' \
1122 by Teddy Hogeborn
Fix bashisms: Use "command -v" instead of "type"
125
	&& command -v man >/dev/null; then LANG=en_US.UTF-8 \
126
	MANWIDTH=80 man --warnings --encoding=UTF-8 --local-file \
127
	$(notdir $@); fi >/dev/null)
24.1.25 by Björn Påhlsson
* clients.conf.xml: Renamed to "mandos-clients.conf.xml".
128
398 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN, DOCBOOKTOHTML, common.ent, mandos,
129
DOCBOOKTOHTML=$(strip xsltproc --nonet --xinclude \
216 by Teddy Hogeborn
* Makefile: Add HTML rules for manual pages.
130
	--param make.year.ranges		1 \
131
	--param make.single.year.ranges		1 \
132
	--param man.output.quietly		1 \
133
	--param man.authors.section.enabled	0 \
134
	--param citerefentry.link		1 \
135
	--output $@ \
136
	/usr/share/xml/docbook/stylesheet/nwalsh/xhtml/docbook.xsl \
398 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN, DOCBOOKTOHTML, common.ent, mandos,
137
	$<; $(HTMLPOST) $@)
216 by Teddy Hogeborn
* Makefile: Add HTML rules for manual pages.
138
# Fix citerefentry links
918 by Teddy Hogeborn
Use "simply expanded" variables in Makefile
139
HTMLPOST:=$(SED) --in-place \
235 by Teddy Hogeborn
* INSTALL: Fixed typo.
140
	--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.
141
918 by Teddy Hogeborn
Use "simply expanded" variables in Makefile
142
PLUGINS:=plugins.d/password-prompt plugins.d/mandos-client \
425 by Teddy Hogeborn
* Makefile: Compile and install new "plymouth" plugin.
143
	plugins.d/usplash plugins.d/splashy plugins.d/askpass-fifo \
144
	plugins.d/plymouth
918 by Teddy Hogeborn
Use "simply expanded" variables in Makefile
145
PLUGIN_HELPERS:=plugin-helpers/mandos-client-iprouteadddel
1127 by Teddy Hogeborn
Add dracut(8) support
146
CPROGS:=plugin-runner dracut-module/password-agent $(PLUGINS) \
147
	$(PLUGIN_HELPERS)
918 by Teddy Hogeborn
Use "simply expanded" variables in Makefile
148
PROGS:=mandos mandos-keygen mandos-ctl mandos-monitor $(CPROGS)
149
DOCS:=mandos.8 mandos-keygen.8 mandos-monitor.8 mandos-ctl.8 \
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
150
	mandos.conf.5 mandos-clients.conf.5 plugin-runner.8mandos \
1127 by Teddy Hogeborn
Add dracut(8) support
151
	dracut-module/password-agent.8mandos \
171 by Teddy Hogeborn
Renamed "password-request" to "mandos-client".
152
	plugins.d/mandos-client.8mandos \
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
153
	plugins.d/password-prompt.8mandos plugins.d/usplash.8mandos \
154
	plugins.d/splashy.8mandos plugins.d/askpass-fifo.8mandos \
493 by Teddy Hogeborn
* Makefile (DOCS): Added "intro.8mandos".
155
	plugins.d/plymouth.8mandos intro.8mandos
16 by Teddy Hogeborn
* Makefile: Include targets for all binaries.
156
918 by Teddy Hogeborn
Use "simply expanded" variables in Makefile
157
htmldocs:=$(addsuffix .xhtml,$(DOCS))
216 by Teddy Hogeborn
* Makefile: Add HTML rules for manual pages.
158
918 by Teddy Hogeborn
Use "simply expanded" variables in Makefile
159
objects:=$(addsuffix .o,$(CPROGS))
16 by Teddy Hogeborn
* Makefile: Include targets for all binaries.
160
1189 by Teddy Hogeborn
Makefile: Declare phoniness of targets at each target
161
.PHONY: all
233 by Teddy Hogeborn
* Makefile (all): Also depend on "mandos.lsm".
162
all: $(PROGS) mandos.lsm
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
163
1189 by Teddy Hogeborn
Makefile: Declare phoniness of targets at each target
164
.PHONY: doc
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
165
doc: $(DOCS)
24.1.25 by Björn Påhlsson
* clients.conf.xml: Renamed to "mandos-clients.conf.xml".
166
1189 by Teddy Hogeborn
Makefile: Declare phoniness of targets at each target
167
.PHONY: html
216 by Teddy Hogeborn
* Makefile: Add HTML rules for manual pages.
168
html: $(htmldocs)
169
217 by Teddy Hogeborn
* .bzrignore: Added "man" directory (created by "make install-html").
170
%.5: %.xml common.ent legalnotice.xml
171
	$(DOCBOOKTOMAN)
172
%.5.xhtml: %.xml common.ent legalnotice.xml
173
	$(DOCBOOKTOHTML)
174
175
%.8: %.xml common.ent legalnotice.xml
176
	$(DOCBOOKTOMAN)
177
%.8.xhtml: %.xml common.ent legalnotice.xml
178
	$(DOCBOOKTOHTML)
179
180
%.8mandos: %.xml common.ent legalnotice.xml
181
	$(DOCBOOKTOMAN)
182
%.8mandos.xhtml: %.xml common.ent legalnotice.xml
183
	$(DOCBOOKTOHTML)
184
493 by Teddy Hogeborn
* Makefile (DOCS): Added "intro.8mandos".
185
intro.8mandos: intro.xml common.ent legalnotice.xml
186
	$(DOCBOOKTOMAN)
187
intro.8mandos.xhtml: intro.xml common.ent legalnotice.xml
188
	$(DOCBOOKTOHTML)
189
217 by Teddy Hogeborn
* .bzrignore: Added "man" directory (created by "make install-html").
190
mandos.8: mandos.xml common.ent mandos-options.xml overview.xml \
191
		legalnotice.xml
192
	$(DOCBOOKTOMAN)
193
mandos.8.xhtml: mandos.xml common.ent mandos-options.xml \
194
		overview.xml legalnotice.xml
195
	$(DOCBOOKTOHTML)
196
197
mandos-keygen.8: mandos-keygen.xml common.ent overview.xml \
198
		legalnotice.xml
199
	$(DOCBOOKTOMAN)
200
mandos-keygen.8.xhtml: mandos-keygen.xml common.ent overview.xml \
201
		 legalnotice.xml
202
	$(DOCBOOKTOHTML)
203
430 by teddy at bsnet
* mandos-monitor.xml: New.
204
mandos-monitor.8: mandos-monitor.xml common.ent overview.xml \
205
		legalnotice.xml
206
	$(DOCBOOKTOMAN)
207
mandos-monitor.8.xhtml: mandos-monitor.xml common.ent overview.xml \
208
		 legalnotice.xml
209
	$(DOCBOOKTOHTML)
210
434 by teddy at bsnet
* mandos-ctl.xml: New.
211
mandos-ctl.8: mandos-ctl.xml common.ent overview.xml \
212
		legalnotice.xml
213
	$(DOCBOOKTOMAN)
214
mandos-ctl.8.xhtml: mandos-ctl.xml common.ent overview.xml \
215
		 legalnotice.xml
216
	$(DOCBOOKTOHTML)
217
217 by Teddy Hogeborn
* .bzrignore: Added "man" directory (created by "make install-html").
218
mandos.conf.5: mandos.conf.xml common.ent mandos-options.xml \
219
		legalnotice.xml
220
	$(DOCBOOKTOMAN)
221
mandos.conf.5.xhtml: mandos.conf.xml common.ent mandos-options.xml \
222
		legalnotice.xml
223
	$(DOCBOOKTOHTML)
224
225
plugin-runner.8mandos: plugin-runner.xml common.ent overview.xml \
226
		legalnotice.xml
227
	$(DOCBOOKTOMAN)
228
plugin-runner.8mandos.xhtml: plugin-runner.xml common.ent \
229
		overview.xml legalnotice.xml
216 by Teddy Hogeborn
* Makefile: Add HTML rules for manual pages.
230
	$(DOCBOOKTOHTML)
143 by Teddy Hogeborn
* Makefile (mandos.8): Add dependency on "overview.xml" and
231
1127 by Teddy Hogeborn
Add dracut(8) support
232
dracut-module/password-agent.8mandos: \
233
		dracut-module/password-agent.xml common.ent \
234
		overview.xml legalnotice.xml
235
	$(DOCBOOKTOMAN)
236
dracut-module/password-agent.8mandos.xhtml: \
237
		dracut-module/password-agent.xml common.ent \
238
		overview.xml legalnotice.xml
239
	$(DOCBOOKTOHTML)
240
171 by Teddy Hogeborn
Renamed "password-request" to "mandos-client".
241
plugins.d/mandos-client.8mandos: plugins.d/mandos-client.xml \
217 by Teddy Hogeborn
* .bzrignore: Added "man" directory (created by "make install-html").
242
					common.ent \
143 by Teddy Hogeborn
* Makefile (mandos.8): Add dependency on "overview.xml" and
243
					mandos-options.xml \
244
					overview.xml legalnotice.xml
91 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN): Include all DocBook-to-manpage-related
245
	$(DOCBOOKTOMAN)
216 by Teddy Hogeborn
* Makefile: Add HTML rules for manual pages.
246
plugins.d/mandos-client.8mandos.xhtml: plugins.d/mandos-client.xml \
217 by Teddy Hogeborn
* .bzrignore: Added "man" directory (created by "make install-html").
247
					common.ent \
216 by Teddy Hogeborn
* Makefile: Add HTML rules for manual pages.
248
					mandos-options.xml \
249
					overview.xml legalnotice.xml
250
	$(DOCBOOKTOHTML)
16 by Teddy Hogeborn
* Makefile: Include targets for all binaries.
251
217 by Teddy Hogeborn
* .bzrignore: Added "man" directory (created by "make install-html").
252
# Update all these files with version number $(version)
253
common.ent: Makefile
398 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN, DOCBOOKTOHTML, common.ent, mandos,
254
	$(strip $(SED) --in-place \
318 by Teddy Hogeborn
* Makefile (common.ent): Update "version" entity correctly.
255
		--expression='s/^\(<!ENTITY 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: 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
263
mandos-keygen: Makefile
398 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN, DOCBOOKTOHTML, common.ent, mandos,
264
	$(strip $(SED) --in-place \
235 by Teddy Hogeborn
* INSTALL: Fixed typo.
265
		--expression='s/^\(VERSION="\)[^"]*"$$/\1$(version)"/' \
398 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN, DOCBOOKTOHTML, common.ent, mandos,
266
		$@)
217 by Teddy Hogeborn
* .bzrignore: Added "man" directory (created by "make install-html").
267
24.1.121 by Björn Påhlsson
mandos-ctl: Added support for all client calls
268
mandos-ctl: Makefile
398 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN, DOCBOOKTOHTML, common.ent, mandos,
269
	$(strip $(SED) --in-place \
240 by Teddy Hogeborn
Merge "mandos-list" from belorn.
270
		--expression='s/^\(version = "\)[^"]*"$$/\1$(version)"/' \
398 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN, DOCBOOKTOHTML, common.ent, mandos,
271
		$@)
240 by Teddy Hogeborn
Merge "mandos-list" from belorn.
272
430 by teddy at bsnet
* mandos-monitor.xml: New.
273
mandos-monitor: Makefile
274
	$(strip $(SED) --in-place \
275
		--expression='s/^\(version = "\)[^"]*"$$/\1$(version)"/' \
276
		$@)
277
233 by Teddy Hogeborn
* Makefile (all): Also depend on "mandos.lsm".
278
mandos.lsm: Makefile
398 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN, DOCBOOKTOHTML, common.ent, mandos,
279
	$(strip $(SED) --in-place \
235 by Teddy Hogeborn
* INSTALL: Fixed typo.
280
		--expression='s/^\(Version:\).*/\1\t$(version)/' \
398 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN, DOCBOOKTOHTML, common.ent, mandos,
281
		$@)
282
	$(strip $(SED) --in-place \
235 by Teddy Hogeborn
* INSTALL: Fixed typo.
283
		--expression='s/^\(Entered-date:\).*/\1\t$(shell date --rfc-3339=date --reference=Makefile)/' \
398 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN, DOCBOOKTOHTML, common.ent, mandos,
284
		$@)
285
	$(strip $(SED) --in-place \
255 by Teddy Hogeborn
* Makefile (mandos.lsm): Also update file name using version number.
286
		--expression='s/\(mandos_\)[0-9.]\+\(\.orig\.tar\.gz\)/\1$(version)\2/' \
398 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN, DOCBOOKTOHTML, common.ent, mandos,
287
		$@)
233 by Teddy Hogeborn
* Makefile (all): Also depend on "mandos.lsm".
288
1111 by Teddy Hogeborn
Only use sanitizing options when debugging
289
# Need to add the GnuTLS, Avahi and GPGME libraries
1188 by Teddy Hogeborn
Makefile: Use target-specific variables
290
plugins.d/mandos-client: CFLAGS += $(GNUTLS_CFLAGS) $(strip \
291
	) $(AVAHI_CFLAGS) $(GPGME_CFLAGS)
292
plugins.d/mandos-client: LDLIBS += $(GNUTLS_LIBS) $(strip \
293
	) $(AVAHI_LIBS) $(GPGME_LIBS)
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
294
1118 by Teddy Hogeborn
Client: Document requirement of libnl-route library
295
# Need to add the libnl-route library
1188 by Teddy Hogeborn
Makefile: Use target-specific variables
296
plugin-helpers/mandos-client-iprouteadddel: CFLAGS += $(LIBNL3_CFLAGS)
297
plugin-helpers/mandos-client-iprouteadddel: LDLIBS += $(LIBNL3_LIBS)
738.1.4 by Teddy Hogeborn
Add plugin for mandos-client to add and delete local routes.
298
1127 by Teddy Hogeborn
Add dracut(8) support
299
# Need to add the GLib and pthread libraries
1188 by Teddy Hogeborn
Makefile: Use target-specific variables
300
dracut-module/password-agent: CFLAGS += $(GLIB_CFLAGS)
1245 by Teddy Hogeborn
Makefile: Add comment about phase out of -lpthread
301
# Note: -lpthread is unnecessary with the GNU C library 2.34 or later
1188 by Teddy Hogeborn
Makefile: Use target-specific variables
302
dracut-module/password-agent: LDLIBS += $(GLIB_LIBS) -lpthread
1127 by Teddy Hogeborn
Add dracut(8) support
303
1189 by Teddy Hogeborn
Makefile: Declare phoniness of targets at each target
304
.PHONY: clean
1 by Björn Påhlsson
First working version with: IPv6, GnuTLS, X.509 certificates, DN
305
clean:
217 by Teddy Hogeborn
* .bzrignore: Added "man" directory (created by "make install-html").
306
	-rm --force $(CPROGS) $(objects) $(htmldocs) $(DOCS) core
47 by Teddy Hogeborn
* plugbasedclient.c: Renamed to "mandos-client.c". All users changed.
307
1189 by Teddy Hogeborn
Makefile: Declare phoniness of targets at each target
308
.PHONY: distclean
47 by Teddy Hogeborn
* plugbasedclient.c: Renamed to "mandos-client.c". All users changed.
309
distclean: clean
1189 by Teddy Hogeborn
Makefile: Declare phoniness of targets at each target
310
.PHONY: mostlyclean
47 by Teddy Hogeborn
* plugbasedclient.c: Renamed to "mandos-client.c". All users changed.
311
mostlyclean: clean
1189 by Teddy Hogeborn
Makefile: Declare phoniness of targets at each target
312
.PHONY: maintainer-clean
47 by Teddy Hogeborn
* plugbasedclient.c: Renamed to "mandos-client.c". All users changed.
313
maintainer-clean: clean
518.2.2 by Teddy Hogeborn
Directory with persistent state can now be changed with the "statedir"
314
	-rm --force --recursive keydir confdir statedir
47 by Teddy Hogeborn
* plugbasedclient.c: Renamed to "mandos-client.c". All users changed.
315
1189 by Teddy Hogeborn
Makefile: Declare phoniness of targets at each target
316
.PHONY: check
1116 by Teddy Hogeborn
Debian package change: Add autopkgtest support
317
check: all
47 by Teddy Hogeborn
* plugbasedclient.c: Renamed to "mandos-client.c". All users changed.
318
	./mandos --check
608 by Teddy Hogeborn
* Makefile (check): Also check mandos-ctl.
319
	./mandos-ctl --check
1116 by Teddy Hogeborn
Debian package change: Add autopkgtest support
320
	./mandos-keygen --version
321
	./plugin-runner --version
322
	./plugin-helpers/mandos-client-iprouteadddel --version
1127 by Teddy Hogeborn
Add dracut(8) support
323
	./dracut-module/password-agent --test
47 by Teddy Hogeborn
* plugbasedclient.c: Renamed to "mandos-client.c". All users changed.
324
141 by Teddy Hogeborn
* Makefile (run-client): Add "--config-file=plugin-runner.conf".
325
# Run the client with a local config and key
1189 by Teddy Hogeborn
Makefile: Declare phoniness of targets at each target
326
.PHONY: run-client
1136 by Teddy Hogeborn
Break some long lines and refine documentation
327
run-client: all keydir/seckey.txt keydir/pubkey.txt \
328
			keydir/tls-privkey.pem keydir/tls-pubkey.pem
329
	@echo '######################################################'
330
	@echo '# The following error messages are harmless and can  #'
331
	@echo '#  be safely ignored:                                #'
332
	@echo '## From plugin-runner:                               #'
333
	@echo '# setgid: Operation not permitted                    #'
334
	@echo '# setuid: Operation not permitted                    #'
335
	@echo '## From askpass-fifo:                                #'
336
	@echo '# mkfifo: Permission denied                          #'
337
	@echo '## From mandos-client:                               #'
338
	@echo '# Failed to raise privileges: Operation not permi... #'
339
	@echo '# Warning: network hook "*" exited with status *     #'
340
	@echo '# ioctl SIOCSIFFLAGS +IFF_UP: Operation not permi... #'
341
	@echo '# Failed to bring up interface "*": Operation not... #'
342
	@echo '#                                                    #'
343
	@echo '# (The messages are caused by not running as root,   #'
344
	@echo '# but you should NOT run "make run-client" as root   #'
345
	@echo '# unless you also unpacked and compiled Mandos as    #'
346
	@echo '# root, which is also NOT recommended.)              #'
347
	@echo '######################################################'
706 by Teddy Hogeborn
mandos-client: Better error messages.
348
# We set GNOME_KEYRING_CONTROL to block pam_gnome_keyring
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
349
	./plugin-runner --plugin-dir=plugins.d \
738.1.1 by Teddy Hogeborn
Add a plugin helper directory, available to all plugins.
350
		--plugin-helper-dir=plugin-helpers \
141 by Teddy Hogeborn
* Makefile (run-client): Add "--config-file=plugin-runner.conf".
351
		--config-file=plugin-runner.conf \
962 by Teddy Hogeborn
Add support for using raw public keys in TLS (RFC 7250)
352
		--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.
353
		--env-for=mandos-client:GNOME_KEYRING_CONTROL= \
260 by Teddy Hogeborn
* Makefile (run-client): Pass $(CLIENTARGS) to plugin-runner.
354
		$(CLIENTARGS)
47 by Teddy Hogeborn
* plugbasedclient.c: Renamed to "mandos-client.c". All users changed.
355
104 by Teddy Hogeborn
* Makefile (maintainer-clean): Also remove "confdir".
356
# Used by run-client
962 by Teddy Hogeborn
Add support for using raw public keys in TLS (RFC 7250)
357
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".
358
	install --directory keydir
359
	./mandos-keygen --dir keydir --force
1207 by teddy at recompile
Makefile: fix targets run-server & run-client with GnuTLS 3.5.9
360
	if ! [ -e keydir/tls-privkey.pem ]; then \
361
		install --mode=u=rw /dev/null keydir/tls-privkey.pem; \
362
	fi
363
	if ! [ -e keydir/tls-pubkey.pem ]; then \
364
		install --mode=u=rw /dev/null keydir/tls-pubkey.pem; \
365
	fi
104 by Teddy Hogeborn
* Makefile (maintainer-clean): Also remove "confdir".
366
367
# Run the server with a local config
1189 by Teddy Hogeborn
Makefile: Declare phoniness of targets at each target
368
.PHONY: run-server
574 by Teddy Hogeborn
* mandos: White space and other misc. format fixes only.
369
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"
370
	./mandos --debug --no-dbus --configdir=confdir \
371
		--statedir=statedir $(SERVERARGS)
104 by Teddy Hogeborn
* Makefile (maintainer-clean): Also remove "confdir".
372
373
# Used by run-server
374
confdir/mandos.conf: mandos.conf
375
	install --directory confdir
160 by Teddy Hogeborn
* Makefile: Changed to use symbolic instead of octal modes throughout.
376
	install --mode=u=rw,go=r $^ $@
962 by Teddy Hogeborn
Add support for using raw public keys in TLS (RFC 7250)
377
confdir/clients.conf: clients.conf keydir/seckey.txt keydir/tls-pubkey.pem
104 by Teddy Hogeborn
* Makefile (maintainer-clean): Also remove "confdir".
378
	install --directory confdir
166 by Teddy Hogeborn
* Makefile (confdir/clients.conf): Tighten permissions to "u=rw".
379
	install --mode=u=rw $< $@
104 by Teddy Hogeborn
* Makefile (maintainer-clean): Also remove "confdir".
380
# Add a client password
708 by Teddy Hogeborn
mandos-keygen: Generate "checker" option to use SSH fingerprints.
381
	./mandos-keygen --dir keydir --password --no-ssh >> $@
518.2.2 by Teddy Hogeborn
Directory with persistent state can now be changed with the "statedir"
382
statedir:
383
	install --directory statedir
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
384
1189 by Teddy Hogeborn
Makefile: Declare phoniness of targets at each target
385
.PHONY: install
182 by Teddy Hogeborn
* Makefile (install): Use "install-client-nokey".
386
install: install-server install-client-nokey
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
387
1189 by Teddy Hogeborn
Makefile: Declare phoniness of targets at each target
388
.PHONY: install-html
235 by Teddy Hogeborn
* INSTALL: Fixed typo.
389
install-html: html
217 by Teddy Hogeborn
* .bzrignore: Added "man" directory (created by "make install-html").
390
	install --directory $(htmldir)
391
	install --mode=u=rw,go=r --target-directory=$(htmldir) \
392
		$(htmldocs)
216 by Teddy Hogeborn
* Makefile: Add HTML rules for manual pages.
393
1189 by Teddy Hogeborn
Makefile: Declare phoniness of targets at each target
394
.PHONY: install-server
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
395
install-server: doc
185 by Teddy Hogeborn
* .bzr-builddeb/default.conf: New.
396
	install --directory $(CONFDIR)
643 by Teddy Hogeborn
Don't require /var/lib/mandos to be installed with user & group.
397
	if install --directory --mode=u=rwx --owner=$(USER) \
398
		--group=$(GROUP) $(STATEDIR); then \
399
		:; \
400
	elif install --directory --mode=u=rwx $(STATEDIR); then \
401
		chown -- $(USER):$(GROUP) $(STATEDIR) || :; \
402
	fi
1136 by Teddy Hogeborn
Break some long lines and refine documentation
403
	if [ "$(TMPFILES)" != "$(DESTDIR)" \
404
			-a -d "$(TMPFILES)" ]; then \
842 by Teddy Hogeborn
Server: Do not set execute bit on tmpfiles.d/mandos.conf
405
		install --mode=u=rw,go=r tmpfiles.d-mandos.conf \
838 by Teddy Hogeborn
Server: New tmpfiles.d file for persistent state directory
406
			$(TMPFILES)/mandos.conf; \
407
	fi
1159 by Teddy Hogeborn
Use the systemd sysusers.d mechanism, if present
408
	if [ "$(SYSUSERS)" != "$(DESTDIR)" \
409
			-a -d "$(SYSUSERS)" ]; then \
410
		install --mode=u=rw,go=r sysusers.d-mandos.conf \
411
			$(SYSUSERS)/mandos.conf; \
412
	fi
160 by Teddy Hogeborn
* Makefile: Changed to use symbolic instead of octal modes throughout.
413
	install --mode=u=rwx,go=rx mandos $(PREFIX)/sbin/mandos
430 by teddy at bsnet
* mandos-monitor.xml: New.
414
	install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
415
		mandos-ctl
416
	install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
417
		mandos-monitor
162 by Teddy Hogeborn
* Makefile (PIDDIR, USER, GROUP): New variables.
418
	install --mode=u=rw,go=r --target-directory=$(CONFDIR) \
419
		mandos.conf
166 by Teddy Hogeborn
* Makefile (confdir/clients.conf): Tighten permissions to "u=rw".
420
	install --mode=u=rw --target-directory=$(CONFDIR) \
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
421
		clients.conf
420.1.1 by teddy at bsnet
* Makefile (install-server): Install dbus-mandos.conf as
422
	install --mode=u=rw,go=r dbus-mandos.conf \
423
		$(DESTDIR)/etc/dbus-1/system.d/mandos.conf
175 by Teddy Hogeborn
* Makefile: Clearly separate "local" install variable settings from
424
	install --mode=u=rwx,go=rx init.d-mandos \
425
		$(DESTDIR)/etc/init.d/mandos
638 by Teddy Hogeborn
Add systemd service support for Mandos server.
426
	if [ "$(SYSTEMD)" != "$(DESTDIR)" -a -d "$(SYSTEMD)" ]; then \
639 by Teddy Hogeborn
Bug fix: Make sure systemd service file is installed.
427
		install --mode=u=rw,go=r mandos.service $(SYSTEMD); \
638 by Teddy Hogeborn
Add systemd service support for Mandos server.
428
	fi
175 by Teddy Hogeborn
* Makefile: Clearly separate "local" install variable settings from
429
	install --mode=u=rw,go=r default-mandos \
430
		$(DESTDIR)/etc/default/mandos
200 by Teddy Hogeborn
* Makefile: Put the init script before avahi-daemon.
431
	if [ -z $(DESTDIR) ]; then \
432
		update-rc.d mandos defaults 25 15;\
433
	fi
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
434
	gzip --best --to-stdout mandos.8 \
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
435
		> $(MANDIR)/man8/mandos.8.gz
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
436
	gzip --best --to-stdout mandos-monitor.8 \
437
		> $(MANDIR)/man8/mandos-monitor.8.gz
438
	gzip --best --to-stdout mandos-ctl.8 \
439
		> $(MANDIR)/man8/mandos-ctl.8.gz
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
440
	gzip --best --to-stdout mandos.conf.5 \
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
441
		> $(MANDIR)/man5/mandos.conf.5.gz
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
442
	gzip --best --to-stdout mandos-clients.conf.5 \
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
443
		> $(MANDIR)/man5/mandos-clients.conf.5.gz
549 by teddy at recompile
* Makefile (install-server): Add intro(8mandos) man page.
444
	gzip --best --to-stdout intro.8mandos \
445
		> $(MANDIR)/man8/intro.8mandos.gz
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
446
1189 by Teddy Hogeborn
Makefile: Declare phoniness of targets at each target
447
.PHONY: install-client-nokey
182 by Teddy Hogeborn
* Makefile (install): Use "install-client-nokey".
448
install-client-nokey: all doc
640 by Teddy Hogeborn
Use architecture libdir.
449
	install --directory $(LIBDIR)/mandos $(CONFDIR)
185 by Teddy Hogeborn
* .bzr-builddeb/default.conf: New.
450
	install --directory --mode=u=rwx $(KEYDIR) \
738.1.6 by Teddy Hogeborn
Fix minor bugs and typos and add some more debug output.
451
		$(LIBDIR)/mandos/plugins.d \
452
		$(LIBDIR)/mandos/plugin-helpers
1160 by Teddy Hogeborn
Client: Use the systemd sysusers.d mechanism, if present
453
	if [ "$(SYSUSERS)" != "$(DESTDIR)" \
454
			-a -d "$(SYSUSERS)" ]; then \
455
		install --mode=u=rw,go=r sysusers.d-mandos.conf \
456
			$(SYSUSERS)/mandos-client.conf; \
457
	fi
640 by Teddy Hogeborn
Use architecture libdir.
458
	if [ "$(CONFDIR)" != "$(LIBDIR)/mandos" ]; then \
166 by Teddy Hogeborn
* Makefile (confdir/clients.conf): Tighten permissions to "u=rw".
459
		install --mode=u=rwx \
839 by Teddy Hogeborn
Client: Make plugin helper override directory mode u=rwx,go=
460
			--directory "$(CONFDIR)/plugins.d" \
461
			"$(CONFDIR)/plugin-helpers"; \
166 by Teddy Hogeborn
* Makefile (confdir/clients.conf): Tighten permissions to "u=rw".
462
	fi
505.3.17 by Teddy Hogeborn
* Makefile (install-client-nokey): Create network hook directory.
463
	install --mode=u=rwx,go=rx --directory \
464
		"$(CONFDIR)/network-hooks.d"
162 by Teddy Hogeborn
* Makefile (PIDDIR, USER, GROUP): New variables.
465
	install --mode=u=rwx,go=rx \
640 by Teddy Hogeborn
Use architecture libdir.
466
		--target-directory=$(LIBDIR)/mandos plugin-runner
953 by Teddy Hogeborn
Adapt to changes in cryptsetup; use "cryptroot-unlock" program
467
	install --mode=u=rwx,go=rx \
1136 by Teddy Hogeborn
Break some long lines and refine documentation
468
		--target-directory=$(LIBDIR)/mandos \
469
		mandos-to-cryptroot-unlock
160 by Teddy Hogeborn
* Makefile: Changed to use symbolic instead of octal modes throughout.
470
	install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
471
		mandos-keygen
160 by Teddy Hogeborn
* Makefile: Changed to use symbolic instead of octal modes throughout.
472
	install --mode=u=rwx,go=rx \
640 by Teddy Hogeborn
Use architecture libdir.
473
		--target-directory=$(LIBDIR)/mandos/plugins.d \
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
474
		plugins.d/password-prompt
160 by Teddy Hogeborn
* Makefile: Changed to use symbolic instead of octal modes throughout.
475
	install --mode=u=rwxs,go=rx \
640 by Teddy Hogeborn
Use architecture libdir.
476
		--target-directory=$(LIBDIR)/mandos/plugins.d \
171 by Teddy Hogeborn
Renamed "password-request" to "mandos-client".
477
		plugins.d/mandos-client
208 by Teddy Hogeborn
* Makefile (PLUGINS): Added "plugins.d/usplash".
478
	install --mode=u=rwxs,go=rx \
640 by Teddy Hogeborn
Use architecture libdir.
479
		--target-directory=$(LIBDIR)/mandos/plugins.d \
160 by Teddy Hogeborn
* Makefile: Changed to use symbolic instead of octal modes throughout.
480
		plugins.d/usplash
205 by Teddy Hogeborn
* Makefile (PLUGINS, uninstall-client,
481
	install --mode=u=rwxs,go=rx \
640 by Teddy Hogeborn
Use architecture libdir.
482
		--target-directory=$(LIBDIR)/mandos/plugins.d \
205 by Teddy Hogeborn
* Makefile (PLUGINS, uninstall-client,
483
		plugins.d/splashy
214 by Teddy Hogeborn
* Makefile (PLUGINS): Added "plugins.d/askpass-fifo".
484
	install --mode=u=rwxs,go=rx \
640 by Teddy Hogeborn
Use architecture libdir.
485
		--target-directory=$(LIBDIR)/mandos/plugins.d \
214 by Teddy Hogeborn
* Makefile (PLUGINS): Added "plugins.d/askpass-fifo".
486
		plugins.d/askpass-fifo
425 by Teddy Hogeborn
* Makefile: Compile and install new "plymouth" plugin.
487
	install --mode=u=rwxs,go=rx \
640 by Teddy Hogeborn
Use architecture libdir.
488
		--target-directory=$(LIBDIR)/mandos/plugins.d \
425 by Teddy Hogeborn
* Makefile: Compile and install new "plymouth" plugin.
489
		plugins.d/plymouth
836 by Teddy Hogeborn
Client: Fix permissions on plugin helper directory.
490
	install --mode=u=rwx,go=rx \
738.1.6 by Teddy Hogeborn
Fix minor bugs and typos and add some more debug output.
491
		--target-directory=$(LIBDIR)/mandos/plugin-helpers \
492
		plugin-helpers/mandos-client-iprouteadddel
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
493
	install initramfs-tools-hook \
175 by Teddy Hogeborn
* Makefile: Clearly separate "local" install variable settings from
494
		$(INITRAMFSTOOLS)/hooks/mandos
954 by Teddy Hogeborn
Move UMASK setting to more proper place
495
	install --mode=u=rw,go=r initramfs-tools-conf \
496
		$(INITRAMFSTOOLS)/conf.d/mandos-conf
1099 by Teddy Hogeborn
Installation: Fix UMASK even if set by some other initramfs hook
497
	install --mode=u=rw,go=r initramfs-tools-conf-hook \
498
		$(INITRAMFSTOOLS)/conf-hooks.d/zz-mandos
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
499
	install initramfs-tools-script \
302 by Teddy Hogeborn
* Makefile (install-client-nokey): Move "initramfs-tools-script" from
500
		$(INITRAMFSTOOLS)/scripts/init-premount/mandos
953 by Teddy Hogeborn
Adapt to changes in cryptsetup; use "cryptroot-unlock" program
501
	install initramfs-tools-script-stop \
502
		$(INITRAMFSTOOLS)/scripts/local-premount/mandos
1127 by Teddy Hogeborn
Add dracut(8) support
503
	install --directory $(DRACUTMODULE)
504
	install --mode=u=rw,go=r --target-directory=$(DRACUTMODULE) \
505
		dracut-module/ask-password-mandos.path \
506
		dracut-module/ask-password-mandos.service
507
	install --mode=u=rwxs,go=rx \
508
		--target-directory=$(DRACUTMODULE) \
509
		dracut-module/module-setup.sh \
510
		dracut-module/cmdline-mandos.sh \
511
		dracut-module/password-agent
160 by Teddy Hogeborn
* Makefile: Changed to use symbolic instead of octal modes throughout.
512
	install --mode=u=rw,go=r plugin-runner.conf $(CONFDIR)
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
513
	gzip --best --to-stdout mandos-keygen.8 \
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
514
		> $(MANDIR)/man8/mandos-keygen.8.gz
515
	gzip --best --to-stdout plugin-runner.8mandos \
516
		> $(MANDIR)/man8/plugin-runner.8mandos.gz
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
517
	gzip --best --to-stdout plugins.d/mandos-client.8mandos \
518
		> $(MANDIR)/man8/mandos-client.8mandos.gz
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
519
	gzip --best --to-stdout plugins.d/password-prompt.8mandos \
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
520
		> $(MANDIR)/man8/password-prompt.8mandos.gz
225 by Teddy Hogeborn
* Makefile (DOCS): Added "plugins.d/usplash.8mandos" and
521
	gzip --best --to-stdout plugins.d/usplash.8mandos \
522
		> $(MANDIR)/man8/usplash.8mandos.gz
523
	gzip --best --to-stdout plugins.d/splashy.8mandos \
524
		> $(MANDIR)/man8/splashy.8mandos.gz
226 by Teddy Hogeborn
* Makefile (DOCS): Added "plugins.d/askpass-fifo.8mandos".
525
	gzip --best --to-stdout plugins.d/askpass-fifo.8mandos \
526
		> $(MANDIR)/man8/askpass-fifo.8mandos.gz
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
527
	gzip --best --to-stdout plugins.d/plymouth.8mandos \
528
		> $(MANDIR)/man8/plymouth.8mandos.gz
1127 by Teddy Hogeborn
Add dracut(8) support
529
	gzip --best --to-stdout dracut-module/password-agent.8mandos \
530
		> $(MANDIR)/man8/password-agent.8mandos.gz
182 by Teddy Hogeborn
* Makefile (install): Use "install-client-nokey".
531
1189 by Teddy Hogeborn
Makefile: Declare phoniness of targets at each target
532
.PHONY: install-client
182 by Teddy Hogeborn
* Makefile (install): Use "install-client-nokey".
533
install-client: install-client-nokey
166 by Teddy Hogeborn
* Makefile (confdir/clients.conf): Tighten permissions to "u=rw".
534
# Post-installation stuff
160 by Teddy Hogeborn
* Makefile: Changed to use symbolic instead of octal modes throughout.
535
	-$(PREFIX)/sbin/mandos-keygen --dir "$(KEYDIR)"
1127 by Teddy Hogeborn
Add dracut(8) support
536
	if command -v update-initramfs >/dev/null; then \
537
	    update-initramfs -k all -u; \
538
	elif command -v dracut >/dev/null; then \
1136 by Teddy Hogeborn
Break some long lines and refine documentation
539
	    for initrd in $(DESTDIR)/boot/initr*-$(LINUXVERSION); do \
1127 by Teddy Hogeborn
Add dracut(8) support
540
		if [ -w "$$initrd" ]; then \
541
		    chmod go-r "$$initrd"; \
542
		    dracut --force "$$initrd"; \
543
		fi; \
544
	    done; \
545
	fi
160 by Teddy Hogeborn
* Makefile: Changed to use symbolic instead of octal modes throughout.
546
	echo "Now run mandos-keygen --password --dir $(KEYDIR)"
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
547
1189 by Teddy Hogeborn
Makefile: Declare phoniness of targets at each target
548
.PHONY: uninstall
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
549
uninstall: uninstall-server uninstall-client
550
1189 by Teddy Hogeborn
Makefile: Declare phoniness of targets at each target
551
.PHONY: uninstall-server
160 by Teddy Hogeborn
* Makefile: Changed to use symbolic instead of octal modes throughout.
552
uninstall-server:
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
553
	-rm --force $(PREFIX)/sbin/mandos \
430 by teddy at bsnet
* mandos-monitor.xml: New.
554
		$(PREFIX)/sbin/mandos-ctl \
555
		$(PREFIX)/sbin/mandos-monitor \
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
556
		$(MANDIR)/man8/mandos.8.gz \
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
557
		$(MANDIR)/man8/mandos-monitor.8.gz \
558
		$(MANDIR)/man8/mandos-ctl.8.gz \
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
559
		$(MANDIR)/man5/mandos.conf.5.gz \
560
		$(MANDIR)/man5/mandos-clients.conf.5.gz
162 by Teddy Hogeborn
* Makefile (PIDDIR, USER, GROUP): New variables.
561
	update-rc.d -f mandos remove
163 by Teddy Hogeborn
* Makefile (PIDDIR, USER, GROUP): Removed.
562
	-rmdir $(CONFDIR)
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
563
1189 by Teddy Hogeborn
Makefile: Declare phoniness of targets at each target
564
.PHONY: uninstall-client
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
565
uninstall-client:
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
566
# Refuse to uninstall client if /etc/crypttab is explicitly configured
567
# to use it.
568
	! grep --regexp='^ *[^ #].*keyscript=[^,=]*/mandos/' \
175 by Teddy Hogeborn
* Makefile: Clearly separate "local" install variable settings from
569
		$(DESTDIR)/etc/crypttab
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
570
	-rm --force $(PREFIX)/sbin/mandos-keygen \
640 by Teddy Hogeborn
Use architecture libdir.
571
		$(LIBDIR)/mandos/plugin-runner \
572
		$(LIBDIR)/mandos/plugins.d/password-prompt \
573
		$(LIBDIR)/mandos/plugins.d/mandos-client \
574
		$(LIBDIR)/mandos/plugins.d/usplash \
575
		$(LIBDIR)/mandos/plugins.d/splashy \
576
		$(LIBDIR)/mandos/plugins.d/askpass-fifo \
577
		$(LIBDIR)/mandos/plugins.d/plymouth \
175 by Teddy Hogeborn
* Makefile: Clearly separate "local" install variable settings from
578
		$(INITRAMFSTOOLS)/hooks/mandos \
579
		$(INITRAMFSTOOLS)/conf-hooks.d/mandos \
302 by Teddy Hogeborn
* Makefile (install-client-nokey): Move "initramfs-tools-script" from
580
		$(INITRAMFSTOOLS)/scripts/init-premount/mandos \
1127 by Teddy Hogeborn
Add dracut(8) support
581
		$(INITRAMFSTOOLS)/scripts/local-premount/mandos \
582
		$(DRACUTMODULE)/ask-password-mandos.path \
583
		$(DRACUTMODULE)/ask-password-mandos.service \
584
		$(DRACUTMODULE)/module-setup.sh \
585
		$(DRACUTMODULE)/cmdline-mandos.sh \
586
		$(DRACUTMODULE)/password-agent \
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
587
		$(MANDIR)/man8/mandos-keygen.8.gz \
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
588
		$(MANDIR)/man8/plugin-runner.8mandos.gz \
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
589
		$(MANDIR)/man8/mandos-client.8mandos.gz
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
590
		$(MANDIR)/man8/password-prompt.8mandos.gz \
225 by Teddy Hogeborn
* Makefile (DOCS): Added "plugins.d/usplash.8mandos" and
591
		$(MANDIR)/man8/usplash.8mandos.gz \
592
		$(MANDIR)/man8/splashy.8mandos.gz \
226 by Teddy Hogeborn
* Makefile (DOCS): Added "plugins.d/askpass-fifo.8mandos".
593
		$(MANDIR)/man8/askpass-fifo.8mandos.gz \
435 by teddy at bsnet
* Makefile (DOCS): Added "plymouth.8mandos".
594
		$(MANDIR)/man8/plymouth.8mandos.gz \
1127 by Teddy Hogeborn
Add dracut(8) support
595
		$(MANDIR)/man8/password-agent.8mandos.gz \
640 by Teddy Hogeborn
Use architecture libdir.
596
	-rmdir $(LIBDIR)/mandos/plugins.d $(CONFDIR)/plugins.d \
1127 by Teddy Hogeborn
Add dracut(8) support
597
		 $(LIBDIR)/mandos $(CONFDIR) $(KEYDIR) $(DRACUTMODULE)
598
	if command -v update-initramfs >/dev/null; then \
599
	    update-initramfs -k all -u; \
600
	elif command -v dracut >/dev/null; then \
1136 by Teddy Hogeborn
Break some long lines and refine documentation
601
	    for initrd in $(DESTDIR)/boot/initr*-$(LINUXVERSION); do \
1127 by Teddy Hogeborn
Add dracut(8) support
602
		test -w "$$initrd" && dracut --force "$$initrd"; \
603
	    done; \
604
	fi
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
605
1189 by Teddy Hogeborn
Makefile: Declare phoniness of targets at each target
606
.PHONY: purge
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
607
purge: purge-server purge-client
608
1189 by Teddy Hogeborn
Makefile: Declare phoniness of targets at each target
609
.PHONY: purge-server
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
610
purge-server: uninstall-server
162 by Teddy Hogeborn
* Makefile (PIDDIR, USER, GROUP): New variables.
611
	-rm --force $(CONFDIR)/mandos.conf $(CONFDIR)/clients.conf \
420.1.1 by teddy at bsnet
* Makefile (install-server): Install dbus-mandos.conf as
612
		$(DESTDIR)/etc/dbus-1/system.d/mandos.conf
175 by Teddy Hogeborn
* Makefile: Clearly separate "local" install variable settings from
613
		$(DESTDIR)/etc/default/mandos \
614
		$(DESTDIR)/etc/init.d/mandos \
638 by Teddy Hogeborn
Add systemd service support for Mandos server.
615
		$(SYSTEMD)/mandos.service \
637 by Teddy Hogeborn
Fix fallback to /var/run if /run does not exist for Makefile.
616
		$(DESTDIR)/run/mandos.pid \
617
		$(DESTDIR)/var/run/mandos.pid
74 by Teddy Hogeborn
* Makefile (PREFIX, CONFDIR): New.
618
	-rmdir $(CONFDIR)
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
619
1189 by Teddy Hogeborn
Makefile: Declare phoniness of targets at each target
620
.PHONY: purge-client
67 by Teddy Hogeborn
* mandos-keygen: New program to generate new client keys on
621
purge-client: uninstall-client
962 by Teddy Hogeborn
Add support for using raw public keys in TLS (RFC 7250)
622
	-shred --remove $(KEYDIR)/seckey.txt $(KEYDIR)/tls-privkey.pem
161 by Teddy Hogeborn
* Makefile (purge-client): Also remove "plugin-runner.conf".
623
	-rm --force $(CONFDIR)/plugin-runner.conf \
962 by Teddy Hogeborn
Add support for using raw public keys in TLS (RFC 7250)
624
		$(KEYDIR)/pubkey.txt $(KEYDIR)/seckey.txt \
625
		$(KEYDIR)/tls-pubkey.txt $(KEYDIR)/tls-privkey.txt
160 by Teddy Hogeborn
* Makefile: Changed to use symbolic instead of octal modes throughout.
626
	-rmdir $(KEYDIR) $(CONFDIR)/plugins.d $(CONFDIR)