2012-06-15 20:13:11 +04:00
%{?mingw_package_header}
# Default to skipping autoreconf. Distros can change just this one line
# (or provide a command-line override) if they backport any patches that
# touch configure.ac or Makefile.am.
%{!?enable_autotools:%define enable_autotools 0}
# The mingw build is client only. Set up defaults for hypervisor drivers
# that talk via a native remote protocol, and for which prereq mingw
# libraries exist.
%define with_phyp 0%{!?_without_phyp:1}
%define with_esx 0%{!?_without_esx:1}
# missing libwsman, so can't build hyper-v
%define with_hyperv 0%{!?_without_hyperv:0}
%define with_xenapi 0%{!?_without_xenapi:1}
2012-07-31 22:56:05 +04:00
%define with_parallels 0%{!?_without_parallels:0}
2012-06-15 20:13:11 +04:00
# RHEL ships ESX but not PowerHypervisor, HyperV, or libxenserver (xenapi)
%if 0%{?rhel}
2013-01-10 00:50:03 +04:00
%define with_phyp 0
%define with_xenapi 0
%define with_hyperv 0
2012-06-15 20:13:11 +04:00
%endif
Name : mingw-libvirt
Version : @VERSION@
Release : 1%{?dist} %{?extra_release}
Summary : MinGW Windows libvirt virtualization library
License : LGPLv2+
Group : Development/Libraries
URL : http://libvirt.org/
Source0 : ftp://libvirt.org/libvirt/libvirt-%{version} .tar.gz
BuildRequires : mingw32-filesystem >= 95
BuildRequires : mingw64-filesystem >= 95
BuildRequires : mingw32-gcc
BuildRequires : mingw64-gcc
BuildRequires : mingw32-binutils
BuildRequires : mingw64-binutils
BuildRequires : mingw32-libgpg-error
BuildRequires : mingw64-libgpg-error
BuildRequires : mingw32-libgcrypt
BuildRequires : mingw64-libgcrypt
BuildRequires : mingw32-gnutls
BuildRequires : mingw64-gnutls
BuildRequires : mingw32-gettext
BuildRequires : mingw64-gettext
BuildRequires : mingw32-libxml2
BuildRequires : mingw64-libxml2
BuildRequires : mingw32-portablexdr
BuildRequires : mingw64-portablexdr
BuildRequires : pkgconfig
# Need native version for msgfmt
BuildRequires : gettext
%if 0%{?enable_autotools}
BuildRequires : autoconf
BuildRequires : automake
BuildRequires : gettext-devel
BuildRequires : libtool
%endif
%if %{with_phyp}
BuildRequires : mingw32-libssh2
BuildRequires : mingw64-libssh2
%endif
%if %{with_esx}
BuildRequires : mingw32-curl
BuildRequires : mingw64-curl
%endif
BuildArch : noarch
%description
MinGW Windows libvirt virtualization library.
# Mingw32
%package -n mingw32-libvirt
Summary : %{summary}
%description -n mingw32-libvirt
MinGW Windows libvirt virtualization library.
%package -n mingw32-libvirt-static
Summary : %{summary}
Requires : mingw32-libvirt = %{version} -%{release}
%description -n mingw32-libvirt-static
MinGW Windows libvirt virtualization library, static version.
# Mingw64
%package -n mingw64-libvirt
Summary : %{summary}
%description -n mingw64-libvirt
MinGW Windows libvirt virtualization library.
%package -n mingw64-libvirt-static
Summary : %{summary}
Requires : mingw64-libvirt = %{version} -%{release}
%description -n mingw64-libvirt-static
MinGW Windows libvirt virtualization library, static version.
%{?mingw_debug_package}
%prep
%setup -q -n libvirt-%{version}
%build
%if ! %{with_phyp}
2013-01-10 00:50:03 +04:00
%define _without_phyp --without-phyp
2012-06-15 20:13:11 +04:00
%endif
%if ! %{with_esx}
2013-01-10 00:50:03 +04:00
%define _without_esx --without-esx
2012-06-15 20:13:11 +04:00
%endif
%if ! %{with_hyperv}
2013-01-10 00:50:03 +04:00
%define _without_hyperv --without-hyperv
2012-06-15 20:13:11 +04:00
%endif
%if ! %{with_xenapi}
2013-01-10 00:50:03 +04:00
%define _without_xenapi --without-xenapi
2012-06-15 20:13:11 +04:00
%endif
2012-07-31 22:56:05 +04:00
%if ! %{with_parallels}
2013-01-10 00:50:03 +04:00
%define _without_parallels --without-parallels
2012-07-31 22:56:05 +04:00
%endif
2012-06-15 20:13:11 +04:00
%if 0%{?enable_autotools}
autoreconf -if
%endif
# XXX enable SASL in future
%mingw_configure \
--enable-static \
--without-xen \
--without-qemu \
--without-openvz \
--without-lxc \
--without-vbox \
%{?_without_xenapi} \
--without-sasl \
--without-avahi \
--without-polkit \
--without-python \
--without-libvirtd \
--without-uml \
%{?_without_phyp} \
%{?_without_esx} \
%{?_without_hyperv} \
--without-vmware \
2012-07-31 22:56:05 +04:00
--without-parallels \
2012-06-15 20:13:11 +04:00
--without-netcf \
--without-audit \
--without-dtrace
%mingw_make %{?_smp_mflags}
%install
%mingw_make_install " D E S T D I R = $RPM_BUILD_ROOT "
# Libtool files don't need to be bundled
find $RPM_BUILD_ROOT -name " * . l a " -delete
rm -rf $RPM_BUILD_ROOT %{mingw32_sysconfdir} /libvirt/nwfilter
rm -rf $RPM_BUILD_ROOT %{mingw64_sysconfdir} /libvirt/nwfilter
rm -rf $RPM_BUILD_ROOT %{mingw32_datadir} /doc/*
rm -rf $RPM_BUILD_ROOT %{mingw64_datadir} /doc/*
rm -rf $RPM_BUILD_ROOT %{mingw32_datadir} /gtk-doc/*
rm -rf $RPM_BUILD_ROOT %{mingw64_datadir} /gtk-doc/*
rm -rf $RPM_BUILD_ROOT %{mingw32_libexecdir} /libvirt_iohelper.exe
rm -rf $RPM_BUILD_ROOT %{mingw64_libexecdir} /libvirt_iohelper.exe
2013-01-05 03:36:57 +04:00
rm -rf $RPM_BUILD_ROOT %{mingw32_libexecdir} /libvirt-guests.sh
rm -rf $RPM_BUILD_ROOT %{mingw64_libexecdir} /libvirt-guests.sh
2012-06-15 20:13:11 +04:00
# Mingw32
%files -n mingw32-libvirt
%dir %{mingw32_sysconfdir} /libvirt/
%config (noreplace) %{mingw32_sysconfdir} /libvirt/libvirt.conf
%{mingw32_bindir} /libvirt-0.dll
%{mingw32_bindir} /virsh.exe
%{mingw32_bindir} /virt-xml-validate
%{mingw32_bindir} /virt-pki-validate
%{mingw32_bindir} /virt-host-validate.exe
Introduce an LXC specific public API & library
This patch introduces support for LXC specific public APIs. In
common with what was done for QEMU, this creates a libvirt_lxc.so
library and libvirt/libvirt-lxc.h header file.
The actual APIs are
int virDomainLxcOpenNamespace(virDomainPtr domain,
int **fdlist,
unsigned int flags);
int virDomainLxcEnterNamespace(virDomainPtr domain,
unsigned int nfdlist,
int *fdlist,
unsigned int *noldfdlist,
int **oldfdlist,
unsigned int flags);
which provide a way to use the setns() system call to move the
calling process into the container's namespace. It is not
practical to write in a generically applicable manner. The
nearest that we could get to such an API would be an API which
allows to pass a command + argv to be executed inside a
container. Even if we had such a generic API, this LXC specific
API is still useful, because it allows the caller to maintain
the current process context, in particular any I/O streams they
have open.
NB the virDomainLxcEnterNamespace() API is special in that it
runs client side, so does not involve the internal driver API.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-12-21 17:15:19 +04:00
%{mingw32_bindir} /libvirt-lxc-0.dll
2012-06-15 20:13:11 +04:00
%{mingw32_bindir} /libvirt-qemu-0.dll
%{mingw32_libdir} /libvirt.dll.a
%{mingw32_libdir} /pkgconfig/libvirt.pc
Introduce an LXC specific public API & library
This patch introduces support for LXC specific public APIs. In
common with what was done for QEMU, this creates a libvirt_lxc.so
library and libvirt/libvirt-lxc.h header file.
The actual APIs are
int virDomainLxcOpenNamespace(virDomainPtr domain,
int **fdlist,
unsigned int flags);
int virDomainLxcEnterNamespace(virDomainPtr domain,
unsigned int nfdlist,
int *fdlist,
unsigned int *noldfdlist,
int **oldfdlist,
unsigned int flags);
which provide a way to use the setns() system call to move the
calling process into the container's namespace. It is not
practical to write in a generically applicable manner. The
nearest that we could get to such an API would be an API which
allows to pass a command + argv to be executed inside a
container. Even if we had such a generic API, this LXC specific
API is still useful, because it allows the caller to maintain
the current process context, in particular any I/O streams they
have open.
NB the virDomainLxcEnterNamespace() API is special in that it
runs client side, so does not involve the internal driver API.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-12-21 17:15:19 +04:00
%{mingw32_libdir} /libvirt-lxc.dll.a
2012-06-15 20:13:11 +04:00
%{mingw32_libdir} /libvirt-qemu.dll.a
%dir %{mingw32_datadir} /libvirt/
%dir %{mingw32_datadir} /libvirt/schemas/
%{mingw32_datadir} /libvirt/schemas/basictypes.rng
%{mingw32_datadir} /libvirt/schemas/capability.rng
%{mingw32_datadir} /libvirt/schemas/domain.rng
%{mingw32_datadir} /libvirt/schemas/domaincommon.rng
%{mingw32_datadir} /libvirt/schemas/domainsnapshot.rng
%{mingw32_datadir} /libvirt/schemas/interface.rng
%{mingw32_datadir} /libvirt/schemas/network.rng
%{mingw32_datadir} /libvirt/schemas/networkcommon.rng
%{mingw32_datadir} /libvirt/schemas/nodedev.rng
%{mingw32_datadir} /libvirt/schemas/nwfilter.rng
%{mingw32_datadir} /libvirt/schemas/secret.rng
%{mingw32_datadir} /libvirt/schemas/storageencryption.rng
%{mingw32_datadir} /libvirt/schemas/storagepool.rng
%{mingw32_datadir} /libvirt/schemas/storagevol.rng
%dir %{mingw32_datadir} /libvirt/api/
%{mingw32_datadir} /libvirt/api/libvirt-api.xml
Introduce an LXC specific public API & library
This patch introduces support for LXC specific public APIs. In
common with what was done for QEMU, this creates a libvirt_lxc.so
library and libvirt/libvirt-lxc.h header file.
The actual APIs are
int virDomainLxcOpenNamespace(virDomainPtr domain,
int **fdlist,
unsigned int flags);
int virDomainLxcEnterNamespace(virDomainPtr domain,
unsigned int nfdlist,
int *fdlist,
unsigned int *noldfdlist,
int **oldfdlist,
unsigned int flags);
which provide a way to use the setns() system call to move the
calling process into the container's namespace. It is not
practical to write in a generically applicable manner. The
nearest that we could get to such an API would be an API which
allows to pass a command + argv to be executed inside a
container. Even if we had such a generic API, this LXC specific
API is still useful, because it allows the caller to maintain
the current process context, in particular any I/O streams they
have open.
NB the virDomainLxcEnterNamespace() API is special in that it
runs client side, so does not involve the internal driver API.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-12-21 17:15:19 +04:00
%{mingw32_datadir} /libvirt/api/libvirt-lxc-api.xml
2012-06-15 20:13:11 +04:00
%{mingw32_datadir} /libvirt/api/libvirt-qemu-api.xml
%{mingw32_datadir} /libvirt/cpu_map.xml
2013-03-30 01:25:13 +04:00
%{mingw32_datadir} /libvirt/libvirtLogo.png
2012-06-15 20:13:11 +04:00
%{mingw32_datadir} /locale/*/LC_MESSAGES/libvirt.mo
%dir %{mingw32_includedir} /libvirt
%{mingw32_includedir} /libvirt/libvirt.h
%{mingw32_includedir} /libvirt/virterror.h
Introduce an LXC specific public API & library
This patch introduces support for LXC specific public APIs. In
common with what was done for QEMU, this creates a libvirt_lxc.so
library and libvirt/libvirt-lxc.h header file.
The actual APIs are
int virDomainLxcOpenNamespace(virDomainPtr domain,
int **fdlist,
unsigned int flags);
int virDomainLxcEnterNamespace(virDomainPtr domain,
unsigned int nfdlist,
int *fdlist,
unsigned int *noldfdlist,
int **oldfdlist,
unsigned int flags);
which provide a way to use the setns() system call to move the
calling process into the container's namespace. It is not
practical to write in a generically applicable manner. The
nearest that we could get to such an API would be an API which
allows to pass a command + argv to be executed inside a
container. Even if we had such a generic API, this LXC specific
API is still useful, because it allows the caller to maintain
the current process context, in particular any I/O streams they
have open.
NB the virDomainLxcEnterNamespace() API is special in that it
runs client side, so does not involve the internal driver API.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-12-21 17:15:19 +04:00
%{mingw32_includedir} /libvirt/libvirt-lxc.h
2012-06-15 20:13:11 +04:00
%{mingw32_includedir} /libvirt/libvirt-qemu.h
%{mingw32_mandir} /man1/virsh.1*
%{mingw32_mandir} /man1/virt-xml-validate.1*
%{mingw32_mandir} /man1/virt-pki-validate.1*
%{mingw32_mandir} /man1/virt-host-validate.1*
%files -n mingw32-libvirt-static
%{mingw32_libdir} /libvirt.a
Introduce an LXC specific public API & library
This patch introduces support for LXC specific public APIs. In
common with what was done for QEMU, this creates a libvirt_lxc.so
library and libvirt/libvirt-lxc.h header file.
The actual APIs are
int virDomainLxcOpenNamespace(virDomainPtr domain,
int **fdlist,
unsigned int flags);
int virDomainLxcEnterNamespace(virDomainPtr domain,
unsigned int nfdlist,
int *fdlist,
unsigned int *noldfdlist,
int **oldfdlist,
unsigned int flags);
which provide a way to use the setns() system call to move the
calling process into the container's namespace. It is not
practical to write in a generically applicable manner. The
nearest that we could get to such an API would be an API which
allows to pass a command + argv to be executed inside a
container. Even if we had such a generic API, this LXC specific
API is still useful, because it allows the caller to maintain
the current process context, in particular any I/O streams they
have open.
NB the virDomainLxcEnterNamespace() API is special in that it
runs client side, so does not involve the internal driver API.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-12-21 17:15:19 +04:00
%{mingw32_libdir} /libvirt-lxc.a
2012-06-15 20:13:11 +04:00
%{mingw32_libdir} /libvirt-qemu.a
# Mingw64
%files -n mingw64-libvirt
%dir %{mingw64_sysconfdir} /libvirt/
%config (noreplace) %{mingw64_sysconfdir} /libvirt/libvirt.conf
%{mingw64_bindir} /libvirt-0.dll
%{mingw64_bindir} /virsh.exe
%{mingw64_bindir} /virt-xml-validate
%{mingw64_bindir} /virt-pki-validate
%{mingw64_bindir} /virt-host-validate.exe
Introduce an LXC specific public API & library
This patch introduces support for LXC specific public APIs. In
common with what was done for QEMU, this creates a libvirt_lxc.so
library and libvirt/libvirt-lxc.h header file.
The actual APIs are
int virDomainLxcOpenNamespace(virDomainPtr domain,
int **fdlist,
unsigned int flags);
int virDomainLxcEnterNamespace(virDomainPtr domain,
unsigned int nfdlist,
int *fdlist,
unsigned int *noldfdlist,
int **oldfdlist,
unsigned int flags);
which provide a way to use the setns() system call to move the
calling process into the container's namespace. It is not
practical to write in a generically applicable manner. The
nearest that we could get to such an API would be an API which
allows to pass a command + argv to be executed inside a
container. Even if we had such a generic API, this LXC specific
API is still useful, because it allows the caller to maintain
the current process context, in particular any I/O streams they
have open.
NB the virDomainLxcEnterNamespace() API is special in that it
runs client side, so does not involve the internal driver API.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-12-21 17:15:19 +04:00
%{mingw64_bindir} /libvirt-lxc-0.dll
2012-06-15 20:13:11 +04:00
%{mingw64_bindir} /libvirt-qemu-0.dll
%{mingw64_libdir} /libvirt.dll.a
%{mingw64_libdir} /pkgconfig/libvirt.pc
Introduce an LXC specific public API & library
This patch introduces support for LXC specific public APIs. In
common with what was done for QEMU, this creates a libvirt_lxc.so
library and libvirt/libvirt-lxc.h header file.
The actual APIs are
int virDomainLxcOpenNamespace(virDomainPtr domain,
int **fdlist,
unsigned int flags);
int virDomainLxcEnterNamespace(virDomainPtr domain,
unsigned int nfdlist,
int *fdlist,
unsigned int *noldfdlist,
int **oldfdlist,
unsigned int flags);
which provide a way to use the setns() system call to move the
calling process into the container's namespace. It is not
practical to write in a generically applicable manner. The
nearest that we could get to such an API would be an API which
allows to pass a command + argv to be executed inside a
container. Even if we had such a generic API, this LXC specific
API is still useful, because it allows the caller to maintain
the current process context, in particular any I/O streams they
have open.
NB the virDomainLxcEnterNamespace() API is special in that it
runs client side, so does not involve the internal driver API.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-12-21 17:15:19 +04:00
%{mingw64_libdir} /libvirt-lxc.dll.a
2012-06-15 20:13:11 +04:00
%{mingw64_libdir} /libvirt-qemu.dll.a
%dir %{mingw64_datadir} /libvirt/
%dir %{mingw64_datadir} /libvirt/schemas/
%{mingw64_datadir} /libvirt/schemas/basictypes.rng
%{mingw64_datadir} /libvirt/schemas/capability.rng
%{mingw64_datadir} /libvirt/schemas/domain.rng
%{mingw64_datadir} /libvirt/schemas/domaincommon.rng
%{mingw64_datadir} /libvirt/schemas/domainsnapshot.rng
%{mingw64_datadir} /libvirt/schemas/interface.rng
%{mingw64_datadir} /libvirt/schemas/network.rng
%{mingw64_datadir} /libvirt/schemas/networkcommon.rng
%{mingw64_datadir} /libvirt/schemas/nodedev.rng
%{mingw64_datadir} /libvirt/schemas/nwfilter.rng
%{mingw64_datadir} /libvirt/schemas/secret.rng
%{mingw64_datadir} /libvirt/schemas/storageencryption.rng
%{mingw64_datadir} /libvirt/schemas/storagepool.rng
%{mingw64_datadir} /libvirt/schemas/storagevol.rng
%dir %{mingw64_datadir} /libvirt/api/
%{mingw64_datadir} /libvirt/api/libvirt-api.xml
Introduce an LXC specific public API & library
This patch introduces support for LXC specific public APIs. In
common with what was done for QEMU, this creates a libvirt_lxc.so
library and libvirt/libvirt-lxc.h header file.
The actual APIs are
int virDomainLxcOpenNamespace(virDomainPtr domain,
int **fdlist,
unsigned int flags);
int virDomainLxcEnterNamespace(virDomainPtr domain,
unsigned int nfdlist,
int *fdlist,
unsigned int *noldfdlist,
int **oldfdlist,
unsigned int flags);
which provide a way to use the setns() system call to move the
calling process into the container's namespace. It is not
practical to write in a generically applicable manner. The
nearest that we could get to such an API would be an API which
allows to pass a command + argv to be executed inside a
container. Even if we had such a generic API, this LXC specific
API is still useful, because it allows the caller to maintain
the current process context, in particular any I/O streams they
have open.
NB the virDomainLxcEnterNamespace() API is special in that it
runs client side, so does not involve the internal driver API.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-12-21 17:15:19 +04:00
%{mingw64_datadir} /libvirt/api/libvirt-lxc-api.xml
2012-06-15 20:13:11 +04:00
%{mingw64_datadir} /libvirt/api/libvirt-qemu-api.xml
%{mingw64_datadir} /libvirt/cpu_map.xml
2013-03-30 01:25:13 +04:00
%{mingw64_datadir} /libvirt/libvirtLogo.png
2012-06-15 20:13:11 +04:00
%{mingw64_datadir} /locale/*/LC_MESSAGES/libvirt.mo
%dir %{mingw64_includedir} /libvirt
%{mingw64_includedir} /libvirt/libvirt.h
%{mingw64_includedir} /libvirt/virterror.h
Introduce an LXC specific public API & library
This patch introduces support for LXC specific public APIs. In
common with what was done for QEMU, this creates a libvirt_lxc.so
library and libvirt/libvirt-lxc.h header file.
The actual APIs are
int virDomainLxcOpenNamespace(virDomainPtr domain,
int **fdlist,
unsigned int flags);
int virDomainLxcEnterNamespace(virDomainPtr domain,
unsigned int nfdlist,
int *fdlist,
unsigned int *noldfdlist,
int **oldfdlist,
unsigned int flags);
which provide a way to use the setns() system call to move the
calling process into the container's namespace. It is not
practical to write in a generically applicable manner. The
nearest that we could get to such an API would be an API which
allows to pass a command + argv to be executed inside a
container. Even if we had such a generic API, this LXC specific
API is still useful, because it allows the caller to maintain
the current process context, in particular any I/O streams they
have open.
NB the virDomainLxcEnterNamespace() API is special in that it
runs client side, so does not involve the internal driver API.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-12-21 17:15:19 +04:00
%{mingw64_includedir} /libvirt/libvirt-lxc.h
2012-06-15 20:13:11 +04:00
%{mingw64_includedir} /libvirt/libvirt-qemu.h
%{mingw64_mandir} /man1/virsh.1*
%{mingw64_mandir} /man1/virt-xml-validate.1*
%{mingw64_mandir} /man1/virt-pki-validate.1*
%{mingw64_mandir} /man1/virt-host-validate.1*
%files -n mingw64-libvirt-static
%{mingw64_libdir} /libvirt.a
Introduce an LXC specific public API & library
This patch introduces support for LXC specific public APIs. In
common with what was done for QEMU, this creates a libvirt_lxc.so
library and libvirt/libvirt-lxc.h header file.
The actual APIs are
int virDomainLxcOpenNamespace(virDomainPtr domain,
int **fdlist,
unsigned int flags);
int virDomainLxcEnterNamespace(virDomainPtr domain,
unsigned int nfdlist,
int *fdlist,
unsigned int *noldfdlist,
int **oldfdlist,
unsigned int flags);
which provide a way to use the setns() system call to move the
calling process into the container's namespace. It is not
practical to write in a generically applicable manner. The
nearest that we could get to such an API would be an API which
allows to pass a command + argv to be executed inside a
container. Even if we had such a generic API, this LXC specific
API is still useful, because it allows the caller to maintain
the current process context, in particular any I/O streams they
have open.
NB the virDomainLxcEnterNamespace() API is special in that it
runs client side, so does not involve the internal driver API.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-12-21 17:15:19 +04:00
%{mingw64_libdir} /libvirt-lxc.a
2012-06-15 20:13:11 +04:00
%{mingw64_libdir} /libvirt-qemu.a
%changelog