1. 12 10月, 2011 1 次提交
    • E
      build: ship helper scripts · e648aee0
      Eric Blake 提交于
      Otherwise, 'make rpm' fails with:
      
        GEN    libvirt_qemu.def
      make[2]: *** No rule to make target `dtrace2systemtap.pl', needed by `libvirt_probes.stp'.  Stop.
      
      * src/Makefile.am (EXTRA_DIST): Add recent script additions.
      e648aee0
  2. 11 10月, 2011 3 次提交
    • D
      ad2bb65c
    • D
      Rewrite all the DTrace/SystemTAP probing · ddf3bd32
      Daniel P. Berrange 提交于
      The libvirtd daemon had a few crude system tap probes. Some of
      these were broken during the RPC rewrite. The new modular RPC
      code is structured in a way that allows much more effective
      tracing. Instead of trying to hook up the original probes,
      define a new set of probes for the RPC and event code.
      
      The master probes file is now src/probes.d.  This contains
      probes for virNetServerClientPtr, virNetClientPtr, virSocketPtr
      virNetTLSContextPtr and virNetTLSSessionPtr modules. Also add
      probes for the poll event loop.
      
      The src/dtrace2systemtap.pl script can convert the probes.d
      file into a libvirt_probes.stp file to make use from systemtap
      much simpler.
      
      The src/rpc/gensystemtap.pl script can generate a set of
      systemtap functions for translating RPC enum values into
      printable strings. This works for all RPC header enums (program,
      type, status, procedure) and also the authentication enum
      
      The PROBE macro will automatically generate a VIR_DEBUG
      statement, so any place with a PROBE can remove any existing
      manual DEBUG statements.
      
      * daemon/libvirtd.stp, daemon/probes.d: Remove obsolete probing
      * daemon/libvirtd.h: Remove probe macros
      * daemon/Makefile.am: Remove all probe buildings/install
      * daemon/remote.c: Update authentication probes
      * src/dtrace2systemtap.pl, src/rpc/gensystemtap.pl: Scripts
        to generate STP files
      * src/internal.h: Add probe macros
      * src/probes.d: Master list of probes
      * src/rpc/virnetclient.c, src/rpc/virnetserverclient.c,
        src/rpc/virnetsocket.c, src/rpc/virnettlscontext.c,
        src/util/event_poll.c: Insert probe points, removing any
        DEBUG statements that duplicate the info
      ddf3bd32
    • D
      Make libvirt.so include the RPC server code · 22af84dc
      Daniel P. Berrange 提交于
      To avoid static linking libvirtd to the RPC server code, which
      then prevents sane introduction of DTrace probes, put it all
      in the libvirt.so, and export it
      
      * daemon/Makefile.am: Don't link to RPC libraries
      * src/Makefile.am: Link all RPC libraries to libvirt.so
      * src/libvirt_private.syms: Export all RPC functions
      22af84dc
  3. 07 10月, 2011 1 次提交
    • E
      build: fix 'make distcheck' with pdwtags installed · 2d45ae5a
      Eric Blake 提交于
      I am getting this failure with 'make distcheck':
      
        GEN    ../../src/remote_protocol-structs
      /bin/sh: ../../src/remote_protocol-structs-t: Permission denied
      make[4]: *** [../../src/remote_protocol-structs] Error 1
      
      since it attempts a sub-run of a VPATH 'make check' where $(srcdir)
      is intentionally read-only.  I'm not sure which commit introduced
      the problem, although I suspect it was around 62dee6fa when I
      refactored protocol struct checking to be more powerful.
      
      $(@F) is required by POSIX, and although it is not yet portable
      to all make implementations, we already require GNU make.
      
      * src/Makefile.am (PDWTAGS): Generate temp file into current
      directory, since $(srcdir) is read-only during distcheck.
      2d45ae5a
  4. 20 9月, 2011 1 次提交
    • D
      Update to require sanlock 1.8 for license compliance · 19ff0ddf
      Daniel P. Berrange 提交于
      Inexplicably the sanlock code all got placed under the GPLv2-only,
      so libvirt's use of sanlock introduces a license incompatibility.
      The sanlock developers have now rearranged the code such that there
      is a 'sanlock_client.so' which is LGPLv2+ while their daemon remains
      GPLv2-only. To use the new client library we need to call the new
      sanlock_init and sanlock_align APIs instead of sanlock_direct_init
      and sanlock_direct_align. These APIs calls are now routed via the
      sanlock daemon, instead of doing direct I/O calls to disk.
      
      For all this we require sanlock >= 1.8
      
      * configure.ac: Check for sanlock_client.so instead of sanlock.so
        and fix various comments
      * libvirt.spec.in: Mandate sanlock >= 1.8
      * src/Makefile.am: Link to -lsanlock_client
      * src/locking/lock_driver_sanlock.c: Use sanlock_init and
        sanlock_align
      19ff0ddf
  5. 17 9月, 2011 1 次提交
    • D
      Prevent crash from dlclose() of libvirt.so · 8e44e559
      Daniel P. Berrange 提交于
      When libvirt calls virInitialize it creates a thread local
      for the virErrorPtr storage, and registers a callback to
      cleanup memory when a thread exits. When libvirt is dlclose()d
      or otherwise made non-resident, the callback function is
      removed from memory, but the thread local may still exist
      and if a thread later exists, it will invoke the callback
      and SEGV. There may also be other thread locals with callbacks
      pointing to libvirt code, so it is in general never safe to
      unload libvirt.so from memory once initialized.
      
      To allow dlclose() to succeed, but keep libvirt.so resident
      in memory, link with '-z nodelete'. This issue was first
      found with the libvirt CIM provider, but can potentially
      hit many of the dynamic language bindings which all ultimately
      involve dlopen() in some way, either on libvirt.so itself,
      or on the glue code for the binding which in turns links
      to libvirt
      
      * configure.ac, src/Makefile.am: Ensure libvirt.so is linked
        with -z nodelete
      * cfg.mk, .gitignore, tests/Makefile.am, tests/shunloadhelper.c,
        tests/shunloadtest.c: A test case to unload libvirt while
        a thread is still running.
      8e44e559
  6. 02 9月, 2011 1 次提交
    • O
      storage: Add fs pool formatting · 27758859
      Osier Yang 提交于
      This patch adds the ability to make the filesystem for a filesystem
      pool during a pool build.
      
      The patch adds two new flags, no overwrite and overwrite, to control
      when mkfs gets executed.  By default, the patch preserves the
      current behavior, i.e., if no flags are specified, pool build on a
      filesystem pool only makes the directory on which the filesystem
      will be mounted.
      
      If the no overwrite flag is specified, the target device is checked
      to determine if a filesystem of the type specified in the pool is
      present.  If a filesystem of that type is already present, mkfs is
      not executed and the build call returns an error.  Otherwise, mkfs
      is executed and any data present on the device is overwritten.
      
      If the overwrite flag is specified, mkfs is always executed, and any
      existing data on the target device is overwritten unconditionally.
      27758859
  7. 26 8月, 2011 3 次提交
    • M
      hyperv: Add basic driver for Microsoft Hyper-V · 5e3b0f8b
      Matthias Bolte 提交于
      Domain listing, basic information retrieval and domain life cycle
      management is implemented. But currently the domain XML output
      lacks the complete devices section.
      
      The driver uses OpenWSMAN to directly communicate with a Hyper-V
      server over its WS-Management interface exposed via Microsoft WinRM.
      
      The driver is based on the work of Michael Sievers. This started in
      the same master program project group at the University of Paderborn
      as the ESX driver.
      
      See Michael's blog for details: http://hyperv4libvirt.wordpress.com/
      5e3b0f8b
    • M
      hyperv: Add OpenWSMAN based client for the Hyper-V WMI API · e224b6f8
      Matthias Bolte 提交于
      Add a generator script to generate the structs and serialization
      information for OpenWSMAN.
      
      openwsman.h collects workarounds for problems in OpenWSMAN <= 2.2.6.
      There are also disabled sections that would use ws_serializer_free_mem
      but can't because it's broken in OpenWSMAN <= 2.2.6. Patches to fix
      this have been posted upstream.
      e224b6f8
    • M
      hyperv: Add driver skeleton · 4d6e6f4a
      Matthias Bolte 提交于
      4d6e6f4a
  8. 24 8月, 2011 1 次提交
  9. 16 8月, 2011 1 次提交
  10. 13 8月, 2011 1 次提交
    • D
      Move pidfile functions into util/virpidfile.{c,h} · f80a4ed7
      Daniel P. Berrange 提交于
      The functions for manipulating pidfiles are in util/util.{c,h}.
      We will shortly be adding some further pidfile related functions.
      To avoid further growing util.c, this moves the pidfile related
      functions into a dedicated virpidfile.{c,h}. The functions are
      also all renamed to have 'virPidFile' as their name prefix
      
      * util/util.h, util/util.c: Remove all pidfile code
      * util/virpidfile.c, util/virpidfile.h: Add new APIs for pidfile
        handling.
      * lxc/lxc_controller.c, lxc/lxc_driver.c, network/bridge_driver.c,
        qemu/qemu_process.c: Add virpidfile.h include and adapt for API
        renames
      f80a4ed7
  11. 30 7月, 2011 1 次提交
    • E
      build: fix include path for cygwin · c5b6537b
      Eric Blake 提交于
      Without this, cygwin failed to compile:
      
      In file included from ../src/rpc/virnetmessage.h:24,
                       from ../src/rpc/virnetclient.h:27,
                       from remote/remote_driver.c:31:
      ../src/rpc/virnetprotocol.h:9:21: error: rpc/rpc.h: No such file or directory
      
      With that fixed, compilation warned:
      
      rpc/virnetsocket.c: In function 'virNetSocketNewListenUNIX':
      rpc/virnetsocket.c:347: warning: format '%d' expects type 'int', but argument 8 has type 'gid_t' [-Wformat]
      rpc/virnetsocket.c: In function 'virNetSocketGetLocalIdentity':
      rpc/virnetsocket.c:743: warning: pointer targets in passing argument 5 of 'getsockopt' differ in signedness
      
      * src/Makefile.am (libvirt_driver_remote_la_CFLAGS)
      (libvirt_net_rpc_client_la_CFLAGS)
      (libvirt_net_rpc_server_la_CFLAGS): Include XDR_CFLAGS, for rpc
      headers on cygwin.
      * src/rpc/virnetsocket.c (virNetSocketNewListenUNIX)
      (virNetSocketGetLocalIdentity): Avoid compiler warnings.
      c5b6537b
  12. 29 7月, 2011 2 次提交
    • M
      freebsd: Fix build problem due to picking up the wrong libvirt.h · b590866b
      Matthias Bolte 提交于
      Gettext annoyingly modifies CPPFLAGS in-place, putting
      -I/usr/local/include into the search patch if libintl headers
      must be used from that location.  But since we must support
      automake 1.9.6 which lacks AM_CPPFLAGS, and since CPPFLAGS is used
      prior to INCLUDES, this means that the build picks up the _old_
      installed libvirt.h in priority to the in-tree version, leading
      to all sorts of weird build failures on FreeBSD.
      
      Fix this by teaching configure to undo gettext's actions, but
      to keep any changes required by gettext at the end of INCLUDES
      after all in-tree locations are used first.  Also requires
      adding a wrapper Makefile.am and making gnulib-tool create
      just gnulib.mk files during the bootstrap process.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      b590866b
    • E
      maint: add missing copyright notices · ff81956a
      Eric Blake 提交于
      I went with the shorter license notice used by src/libvirt.c,
      rather than spelling out the full LGPLv2+ clause into each of
      these files.
      
      * configure.ac: Declare copyright.
      * all Makefile.am: Likewise.
      ff81956a
  13. 22 7月, 2011 3 次提交
    • D
      Pre-create /var/lib/libvirt/sanlock directory · c198d916
      Daniel P. Berrange 提交于
      The sanlock plugin for libvirt expects the directory
      /var/lib/libvirt/sanlock to exist. Create this and add
      it to the RPM
      
      * libvirt.spec.in: Add /var/lib/libvirt/sanlock
      * src/Makefile.am: Create /var/lib/libvirt/sanlock
      c198d916
    • M
      build: Use $(PYTHON) instead of python for the keycode map generator · 1a80a4e0
      Matthias Bolte 提交于
      Also prepend $(AM_V_GEN) to the command line, mark virkeycode-mapgen.py
      as executable and switch the shebang line from /bin/python to the
      commonly use /usr/bin/python.
      1a80a4e0
    • E
      build: rename files.h to virfile.h · 8e22e089
      Eric Blake 提交于
      In preparation for a future patch adding new virFile APIs.
      
      * src/util/files.h, src/util/files.c: Move...
      * src/util/virfile.h, src/util/virfile.c: ...here, and rename
      functions to virFile prefix.  Macro names are intentionally
      left alone.
      * *.c: All '#include "files.h"' uses changed.
      * src/Makefile.am (UTIL_SOURCES): Reflect rename.
      * cfg.mk (exclude_file_name_regexp--sc_prohibit_close): Likewise.
      * src/libvirt_private.syms: Likewise.
      * docs/hacking.html.in: Likewise.
      * HACKING: Regenerate.
      8e22e089
  14. 21 7月, 2011 3 次提交
    • M
      rpc: Make the dispatch generator handle 'void name(void)' style procedures · fbd5465a
      Matthias Bolte 提交于
      The only 'void name(void)' style procedure in the protocol is 'close' that
      is handled special, but also programming errors like a missing _args or
      _ret suffix on the structs in the .x files can create such a situation by
      accident. Making the generator aware of this avoids bogus errors from the
      generator such as:
      
        Use of uninitialized value in exists at ./rpc/gendispatch.pl line 967.
      
      Also this allows to get rid of the -c option and the special case code for
      the 'close' procedure, as the generator handles it now correctly.
      
      Reported by Michal Privoznik
      fbd5465a
    • L
      util: add virtkeycode module · 0bbf87e9
      Lai Jiangshan 提交于
      Add virtkey lib for usage-improvment and keycode translating.
      Add 4 internal API for the aim
      
      const char *virKeycodeSetTypeToString(int codeset);
      int virKeycodeSetTypeFromString(const char *name);
      int virKeycodeValueFromString(virKeycodeSet codeset, const char *keyname);
      int virKeycodeValueTranslate(virKeycodeSet from_codeset,
                                   virKeycodeSet to_offset,
                                   int key_value);
      
      * include/libvirt/libvirt.h.in: extend virKeycodeSet enum
      * src/Makefile.am: add new virtkeycode module and rule to generate
        virkeymaps.h
      * src/util/virkeycode.c src/util/virkeycode.h: new module
      * src/util/virkeycode-mapgen.py: python generator for virkeymaps.h
        out of keymaps.csv
      * src/libvirt_private.syms: extend private symbols for new module
      * .gitignore: add generated virkeymaps.h
      0bbf87e9
    • L
      util: Add keymaps.csv · 1151f0ee
      Lai Jiangshan 提交于
      Should keep it as the same as:
      http://git.gnome.org/browse/gtk-vnc/commit/src/keymaps.csv
      
      All master  keymaps are defined in a CSV file. THis covers
      Linux keycodes, OSX keycodes, AT set1, 2 & 3, XT keycodes,
      the XT encoding used by the Linux KBD driver, USB keycodes,
      Win32 keycodes, the XT encoding used by Xorg on Cygwin,
      the XT encoding used by Xorg on Linux with kbd driver.
      
      * src/Makefile.am: added to EXTRA_DIST
      * src/util/keymaps.csv: new file
      1151f0ee
  15. 19 7月, 2011 2 次提交
    • D
      Quieten build & ensure API build scripts exit with non-zero status · 8665f855
      Daniel P. Berrange 提交于
      The current API build scripts will continue and exit with a zero
      status even if they find problems. This has been the cause of many
      build problems, or hidden build errors, in the past. Change the
      scripts so they always exit with a non-zero status for any problems
      they do not understand. Also turn off all debug output by default
      so they respect $(AM_V_GEN)
      
      * docs/Makefile.am: Use $(AM_V_GEN) for API/HTML scripts
      * docs/apibuild.py, python/generator.py: Exit with non-zero status
        if problems are found. Also be silent, not outputting any debug
        messages.
      * src/Makefile.am: Use $(AM_V_GEN) for ESX generator
      * python/Makefile.am: Tweak rule
      8665f855
    • J
      build: Fix protocol-structs check in VPATH build · 40798fb0
      Jiri Denemark 提交于
      $@ already included $(srcdir)
      40798fb0
  16. 16 7月, 2011 1 次提交
    • E
      build: also track RPC on-wire enum values · 703d4ed5
      Eric Blake 提交于
      As long as we guarantee RPC struct layout stability, we might as
      well also guarantee RPC enum value constancy.
      
      * src/Makefile.am (r1, r2, PDWTAGS): Adjust rule to pick up named
      and anonymous enums.
      * src/remote_protocol-structs: Add enum values.
      * src/qemu_protocol-structs: Likewise.
      * src/virnetprotocol-structs: Likewise.
      703d4ed5
  17. 14 7月, 2011 1 次提交
    • E
      build: check for virnetprotocol on-the-wire stability · 3fbc7615
      Eric Blake 提交于
      Similar to the recent qemu_protocol-structs addition.
      
      * src/virnetprotocol-structs: New file.
      * src/Makefile.am (%_protocol-structs): Factor body...
      (PDWTAGS): ...into new helper macro.
      (virnetprotocol-structs): New rule.
      (PROTOCOL_STRUCTS): Add virnetprotocol-structs.
      3fbc7615
  18. 13 7月, 2011 1 次提交
    • D
      Move qemu_audit.h helpers into shared code · b43070eb
      Daniel P. Berrange 提交于
      The LXC and UML drivers can both make use of auditing. Move
      the qemu_audit.{c,h} files to src/conf/domain_audit.{c,h}
      
      * src/conf/domain_audit.c: Rename from src/qemu/qemu_audit.c
      * src/conf/domain_audit.h: Rename from src/qemu/qemu_audit.h
      * src/Makefile.am: Remove qemu_audit.{c,h}, add domain_audit.{c,h}
      * src/qemu/qemu_audit.h, src/qemu/qemu_cgroup.c,
        src/qemu/qemu_command.c, src/qemu/qemu_driver.c,
        src/qemu/qemu_hotplug.c, src/qemu/qemu_migration.c,
        src/qemu/qemu_process.c: Update for changed audit API names
      b43070eb
  19. 12 7月, 2011 3 次提交
    • J
      Fix build when using polkit0 · b8adfcc6
      Jim Fehlig 提交于
      V2: Remove policy kit references from virNetServer and use DBus APIs
          directly, if available.
      b8adfcc6
    • E
      maint: rename virtaudit to match file contents · 2ceb35e1
      Eric Blake 提交于
      * src/util/virtaudit.[ch]: Rename...
      * src/util/viraudit.[ch]: ...to match virAudit* API.
      * src/Makefile.am (UTIL_SOURCES): Reflect rename.
      * daemon/libvirtd.c: Likewise.
      * po/POTFILES.in: Likewise.
      * src/libvirt_private.syms: Likewise.
      * src/qemu/qemu_audit.c: Likewise.
      2ceb35e1
    • E
      build: also check qemu_protocol for on-the-wire stability · 62dee6fa
      Eric Blake 提交于
      Since we are going to add some libvirt-qemu.so entry points in
      0.9.4, we might as well start checking for RPC stability, just
      as for libvirt.so.
      
      * src/Makefile.am (PROTOCOL_STRUCTS): New variable.
      (remote_protocol-structs): Rename...
      (%_protocol-structs): ...and make more generic.
      * src/qemu_protocol-structs: New file.
      62dee6fa
  20. 02 7月, 2011 1 次提交
    • E
      build: consistently use CFLAGS · 6ae3052c
      Eric Blake 提交于
      According to the automake manual, CPPFLAGS (aka INCLUDES, as spelled
      in automake 1.9.6) should only include -I, -D, and -U directives; more
      generic directives like -Wall belong in CFLAGS since they affect more
      phases of the build process.  Therefore, we should be sticking CFLAGS
      additions into a CFLAGS container, not a CPPFLAGS container.
      
      * src/Makefile.am (libvirt_driver_vmware_la_CFLAGS): Use AM_CFLAGS.
      (INCLUDES): Move CFLAGS items...
      (AM_CFLAGS): ...to their proper location.
      * python/Makefile.am (INCLUDES, AM_CFLAGS): Likewise.
      * tests/Makefile.am (INCLUDES, AM_CFLAGS): Likewise.
      (commandtest_CFLAGS, commandhelper_CFLAGS)
      (virnetmessagetest_CFLAGS, virnetsockettest_CFLAGS): Use AM_CFLAGS.
      6ae3052c
  21. 01 7月, 2011 1 次提交
    • E
      build: simplify sanlock distribution · bf8fba1e
      Eric Blake 提交于
      EXTRA_DIST files should unconditionally be part of the tarball,
      rather than depending on the presence of sanlock-devel.
      
      Meanwhile, parallel builds could fail if we don't use mkdir -p.
      
      * src/Makefile.am (EXTRA_DIST): Always ship sanlock .aug and
      template .conf files.
      (%-sanlock.conf): Use MKDIR_P.
      bf8fba1e
  22. 29 6月, 2011 4 次提交
    • E
      maint: improve makefile whitespace · 9fdeaeef
      Eric Blake 提交于
      None of these instances cause any semantic differences, but
      consistency is nice.
      
      * src/Makefile.am: Replace leading spaces with tabs.
      9fdeaeef
    • D
      Support loading a configuration file for sanlock plugin · 58eb4f2c
      Daniel P. Berrange 提交于
      Introduce a configuration file with a single parameter
      'require_lease_for_disks', which is used to decide whether
      it is allowed to start a guest which has read/write disks,
      but without any leases.
      
      * libvirt.spec.in: Add sanlock config file and augeas
        lens
      * src/Makefile.am: Install sanlock config file and
        augeas lens
      * src/locking/libvirt_sanlock.aug: Augeas master lens
      * src/locking/test_libvirt_sanlock.aug: Augeas test file
      * src/locking/sanlock.conf: Example sanlock config
      * src/locking/lock_driver_sanlock.c: Wire up loading
        of configuration file
      58eb4f2c
    • D
      Convert the remote driver to new RPC client APIs · c1b22644
      Daniel P. Berrange 提交于
      This guts the current remote driver, removing all its networking
      handling code. Instead it calls out to the new virClientPtr and
      virClientProgramPtr APIs for all RPC & networking work.
      
      * src/Makefile.am: Link remote driver with generic RPC code
      * src/remote/remote_driver.c: Gut code, replacing with RPC
        API calls
      * src/rpc/gendispatch.pl: Update for changes in the way
        streams are handled
      c1b22644
    • D
      Add XDR_CFLAGS to libvirt-net-rpc.la library · 51ae69be
      Daniel P. Berrange 提交于
      * src/Makefile.am: Add XDR_CFLAGS
      51ae69be
  23. 25 6月, 2011 2 次提交
    • E
      build: fix VPATH builds · 481e4d79
      Eric Blake 提交于
      The build currently fails when trying to create virnetprotocol.c
      into $(builddir)/rpc, which doesn't exist.  But since the file
      is part of the tarball, it should be generated into $(srcdir).
      Caught by autobuild.sh.
      
      * src/Makefile.am (VIR_NET_RPC_GENERATED): Generate into srcdir.
      481e4d79
    • M
      Network: modify dnsmasq commandline build function to allow testing · 89ae9849
      Michal Novotny 提交于
      The dnsmasq commandline was being built as a part of running
      dnsmasq. This patch puts the commandline build into a separate
      function (and exports it as a private API) making it possible to build
      a dnsmasq commandline without executing it, so that we can write a
      test program to verify that the proper commandlines are being created.
      Signed-off-by: NMichal Novotny <minovotn@redhat.com>
      89ae9849
  24. 24 6月, 2011 1 次提交
    • D
      Make sure virnetprotocol.[ch] are in BUILT_SOURCES · 789ab2cc
      Daniel P. Berrange 提交于
      To ensure virnetprotocol.[ch] are generated before any other
      files, add them to BUILT_SOURCES and MAINTAINERCLEANFILES.
      At the same time, move ESX_DRIVER_GENERATED out of DISTCLEAN
      and into MAINTAINERCLEANFILES, since they are included in
      EXTRA_DIST
      
      * src/Makefile.am: Add virnetprotocol.[ch] to BUILT_SOURCES
      789ab2cc