diff --git a/pkgs/development/libraries/libvirt/build-on-bsd.patch b/pkgs/development/libraries/libvirt/build-on-bsd.patch new file mode 100644 index 00000000000..830f0f30ff9 --- /dev/null +++ b/pkgs/development/libraries/libvirt/build-on-bsd.patch @@ -0,0 +1,58 @@ +diff -Naur libvirt-1.3.0.orig/src/admin/admin_protocol.c libvirt-1.3.0/src/admin/admin_protocol.c +--- libvirt-1.3.0.orig/src/admin/admin_protocol.c 2015-12-02 16:17:07.000000000 +0100 ++++ libvirt-1.3.0/src/admin/admin_protocol.c 2016-01-04 17:57:10.043412857 +0100 +@@ -6,6 +6,25 @@ + + #include "admin_protocol.h" + ++/* cygwin's xdr implementation defines xdr_u_int64_t instead of xdr_uint64_t ++ * and lacks IXDR_PUT_INT32 and IXDR_GET_INT32 ++ */ ++#ifdef HAVE_XDR_U_INT64_T ++# define xdr_uint64_t xdr_u_int64_t ++#endif ++#ifndef IXDR_PUT_INT32 ++# define IXDR_PUT_INT32 IXDR_PUT_LONG ++#endif ++#ifndef IXDR_GET_INT32 ++# define IXDR_GET_INT32 IXDR_GET_LONG ++#endif ++#ifndef IXDR_PUT_U_INT32 ++# define IXDR_PUT_U_INT32 IXDR_PUT_U_LONG ++#endif ++#ifndef IXDR_GET_U_INT32 ++# define IXDR_GET_U_INT32 IXDR_GET_U_LONG ++#endif ++ + bool_t + xdr_admin_nonnull_string (XDR *xdrs, admin_nonnull_string *objp) + { +diff -Naur libvirt-1.3.0.orig/src/logging/log_protocol.c libvirt-1.3.0/src/logging/log_protocol.c +--- libvirt-1.3.0.orig/src/logging/log_protocol.c 2015-12-08 13:07:35.000000000 +0100 ++++ libvirt-1.3.0/src/logging/log_protocol.c 2016-01-04 17:56:50.673463563 +0100 +@@ -7,6 +7,25 @@ + #include "log_protocol.h" + #include "internal.h" + ++/* cygwin's xdr implementation defines xdr_u_int64_t instead of xdr_uint64_t ++ * and lacks IXDR_PUT_INT32 and IXDR_GET_INT32 ++ */ ++#ifdef HAVE_XDR_U_INT64_T ++# define xdr_uint64_t xdr_u_int64_t ++#endif ++#ifndef IXDR_PUT_INT32 ++# define IXDR_PUT_INT32 IXDR_PUT_LONG ++#endif ++#ifndef IXDR_GET_INT32 ++# define IXDR_GET_INT32 IXDR_GET_LONG ++#endif ++#ifndef IXDR_PUT_U_INT32 ++# define IXDR_PUT_U_INT32 IXDR_PUT_U_LONG ++#endif ++#ifndef IXDR_GET_U_INT32 ++# define IXDR_GET_U_INT32 IXDR_GET_U_LONG ++#endif ++ + bool_t + xdr_virLogManagerProtocolUUID (XDR *xdrs, virLogManagerProtocolUUID objp) + { diff --git a/pkgs/development/libraries/libvirt/default.nix b/pkgs/development/libraries/libvirt/default.nix index 54addb397b7..980bccd39fb 100644 --- a/pkgs/development/libraries/libvirt/default.nix +++ b/pkgs/development/libraries/libvirt/default.nix @@ -1,6 +1,8 @@ -{ stdenv, fetchurl, pkgconfig, libxml2, gnutls, devicemapper, perl, python +{ stdenv, fetchurl, fetchpatch +, pkgconfig, makeWrapper +, libxml2, gnutls, devicemapper, perl, python , iproute, iptables, readline, lvm2, utillinux, udev, libpciaccess, gettext -, libtasn1, ebtables, libgcrypt, yajl, makeWrapper, pmutils, libcap_ng +, libtasn1, ebtables, libgcrypt, yajl, pmutils, libcap_ng , dnsmasq, libnl, libpcap, libxslt, xhtml1, numad, numactl, perlPackages , curl, libiconv, gmp, xen }: @@ -14,9 +16,12 @@ stdenv.mkDerivation rec { sha256 = "ebcf5645fa565e3fe2fe94a86e841db9b768cf0e0a7e6cf395c6327f9a23bd64"; }; + patches = [ ./build-on-bsd.patch ]; + + nativeBuildInputs = [ makeWrapper pkgconfig ]; buildInputs = [ - pkgconfig libxml2 gnutls perl python readline - gettext libtasn1 libgcrypt yajl makeWrapper + libxml2 gnutls perl python readline + gettext libtasn1 libgcrypt yajl libxslt xhtml1 perlPackages.XMLXPath curl libpcap ] ++ stdenv.lib.optionals stdenv.isLinux [ libpciaccess devicemapper lvm2 utillinux udev libcap_ng