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