/mandos/trunk

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

« back to all changes in this revision

Viewing changes to Makefile

  • Committer: Teddy Hogeborn
  • Date: 2015-07-20 03:03:33 UTC
  • 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.4
 
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
 
347
360
install-client-nokey: all doc
348
361
        install --directory $(LIBDIR)/mandos $(CONFDIR)
349
362
        install --directory --mode=u=rwx $(KEYDIR) \
350
 
                $(LIBDIR)/mandos/plugins.d
 
363
                $(LIBDIR)/mandos/plugins.d \
 
364
                $(LIBDIR)/mandos/plugin-helpers
351
365
        if [ "$(CONFDIR)" != "$(LIBDIR)/mandos" ]; then \
352
366
                install --mode=u=rwx \
353
367
                        --directory "$(CONFDIR)/plugins.d"; \
 
368
                install --directory "$(CONFDIR)/plugin-helpers"; \
354
369
        fi
355
370
        install --mode=u=rwx,go=rx --directory \
356
371
                "$(CONFDIR)/network-hooks.d"
376
391
        install --mode=u=rwxs,go=rx \
377
392
                --target-directory=$(LIBDIR)/mandos/plugins.d \
378
393
                plugins.d/plymouth
 
394
        install --mode=u=rwxs,go=rx \
 
395
                --target-directory=$(LIBDIR)/mandos/plugin-helpers \
 
396
                plugin-helpers/mandos-client-iprouteadddel
379
397
        install initramfs-tools-hook \
380
398
                $(INITRAMFSTOOLS)/hooks/mandos
381
399
        install --mode=u=rw,go=r initramfs-tools-hook-conf \