/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.15
 
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)
97
95
AVAHI_CFLAGS:=$(shell $(PKG_CONFIG) --cflags-only-I avahi-core)
98
96
AVAHI_LIBS:=$(shell $(PKG_CONFIG) --libs avahi-core)
99
 
GPGME_CFLAGS:=$(shell $(PKG_CONFIG) --cflags-only-I gpgme 2>/dev/null \
100
 
        || gpgme-config --cflags; getconf LFS_CFLAGS)
101
 
GPGME_LIBS:=$(shell $(PKG_CONFIG) --libs gpgme 2>/dev/null \
102
 
        || 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; \
103
99
        getconf LFS_LDFLAGS)
104
100
LIBNL3_CFLAGS:=$(shell $(PKG_CONFIG) --cflags-only-I libnl-route-3.0)
105
101
LIBNL3_LIBS:=$(shell $(PKG_CONFIG) --libs libnl-route-3.0)
158
154
 
159
155
objects:=$(addsuffix .o,$(CPROGS))
160
156
 
161
 
.PHONY: all
162
157
all: $(PROGS) mandos.lsm
163
158
 
164
 
.PHONY: doc
165
159
doc: $(DOCS)
166
160
 
167
 
.PHONY: html
168
161
html: $(htmldocs)
169
162
 
170
163
%.5: %.xml common.ent legalnotice.xml
287
280
                $@)
288
281
 
289
282
# Need to add the GnuTLS, Avahi and GPGME libraries
290
 
plugins.d/mandos-client: CFLAGS += $(GNUTLS_CFLAGS) $(strip \
291
 
        ) $(AVAHI_CFLAGS) $(GPGME_CFLAGS)
292
 
plugins.d/mandos-client: LDLIBS += $(GNUTLS_LIBS) $(strip \
293
 
        ) $(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 $@
294
288
 
295
289
# Need to add the libnl-route library
296
 
plugin-helpers/mandos-client-iprouteadddel: CFLAGS += $(LIBNL3_CFLAGS)
297
 
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 $@
298
293
 
299
294
# Need to add the GLib and pthread libraries
300
 
dracut-module/password-agent: CFLAGS += $(GLIB_CFLAGS)
301
 
# Note: -lpthread is unnecessary with the GNU C library 2.34 or later
302
 
dracut-module/password-agent: LDLIBS += $(GLIB_LIBS) -lpthread
303
 
 
304
 
.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
 
305
305
clean:
306
306
        -rm --force $(CPROGS) $(objects) $(htmldocs) $(DOCS) core
307
307
 
308
 
.PHONY: distclean
309
308
distclean: clean
310
 
.PHONY: mostlyclean
311
309
mostlyclean: clean
312
 
.PHONY: maintainer-clean
313
310
maintainer-clean: clean
314
311
        -rm --force --recursive keydir confdir statedir
315
312
 
316
 
.PHONY: check
317
313
check: all
318
314
        ./mandos --check
319
315
        ./mandos-ctl --check
323
319
        ./dracut-module/password-agent --test
324
320
 
325
321
# Run the client with a local config and key
326
 
.PHONY: run-client
327
322
run-client: all keydir/seckey.txt keydir/pubkey.txt \
328
323
                        keydir/tls-privkey.pem keydir/tls-pubkey.pem
329
324
        @echo '######################################################'
357
352
keydir/seckey.txt keydir/pubkey.txt keydir/tls-privkey.pem keydir/tls-pubkey.pem: mandos-keygen
358
353
        install --directory keydir
359
354
        ./mandos-keygen --dir keydir --force
360
 
        if ! [ -e keydir/tls-privkey.pem ]; then \
361
 
                install --mode=u=rw /dev/null keydir/tls-privkey.pem; \
362
 
        fi
363
 
        if ! [ -e keydir/tls-pubkey.pem ]; then \
364
 
                install --mode=u=rw /dev/null keydir/tls-pubkey.pem; \
365
 
        fi
366
355
 
367
356
# Run the server with a local config
368
 
.PHONY: run-server
369
357
run-server: confdir/mandos.conf confdir/clients.conf statedir
370
358
        ./mandos --debug --no-dbus --configdir=confdir \
371
359
                --statedir=statedir $(SERVERARGS)
382
370
statedir:
383
371
        install --directory statedir
384
372
 
385
 
.PHONY: install
386
373
install: install-server install-client-nokey
387
374
 
388
 
.PHONY: install-html
389
375
install-html: html
390
376
        install --directory $(htmldir)
391
377
        install --mode=u=rw,go=r --target-directory=$(htmldir) \
392
378
                $(htmldocs)
393
379
 
394
 
.PHONY: install-server
395
380
install-server: doc
396
381
        install --directory $(CONFDIR)
397
382
        if install --directory --mode=u=rwx --owner=$(USER) \
405
390
                install --mode=u=rw,go=r tmpfiles.d-mandos.conf \
406
391
                        $(TMPFILES)/mandos.conf; \
407
392
        fi
408
 
        if [ "$(SYSUSERS)" != "$(DESTDIR)" \
409
 
                        -a -d "$(SYSUSERS)" ]; then \
410
 
                install --mode=u=rw,go=r sysusers.d-mandos.conf \
411
 
                        $(SYSUSERS)/mandos.conf; \
412
 
        fi
413
393
        install --mode=u=rwx,go=rx mandos $(PREFIX)/sbin/mandos
414
394
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
415
395
                mandos-ctl
444
424
        gzip --best --to-stdout intro.8mandos \
445
425
                > $(MANDIR)/man8/intro.8mandos.gz
446
426
 
447
 
.PHONY: install-client-nokey
448
427
install-client-nokey: all doc
449
428
        install --directory $(LIBDIR)/mandos $(CONFDIR)
450
429
        install --directory --mode=u=rwx $(KEYDIR) \
451
430
                $(LIBDIR)/mandos/plugins.d \
452
431
                $(LIBDIR)/mandos/plugin-helpers
453
 
        if [ "$(SYSUSERS)" != "$(DESTDIR)" \
454
 
                        -a -d "$(SYSUSERS)" ]; then \
455
 
                install --mode=u=rw,go=r sysusers.d-mandos.conf \
456
 
                        $(SYSUSERS)/mandos-client.conf; \
457
 
        fi
458
432
        if [ "$(CONFDIR)" != "$(LIBDIR)/mandos" ]; then \
459
433
                install --mode=u=rwx \
460
434
                        --directory "$(CONFDIR)/plugins.d" \
529
503
        gzip --best --to-stdout dracut-module/password-agent.8mandos \
530
504
                > $(MANDIR)/man8/password-agent.8mandos.gz
531
505
 
532
 
.PHONY: install-client
533
506
install-client: install-client-nokey
534
507
# Post-installation stuff
535
508
        -$(PREFIX)/sbin/mandos-keygen --dir "$(KEYDIR)"
545
518
        fi
546
519
        echo "Now run mandos-keygen --password --dir $(KEYDIR)"
547
520
 
548
 
.PHONY: uninstall
549
521
uninstall: uninstall-server uninstall-client
550
522
 
551
 
.PHONY: uninstall-server
552
523
uninstall-server:
553
524
        -rm --force $(PREFIX)/sbin/mandos \
554
525
                $(PREFIX)/sbin/mandos-ctl \
561
532
        update-rc.d -f mandos remove
562
533
        -rmdir $(CONFDIR)
563
534
 
564
 
.PHONY: uninstall-client
565
535
uninstall-client:
566
536
# Refuse to uninstall client if /etc/crypttab is explicitly configured
567
537
# to use it.
603
573
            done; \
604
574
        fi
605
575
 
606
 
.PHONY: purge
607
576
purge: purge-server purge-client
608
577
 
609
 
.PHONY: purge-server
610
578
purge-server: uninstall-server
611
579
        -rm --force $(CONFDIR)/mandos.conf $(CONFDIR)/clients.conf \
612
580
                $(DESTDIR)/etc/dbus-1/system.d/mandos.conf
617
585
                $(DESTDIR)/var/run/mandos.pid
618
586
        -rmdir $(CONFDIR)
619
587
 
620
 
.PHONY: purge-client
621
588
purge-client: uninstall-client
622
589
        -shred --remove $(KEYDIR)/seckey.txt $(KEYDIR)/tls-privkey.pem
623
590
        -rm --force $(CONFDIR)/plugin-runner.conf \