summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGaël Bonithon <gael@xfce.org>2022-01-05 20:37:31 +0100
committerGaël Bonithon <gael@xfce.org>2022-01-09 12:14:11 +0000
commitb075248d977a6491a6f0f63f5bc67cdb16c3a0f8 (patch)
treeaa1836f255475ba1a4abe9765f4859b2db807d25
parent724fd4465fa72a7202a97fa98850008f98272084 (diff)
downloadtumbler-b075248d977a6491a6f0f63f5bc67cdb16c3a0f8.tar.gz
Allow to choose an alternative service name prefix
This is primarily for Flatpak packaging, where a "private service" is desirable, although one could imagine using it in other contexts. The prefix must be specified via the environment variable `TUMBLER_SERVICE_NAME_PREFIX`. Related to xfconf#27, see !21 for more details.
-rw-r--r--.gitignore3
-rw-r--r--configure.ac14
-rw-r--r--tumblerd/Makefile.am33
-rw-r--r--tumblerd/main.c6
-rw-r--r--tumblerd/org.xfce.Tumbler.Cache1.service.in2
-rw-r--r--tumblerd/org.xfce.Tumbler.Manager1.service.in2
-rw-r--r--tumblerd/org.xfce.Tumbler.Thumbnailer1.service.in2
-rw-r--r--tumblerd/tumbler-cache-service-dbus.xml.in (renamed from tumblerd/tumbler-cache-service-dbus.xml)8
-rw-r--r--tumblerd/tumbler-cache-service.c6
-rw-r--r--tumblerd/tumbler-manager-dbus.xml.in (renamed from tumblerd/tumbler-manager-dbus.xml)7
-rw-r--r--tumblerd/tumbler-manager.c2
-rw-r--r--tumblerd/tumbler-service-dbus.xml.in (renamed from tumblerd/tumbler-service-dbus.xml)8
-rw-r--r--tumblerd/tumbler-service.c6
-rw-r--r--tumblerd/tumbler-specialized-thumbnailer.c2
-rw-r--r--tumblerd/tumblerd.service.in2
15 files changed, 62 insertions, 41 deletions
diff --git a/.gitignore b/.gitignore
index 19f7441..6060e10 100644
--- a/.gitignore
+++ b/.gitignore
@@ -35,6 +35,9 @@ tumbler-marshal.[ch]
tumbler-cache-service-gdbus.[ch]
tumbler-manager-gdbus.[ch]
tumbler-service-gdbus.[ch]
+tumbler-cache-service-dbus.xml
+tumbler-manager-dbus.xml
+tumbler-service-dbus.xml
*.swp
commit-msg
*.lo
diff --git a/configure.ac b/configure.ac
index 9da1472..ddf1e9a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -154,6 +154,20 @@ PKG_CHECK_MODULES([GMODULE], [gmodule-2.0 >= 2.56.0])
PKG_CHECK_MODULES([GTHREAD], [gthread-2.0 >= 2.56.0])
XDT_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0], [4.17.1])
+dnl ******************************************************************
+dnl *** Alternative service name prefix for e.g. Flatpak packaging ***
+dnl ******************************************************************
+AC_ARG_VAR([TUMBLER_SERVICE_NAME_PREFIX],
+ [Alternative prefix to org.freedesktop.thumbnails for Tumbler services])
+test -n "$TUMBLER_SERVICE_NAME_PREFIX" || TUMBLER_SERVICE_NAME_PREFIX='org.freedesktop.thumbnails'
+
+AC_SUBST([TUMBLER_SERVICE_PATH_PREFIX],
+ [$(printf '%s' $TUMBLER_SERVICE_NAME_PREFIX | $SED -E 's%(^|\.)%/%g')])
+AC_DEFINE_UNQUOTED(TUMBLER_SERVICE_NAME_PREFIX, "$TUMBLER_SERVICE_NAME_PREFIX",
+ Name prefix for Tumbler services)
+AC_DEFINE_UNQUOTED(TUMBLER_SERVICE_PATH_PREFIX, "$TUMBLER_SERVICE_PATH_PREFIX",
+ Path prefix for Tumbler services)
+
dnl *************************
dnl *** Check for plugins ***
dnl *************************
diff --git a/tumblerd/Makefile.am b/tumblerd/Makefile.am
index deb9a06..5eb0dbc 100644
--- a/tumblerd/Makefile.am
+++ b/tumblerd/Makefile.am
@@ -99,10 +99,22 @@ systemd_user_in_files = tumblerd.service.in
systemd_user_DATA = $(systemd_user_in_files:.service.in=.service)
+dbus_xml_in_files = \
+ tumbler-cache-service-dbus.xml.in \
+ tumbler-manager-dbus.xml.in \
+ tumbler-service-dbus.xml.in
+
+dbus_xml_files = $(dbus_xml_in_files:.xml.in=.xml)
+
%.service: %.service.in
$(SED) -e "s,\@libdir\@,$(libdir),g" \
- -e "s,\@TUMBLER_VERSION_API\@,$(TUMBLER_VERSION_API),g" < $< > $@
+ -e "s,\@TUMBLER_VERSION_API\@,$(TUMBLER_VERSION_API),g" \
+ -e "s,\@TUMBLER_SERVICE_NAME_PREFIX\@,$(TUMBLER_SERVICE_NAME_PREFIX),g" \
+ -e "s,\@TUMBLER_SERVICE_PATH_PREFIX\@,$(TUMBLER_SERVICE_PATH_PREFIX),g" < $< > $@
+%.xml: %.xml.in
+ $(SED) -e "s,\@TUMBLER_SERVICE_NAME_PREFIX\@,$(TUMBLER_SERVICE_NAME_PREFIX),g" \
+ -e "s,\@TUMBLER_SERVICE_PATH_PREFIX\@,$(TUMBLER_SERVICE_PATH_PREFIX),g" < $< > $@
confdir = $(sysconfdir)/xdg/tumbler
conf_DATA = \
@@ -116,12 +128,11 @@ EXTRA_DIST = \
$(systemd_user_in_files) \
$(service_in_files) \
tumbler.rc \
- tumbler-cache-service-dbus.xml \
- tumbler-manager-dbus.xml \
- tumbler-service-dbus.xml
+ $(dbus_xml_in_files)
DISTCLEANFILES = \
- $(tumblerd_built_sources)
+ $(tumblerd_built_sources) \
+ $(dbus_xml_files)
BUILT_SOURCES = \
$(tumblerd_built_sources)
@@ -129,23 +140,23 @@ BUILT_SOURCES = \
tumbler-manager-gdbus.h:
tumbler-manager-gdbus.c: tumbler-manager-dbus.xml Makefile
$(AM_V_GEN) $(GDBUS_CODEGEN) \
- --interface-prefix org.freedesktop.thumbnails.Manager1 \
+ --interface-prefix @TUMBLER_SERVICE_NAME_PREFIX@.Manager1 \
--c-namespace Tumbler \
--generate-c-code tumbler-manager-gdbus \
- $(srcdir)/tumbler-manager-dbus.xml
+ tumbler-manager-dbus.xml
tumbler-service-gdbus.h:
tumbler-service-gdbus.c: tumbler-service-dbus.xml Makefile
$(AM_V_GEN) $(GDBUS_CODEGEN) \
- --interface-prefix org.freedesktop.thumbnails.Thumbnailer1 \
+ --interface-prefix @TUMBLER_SERVICE_NAME_PREFIX@.Thumbnailer1 \
--c-namespace Tumbler \
--generate-c-code tumbler-service-gdbus \
- $(srcdir)/tumbler-service-dbus.xml
+ tumbler-service-dbus.xml
tumbler-cache-service-gdbus.h:
tumbler-cache-service-gdbus.c: tumbler-cache-service-dbus.xml Makefile
$(AM_V_GEN) $(GDBUS_CODEGEN) \
- --interface-prefix org.freedesktop.thumbnails.Cache1 \
+ --interface-prefix @TUMBLER_SERVICE_NAME_PREFIX@.Cache1 \
--c-namespace Tumbler \
--generate-c-code tumbler-cache-service-gdbus \
- $(srcdir)/tumbler-cache-service-dbus.xml
+ tumbler-cache-service-dbus.xml
diff --git a/tumblerd/main.c b/tumblerd/main.c
index 41b0309..5cc2d66 100644
--- a/tumblerd/main.c
+++ b/tumblerd/main.c
@@ -228,7 +228,7 @@ main (int argc,
/* Acquire the cache service dbus name */
g_bus_own_name_on_connection (connection,
- "org.freedesktop.thumbnails.Cache1",
+ TUMBLER_SERVICE_NAME_PREFIX ".Cache1",
G_BUS_NAME_OWNER_FLAGS_REPLACE,
NULL, /* We dont need to do anything on name acquired*/
on_dbus_name_lost,
@@ -237,7 +237,7 @@ main (int argc,
/* Acquire the manager dbus name */
g_bus_own_name_on_connection (connection,
- "org.freedesktop.thumbnails.Manager1",
+ TUMBLER_SERVICE_NAME_PREFIX ".Manager1",
G_BUS_NAME_OWNER_FLAGS_REPLACE,
NULL, /* We dont need to do anything on name acquired*/
on_dbus_name_lost,
@@ -246,7 +246,7 @@ main (int argc,
/* Acquire the thumbnailer service dbus name */
g_bus_own_name_on_connection (connection,
- "org.freedesktop.thumbnails.Thumbnailer1",
+ TUMBLER_SERVICE_NAME_PREFIX ".Thumbnailer1",
G_BUS_NAME_OWNER_FLAGS_REPLACE,
NULL, /* We dont need to do anything on name acquired*/
on_dbus_name_lost,
diff --git a/tumblerd/org.xfce.Tumbler.Cache1.service.in b/tumblerd/org.xfce.Tumbler.Cache1.service.in
index 9221dcc..6e806bf 100644
--- a/tumblerd/org.xfce.Tumbler.Cache1.service.in
+++ b/tumblerd/org.xfce.Tumbler.Cache1.service.in
@@ -1,4 +1,4 @@
[D-BUS Service]
-Name=org.freedesktop.thumbnails.Cache1
+Name=@TUMBLER_SERVICE_NAME_PREFIX@.Cache1
Exec=@libdir@/tumbler-@TUMBLER_VERSION_API@/tumblerd
SystemdService=tumblerd.service
diff --git a/tumblerd/org.xfce.Tumbler.Manager1.service.in b/tumblerd/org.xfce.Tumbler.Manager1.service.in
index cb070b9..c427264 100644
--- a/tumblerd/org.xfce.Tumbler.Manager1.service.in
+++ b/tumblerd/org.xfce.Tumbler.Manager1.service.in
@@ -1,4 +1,4 @@
[D-BUS Service]
-Name=org.freedesktop.thumbnails.Manager1
+Name=@TUMBLER_SERVICE_NAME_PREFIX@.Manager1
Exec=@libdir@/tumbler-@TUMBLER_VERSION_API@/tumblerd
SystemdService=tumblerd.service
diff --git a/tumblerd/org.xfce.Tumbler.Thumbnailer1.service.in b/tumblerd/org.xfce.Tumbler.Thumbnailer1.service.in
index 6dc6d91..7740723 100644
--- a/tumblerd/org.xfce.Tumbler.Thumbnailer1.service.in
+++ b/tumblerd/org.xfce.Tumbler.Thumbnailer1.service.in
@@ -1,4 +1,4 @@
[D-BUS Service]
-Name=org.freedesktop.thumbnails.Thumbnailer1
+Name=@TUMBLER_SERVICE_NAME_PREFIX@.Thumbnailer1
Exec=@libdir@/tumbler-@TUMBLER_VERSION_API@/tumblerd
SystemdService=tumblerd.service
diff --git a/tumblerd/tumbler-cache-service-dbus.xml b/tumblerd/tumbler-cache-service-dbus.xml.in
index f297f38..63187af 100644
--- a/tumblerd/tumbler-cache-service-dbus.xml
+++ b/tumblerd/tumbler-cache-service-dbus.xml.in
@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
-<node name="/org/freedesktop/thumbnails/Cache1">
-
- <interface name="org.freedesktop.thumbnails.Cache1">
- <annotation name="org.gtk.GDBus.C.Name" value="ExportedCacheService" />
+<node name="@TUMBLER_SERVICE_PATH_PREFIX@/Cache1">
+ <interface name="@TUMBLER_SERVICE_NAME_PREFIX@.Cache1">
+ <annotation name="org.gtk.GDBus.C.Name" value="ExportedCacheService" />
<method name="Move">
<arg type="as" name="from_uris" direction="in" />
<arg type="as" name="to_uris" direction="in" />
@@ -14,7 +13,6 @@
</method>
<method name="Delete">
-
<arg type="as" name="uris" direction="in" />
</method>
diff --git a/tumblerd/tumbler-cache-service.c b/tumblerd/tumbler-cache-service.c
index 776c6d5..6b35aac 100644
--- a/tumblerd/tumbler-cache-service.c
+++ b/tumblerd/tumbler-cache-service.c
@@ -34,9 +34,9 @@
#include <tumblerd/tumbler-cache-service-gdbus.h>
#include <tumblerd/tumbler-utils.h>
-#define THUMBNAILER_CACHE_PATH "/org/freedesktop/thumbnails/Cache1"
-#define THUMBNAILER_CACHE_SERVICE "org.freedesktop.thumbnails.Cache1"
-#define THUMBNAILER_CACHE_IFACE "org.freedesktop.thumbnails.Cache1"
+#define THUMBNAILER_CACHE_PATH TUMBLER_SERVICE_PATH_PREFIX "/Cache1"
+#define THUMBNAILER_CACHE_SERVICE TUMBLER_SERVICE_NAME_PREFIX ".Cache1"
+#define THUMBNAILER_CACHE_IFACE TUMBLER_SERVICE_NAME_PREFIX ".Cache1"
typedef struct _MoveRequest MoveRequest;
typedef struct _CopyRequest CopyRequest;
diff --git a/tumblerd/tumbler-manager-dbus.xml b/tumblerd/tumbler-manager-dbus.xml.in
index dc492e7..eda1364 100644
--- a/tumblerd/tumbler-manager-dbus.xml
+++ b/tumblerd/tumbler-manager-dbus.xml.in
@@ -1,13 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
-<node name="/org/freedesktop/thumbnails/Manager1">
- <interface name="org.freedesktop.thumbnails.Manager1">
-
+<node name="@TUMBLER_SERVICE_PATH_PREFIX@/Manager1">
+ <interface name="@TUMBLER_SERVICE_NAME_PREFIX@.Manager1">
<annotation name="org.gtk.GDBus.C.Name" value="ExportedManager" />
-
<method name="Register">
<arg type="s" name="uri_scheme" direction="in" />
<arg type="s" name="mime_type" direction="in" />
</method>
-
</interface>
</node>
diff --git a/tumblerd/tumbler-manager.c b/tumblerd/tumbler-manager.c
index 7a128a6..4e62429 100644
--- a/tumblerd/tumbler-manager.c
+++ b/tumblerd/tumbler-manager.c
@@ -219,7 +219,7 @@ tumbler_manager_constructed (GObject *object)
g_dbus_interface_skeleton_export (G_DBUS_INTERFACE_SKELETON(manager->skeleton),
manager->connection,
- "/org/freedesktop/thumbnails/Manager1",
+ TUMBLER_SERVICE_PATH_PREFIX "/Manager1",
&error);
if (error != NULL)
diff --git a/tumblerd/tumbler-service-dbus.xml b/tumblerd/tumbler-service-dbus.xml.in
index 4aa77ec..ecb6795 100644
--- a/tumblerd/tumbler-service-dbus.xml
+++ b/tumblerd/tumbler-service-dbus.xml.in
@@ -1,9 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
-<node name="/org/freedesktop/thumbnails/Thumbnailer1">
- <interface name="org.freedesktop.thumbnails.Thumbnailer1">
-
- <annotation name="org.gtk.GDBus.C.Name" value="ExportedService" />
-
+<node name="@TUMBLER_SERVICE_PATH_PREFIX@/Thumbnailer1">
+ <interface name="@TUMBLER_SERVICE_NAME_PREFIX@.Thumbnailer1">
+ <annotation name="org.gtk.GDBus.C.Name" value="ExportedService" />
<method name="Queue">
<arg type="as" name="uris" direction="in" />
<arg type="as" name="mime_types" direction="in" />
diff --git a/tumblerd/tumbler-service.c b/tumblerd/tumbler-service.c
index 737791b..bc529eb 100644
--- a/tumblerd/tumbler-service.c
+++ b/tumblerd/tumbler-service.c
@@ -40,9 +40,9 @@
#include <tumblerd/tumbler-service-gdbus.h>
-#define THUMBNAILER_PATH "/org/freedesktop/thumbnails/Thumbnailer1"
-#define THUMBNAILER_SERVICE "org.freedesktop.thumbnails.Thumbnailer1"
-#define THUMBNAILER_IFACE "org.freedesktop.thumbnails.Thumbnailer1"
+#define THUMBNAILER_PATH TUMBLER_SERVICE_PATH_PREFIX "/Thumbnailer1"
+#define THUMBNAILER_SERVICE TUMBLER_SERVICE_NAME_PREFIX ".Thumbnailer1"
+#define THUMBNAILER_IFACE TUMBLER_SERVICE_NAME_PREFIX ".Thumbnailer1"
diff --git a/tumblerd/tumbler-specialized-thumbnailer.c b/tumblerd/tumbler-specialized-thumbnailer.c
index 85d18dd..6c9fbb0 100644
--- a/tumblerd/tumbler-specialized-thumbnailer.c
+++ b/tumblerd/tumbler-specialized-thumbnailer.c
@@ -212,7 +212,7 @@ tumbler_specialized_thumbnailer_constructed (GObject *object)
NULL,
thumbnailer->name,
thumbnailer->object_path,
- "org.freedesktop.thumbnails.SpecializedThumbnailer1",
+ TUMBLER_SERVICE_NAME_PREFIX ".SpecializedThumbnailer1",
NULL,
NULL);
diff --git a/tumblerd/tumblerd.service.in b/tumblerd/tumblerd.service.in
index 66c176a..cf26eae 100644
--- a/tumblerd/tumblerd.service.in
+++ b/tumblerd/tumblerd.service.in
@@ -5,5 +5,5 @@ Description=Thumbnailing service
Type=dbus
# This is deliberately the bus name that is the last one to be claimed;
# if this is claimed, then everything is ready
-BusName=org.freedesktop.thumbnails.Thumbnailer1
+BusName=@TUMBLER_SERVICE_NAME_PREFIX@.Thumbnailer1
ExecStart=@libdir@/tumbler-@TUMBLER_VERSION_API@/tumblerd