libvirt: 6.3.0 -> 6.6.0
Also upgrades `python3Packages.libvirt` and patches the `rpcgen` tool from Apple's `developer_cmds` package.
This commit is contained in:
parent
a7218d6914
commit
d5b0c8bcdf
|
@ -1,106 +0,0 @@
|
|||
From a9ce1217742d542a5ae4b154b6f55342aace374e Mon Sep 17 00:00:00 2001
|
||||
From: Maximilian Bosch <maximilian@mbosch.me>
|
||||
Date: Mon, 17 Aug 2020 19:35:44 +0200
|
||||
Subject: [PATCH] Fix build with libtirpc
|
||||
|
||||
Derived from https://github.com/libvirt/libvirt/commit/d7147b3797380de2d159ce6324536f3e1f2d97e3.patch
|
||||
---
|
||||
libvirt.spec.in | 4 +++-
|
||||
src/Makefile.am | 2 +-
|
||||
src/admin/Makefile.inc.am | 1 +
|
||||
src/locking/Makefile.inc.am | 2 ++
|
||||
src/logging/Makefile.inc.am | 1 +
|
||||
src/remote/Makefile.inc.am | 1 +
|
||||
6 files changed, 9 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/libvirt.spec.in b/libvirt.spec.in
|
||||
index 6abf97d..71fc4e6 100644
|
||||
--- a/libvirt.spec.in
|
||||
+++ b/libvirt.spec.in
|
||||
@@ -405,11 +405,13 @@ BuildRequires: wireshark-devel >= 2.4.0
|
||||
BuildRequires: libssh-devel >= 0.7.0
|
||||
%endif
|
||||
|
||||
+# On RHEL-7 rpcgen is still part of glibc-common package
|
||||
%if 0%{?fedora} || 0%{?rhel} > 7
|
||||
BuildRequires: rpcgen
|
||||
-BuildRequires: libtirpc-devel
|
||||
%endif
|
||||
|
||||
+BuildRequires: libtirpc-devel
|
||||
+
|
||||
%if %{with_firewalld_zone}
|
||||
BuildRequires: firewalld-filesystem
|
||||
%endif
|
||||
diff --git a/src/Makefile.am b/src/Makefile.am
|
||||
index 12dd6b8..8d0d4e1 100644
|
||||
--- a/src/Makefile.am
|
||||
+++ b/src/Makefile.am
|
||||
@@ -439,7 +439,7 @@ libvirt_la_LDFLAGS += -Wl,-flat_namespace
|
||||
endif WITH_MACOS
|
||||
libvirt_la_LDFLAGS += $(NULL)
|
||||
libvirt_la_LIBADD += \
|
||||
- $(DRIVER_MODULES_LIBS)
|
||||
+ $(DRIVER_MODULES_LIBS) $(XDR_LIBS)
|
||||
libvirt_la_CFLAGS = -DIN_LIBVIRT $(AM_CFLAGS)
|
||||
# Because we specify libvirt_la_DEPENDENCIES for $(LIBVIRT_SYMBOL_FILE), we
|
||||
# lose automake's automatic dependencies on an appropriate subset of
|
||||
diff --git a/src/admin/Makefile.inc.am b/src/admin/Makefile.inc.am
|
||||
index 0a9717a..8556a3b 100644
|
||||
--- a/src/admin/Makefile.inc.am
|
||||
+++ b/src/admin/Makefile.inc.am
|
||||
@@ -72,6 +72,7 @@ libvirt_admin_la_LDFLAGS = \
|
||||
|
||||
libvirt_admin_la_LIBADD = \
|
||||
libvirt.la \
|
||||
+ $(XDR_LIBS) \
|
||||
$(CAPNG_LIBS) \
|
||||
$(YAJL_LIBS) \
|
||||
$(DEVMAPPER_LIBS) \
|
||||
diff --git a/src/locking/Makefile.inc.am b/src/locking/Makefile.inc.am
|
||||
index d1bf49c..ab01d8e 100644
|
||||
--- a/src/locking/Makefile.inc.am
|
||||
+++ b/src/locking/Makefile.inc.am
|
||||
@@ -120,6 +120,7 @@ lockd_la_LDFLAGS = $(AM_LDFLAGS_MOD_NOUNDEF)
|
||||
lockd_la_LIBADD = \
|
||||
libvirt.la \
|
||||
$(GLIB_LIBS) \
|
||||
+ $(XDR_LIBS) \
|
||||
$(NULL)
|
||||
augeas_DATA += locking/libvirt_lockd.aug
|
||||
if WITH_DTRACE_PROBES
|
||||
@@ -161,6 +162,7 @@ virtlockd_CFLAGS = \
|
||||
virtlockd_LDFLAGS = \
|
||||
$(AM_LDFLAGS) \
|
||||
$(PIE_LDFLAGS) \
|
||||
+ $(XDR_LIBS) \
|
||||
$(NO_UNDEFINED_LDFLAGS) \
|
||||
$(NULL)
|
||||
virtlockd_LDADD = \
|
||||
diff --git a/src/logging/Makefile.inc.am b/src/logging/Makefile.inc.am
|
||||
index dc09cfe..4be3376 100644
|
||||
--- a/src/logging/Makefile.inc.am
|
||||
+++ b/src/logging/Makefile.inc.am
|
||||
@@ -99,6 +99,7 @@ virtlogd_CFLAGS = \
|
||||
virtlogd_LDFLAGS = \
|
||||
$(AM_LDFLAGS) \
|
||||
$(PIE_LDFLAGS) \
|
||||
+ $(XDR_LIBS) \
|
||||
$(NO_UNDEFINED_LDFLAGS) \
|
||||
$(NULL)
|
||||
virtlogd_LDADD = \
|
||||
diff --git a/src/remote/Makefile.inc.am b/src/remote/Makefile.inc.am
|
||||
index 1b1be83..8a40c96 100644
|
||||
--- a/src/remote/Makefile.inc.am
|
||||
+++ b/src/remote/Makefile.inc.am
|
||||
@@ -69,6 +69,7 @@ REMOTE_DAEMON_LD_ADD = \
|
||||
$(LIBXML_LIBS) \
|
||||
$(GNUTLS_LIBS) \
|
||||
$(SASL_LIBS) \
|
||||
+ $(XDR_LIBS) \
|
||||
$(DBUS_LIBS) \
|
||||
$(LIBNL_LIBS) \
|
||||
$(NULL)
|
||||
--
|
||||
2.25.4
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
, iproute, iptables, readline, lvm2, utillinux, systemd, libpciaccess, gettext
|
||||
, libtasn1, ebtables, libgcrypt, yajl, pmutils, libcap_ng, libapparmor
|
||||
, dnsmasq, libnl, libpcap, libxslt, xhtml1, numad, numactl, perlPackages
|
||||
, curl, libiconv, gmp, zfs, parted, bridge-utils, dmidecode, dbus, libtirpc, rpcsvc-proto
|
||||
, curl, libiconv, gmp, zfs, parted, bridge-utils, dmidecode, dbus, libtirpc, rpcsvc-proto, darwin
|
||||
, enableXen ? false, xen ? null
|
||||
, enableIscsi ? false, openiscsi
|
||||
, enableCeph ? false, ceph
|
||||
|
@ -17,34 +17,38 @@ let
|
|||
buildFromTarball = stdenv.isDarwin;
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "libvirt";
|
||||
version = "6.3.0";
|
||||
version = "6.6.0";
|
||||
|
||||
src =
|
||||
if buildFromTarball then
|
||||
fetchurl {
|
||||
url = "http://libvirt.org/sources/${pname}-${version}.tar.xz";
|
||||
sha256 = "1xcng497hs1gary3pz3fp590a4r1kqs4d0d8k5p370j0scw981kl";
|
||||
sha256 = "1y8y13zvh820f4b15287wb77wq7ra7kbfnpblzhm1dki5pfjvrcl";
|
||||
}
|
||||
else
|
||||
fetchgit {
|
||||
url = "git://libvirt.org/libvirt.git";
|
||||
rev = "v${version}";
|
||||
sha256 = "129b3p72jlb40dsidak3nvpssv75xx2v99y63gzp5k074fp8y8x4";
|
||||
sha256 = "09hsbm2qmx0jfmm418rf5lx374g85bwgg0kzlga62x5180jhsssn";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
patches = [
|
||||
./0001-Fix-build-with-libtirpc.patch
|
||||
nativeBuildInputs = [
|
||||
makeWrapper pkgconfig docutils
|
||||
] ++ optionals (!buildFromTarball) [
|
||||
autoreconfHook
|
||||
] ++ optional (!stdenv.isDarwin) [
|
||||
rpcsvc-proto
|
||||
] ++ optionals stdenv.isDarwin [
|
||||
darwin.developer_cmds # needed for rpcgen
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ makeWrapper pkgconfig docutils rpcsvc-proto ]
|
||||
++ optionals (!buildFromTarball) [ autoreconfHook ];
|
||||
buildInputs = [
|
||||
libxml2 gnutls perl python2 readline gettext libtasn1 libgcrypt yajl
|
||||
libxslt xhtml1 perlPackages.XMLXPath curl libpcap glib dbus libtirpc
|
||||
libxslt xhtml1 perlPackages.XMLXPath curl libpcap glib dbus
|
||||
] ++ optionals stdenv.isLinux [
|
||||
libpciaccess lvm2 utillinux systemd libnl numad zfs
|
||||
libapparmor libcap_ng numactl attr parted
|
||||
libapparmor libcap_ng numactl attr parted libtirpc
|
||||
] ++ optionals (enableXen && stdenv.isLinux && stdenv.isx86_64) [
|
||||
xen
|
||||
] ++ optionals enableIscsi [
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "libvirt";
|
||||
version = "6.3.0";
|
||||
version = "6.6.0";
|
||||
|
||||
src = assert version == libvirt.version; fetchgit {
|
||||
url = "git://libvirt.org/libvirt-python.git";
|
||||
rev = "v${version}";
|
||||
sha256 = "088cksq59jxkkzbvmwl8jw9v2k3zibwksl7j57yb51bxaa2sa1cx";
|
||||
sha256 = "0jj6b2nlx7qldwbvixz74abn3p0sq4lkf6ak74vynrv5xvlycb9v";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
|
|
|
@ -1,11 +1,18 @@
|
|||
{ stdenv, appleDerivation, xcbuildHook }:
|
||||
{ stdenv, appleDerivation, xcbuildHook, llvmPackages }:
|
||||
|
||||
appleDerivation {
|
||||
nativeBuildInputs = [ xcbuildHook ];
|
||||
|
||||
patchPhase = ''
|
||||
patches = [
|
||||
# The following copied from
|
||||
# https://github.com/Homebrew/homebrew-core/commit/712ed3e948868e17f96b7e59972b5f45d4faf688
|
||||
# is needed to build libvirt.
|
||||
./rpcgen-support-hyper-and-quad-types.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace rpcgen/rpc_main.c \
|
||||
--replace "/usr/bin/cpp" "${stdenv.cc}/bin/cpp"
|
||||
--replace "/usr/bin/cpp" "${llvmPackages.clang-unwrapped}/bin/clang-cpp"
|
||||
'';
|
||||
|
||||
# temporary install phase until xcodebuild has "install" support
|
||||
|
|
|
@ -0,0 +1,66 @@
|
|||
diff --git a/rpcgen/rpc_parse.c b/rpcgen/rpc_parse.c
|
||||
index 52edc9f..db0c1f1 100644
|
||||
--- a/rpcgen/rpc_parse.c
|
||||
+++ b/rpcgen/rpc_parse.c
|
||||
@@ -580,6 +580,10 @@ get_type(prefixp, typep, dkind)
|
||||
*typep = "long";
|
||||
(void) peekscan(TOK_INT, &tok);
|
||||
break;
|
||||
+ case TOK_HYPER:
|
||||
+ *typep = "int64_t";
|
||||
+ (void) peekscan(TOK_INT, &tok);
|
||||
+ break;
|
||||
case TOK_VOID:
|
||||
if (dkind != DEF_UNION && dkind != DEF_PROGRAM) {
|
||||
error("voids allowed only inside union and program definitions with one argument");
|
||||
@@ -592,6 +596,7 @@ get_type(prefixp, typep, dkind)
|
||||
case TOK_INT:
|
||||
case TOK_FLOAT:
|
||||
case TOK_DOUBLE:
|
||||
+ case TOK_QUAD:
|
||||
case TOK_BOOL:
|
||||
*typep = tok.str;
|
||||
break;
|
||||
@@ -622,6 +627,11 @@ unsigned_dec(typep)
|
||||
*typep = "u_long";
|
||||
(void) peekscan(TOK_INT, &tok);
|
||||
break;
|
||||
+ case TOK_HYPER:
|
||||
+ get_token(&tok);
|
||||
+ *typep = "u_int64_t";
|
||||
+ (void) peekscan(TOK_INT, &tok);
|
||||
+ break;
|
||||
case TOK_INT:
|
||||
get_token(&tok);
|
||||
*typep = "u_int";
|
||||
diff --git a/rpcgen/rpc_scan.c b/rpcgen/rpc_scan.c
|
||||
index a8df441..4130107 100644
|
||||
--- a/rpcgen/rpc_scan.c
|
||||
+++ b/rpcgen/rpc_scan.c
|
||||
@@ -419,8 +419,10 @@ static token symbols[] = {
|
||||
{TOK_UNSIGNED, "unsigned"},
|
||||
{TOK_SHORT, "short"},
|
||||
{TOK_LONG, "long"},
|
||||
+ {TOK_HYPER, "hyper"},
|
||||
{TOK_FLOAT, "float"},
|
||||
{TOK_DOUBLE, "double"},
|
||||
+ {TOK_QUAD, "quadruple"},
|
||||
{TOK_STRING, "string"},
|
||||
{TOK_PROGRAM, "program"},
|
||||
{TOK_VERSION, "version"},
|
||||
diff --git a/rpcgen/rpc_scan.h b/rpcgen/rpc_scan.h
|
||||
index bac2be4..e4c57c8 100644
|
||||
--- a/rpcgen/rpc_scan.h
|
||||
+++ b/rpcgen/rpc_scan.h
|
||||
@@ -66,9 +66,11 @@ enum tok_kind {
|
||||
TOK_INT,
|
||||
TOK_SHORT,
|
||||
TOK_LONG,
|
||||
+ TOK_HYPER,
|
||||
TOK_UNSIGNED,
|
||||
TOK_FLOAT,
|
||||
TOK_DOUBLE,
|
||||
+ TOK_QUAD,
|
||||
TOK_OPAQUE,
|
||||
TOK_CHAR,
|
||||
TOK_STRING,
|
Loading…
Reference in a new issue