resource-asm: started writing monitor support.
[profile/ivi/murphy.git] / systemd-204-src-rpm-shared-bus-lib-fedora-19.patch
1 *** SPECS/systemd.spec.orig     2013-10-08 15:41:46.553548626 +0300
2 --- SPECS/systemd.spec  2013-10-08 16:42:09.438577231 +0300
3 ***************
4 *** 78,83 ****
5 --- 78,87 ----
6   # kernel-install patch for grubby, drop if grubby is obsolete
7   Patch1000:      kernel-install-grubby.patch
8   
9 + # patches to turn libsystemd-bus into a publicly available shared library
10 + Patch10000: 0001-systemd-bus-create-a-shared-library-for-public-consu.patch
11 + Patch10001: 0002-systemd-bus-add-linker-script-for-exporting-public-s.patch
12
13   %global num_patches %{lua: c=0; for i,p in ipairs(patches) do c=c+1; end; print(c);}
14   
15   BuildRequires:  libcap-devel
16 ***************
17 *** 179,184 ****
18 --- 183,204 ----
19   %description devel
20   Development headers and auxiliary files for developing applications for systemd.
21   
22 + %package libs-dbus
23 + Summary:        systemd D-Bus client library
24 + License:        LGPLV2+
25 + Requires:       systemd-libs = %{version}
26
27 + %description libs-dbus
28 + D-Bus library from the systemd sources.
29
30 + %package libs-dbus-devel
31 + Summary:        Development headers for systemd-libs-dbus
32 + License:        LGPLv2+
33 + Requires:       systemd-devel = %{version}
34
35 + %description libs-dbus-devel
36 + Development files for the D-Bus library from the systemd sources.
37
38   %package sysv
39   Summary:        SysV tools for systemd
40   License:        LGPLv2+
41 ***************
42 *** 813,818 ****
43 --- 833,849 ----
44   %dir %{_datadir}/gtk-doc/html/libudev
45   %{_datadir}/gtk-doc/html/libudev/*
46   
47 + %files libs-dbus
48 + %{_libdir}/libsystemd-bus.so.0.0.0
49 + %{_libdir}/libsystemd-bus.so.0
50
51 + %files libs-dbus-devel
52 + %{_includedir}/systemd/sd-bus.h
53 + %{_includedir}/systemd/sd-bus-protocol.h
54 + %{_includedir}/systemd/bus
55 + %{_libdir}/libsystemd-bus.so
56 + %{_libdir}/pkgconfig/libsystemd-bus.pc
57
58   %files sysv
59   %{_bindir}/systemd-sysv-convert
60   
61 *** /dev/null   2013-10-07 20:46:19.236668618 +0300
62 --- SOURCES/0001-systemd-bus-create-a-shared-library-for-public-consu.patch     2013-10-08 16:42:36.058540733 +0300
63 ***************
64 *** 0 ****
65 --- 1,1235 ----
66 + From bdc2ebcf236cf83a8e3f94d438f6c2c63f9379df Mon Sep 17 00:00:00 2001
67 + From: Fedora systemd team <systemd-maint@redhat.com>
68 + Date: Tue, 8 Oct 2013 15:00:16 +0300
69 + Subject: [PATCH 1/2] systemd-bus: create a shared library for public
70 +  consumption.
71
72 + For testing systemd-bus as a libdbus replacement, create a shared
73 + library out of it. Note that as a quick fix the symbols referenced
74 + by the various test-* unit tests have been marked public and
75 + exported from the library along with the public API. This is just
76 + a temporary workaround to get us going and we need something more
77 + civilized instead.
78 + ---
79 +  Makefile.am                             |  28 +++++++-
80 +  src/libsystemd-bus/bus-control.c        |  14 ++--
81 +  src/libsystemd-bus/bus-error.c          |  15 +++--
82 +  src/libsystemd-bus/bus-internal.c       |  15 +++--
83 +  src/libsystemd-bus/bus-kernel.c         |   2 +-
84 +  src/libsystemd-bus/bus-match.c          |  21 ++++--
85 +  src/libsystemd-bus/bus-message.c        | 114 +++++++++++++++++---------------
86 +  src/libsystemd-bus/bus-signature.c      |   9 ++-
87 +  src/libsystemd-bus/libsystemd-bus.pc.in |  19 ++++++
88 +  src/libsystemd-bus/sd-bus.c             |  78 +++++++++++-----------
89 +  10 files changed, 190 insertions(+), 125 deletions(-)
90 +  create mode 100644 src/libsystemd-bus/libsystemd-bus.pc.in
91
92 + diff --git a/Makefile.am b/Makefile.am
93 + index 3a196a6..96e6068 100644
94 + --- a/Makefile.am
95 + +++ b/Makefile.am
96 + @@ -55,6 +55,10 @@ LIBSYSTEMD_JOURNAL_CURRENT=10
97 +  LIBSYSTEMD_JOURNAL_REVISION=2
98 +  LIBSYSTEMD_JOURNAL_AGE=10
99 +  
100 + +LIBSYSTEMD_BUS_CURRENT=0
101 + +LIBSYSTEMD_BUS_REVISION=0
102 + +LIBSYSTEMD_BUS_AGE=0
103 + +
104 +  # Dirs of external packages
105 +  dbuspolicydir=@dbuspolicydir@
106 +  dbussessionservicedir=@dbussessionservicedir@
107 + @@ -1746,7 +1750,29 @@ libsystemd_bus_la_LIBADD =  \
108 +       libsystemd-shared.la \
109 +       libsystemd-daemon.la
110 +  
111 + -noinst_LTLIBRARIES += \
112 + +libsystemd_bus_la_LDFLAGS = \
113 + +     $(AM_LDFLAGS) \
114 + +     -version-info $(LIBSYSTEMD_BUS_CURRENT):$(LIBSYSTEMD_BUS_REVISION):$(LIBSYSTEMD_BUS_AGE) \
115 + +     -Wl,--version-script=$(top_srcdir)/src/libsystemd-bus/libsystemd-bus.sym
116 + +
117 + +pkginclude_HEADERS += \
118 + +     src/systemd/sd-bus.h \
119 + +     src/systemd/sd-bus-protocol.h
120 + +
121 + +libsystemd_bus_la_HEADERS = \
122 + +     src/libsystemd-bus/bus-message.h \
123 + +     src/libsystemd-bus/kdbus.h \
124 + +     src/shared/macro.h \
125 + +     src/shared/log.h \
126 + +     src/shared/time-util.h
127 + +
128 + +libsystemd_bus_ladir = \
129 + +     $(includedir)/systemd/bus
130 + +
131 + +pkgconfiglib_DATA += \
132 + +     src/libsystemd-bus/libsystemd-bus.pc
133 + +
134 + +lib_LTLIBRARIES += \
135 +       libsystemd-bus.la
136 +  
137 +  tests += \
138 + diff --git a/src/libsystemd-bus/bus-control.c b/src/libsystemd-bus/bus-control.c
139 + index a4dc9bf..b7ba3bb 100644
140 + --- a/src/libsystemd-bus/bus-control.c
141 + +++ b/src/libsystemd-bus/bus-control.c
142 + @@ -33,7 +33,7 @@
143 +  #include "bus-message.h"
144 +  #include "bus-control.h"
145 +  
146 + -int sd_bus_get_unique_name(sd_bus *bus, const char **unique) {
147 + +_public_ int sd_bus_get_unique_name(sd_bus *bus, const char **unique) {
148 +          int r;
149 +  
150 +          if (!bus)
151 + @@ -49,7 +49,7 @@ int sd_bus_get_unique_name(sd_bus *bus, const char **unique) {
152 +          return 0;
153 +  }
154 +  
155 + -int sd_bus_request_name(sd_bus *bus, const char *name, int flags) {
156 + +_public_ int sd_bus_request_name(sd_bus *bus, const char *name, int flags) {
157 +          _cleanup_bus_message_unref_ sd_bus_message *reply = NULL;
158 +          uint32_t ret;
159 +          int r;
160 + @@ -103,7 +103,7 @@ int sd_bus_request_name(sd_bus *bus, const char *name, int flags) {
161 +          }
162 +  }
163 +  
164 + -int sd_bus_release_name(sd_bus *bus, const char *name) {
165 + +_public_ int sd_bus_release_name(sd_bus *bus, const char *name) {
166 +          _cleanup_bus_message_unref_ sd_bus_message *reply = NULL;
167 +          uint32_t ret;
168 +          int r;
169 + @@ -154,7 +154,7 @@ int sd_bus_release_name(sd_bus *bus, const char *name) {
170 +          return ret;
171 +  }
172 +  
173 + -int sd_bus_list_names(sd_bus *bus, char ***l) {
174 + +_public_ int sd_bus_list_names(sd_bus *bus, char ***l) {
175 +          _cleanup_bus_message_unref_ sd_bus_message *reply1 = NULL, *reply2 = NULL;
176 +          char **x = NULL;
177 +          int r;
178 + @@ -204,7 +204,7 @@ int sd_bus_list_names(sd_bus *bus, char ***l) {
179 +          return 0;
180 +  }
181 +  
182 + -int sd_bus_get_owner(sd_bus *bus, const char *name, char **owner) {
183 + +_public_ int sd_bus_get_owner(sd_bus *bus, const char *name, char **owner) {
184 +          _cleanup_bus_message_unref_ sd_bus_message *reply = NULL;
185 +          const char *found;
186 +          int r;
187 + @@ -244,7 +244,7 @@ int sd_bus_get_owner(sd_bus *bus, const char *name, char **owner) {
188 +          return 0;
189 +  }
190 +  
191 + -int sd_bus_get_owner_uid(sd_bus *bus, const char *name, uid_t *uid) {
192 + +_public_ int sd_bus_get_owner_uid(sd_bus *bus, const char *name, uid_t *uid) {
193 +          _cleanup_bus_message_unref_ sd_bus_message *reply = NULL;
194 +          uint32_t u;
195 +          int r;
196 + @@ -277,7 +277,7 @@ int sd_bus_get_owner_uid(sd_bus *bus, const char *name, uid_t *uid) {
197 +          return 0;
198 +  }
199 +  
200 + -int sd_bus_get_owner_pid(sd_bus *bus, const char *name, pid_t *pid) {
201 + +_public_ int sd_bus_get_owner_pid(sd_bus *bus, const char *name, pid_t *pid) {
202 +          _cleanup_bus_message_unref_ sd_bus_message *reply = NULL;
203 +          uint32_t u;
204 +          int r;
205 + diff --git a/src/libsystemd-bus/bus-error.c b/src/libsystemd-bus/bus-error.c
206 + index 5faa173..145a378 100644
207 + --- a/src/libsystemd-bus/bus-error.c
208 + +++ b/src/libsystemd-bus/bus-error.c
209 + @@ -38,7 +38,7 @@ bool bus_error_is_dirty(sd_bus_error *e) {
210 +          return e->name || e->message || e->need_free;
211 +  }
212 +  
213 + -void sd_bus_error_free(sd_bus_error *e) {
214 + +_public_ void sd_bus_error_free(sd_bus_error *e) {
215 +          if (!e)
216 +                  return;
217 +  
218 + @@ -51,7 +51,7 @@ void sd_bus_error_free(sd_bus_error *e) {
219 +          e->need_free = false;
220 +  }
221 +  
222 + -int sd_bus_error_set(sd_bus_error *e, const char *name, const char *format, ...) {
223 + +_public_ int sd_bus_error_set(sd_bus_error *e, const char *name, const char *format, ...) {
224 +          char *n, *m = NULL;
225 +          va_list ap;
226 +          int r;
227 + @@ -85,7 +85,7 @@ int sd_bus_error_set(sd_bus_error *e, const char *name, const char *format, ...)
228 +          return 0;
229 +  }
230 +  
231 + -int sd_bus_error_copy(sd_bus_error *dest, const sd_bus_error *e) {
232 + +_public_ int sd_bus_error_copy(sd_bus_error *dest, const sd_bus_error *e) {
233 +          char *x, *y = NULL;
234 +  
235 +          if (!dest)
236 + @@ -113,7 +113,7 @@ int sd_bus_error_copy(sd_bus_error *dest, const sd_bus_error *e) {
237 +          return 0;
238 +  }
239 +  
240 + -void sd_bus_error_set_const(sd_bus_error *e, const char *name, const char *message) {
241 + +_public_ void sd_bus_error_set_const(sd_bus_error *e, const char *name, const char *message) {
242 +          if (!e)
243 +                  return;
244 +          if (bus_error_is_dirty(e))
245 + @@ -124,14 +124,14 @@ void sd_bus_error_set_const(sd_bus_error *e, const char *name, const char *messa
246 +          e->need_free = false;
247 +  }
248 +  
249 + -int sd_bus_error_is_set(const sd_bus_error *e) {
250 + +_public_ int sd_bus_error_is_set(const sd_bus_error *e) {
251 +          if (!e)
252 +                  return 0;
253 +  
254 +          return !!e->name;
255 +  }
256 +  
257 + -int sd_bus_error_has_name(const sd_bus_error *e, const char *name) {
258 + +_public_ int sd_bus_error_has_name(const sd_bus_error *e, const char *name) {
259 +          if (!e)
260 +                  return 0;
261 +  
262 + @@ -169,7 +169,8 @@ int bus_error_from_errno(sd_bus_error *e, int error) {
263 +          return error;
264 +  }
265 +  
266 + -const char *bus_error_message(const sd_bus_error *e, int error) {
267 + +/* XXX TODO: for test-* */
268 + +_public_ const char *bus_error_message(const sd_bus_error *e, int error) {
269 +          if (e && e->message)
270 +                  return e->message;
271 +  
272 + diff --git a/src/libsystemd-bus/bus-internal.c b/src/libsystemd-bus/bus-internal.c
273 + index 0e66f3d..f2a9eaa 100644
274 + --- a/src/libsystemd-bus/bus-internal.c
275 + +++ b/src/libsystemd-bus/bus-internal.c
276 + @@ -101,7 +101,8 @@ bool interface_name_is_valid(const char *p) {
277 +          return true;
278 +  }
279 +  
280 + -bool service_name_is_valid(const char *p) {
281 + +/* XXX TODO: for busctl */
282 + +_public_ bool service_name_is_valid(const char *p) {
283 +          const char *q;
284 +          bool dot, found_dot, unique;
285 +  
286 + @@ -192,11 +193,13 @@ static bool complex_pattern_check(char c, const char *a, const char *b) {
287 +          }
288 +  }
289 +  
290 + -bool namespace_complex_pattern(const char *pattern, const char *value) {
291 + +/* XXX TODO: for test-* */
292 + +_public_ bool namespace_complex_pattern(const char *pattern, const char *value) {
293 +          return complex_pattern_check('.', pattern, value);
294 +  }
295 +  
296 + -bool path_complex_pattern(const char *pattern, const char *value) {
297 + +/* XXX TODO: for test-* */
298 + +_public_ bool path_complex_pattern(const char *pattern, const char *value) {
299 +          return complex_pattern_check('/', pattern, value);
300 +  }
301 +  
302 + @@ -219,11 +222,13 @@ static bool simple_pattern_check(char c, const char *a, const char *b) {
303 +          }
304 +  }
305 +  
306 + -bool namespace_simple_pattern(const char *pattern, const char *value) {
307 + +/* XXX TODO: for test-* */
308 + +_public_ bool namespace_simple_pattern(const char *pattern, const char *value) {
309 +          return simple_pattern_check('.', pattern, value);
310 +  }
311 +  
312 + -bool path_simple_pattern(const char *pattern, const char *value) {
313 + +/* XXX TODO: for test-* */
314 + +_public_ bool path_simple_pattern(const char *pattern, const char *value) {
315 +          return simple_pattern_check('/', pattern, value);
316 +  }
317 +  
318 + diff --git a/src/libsystemd-bus/bus-kernel.c b/src/libsystemd-bus/bus-kernel.c
319 + index 0762b78..d9f96ea 100644
320 + --- a/src/libsystemd-bus/bus-kernel.c
321 + +++ b/src/libsystemd-bus/bus-kernel.c
322 + @@ -566,7 +566,7 @@ int bus_kernel_read_message(sd_bus *bus, sd_bus_message **m) {
323 +          return r < 0 ? r : 1;
324 +  }
325 +  
326 + -int bus_kernel_create(const char *name, char **s) {
327 + +_public_ int bus_kernel_create(const char *name, char **s) {
328 +          struct kdbus_cmd_bus_make *make;
329 +          struct kdbus_item *n, *cg;
330 +          size_t l;
331 + diff --git a/src/libsystemd-bus/bus-match.c b/src/libsystemd-bus/bus-match.c
332 + index 501a38d..5e0b7b6 100644
333 + --- a/src/libsystemd-bus/bus-match.c
334 + +++ b/src/libsystemd-bus/bus-match.c
335 + @@ -196,7 +196,8 @@ static bool value_node_same(
336 +          }
337 +  }
338 +  
339 + -int bus_match_run(
340 + +/* XXX TODO: for test-* */
341 + +_public_ int bus_match_run(
342 +                  sd_bus *bus,
343 +                  struct bus_match_node *node,
344 +                  int ret,
345 + @@ -550,7 +551,8 @@ static int bus_match_find_leaf(
346 +          return 0;
347 +  }
348 +  
349 + -enum bus_match_node_type bus_match_node_type_from_string(const char *k, size_t n) {
350 + +/* XXX TODO: for test-* */
351 + +_public_ enum bus_match_node_type bus_match_node_type_from_string(const char *k, size_t n) {
352 +          assert(k);
353 +  
354 +          if (n == 4 && memcmp(k, "type", 4) == 0)
355 + @@ -791,7 +793,8 @@ fail:
356 +          return r;
357 +  }
358 +  
359 + -int bus_match_add(
360 + +/* XXX TODO: for test-* */
361 + +_public_ int bus_match_add(
362 +                  struct bus_match_node *root,
363 +                  const char *match,
364 +                  sd_bus_message_handler_t callback,
365 + @@ -832,7 +835,8 @@ finish:
366 +          return r;
367 +  }
368 +  
369 + -int bus_match_remove(
370 + +/* XXX TODO: for test-* */
371 + +_public_ int bus_match_remove(
372 +                  struct bus_match_node *root,
373 +                  const char *match,
374 +                  sd_bus_message_handler_t callback,
375 + @@ -887,7 +891,8 @@ finish:
376 +          return r;
377 +  }
378 +  
379 + -void bus_match_free(struct bus_match_node *node) {
380 + +/* XXX TODO: for test-* */
381 + +_public_ void bus_match_free(struct bus_match_node *node) {
382 +          struct bus_match_node *c;
383 +  
384 +          if (!node)
385 + @@ -909,7 +914,8 @@ void bus_match_free(struct bus_match_node *node) {
386 +                  bus_match_node_free(node);
387 +  }
388 +  
389 + -const char* bus_match_node_type_to_string(enum bus_match_node_type t, char buf[], size_t l) {
390 + +/* XXX TODO: for test-* */
391 + +_public_ const char* bus_match_node_type_to_string(enum bus_match_node_type t, char buf[], size_t l) {
392 +          switch (t) {
393 +  
394 +          case BUS_MATCH_ROOT:
395 + @@ -959,7 +965,8 @@ const char* bus_match_node_type_to_string(enum bus_match_node_type t, char buf[]
396 +          }
397 +  }
398 +  
399 + -void bus_match_dump(struct bus_match_node *node, unsigned level) {
400 + +/* XXX TODO: for test-* */
401 + +_public_ void bus_match_dump(struct bus_match_node *node, unsigned level) {
402 +          struct bus_match_node *c;
403 +          _cleanup_free_ char *pfx = NULL;
404 +          char buf[32];
405 + diff --git a/src/libsystemd-bus/bus-message.c b/src/libsystemd-bus/bus-message.c
406 + index 835a9f9..8c99143 100644
407 + --- a/src/libsystemd-bus/bus-message.c
408 + +++ b/src/libsystemd-bus/bus-message.c
409 + @@ -303,7 +303,8 @@ int bus_message_from_header(
410 +          return 0;
411 +  }
412 +  
413 + -int bus_message_from_malloc(
414 + +/* XXX TODO: for test-* */
415 + +_public_ int bus_message_from_malloc(
416 +                  void *buffer,
417 +                  size_t length,
418 +                  int *fds,
419 + @@ -364,7 +365,7 @@ static sd_bus_message *message_new(sd_bus *bus, uint8_t type) {
420 +          return m;
421 +  }
422 +  
423 + -int sd_bus_message_new_signal(
424 + +_public_ int sd_bus_message_new_signal(
425 +                  sd_bus *bus,
426 +                  const char *path,
427 +                  const char *interface,
428 + @@ -409,7 +410,7 @@ fail:
429 +          return r;
430 +  }
431 +  
432 + -int sd_bus_message_new_method_call(
433 + +_public_ int sd_bus_message_new_method_call(
434 +                  sd_bus *bus,
435 +                  const char *destination,
436 +                  const char *path,
437 + @@ -507,7 +508,7 @@ fail:
438 +          return r;
439 +  }
440 +  
441 + -int sd_bus_message_new_method_return(
442 + +_public_ int sd_bus_message_new_method_return(
443 +                  sd_bus *bus,
444 +                  sd_bus_message *call,
445 +                  sd_bus_message **m) {
446 + @@ -515,7 +516,7 @@ int sd_bus_message_new_method_return(
447 +          return message_new_reply(bus, call, SD_BUS_MESSAGE_TYPE_METHOD_RETURN, m);
448 +  }
449 +  
450 + -int sd_bus_message_new_method_error(
451 + +_public_ int sd_bus_message_new_method_error(
452 +                  sd_bus *bus,
453 +                  sd_bus_message *call,
454 +                  const sd_bus_error *e,
455 + @@ -551,7 +552,7 @@ fail:
456 +          return r;
457 +  }
458 +  
459 + -sd_bus_message* sd_bus_message_ref(sd_bus_message *m) {
460 + +_public_ sd_bus_message* sd_bus_message_ref(sd_bus_message *m) {
461 +          if (!m)
462 +                  return NULL;
463 +  
464 + @@ -561,7 +562,7 @@ sd_bus_message* sd_bus_message_ref(sd_bus_message *m) {
465 +          return m;
466 +  }
467 +  
468 + -sd_bus_message* sd_bus_message_unref(sd_bus_message *m) {
469 + +_public_ sd_bus_message* sd_bus_message_unref(sd_bus_message *m) {
470 +          if (!m)
471 +                  return NULL;
472 +  
473 + @@ -574,7 +575,7 @@ sd_bus_message* sd_bus_message_unref(sd_bus_message *m) {
474 +          return NULL;
475 +  }
476 +  
477 + -int sd_bus_message_get_type(sd_bus_message *m, uint8_t *type) {
478 + +_public_ int sd_bus_message_get_type(sd_bus_message *m, uint8_t *type) {
479 +          if (!m)
480 +                  return -EINVAL;
481 +          if (!type)
482 + @@ -584,7 +585,7 @@ int sd_bus_message_get_type(sd_bus_message *m, uint8_t *type) {
483 +          return 0;
484 +  }
485 +  
486 + -int sd_bus_message_get_serial(sd_bus_message *m, uint64_t *serial) {
487 + +_public_ int sd_bus_message_get_serial(sd_bus_message *m, uint64_t *serial) {
488 +          if (!m)
489 +                  return -EINVAL;
490 +          if (!serial)
491 + @@ -596,7 +597,7 @@ int sd_bus_message_get_serial(sd_bus_message *m, uint64_t *serial) {
492 +          return 0;
493 +  }
494 +  
495 + -int sd_bus_message_get_reply_serial(sd_bus_message *m, uint64_t *serial) {
496 + +_public_ int sd_bus_message_get_reply_serial(sd_bus_message *m, uint64_t *serial) {
497 +          if (!m)
498 +                  return -EINVAL;
499 +          if (!serial)
500 + @@ -608,48 +609,48 @@ int sd_bus_message_get_reply_serial(sd_bus_message *m, uint64_t *serial) {
501 +          return 0;
502 +  }
503 +  
504 + -int sd_bus_message_get_no_reply(sd_bus_message *m) {
505 + +_public_ int sd_bus_message_get_no_reply(sd_bus_message *m) {
506 +          if (!m)
507 +                  return -EINVAL;
508 +  
509 +          return m->header->type == SD_BUS_MESSAGE_TYPE_METHOD_CALL ? !!(m->header->flags & SD_BUS_MESSAGE_NO_REPLY_EXPECTED) : 0;
510 +  }
511 +  
512 + -const char *sd_bus_message_get_path(sd_bus_message *m) {
513 + +_public_ const char *sd_bus_message_get_path(sd_bus_message *m) {
514 +          if (!m)
515 +                  return NULL;
516 +  
517 +          return m->path;
518 +  }
519 +  
520 + -const char *sd_bus_message_get_interface(sd_bus_message *m) {
521 + +_public_ const char *sd_bus_message_get_interface(sd_bus_message *m) {
522 +          if (!m)
523 +                  return NULL;
524 +  
525 +          return m->interface;
526 +  }
527 +  
528 + -const char *sd_bus_message_get_member(sd_bus_message *m) {
529 + +_public_ const char *sd_bus_message_get_member(sd_bus_message *m) {
530 +          if (!m)
531 +                  return NULL;
532 +  
533 +          return m->member;
534 +  }
535 + -const char *sd_bus_message_get_destination(sd_bus_message *m) {
536 + +_public_ const char *sd_bus_message_get_destination(sd_bus_message *m) {
537 +          if (!m)
538 +                  return NULL;
539 +  
540 +          return m->destination;
541 +  }
542 +  
543 + -const char *sd_bus_message_get_sender(sd_bus_message *m) {
544 + +_public_ const char *sd_bus_message_get_sender(sd_bus_message *m) {
545 +          if (!m)
546 +                  return NULL;
547 +  
548 +          return m->sender;
549 +  }
550 +  
551 + -const sd_bus_error *sd_bus_message_get_error(sd_bus_message *m) {
552 + +_public_ const sd_bus_error *sd_bus_message_get_error(sd_bus_message *m) {
553 +          if (!m)
554 +                  return NULL;
555 +  
556 + @@ -659,7 +660,7 @@ const sd_bus_error *sd_bus_message_get_error(sd_bus_message *m) {
557 +          return &m->error;
558 +  }
559 +  
560 + -int sd_bus_message_get_uid(sd_bus_message *m, uid_t *uid) {
561 + +_public_ int sd_bus_message_get_uid(sd_bus_message *m, uid_t *uid) {
562 +          if (!m)
563 +                  return -EINVAL;
564 +          if (!uid)
565 + @@ -671,7 +672,7 @@ int sd_bus_message_get_uid(sd_bus_message *m, uid_t *uid) {
566 +          return 0;
567 +  }
568 +  
569 + -int sd_bus_message_get_gid(sd_bus_message *m, gid_t *gid) {
570 + +_public_ int sd_bus_message_get_gid(sd_bus_message *m, gid_t *gid) {
571 +          if (!m)
572 +                  return -EINVAL;
573 +          if (!gid)
574 + @@ -683,7 +684,7 @@ int sd_bus_message_get_gid(sd_bus_message *m, gid_t *gid) {
575 +          return 0;
576 +  }
577 +  
578 + -int sd_bus_message_get_pid(sd_bus_message *m, pid_t *pid) {
579 + +_public_ int sd_bus_message_get_pid(sd_bus_message *m, pid_t *pid) {
580 +          if (!m)
581 +                  return -EINVAL;
582 +          if (!pid)
583 + @@ -695,7 +696,7 @@ int sd_bus_message_get_pid(sd_bus_message *m, pid_t *pid) {
584 +          return 0;
585 +  }
586 +  
587 + -int sd_bus_message_get_tid(sd_bus_message *m, pid_t *tid) {
588 + +_public_ int sd_bus_message_get_tid(sd_bus_message *m, pid_t *tid) {
589 +          if (!m)
590 +                  return -EINVAL;
591 +          if (!tid)
592 + @@ -707,7 +708,7 @@ int sd_bus_message_get_tid(sd_bus_message *m, pid_t *tid) {
593 +          return 0;
594 +  }
595 +  
596 + -int sd_bus_message_get_pid_starttime(sd_bus_message *m, uint64_t *usec) {
597 + +_public_ int sd_bus_message_get_pid_starttime(sd_bus_message *m, uint64_t *usec) {
598 +          if (!m)
599 +                  return -EINVAL;
600 +          if (!usec)
601 + @@ -719,7 +720,7 @@ int sd_bus_message_get_pid_starttime(sd_bus_message *m, uint64_t *usec) {
602 +          return 0;
603 +  }
604 +  
605 + -int sd_bus_message_get_selinux_context(sd_bus_message *m, const char **ret) {
606 + +_public_ int sd_bus_message_get_selinux_context(sd_bus_message *m, const char **ret) {
607 +          if (!m)
608 +                  return -EINVAL;
609 +          if (!m->label)
610 + @@ -729,7 +730,7 @@ int sd_bus_message_get_selinux_context(sd_bus_message *m, const char **ret) {
611 +          return 0;
612 +  }
613 +  
614 + -int sd_bus_message_get_monotonic_timestamp(sd_bus_message *m, uint64_t *usec) {
615 + +_public_ int sd_bus_message_get_monotonic_timestamp(sd_bus_message *m, uint64_t *usec) {
616 +          if (!m)
617 +                  return -EINVAL;
618 +          if (!usec)
619 + @@ -741,7 +742,7 @@ int sd_bus_message_get_monotonic_timestamp(sd_bus_message *m, uint64_t *usec) {
620 +          return 0;
621 +  }
622 +  
623 + -int sd_bus_message_get_realtime_timestamp(sd_bus_message *m, uint64_t *usec) {
624 + +_public_ int sd_bus_message_get_realtime_timestamp(sd_bus_message *m, uint64_t *usec) {
625 +          if (!m)
626 +                  return -EINVAL;
627 +          if (!usec)
628 + @@ -753,7 +754,7 @@ int sd_bus_message_get_realtime_timestamp(sd_bus_message *m, uint64_t *usec) {
629 +          return 0;
630 +  }
631 +  
632 + -int sd_bus_message_get_comm(sd_bus_message *m, const char **ret) {
633 + +_public_ int sd_bus_message_get_comm(sd_bus_message *m, const char **ret) {
634 +          if (!m)
635 +                  return -EINVAL;
636 +          if (!ret)
637 + @@ -765,7 +766,7 @@ int sd_bus_message_get_comm(sd_bus_message *m, const char **ret) {
638 +          return 0;
639 +  }
640 +  
641 + -int sd_bus_message_get_tid_comm(sd_bus_message *m, const char **ret) {
642 + +_public_ int sd_bus_message_get_tid_comm(sd_bus_message *m, const char **ret) {
643 +          if (!m)
644 +                  return -EINVAL;
645 +          if (!ret)
646 + @@ -777,7 +778,7 @@ int sd_bus_message_get_tid_comm(sd_bus_message *m, const char **ret) {
647 +          return 0;
648 +  }
649 +  
650 + -int sd_bus_message_get_exe(sd_bus_message *m, const char **ret) {
651 + +_public_ int sd_bus_message_get_exe(sd_bus_message *m, const char **ret) {
652 +          if (!m)
653 +                  return -EINVAL;
654 +          if (!ret)
655 + @@ -789,7 +790,7 @@ int sd_bus_message_get_exe(sd_bus_message *m, const char **ret) {
656 +          return 0;
657 +  }
658 +  
659 + -int sd_bus_message_get_cgroup(sd_bus_message *m, const char **ret) {
660 + +_public_ int sd_bus_message_get_cgroup(sd_bus_message *m, const char **ret) {
661 +          if (!m)
662 +                  return -EINVAL;
663 +          if (!ret)
664 + @@ -801,7 +802,7 @@ int sd_bus_message_get_cgroup(sd_bus_message *m, const char **ret) {
665 +          return 0;
666 +  }
667 +  
668 + -int sd_bus_message_get_unit(sd_bus_message *m, const char **ret) {
669 + +_public_ int sd_bus_message_get_unit(sd_bus_message *m, const char **ret) {
670 +          int r;
671 +  
672 +          if (!m)
673 + @@ -821,7 +822,7 @@ int sd_bus_message_get_unit(sd_bus_message *m, const char **ret) {
674 +          return 0;
675 +  }
676 +  
677 + -int sd_bus_message_get_user_unit(sd_bus_message *m, const char **ret) {
678 + +_public_ int sd_bus_message_get_user_unit(sd_bus_message *m, const char **ret) {
679 +          int r;
680 +  
681 +          if (!m)
682 + @@ -841,7 +842,7 @@ int sd_bus_message_get_user_unit(sd_bus_message *m, const char **ret) {
683 +          return 0;
684 +  }
685 +  
686 + -int sd_bus_message_get_session(sd_bus_message *m, const char **ret) {
687 + +_public_ int sd_bus_message_get_session(sd_bus_message *m, const char **ret) {
688 +          int r;
689 +  
690 +          if (!m)
691 + @@ -861,7 +862,7 @@ int sd_bus_message_get_session(sd_bus_message *m, const char **ret) {
692 +          return 0;
693 +  }
694 +  
695 + -int sd_bus_message_get_owner_uid(sd_bus_message *m, uid_t *uid) {
696 + +_public_ int sd_bus_message_get_owner_uid(sd_bus_message *m, uid_t *uid) {
697 +          if (!m)
698 +                  return -EINVAL;
699 +          if (!uid)
700 + @@ -872,7 +873,7 @@ int sd_bus_message_get_owner_uid(sd_bus_message *m, uid_t *uid) {
701 +          return cg_path_get_owner_uid(m->cgroup, uid);
702 +  }
703 +  
704 + -int sd_bus_message_get_cmdline(sd_bus_message *m, char ***cmdline) {
705 + +_public_ int sd_bus_message_get_cmdline(sd_bus_message *m, char ***cmdline) {
706 +          size_t n, i;
707 +          const char *p;
708 +          bool first;
709 + @@ -904,7 +905,7 @@ int sd_bus_message_get_cmdline(sd_bus_message *m, char ***cmdline) {
710 +          return 0;
711 +  }
712 +  
713 + -int sd_bus_message_get_audit_sessionid(sd_bus_message *m, uint32_t *sessionid) {
714 + +_public_ int sd_bus_message_get_audit_sessionid(sd_bus_message *m, uint32_t *sessionid) {
715 +          if (!m)
716 +                  return -EINVAL;
717 +          if (!sessionid)
718 + @@ -916,7 +917,7 @@ int sd_bus_message_get_audit_sessionid(sd_bus_message *m, uint32_t *sessionid) {
719 +          return 0;
720 +  }
721 +  
722 + -int sd_bus_message_get_audit_loginuid(sd_bus_message *m, uid_t *uid) {
723 + +_public_ int sd_bus_message_get_audit_loginuid(sd_bus_message *m, uid_t *uid) {
724 +          if (!m)
725 +                  return -EINVAL;
726 +          if (!uid)
727 + @@ -928,7 +929,7 @@ int sd_bus_message_get_audit_loginuid(sd_bus_message *m, uid_t *uid) {
728 +          return 0;
729 +  }
730 +  
731 + -int sd_bus_message_has_effective_cap(sd_bus_message *m, int capability) {
732 + +_public_ int sd_bus_message_has_effective_cap(sd_bus_message *m, int capability) {
733 +          unsigned sz;
734 +  
735 +          if (!m)
736 + @@ -945,7 +946,7 @@ int sd_bus_message_has_effective_cap(sd_bus_message *m, int capability) {
737 +          return !!(m->capability[2 * sz + (capability / 8)] & (1 << (capability % 8)));
738 +  }
739 +  
740 + -int sd_bus_message_is_signal(sd_bus_message *m, const char *interface, const char *member) {
741 + +_public_ int sd_bus_message_is_signal(sd_bus_message *m, const char *interface, const char *member) {
742 +          if (!m)
743 +                  return -EINVAL;
744 +  
745 + @@ -961,7 +962,7 @@ int sd_bus_message_is_signal(sd_bus_message *m, const char *interface, const cha
746 +          return 1;
747 +  }
748 +  
749 + -int sd_bus_message_is_method_call(sd_bus_message *m, const char *interface, const char *member) {
750 + +_public_ int sd_bus_message_is_method_call(sd_bus_message *m, const char *interface, const char *member) {
751 +          if (!m)
752 +                  return -EINVAL;
753 +  
754 + @@ -977,7 +978,7 @@ int sd_bus_message_is_method_call(sd_bus_message *m, const char *interface, cons
755 +          return 1;
756 +  }
757 +  
758 + -int sd_bus_message_is_method_error(sd_bus_message *m, const char *name) {
759 + +_public_ int sd_bus_message_is_method_error(sd_bus_message *m, const char *name) {
760 +          if (!m)
761 +                  return -EINVAL;
762 +  
763 + @@ -990,7 +991,7 @@ int sd_bus_message_is_method_error(sd_bus_message *m, const char *name) {
764 +          return 1;
765 +  }
766 +  
767 + -int sd_bus_message_set_no_reply(sd_bus_message *m, int b) {
768 + +_public_ int sd_bus_message_set_no_reply(sd_bus_message *m, int b) {
769 +          if (!m)
770 +                  return -EINVAL;
771 +          if (m->sealed)
772 + @@ -1203,7 +1204,7 @@ fail:
773 +          return r;
774 +  }
775 +  
776 + -int sd_bus_message_append_basic(sd_bus_message *m, char type, const void *p) {
777 + +_public_ int sd_bus_message_append_basic(sd_bus_message *m, char type, const void *p) {
778 +          return message_append_basic(m, type, p, NULL);
779 +  }
780 +  
781 + @@ -1430,7 +1431,7 @@ static int bus_message_open_dict_entry(
782 +          return 0;
783 +  }
784 +  
785 + -int sd_bus_message_open_container(
786 + +_public_ int sd_bus_message_open_container(
787 +                  sd_bus_message *m,
788 +                  char type,
789 +                  const char *contents) {
790 + @@ -1486,7 +1487,7 @@ int sd_bus_message_open_container(
791 +          return 0;
792 +  }
793 +  
794 + -int sd_bus_message_close_container(sd_bus_message *m) {
795 + +_public_ int sd_bus_message_close_container(sd_bus_message *m) {
796 +          struct bus_container *c;
797 +  
798 +          if (!m)
799 + @@ -1744,7 +1745,7 @@ int bus_message_append_ap(
800 +          return 0;
801 +  }
802 +  
803 + -int sd_bus_message_append(sd_bus_message *m, const char *types, ...) {
804 + +_public_ int sd_bus_message_append(sd_bus_message *m, const char *types, ...) {
805 +          va_list ap;
806 +          int r;
807 +  
808 + @@ -1858,7 +1859,7 @@ static bool validate_object_path(const char *s, size_t l) {
809 +          return true;
810 +  }
811 +  
812 + -int sd_bus_message_read_basic(sd_bus_message *m, char type, void *p) {
813 + +_public_ int sd_bus_message_read_basic(sd_bus_message *m, char type, void *p) {
814 +          struct bus_container *c;
815 +          int r;
816 +          void *q;
817 + @@ -2182,7 +2183,7 @@ static int bus_message_enter_dict_entry(
818 +          return 1;
819 +  }
820 +  
821 + -int sd_bus_message_enter_container(sd_bus_message *m, char type, const char *contents) {
822 + +_public_ int sd_bus_message_enter_container(sd_bus_message *m, char type, const char *contents) {
823 +          struct bus_container *c, *w;
824 +          uint32_t *array_size = NULL;
825 +          char *signature;
826 + @@ -2255,7 +2256,7 @@ int sd_bus_message_enter_container(sd_bus_message *m, char type, const char *con
827 +          return 1;
828 +  }
829 +  
830 + -int sd_bus_message_exit_container(sd_bus_message *m) {
831 + +_public_ int sd_bus_message_exit_container(sd_bus_message *m) {
832 +          struct bus_container *c;
833 +  
834 +          if (!m)
835 + @@ -2284,7 +2285,7 @@ int sd_bus_message_exit_container(sd_bus_message *m) {
836 +          return 1;
837 +  }
838 +  
839 + -int sd_bus_message_peek_type(sd_bus_message *m, char *type, const char **contents) {
840 + +_public_ int sd_bus_message_peek_type(sd_bus_message *m, char *type, const char **contents) {
841 +          struct bus_container *c;
842 +          int r;
843 +  
844 + @@ -2406,7 +2407,7 @@ eof:
845 +          return 0;
846 +  }
847 +  
848 + -int sd_bus_message_rewind(sd_bus_message *m, int complete) {
849 + +_public_ int sd_bus_message_rewind(sd_bus_message *m, int complete) {
850 +          struct bus_container *c;
851 +  
852 +          if (!m)
853 + @@ -2609,7 +2610,7 @@ static int message_read_ap(
854 +          return 1;
855 +  }
856 +  
857 + -int sd_bus_message_read(sd_bus_message *m, const char *types, ...) {
858 + +_public_ int sd_bus_message_read(sd_bus_message *m, const char *types, ...) {
859 +          va_list ap;
860 +          int r;
861 +  
862 + @@ -3060,7 +3061,8 @@ int bus_message_parse_fields(sd_bus_message *m) {
863 +          return 0;
864 +  }
865 +  
866 + -int bus_message_seal(sd_bus_message *m, uint64_t serial) {
867 + +/* XXX TODO: for test-* */
868 + +_public_ int bus_message_seal(sd_bus_message *m, uint64_t serial) {
869 +          int r;
870 +          size_t l, a;
871 +  
872 + @@ -3107,7 +3109,7 @@ int bus_message_seal(sd_bus_message *m, uint64_t serial) {
873 +          return 0;
874 +  }
875 +  
876 + -int sd_bus_message_set_destination(sd_bus_message *m, const char *destination) {
877 + +_public_ int sd_bus_message_set_destination(sd_bus_message *m, const char *destination) {
878 +          if (!m)
879 +                  return -EINVAL;
880 +          if (!destination)
881 + @@ -3120,7 +3122,8 @@ int sd_bus_message_set_destination(sd_bus_message *m, const char *destination) {
882 +          return message_append_field_string(m, SD_BUS_MESSAGE_HEADER_DESTINATION, SD_BUS_TYPE_STRING, destination, &m->destination);
883 +  }
884 +  
885 + -int bus_message_dump(sd_bus_message *m) {
886 + +/* XXX TODO: for test-* */
887 + +_public_ int bus_message_dump(sd_bus_message *m) {
888 +          const char *u = NULL, *uu = NULL, *s = NULL;
889 +          char **cmdline = NULL;
890 +          unsigned level = 1;
891 + @@ -3378,7 +3381,8 @@ int bus_message_dump(sd_bus_message *m) {
892 +          return 0;
893 +  }
894 +  
895 + -int bus_message_get_blob(sd_bus_message *m, void **buffer, size_t *sz) {
896 + +/* XXX TODO: for test-* */
897 + +_public_ int bus_message_get_blob(sd_bus_message *m, void **buffer, size_t *sz) {
898 +          size_t total;
899 +          void *p, *e;
900 +  
901 + diff --git a/src/libsystemd-bus/bus-signature.c b/src/libsystemd-bus/bus-signature.c
902 + index a92b712..3755d08 100644
903 + --- a/src/libsystemd-bus/bus-signature.c
904 + +++ b/src/libsystemd-bus/bus-signature.c
905 + @@ -110,7 +110,8 @@ int signature_element_length(const char *s, size_t *l) {
906 +          return signature_element_length_internal(s, true, 0, 0, l);
907 +  }
908 +  
909 + -bool signature_is_single(const char *s) {
910 + +/* XXX TODO: for test-* */
911 + +_public_ bool signature_is_single(const char *s) {
912 +          int r;
913 +          size_t t;
914 +  
915 + @@ -123,7 +124,8 @@ bool signature_is_single(const char *s) {
916 +          return s[t] == 0;
917 +  }
918 +  
919 + -bool signature_is_pair(const char *s) {
920 + +/* XXX TODO: for test-* */
921 + +_public_ bool signature_is_pair(const char *s) {
922 +          assert(s);
923 +  
924 +          if (!bus_type_is_basic(*s))
925 + @@ -132,7 +134,8 @@ bool signature_is_pair(const char *s) {
926 +          return signature_is_single(s + 1);
927 +  }
928 +  
929 + -bool signature_is_valid(const char *s, bool allow_dict_entry) {
930 + +/* XXX TODO: for test-* */
931 + +_public_ bool signature_is_valid(const char *s, bool allow_dict_entry) {
932 +          const char *p;
933 +          int r;
934 +  
935 + diff --git a/src/libsystemd-bus/libsystemd-bus.pc.in b/src/libsystemd-bus/libsystemd-bus.pc.in
936 + new file mode 100644
937 + index 0000000..6907a1d
938 + --- /dev/null
939 + +++ b/src/libsystemd-bus/libsystemd-bus.pc.in
940 + @@ -0,0 +1,19 @@
941 + +#  This file is part of systemd.
942 + +#
943 + +#  systemd is free software; you can redistribute it and/or modify it
944 + +#  under the terms of the GNU Lesser General Public License as published by
945 + +#  the Free Software Foundation; either version 2.1 of the License, or
946 + +#  (at your option) any later version.
947 + +
948 + +prefix=@prefix@
949 + +exec_prefix=@exec_prefix@
950 + +libdir=@libdir@
951 + +includedir=@includedir@
952 + +
953 + +Name: systemd
954 + +Description: systemd D-Bus client library
955 + +URL: @PACKAGE_URL@
956 + +Version: @PACKAGE_VERSION@
957 + +Requires: libsystemd-daemon = @PACKAGE_VERSION@
958 + +Libs: -L${libdir} -lsystemd-bus
959 + +Cflags: -I${includedir} -I${includedir}/systemd -I${includedir}/systemd/bus
960 + diff --git a/src/libsystemd-bus/sd-bus.c b/src/libsystemd-bus/sd-bus.c
961 + index 7d6d848..7a21ad6 100644
962 + --- a/src/libsystemd-bus/sd-bus.c
963 + +++ b/src/libsystemd-bus/sd-bus.c
964 + @@ -92,7 +92,7 @@ static void bus_free(sd_bus *b) {
965 +          free(b);
966 +  }
967 +  
968 + -int sd_bus_new(sd_bus **ret) {
969 + +_public_ int sd_bus_new(sd_bus **ret) {
970 +          sd_bus *r;
971 +  
972 +          if (!ret)
973 + @@ -119,7 +119,7 @@ int sd_bus_new(sd_bus **ret) {
974 +          return 0;
975 +  }
976 +  
977 + -int sd_bus_set_address(sd_bus *bus, const char *address) {
978 + +_public_ int sd_bus_set_address(sd_bus *bus, const char *address) {
979 +          char *a;
980 +  
981 +          if (!bus)
982 + @@ -139,7 +139,7 @@ int sd_bus_set_address(sd_bus *bus, const char *address) {
983 +          return 0;
984 +  }
985 +  
986 + -int sd_bus_set_fd(sd_bus *bus, int input_fd, int output_fd) {
987 + +_public_ int sd_bus_set_fd(sd_bus *bus, int input_fd, int output_fd) {
988 +          if (!bus)
989 +                  return -EINVAL;
990 +          if (bus->state != BUS_UNSET)
991 + @@ -154,7 +154,7 @@ int sd_bus_set_fd(sd_bus *bus, int input_fd, int output_fd) {
992 +          return 0;
993 +  }
994 +  
995 + -int sd_bus_set_exec(sd_bus *bus, const char *path, char *const argv[]) {
996 + +_public_ int sd_bus_set_exec(sd_bus *bus, const char *path, char *const argv[]) {
997 +          char *p, **a;
998 +  
999 +          if (!bus)
1000 + @@ -185,7 +185,7 @@ int sd_bus_set_exec(sd_bus *bus, const char *path, char *const argv[]) {
1001 +          return 0;
1002 +  }
1003 +  
1004 + -int sd_bus_set_bus_client(sd_bus *bus, int b) {
1005 + +_public_ int sd_bus_set_bus_client(sd_bus *bus, int b) {
1006 +          if (!bus)
1007 +                  return -EINVAL;
1008 +          if (bus->state != BUS_UNSET)
1009 + @@ -195,7 +195,7 @@ int sd_bus_set_bus_client(sd_bus *bus, int b) {
1010 +          return 0;
1011 +  }
1012 +  
1013 + -int sd_bus_set_negotiate_fds(sd_bus *bus, int b) {
1014 + +_public_ int sd_bus_set_negotiate_fds(sd_bus *bus, int b) {
1015 +          if (!bus)
1016 +                  return -EINVAL;
1017 +          if (bus->state != BUS_UNSET)
1018 + @@ -205,7 +205,7 @@ int sd_bus_set_negotiate_fds(sd_bus *bus, int b) {
1019 +          return 0;
1020 +  }
1021 +  
1022 + -int sd_bus_set_server(sd_bus *bus, int b, sd_id128_t server_id) {
1023 + +_public_ int sd_bus_set_server(sd_bus *bus, int b, sd_id128_t server_id) {
1024 +          if (!bus)
1025 +                  return -EINVAL;
1026 +          if (!b && !sd_id128_equal(server_id, SD_ID128_NULL))
1027 + @@ -218,7 +218,7 @@ int sd_bus_set_server(sd_bus *bus, int b, sd_id128_t server_id) {
1028 +          return 0;
1029 +  }
1030 +  
1031 + -int sd_bus_set_anonymous(sd_bus *bus, int b) {
1032 + +_public_ int sd_bus_set_anonymous(sd_bus *bus, int b) {
1033 +          if (!bus)
1034 +                  return -EINVAL;
1035 +          if (bus->state != BUS_UNSET)
1036 + @@ -804,7 +804,7 @@ static int bus_start_fd(sd_bus *b) {
1037 +                  return bus_socket_take_fd(b);
1038 +  }
1039 +  
1040 + -int sd_bus_start(sd_bus *bus) {
1041 + +_public_ int sd_bus_start(sd_bus *bus) {
1042 +          int r;
1043 +  
1044 +          if (!bus)
1045 + @@ -830,7 +830,7 @@ int sd_bus_start(sd_bus *bus) {
1046 +          return bus_send_hello(bus);
1047 +  }
1048 +  
1049 + -int sd_bus_open_system(sd_bus **ret) {
1050 + +_public_ int sd_bus_open_system(sd_bus **ret) {
1051 +          const char *e;
1052 +          sd_bus *b;
1053 +          int r;
1054 + @@ -867,7 +867,7 @@ fail:
1055 +          return r;
1056 +  }
1057 +  
1058 + -int sd_bus_open_user(sd_bus **ret) {
1059 + +_public_ int sd_bus_open_user(sd_bus **ret) {
1060 +          const char *e;
1061 +          sd_bus *b;
1062 +          size_t l;
1063 + @@ -917,7 +917,7 @@ fail:
1064 +          return r;
1065 +  }
1066 +  
1067 + -void sd_bus_close(sd_bus *bus) {
1068 + +_public_ void sd_bus_close(sd_bus *bus) {
1069 +          if (!bus)
1070 +                  return;
1071 +  
1072 + @@ -929,7 +929,7 @@ void sd_bus_close(sd_bus *bus) {
1073 +          bus->input_fd = bus->output_fd = -1;
1074 +  }
1075 +  
1076 + -sd_bus *sd_bus_ref(sd_bus *bus) {
1077 + +_public_ sd_bus *sd_bus_ref(sd_bus *bus) {
1078 +          if (!bus)
1079 +                  return NULL;
1080 +  
1081 + @@ -939,7 +939,7 @@ sd_bus *sd_bus_ref(sd_bus *bus) {
1082 +          return bus;
1083 +  }
1084 +  
1085 + -sd_bus *sd_bus_unref(sd_bus *bus) {
1086 + +_public_ sd_bus *sd_bus_unref(sd_bus *bus) {
1087 +          if (!bus)
1088 +                  return NULL;
1089 +  
1090 + @@ -952,14 +952,14 @@ sd_bus *sd_bus_unref(sd_bus *bus) {
1091 +          return NULL;
1092 +  }
1093 +  
1094 + -int sd_bus_is_open(sd_bus *bus) {
1095 + +_public_ int sd_bus_is_open(sd_bus *bus) {
1096 +          if (!bus)
1097 +                  return -EINVAL;
1098 +  
1099 +          return bus->state != BUS_UNSET && bus->input_fd >= 0;
1100 +  }
1101 +  
1102 + -int sd_bus_can_send(sd_bus *bus, char type) {
1103 + +_public_ int sd_bus_can_send(sd_bus *bus, char type) {
1104 +          int r;
1105 +  
1106 +          if (!bus)
1107 + @@ -981,7 +981,7 @@ int sd_bus_can_send(sd_bus *bus, char type) {
1108 +          return bus_type_is_valid(type);
1109 +  }
1110 +  
1111 + -int sd_bus_get_server_id(sd_bus *bus, sd_id128_t *server_id) {
1112 + +_public_ int sd_bus_get_server_id(sd_bus *bus, sd_id128_t *server_id) {
1113 +          int r;
1114 +  
1115 +          if (!bus)
1116 + @@ -1095,7 +1095,7 @@ static int dispatch_rqueue(sd_bus *bus, sd_bus_message **m) {
1117 +          return 1;
1118 +  }
1119 +  
1120 + -int sd_bus_send(sd_bus *bus, sd_bus_message *m, uint64_t *serial) {
1121 + +_public_ int sd_bus_send(sd_bus *bus, sd_bus_message *m, uint64_t *serial) {
1122 +          int r;
1123 +  
1124 +          if (!bus)
1125 + @@ -1200,7 +1200,7 @@ static int timeout_compare(const void *a, const void *b) {
1126 +          return 0;
1127 +  }
1128 +  
1129 + -int sd_bus_send_with_reply(
1130 + +_public_ int sd_bus_send_with_reply(
1131 +                  sd_bus *bus,
1132 +                  sd_bus_message *m,
1133 +                  sd_bus_message_handler_t callback,
1134 + @@ -1273,7 +1273,7 @@ int sd_bus_send_with_reply(
1135 +          return r;
1136 +  }
1137 +  
1138 + -int sd_bus_send_with_reply_cancel(sd_bus *bus, uint64_t serial) {
1139 + +_public_ int sd_bus_send_with_reply_cancel(sd_bus *bus, uint64_t serial) {
1140 +          struct reply_callback *c;
1141 +  
1142 +          if (!bus)
1143 + @@ -1320,7 +1320,7 @@ int bus_ensure_running(sd_bus *bus) {
1144 +          }
1145 +  }
1146 +  
1147 + -int sd_bus_send_with_reply_and_block(
1148 + +_public_ int sd_bus_send_with_reply_and_block(
1149 +                  sd_bus *bus,
1150 +                  sd_bus_message *m,
1151 +                  uint64_t usec,
1152 + @@ -1449,7 +1449,7 @@ int sd_bus_send_with_reply_and_block(
1153 +          }
1154 +  }
1155 +  
1156 + -int sd_bus_get_fd(sd_bus *bus) {
1157 + +_public_ int sd_bus_get_fd(sd_bus *bus) {
1158 +          if (!bus)
1159 +                  return -EINVAL;
1160 +          if (bus->input_fd < 0)
1161 + @@ -1460,7 +1460,7 @@ int sd_bus_get_fd(sd_bus *bus) {
1162 +          return bus->input_fd;
1163 +  }
1164 +  
1165 + -int sd_bus_get_events(sd_bus *bus) {
1166 + +_public_ int sd_bus_get_events(sd_bus *bus) {
1167 +          int flags = 0;
1168 +  
1169 +          if (!bus)
1170 + @@ -1489,7 +1489,7 @@ int sd_bus_get_events(sd_bus *bus) {
1171 +          return flags;
1172 +  }
1173 +  
1174 + -int sd_bus_get_timeout(sd_bus *bus, uint64_t *timeout_usec) {
1175 + +_public_ int sd_bus_get_timeout(sd_bus *bus, uint64_t *timeout_usec) {
1176 +          struct reply_callback *c;
1177 +  
1178 +          if (!bus)
1179 + @@ -1976,7 +1976,7 @@ null_message:
1180 +          return r;
1181 +  }
1182 +  
1183 + -int sd_bus_process(sd_bus *bus, sd_bus_message **ret) {
1184 + +_public_ int sd_bus_process(sd_bus *bus, sd_bus_message **ret) {
1185 +          int r;
1186 +  
1187 +          /* Returns 0 when we didn't do anything. This should cause the
1188 + @@ -2078,7 +2078,7 @@ static int bus_poll(sd_bus *bus, bool need_more, uint64_t timeout_usec) {
1189 +          return r > 0 ? 1 : 0;
1190 +  }
1191 +  
1192 + -int sd_bus_wait(sd_bus *bus, uint64_t timeout_usec) {
1193 + +_public_ int sd_bus_wait(sd_bus *bus, uint64_t timeout_usec) {
1194 +  
1195 +          if (!bus)
1196 +                  return -EINVAL;
1197 + @@ -2092,7 +2092,7 @@ int sd_bus_wait(sd_bus *bus, uint64_t timeout_usec) {
1198 +          return bus_poll(bus, false, timeout_usec);
1199 +  }
1200 +  
1201 + -int sd_bus_flush(sd_bus *bus) {
1202 + +_public_ int sd_bus_flush(sd_bus *bus) {
1203 +          int r;
1204 +  
1205 +          if (!bus)
1206 + @@ -2123,7 +2123,7 @@ int sd_bus_flush(sd_bus *bus) {
1207 +          }
1208 +  }
1209 +  
1210 + -int sd_bus_add_filter(sd_bus *bus, sd_bus_message_handler_t callback, void *userdata) {
1211 + +_public_ int sd_bus_add_filter(sd_bus *bus, sd_bus_message_handler_t callback, void *userdata) {
1212 +          struct filter_callback *f;
1213 +  
1214 +          if (!bus)
1215 + @@ -2142,7 +2142,7 @@ int sd_bus_add_filter(sd_bus *bus, sd_bus_message_handler_t callback, void *user
1216 +          return 0;
1217 +  }
1218 +  
1219 + -int sd_bus_remove_filter(sd_bus *bus, sd_bus_message_handler_t callback, void *userdata) {
1220 + +_public_ int sd_bus_remove_filter(sd_bus *bus, sd_bus_message_handler_t callback, void *userdata) {
1221 +          struct filter_callback *f;
1222 +  
1223 +          if (!bus)
1224 + @@ -2240,23 +2240,23 @@ static int bus_remove_object(
1225 +          return 1;
1226 +  }
1227 +  
1228 + -int sd_bus_add_object(sd_bus *bus, const char *path, sd_bus_message_handler_t callback, void *userdata) {
1229 + +_public_ int sd_bus_add_object(sd_bus *bus, const char *path, sd_bus_message_handler_t callback, void *userdata) {
1230 +          return bus_add_object(bus, false, path, callback, userdata);
1231 +  }
1232 +  
1233 + -int sd_bus_remove_object(sd_bus *bus, const char *path, sd_bus_message_handler_t callback, void *userdata) {
1234 + +_public_ int sd_bus_remove_object(sd_bus *bus, const char *path, sd_bus_message_handler_t callback, void *userdata) {
1235 +          return bus_remove_object(bus, false, path, callback, userdata);
1236 +  }
1237 +  
1238 + -int sd_bus_add_fallback(sd_bus *bus, const char *prefix, sd_bus_message_handler_t callback, void *userdata) {
1239 + +_public_ int sd_bus_add_fallback(sd_bus *bus, const char *prefix, sd_bus_message_handler_t callback, void *userdata) {
1240 +          return bus_add_object(bus, true, prefix, callback, userdata);
1241 +  }
1242 +  
1243 + -int sd_bus_remove_fallback(sd_bus *bus, const char *prefix, sd_bus_message_handler_t callback, void *userdata) {
1244 + +_public_ int sd_bus_remove_fallback(sd_bus *bus, const char *prefix, sd_bus_message_handler_t callback, void *userdata) {
1245 +          return bus_remove_object(bus, true, prefix, callback, userdata);
1246 +  }
1247 +  
1248 + -int sd_bus_add_match(sd_bus *bus, const char *match, sd_bus_message_handler_t callback, void *userdata) {
1249 + +_public_ int sd_bus_add_match(sd_bus *bus, const char *match, sd_bus_message_handler_t callback, void *userdata) {
1250 +          int r = 0;
1251 +  
1252 +          if (!bus)
1253 + @@ -2283,7 +2283,7 @@ int sd_bus_add_match(sd_bus *bus, const char *match, sd_bus_message_handler_t ca
1254 +          return r;
1255 +  }
1256 +  
1257 + -int sd_bus_remove_match(sd_bus *bus, const char *match, sd_bus_message_handler_t callback, void *userdata) {
1258 + +_public_ int sd_bus_remove_match(sd_bus *bus, const char *match, sd_bus_message_handler_t callback, void *userdata) {
1259 +          int r = 0, q = 0;
1260 +  
1261 +          if (!bus)
1262 + @@ -2304,7 +2304,7 @@ int sd_bus_remove_match(sd_bus *bus, const char *match, sd_bus_message_handler_t
1263 +          return q;
1264 +  }
1265 +  
1266 + -int sd_bus_emit_signal(
1267 + +_public_ int sd_bus_emit_signal(
1268 +                  sd_bus *bus,
1269 +                  const char *path,
1270 +                  const char *interface,
1271 + @@ -2331,7 +2331,7 @@ int sd_bus_emit_signal(
1272 +          return sd_bus_send(bus, m, NULL);
1273 +  }
1274 +  
1275 + -int sd_bus_call_method(
1276 + +_public_ int sd_bus_call_method(
1277 +                  sd_bus *bus,
1278 +                  const char *destination,
1279 +                  const char *path,
1280 + @@ -2361,7 +2361,7 @@ int sd_bus_call_method(
1281 +          return sd_bus_send_with_reply_and_block(bus, m, 0, error, reply);
1282 +  }
1283 +  
1284 + -int sd_bus_reply_method_return(
1285 + +_public_ int sd_bus_reply_method_return(
1286 +                  sd_bus *bus,
1287 +                  sd_bus_message *call,
1288 +                  const char *types, ...) {
1289 + @@ -2395,7 +2395,7 @@ int sd_bus_reply_method_return(
1290 +          return sd_bus_send(bus, m, NULL);
1291 +  }
1292 +  
1293 + -int sd_bus_reply_method_error(
1294 + +_public_ int sd_bus_reply_method_error(
1295 +                  sd_bus *bus,
1296 +                  sd_bus_message *call,
1297 +                  const sd_bus_error *e) {
1298 + -- 
1299 + 1.8.3.1
1300
1301 *** /dev/null   2013-10-07 20:46:19.236668618 +0300
1302 --- SOURCES/0002-systemd-bus-add-linker-script-for-exporting-public-s.patch     2013-10-08 16:42:44.937528527 +0300
1303 ***************
1304 *** 0 ****
1305 --- 1,182 ----
1306 + From 86ec8ddd17cd339ae5c72ea3600ce16079e14491 Mon Sep 17 00:00:00 2001
1307 + From: Fedora systemd team <systemd-maint@redhat.com>
1308 + Date: Tue, 8 Oct 2013 15:06:05 +0300
1309 + Subject: [PATCH 2/2] systemd-bus: add linker script for exporting public
1310 +  symbols.
1311
1312 + ---
1313 +  src/libsystemd-bus/libsystemd-bus.sym | 162 ++++++++++++++++++++++++++++++++++
1314 +  1 file changed, 162 insertions(+)
1315 +  create mode 100644 src/libsystemd-bus/libsystemd-bus.sym
1316
1317 + diff --git a/src/libsystemd-bus/libsystemd-bus.sym b/src/libsystemd-bus/libsystemd-bus.sym
1318 + new file mode 100644
1319 + index 0000000..f5d0332
1320 + --- /dev/null
1321 + +++ b/src/libsystemd-bus/libsystemd-bus.sym
1322 + @@ -0,0 +1,162 @@
1323 + +{
1324 + +global:
1325 + +        sd_bus_open_system;
1326 + +        sd_bus_open_user;
1327 + +        sd_bus_new;
1328 + +        sd_bus_set_address;
1329 + +        sd_bus_set_fd;
1330 + +        sd_bus_set_exec;
1331 + +        sd_bus_set_bus_client;
1332 + +        sd_bus_set_server;
1333 + +        sd_bus_set_anonymous;
1334 + +        sd_bus_set_negotiate_fds;
1335 + +        sd_bus_negotiate_attach_comm;
1336 + +        sd_bus_negotiate_attach_exe;
1337 + +        sd_bus_negotiate_attach_cmdline;
1338 + +        sd_bus_negotiate_attach_cgroup;
1339 + +        sd_bus_negotiate_attach_caps;
1340 + +        sd_bus_negotiate_attach_selinux_context;
1341 + +        sd_bus_negotiate_attach_audit;
1342 + +        sd_bus_start;
1343 + +        sd_bus_close;
1344 + +        sd_bus_ref;
1345 + +        sd_bus_unref;
1346 + +        sd_bus_is_open;
1347 + +        sd_bus_can_send;
1348 + +        sd_bus_get_server_id;
1349 + +        sd_bus_send;
1350 + +        sd_bus_send_with_reply;
1351 + +        sd_bus_send_with_reply_cancel;
1352 + +        sd_bus_send_with_reply_and_block;
1353 + +        sd_bus_get_fd;
1354 + +        sd_bus_get_events;
1355 + +        sd_bus_get_timeout;
1356 + +        sd_bus_process;
1357 + +        sd_bus_wait;
1358 + +        sd_bus_flush;
1359 + +        sd_bus_add_filter;
1360 + +        sd_bus_remove_filter;
1361 + +        sd_bus_add_object;
1362 + +        sd_bus_remove_object;
1363 + +        sd_bus_add_fallback;
1364 + +        sd_bus_remove_fallback;
1365 + +        sd_bus_add_match;
1366 + +        sd_bus_remove_match;
1367 + +        sd_bus_message_new_signal;
1368 + +        sd_bus_message_new_method_call;
1369 + +        sd_bus_message_new_method_return;
1370 + +        sd_bus_message_new_method_error;
1371 + +        sd_bus_message_ref;
1372 + +        sd_bus_message_unref;
1373 + +        sd_bus_message_get_type;
1374 + +        sd_bus_message_get_serial;
1375 + +        sd_bus_message_get_reply_serial;
1376 + +        sd_bus_message_get_no_reply;
1377 + +        sd_bus_message_get_error;
1378 + +        sd_bus_message_get_uid;
1379 + +        sd_bus_message_get_gid;
1380 + +        sd_bus_message_get_pid;
1381 + +        sd_bus_message_get_tid;
1382 + +        sd_bus_message_get_pid_starttime;
1383 + +        sd_bus_message_get_selinux_context;
1384 + +        sd_bus_message_get_monotonic_timestamp;
1385 + +        sd_bus_message_get_realtime_timestamp;
1386 + +        sd_bus_message_get_comm;
1387 + +        sd_bus_message_get_tid_comm;
1388 + +        sd_bus_message_get_exe;
1389 + +        sd_bus_message_get_cgroup;
1390 + +        sd_bus_message_get_unit;
1391 + +        sd_bus_message_get_user_unit;
1392 + +        sd_bus_message_get_session;
1393 + +        sd_bus_message_get_owner_uid;
1394 + +        sd_bus_message_get_cmdline;
1395 + +        sd_bus_message_get_audit_sessionid;
1396 + +        sd_bus_message_get_audit_loginuid;
1397 + +        sd_bus_message_get_label;
1398 + +        sd_bus_message_has_effective_cap;
1399 + +        sd_bus_message_is_signal;
1400 + +        sd_bus_message_is_method_call;
1401 + +        sd_bus_message_is_method_error;
1402 + +        sd_bus_message_set_no_reply;
1403 + +        sd_bus_message_set_destination;
1404 + +        sd_bus_message_append;
1405 + +        sd_bus_message_append_basic;
1406 + +        sd_bus_message_append_array;
1407 + +        sd_bus_message_append_array_space;
1408 + +        sd_bus_message_append_array_memfd;
1409 + +        sd_bus_message_append_string_space;
1410 + +        sd_bus_message_append_string_memfd;
1411 + +        sd_bus_message_open_container;
1412 + +        sd_bus_message_close_container;
1413 + +        sd_bus_message_read;
1414 + +        sd_bus_message_read_basic;
1415 + +        sd_bus_message_read_array;
1416 + +        sd_bus_message_enter_container;
1417 + +        sd_bus_message_exit_container;
1418 + +        sd_bus_message_peek_type;
1419 + +        sd_bus_message_rewind;
1420 + +        sd_bus_emit_signal;
1421 + +        sd_bus_call_method;
1422 + +        sd_bus_reply_method_return;
1423 + +        sd_bus_reply_method_error;
1424 + +        sd_bus_get_unique_name;
1425 + +        sd_bus_request_name;
1426 + +        sd_bus_release_name;
1427 + +        sd_bus_list_names;
1428 + +        sd_bus_get_owner;
1429 + +        sd_bus_get_owner_uid;
1430 + +        sd_bus_get_owner_pid;
1431 + +        sd_bus_get_owner_machine_id;
1432 + +        sd_bus_error_free;
1433 + +        sd_bus_error_set;
1434 + +        sd_bus_error_set_const;
1435 + +        sd_bus_error_copy;
1436 + +        sd_bus_error_is_set;
1437 + +        sd_bus_error_has_name;
1438 + +        sd_bus_message_get_type;
1439 + +        sd_bus_message_get_serial;
1440 + +        sd_bus_message_get_reply_serial;
1441 + +        sd_bus_message_get_no_reply;
1442 + +        sd_bus_message_get_destination;
1443 + +        sd_bus_message_get_path;
1444 + +        sd_bus_message_get_interface;
1445 + +        sd_bus_message_get_member;
1446 + +        sd_bus_message_get_sender;
1447 + +        sd_bus_message_get_error;
1448 + +        sd_bus_message_get_uid;
1449 + +        sd_memfd_new;
1450 + +        sd_memfd_make;
1451 + +        sd_memfd_free;
1452 + +        sd_memfd_get_fd;
1453 + +        sd_memfd_get_file;
1454 + +        sd_memfd_dup_fd;
1455 + +        sd_memfd_map;
1456 + +        sd_memfd_set_sealed;
1457 + +        sd_memfd_get_sealed;
1458 + +        sd_memfd_get_size;
1459 + +        sd_memfd_set_size;
1460 + +        sd_memfd_new_and_map;
1461 + +        bus_message_seal;
1462 + +        bus_message_dump;
1463 + +        bus_message_from_malloc;
1464 + +        bus_message_get_blob;
1465 + +        bus_error_message;
1466 + +        bus_match_add;
1467 + +        bus_match_run;
1468 + +        bus_match_free;
1469 + +        bus_match_dump;
1470 + +        bus_match_remove;
1471 + +        bus_match_node_type_to_string;
1472 + +        bus_match_node_type_from_string;
1473 + +        bus_kernel_create;
1474 + +        service_name_is_valid;
1475 + +        signature_is_valid;
1476 + +        signature_is_pair;
1477 + +        signature_is_single;
1478 + +        namespace_complex_pattern;
1479 + +        namespace_simple_pattern;
1480 + +        path_complex_pattern;
1481 + +        path_simple_pattern;
1482 + +local:
1483 + +        *;
1484 + +};
1485 + -- 
1486 + 1.8.3.1
1487