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