[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