/mandos/release

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/release

« back to all changes in this revision

Viewing changes to Makefile

  • Committer: Teddy Hogeborn
  • Date: 2015-07-20 03:03:33 UTC
  • mto: (237.7.594 trunk)
  • mto: This revision was merged to the branch mainline in revision 325.
  • Revision ID: teddy@recompile.se-20150720030333-203m2aeblypcsfte
Bug fix for GnuTLS 3: be compatible with old 2048-bit DSA keys.

The mandos-keygen program in Mandos version 1.6.0 and older generated
2048-bit DSA keys, and when GnuTLS uses these it has trouble
connecting using the Mandos default priority string.  This was
previously fixed in Mandos 1.6.2, but the bug reappeared when using
GnuTLS 3, so the default priority string has to change again; this
time also the Mandos client has to change its default, so now the
server and the client should use the same default priority string:

SECURE256:!CTYPE-X.509:+CTYPE-OPENPGP:!RSA:+SIGN-DSA-SHA256

* mandos (main/server_defaults): Changed default priority string.
* mandos-options.xml (/section/para[id="priority_compat"]): Removed.
  (/section/para[id="priority"]): Changed default priority string.
* mandos.conf ([DEFAULT]/priority): - '' -
* mandos.conf.xml (OPTIONS/priority): Refer to the id "priority"
                                      instead of "priority_compat".
* mandos.xml (OPTIONS/--priority): - '' -
* plugins.d/mandos-client.c (main): Changed default priority string.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
WARN=-O -Wall -Wformat=2 -Winit-self -Wmissing-include-dirs \
2
 
        -Wswitch-default -Wswitch-enum -Wunused-parameter \
3
 
        -Wstrict-aliasing=1 -Wextra -Wfloat-equal -Wundef -Wshadow \
 
1
WARN=-O -Wall -Wextra -Wdouble-promotion -Wformat=2 -Winit-self \
 
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 \
4
6
        -Wunsafe-loop-optimizations -Wpointer-arith \
5
7
        -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings \
6
 
        -Wconversion -Wstrict-prototypes -Wold-style-definition \
7
 
        -Wpacked -Wnested-externs -Winline -Wvolatile-register-var
8
 
#       -Wunreachable-code
 
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
9
13
#DEBUG=-ggdb3
10
 
# For info about _FORTIFY_SOURCE, see
11
 
# <http://www.kernel.org/doc/man-pages/online/pages/man7/feature_test_macros.7.html>
 
14
# For info about _FORTIFY_SOURCE, see feature_test_macros(7)
12
15
# and <http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html>.
13
16
FORTIFY=-D_FORTIFY_SOURCE=2 -fstack-protector-all -fPIC
14
17
LINK_FORTIFY_LD=-z relro -z now
20
23
LINK_FORTIFY += -pie
21
24
endif
22
25
#COVERAGE=--coverage
23
 
OPTIMIZE=-Os
24
 
LANGUAGE=-std=gnu99
 
26
OPTIMIZE=-Os -fno-strict-aliasing
 
27
LANGUAGE=-std=gnu11
25
28
htmldir=man
26
 
version=1.6.2
 
29
version=1.6.9
27
30
SED=sed
28
31
 
29
32
USER=$(firstword $(subst :, ,$(shell getent passwd _mandos || getent passwd nobody || echo 65534)))
66
69
GPGME_CFLAGS=$(shell gpgme-config --cflags; getconf LFS_CFLAGS)
67
70
GPGME_LIBS=$(shell gpgme-config --libs; getconf LFS_LIBS; \
68
71
        getconf LFS_LDFLAGS)
 
72
LIBNL3_CFLAGS=$(shell pkg-config --cflags-only-I libnl-route-3.0)
 
73
LIBNL3_LIBS=$(shell pkg-config --libs libnl-route-3.0)
69
74
 
70
75
# Do not change these two
71
76
CFLAGS+=$(WARN) $(DEBUG) $(FORTIFY) $(COVERAGE) $(OPTIMIZE) \
82
87
        --param man.authors.section.enabled     0 \
83
88
        /usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl \
84
89
        $(notdir $<); \
85
 
        $(MANPOST) $(notdir $@);\
86
90
        if locale --all 2>/dev/null | grep --regexp='^en_US\.utf8$$' \
87
91
        && type man 2>/dev/null; then LANG=en_US.UTF-8 MANWIDTH=80 \
88
92
        man --warnings --encoding=UTF-8 --local-file $(notdir $@); \
89
93
        fi >/dev/null)
90
 
# DocBook-to-man post-processing to fix a '\n' escape bug
91
 
MANPOST=$(SED) --in-place --expression='s,\\\\en,\\en,g;s,\\n,\\en,g'
92
94
 
93
95
DOCBOOKTOHTML=$(strip xsltproc --nonet --xinclude \
94
96
        --param make.year.ranges                1 \
106
108
PLUGINS=plugins.d/password-prompt plugins.d/mandos-client \
107
109
        plugins.d/usplash plugins.d/splashy plugins.d/askpass-fifo \
108
110
        plugins.d/plymouth
109
 
CPROGS=plugin-runner $(PLUGINS)
 
111
PLUGIN_HELPERS=plugin-helpers/mandos-client-iprouteadddel
 
112
CPROGS=plugin-runner $(PLUGINS) $(PLUGIN_HELPERS)
110
113
PROGS=mandos mandos-keygen mandos-ctl mandos-monitor $(CPROGS)
111
114
DOCS=mandos.8 mandos-keygen.8 mandos-monitor.8 mandos-ctl.8 \
112
115
        mandos.conf.5 mandos-clients.conf.5 plugin-runner.8mandos \
239
242
        $(LINK.c) $^ -lrt $(GNUTLS_LIBS) $(AVAHI_LIBS) $(strip\
240
243
                ) $(GPGME_LIBS) $(LOADLIBES) $(LDLIBS) -o $@
241
244
 
242
 
.PHONY : all doc html clean distclean run-client run-server install \
243
 
        install-server install-client uninstall uninstall-server \
244
 
        uninstall-client purge purge-server purge-client
 
245
plugin-helpers/mandos-client-iprouteadddel: plugin-helpers/mandos-client-iprouteadddel.c
 
246
        $(LINK.c) $(LIBNL3_CFLAGS) $^ $(LIBNL3_LIBS) $(strip\
 
247
                ) $(LOADLIBES) $(LDLIBS) -o $@
 
248
 
 
249
.PHONY : all doc html clean distclean mostlyclean maintainer-clean \
 
250
        check run-client run-server install install-html \
 
251
        install-server install-client-nokey install-client uninstall \
 
252
        uninstall-server uninstall-client purge purge-server \
 
253
        purge-client
245
254
 
246
255
clean:
247
256
        -rm --force $(CPROGS) $(objects) $(htmldocs) $(DOCS) core
262
271
        @echo "# ignored.  The messages are caused by not running as root, but   #"
263
272
        @echo "# you should NOT run \"make run-client\" as root unless you also    #"
264
273
        @echo "# unpacked and compiled Mandos as root, which is NOT recommended. #"
265
 
        @echo "# From plugin-runner: setuid: Operation not permitted             #"
 
274
        @echo "# From plugin-runner: setgid: Operation not permitted             #"
 
275
        @echo "#                     setuid: Operation not permitted             #"
266
276
        @echo "# From askpass-fifo:  mkfifo: Permission denied                   #"
267
 
        @echo "# From mandos-client: setuid: Operation not permitted             #"
268
 
        @echo "#                     seteuid: Operation not permitted            #"
269
 
        @echo "#                     klogctl: Operation not permitted            #"
 
277
        @echo "# From mandos-client:                                             #"
 
278
        @echo "#             Failed to raise privileges: Operation not permitted #"
 
279
        @echo "#             Warning: network hook \"*\" exited with status *      #"
270
280
        @echo "###################################################################"
 
281
# We set GNOME_KEYRING_CONTROL to block pam_gnome_keyring
271
282
        ./plugin-runner --plugin-dir=plugins.d \
 
283
                --plugin-helper-dir=plugin-helpers \
272
284
                --config-file=plugin-runner.conf \
273
285
                --options-for=mandos-client:--seckey=keydir/seckey.txt,--pubkey=keydir/pubkey.txt,--network-hook-dir=network-hooks.d \
 
286
                --env-for=mandos-client:GNOME_KEYRING_CONTROL= \
274
287
                $(CLIENTARGS)
275
288
 
276
289
# Used by run-client
291
304
        install --directory confdir
292
305
        install --mode=u=rw $< $@
293
306
# Add a client password
294
 
        ./mandos-keygen --dir keydir --password >> $@
 
307
        ./mandos-keygen --dir keydir --password --no-ssh >> $@
295
308
statedir:
296
309
        install --directory statedir
297
310
 
304
317
 
305
318
install-server: doc
306
319
        install --directory $(CONFDIR)
307
 
        install --directory --mode=u=rwx --owner=$(USER) \
308
 
                --group=$(GROUP) $(STATEDIR)
 
320
        if install --directory --mode=u=rwx --owner=$(USER) \
 
321
                --group=$(GROUP) $(STATEDIR); then \
 
322
                :; \
 
323
        elif install --directory --mode=u=rwx $(STATEDIR); then \
 
324
                chown -- $(USER):$(GROUP) $(STATEDIR) || :; \
 
325
        fi
309
326
        install --mode=u=rwx,go=rx mandos $(PREFIX)/sbin/mandos
310
327
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
311
328
                mandos-ctl
343
360
install-client-nokey: all doc
344
361
        install --directory $(LIBDIR)/mandos $(CONFDIR)
345
362
        install --directory --mode=u=rwx $(KEYDIR) \
346
 
                $(LIBDIR)/mandos/plugins.d
 
363
                $(LIBDIR)/mandos/plugins.d \
 
364
                $(LIBDIR)/mandos/plugin-helpers
347
365
        if [ "$(CONFDIR)" != "$(LIBDIR)/mandos" ]; then \
348
366
                install --mode=u=rwx \
349
367
                        --directory "$(CONFDIR)/plugins.d"; \
 
368
                install --directory "$(CONFDIR)/plugin-helpers"; \
350
369
        fi
351
370
        install --mode=u=rwx,go=rx --directory \
352
371
                "$(CONFDIR)/network-hooks.d"
372
391
        install --mode=u=rwxs,go=rx \
373
392
                --target-directory=$(LIBDIR)/mandos/plugins.d \
374
393
                plugins.d/plymouth
 
394
        install --mode=u=rwxs,go=rx \
 
395
                --target-directory=$(LIBDIR)/mandos/plugin-helpers \
 
396
                plugin-helpers/mandos-client-iprouteadddel
375
397
        install initramfs-tools-hook \
376
398
                $(INITRAMFSTOOLS)/hooks/mandos
377
399
        install --mode=u=rw,go=r initramfs-tools-hook-conf \