1. 11 2月, 2014 1 次提交
    • L
      build: correctly check for SOICGIFVLAN GET_VLAN_VID_CMD command · 0144d729
      Laine Stump 提交于
      In order to make a client-only build successful on RHEL4 (yes, you
      read that correctly!), commit 3ed2e545 modified src/util/virnetdev.c so
      that the functional version of virNetDevGetVLanID() was only compiled
      if GET_VLAN_VID_CMD was defined. However, it is *never* defined, but
      is only an enum value, so the proper version was no longer compiled
      even on platforms that support it. This resulted in the vlan tag not
      being properly set for guest traffic on VEPA mode guest macvtap
      interfaces that were bound to a vlan interface (that's the only place
      that libvirt currently uses virNetDevGetVLanID)
      
      Since there is no way to compile conditionally based on the presence
      of an enum value, this patch modifies configure.ac to check for said
      enum value with AC_CHECK_DECLS(), which #defines
      HAVE_DECL_GET_VLAN_VID_CMD to 1 if it's successful compiling a test
      program that uses GET_VLAN_VID_CMD (and still #defines it, but to 0,
      if it's not successful).  We can then make the compilation of
      virNetDevGetVLanID() conditional on the value of
      HAVE_DECL_GET_VLAN_VID_CMD.
      0144d729
  2. 07 2月, 2014 1 次提交
  3. 05 2月, 2014 1 次提交
    • E
      rpm: create libvirt-wireshark sub-package · f9ada9f3
      Eric Blake 提交于
      On Fedora 20, with wireshark-devel installed, 'make rpm' failed
      due to installed but unpackaged files related to wireshark.  As
      F20 is already released without wireshark, I chose to add a new
      sub-package that is enabled only for F21 and later.  Furthermore,
      all existing wireshark plugins belong to the wireshark package,
      so I got to invent behavior of how the first third-party wireshark
      module will behave.
      
      * libvirt.spec.in (with_wireshark): Add new conditional.
      * configure.ac (ws-plugindir): Improve wording.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      f9ada9f3
  4. 04 2月, 2014 1 次提交
    • J
      utils: Introduce functions for kernel module manipulation · 4a2179ea
      John Ferlan 提交于
      virKModConfig()        - Return a buffer containing kernel module configuration
      virKModLoad()          - Load a specific module into the kernel configuration
      virKModUnload()        - Unload a specific module from the kernel configuration
      virKModIsBlacklisted() - Determine whether a module is blacklisted within
                               the kernel configuration
      4a2179ea
  5. 31 1月, 2014 2 次提交
  6. 30 1月, 2014 1 次提交
  7. 22 1月, 2014 1 次提交
  8. 21 1月, 2014 2 次提交
    • R
      Use AC_PATH_PROG to search for dmidecode · 881c6c00
      Roman Bogorodskiy 提交于
      This is useful in certain circumstances, for example when
      libvirtd is being executed by FreeBSD rc script, it cannot find
      dmidecode installed from FreeBSD ports because it doesn't have
      /usr/local (default prefix for ports) in PATH.
      881c6c00
    • Y
      Introduce Libvirt Wireshark dissector · 4f32c5f7
      Yuto KAWAMURA(kawamuray) 提交于
      Introduce Wireshark dissector plugin which adds support to Wireshark
      for dissecting libvirt RPC protocol.
      Added following files to build Wireshark dissector from libvirt source
      tree.
      * tools/wireshark/*: Source tree of Wireshark dissector plugin.
      
      Added followings to configure.ac or Makefile.am.
      configure.ac
      * --with-wireshark-dissector: Enable support for building Wireshark
        dissector.
      * --with-ws-plugindir: Specify wireshark plugin directory that dissector
        will installed.
      * Added tools/wireshark/{Makefile,src/Makefile} to  AC_CONFIG_FILES.
      Makefile.am
      * Added tools/wireshark/ to SUBDIR.
      4f32c5f7
  9. 16 1月, 2014 1 次提交
  10. 14 1月, 2014 1 次提交
    • E
      build: fix build on mingw with winpthreads · c91d13bd
      Eric Blake 提交于
      On my Fedora 20 box with mingw cross-compiler, the build failed with:
      
      ../../src/rpc/virnetclient.c: In function 'virNetClientSetTLSSession':
      ../../src/rpc/virnetclient.c:745:14: error: unused variable 'oldmask' [-Werror=unused-variable]
           sigset_t oldmask, blockedsigs;
                    ^
      
      I traced it to the fact that mingw64-winpthreads installs a header
      that does #define pthread_sigmask(...) 0, which means any argument
      only ever passed to pthread_sigmask is reported as unused.  This
      patch works around the compilation failure, with behavior no worse
      than what mingw already gives us regarding the function being a
      no-op.
      
      * configure.ac (pthread_sigmask): Probe for broken mingw macro.
      * src/util/virutil.h (pthread_sigmask): Rewrite to something that
      avoids unused variables.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      c91d13bd
  11. 09 1月, 2014 1 次提交
  12. 08 1月, 2014 1 次提交
  13. 25 12月, 2013 1 次提交
  14. 19 12月, 2013 1 次提交
  15. 18 12月, 2013 2 次提交
    • M
      configure: make --with-test-suite work · 56bad329
      Martin Kletzander 提交于
      Our option '--with-test-suite' could have never worked since it was
      defined as AC_ARG_ENABLE([with-test-suite], ...), thus working only as
      '--enable-with-test-suite', but documented in configure.ac as
      AC_HELP_STRING([--with-test-suite], ...).
      In my opinion, the help string is as it should be, but the option is
      wrong.
      
      The option has been broken since the introduction in commit 3a2fc277.
      Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
      56bad329
    • L
      Fix build when default python is python3 · eafe4076
      Lénaïc Huard 提交于
      As the python generator scripts are written in python2,
      the ./configure script must check for python2 before checking for python
      otherwise, on platforms where both python2 and python3 are available and
      on which the default python points to python3, ./configure will try to use
      the wrong one.
      Signed-off-by: NLénaïc Huard <lenaic@lhuard.fr.eu.org>
      eafe4076
  16. 14 12月, 2013 1 次提交
  17. 12 12月, 2013 1 次提交
  18. 05 12月, 2013 1 次提交
  19. 02 12月, 2013 1 次提交
    • D
      Release of libvirt-1.2.0 · 4e41a2a3
      Daniel Veillard 提交于
      * configure.ac docs/news.html.in libvirt.spec.in: update for release
      * po/*.po*: update and merge localizations from transifex
      4e41a2a3
  20. 27 11月, 2013 1 次提交
  21. 26 11月, 2013 2 次提交
    • E
      storage: initial support for linking with libgfapi · 318ea3cb
      Eric Blake 提交于
      We support gluster volumes in domain XML, so we also ought to
      support them as a storage pool.  Besides, a future patch will
      want to take advantage of libgfapi to handle the case of a
      gluster device holding qcow2 rather than raw storage, and for
      that to work, we need a storage backend that can read gluster
      storage volume contents.  This sets up the framework.
      
      Note that the new pool is named 'gluster' to match a
      <disk type='network'><source protocol='gluster'> image source
      already supported in a <domain>; it does NOT match the
      <pool type='netfs'><source><target type='glusterfs'>,
      since that uses a FUSE mount to a local file name rather than
      a network name.
      
      This and subsequent patches have been tested against glusterfs
      3.4.1 (available on Fedora 19); there are likely bugs in older
      versions that may prevent decent use of gfapi, so this patch
      enforces the minimum version tested.  A future patch may lower
      the minimum.  On the other hand, I hit at least two bugs in
      3.4.1 that will be fixed in 3.5/3.4.2, where it might be worth
      raising the minimum: glfs_readdir is nicer to use than
      glfs_readdir_r [1], and glfs_fini should only return failure on
      an actual failure [2].
      
      [1] http://lists.gnu.org/archive/html/gluster-devel/2013-10/msg00085.html
      [2] http://lists.gnu.org/archive/html/gluster-devel/2013-10/msg00086.html
      
      * configure.ac (WITH_STORAGE_GLUSTER): New conditional.
      * m4/virt-gluster.m4: new file.
      * libvirt.spec.in (BuildRequires): Support gluster in spec file.
      * src/conf/storage_conf.h (VIR_STORAGE_POOL_GLUSTER): New pool
      type.
      * src/conf/storage_conf.c (poolTypeInfo): Treat similar to
      sheepdog and rbd.
      (virStoragePoolDefFormat): Don't output target for gluster.
      * src/storage/storage_backend_gluster.h: New file.
      * src/storage/storage_backend_gluster.c: Likewise.
      * po/POTFILES.in: Add new file.
      * src/storage/storage_backend.c (backends): Register new type.
      * src/Makefile.am (STORAGE_DRIVER_GLUSTER_SOURCES): Build new files.
      * src/storage/storage_backend.h (_virStorageBackend): Documet
      assumption.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      318ea3cb
    • D
      Remove python binding · a7a1244a
      Daniel P. Berrange 提交于
      The python binding now lives in
      
        http://libvirt.org/git/?p=libvirt-python.git
      
      that repo also provides an RPM which is upgrade compatible
      with the old libvirt-python sub-RPM.
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      a7a1244a
  22. 04 11月, 2013 1 次提交
    • D
      Release of libvirt-1.1.4 · a4a7c7e9
      Daniel Veillard 提交于
      * configure.ac docs/news.html.in libvirt.spec.in: update for the release
      * po/*.po*: update localizations from transifex and regenerate
      a4a7c7e9
  23. 30 10月, 2013 1 次提交
    • D
      MacOS: Re-add support for QEMU backend · 915c6936
      Doug Goldstein 提交于
      The QEMU backend was disabled on Mac OS X without a reason in the code
      and due to refactors its difficult to understand when/why it was
      disabled. With QEMU being supported on Mac OS X there is no reason to
      disable QEMU on this platform.
      915c6936
  24. 21 10月, 2013 1 次提交
    • D
      Don't link virt-login-shell against libvirt.so (CVE-2013-4400) · 3e2f27e1
      Daniel P. Berrange 提交于
      The libvirt.so library has far too many library deps to allow
      linking against it from setuid programs. Those libraries can
      do stuff in __attribute__((constructor) functions which is
      not setuid safe.
      
      The virt-login-shell needs to link directly against individual
      files that it uses, with all library deps turned off except
      for libxml2 and libselinux.
      
      Create a libvirt-setuid-rpc-client.la library which is linked
      to by virt-login-shell. A config-post.h file allows this library
      to disable all external deps except libselinux and libxml2.
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      3e2f27e1
  25. 07 10月, 2013 2 次提交
    • E
      build: move readline check into its own macro · d6eac3f3
      Eric Blake 提交于
      A future patch will allow disabling readline; doing this in an
      isolated file instead of configure.ac will make the task easier.
      
      * configure.ac: Move readline code...
      * m4/virt-readline.m4: ...here.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      d6eac3f3
    • E
      build: kill maintainer mode, always rebuild by default · 3fde7ad8
      Eric Blake 提交于
      The automake manual recommends against the use of disabling
      maintainer mode by default:
      
      https://www.gnu.org/software/automake/manual/automake.html#maintainer_002dmode
      
      because when it is disabled, the user gets no indication if they
      touch a file that would normally require a rebuild.  Automake
      1.11 changed things so that AM_MAINTAINER_MODE([enable]) will set
      the mode to enabled by default; but RHEL 5 still uses automake 1.9,
      where AM_MAINTAINER_MODE did not recognize an argument, and
      therefore disables maintainer mode by default.  Having the default
      be different according to which version of automake built the
      project is annoying, and I _have_ been bitten on RHEL 5 rebuilds
      where the default disabled mode led to silently incorrect builds.
      
      The automake manual admits that being able to disable maintainer
      mode still makes sense for projects that still store generated
      files from the autotools in version control; but we have dropped
      that for several years now.  As such, it's finally time to just
      ditch the whole idea of maintainer mode, and unconditionally
      rebuild autotools files if a dependency changes, without offering
      a configure option to disable that mode.
      
      * configure.ac (AM_MAINTAINER_MODE): Drop.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      3fde7ad8
  26. 05 10月, 2013 1 次提交
    • E
      build: fix build --without-remote · bdc55cc7
      Eric Blake 提交于
      I tried to test ./configure --without-lxc --without-remote.
      First, the build failed with some odd errors, such as an
      inability to build xen, or link failures for virNetTLSInit.
      But when you think about it, once there is no remote code,
      all of libvirtd is useless, any stateful driver that depends
      on libvirtd is also not worth compiling, and any libraries
      used only by RPC code are not needed.  So I patched
      configure.ac to make for some saner defaults when an
      explicit disable is attempted.  Similarly, since we have
      migrated virnetdevbridge into generic code, the workaround
      for Linux kernel stupidity must not depend on stateful
      drivers being in use.
      
      Then there's 'make check' that needs segregation.
      
      Wow - quite a bit of cleanup to make --without-remote useful :)
      
      * configure.ac: Let --without-remote toggle defaults on stateful
      drivers and other libraries.  Pick up Linux kernel workarounds
      even when qemu and lxc are not being compiled.
      * tests/Makefile.am (test_programs): Factor out programs that
      require remote.
      * src/libvirt_private.syms (rpc/virnet*.h): Move...
      * src/libvirt_remote.syms: ...into new file.
      * src/Makefile.am (SYM_FILES): Ship new syms file.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      bdc55cc7
  27. 04 10月, 2013 1 次提交
    • O
      storage: fix file allocation behavior in file cloning · 532fef36
      Oskari Saarenmaa 提交于
      Fixed the safezero call for allocating the rest of the file after cloning
      an existing volume; it used to always use a zero offset, causing it to
      only allocate the beginning of the file.
      
      Also modified file creation to try to use fallocate(2) to pre-allocate
      disk space before copying any data to make sure it fails early on if disk
      is full and makes sure we can skip zero blocks when copying file contents.
      
      If fallocate isn't available we will zero out the rest of the file after
      cloning and only use sparse cloning if client requested a lower allocation
      than the input volume's capacity.
      Signed-off-by: NOskari Saarenmaa <os@ohmu.fi>
      532fef36
  28. 01 10月, 2013 1 次提交
    • D
      Release of libvirt-1.1.3 · a72940f9
      Daniel Veillard 提交于
      - configure.ac docs/news.html.in libvirt.spec.in: update for release
      - po/*.po*: updated localization and regenerated
      a72940f9
  29. 18 9月, 2013 2 次提交
    • D
      Add support for using 3-arg pkcheck syntax for process (CVE-2013-4311) · 922b7fda
      Daniel P. Berrange 提交于
      With the existing pkcheck (pid, start time) tuple for identifying
      the process, there is a race condition, where a process can make
      a libvirt RPC call and in another thread exec a setuid application,
      causing it to change to effective UID 0. This in turn causes polkit
      to do its permission check based on the wrong UID.
      
      To address this, libvirt must get the UID the caller had at time
      of connect() (from SO_PEERCRED) and pass a (pid, start time, uid)
      triple to the pkcheck program.
      
      This fix requires that libvirt is re-built against a version of
      polkit that has the fix for its CVE-2013-4288, so that libvirt
      can see 'pkg-config --variable pkcheck_supports_uid polkit-gobject-1'
      Signed-off-by: NColin Walters <walters@redhat.com>
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      922b7fda
    • E
      build: hoist system-specific checks before library checks · 0e1f012c
      Eric Blake 提交于
      Commit f92c7e31 fixed a regression for native builds, but introduced
      a regression for cross-compilation builds; in particular,
      ./autobuild.sh on a Fedora system with mingw cross-compiler fails
      with:
      
      checking for qemu-kvm... /usr/bin/qemu-kvm
      checking for yajl_parse_complete in -lyajl... no
      checking for yajl_tree_parse in -lyajl... no
      configure: error: You must install the libyajl library & headers to compile libvirt
      
      Since we default $with_qemu to 'yes' rather than 'check', and then
      flip that default based on platform-specific checks, those platform
      specifics need to come prior to any library checks that depend on
      the value of $with_qemu.
      
      * configure.ac: Ensure system defaults are sane before checking
      for things that make decisions based on system default.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      0e1f012c
  30. 16 9月, 2013 1 次提交
    • E
      build: fix build with latest rawhide kernel headers · e62e0094
      Eric Blake 提交于
      Bother those kernel developers.  In the latest rawhide, kernel
      and glibc have now been unified so that <netinet/in.h> and
      <linux/in6.h> no longer clash; but <linux/if_bridge.h> is still
      not self-contained.  Because of the latest header change, the
      build is failing with:
      
      checking for linux/param.h... no
      configure: error: You must install kernel-headers in order to compile libvirt with QEMU or LXC support
      
      with details:
      
      In file included from conftest.c:561:0:
      /usr/include/linux/in6.h:71:18: error: field 'flr_dst' has incomplete type
        struct in6_addr flr_dst;
      
      We need a workaround to avoid our workaround :)
      
      * configure.ac (NETINET_LINUX_WORKAROUND): New test.
      * src/util/virnetdevbridge.c (includes): Use it.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      e62e0094
  31. 12 9月, 2013 1 次提交
    • E
      build: require libnl-3 if netcf uses it · cf83adfb
      Eric Blake 提交于
      Commits 9298bfbc and f6c29515 both tried to make it possible to
      select the correct libnl (1 vs. 3) according to what netcf
      used, when both libraries are installed.  This works to avoid
      libnl-3 when netcf used libnl-1.  But on the converse side, if
      only libnl-1 development code is installed, while netcf uses
      libnl-3, then configure happily uses libnl-1 anyways, leading
      to a test failure:
      
      $ VIR_TEST_DEBUG=1 ./virdrivermoduletest
      TEST: virdrivermoduletest
       1) Test driver "network"                                             ... OK
       2) Test driver "storage"                                             ... OK
       3) Test driver "nodedev"                                             ... OK
       4) Test driver "secret"                                              ... OK
       5) Test driver "nwfilter"                                            ... OK
       6) Test driver "interface"
      ... lt-virdrivermoduletest: route/tc.c:973: rtnl_tc_register: Assertion
      `0' failed.
      Aborted
      
      It's much nicer to prevent this at configure time, by requiring that
      if we know what netcf used, then we want the same libnl version.  As
      before, this can be bypassed by someone who knows what they are doing
      by setting LIBNL_CFLAGS (perhaps useful to the rare person where the
      build box has a different version of netcf than the installation box).
      
      * configure.ac (LIBNL): If we can prove netcf used libnl-3, then
      don't let configure succeed with libnl-1.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      cf83adfb
  32. 11 9月, 2013 1 次提交
    • E
      build: fix regression in requiring yajl for new enough qemu · f92c7e31
      Eric Blake 提交于
      Jonathan Lebon reported an issue to me off-list about his build
      failing to use qemu because he failed to install yajl-devel.  But
      I recalled specifically tweaking configure.ac to die in that
      situation (commits 350583c8, ba9c38b4).  After a bit more
      head-scratching, we found the cause of the regression: commit
      654c709b rearranged things so that the qemu version check now
      occurs before AC_ARG_WITH has had a chance to set either
      $with_qemu or $with_yajl.
      
      Coincidentally, this fix aligns with a documentation patch that
      was just posted to the autoconf mailing list :)
      http://thread.gmane.org/gmane.comp.sysutils.autoconf.patches/8324
      
      * m4/virt-lib.m4 (LIBVIRT_CHECK_LIB, LIBVIRT_CHECK_LIB_ALT)
      (LIBVIRT_CHECK_PKG): Populate defaults earlier.
      * configure.ac (AC_ARG_WITH): Likewise for drivers.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      f92c7e31
  33. 10 9月, 2013 2 次提交
    • E
      build: avoid obsolete AC_HELP_STRING · ff777421
      Eric Blake 提交于
      Autoconf states that AC_HELP_STRING is obsolete, and that new
      programs should use AS_HELP_STRING.  We also had instances of
      not properly quoting the macro usage, and not relying on autoconf's
      word-wrapping abilities to avoid long lines.  I validated that this
      commit has no impact to the generated configure file.
      
      * configure.ac (AC_ARG_WITH, AC_ARG_ENABLE): Autoconf recommends
      the use of AS_HELP_STRING.  Also, use proper quoting and wrap long
      lines.
      * m4/virt-apparmor.m4 (LIBVIRT_CHECK_APPARMOR): Likewise.
      * m4/virt-selinux.m4 (LIBVIRT_CHECK_SELINUX): Likewise.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      ff777421
    • E
      build: use automake subdir-objects · 7f626e47
      Eric Blake 提交于
      Automake 2.0 will enable subdir-objects by default; in preparation
      for that change, automake 1.14 outputs LOADS of warnings:
      
      daemon/Makefile.am:38: warning: source file '../src/remote/remote_protocol.c' is in a subdirectory,
      daemon/Makefile.am:38: but option 'subdir-objects' is disabled
      automake-1.14: warning: possible forward-incompatibility.
      automake-1.14: At least a source file is in a subdirectory, but the 'subdir-objects'
      automake-1.14: automake option hasn't been enabled.  For now, the corresponding output
      automake-1.14: object file(s) will be placed in the top-level directory.  However,
      automake-1.14: this behaviour will change in future Automake versions: they will
      automake-1.14: unconditionally cause object files to be placed in the same subdirectory
      automake-1.14: of the corresponding sources.
      automake-1.14: You are advised to start using 'subdir-objects' option throughout your
      automake-1.14: project, to avoid future incompatibilities.
      daemon/Makefile.am:38: warning: source file '../src/remote/lxc_protocol.c' is in a subdirectory,
      daemon/Makefile.am:38: but option 'subdir-objects' is disabled
      ...
      
      As automake 1.9 also supported this option, and the previous patches
      fixed up the code base to work with it, it is safe to now turn it on
      unconditionally.
      
      * configure.ac (AM_INIT_AUTOMAKE): Enable subdir-objects.
      * .gitignore: Ignore .dirstamp directories.
      * src/Makefile.am (PDWTAGS, *-protocol-struct): Adjust to
      new subdir-object location of .lo files.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      7f626e47