[PATCH] configure.ac: enable systemd socket activation in libxtrans
Hans de Goede
hdegoede at redhat.com
Mon Dec 2 11:26:37 PST 2013
Hi,
On 11/29/2013 06:00 AM, Peter Hutterer wrote:
> On Thu, Nov 28, 2013 at 04:23:07PM +0100, Hans de Goede wrote:
>> From: Łukasz Stelmach <l.stelmach at samsung.com>
>>
>> Signed-off-by: Łukasz Stelmach <l.stelmach at samsung.com>
>> Signed-off-by: Hans de Goede <hdegoede at redhat.com>
>> ---
>> configure.ac | 28 ++++++++++++++++++++++++++++
>> 1 file changed, 28 insertions(+)
>>
>> diff --git a/configure.ac b/configure.ac
>> index 6c4a609..ab246d6 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -832,6 +832,34 @@ AC_SUBST(SDK_REQUIRED_MODULES)
>>
>> REQUIRED_MODULES="$FIXESPROTO $DAMAGEPROTO $XCMISCPROTO $XTRANS $BIGREQSPROTO $SDK_REQUIRED_MODULES"
>>
>> +#
>> +# systemd socket activation
>> +#
>> +# activate the code in libxtrans that grabs sockets' file-descriptors
>> +# instead of creating them.
>> +#
>> +AC_ARG_WITH([systemd],
>> + AS_HELP_STRING([--with-systemd], [support systemd socket activation]),
>> + [], [with_systemd=check])
>> +have_systemd=check
>> +if test "x$with_systemd" != "xno"; then
>> + PKG_CHECK_MODULES([systemd], [libsystemd-daemon],
>> + [AC_DEFINE(HAVE_SYSTEMD, 1, [Define if libsystemd-daemon is available])
>> + have_systemd=yes;],
>> + [have_systemd=no])
>> + if test "x$with_systemd" = "xyes" -a "x$have_systemd" = "xno"; then
>> + AC_MSG_ERROR([systemd support requested but no library has been found])
>> + fi
>> +fi
>> +AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$have_systemd" = "xyes"])
>> +if test "x$have_systemd" = "xyes"; then
>
> while the above is fine, I'd prefer if base logic of the check is the same
> as all the other checks for misc "auto" stuff. which seems to be
>
> PKG_CHECK_MODULES(foo, foo, [have_foo=yes], [have_foo=no])
> if test "x$foo" = xauto; then
> foo=$have_foo
> fi
> if test "x$foo" = xyes; then
> if "xhave_foo" = xno; then
> error
> fi
> AC_DEFINE(...)
> other stuff
> fi
> AM_CONDITIONAL()
>
> there are multiple versions of this floating around in the configure file
> but the majority seems to go about it this way. it also helps re-using the
> have_systemd if it's needed elsewhere in the future.
Done.
>
>
>> + SAVE_LIBS=$LIBS
>> + LIBS="$systemd_LIBS"
>> + AC_CHECK_FUNCS([sd_listen_fds], [], [AC_MSG_ERROR([sd_listen_fds() is missing from libsystemd-daemon])])
>
> can this even happen? quick check of the systemd code doesn't seem like it's
> easily disabled. and the history of it is back long enough that we don't
> need to require a specific version
Agreed I've dropped the check.
>
>> + LIBS=$SAVE_LIBS
>> + REQUIRED_LIBS="$REQUIRED_LIBS libsystemd-daemon"
>
> this should also check for the matching version of libxtrans (which would
> have to be released first, of course).
I think it would be better / easier to just bump the XTRANS requirement
when this goes upstream, iow change line 804 from:
XTRANS="xtrans >= 1.3.2"
to:
XTRANS="xtrans >= 1.3.3"
Once the new xtrans is released. Having HAVE_SYSTEMD in config.h won't hurt
with the old xtrans anyways, as there is no new API added, all changes which
it enables / disabled are contained within xtrans.
And I'm not a big fan of autotools (not that I know of anything better). So
I would like to keep the autotools stuff as KISS as possible.
Regards,
Hans
More information about the xorg-devel
mailing list