1. 11 1月, 2013 11 次提交
    • D
      654c709b
    • D
      Convert HAVE_YAJL into WITH_YAJL · 49a1c160
      Daniel P. Berrange 提交于
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      49a1c160
    • D
      Add some autoconf helper macros for checking for libraries · cd699ed1
      Daniel P. Berrange 提交于
      Most checks for libraries take the same format
      
        * --with-libFOO=yes|no|check|/some/path  argument
        * check for a function NNN in libFOO.so
        * check for a header file DDD/HHH.h
        * Define a WITH_FOO config.h symbol
        * Define a WITH_FOO make conditional
        * Substitute FOO_CFLAGS and FOO_LIBS make variables
        * Print CFLAGS & LIBS summary at the end
      
      Doing all this correctly is rather difficult, typically
      done by copy+paste of a previous usage. Further small
      improvements people make are not applied to all previous
      usages.
      
      Improve this by creating some helper macros to apply
      good practice. First, to perform the actual checks:
      
        LIBVIRT_CHECK_LIB([SELINUX], [selinux],
           [getfilecon], [selinux/selinux.h])
      
      This checks for 'getfilecon' in -lselinux, and the
      existence of 'selinux/selinux.h' header file. If successful
      it sets SELINUX_CFLAGS and SELINUX_LIBS. The WITH_SELINUX
      config.h macro and WITH_SELINUX make conditional are also
      defined.
      
      In some cases we need to check two variants of the same
      library
      
        LIBVIRT_CHECK_LIB_ALT([SASL], [sasl2],
                              [sasl_client_init], [sasl/sasl.h],
                              [SASL1], [sasl],
                              [sasl_client_init], [sasl/sasl.h])
      
      This checks for sasl_client_init in libsasl2, and if that
      is not found, checks sasl_client_init in libsasl. If the
      first check succeeds WITH_SASL is set, while if the second
      check succeeds *both* WITH_SASL and WITH_SASL1 are set.
      
      If the library supports pkg-config, then another variant
      is available
      
        LIBVIRT_CHECK_PKG([AVAHI], [avahi-client], [0.6.0])
      
      This checks for avahi-client >= 0.6.0 via pkg-config
      and sets WITH_AVAHI if found.
      
      Finally to print a summary of CFLAGS & LIBs found (if any):
      
        LIBVIRT_RESULT_LIB([SELINUX])
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      cd699ed1
    • Y
      build: require avahi instead of avahi-libs on rhel5. · 8a883b0c
      Yufang Zhang 提交于
      On rhel5, libs of avahi are packaged into avahi instead of avahi-libs.
      Actually, there is no avahi-libs package shipped with rhel5. This patch
      fixes this by requiring avahi on rhel5.
      8a883b0c
    • J
      storage: Resolve resource leak using 'vol' buffer · 439b72ec
      John Ferlan 提交于
      439b72ec
    • J
      phyp: Resolve some file descriptor leaks · b1740967
      John Ferlan 提交于
      The phypUUIDTable_Push and phypUUIDTable_Pull leaked their file descriptors
      on normal return.  Each function had an unnecessary use of creating a buffer
      to print conn->uri->user and needed a bit better flow control. I also noted
      that the Read function had a cut-n-paste error from the write function on a
      couple of VIR_WARN's.
      
      The openSSHSession leaked the sock on the failure path.  Additionally that
      turns into the internal_socket in the phypOpen code.  That was neither saved
      nor closed on any path. So I used the connnection_data->sock field to save
      the socket for eventual close. Of interest here is that phypExec used the
      connection_data->sock field even though it had never been initialized.
      b1740967
    • E
      maint: don't distribute generated .def files · daa886b6
      Eric Blake 提交于
      I ran 'make dist' in the directory left over from ./autobuild.sh
      (which was configured for a mingw cross build); the resulting
      tarball had more files than 'make dist' on a normal Linux build.
      I traced it to the fact that we were distributing a generated
      file, but only when configure said the end user had to generate
      the file in the first place.  In the process, I noticed that
      we had some difference in symbol file names; I added a comment
      explaining why the difference exists (after first trying to
      normalize the names and hitting VPATH build failures).
      
      * configure.ac (LIBVIRT_QEMU_SYMBOL_FILE): Add some comments.
      * src/Makefile.am (EXTRA_DIST): No need to ship a generated file;
      particularly since which file is built depends on configure results.
      daa886b6
    • E
      spec: remove redundant %if · 86007cba
      Eric Blake 提交于
      The daemon-driver-{qemu,lxc} packages are only built if
      %{with_driver_modules} is specified, so they do not need to
      further test this condition.  Likewise, the daemon package
      is only built if %{with_libvirtd} is specified, so it does
      not need to further test this condition.
      
      * libvirt.spec.in (daemon-driver-qemu, daemon-driver-lxc):
      Unconditionally require libvirt-daemon-driver-network.
      (daemon): Unconditionally include lock-driver files.
      86007cba
    • L
      docs: fix typo in isa-serial additions · 7a4bf34b
      Laine Stump 提交于
      This was preventing make rpm from completing.
      7a4bf34b
    • E
      util: reduce syscalls for virGetDeviceID · 9f2879d3
      Eric Blake 提交于
      There's no need to do lots of readlink() calls to canonicalize
      a name if we're only going to use stat() on it, since stat()
      already chases symlinks.
      
      * src/util/virutil.c (virGetDeviceID): Let stat() do the symlink
      chasing.
      9f2879d3
    • C
      pass stub driver name instead of pciFindStubDriver · 66b46932
      Chunyan Liu 提交于
      Pass stub driver name directly to pciDettachDevice and pciReAttachDevice to fit
      for different libvirt drivers. For example, qemu driver prefers pci-stub, but
      Xen prefers pciback.
      Signed-off-by: NChunyan Liu <cyliu@suse.com>
      66b46932
  2. 10 1月, 2013 10 次提交
    • G
      qemu: add usb-net caps flag · fc66c160
      Guannan Ren 提交于
      QEMU_CAPS_DEVICE_USB_NET /* -device usb-net */
      fc66c160
    • G
      network: fix typos and docs · 29d37818
      Guannan Ren 提交于
      29d37818
    • G
      qemu: add usb-serial support · e3a04455
      Guannan Ren 提交于
      Add an optional 'type' attribute to <target> element of serial port
      device. There are two choices for its value, 'isa-serial' and
      'usb-serial'. For backward compatibility, when attribute 'type' is
      missing the 'isa-serial' will be chosen as before.
      
      Libvirt XML sample
      
          <serial type='pty'>
            <target type='usb-serial' port='0'/>
            <address type='usb' bus='0' port='1'/>
          </serial>
      
      qemu commandline:
      
      qemu ${other_vm_args}              \
          -chardev pty,id=charserial0    \
          -device usb-serial,chardev=charserial0,id=serial0,bus=usb.0,port=1
      e3a04455
    • G
      qemu: add usb-serial caps flag · f8d478b6
      Guannan Ren 提交于
      QEMU_CAPS_DEVICE_USB_SERIAL /* -device usb-serial */
      f8d478b6
    • M
      libvirt.h.in: Fix indentation · ab261523
      Michal Privoznik 提交于
      With the most recent patch from Claudio, I realized how many
      indentation flaws we have in the libvirt.h.in file. Even though
      they are harmless, it's still worth fixing them.
      ab261523
    • C
      Fix wrong indentation for virDomainState · 4ecd7caf
      Claudio Bley 提交于
      4ecd7caf
    • M
      qemu_agent: Remove agent reference only when disposing it · f2a4e5f1
      Michal Privoznik 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=892079
      
      With current code, if user calls virDomainPMSuspendForDuration()
      followed by virDomainDestroy(), the former API checks for qemu agent
      presence, which will evaluate as true (if agent is configured). While
      talking to qemu agent, the qemu driver is unlocked, so the latter API
      starts executing.  However, if machine dies meanwhile, libvirtd gets
      EOF on the agent socket and qemuProcessHandleAgentEOF() is called. The
      handler clears reference to qemu agent while the destroy API already
      holding a reference to it. This leads to NULL dereferencing later in
      the code. Therefore, the agent pointer should be set to NULL only if
      we are the exclusive owner of it.
      f2a4e5f1
    • Y
      build: move file deleting action from %files list to %install · daef7c9e
      Yufang Zhang 提交于
      When building libvirt rpms on rhel5, I got the following error:
      
          File must begin with "/": rm
          File must begin with "/": -f
          File must begin with "/": $RPM_BUILD_ROOT/etc/sysctl.d/libvirtd
          Installed (but unpackaged) file(s) found:
         /etc/sysctl.d/libvirtd
      
      It is triggerd by the %files list of libvirt daemon:
      
          %if 0%{?fedora} >= 14 || 0%{?rhel} >= 6
          %config(noreplace) %{_prefix}/lib/sysctl.d/libvirtd.conf
          %else
          rm -f $RPM_BUILD_ROOT%{_prefix}/lib/sysctl.d/libvirtd.conf
          %endif
      
      After checking document of rpm spec file, I think it would be better
      to move the file deleting line from %files list to %install script.
      
      Bug introduced in commit a1fd56cb.
      daef7c9e
    • E
      maint: fix comment typo · 70345318
      Eric Blake 提交于
      While OOM can have knock-on effects that trash a system, generally
      the first symptom is one of memory thrashing.
      
      * src/qemu/qemu_cgroup.c (qemuSetupCgroup): Reword slightly.
      70345318
    • E
      maint: distribute libvirtd.service.in · 7cc522be
      Eric Blake 提交于
      I did a build --without-libvirtd, then ran 'make dist'.  The
      resulting tarball was broken, with a complaint that make did not
      know how to create libvirtd.service.in.  I traced it to a use
      of EXTRA_DIST inside a conditional.
      
      * daemon/Makefile.am (EXTRA_DIST): Hoist libvirtd.service.in
      outside of WITH_LIBVIRTD conditional.
      7cc522be
  3. 09 1月, 2013 8 次提交
  4. 08 1月, 2013 11 次提交
    • J
      util: Check for NULL 'dev' on input to usbFreeDevice · fef8d1a0
      John Ferlan 提交于
      Added 'usbFreeDevice' to the useless_free_options list in cfg.mk
      fef8d1a0
    • E
      build: avoid compiler warning · 0a5eaf0d
      Eric Blake 提交于
      gcc 4.1.2 on RHEL 5 warned:
      conf/network_conf.c:3136: warning: 'foundIdx' may be used uninitialized in this function
      
      The warning is spurious, but initializing the variable doesn't hurt.
      
      * src/conf/network_conf.c (virNetworkDefUpdateDNSHost): Silence
      unused variable warning.
      0a5eaf0d
    • E
      maint: avoid potential promotion issues with [ug]id_t · 798ff667
      Eric Blake 提交于
      POSIX does not guarantee whether uid_t and gid_t are signed or
      unsigned, nor does it guarantee whether they are smaller, same
      size, or larger than int (or even the same size as one another).
      Therefore, it is possible to have platforms where '(uid_t)-1==-1'
      is false or where 'uid = gid = -1' sets uid to the wrong value,
      thanks to integer promotion rules.  The only portable way to use
      the placeholder value of these two types is to always use a cast.
      Thankfully, the issue is mostly theoretical - sanlock only
      compiles on Linux for now, and on Linux, these types do not
      suffer from strange promotion problems.
      
      * src/locking/lock_driver_sanlock.c
      (virLockManagerSanlockSetupLockspace, virLockManagerSanlockInit)
      (virLockManagerSanlockCreateLease): Cast -1 to proper type before
      comparing with uid_t or gid_t.
      798ff667
    • C
      Add Claudio Bley to the committers list · 3aa34af7
      Claudio Bley 提交于
      3aa34af7
    • M
      qemu: Relax hard RSS limit · 3c83df67
      Michal Privoznik 提交于
      Currently, if there's no hard memory limit defined for a domain,
      libvirt tries to calculate one, based on domain definition and magic
      equation and set it upon the domain startup. The rationale behind was,
      if there's a memory leak or exploit in qemu, we should prevent the
      host system trashing. However, the equation was too tightening, as it
      didn't reflect what the kernel counts into the memory used by a
      process. Since many hosts do have a swap, nobody hasn't noticed
      anything, because if hard memory limit is reached, process can
      continue allocating memory on a swap. However, if there is no swap on
      the host, the process gets killed by OOM killer. In our case, the qemu
      process it is.
      
      To prevent this, we need to relax the hard RSS limit. Moreover, we
      should reflect more precisely the kernel way of accounting the memory
      for process. That is, even the kernel caches are counted within the
      memory used by a process (within cgroups at least). Hence the magic
      equation has to be changed:
      
        limit = 1.5 * (domain memory + total video memory) + (32MB for cache
                per each disk) + 200MB
      3c83df67
    • J
      Resolve COPY_PASTE error found by Coverity · 51811e41
      John Ferlan 提交于
      Fix copy-paste error doing handshake.
      
      The clientShake was not set to true, thus we'd potentially never leave
      the handshake while loop.
      51811e41
    • J
      storage: fix leak in virStorageBackendLogicalMakeVol · afc4631b
      Ján Tomko 提交于
      Use regfree instead of VIR_FREE.
      afc4631b
    • C
      docs: remove duplicate check in index.add · 1e8b4b58
      Claudio Bley 提交于
      1e8b4b58
    • J
      S390: Enable SCLP Console in QEMU driver · db2b6861
      J.B. Joret 提交于
      This is the QEMU backend code for the SCLP console support.
      It includes SCLP capability detection, QEMU command line generation
      and a test case.
      Signed-off-by: NJ.B. Joret <jb@linux.vnet.ibm.com>
      Signed-off-by: NViktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
      db2b6861
    • J
      S390: Add SCLP console front end support · d760255d
      J.B. Joret 提交于
      The SCLP console is the native console type for s390 and is preferred
      over the virtio console as it doesn't require special drivers and
      is more efficient. Recent versions of QEMU come with SCLP support
      which is hereby enabled.
      
      The new target types 'sclp' and 'sclplm' can be used to specify a
      SCLP console. Adding documentation, domain schema and XML processing
      support.
      Signed-off-by: NJ.B. Joret <jb@linux.vnet.ibm.com>
      Signed-off-by: NViktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
      d760255d
    • D
      Rename lxc_protocol.x to lxc_monitor_protocol.x · 014afe65
      Daniel P. Berrange 提交于
      To avoid confusion between the LXC driver <-> controller
      monitor RPC protocol and the libvirt-lxc.so <-> libvirtd public
      RPC protocol, rename the former to lxc_monitor_protocol.x
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      014afe65