/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: 2008-12-10 01:26:02 UTC
  • mfrom: (237.1.2 mandos)
  • Revision ID: teddy@fukt.bsnet.se-20081210012602-vhz3h75xkj24t340
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
78
80
DOCS=mandos.8 plugin-runner.8mandos mandos-keygen.8 \
79
81
        plugins.d/mandos-client.8mandos \
80
82
        plugins.d/password-prompt.8mandos mandos.conf.5 \
81
 
        mandos-clients.conf.5
 
83
        plugins.d/usplash.8mandos plugins.d/splashy.8mandos \
 
84
        plugins.d/askpass-fifo.8mandos mandos-clients.conf.5
82
85
 
83
86
htmldocs=$(addsuffix .xhtml,$(DOCS))
84
87
 
85
88
objects=$(addsuffix .o,$(CPROGS))
86
89
 
87
 
all: $(PROGS)
 
90
all: $(PROGS) mandos.lsm
88
91
 
89
92
doc: $(DOCS)
90
93
 
146
149
 
147
150
# Update all these files with version number $(version)
148
151
common.ent: Makefile
149
 
        $(SED) --in-place --expression='s/^\(<ENTITY VERSION "\)[^"]*">$$/\1$(version)"/' $@
 
152
        $(SED) --in-place \
 
153
                --expression='s/^\(<ENTITY VERSION "\)[^"]*">$$/\1$(version)"/' \
 
154
                $@
150
155
 
151
156
mandos: Makefile
152
 
        $(SED) --in-place --expression='s/^\(version = "\)[^"]*"/\1$(version)"/' $@
 
157
        $(SED) --in-place \
 
158
                --expression='s/^\(version = "\)[^"]*"$$/\1$(version)"/' \
 
159
                $@
153
160
 
154
161
mandos-keygen: Makefile
155
 
        $(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
                $@
156
173
 
157
174
plugins.d/mandos-client: plugins.d/mandos-client.o
158
175
        $(LINK.o) $(GNUTLS_LIBS) $(AVAHI_LIBS) $(GPGME_LIBS) \
200
217
 
201
218
install: install-server install-client-nokey
202
219
 
203
 
install-html: $(htmldocs)
 
220
install-html: html
204
221
        install --directory $(htmldir)
205
222
        install --mode=u=rw,go=r --target-directory=$(htmldir) \
206
223
                $(htmldocs)
268
285
                > $(MANDIR)/man8/password-prompt.8mandos.gz
269
286
        gzip --best --to-stdout plugins.d/mandos-client.8mandos \
270
287
                > $(MANDIR)/man8/mandos-client.8mandos.gz
 
288
        gzip --best --to-stdout plugins.d/usplash.8mandos \
 
289
                > $(MANDIR)/man8/usplash.8mandos.gz
 
290
        gzip --best --to-stdout plugins.d/splashy.8mandos \
 
291
                > $(MANDIR)/man8/splashy.8mandos.gz
 
292
        gzip --best --to-stdout plugins.d/askpass-fifo.8mandos \
 
293
                > $(MANDIR)/man8/askpass-fifo.8mandos.gz
271
294
 
272
295
install-client: install-client-nokey
273
296
# Post-installation stuff
296
319
                $(PREFIX)/lib/mandos/plugins.d/mandos-client \
297
320
                $(PREFIX)/lib/mandos/plugins.d/usplash \
298
321
                $(PREFIX)/lib/mandos/plugins.d/splashy \
 
322
                $(PREFIX)/lib/mandos/plugins.d/askpass-fifo \
299
323
                $(INITRAMFSTOOLS)/hooks/mandos \
300
324
                $(INITRAMFSTOOLS)/conf-hooks.d/mandos \
301
325
                $(INITRAMFSTOOLS)/scripts/local-top/mandos \
302
326
                $(MANDIR)/man8/plugin-runner.8mandos.gz \
303
327
                $(MANDIR)/man8/mandos-keygen.8.gz \
304
328
                $(MANDIR)/man8/password-prompt.8mandos.gz \
 
329
                $(MANDIR)/man8/usplash.8mandos.gz \
 
330
                $(MANDIR)/man8/splashy.8mandos.gz \
 
331
                $(MANDIR)/man8/askpass-fifo.8mandos.gz \
305
332
                $(MANDIR)/man8/mandos-client.8mandos.gz
306
333
        -rmdir $(PREFIX)/lib/mandos/plugins.d $(CONFDIR)/plugins.d \
307
334
                 $(PREFIX)/lib/mandos $(CONFDIR) $(KEYDIR)