On Thu, Jan 05, 2017 at 05:45:50PM +0000, Daniel P. Berrange wrote: > On Thu, Jan 05, 2017 at 05:31:06PM +0000, Stefan Hajnoczi wrote: > > libsystemd provides APIs for daemons that wish to integrate socket > > activation and other systemd-related functionality. This will be used > > as an optional dependency by qemu-guest-agent. > > > > In the future it could also be used for systemd logging or sd_notify(3) > > service startup notification. > > > > Signed-off-by: Stefan Hajnoczi <[email protected]> > > --- > > configure | 34 ++++++++++++++++++++++++++++++++++ > > 1 file changed, 34 insertions(+) > > > > diff --git a/configure b/configure > > index 218df87..c353ff7 100755 > > --- a/configure > > +++ b/configure > > @@ -321,6 +321,7 @@ numa="" > > tcmalloc="no" > > jemalloc="no" > > replication="yes" > > +systemd="" > > > > # parse CC options first > > for opt do > > @@ -1168,6 +1169,10 @@ for opt do > > ;; > > --enable-replication) replication="yes" > > ;; > > + --disable-systemd) systemd="no" > > + ;; > > + --enable-systemd) systemd="yes" > > + ;; > > *) > > echo "ERROR: unknown option $opt" > > echo "Try '$0 --help' for more information" > > @@ -1401,6 +1406,7 @@ disabled with --disable-FEATURE, default is enabled > > if available: > > tcmalloc tcmalloc support > > jemalloc jemalloc support > > replication replication support > > + systemd systemd support > > > > NOTE: The object files are built at the place where configure is launched > > EOF > > @@ -4720,6 +4726,27 @@ if compile_prog "" "" ; then > > have_af_vsock=yes > > fi > > > > +########################################## > > +# check for libsystemd > > +if test "$systemd" != "no" ; then > > + cat > $TMPC << EOF > > +#include <systemd/sd-daemon.h> > > +int main(void) { (void)sd_listen_fds(1); return 0; } > > +EOF > > + systemd_cflags=$($pkg_config --cflags libsystemd 2>/dev/null) > > + systemd_libs=$($pkg_config --libs libsystemd 2>/dev/null) > > + if $pkg_config libsystemd >/dev/null 2>&1 && \ > > + compile_prog "$systemd_cflags" "$systemd_libs" ; then > > Any reason why you're going to the trouble of compiling a > program here ? The key benefit of pkg-config is that you > don't need to do things like that to test for existance > of the library - just trust the result of pkg-config check. > > FWIW, it is easy to support socket activation without even > using libsystemd. The systemd activation "protocol" is > trivial - it merely sets "LISTEN_FDS" env variable to the > number of FDs it has been passed down, and they are numbered > from stderr fileno + 1.
After looking into it I found that LISTEN_FDS is considered stable and "reimplementable independently": https://www.freedesktop.org/wiki/Software/systemd/InterfacePortabilityAndStabilityChart/ I'll resend this patch without the libsystemd dependency. I guess that will make packagers happy who wish to provide packages that work both with and without systemd installed. Stefan
signature.asc
Description: PGP signature
