diff options
Diffstat (limited to 'debian/patches/dbus-launch-use-libdbus-to-read-the-UUID.patch')
-rw-r--r-- | debian/patches/dbus-launch-use-libdbus-to-read-the-UUID.patch | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/debian/patches/dbus-launch-use-libdbus-to-read-the-UUID.patch b/debian/patches/dbus-launch-use-libdbus-to-read-the-UUID.patch new file mode 100644 index 00000000..dd514b25 --- /dev/null +++ b/debian/patches/dbus-launch-use-libdbus-to-read-the-UUID.patch @@ -0,0 +1,125 @@ +From: Simon McVittie <simon.mcvittie@collabora.co.uk> +Date: Tue, 17 Feb 2015 13:46:53 +0000 +Subject: dbus-launch: use libdbus to read the UUID + +As a side benefit, this means that dbus-launch now understands +/etc/machine-id and not just /var/lib/dbus/machine-id. + +I'm using the "internal" (static) version of libdbus rather than +the shared version, because my next commit is going to need that +anyway. +--- + tools/Makefile.am | 17 ++++++++++++----- + tools/dbus-launch.c | 36 ++++++++++-------------------------- + tools/dbus-launch.h | 2 ++ + 3 files changed, 24 insertions(+), 31 deletions(-) + +diff --git a/tools/Makefile.am b/tools/Makefile.am +index 9046282..fafee1b 100644 +--- a/tools/Makefile.am ++++ b/tools/Makefile.am +@@ -48,7 +48,18 @@ else + dbus_launch_SOURCES= \ + dbus-launch.c \ + dbus-launch-x11.c \ +- dbus-launch.h ++ dbus-launch.h \ ++ tool-common.c \ ++ tool-common.h \ ++ $(NULL) ++dbus_launch_CPPFLAGS = \ ++ $(AM_CPPFLAGS) \ ++ -DDBUS_STATIC_BUILD \ ++ $(NULL) ++dbus_launch_LDADD = \ ++ $(top_builddir)/dbus/libdbus-internal.la \ ++ $(DBUS_X_LIBS) \ ++ $(NULL) + + dbus_run_session_SOURCES = \ + dbus-run-session.c +@@ -77,10 +88,6 @@ dbus_uuidgen_LDADD = \ + $(top_builddir)/dbus/libdbus-1.la \ + $(NULL) + +-dbus_launch_LDADD = \ +- $(DBUS_X_LIBS) \ +- $(NULL) +- + examplesdir = ${docdir}/examples + dist_examples_SCRIPTS = \ + GetAllMatchRules.py \ +diff --git a/tools/dbus-launch.c b/tools/dbus-launch.c +index 41a20e8..1d9ab3e 100644 +--- a/tools/dbus-launch.c ++++ b/tools/dbus-launch.c +@@ -106,46 +106,30 @@ save_machine_uuid (const char *uuid_arg) + } + + #ifdef DBUS_BUILD_X11 +-#define UUID_MAXLEN 40 + /* Read the machine uuid from file if needed. Returns TRUE if machine_uuid is + * set after this function */ + static int + read_machine_uuid_if_needed (void) + { +- FILE *f; +- char uuid[UUID_MAXLEN]; +- size_t len; +- int ret = FALSE; ++ char *uuid; + + if (machine_uuid != NULL) + return TRUE; + +- f = fopen (DBUS_MACHINE_UUID_FILE, "r"); +- if (f == NULL) +- return FALSE; +- +- if (fgets (uuid, UUID_MAXLEN, f) == NULL) +- goto out; ++ uuid = dbus_get_local_machine_id (); + +- len = strlen (uuid); +- if (len < 32) +- goto out; ++ if (uuid == NULL) ++ return FALSE; + +- /* rstrip the read uuid */ +- while (len > 31 && isspace((int) uuid[len - 1])) +- len--; ++ /* one is allocated with malloc and the other with dbus_malloc so copy it */ ++ machine_uuid = xstrdup (uuid); + +- if (len != 32) +- goto out; ++ if (machine_uuid == NULL) ++ tool_oom ("reading machine UUID"); + +- uuid[len] = '\0'; +- machine_uuid = xstrdup (uuid); ++ dbus_free (uuid); + verbose ("UID: %s\n", machine_uuid); +- ret = TRUE; +- +-out: +- fclose(f); +- return ret; ++ return TRUE; + } + #endif /* DBUS_BUILD_X11 */ + +diff --git a/tools/dbus-launch.h b/tools/dbus-launch.h +index 8220bb8..d0ede6b 100644 +--- a/tools/dbus-launch.h ++++ b/tools/dbus-launch.h +@@ -26,6 +26,8 @@ + + #include <sys/types.h> + ++#include <dbus/dbus.h> ++ + #ifndef TRUE + #define TRUE (1) + #endif |