Merge pull request #99043 from basvandijk/libvirt-6.6.0-staging

libvirt: 6.3.0 -> 6.6.0
This commit is contained in:
Bas van Dijk 2020-10-04 22:59:31 +02:00 committed by GitHub
commit d1e26fd696
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 104 additions and 135 deletions

View File

@ -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

View File

@ -4,7 +4,7 @@
, iproute, iptables, readline, lvm2, utillinux, systemd, libpciaccess, gettext , iproute, iptables, readline, lvm2, utillinux, systemd, libpciaccess, gettext
, libtasn1, ebtables, libgcrypt, yajl, pmutils, libcap_ng, libapparmor , libtasn1, ebtables, libgcrypt, yajl, pmutils, libcap_ng, libapparmor
, dnsmasq, libnl, libpcap, libxslt, xhtml1, numad, numactl, perlPackages , 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 , enableXen ? false, xen ? null
, enableIscsi ? false, openiscsi , enableIscsi ? false, openiscsi
, enableCeph ? false, ceph , enableCeph ? false, ceph
@ -17,34 +17,38 @@ let
buildFromTarball = stdenv.isDarwin; buildFromTarball = stdenv.isDarwin;
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "libvirt"; pname = "libvirt";
version = "6.3.0"; version = "6.6.0";
src = src =
if buildFromTarball then if buildFromTarball then
fetchurl { fetchurl {
url = "http://libvirt.org/sources/${pname}-${version}.tar.xz"; url = "https://libvirt.org/sources/${pname}-${version}.tar.xz";
sha256 = "1xcng497hs1gary3pz3fp590a4r1kqs4d0d8k5p370j0scw981kl"; sha256 = "1y8y13zvh820f4b15287wb77wq7ra7kbfnpblzhm1dki5pfjvrcl";
} }
else else
fetchgit { fetchgit {
url = "git://libvirt.org/libvirt.git"; url = "https://gitlab.com/libvirt/libvirt.git";
rev = "v${version}"; rev = "v${version}";
sha256 = "129b3p72jlb40dsidak3nvpssv75xx2v99y63gzp5k074fp8y8x4"; sha256 = "09hsbm2qmx0jfmm418rf5lx374g85bwgg0kzlga62x5180jhsssn";
fetchSubmodules = true; fetchSubmodules = true;
}; };
patches = [ nativeBuildInputs = [
./0001-Fix-build-with-libtirpc.patch 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 = [ buildInputs = [
libxml2 gnutls perl python2 readline gettext libtasn1 libgcrypt yajl 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 [ ] ++ optionals stdenv.isLinux [
libpciaccess lvm2 utillinux systemd libnl numad zfs 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) [ ] ++ optionals (enableXen && stdenv.isLinux && stdenv.isx86_64) [
xen xen
] ++ optionals enableIscsi [ ] ++ optionals enableIscsi [
@ -70,7 +74,7 @@ in stdenv.mkDerivation rec {
dontAddDisableDepTrack = true; dontAddDisableDepTrack = true;
configureFlags = [ configureFlags = [
"--with-runstatedir=/run" # TODO: remove when autoconf 1.70 is released "--with-runstatedir=/run" # TODO: remove when autoconf 2.70 is released
"--localstatedir=/var" "--localstatedir=/var"
"--sysconfdir=/var/lib" "--sysconfdir=/var/lib"
"--with-libpcap" "--with-libpcap"
@ -130,10 +134,8 @@ in stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
NIX_CFLAGS_COMPILE = "-fno-stack-protector";
meta = { meta = {
homepage = "http://libvirt.org/"; homepage = "https://libvirt.org/";
repositories.git = "git://libvirt.org/libvirt.git"; repositories.git = "git://libvirt.org/libvirt.git";
description = '' description = ''
A toolkit to interact with the virtualization capabilities of recent A toolkit to interact with the virtualization capabilities of recent

View File

@ -1,13 +1,14 @@
{ stdenv, buildPythonPackage, fetchgit, pkgconfig, lxml, libvirt, nose }: { stdenv, buildPythonPackage, fetchFromGitLab, pkgconfig, lxml, libvirt, nose }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "libvirt"; pname = "libvirt";
version = "6.3.0"; version = "6.6.0";
src = assert version == libvirt.version; fetchgit { src = assert version == libvirt.version; fetchFromGitLab {
url = "git://libvirt.org/libvirt-python.git"; owner = "libvirt";
repo = "libvirt-python";
rev = "v${version}"; rev = "v${version}";
sha256 = "088cksq59jxkkzbvmwl8jw9v2k3zibwksl7j57yb51bxaa2sa1cx"; sha256 = "0jj6b2nlx7qldwbvixz74abn3p0sq4lkf6ak74vynrv5xvlycb9v";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
@ -19,7 +20,7 @@ buildPythonPackage rec {
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = "http://www.libvirt.org/"; homepage = "https://libvirt.org/python.html";
description = "libvirt Python bindings"; description = "libvirt Python bindings";
license = licenses.lgpl2; license = licenses.lgpl2;
maintainers = [ maintainers.fpletz ]; maintainers = [ maintainers.fpletz ];

View File

@ -1,11 +1,18 @@
{ stdenv, appleDerivation, xcbuildHook }: { stdenv, appleDerivation, xcbuildHook, llvmPackages }:
appleDerivation { appleDerivation {
nativeBuildInputs = [ xcbuildHook ]; 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 \ 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 # temporary install phase until xcodebuild has "install" support

View File

@ -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,

View File

@ -18419,10 +18419,9 @@ let
SysVirt = buildPerlModule rec { SysVirt = buildPerlModule rec {
pname = "Sys-Virt"; pname = "Sys-Virt";
version = "6.3.0"; version = "6.3.0";
src = assert version == pkgs.libvirt.version; fetchgit { src = fetchurl {
url = "git://libvirt.org/libvirt-perl.git"; url = "mirror://cpan/authors/id/D/DA/DANBERR/Sys-Virt-v6.3.0.tar.gz";
rev = "v${version}"; sha256 = "6333fe3c554322fec5a3e1890b08a4ea4f39b0fbb506b3592688a5785a488f39";
sha256 = "0m75g0kf2dmllx5c1wxzszm1zakiqjighcsjbgq66674pvqf5mk7";
}; };
nativeBuildInputs = [ pkgs.pkgconfig ]; nativeBuildInputs = [ pkgs.pkgconfig ];
buildInputs = [ pkgs.libvirt CPANChanges TestPod TestPodCoverage XMLXPath ]; buildInputs = [ pkgs.libvirt CPANChanges TestPod TestPodCoverage XMLXPath ];