/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: 2024-11-17 18:43:11 UTC
  • mto: This revision was merged to the branch mainline in revision 412.
  • Revision ID: teddy@recompile.se-20241117184311-ox25kvngy62h209g
Debian package: Avoid suggesting a C compiler unnecessarily

The list of suggested packages, meant to enable the "mandos" program
to find the correct value of SO_BINDTODEVICE by using a C compiler,
are not necessary when Python 3.3 or later is used, since it has the
SO_BINDTODEVICE constant defined in the "socket" module.  Also, Python
2.6 or older has the same constant in the old "IN" module.  Therefore,
we should suggest these Python versions as alternatives to a C
compiler, so that a C compiler is not installed unnecessarily.

debian/control (Package: mandos/Suggests): Add "python3 (>= 3.3)" and
"python (<= 2.6)" as alternatives to "libc6-dev | libc-dev" and
"c-compiler".

Show diffs side-by-side

added added

removed removed

Lines of Context:
42
42
#COVERAGE=--coverage
43
43
OPTIMIZE:=-Os -fno-strict-aliasing
44
44
LANGUAGE:=-std=gnu11
45
 
CPPFLAGS+=-D_FILE_OFFSET_BITS=64
 
45
CPPFLAGS+=-D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64
46
46
htmldir:=man
47
 
version:=1.8.16
 
47
version:=1.8.17
48
48
SED:=sed
49
49
PKG_CONFIG?=pkg-config
50
50
 
57
57
 
58
58
## Use these settings for a traditional /usr/local install
59
59
# PREFIX:=$(DESTDIR)/usr/local
 
60
# BINDIR:=$(PREFIX)/sbin
60
61
# CONFDIR:=$(DESTDIR)/etc/mandos
61
62
# KEYDIR:=$(DESTDIR)/etc/mandos/keys
62
63
# MANDIR:=$(PREFIX)/man
69
70
 
70
71
## These settings are for a package-type install
71
72
PREFIX:=$(DESTDIR)/usr
 
73
BINDIR:=$(PREFIX)/sbin
72
74
CONFDIR:=$(DESTDIR)/etc/mandos
73
75
KEYDIR:=$(DESTDIR)/etc/keys/mandos
74
76
MANDIR:=$(PREFIX)/share/man
289
291
                --expression='s/\(mandos_\)[0-9.]\+\(\.orig\.tar\.gz\)/\1$(version)\2/' \
290
292
                $@)
291
293
 
 
294
# Does the linker support the --no-warn-execstack option?
 
295
ifeq ($(shell echo 'int main(){}'|$(CC) --language=c /dev/stdin -o /dev/null -Xlinker --no-warn-execstack >/dev/null 2>&1 && echo yes),yes)
 
296
# These programs use nested functions, which uses an executable stack
 
297
plugin-runner: LDFLAGS += -Xlinker --no-warn-execstack
 
298
dracut-module/password-agent: LDFLAGS += -Xlinker --no-warn-execstack
 
299
plugins.d/password-prompt: LDFLAGS += -Xlinker --no-warn-execstack
 
300
plugins.d/mandos-client: LDFLAGS += -Xlinker --no-warn-execstack
 
301
plugins.d/plymouth: LDFLAGS += -Xlinker --no-warn-execstack
 
302
endif
 
303
 
292
304
# Need to add the GnuTLS, Avahi and GPGME libraries
293
305
plugins.d/mandos-client: CFLAGS += $(GNUTLS_CFLAGS) $(strip \
294
306
        ) $(AVAHI_CFLAGS) $(GPGME_CFLAGS)
375
387
 
376
388
# Used by run-server
377
389
confdir/mandos.conf: mandos.conf
378
 
        install --directory confdir
379
 
        install --mode=u=rw,go=r $^ $@
 
390
        install -D --mode=u=rw,go=r $^ $@
380
391
confdir/clients.conf: clients.conf keydir/seckey.txt keydir/tls-pubkey.pem
381
 
        install --directory confdir
382
 
        install --mode=u=rw $< $@
 
392
        install -D --mode=u=rw $< $@
383
393
# Add a client password
384
394
        ./mandos-keygen --dir keydir --password --no-ssh >> $@
385
395
statedir:
390
400
 
391
401
.PHONY: install-html
392
402
install-html: html
393
 
        install --directory $(htmldir)
394
 
        install --mode=u=rw,go=r --target-directory=$(htmldir) \
 
403
        install -D --mode=u=rw,go=r --target-directory=$(htmldir) \
395
404
                $(htmldocs)
396
405
 
397
406
.PHONY: install-server
398
407
install-server: doc
399
 
        install --directory $(CONFDIR)
400
408
        if install --directory --mode=u=rwx --owner=$(USER) \
401
409
                --group=$(GROUP) $(STATEDIR); then \
402
410
                :; \
403
411
        elif install --directory --mode=u=rwx $(STATEDIR); then \
404
412
                chown -- $(USER):$(GROUP) $(STATEDIR) || :; \
405
413
        fi
406
 
        if [ "$(TMPFILES)" != "$(DESTDIR)" \
407
 
                        -a -d "$(TMPFILES)" ]; then \
408
 
                install --mode=u=rw,go=r tmpfiles.d-mandos.conf \
 
414
        if [ "$(TMPFILES)" != "$(DESTDIR)" ]; then \
 
415
                install -D --mode=u=rw,go=r tmpfiles.d-mandos.conf \
409
416
                        $(TMPFILES)/mandos.conf; \
410
417
        fi
411
 
        if [ "$(SYSUSERS)" != "$(DESTDIR)" \
412
 
                        -a -d "$(SYSUSERS)" ]; then \
413
 
                install --mode=u=rw,go=r sysusers.d-mandos.conf \
 
418
        if [ "$(SYSUSERS)" != "$(DESTDIR)" ]; then \
 
419
                install -D --mode=u=rw,go=r sysusers.d-mandos.conf \
414
420
                        $(SYSUSERS)/mandos.conf; \
415
421
        fi
416
 
        install --mode=u=rwx,go=rx mandos $(PREFIX)/sbin/mandos
417
 
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
 
422
        install --directory $(BINDIR)
 
423
        install --mode=u=rwx,go=rx --target-directory=$(BINDIR) mandos
 
424
        install --mode=u=rwx,go=rx --target-directory=$(BINDIR) \
418
425
                mandos-ctl
419
 
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
 
426
        install --mode=u=rwx,go=rx --target-directory=$(BINDIR) \
420
427
                mandos-monitor
 
428
        install --directory $(CONFDIR)
421
429
        install --mode=u=rw,go=r --target-directory=$(CONFDIR) \
422
430
                mandos.conf
423
431
        install --mode=u=rw --target-directory=$(CONFDIR) \
424
432
                clients.conf
425
 
        install --mode=u=rw,go=r dbus-mandos.conf \
 
433
        install -D --mode=u=rw,go=r dbus-mandos.conf \
426
434
                $(DBUSPOLICYDIR)/mandos.conf
427
 
        install --mode=u=rwx,go=rx init.d-mandos \
 
435
        install -D --mode=u=rwx,go=rx init.d-mandos \
428
436
                $(DESTDIR)/etc/init.d/mandos
429
 
        if [ "$(SYSTEMD)" != "$(DESTDIR)" -a -d "$(SYSTEMD)" ]; then \
430
 
                install --mode=u=rw,go=r mandos.service $(SYSTEMD); \
 
437
        if [ "$(SYSTEMD)" != "$(DESTDIR)" ]; then \
 
438
                install -D --mode=u=rw,go=r mandos.service \
 
439
                        $(SYSTEMD); \
431
440
        fi
432
 
        install --mode=u=rw,go=r default-mandos \
 
441
        install -D --mode=u=rw,go=r default-mandos \
433
442
                $(DESTDIR)/etc/default/mandos
434
443
        if [ -z $(DESTDIR) ]; then \
435
444
                update-rc.d mandos defaults 25 15;\
436
445
        fi
 
446
        install --directory $(MANDIR)/man8 $(MANDIR)/man5
437
447
        gzip --best --to-stdout mandos.8 \
438
448
                > $(MANDIR)/man8/mandos.8.gz
439
449
        gzip --best --to-stdout mandos-monitor.8 \
449
459
 
450
460
.PHONY: install-client-nokey
451
461
install-client-nokey: all doc
452
 
        install --directory $(LIBDIR)/mandos $(CONFDIR)
453
462
        install --directory --mode=u=rwx $(KEYDIR) \
454
463
                $(LIBDIR)/mandos/plugins.d \
455
464
                $(LIBDIR)/mandos/plugin-helpers
456
 
        if [ "$(SYSUSERS)" != "$(DESTDIR)" \
457
 
                        -a -d "$(SYSUSERS)" ]; then \
458
 
                install --mode=u=rw,go=r sysusers.d-mandos.conf \
 
465
        if [ "$(SYSUSERS)" != "$(DESTDIR)" ]; then \
 
466
                install -D --mode=u=rw,go=r sysusers.d-mandos.conf \
459
467
                        $(SYSUSERS)/mandos-client.conf; \
460
468
        fi
461
469
        if [ "$(CONFDIR)" != "$(LIBDIR)/mandos" ]; then \
462
 
                install --mode=u=rwx \
463
 
                        --directory "$(CONFDIR)/plugins.d" \
 
470
                install --directory \
 
471
                        --mode=u=rwx "$(CONFDIR)/plugins.d" \
464
472
                        "$(CONFDIR)/plugin-helpers"; \
465
473
        fi
466
 
        install --mode=u=rwx,go=rx --directory \
 
474
        install --directory --mode=u=rwx,go=rx \
467
475
                "$(CONFDIR)/network-hooks.d"
468
476
        install --mode=u=rwx,go=rx \
469
477
                --target-directory=$(LIBDIR)/mandos plugin-runner
470
478
        install --mode=u=rwx,go=rx \
471
479
                --target-directory=$(LIBDIR)/mandos \
472
480
                mandos-to-cryptroot-unlock
473
 
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
 
481
        install --directory $(BINDIR)
 
482
        install --mode=u=rwx,go=rx --target-directory=$(BINDIR) \
474
483
                mandos-keygen
475
484
        install --mode=u=rwx,go=rx \
476
485
                --target-directory=$(LIBDIR)/mandos/plugins.d \
493
502
        install --mode=u=rwx,go=rx \
494
503
                --target-directory=$(LIBDIR)/mandos/plugin-helpers \
495
504
                plugin-helpers/mandos-client-iprouteadddel
496
 
        install initramfs-tools-hook \
 
505
        install -D initramfs-tools-hook \
497
506
                $(INITRAMFSTOOLS)/hooks/mandos
498
 
        install --mode=u=rw,go=r initramfs-tools-conf \
 
507
        install -D --mode=u=rw,go=r initramfs-tools-conf \
499
508
                $(INITRAMFSTOOLS)/conf.d/mandos-conf
500
 
        install --mode=u=rw,go=r initramfs-tools-conf-hook \
 
509
        install -D --mode=u=rw,go=r initramfs-tools-conf-hook \
501
510
                $(INITRAMFSTOOLS)/conf-hooks.d/zz-mandos
502
 
        install initramfs-tools-script \
 
511
        install -D initramfs-tools-script \
503
512
                $(INITRAMFSTOOLS)/scripts/init-premount/mandos
504
 
        install initramfs-tools-script-stop \
 
513
        install -D initramfs-tools-script-stop \
505
514
                $(INITRAMFSTOOLS)/scripts/local-premount/mandos
506
 
        install --directory $(DRACUTMODULE)
507
 
        install --mode=u=rw,go=r --target-directory=$(DRACUTMODULE) \
 
515
        install -D --mode=u=rw,go=r \
 
516
                --target-directory=$(DRACUTMODULE) \
508
517
                dracut-module/ask-password-mandos.path \
509
518
                dracut-module/ask-password-mandos.service
510
519
        install --mode=u=rwxs,go=rx \
513
522
                dracut-module/cmdline-mandos.sh \
514
523
                dracut-module/password-agent
515
524
        install --mode=u=rw,go=r plugin-runner.conf $(CONFDIR)
 
525
        install --directory $(MANDIR)/man8
516
526
        gzip --best --to-stdout mandos-keygen.8 \
517
527
                > $(MANDIR)/man8/mandos-keygen.8.gz
518
528
        gzip --best --to-stdout plugin-runner.8mandos \
535
545
.PHONY: install-client
536
546
install-client: install-client-nokey
537
547
# Post-installation stuff
538
 
        -$(PREFIX)/sbin/mandos-keygen --dir "$(KEYDIR)"
 
548
        -$(BINDIR)/mandos-keygen --dir "$(KEYDIR)"
539
549
        if command -v update-initramfs >/dev/null; then \
540
550
            update-initramfs -k all -u; \
541
551
        elif command -v dracut >/dev/null; then \
553
563
 
554
564
.PHONY: uninstall-server
555
565
uninstall-server:
556
 
        -rm --force $(PREFIX)/sbin/mandos \
557
 
                $(PREFIX)/sbin/mandos-ctl \
558
 
                $(PREFIX)/sbin/mandos-monitor \
 
566
        -rm --force $(BINDIR)/mandos \
 
567
                $(BINDIR)/mandos-ctl \
 
568
                $(BINDIR)/mandos-monitor \
559
569
                $(MANDIR)/man8/mandos.8.gz \
560
570
                $(MANDIR)/man8/mandos-monitor.8.gz \
561
571
                $(MANDIR)/man8/mandos-ctl.8.gz \
570
580
# to use it.
571
581
        ! grep --regexp='^ *[^ #].*keyscript=[^,=]*/mandos/' \
572
582
                $(DESTDIR)/etc/crypttab
573
 
        -rm --force $(PREFIX)/sbin/mandos-keygen \
 
583
        -rm --force $(BINDIR)/mandos-keygen \
574
584
                $(LIBDIR)/mandos/plugin-runner \
575
585
                $(LIBDIR)/mandos/plugins.d/password-prompt \
576
586
                $(LIBDIR)/mandos/plugins.d/mandos-client \
615
625
                $(DESTDIR)/etc/dbus-1/system.d/mandos.conf
616
626
                $(DESTDIR)/etc/default/mandos \
617
627
                $(DESTDIR)/etc/init.d/mandos \
618
 
                $(SYSTEMD)/mandos.service \
619
628
                $(DESTDIR)/run/mandos.pid \
620
629
                $(DESTDIR)/var/run/mandos.pid
 
630
        if [ "$(SYSTEMD)" != "$(DESTDIR)" -a -d "$(SYSTEMD)" ]; then \
 
631
                -rm --force -- $(SYSTEMD)/mandos.service; \
 
632
        fi
621
633
        -rmdir $(CONFDIR)
622
634
 
623
635
.PHONY: purge-client