[PATCH] Support installing systemd unit file.

Gaetan Nadon memsize at videotron.ca
Sun Aug 28 14:12:41 PDT 2011


On Sun, 2011-08-28 at 09:49 +0200, Michał Górny wrote:

> Signed-off-by: Michał Górny <mgorny at gentoo.org>
> Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=38339
> ---
>  Makefile.am    |   10 ++++++++++
>  configure.ac   |   12 ++++++++++++
>  xdm.service.in |   10 ++++++++++
>  3 files changed, 32 insertions(+), 0 deletions(-)
>  create mode 100644 xdm.service.in
> 
> diff --git a/Makefile.am b/Makefile.am
> index 0bd7ca9..74ea361 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -38,6 +38,16 @@ lint:
>  	(cd chooser && $(MAKE) $(AM_MAKEFLAGS) lint)
>  endif LINT
>  
> +if HAVE_SYSTEMD
> +systemdsystemunit_DATA = xdm.service
> +
> +xdm.service: xdm.service.in
> +	$(AM_V_GEN)$(SED) -e 's|BINDIR|$(bindir)|g' < $< > $@
> +
> +MOSTLYCLEANFILES = xdm.service
> +endif HAVE_SYSTEMD
> +EXTRA_DIST = xdm.service.in

If make creates xdm.service and the module is reconfigured using
--without such that the file should no longer be created, it is not
removed and thus gets installed anyway. It won't even be removed if you
do 'make clean' . It could be a .PHONY target.

When  the path to the service dir is not writable by the user, the
distcheck target will fail. The option should be added to
DISTCHECK_CONFIGURE_FLAGS.


> +
>  MAINTAINERCLEANFILES = ChangeLog INSTALL
>  
>  .PHONY: ChangeLog INSTALL
> diff --git a/configure.ac b/configure.ac
> index 0c79999..1443d9e 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -145,6 +145,18 @@ if test "x$USE_SELINUX" != "xno" ; then
>      )
>  fi
>  
> +# Check whether to install systemd unit files, as suggest in daemon(7).
> +AC_ARG_WITH([systemdsystemunitdir],
> +	AS_HELP_STRING([--with-systemdsystemunitdir=DIR],
> +		[Directory for systemd service files]),

The help string should state (within reason) what is the default path
for the service directory.

> +	[],
> +	[with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)]
> +)
> +if test "x$with_systemdsystemunitdir" != "xno" ; then
> +	AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
> +fi

When user input is "--with-systemdsystemunitdir" (the path is missing),
variable systemdsystemunitdir is set to 'yes' and HAVE_SYSTEMD is set to
true which does not make much sense. Make install will attempt to write
it in the 'yes' directory. Perhaps it should pick the default value.

When user does not type any --with or any --without and does not have
the systemd installed, what is the default value for
systemdsystemunitdir? 

When a user inputs "--with-systemdsystemunitdir=/usr/lib/systemd/system"
and does not have systemd installed, will the service file be installed?
In my opinion, it should not. This is for Linux only, only a few distros
have it, other O/S such as *BSD and Solaris don't. With this patch it
would.

In essence, when the user input clearly indicates he wants to set
systemdsystemunitdir, an error should occur if systemd is not installed.

> +AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ])
> +
>  # FIXME: Find better test for which OS'es use su -m  - for now, just try to
>  # mirror the Imakefile setting of:
>  # if  defined(OpenBSDArchitecture) || defined(NetBSDArchitecture) || defined(FreeBSDArchitecture) || defined(DarwinArchitecture)
> diff --git a/xdm.service.in b/xdm.service.in
> new file mode 100644
> index 0000000..2e85c13
> --- /dev/null
> +++ b/xdm.service.in
> @@ -0,0 +1,10 @@
> +[Unit]
> +Description=X-Window Display Manager on %I
> +Requires=dev-%i.device
> +After=dev-%i.device systemd-user-sessions.service
> +
> +[Service]
> +ExecStart=BINDIR/xdm -nodaemon
> +
> +[Install]
> +Alias=graphical.target.wants/xdm at tty7.service
> -- 
> 1.7.6.1
> 
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.x.org/archives/xorg-devel/attachments/20110828/bbc7d47a/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://lists.x.org/archives/xorg-devel/attachments/20110828/bbc7d47a/attachment.pgp>


More information about the xorg-devel mailing list