/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:
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 \
8
8
#       -Wunreachable-code 
9
9
#DEBUG=-ggdb3
10
10
# For info about _FORTIFY_SOURCE, see
11
 
# <http://www.kernel.org/doc/man-pages/online/pages/man7/feature_test_macros.7.html>
12
 
# and <http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html>.
13
 
FORTIFY=-D_FORTIFY_SOURCE=2 -fstack-protector-all -fPIC
14
 
LINK_FORTIFY_LD=-z relro -z now
15
 
LINK_FORTIFY=
16
 
ifndef BROKEN_PIE
17
 
FORTIFY += -fPIE
18
 
LINK_FORTIFY_LD += -fPIE
19
 
LINK_FORTIFY += -pie
20
 
endif
 
11
# <http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html>
 
12
FORTIFY=-D_FORTIFY_SOURCE=2 -fstack-protector-all -fPIE -pie
 
13
LINK_FORTIFY=-z relro -pie
21
14
#COVERAGE=--coverage
22
15
OPTIMIZE=-Os
23
16
LANGUAGE=-std=gnu99
24
17
htmldir=man
25
 
version=1.0.14
 
18
version=1.0.2
26
19
SED=sed
27
20
 
28
21
## Use these settings for a traditional /usr/local install
41
34
INITRAMFSTOOLS=$(DESTDIR)/usr/share/initramfs-tools
42
35
##
43
36
 
44
 
GNUTLS_CFLAGS=$(shell pkg-config --cflags-only-I gnutls)
45
 
GNUTLS_LIBS=$(shell pkg-config --libs gnutls)
 
37
GNUTLS_CFLAGS=$(shell libgnutls-config --cflags)
 
38
GNUTLS_LIBS=$(shell libgnutls-config --libs)
46
39
AVAHI_CFLAGS=$(shell pkg-config --cflags-only-I avahi-core)
47
40
AVAHI_LIBS=$(shell pkg-config --libs avahi-core)
48
 
GPGME_CFLAGS=$(shell gpgme-config --cflags; getconf LFS_CFLAGS)
49
 
GPGME_LIBS=$(shell gpgme-config --libs; getconf LFS_LIBS; \
50
 
        getconf LFS_LDFLAGS)
 
41
GPGME_CFLAGS=$(shell gpgme-config --cflags)
 
42
GPGME_LIBS=$(shell gpgme-config --libs)
51
43
 
52
44
# Do not change these two
53
45
CFLAGS=$(WARN) $(DEBUG) $(FORTIFY) $(COVERAGE) $(OPTIMIZE) \
54
46
        $(LANGUAGE) $(GNUTLS_CFLAGS) $(AVAHI_CFLAGS) $(GPGME_CFLAGS) \
55
47
        -DVERSION='"$(version)"'
56
 
LDFLAGS=$(COVERAGE) $(LINK_FORTIFY) $(foreach flag,$(LINK_FORTIFY_LD),-Xlinker $(flag))
 
48
LDFLAGS=$(COVERAGE) $(LINK_FORTIFY)
57
49
 
58
50
# Commands to format a DocBook <refentry> document into a manual page
59
51
DOCBOOKTOMAN=cd $(dir $<); xsltproc --nonet --xinclude \
84
76
PLUGINS=plugins.d/password-prompt plugins.d/mandos-client \
85
77
        plugins.d/usplash plugins.d/splashy plugins.d/askpass-fifo
86
78
CPROGS=plugin-runner $(PLUGINS)
87
 
PROGS=mandos mandos-keygen mandos-ctl $(CPROGS)
 
79
PROGS=mandos mandos-keygen $(CPROGS)
88
80
DOCS=mandos.8 plugin-runner.8mandos mandos-keygen.8 \
89
81
        plugins.d/mandos-client.8mandos \
90
82
        plugins.d/password-prompt.8mandos mandos.conf.5 \
158
150
# Update all these files with version number $(version)
159
151
common.ent: Makefile
160
152
        $(SED) --in-place \
161
 
                --expression='s/^\(<!ENTITY version "\)[^"]*">$$/\1$(version)">/' \
 
153
                --expression='s/^\(<ENTITY VERSION "\)[^"]*">$$/\1$(version)"/' \
162
154
                $@
163
155
 
164
156
mandos: Makefile
171
163
                --expression='s/^\(VERSION="\)[^"]*"$$/\1$(version)"/' \
172
164
                $@
173
165
 
174
 
mandos-ctl: Makefile
175
 
        $(SED) --in-place \
176
 
                --expression='s/^\(version = "\)[^"]*"$$/\1$(version)"/' \
177
 
                $@
178
 
 
179
166
mandos.lsm: Makefile
180
167
        $(SED) --in-place \
181
168
                --expression='s/^\(Version:\).*/\1\t$(version)/' \
183
170
        $(SED) --in-place \
184
171
                --expression='s/^\(Entered-date:\).*/\1\t$(shell date --rfc-3339=date --reference=Makefile)/' \
185
172
                $@
186
 
        $(SED) --in-place \
187
 
                --expression='s/\(mandos_\)[0-9.]\+\(\.orig\.tar\.gz\)/\1$(version)\2/' \
188
 
                $@
189
173
 
190
174
plugins.d/mandos-client: plugins.d/mandos-client.o
191
175
        $(LINK.o) $(GNUTLS_LIBS) $(AVAHI_LIBS) $(GPGME_LIBS) \
210
194
run-client: all keydir/seckey.txt keydir/pubkey.txt
211
195
        ./plugin-runner --plugin-dir=plugins.d \
212
196
                --config-file=plugin-runner.conf \
213
 
                --options-for=mandos-client:--seckey=keydir/seckey.txt,--pubkey=keydir/pubkey.txt \
214
 
                $(CLIENTARGS)
 
197
                --options-for=mandos-client:--seckey=keydir/seckey.txt,--pubkey=keydir/pubkey.txt
215
198
 
216
199
# Used by run-client
217
200
keydir/seckey.txt keydir/pubkey.txt: mandos-keygen
220
203
 
221
204
# Run the server with a local config
222
205
run-server: confdir/mandos.conf confdir/clients.conf
223
 
        ./mandos --debug --no-dbus --configdir=confdir $(SERVERARGS)
 
206
        ./mandos --debug --configdir=confdir
224
207
 
225
208
# Used by run-server
226
209
confdir/mandos.conf: mandos.conf
292
275
        install --mode=u=rw,go=r initramfs-tools-hook-conf \
293
276
                $(INITRAMFSTOOLS)/conf-hooks.d/mandos
294
277
        install initramfs-tools-script \
295
 
                $(INITRAMFSTOOLS)/scripts/init-premount/mandos
 
278
                $(INITRAMFSTOOLS)/scripts/local-top/mandos
296
279
        install --mode=u=rw,go=r plugin-runner.conf $(CONFDIR)
297
280
        gzip --best --to-stdout mandos-keygen.8 \
298
281
                > $(MANDIR)/man8/mandos-keygen.8.gz
339
322
                $(PREFIX)/lib/mandos/plugins.d/askpass-fifo \
340
323
                $(INITRAMFSTOOLS)/hooks/mandos \
341
324
                $(INITRAMFSTOOLS)/conf-hooks.d/mandos \
342
 
                $(INITRAMFSTOOLS)/scripts/init-premount/mandos \
 
325
                $(INITRAMFSTOOLS)/scripts/local-top/mandos \
343
326
                $(MANDIR)/man8/plugin-runner.8mandos.gz \
344
327
                $(MANDIR)/man8/mandos-keygen.8.gz \
345
328
                $(MANDIR)/man8/password-prompt.8mandos.gz \