/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: 2016-06-03 17:27:03 UTC
  • mto: (237.7.594 trunk)
  • mto: This revision was merged to the branch mainline in revision 343.
  • Revision ID: teddy@recompile.se-20160603172703-mc6tjor6rhq4xy74
mandos: Bug fix: Do multiprocessing cleanup correctly on exit

* mandos (main): Save module "multiprocessing" and open file "wnull"
                 as scope variables accessible by function cleanup(),
                 since the module and global variable may not be
                 accessible when the cleanup() function is run as
                 scheduled by atexit().

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
# and <http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html>.
16
16
FORTIFY=-D_FORTIFY_SOURCE=2 -fstack-protector-all -fPIC
17
17
# <https://developerblog.redhat.com/2014/10/16/gcc-undefined-behavior-sanitizer-ubsan/>
18
 
# The sanitizing options are available in GCC 4.9 and above.
19
 
ifeq ($(shell test $(shell $(CC) -dumpversion) \> 4.9-; echo $$?),0)
20
 
SANITIZE:=-fsanitize=address -fsanitize=undefined -fsanitize=shift \
21
 
        -fsanitize=integer-divide-by-zero -fsanitize=unreachable \
22
 
        -fsanitize=vla-bound -fsanitize=null -fsanitize=return \
23
 
        -fsanitize=signed-integer-overflow
24
 
# GCC 5.3 has some more sanitizing options
25
 
ifeq ($(shell test $(shell $(CC) -dumpversion) \> 5.3-; echo $$?),0)
26
 
SANITIZE+=-fsanitize=bounds -fsanitize=alignment \
27
 
        -fsanitize=object-size -fsanitize=float-divide-by-zero \
28
 
        -fsanitize=float-cast-overflow -fsanitize=nonnull-attribute \
29
 
        -fsanitize=returns-nonnull-attribute -fsanitize=bool \
30
 
        -fsanitize=enum
31
 
endif
32
 
else
33
 
SANITIZE:=
34
 
endif
 
18
ALL_SANITIZE_OPTIONS:=-fsanitize=address -fsanitize=undefined \
 
19
        -fsanitize=shift -fsanitize=integer-divide-by-zero \
 
20
        -fsanitize=unreachable -fsanitize=vla-bound -fsanitize=null \
 
21
        -fsanitize=return -fsanitize=signed-integer-overflow \
 
22
        -fsanitize=bounds -fsanitize=alignment \
 
23
        -fsanitize=object-size -fsanitize=float-divide-by-zero \
 
24
        -fsanitize=float-cast-overflow -fsanitize=nonnull-attribute \
 
25
        -fsanitize=returns-nonnull-attribute -fsanitize=bool \
 
26
        -fsanitize=enum
 
27
# Check which sanitizing options can be used
 
28
SANITIZE:=$(foreach option,$(ALL_SANITIZE_OPTIONS),$(shell \
 
29
        echo 'int main(){}' | $(CC) --language=c $(option) /dev/stdin \
 
30
        -o /dev/null >/dev/null 2>&1 && echo $(option)))
35
31
LINK_FORTIFY_LD=-z relro -z now
36
32
LINK_FORTIFY=
37
33
 
44
40
OPTIMIZE=-Os -fno-strict-aliasing
45
41
LANGUAGE=-std=gnu11
46
42
htmldir=man
47
 
version=1.7.1
 
43
version=1.7.7
48
44
SED=sed
49
45
 
50
46
USER=$(firstword $(subst :, ,$(shell getent passwd _mandos || getent passwd nobody || echo 65534)))
51
 
GROUP=$(firstword $(subst :, ,$(shell getent group _mandos || getent group nobody || echo 65534)))
 
47
GROUP=$(firstword $(subst :, ,$(shell getent group _mandos || getent group nogroup || echo 65534)))
52
48
 
53
49
## Use these settings for a traditional /usr/local install
54
50
# PREFIX=$(DESTDIR)/usr/local
79
75
##
80
76
 
81
77
SYSTEMD=$(DESTDIR)$(shell pkg-config systemd --variable=systemdsystemunitdir)
 
78
TMPFILES=$(DESTDIR)$(shell pkg-config systemd --variable=tmpfilesdir)
82
79
 
83
80
GNUTLS_CFLAGS=$(shell pkg-config --cflags-only-I gnutls)
84
81
GNUTLS_LIBS=$(shell pkg-config --libs gnutls)
341
338
        elif install --directory --mode=u=rwx $(STATEDIR); then \
342
339
                chown -- $(USER):$(GROUP) $(STATEDIR) || :; \
343
340
        fi
 
341
        if [ "$(TMPFILES)" != "$(DESTDIR)" -a -d "$(TMPFILES)" ]; then \
 
342
                install --mode=u=rw,go=r tmpfiles.d-mandos.conf \
 
343
                        $(TMPFILES)/mandos.conf; \
 
344
        fi
344
345
        install --mode=u=rwx,go=rx mandos $(PREFIX)/sbin/mandos
345
346
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
346
347
                mandos-ctl
382
383
                $(LIBDIR)/mandos/plugin-helpers
383
384
        if [ "$(CONFDIR)" != "$(LIBDIR)/mandos" ]; then \
384
385
                install --mode=u=rwx \
385
 
                        --directory "$(CONFDIR)/plugins.d"; \
386
 
                install --directory "$(CONFDIR)/plugin-helpers"; \
 
386
                        --directory "$(CONFDIR)/plugins.d" \
 
387
                        "$(CONFDIR)/plugin-helpers"; \
387
388
        fi
388
389
        install --mode=u=rwx,go=rx --directory \
389
390
                "$(CONFDIR)/network-hooks.d"
409
410
        install --mode=u=rwxs,go=rx \
410
411
                --target-directory=$(LIBDIR)/mandos/plugins.d \
411
412
                plugins.d/plymouth
412
 
        install --mode=u=rwxs,go=rx \
 
413
        install --mode=u=rwx,go=rx \
413
414
                --target-directory=$(LIBDIR)/mandos/plugin-helpers \
414
415
                plugin-helpers/mandos-client-iprouteadddel
415
416
        install initramfs-tools-hook \
435
436
                > $(MANDIR)/man8/askpass-fifo.8mandos.gz
436
437
        gzip --best --to-stdout plugins.d/plymouth.8mandos \
437
438
                > $(MANDIR)/man8/plymouth.8mandos.gz
 
439
        gzip --best --to-stdout intro.8mandos \
 
440
                > $(MANDIR)/man8/intro.8mandos.gz
438
441
 
439
442
install-client: install-client-nokey
440
443
# Post-installation stuff