diff --git a/configure.ac b/configure.ac index 69237ac0f1..5e3743c45e 100644 --- a/configure.ac +++ b/configure.ac @@ -79,7 +79,6 @@ AM_CONDITIONAL([WITH_MACOS], [test "$with_macos" = "yes"]) # Check for compiler and library settings. -LIBVIRT_ARG_NSS LIBVIRT_ARG_PM_UTILS LIBVIRT_CHECK_NWFILTER @@ -105,7 +104,6 @@ LIBVIRT_ARG_SYSCTL_CONFIG LIBVIRT_CHECK_NUMAD LIBVIRT_CHECK_TLS_PRIORITY LIBVIRT_CHECK_SYSCTL_CONFIG -LIBVIRT_CHECK_NSS dnl Need to test if pkg-config exists @@ -164,7 +162,6 @@ AC_MSG_NOTICE([=====================]) AC_MSG_NOTICE([]) AC_MSG_NOTICE([Libraries]) AC_MSG_NOTICE([]) -LIBVIRT_RESULT_NSS LIBVIRT_RESULT_PM_UTILS AC_MSG_NOTICE([]) AC_MSG_NOTICE([Windows]) diff --git a/m4/virt-nss.m4 b/m4/virt-nss.m4 deleted file mode 100644 index b519c36e85..0000000000 --- a/m4/virt-nss.m4 +++ /dev/null @@ -1,86 +0,0 @@ -dnl The libvirt nsswitch plugin -dnl -dnl Copyright (C) 2016 Red Hat, Inc. -dnl -dnl This library is free software; you can redistribute it and/or -dnl modify it under the terms of the GNU Lesser General Public -dnl License as published by the Free Software Foundation; either -dnl version 2.1 of the License, or (at your option) any later version. -dnl -dnl This library is distributed in the hope that it will be useful, -dnl but WITHOUT ANY WARRANTY; without even the implied warranty of -dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -dnl Lesser General Public License for more details. -dnl -dnl You should have received a copy of the GNU Lesser General Public -dnl License along with this library. If not, see -dnl . -dnl - -AC_DEFUN([LIBVIRT_ARG_NSS],[ - LIBVIRT_ARG_WITH([NSS_PLUGIN], - [enable Name Service Switch plugin for resolving guest - IP addresses], [check]) -]) - -AC_DEFUN([LIBVIRT_CHECK_NSS],[ - bsd_nss=no - fail=0 - if test "x$with_nss_plugin" != "xno" ; then - if test "x$with_yajl" != "xyes" ; then - if test "x$with_nss_plugin" = "xyes" ; then - AC_MSG_ERROR([Can't build nss plugin without yajl]) - else - with_nss_plugin=no - fi - fi - - if test "x$with_network" != "xyes" ; then - if test "x$with_nss_plugin" = "xyes" ; then - AC_MSG_ERROR([Can't build nss plugin without network]) - else - with_nss_plugin=no - fi - fi - - if test "x$with_nss_plugin" != "xno" ; then - AC_CHECK_HEADERS([nss.h], [ - with_nss_plugin=yes - ],[ - if test "x$with_nss_plugin" = "xyes" ; then - fail = 1 - fi - ]) - - if test $fail = 1 ; then - AC_MSG_ERROR([Can't build nss plugin without nss.h]) - fi - fi - - if test "x$with_nss_plugin" = "xyes" ; then - AC_DEFINE_UNQUOTED([WITH_NSS], 1, [whether nss plugin is enabled]) - - AC_CHECK_TYPE([struct gaih_addrtuple], - [AC_DEFINE([HAVE_STRUCT_GAIH_ADDRTUPLE], [1], - [Defined if struct gaih_addrtuple exists in nss.h])], - [], [[#include - ]]) - - AC_CHECK_TYPES([ns_mtab, nss_module_unregister_fn], - [AC_DEFINE([HAVE_BSD_NSS], - [1], - [whether using BSD style NSS]) - bsd_nss=yes - ], - [], - [#include ]) - fi - fi - - AM_CONDITIONAL(WITH_NSS, [test "x$with_nss_plugin" = "xyes"]) - AM_CONDITIONAL(WITH_BSD_NSS, [test "x$bsd_nss" = "xyes"]) -]) - -AC_DEFUN([LIBVIRT_RESULT_NSS],[ - LIBVIRT_RESULT([nss], [$with_nss_plugin]) -]) diff --git a/meson.build b/meson.build index 63cfd42307..b73e3efef4 100644 --- a/meson.build +++ b/meson.build @@ -2126,6 +2126,46 @@ elif get_option('login_shell').enabled() error('virt-login-shell is supported on Linux only') endif +if not get_option('nss').disabled() + use_nss = true + if not yajl_dep.found() + if get_option('nss').enabled() + error('Can\'t build nss plugin without yajl') + else + use_nss = false + endif + endif + + if use_nss and not conf.has('WITH_NETWORK') + if get_option('nss').enabled() + error('Can\'t build nss plugin without network') + else + use_nss = false + endif + endif + + if use_nss and not cc.has_header('nss.h') + if get_option('nss').enabled() + error('Can\'t build nss plugin without nss.h') + else + use_nss = false + endif + endif + + if use_nss + conf.set('WITH_NSS', 1) + + if cc.has_type('struct gaih_addrtuple', prefix: '#include ') + conf.set('HAVE_STRUCT_GAIH_ADDRTUPLE', 1) + endif + + if (cc.has_type('ns_mtab', prefix: '#include ') and + cc.has_type('nss_module_unregister_fn', prefix: '#include ')) + conf.set('WITH_BSD_NSS', 1) + endif + endif +endif + # define top include directory @@ -2220,6 +2260,7 @@ libs_summary = { 'macvtap': conf.has('WITH_MACVTAP'), 'netcf': netcf_dep.found(), 'NLS': have_gnu_gettext_tools, + 'nss': conf.has('WITH_NSS'), 'numaclt': numactl_dep.found(), 'openwsman': openwsman_dep.found(), 'pciaccess': pciaccess_dep.found(), diff --git a/meson_options.txt b/meson_options.txt index 98278fe6e6..c66bfc3788 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -97,3 +97,4 @@ option('host_validate', type: 'feature', value: 'auto', description: 'build virt option('init_script', type: 'combo', choices: ['systemd', 'openrc', 'check', 'none'], value: 'check', description: 'Style of init script to install') option('loader_nvram', type: 'string', value: '', description: 'Pass list of pairs of : paths. Both pairs and list items are separated by a colon.') option('login_shell', type: 'feature', value: 'auto', description: 'build virt-login-shell') +option('nss', type: 'feature', value: 'auto', description: 'enable Name Service Switch plugin for resolving guest IP addresses')