/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:=-D_FORTIFY_SOURCE=3 -fstack-protector-all -fPIC
 
32
FORTIFY:=-D_FORTIFY_SOURCE=2 -fstack-protector-all -fPIC
33
33
LINK_FORTIFY_LD:=-z relro -z now
34
34
LINK_FORTIFY:=
35
35
 
43
43
LANGUAGE:=-std=gnu11
44
44
FEATURES:=-D_FILE_OFFSET_BITS=64
45
45
htmldir:=man
46
 
version:=1.8.14
 
46
version:=1.8.6
47
47
SED:=sed
48
48
PKG_CONFIG?=pkg-config
49
49
 
89
89
                        --variable=systemdsystemunitdir)
90
90
TMPFILES:=$(DESTDIR)$(shell $(PKG_CONFIG) systemd \
91
91
                        --variable=tmpfilesdir)
92
 
SYSUSERS:=$(DESTDIR)$(shell $(PKG_CONFIG) systemd \
93
 
                        --variable=sysusersdir)
94
92
 
95
93
GNUTLS_CFLAGS:=$(shell $(PKG_CONFIG) --cflags-only-I gnutls)
96
94
GNUTLS_LIBS:=$(shell $(PKG_CONFIG) --libs gnutls)
156
154
 
157
155
objects:=$(addsuffix .o,$(CPROGS))
158
156
 
159
 
.PHONY: all
160
157
all: $(PROGS) mandos.lsm
161
158
 
162
 
.PHONY: doc
163
159
doc: $(DOCS)
164
160
 
165
 
.PHONY: html
166
161
html: $(htmldocs)
167
162
 
168
163
%.5: %.xml common.ent legalnotice.xml
285
280
                $@)
286
281
 
287
282
# Need to add the GnuTLS, Avahi and GPGME libraries
288
 
plugins.d/mandos-client: CFLAGS += $(GNUTLS_CFLAGS) $(strip \
289
 
        ) $(AVAHI_CFLAGS) $(GPGME_CFLAGS)
290
 
plugins.d/mandos-client: LDLIBS += $(GNUTLS_LIBS) $(strip \
291
 
        ) $(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 $@
292
288
 
293
289
# Need to add the libnl-route library
294
 
plugin-helpers/mandos-client-iprouteadddel: CFLAGS += $(LIBNL3_CFLAGS)
295
 
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 $@
296
293
 
297
294
# Need to add the GLib and pthread libraries
298
 
dracut-module/password-agent: CFLAGS += $(GLIB_CFLAGS)
299
 
# Note: -lpthread is unnecessary with the GNU C library 2.34 or later
300
 
dracut-module/password-agent: LDLIBS += $(GLIB_LIBS) -lpthread
301
 
 
302
 
.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
 
303
305
clean:
304
306
        -rm --force $(CPROGS) $(objects) $(htmldocs) $(DOCS) core
305
307
 
306
 
.PHONY: distclean
307
308
distclean: clean
308
 
.PHONY: mostlyclean
309
309
mostlyclean: clean
310
 
.PHONY: maintainer-clean
311
310
maintainer-clean: clean
312
311
        -rm --force --recursive keydir confdir statedir
313
312
 
314
 
.PHONY: check
315
313
check: all
316
314
        ./mandos --check
317
315
        ./mandos-ctl --check
321
319
        ./dracut-module/password-agent --test
322
320
 
323
321
# Run the client with a local config and key
324
 
.PHONY: run-client
325
322
run-client: all keydir/seckey.txt keydir/pubkey.txt \
326
323
                        keydir/tls-privkey.pem keydir/tls-pubkey.pem
327
324
        @echo '######################################################'
355
352
keydir/seckey.txt keydir/pubkey.txt keydir/tls-privkey.pem keydir/tls-pubkey.pem: mandos-keygen
356
353
        install --directory keydir
357
354
        ./mandos-keygen --dir keydir --force
358
 
        if ! [ -e keydir/tls-privkey.pem ]; then \
359
 
                install --mode=u=rw /dev/null keydir/tls-privkey.pem; \
360
 
        fi
361
 
        if ! [ -e keydir/tls-pubkey.pem ]; then \
362
 
                install --mode=u=rw /dev/null keydir/tls-pubkey.pem; \
363
 
        fi
364
355
 
365
356
# Run the server with a local config
366
 
.PHONY: run-server
367
357
run-server: confdir/mandos.conf confdir/clients.conf statedir
368
358
        ./mandos --debug --no-dbus --configdir=confdir \
369
359
                --statedir=statedir $(SERVERARGS)
380
370
statedir:
381
371
        install --directory statedir
382
372
 
383
 
.PHONY: install
384
373
install: install-server install-client-nokey
385
374
 
386
 
.PHONY: install-html
387
375
install-html: html
388
376
        install --directory $(htmldir)
389
377
        install --mode=u=rw,go=r --target-directory=$(htmldir) \
390
378
                $(htmldocs)
391
379
 
392
 
.PHONY: install-server
393
380
install-server: doc
394
381
        install --directory $(CONFDIR)
395
382
        if install --directory --mode=u=rwx --owner=$(USER) \
403
390
                install --mode=u=rw,go=r tmpfiles.d-mandos.conf \
404
391
                        $(TMPFILES)/mandos.conf; \
405
392
        fi
406
 
        if [ "$(SYSUSERS)" != "$(DESTDIR)" \
407
 
                        -a -d "$(SYSUSERS)" ]; then \
408
 
                install --mode=u=rw,go=r sysusers.d-mandos.conf \
409
 
                        $(SYSUSERS)/mandos.conf; \
410
 
        fi
411
393
        install --mode=u=rwx,go=rx mandos $(PREFIX)/sbin/mandos
412
394
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
413
395
                mandos-ctl
442
424
        gzip --best --to-stdout intro.8mandos \
443
425
                > $(MANDIR)/man8/intro.8mandos.gz
444
426
 
445
 
.PHONY: install-client-nokey
446
427
install-client-nokey: all doc
447
428
        install --directory $(LIBDIR)/mandos $(CONFDIR)
448
429
        install --directory --mode=u=rwx $(KEYDIR) \
449
430
                $(LIBDIR)/mandos/plugins.d \
450
431
                $(LIBDIR)/mandos/plugin-helpers
451
 
        if [ "$(SYSUSERS)" != "$(DESTDIR)" \
452
 
                        -a -d "$(SYSUSERS)" ]; then \
453
 
                install --mode=u=rw,go=r sysusers.d-mandos.conf \
454
 
                        $(SYSUSERS)/mandos-client.conf; \
455
 
        fi
456
432
        if [ "$(CONFDIR)" != "$(LIBDIR)/mandos" ]; then \
457
433
                install --mode=u=rwx \
458
434
                        --directory "$(CONFDIR)/plugins.d" \
527
503
        gzip --best --to-stdout dracut-module/password-agent.8mandos \
528
504
                > $(MANDIR)/man8/password-agent.8mandos.gz
529
505
 
530
 
.PHONY: install-client
531
506
install-client: install-client-nokey
532
507
# Post-installation stuff
533
508
        -$(PREFIX)/sbin/mandos-keygen --dir "$(KEYDIR)"
543
518
        fi
544
519
        echo "Now run mandos-keygen --password --dir $(KEYDIR)"
545
520
 
546
 
.PHONY: uninstall
547
521
uninstall: uninstall-server uninstall-client
548
522
 
549
 
.PHONY: uninstall-server
550
523
uninstall-server:
551
524
        -rm --force $(PREFIX)/sbin/mandos \
552
525
                $(PREFIX)/sbin/mandos-ctl \
559
532
        update-rc.d -f mandos remove
560
533
        -rmdir $(CONFDIR)
561
534
 
562
 
.PHONY: uninstall-client
563
535
uninstall-client:
564
536
# Refuse to uninstall client if /etc/crypttab is explicitly configured
565
537
# to use it.
601
573
            done; \
602
574
        fi
603
575
 
604
 
.PHONY: purge
605
576
purge: purge-server purge-client
606
577
 
607
 
.PHONY: purge-server
608
578
purge-server: uninstall-server
609
579
        -rm --force $(CONFDIR)/mandos.conf $(CONFDIR)/clients.conf \
610
580
                $(DESTDIR)/etc/dbus-1/system.d/mandos.conf
615
585
                $(DESTDIR)/var/run/mandos.pid
616
586
        -rmdir $(CONFDIR)
617
587
 
618
 
.PHONY: purge-client
619
588
purge-client: uninstall-client
620
589
        -shred --remove $(KEYDIR)/seckey.txt $(KEYDIR)/tls-privkey.pem
621
590
        -rm --force $(CONFDIR)/plugin-runner.conf \