diff options
author | Gaël Bonithon <gael@xfce.org> | 2022-01-05 20:37:31 +0100 |
---|---|---|
committer | Gaël Bonithon <gael@xfce.org> | 2022-01-09 12:14:11 +0000 |
commit | b075248d977a6491a6f0f63f5bc67cdb16c3a0f8 (patch) | |
tree | aa1836f255475ba1a4abe9765f4859b2db807d25 | |
parent | 724fd4465fa72a7202a97fa98850008f98272084 (diff) | |
download | tumbler-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-- | .gitignore | 3 | ||||
-rw-r--r-- | configure.ac | 14 | ||||
-rw-r--r-- | tumblerd/Makefile.am | 33 | ||||
-rw-r--r-- | tumblerd/main.c | 6 | ||||
-rw-r--r-- | tumblerd/org.xfce.Tumbler.Cache1.service.in | 2 | ||||
-rw-r--r-- | tumblerd/org.xfce.Tumbler.Manager1.service.in | 2 | ||||
-rw-r--r-- | tumblerd/org.xfce.Tumbler.Thumbnailer1.service.in | 2 | ||||
-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.c | 6 | ||||
-rw-r--r-- | tumblerd/tumbler-manager-dbus.xml.in (renamed from tumblerd/tumbler-manager-dbus.xml) | 7 | ||||
-rw-r--r-- | tumblerd/tumbler-manager.c | 2 | ||||
-rw-r--r-- | tumblerd/tumbler-service-dbus.xml.in (renamed from tumblerd/tumbler-service-dbus.xml) | 8 | ||||
-rw-r--r-- | tumblerd/tumbler-service.c | 6 | ||||
-rw-r--r-- | tumblerd/tumbler-specialized-thumbnailer.c | 2 | ||||
-rw-r--r-- | tumblerd/tumblerd.service.in | 2 |
15 files changed, 62 insertions, 41 deletions
@@ -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 |