[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH v5 00/14] xen: add systemd support



From: "Luis R. Rodriguez" <mcgrof@xxxxxxxx>

This is v5 on the xen systemd integration series. It addresses all
concerns raised. I've also taken the time to run time test this
with systems without systemd, and also built binaries with systemd
enabled and tested these on non systemd systemd even with and
without systemd libraries present. The trick was to use the dynamic
link loader. Since the dynamic link loader is used, since ocaml
lacks systemd support, and since it makes sense to share as much
code as possible I've piggy backed systemd support into libxenstore.so
and made oxenstored link to that. This series enables systemd on build time
if you have what it takes to build systemd support, after all binaries with
the dynamic link loader support won't require folks on systems to actually
have systemd libraries present unless they actually *booted with systemd*
as their init. Folks that don't like that approach can toy around and
replace usage of AX_AVAILABLE_SYSTEMD() with AX_ALLOW_SYSTEMD() or
AX_ENABLE_SYSTEMD() and enabling the CFLAG and LDFLAG as I had done
in previous patches, the current approach however is the most flexible,
and less intrusive.

This series also goes with sd_notify() support, thereby
simplfying the systemd init even further. I generated this series
using the latest unstable version of git to ensure we get proper
review through simple renames with git format-patch -M --B.

I've dropped the retries stuff, I actually have a fix for that but
I don't have the time to test, if some folks might be interested
I can provide RFTs but I really want to get this out of the way
first.

Luis R. Rodriguez (14):
  xenstored: enable usage of config.h on both xenstored and oxenstored
  libxenstore.so: add support for systemd
  cxenstored: add support for systemd active sockets
  oxenstored: add support for systemd active sockets
  oxenstored: force FD_CLOEXEC with Unix.set_close_on_exec on LSB init
  tools/xendomains: make xl the default
  tools/xendomains: do space cleanups
  tools/xendomains: move to libexec and use a smaller init helper
  autoconf: xen: force a refresh with autoconf
  autoconf: update m4/pkg.m4
  autoconf: xen: move standard variables to a generic place
  autoconf: xen: enable explicit preference option for xenstored
    preference
  xencommons: move module list into a generic place
  systemd: add xen systemd service and module files

 .gitignore                                         |   7 +
 Config.mk                                          |  13 -
 Makefile                                           |   6 +-
 README                                             |  96 ++++
 autogen.sh                                         |   8 +-
 config/StdGNU.mk                                   |  28 +-
 config/Tools.mk.in                                 |   6 +
 config/Toplevel.mk.in                              |  27 +
 config/defaults.mk                                 |  21 +
 config/modules                                     |  16 +
 config/xen-environment-header.in                   |  16 +
 config/xen-environment-scripts.in                  |  18 +
 configure.ac                                       |  10 +-
 m4/README.source                                   |  35 ++
 m4/expand_config.m4                                | 122 ++++
 m4/pkg.m4                                          |  88 ++-
 m4/systemd.m4                                      | 120 ++++
 stubdom/Makefile                                   |  17 +-
 stubdom/configure.ac                               |   4 +
 tools/configure.ac                                 |  17 +-
 tools/hotplug/Linux/Makefile                       |  45 +-
 .../Linux/init.d/{xencommons => xencommons.in}     |  22 +-
 tools/hotplug/Linux/init.d/xendomains              | 635 ++-------------------
 tools/hotplug/Linux/systemd/Makefile               |  70 +++
 tools/hotplug/Linux/systemd/proc-xen.mount.in      |   9 +
 .../Linux/systemd/var-lib-xenstored.mount.in       |  13 +
 .../systemd/xen-qemu-dom0-disk-backend.service.in  |  22 +
 .../hotplug/Linux/systemd/xen-watchdog.service.in  |  13 +
 tools/hotplug/Linux/systemd/xenconsoled.service.in |  20 +
 tools/hotplug/Linux/systemd/xendomains.service.in  |  16 +
 tools/hotplug/Linux/systemd/xenstored.service.in   |  27 +
 tools/hotplug/Linux/systemd/xenstored.socket.in    |  11 +
 tools/hotplug/Linux/{init.d => }/xendomains        |  70 +--
 tools/hotplug/common/Makefile                      |   6 +-
 tools/libxl/Makefile                               |  11 +-
 tools/ocaml/xenstored/Makefile                     |  13 +-
 tools/ocaml/xenstored/systemd.ml                   |  17 +
 tools/ocaml/xenstored/systemd.mli                  |  24 +
 tools/ocaml/xenstored/systemd_stubs.c              | 132 +++++
 tools/ocaml/xenstored/utils.ml                     |  21 +-
 tools/ocaml/xenstored/xenstored.ml                 |   2 +
 tools/python/Makefile                              |   6 +-
 tools/xenstore/Makefile                            |   8 +-
 tools/xenstore/xenstore.h                          |  11 +
 tools/xenstore/xenstored_core.c                    |  49 +-
 tools/xenstore/xs_systemd.c                        | 321 +++++++++++
 46 files changed, 1549 insertions(+), 720 deletions(-)
 create mode 100644 config/defaults.mk
 create mode 100644 config/modules
 create mode 100644 config/xen-environment-header.in
 create mode 100644 config/xen-environment-scripts.in
 create mode 100644 m4/README.source
 create mode 100644 m4/expand_config.m4
 create mode 100644 m4/systemd.m4
 rename tools/hotplug/Linux/init.d/{xencommons => xencommons.in} (82%)
 rewrite tools/hotplug/Linux/init.d/xendomains (95%)
 create mode 100644 tools/hotplug/Linux/systemd/Makefile
 create mode 100644 tools/hotplug/Linux/systemd/proc-xen.mount.in
 create mode 100644 tools/hotplug/Linux/systemd/var-lib-xenstored.mount.in
 create mode 100644 
tools/hotplug/Linux/systemd/xen-qemu-dom0-disk-backend.service.in
 create mode 100644 tools/hotplug/Linux/systemd/xen-watchdog.service.in
 create mode 100644 tools/hotplug/Linux/systemd/xenconsoled.service.in
 create mode 100644 tools/hotplug/Linux/systemd/xendomains.service.in
 create mode 100644 tools/hotplug/Linux/systemd/xenstored.service.in
 create mode 100644 tools/hotplug/Linux/systemd/xenstored.socket.in
 rename tools/hotplug/Linux/{init.d => }/xendomains (94%)
 create mode 100644 tools/ocaml/xenstored/systemd.ml
 create mode 100644 tools/ocaml/xenstored/systemd.mli
 create mode 100644 tools/ocaml/xenstored/systemd_stubs.c
 create mode 100644 tools/xenstore/xs_systemd.c

-- 
2.0.0.rc3.18.g00a5b79


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.