From f40b70e7e79f0f9a0fdbcc658f8b40c8a3e66f93 Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Mon, 4 Nov 2013 04:48:44 -0500 Subject: [PATCH] Add a systemd packagekit.service file We're still bus-activated by default, but now the system bus will ask systemd to start us. There are numerous advantages to this model, among them the ability to use the far more powerful systemd unit config file for controlling service parameters. Personally I like just having "systemctl status packagekit" work. Signed-off-by: Richard Hughes --- configure.ac | 2 ++ contrib/PackageKit.spec.in | 1 + data/Makefile.am | 11 +++++++++++ data/org.freedesktop.PackageKit.service.in | 1 + data/packagekit.service.in | 8 ++++++++ 5 files changed, 23 insertions(+) create mode 100644 data/packagekit.service.in diff --git a/configure.ac b/configure.ac index 9628de26e..854efe51e 100644 --- a/configure.ac +++ b/configure.ac @@ -278,6 +278,8 @@ AM_CONDITIONAL(PK_BUILD_SYSTEMD, test x$enable_systemd = xyes) if test x$enable_systemd = xyes; then PKG_CHECK_MODULES(SYSTEMD, libsystemd-login) AC_DEFINE(PK_BUILD_SYSTEMD,1,[Build systemd code]) + with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd) + AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir]) fi dnl --------------------------------------------------------------------------- diff --git a/contrib/PackageKit.spec.in b/contrib/PackageKit.spec.in index 9d7001895..774a2dc07 100644 --- a/contrib/PackageKit.spec.in +++ b/contrib/PackageKit.spec.in @@ -341,6 +341,7 @@ update-mime-database %{_datadir}/mime &> /dev/null || : %{_libdir}/girepository-1.0/PackageKitPlugin-1.0.typelib %{_datadir}/dbus-1/interfaces/*.xml /usr/lib/systemd/system/packagekit-offline-update.service +/usr/lib/systemd/system/packagekit.service %{_libexecdir}/pk-*offline-update %files docs diff --git a/data/Makefile.am b/data/Makefile.am index 742ed5e2f..f1e8420c6 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -30,6 +30,16 @@ servicemain_DATA = $(servicemain_in_files:.service.in=.service) $(servicemain_DATA): $(servicemain_in_files) Makefile @sed -e "s|\@servicedir\@|$(libexecdir)|" -e "s|\@PACKAGEKIT_USER\@|$(PACKAGEKIT_USER)|" $< > $@ +systemdservice_in_files = packagekit.service.in + +if PK_BUILD_SYSTEMD +systemdservicedir = $(systemdsystemunitdir) +systemdservice_DATA = $(systemdservice_in_files:.service.in=.service) +$(systemdservice_DATA): $(systemdservice_in_files) Makefile + @sed -e "s|\@servicedir\@|$(libexecdir)|" -e "s|\@PACKAGEKIT_USER\@|$(PACKAGEKIT_USER)|" $< > $@.tmp && mv $@.tmp $@ +endif + + databasedir = $(PK_DB_DIR) database_DATA = \ transactions.db \ @@ -46,6 +56,7 @@ EXTRA_DIST = \ $(servicemain_in_files) \ $(servicetest_in_files) \ $(serviceapt_in_files) \ + $(systemdservice_in_files) \ $(mime_in_files) \ $(localcache_DATA) \ $(database_DATA) \ diff --git a/data/org.freedesktop.PackageKit.service.in b/data/org.freedesktop.PackageKit.service.in index e0f378fe8..dea3423ae 100644 --- a/data/org.freedesktop.PackageKit.service.in +++ b/data/org.freedesktop.PackageKit.service.in @@ -2,4 +2,5 @@ Name=org.freedesktop.PackageKit Exec=@servicedir@/packagekitd User=@PACKAGEKIT_USER@ +SystemdService=packagekit.service diff --git a/data/packagekit.service.in b/data/packagekit.service.in new file mode 100644 index 000000000..ee9e85617 --- /dev/null +++ b/data/packagekit.service.in @@ -0,0 +1,8 @@ +[Unit] +Description=PackageKit Daemon + +[Service] +Type=dbus +BusName=org.freedesktop.PackageKit +User=@PACKAGEKIT_USER@ +ExecStart=@servicedir@/packagekitd