[libvirt] [PATCH] spec: Add missed dependancy for numad

numad is available since Fedora 17 and RHEL6.X. And it's not supported on s390[x] and ARM. --- configure.ac | 26 +++++++++++++++++++++----- libvirt.spec.in | 19 ++++++++++++++++++- src/qemu/qemu_process.c | 2 +- 3 files changed, 40 insertions(+), 7 deletions(-) diff --git a/configure.ac b/configure.ac index 31f0835..ce9c0ff 100644 --- a/configure.ac +++ b/configure.ac @@ -1445,14 +1445,29 @@ AM_CONDITIONAL([HAVE_NUMACTL], [test "$with_numactl" != "no"]) AC_SUBST([NUMACTL_CFLAGS]) AC_SUBST([NUMACTL_LIBS]) -dnl Do we have numad? -if test "$with_qemu" = "yes"; then - AC_PATH_PROG([NUMAD], [numad], [], [/bin:/usr/bin:/usr/local/bin:$PATH]) +dnl numad +AC_ARG_WITH([numad], + AC_HELP_STRING([--with-numad], [use numad to manage CPU placement dynamically @<:@default=check@:>@]), + [], + [with_numad=check]) - if test -n "$NUMAD"; then - AC_DEFINE_UNQUOTED([NUMAD],["$NUMAD"], [Location or name of the numad program]) +if test "$with_numad" != "no" ; then + AC_PATH_PROG([NUMAD], [numad], [], [/bin:/usr/bin]) + if test -z "$NUMAD" ; then + if test "$with_numad" = "check"; then + with_numad="no" + else + AC_MSG_ERROR([You must install the 'numad' to manage CPU placement dynamically]) fi + else + with_numad="yes" + fi + if test "$with_numad" = "yes"; then + AC_DEFINE_UNQUOTED([HAVE_NUMAD], 1, [whether numad is available]) + AC_DEFINE_UNQUOTED([NUMAD],["$NUMAD"], [Location or name of the numad program]) + fi fi +AM_CONDITIONAL([HAVE_NUMAD], [test "$with_numad" != "no"]) dnl pcap lib LIBPCAP_CONFIG="pcap-config" @@ -2774,6 +2789,7 @@ AC_MSG_NOTICE([Warning Flags: $WARN_CFLAGS]) AC_MSG_NOTICE([ Readline: $lv_use_readline]) AC_MSG_NOTICE([ Python: $with_python]) AC_MSG_NOTICE([ DTrace: $with_dtrace]) +AC_MSG_NOTICE([ numad: $with_numad]) AC_MSG_NOTICE([ XML Catalog: $XML_CATALOG_FILE]) AC_MSG_NOTICE([ Init script: $with_init_script]) AC_MSG_NOTICE([Console locks: $with_console_lock_files]) diff --git a/libvirt.spec.in b/libvirt.spec.in index 072fd8e..78800c7 100644 --- a/libvirt.spec.in +++ b/libvirt.spec.in @@ -84,6 +84,7 @@ %define with_cgconfig 0%{!?_without_cgconfig:0} %define with_sanlock 0%{!?_without_sanlock:0} %define with_systemd 0%{!?_without_systemd:0} +%define with_numad 0%{!?_without_numad:0} # Non-server/HV driver defaults which are always enabled %define with_python 0%{!?_without_python:1} @@ -205,11 +206,19 @@ %define with_storage_disk 0 %endif -# Enable libpcap library %if %{with_qemu} %define with_nwfilter 0%{!?_without_nwfilter:%{server_drivers}} +# Enable libpcap library %define with_libpcap 0%{!?_without_libpcap:%{server_drivers}} %define with_macvtap 0%{!?_without_macvtap:%{server_drivers}} + +# numad is used to manage the CPU placement dynamically, +# it's not available on s390[x] and ARM. +%if 0%{?fedora} >= 17 || 0%{?rhel} >= 6 +%ifnarch s390 s390x %{arm} +%define with_numad 0%{!?_without_numad:%{server_drivers}} +%endif +%endif %endif %if %{with_macvtap} @@ -357,6 +366,9 @@ Requires(post): systemd-sysv Requires(preun): systemd-units Requires(postun): systemd-units %endif +%if %{with_numad} +Requires: numad +%endif # All build-time requirements %if 0%{?enable_autotools} @@ -690,6 +702,10 @@ of recent versions of Linux (and other OSes). %define _without_numactl --without-numactl %endif +%if ! %{with_numad} +%define _without_numad --without-numad +%endif + %if ! %{with_capng} %define _without_capng --without-capng %endif @@ -775,6 +791,7 @@ autoreconf -if %{?_without_storage_disk} \ %{?_without_storage_mpath} \ %{?_without_numactl} \ + %{?_without_numad} \ %{?_without_capng} \ %{?_without_netcf} \ %{?_without_selinux} \ diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 8915a9a..d0706b4 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -1633,7 +1633,7 @@ qemuProcessInitNumaMemoryPolicy(virDomainObjPtr vm) } #endif -#if defined(NUMAD) +#if HAVE_NUMAD static char * qemuGetNumadAdvice(virDomainDefPtr def) { -- 1.7.7.3

On 03/23/2012 09:39 AM, Osier Yang wrote:
numad is available since Fedora 17 and RHEL6.X. And it's not supported on s390[x] and ARM. --- configure.ac | 26 +++++++++++++++++++++----- libvirt.spec.in | 19 ++++++++++++++++++- src/qemu/qemu_process.c | 2 +- 3 files changed, 40 insertions(+), 7 deletions(-)
diff --git a/configure.ac b/configure.ac
AC_MSG_NOTICE([ DTrace: $with_dtrace]) +AC_MSG_NOTICE([ numad: $with_numad]) AC_MSG_NOTICE([ XML Catalog: $XML_CATALOG_FILE])
Spacing is off: s/numad: / numad:/
@@ -357,6 +366,9 @@ Requires(post): systemd-sysv Requires(preun): systemd-units Requires(postun): systemd-units %endif +%if %{with_numad} +Requires: numad +%endif
Missing a counterpart BuildRequires lower down in order to ensure that the absolute path to numad is found at configure time. ACK with those fixes. -- Eric Blake eblake@redhat.com +1-919-301-3266 Libvirt virtualization library http://libvirt.org

On 2012年03月24日 03:27, Eric Blake wrote:
On 03/23/2012 09:39 AM, Osier Yang wrote:
numad is available since Fedora 17 and RHEL6.X. And it's not supported on s390[x] and ARM. --- configure.ac | 26 +++++++++++++++++++++----- libvirt.spec.in | 19 ++++++++++++++++++- src/qemu/qemu_process.c | 2 +- 3 files changed, 40 insertions(+), 7 deletions(-)
diff --git a/configure.ac b/configure.ac
AC_MSG_NOTICE([ DTrace: $with_dtrace]) +AC_MSG_NOTICE([ numad: $with_numad]) AC_MSG_NOTICE([ XML Catalog: $XML_CATALOG_FILE])
Spacing is off: s/numad: / numad:/
@@ -357,6 +366,9 @@ Requires(post): systemd-sysv Requires(preun): systemd-units Requires(postun): systemd-units %endif +%if %{with_numad} +Requires: numad +%endif
Missing a counterpart BuildRequires lower down in order to ensure that the absolute path to numad is found at configure time.
ACK with those fixes.
Thanks, pushed with the fixes. Regards, Osier
participants (2)
-
Eric Blake
-
Osier Yang