/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: 2019-08-05 21:14:05 UTC
  • Revision ID: teddy@recompile.se-20190805211405-9m6hecekaihpttz9
Override lintian warnings about upgrading from old versions

There are some really things which are imperative that we fix in case
someone were to upgrade from a really old version.  We want to keep
these fixes in the postinst maintainer scripts, even though lintian
complains about such old upgrades not being supported by Debian in
general.  We prefer the code being there, for the sake of the users.

* debian/mandos-client.lintian-overrides
  (maintainer-script-supports-ancient-package-version): New.
  debian/mandos.lintian-overrides
  (maintainer-script-supports-ancient-package-version): - '' -

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
 
30
30
# For info about _FORTIFY_SOURCE, see feature_test_macros(7)
31
31
# and <https://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html>.
32
 
FORTIFY:=-fstack-protector-all -fPIC
33
 
CPPFLAGS+=-D_FORTIFY_SOURCE=3
 
32
FORTIFY:=-D_FORTIFY_SOURCE=2 -fstack-protector-all -fPIC
34
33
LINK_FORTIFY_LD:=-z relro -z now
35
34
LINK_FORTIFY:=
36
35
 
42
41
#COVERAGE=--coverage
43
42
OPTIMIZE:=-Os -fno-strict-aliasing
44
43
LANGUAGE:=-std=gnu11
45
 
CPPFLAGS+=-D_FILE_OFFSET_BITS=64
 
44
FEATURES:=-D_FILE_OFFSET_BITS=64
46
45
htmldir:=man
47
 
version:=1.8.16
 
46
version:=1.8.6
48
47
SED:=sed
49
48
PKG_CONFIG?=pkg-config
50
49
 
90
89
                        --variable=systemdsystemunitdir)
91
90
TMPFILES:=$(DESTDIR)$(shell $(PKG_CONFIG) systemd \
92
91
                        --variable=tmpfilesdir)
93
 
SYSUSERS:=$(DESTDIR)$(shell $(PKG_CONFIG) systemd \
94
 
                        --variable=sysusersdir)
95
92
 
96
93
GNUTLS_CFLAGS:=$(shell $(PKG_CONFIG) --cflags-only-I gnutls)
97
94
GNUTLS_LIBS:=$(shell $(PKG_CONFIG) --libs gnutls)
98
95
AVAHI_CFLAGS:=$(shell $(PKG_CONFIG) --cflags-only-I avahi-core)
99
96
AVAHI_LIBS:=$(shell $(PKG_CONFIG) --libs avahi-core)
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; \
 
97
GPGME_CFLAGS:=$(shell gpgme-config --cflags; getconf LFS_CFLAGS)
 
98
GPGME_LIBS:=$(shell gpgme-config --libs; getconf LFS_LIBS; \
104
99
        getconf LFS_LDFLAGS)
105
100
LIBNL3_CFLAGS:=$(shell $(PKG_CONFIG) --cflags-only-I libnl-route-3.0)
106
101
LIBNL3_LIBS:=$(shell $(PKG_CONFIG) --libs libnl-route-3.0)
109
104
 
110
105
# Do not change these two
111
106
CFLAGS+=$(WARN) $(DEBUG) $(FORTIFY) $(COVERAGE) $(OPTIMIZE) \
112
 
        $(LANGUAGE) -DVERSION='"$(version)"'
 
107
        $(LANGUAGE) $(FEATURES) -DVERSION='"$(version)"'
113
108
LDFLAGS+=-Xlinker --as-needed $(COVERAGE) $(LINK_FORTIFY) $(strip \
114
109
        ) $(foreach flag,$(LINK_FORTIFY_LD),-Xlinker $(flag))
115
110
 
159
154
 
160
155
objects:=$(addsuffix .o,$(CPROGS))
161
156
 
162
 
.PHONY: all
163
157
all: $(PROGS) mandos.lsm
164
158
 
165
 
.PHONY: doc
166
159
doc: $(DOCS)
167
160
 
168
 
.PHONY: html
169
161
html: $(htmldocs)
170
162
 
171
163
%.5: %.xml common.ent legalnotice.xml
288
280
                $@)
289
281
 
290
282
# Need to add the GnuTLS, Avahi and GPGME libraries
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)
 
283
plugins.d/mandos-client: plugins.d/mandos-client.c
 
284
        $(LINK.c) $^ $(GNUTLS_CFLAGS) $(AVAHI_CFLAGS) $(strip\
 
285
                ) $(GPGME_CFLAGS) $(GNUTLS_LIBS) $(strip\
 
286
                ) $(AVAHI_LIBS) $(GPGME_LIBS) $(LOADLIBES) $(strip\
 
287
                ) $(LDLIBS) -o $@
295
288
 
296
289
# Need to add the libnl-route library
297
 
plugin-helpers/mandos-client-iprouteadddel: CFLAGS += $(LIBNL3_CFLAGS)
298
 
plugin-helpers/mandos-client-iprouteadddel: LDLIBS += $(LIBNL3_LIBS)
 
290
plugin-helpers/mandos-client-iprouteadddel: plugin-helpers/mandos-client-iprouteadddel.c
 
291
        $(LINK.c) $(LIBNL3_CFLAGS) $^ $(LIBNL3_LIBS) $(strip\
 
292
                ) $(LOADLIBES) $(LDLIBS) -o $@
299
293
 
300
294
# Need to add the GLib and pthread libraries
301
 
dracut-module/password-agent: CFLAGS += $(GLIB_CFLAGS)
302
 
# Note: -lpthread is unnecessary with the GNU C library 2.34 or later
303
 
dracut-module/password-agent: LDLIBS += $(GLIB_LIBS) -lpthread
304
 
 
305
 
.PHONY: clean
 
295
dracut-module/password-agent: dracut-module/password-agent.c
 
296
        $(LINK.c) $(GLIB_CFLAGS) $^ $(GLIB_LIBS) -lpthread $(strip\
 
297
                ) $(LOADLIBES) $(LDLIBS) -o $@
 
298
 
 
299
.PHONY : all doc html clean distclean mostlyclean maintainer-clean \
 
300
        check run-client run-server install install-html \
 
301
        install-server install-client-nokey install-client uninstall \
 
302
        uninstall-server uninstall-client purge purge-server \
 
303
        purge-client
 
304
 
306
305
clean:
307
306
        -rm --force $(CPROGS) $(objects) $(htmldocs) $(DOCS) core
308
307
 
309
 
.PHONY: distclean
310
308
distclean: clean
311
 
.PHONY: mostlyclean
312
309
mostlyclean: clean
313
 
.PHONY: maintainer-clean
314
310
maintainer-clean: clean
315
311
        -rm --force --recursive keydir confdir statedir
316
312
 
317
 
.PHONY: check
318
313
check: all
319
314
        ./mandos --check
320
315
        ./mandos-ctl --check
324
319
        ./dracut-module/password-agent --test
325
320
 
326
321
# Run the client with a local config and key
327
 
.PHONY: run-client
328
322
run-client: all keydir/seckey.txt keydir/pubkey.txt \
329
323
                        keydir/tls-privkey.pem keydir/tls-pubkey.pem
330
324
        @echo '######################################################'
358
352
keydir/seckey.txt keydir/pubkey.txt keydir/tls-privkey.pem keydir/tls-pubkey.pem: mandos-keygen
359
353
        install --directory keydir
360
354
        ./mandos-keygen --dir keydir --force
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
367
355
 
368
356
# Run the server with a local config
369
 
.PHONY: run-server
370
357
run-server: confdir/mandos.conf confdir/clients.conf statedir
371
358
        ./mandos --debug --no-dbus --configdir=confdir \
372
359
                --statedir=statedir $(SERVERARGS)
383
370
statedir:
384
371
        install --directory statedir
385
372
 
386
 
.PHONY: install
387
373
install: install-server install-client-nokey
388
374
 
389
 
.PHONY: install-html
390
375
install-html: html
391
376
        install --directory $(htmldir)
392
377
        install --mode=u=rw,go=r --target-directory=$(htmldir) \
393
378
                $(htmldocs)
394
379
 
395
 
.PHONY: install-server
396
380
install-server: doc
397
381
        install --directory $(CONFDIR)
398
382
        if install --directory --mode=u=rwx --owner=$(USER) \
406
390
                install --mode=u=rw,go=r tmpfiles.d-mandos.conf \
407
391
                        $(TMPFILES)/mandos.conf; \
408
392
        fi
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
414
393
        install --mode=u=rwx,go=rx mandos $(PREFIX)/sbin/mandos
415
394
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
416
395
                mandos-ctl
445
424
        gzip --best --to-stdout intro.8mandos \
446
425
                > $(MANDIR)/man8/intro.8mandos.gz
447
426
 
448
 
.PHONY: install-client-nokey
449
427
install-client-nokey: all doc
450
428
        install --directory $(LIBDIR)/mandos $(CONFDIR)
451
429
        install --directory --mode=u=rwx $(KEYDIR) \
452
430
                $(LIBDIR)/mandos/plugins.d \
453
431
                $(LIBDIR)/mandos/plugin-helpers
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
459
432
        if [ "$(CONFDIR)" != "$(LIBDIR)/mandos" ]; then \
460
433
                install --mode=u=rwx \
461
434
                        --directory "$(CONFDIR)/plugins.d" \
530
503
        gzip --best --to-stdout dracut-module/password-agent.8mandos \
531
504
                > $(MANDIR)/man8/password-agent.8mandos.gz
532
505
 
533
 
.PHONY: install-client
534
506
install-client: install-client-nokey
535
507
# Post-installation stuff
536
508
        -$(PREFIX)/sbin/mandos-keygen --dir "$(KEYDIR)"
546
518
        fi
547
519
        echo "Now run mandos-keygen --password --dir $(KEYDIR)"
548
520
 
549
 
.PHONY: uninstall
550
521
uninstall: uninstall-server uninstall-client
551
522
 
552
 
.PHONY: uninstall-server
553
523
uninstall-server:
554
524
        -rm --force $(PREFIX)/sbin/mandos \
555
525
                $(PREFIX)/sbin/mandos-ctl \
562
532
        update-rc.d -f mandos remove
563
533
        -rmdir $(CONFDIR)
564
534
 
565
 
.PHONY: uninstall-client
566
535
uninstall-client:
567
536
# Refuse to uninstall client if /etc/crypttab is explicitly configured
568
537
# to use it.
604
573
            done; \
605
574
        fi
606
575
 
607
 
.PHONY: purge
608
576
purge: purge-server purge-client
609
577
 
610
 
.PHONY: purge-server
611
578
purge-server: uninstall-server
612
579
        -rm --force $(CONFDIR)/mandos.conf $(CONFDIR)/clients.conf \
613
580
                $(DESTDIR)/etc/dbus-1/system.d/mandos.conf
618
585
                $(DESTDIR)/var/run/mandos.pid
619
586
        -rmdir $(CONFDIR)
620
587
 
621
 
.PHONY: purge-client
622
588
purge-client: uninstall-client
623
589
        -shred --remove $(KEYDIR)/seckey.txt $(KEYDIR)/tls-privkey.pem
624
590
        -rm --force $(CONFDIR)/plugin-runner.conf \