/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:
1
1
WARN=-O -Wall -Wformat=2 -Winit-self -Wmissing-include-dirs \
2
2
        -Wswitch-default -Wswitch-enum -Wunused-parameter \
3
 
        -Wstrict-aliasing=1 -Wextra -Wfloat-equal -Wundef -Wshadow \
 
3
        -Wstrict-aliasing=2 -Wextra -Wfloat-equal -Wundef -Wshadow \
4
4
        -Wunsafe-loop-optimizations -Wpointer-arith \
5
5
        -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings \
6
6
        -Wconversion -Wstrict-prototypes -Wold-style-definition \
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 -fPIC -fPIE
13
 
LINK_FORTIFY_LD=-z relro -fPIE
14
 
LINK_FORTIFY=-pie
 
12
FORTIFY=-D_FORTIFY_SOURCE=2 -fstack-protector-all -fPIE -pie
 
13
LINK_FORTIFY=-z relro -pie
15
14
#COVERAGE=--coverage
16
15
OPTIMIZE=-Os
17
16
LANGUAGE=-std=gnu99
18
17
htmldir=man
19
 
version=1.0.8
 
18
version=1.0.2
20
19
SED=sed
21
20
 
22
21
## Use these settings for a traditional /usr/local install
39
38
GNUTLS_LIBS=$(shell libgnutls-config --libs)
40
39
AVAHI_CFLAGS=$(shell pkg-config --cflags-only-I avahi-core)
41
40
AVAHI_LIBS=$(shell pkg-config --libs avahi-core)
42
 
GPGME_CFLAGS=$(shell gpgme-config --cflags; getconf LFS_CFLAGS)
43
 
GPGME_LIBS=$(shell gpgme-config --libs; getconf LFS_LIBS; \
44
 
        getconf LFS_LDFLAGS)
 
41
GPGME_CFLAGS=$(shell gpgme-config --cflags)
 
42
GPGME_LIBS=$(shell gpgme-config --libs)
45
43
 
46
44
# Do not change these two
47
45
CFLAGS=$(WARN) $(DEBUG) $(FORTIFY) $(COVERAGE) $(OPTIMIZE) \
48
46
        $(LANGUAGE) $(GNUTLS_CFLAGS) $(AVAHI_CFLAGS) $(GPGME_CFLAGS) \
49
47
        -DVERSION='"$(version)"'
50
 
LDFLAGS=$(COVERAGE) $(LINK_FORTIFY) $(foreach flag,$(LINK_FORTIFY_LD),-Xlinker $(flag))
 
48
LDFLAGS=$(COVERAGE) $(LINK_FORTIFY)
51
49
 
52
50
# Commands to format a DocBook <refentry> document into a manual page
53
51
DOCBOOKTOMAN=cd $(dir $<); xsltproc --nonet --xinclude \
78
76
PLUGINS=plugins.d/password-prompt plugins.d/mandos-client \
79
77
        plugins.d/usplash plugins.d/splashy plugins.d/askpass-fifo
80
78
CPROGS=plugin-runner $(PLUGINS)
81
 
PROGS=mandos mandos-keygen mandos-ctl $(CPROGS)
 
79
PROGS=mandos mandos-keygen $(CPROGS)
82
80
DOCS=mandos.8 plugin-runner.8mandos mandos-keygen.8 \
83
81
        plugins.d/mandos-client.8mandos \
84
82
        plugins.d/password-prompt.8mandos mandos.conf.5 \
152
150
# Update all these files with version number $(version)
153
151
common.ent: Makefile
154
152
        $(SED) --in-place \
155
 
                --expression='s/^\(<!ENTITY version "\)[^"]*">$$/\1$(version)">/' \
 
153
                --expression='s/^\(<ENTITY VERSION "\)[^"]*">$$/\1$(version)"/' \
156
154
                $@
157
155
 
158
156
mandos: Makefile
165
163
                --expression='s/^\(VERSION="\)[^"]*"$$/\1$(version)"/' \
166
164
                $@
167
165
 
168
 
mandos-ctl: Makefile
169
 
        $(SED) --in-place \
170
 
                --expression='s/^\(version = "\)[^"]*"$$/\1$(version)"/' \
171
 
                $@
172
 
 
173
166
mandos.lsm: Makefile
174
167
        $(SED) --in-place \
175
168
                --expression='s/^\(Version:\).*/\1\t$(version)/' \
177
170
        $(SED) --in-place \
178
171
                --expression='s/^\(Entered-date:\).*/\1\t$(shell date --rfc-3339=date --reference=Makefile)/' \
179
172
                $@
180
 
        $(SED) --in-place \
181
 
                --expression='s/\(mandos_\)[0-9.]\+\(\.orig\.tar\.gz\)/\1$(version)\2/' \
182
 
                $@
183
173
 
184
174
plugins.d/mandos-client: plugins.d/mandos-client.o
185
175
        $(LINK.o) $(GNUTLS_LIBS) $(AVAHI_LIBS) $(GPGME_LIBS) \
204
194
run-client: all keydir/seckey.txt keydir/pubkey.txt
205
195
        ./plugin-runner --plugin-dir=plugins.d \
206
196
                --config-file=plugin-runner.conf \
207
 
                --options-for=mandos-client:--seckey=keydir/seckey.txt,--pubkey=keydir/pubkey.txt \
208
 
                $(CLIENTARGS)
 
197
                --options-for=mandos-client:--seckey=keydir/seckey.txt,--pubkey=keydir/pubkey.txt
209
198
 
210
199
# Used by run-client
211
200
keydir/seckey.txt keydir/pubkey.txt: mandos-keygen
214
203
 
215
204
# Run the server with a local config
216
205
run-server: confdir/mandos.conf confdir/clients.conf
217
 
        ./mandos --debug --no-dbus --configdir=confdir $(SERVERARGS)
 
206
        ./mandos --debug --configdir=confdir
218
207
 
219
208
# Used by run-server
220
209
confdir/mandos.conf: mandos.conf
286
275
        install --mode=u=rw,go=r initramfs-tools-hook-conf \
287
276
                $(INITRAMFSTOOLS)/conf-hooks.d/mandos
288
277
        install initramfs-tools-script \
289
 
                $(INITRAMFSTOOLS)/scripts/init-premount/mandos
 
278
                $(INITRAMFSTOOLS)/scripts/local-top/mandos
290
279
        install --mode=u=rw,go=r plugin-runner.conf $(CONFDIR)
291
280
        gzip --best --to-stdout mandos-keygen.8 \
292
281
                > $(MANDIR)/man8/mandos-keygen.8.gz
333
322
                $(PREFIX)/lib/mandos/plugins.d/askpass-fifo \
334
323
                $(INITRAMFSTOOLS)/hooks/mandos \
335
324
                $(INITRAMFSTOOLS)/conf-hooks.d/mandos \
336
 
                $(INITRAMFSTOOLS)/scripts/init-premount/mandos \
 
325
                $(INITRAMFSTOOLS)/scripts/local-top/mandos \
337
326
                $(MANDIR)/man8/plugin-runner.8mandos.gz \
338
327
                $(MANDIR)/man8/mandos-keygen.8.gz \
339
328
                $(MANDIR)/man8/password-prompt.8mandos.gz \