/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

First version of a somewhat complete D-Bus server interface.  Also
change user/group name to "_mandos".

* debian/mandos.postinst: Rename old "mandos" user and group to
                          "_mandos"; create "_mandos" user and group
                          if none exist.
* debian/mandos-client.postinst: - '' -

* initramfs-tools-hook: Try "_mandos" before "mandos" as user and
                        group name.

* mandos (_datetime_to_dbus_struct): New; was previously local.
  (Client.started): Renamed to "last_started".  All users changed.
  (Client.started): New; boolean.
  (Client.dbus_object_path): New.
  (Client.check_command): Renamed to "checker_command".  All users
                          changed.
  (Client.__init__): Set and use "self.dbus_object_path".  Set
                     "self.started".
  (Client.start): Update "self.started".  Emit "self.PropertyChanged"
                  signals for both "started" and "last_started".
  (Client.stop): Update "self.started".  Emit "self.PropertyChanged"
                 signal for "started".
  (Client.checker_callback): Take additional "command" argument.  All
                             callers changed. Emit
                             "self.PropertyChanged" signal.
  (Client.bump_timeout): Emit "self.PropertyChanged" signal for
                         "last_checked_ok".
  (Client.start_checker): Emit "self.PropertyChanged" signal for
                          "checker_running".
  (Client.stop_checker): Emit "self.PropertyChanged" signal for
                         "checker_running".
  (Client.still_valid): Bug fix: use "getattr(self, started, False)"
                        instead of "self.started" in case this client
                        object is so new that the "started" attribute
                        has not been created yet.
  (Client.IntervalChanged, Client.CheckerIsRunning, Client.GetChecker,
  Client.GetCreated, Client.GetFingerprint, Client.GetHost,
  Client.GetInterval, Client.GetName, Client.GetStarted,
  Client.GetTimeout, Client.StateChanged, Client.TimeoutChanged):
  Removed; all callers changed.
  (Client.CheckerCompleted): Add "condition" and "command" arguments.
                             All callers changed.
  (Client.GetAllProperties, Client.PropertyChanged): New.
  (Client.StillValid): Renamed to "IsStillValid".
  (Client.StartChecker): Changed to its own function to avoid the
                         return value from "Client.start_checker()".
  (Client.Stop): Changed to its own function to avoid the return value
                 from "Client.stop()".
  (main): Try "_mandos" before "mandos" as user and group name.
          Removed inner function "remove_from_clients".  New inner
          class "MandosServer".

Show diffs side-by-side

added added

removed removed

Lines of Context:
9
9
#DEBUG=-ggdb3
10
10
# For info about _FORTIFY_SOURCE, see
11
11
# <http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html>
12
 
FORTIFY=-D_FORTIFY_SOURCE=2 -fstack-protector-all
 
12
FORTIFY=-D_FORTIFY_SOURCE=2 -fstack-protector-all -fPIE -pie
 
13
LINK_FORTIFY=-z relro -pie
13
14
#COVERAGE=--coverage
14
15
OPTIMIZE=-Os
15
16
LANGUAGE=-std=gnu99
16
17
htmldir=man
17
 
version=1.0
 
18
version=1.0.2
18
19
SED=sed
19
20
 
20
21
## Use these settings for a traditional /usr/local install
44
45
CFLAGS=$(WARN) $(DEBUG) $(FORTIFY) $(COVERAGE) $(OPTIMIZE) \
45
46
        $(LANGUAGE) $(GNUTLS_CFLAGS) $(AVAHI_CFLAGS) $(GPGME_CFLAGS) \
46
47
        -DVERSION='"$(version)"'
47
 
LDFLAGS=$(COVERAGE)
 
48
LDFLAGS=$(COVERAGE) $(LINK_FORTIFY)
48
49
 
49
50
# Commands to format a DocBook <refentry> document into a manual page
50
51
DOCBOOKTOMAN=cd $(dir $<); xsltproc --nonet --xinclude \
69
70
        /usr/share/xml/docbook/stylesheet/nwalsh/xhtml/docbook.xsl \
70
71
        $<; $(HTMLPOST) $@
71
72
# Fix citerefentry links
72
 
HTMLPOST=$(SED) --in-place --expression='s/\(<a class="citerefentry" href="\)\("><span class="citerefentry"><span class="refentrytitle">\)\([^<]*\)\(<\/span>(\)\([^)]*\)\()<\/span><\/a>\)/\1\3.\5\2\3\4\5\6/g'
 
73
HTMLPOST=$(SED) --in-place \
 
74
        --expression='s/\(<a class="citerefentry" href="\)\("><span class="citerefentry"><span class="refentrytitle">\)\([^<]*\)\(<\/span>(\)\([^)]*\)\()<\/span><\/a>\)/\1\3.\5\2\3\4\5\6/g'
73
75
 
74
76
PLUGINS=plugins.d/password-prompt plugins.d/mandos-client \
75
77
        plugins.d/usplash plugins.d/splashy plugins.d/askpass-fifo
79
81
        plugins.d/mandos-client.8mandos \
80
82
        plugins.d/password-prompt.8mandos mandos.conf.5 \
81
83
        plugins.d/usplash.8mandos plugins.d/splashy.8mandos \
82
 
        mandos-clients.conf.5
 
84
        plugins.d/askpass-fifo.8mandos mandos-clients.conf.5
83
85
 
84
86
htmldocs=$(addsuffix .xhtml,$(DOCS))
85
87
 
86
88
objects=$(addsuffix .o,$(CPROGS))
87
89
 
88
 
all: $(PROGS)
 
90
all: $(PROGS) mandos.lsm
89
91
 
90
92
doc: $(DOCS)
91
93
 
147
149
 
148
150
# Update all these files with version number $(version)
149
151
common.ent: Makefile
150
 
        $(SED) --in-place --expression='s/^\(<ENTITY VERSION "\)[^"]*">$$/\1$(version)"/' $@
 
152
        $(SED) --in-place \
 
153
                --expression='s/^\(<ENTITY VERSION "\)[^"]*">$$/\1$(version)"/' \
 
154
                $@
151
155
 
152
156
mandos: Makefile
153
 
        $(SED) --in-place --expression='s/^\(version = "\)[^"]*"$$/\1$(version)"/' $@
 
157
        $(SED) --in-place \
 
158
                --expression='s/^\(version = "\)[^"]*"$$/\1$(version)"/' \
 
159
                $@
154
160
 
155
161
mandos-keygen: Makefile
156
 
        $(SED) --in-place --expression='s/^\(VERSION="\)[^"]*"$$/\1$(version)"/' $@
 
162
        $(SED) --in-place \
 
163
                --expression='s/^\(VERSION="\)[^"]*"$$/\1$(version)"/' \
 
164
                $@
 
165
 
 
166
mandos.lsm: Makefile
 
167
        $(SED) --in-place \
 
168
                --expression='s/^\(Version:\).*/\1\t$(version)/' \
 
169
                $@
 
170
        $(SED) --in-place \
 
171
                --expression='s/^\(Entered-date:\).*/\1\t$(shell date --rfc-3339=date --reference=Makefile)/' \
 
172
                $@
157
173
 
158
174
plugins.d/mandos-client: plugins.d/mandos-client.o
159
175
        $(LINK.o) $(GNUTLS_LIBS) $(AVAHI_LIBS) $(GPGME_LIBS) \
201
217
 
202
218
install: install-server install-client-nokey
203
219
 
204
 
install-html: $(htmldocs)
 
220
install-html: html
205
221
        install --directory $(htmldir)
206
222
        install --mode=u=rw,go=r --target-directory=$(htmldir) \
207
223
                $(htmldocs)
273
289
                > $(MANDIR)/man8/usplash.8mandos.gz
274
290
        gzip --best --to-stdout plugins.d/splashy.8mandos \
275
291
                > $(MANDIR)/man8/splashy.8mandos.gz
 
292
        gzip --best --to-stdout plugins.d/askpass-fifo.8mandos \
 
293
                > $(MANDIR)/man8/askpass-fifo.8mandos.gz
276
294
 
277
295
install-client: install-client-nokey
278
296
# Post-installation stuff
301
319
                $(PREFIX)/lib/mandos/plugins.d/mandos-client \
302
320
                $(PREFIX)/lib/mandos/plugins.d/usplash \
303
321
                $(PREFIX)/lib/mandos/plugins.d/splashy \
 
322
                $(PREFIX)/lib/mandos/plugins.d/askpass-fifo \
304
323
                $(INITRAMFSTOOLS)/hooks/mandos \
305
324
                $(INITRAMFSTOOLS)/conf-hooks.d/mandos \
306
325
                $(INITRAMFSTOOLS)/scripts/local-top/mandos \
309
328
                $(MANDIR)/man8/password-prompt.8mandos.gz \
310
329
                $(MANDIR)/man8/usplash.8mandos.gz \
311
330
                $(MANDIR)/man8/splashy.8mandos.gz \
 
331
                $(MANDIR)/man8/askpass-fifo.8mandos.gz \
312
332
                $(MANDIR)/man8/mandos-client.8mandos.gz
313
333
        -rmdir $(PREFIX)/lib/mandos/plugins.d $(CONFDIR)/plugins.d \
314
334
                 $(PREFIX)/lib/mandos $(CONFDIR) $(KEYDIR)