about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/libvirt
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2021-09-13 11:53:06 +0000
committerAlyssa Ross <hi@alyssa.is>2021-09-13 17:18:49 +0000
commitc3e005913d59b8ad64004e60888a71816688af1f (patch)
treef65b32f0d16acaa40f2ee82ac736d150de4b6cf5 /nixpkgs/pkgs/development/libraries/libvirt
parent1c8034da05499ca3d999f57ba1f6b235e7711ee1 (diff)
parentdb88608d8c811a93b74c99cfa1224952afc78200 (diff)
downloadnixlib-c3e005913d59b8ad64004e60888a71816688af1f.tar
nixlib-c3e005913d59b8ad64004e60888a71816688af1f.tar.gz
nixlib-c3e005913d59b8ad64004e60888a71816688af1f.tar.bz2
nixlib-c3e005913d59b8ad64004e60888a71816688af1f.tar.lz
nixlib-c3e005913d59b8ad64004e60888a71816688af1f.tar.xz
nixlib-c3e005913d59b8ad64004e60888a71816688af1f.tar.zst
nixlib-c3e005913d59b8ad64004e60888a71816688af1f.zip
Merge commit 'db88608d8c811a93b74c99cfa1224952afc78200'
Conflicts:
	nixpkgs/nixos/modules/config/update-users-groups.pl
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/libvirt')
-rw-r--r--nixpkgs/pkgs/development/libraries/libvirt/0002-meson-patch-ch-install-prefix.patch14
-rw-r--r--nixpkgs/pkgs/development/libraries/libvirt/default.nix278
2 files changed, 200 insertions, 92 deletions
diff --git a/nixpkgs/pkgs/development/libraries/libvirt/0002-meson-patch-ch-install-prefix.patch b/nixpkgs/pkgs/development/libraries/libvirt/0002-meson-patch-ch-install-prefix.patch
new file mode 100644
index 000000000000..ae97c6455c6b
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libvirt/0002-meson-patch-ch-install-prefix.patch
@@ -0,0 +1,14 @@
+diff --git a/src/ch/meson.build b/src/ch/meson.build
+index e34974d56c..4767763c2c 100644
+--- a/src/ch/meson.build
++++ b/src/ch/meson.build
+@@ -68,7 +68,7 @@ if conf.has('WITH_CH')
+   }
+ 
+   virt_install_dirs += [
+-    localstatedir / 'lib' / 'libvirt' / 'ch',
+-    runstatedir / 'libvirt' / 'ch',
++    install_prefix + localstatedir / 'lib' / 'libvirt' / 'ch',
++    install_prefix + runstatedir / 'libvirt' / 'ch',
+   ]
+ endif
diff --git a/nixpkgs/pkgs/development/libraries/libvirt/default.nix b/nixpkgs/pkgs/development/libraries/libvirt/default.nix
index 28b67a801989..2d13b993fd28 100644
--- a/nixpkgs/pkgs/development/libraries/libvirt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libvirt/default.nix
@@ -1,15 +1,66 @@
-{ lib, stdenv, fetchurl, fetchgit
-, makeWrapper, autoreconfHook, fetchpatch
-, coreutils, libxml2, gnutls, perl, python3, attr, glib, docutils
-, iproute2, readline, lvm2, util-linux, systemd, libpciaccess, gettext
-, libtasn1, iptables, 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, darwin
-, meson, ninja, audit, cmake, bash-completion, pkg-config
-, enableXen ? false, xen ? null
-, enableIscsi ? false, openiscsi
-, enableCeph ? false, ceph
-, enableGlusterfs ? false, glusterfs
+{ lib
+, stdenv
+, fetchurl
+, fetchFromGitLab
+, makeWrapper
+, autoreconfHook
+, fetchpatch
+, coreutils
+, libxml2
+, gnutls
+, perl
+, python3
+, attr
+, glib
+, docutils
+, iproute2
+, readline
+, lvm2
+, util-linux
+, systemd
+, libpciaccess
+, gettext
+, libtasn1
+, iptables
+, 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
+, darwin
+, meson
+, ninja
+, audit
+, cmake
+, bash-completion
+, pkg-config
+, enableXen ? false
+, xen ? null
+, enableIscsi ? false
+, openiscsi
+, enableCeph ? false
+, ceph
+, enableGlusterfs ? false
+, glusterfs
 }:
 
 with lib;
@@ -30,30 +81,39 @@ let
       ln -sf ${ebtables}/bin/ebtables-legacy $out/bin/ebtables
     '';
   };
-in stdenv.mkDerivation rec {
+in
+stdenv.mkDerivation rec {
   pname = "libvirt";
-  version = "7.0.0";
+  version = "7.7.0";
 
   src =
     if buildFromTarball then
-      fetchurl {
-        url = "https://libvirt.org/sources/${pname}-${version}.tar.xz";
-        sha256 = "12fxkpy7j2qhfxypw9jg3bzdd9xx6vf6x96iy5kjihh89n236f6a";
-      }
+      fetchurl
+        {
+          url = "https://libvirt.org/sources/${pname}-${version}.tar.xz";
+          sha256 = "1cjj48dn4ww13ayicd2g863a5kz0sc5jlbv2991bj54dq6cn0q8v";
+        }
     else
-      fetchgit {
-        url = "https://gitlab.com/libvirt/libvirt.git";
+      fetchFromGitLab {
+        owner = pname;
+        repo = pname;
         rev = "v${version}";
-        sha256 = "0xg9d410008mny73r2cp5ipghqpk0gz9gy7j32vcfk691dq75b3c";
+        sha256 = "sha256-gv/tORDlzZP3L3YcU6/YPEpqHQSLzEWa6kEX8EzZM28=";
         fetchSubmodules = true;
       };
 
   patches = [
     ./0001-meson-patch-in-an-install-prefix-for-building-on-nix.patch
+    ./0002-meson-patch-ch-install-prefix.patch
   ];
 
   nativeBuildInputs = [
-    ninja meson cmake makeWrapper pkg-config docutils
+    ninja
+    meson
+    cmake
+    makeWrapper
+    pkg-config
+    docutils
   ] ++ optional (!stdenv.isDarwin) [
     rpcsvc-proto
   ] ++ optionals stdenv.isDarwin [
@@ -61,12 +121,39 @@ in stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    bash-completion pkg-config
-    libxml2 gnutls perl python3 readline gettext libtasn1 libgcrypt yajl
-    libxslt xhtml1 perlPackages.XMLXPath curl libpcap glib dbus
+    bash-completion
+    pkg-config
+    libxml2
+    gnutls
+    perl
+    python3
+    readline
+    gettext
+    libtasn1
+    libgcrypt
+    yajl
+    libxslt
+    xhtml1
+    perlPackages.XMLXPath
+    curl
+    libpcap
+    glib
+    dbus
   ] ++ optionals stdenv.isLinux [
-    audit libpciaccess lvm2 util-linux systemd libnl numad zfs
-    libapparmor libcap_ng numactl attr parted libtirpc
+    audit
+    libpciaccess
+    lvm2
+    util-linux
+    systemd
+    libnl
+    numad
+    zfs
+    libapparmor
+    libcap_ng
+    numactl
+    attr
+    parted
+    libtirpc
   ] ++ optionals (enableXen && stdenv.isLinux && stdenv.isx86_64) [
     xen
   ] ++ optionals enableIscsi [
@@ -76,77 +163,84 @@ in stdenv.mkDerivation rec {
   ] ++ optionals enableGlusterfs [
     glusterfs
   ] ++ optionals stdenv.isDarwin [
-    libiconv gmp
+    libiconv
+    gmp
   ];
 
-  preConfigure = let
-    overrides = {
-      QEMU_BRIDGE_HELPER = "/run/wrappers/bin/qemu-bridge-helper";
-      QEMU_PR_HELPER = "/run/libvirt/nix-helpers/qemu-pr-helper";
-    };
-    patchBuilder = var: value: ''
-      sed -i meson.build -e "s|conf.set_quoted('${var}',.*|conf.set_quoted('${var}','${value}')|"
-    '';
-  in ''
-    PATH=${lib.makeBinPath ([ dnsmasq ] ++ optionals stdenv.isLinux [ iproute2 iptables ebtables-compat lvm2 systemd numad ] ++ optionals enableIscsi [ openiscsi ])}:$PATH
-    # the path to qemu-kvm will be stored in VM's .xml and .save files
-    # do not use "''${qemu_kvm}/bin/qemu-kvm" to avoid bound VMs to particular qemu derivations
-    substituteInPlace src/lxc/lxc_conf.c \
-      --replace 'lxc_path,' '"/run/libvirt/nix-emulators/libvirt_lxc",'
-    patchShebangs .
-  ''
-  + (lib.concatStringsSep "\n" (lib.mapAttrsToList patchBuilder overrides));
+  preConfigure =
+    let
+      overrides = {
+        QEMU_BRIDGE_HELPER = "/run/wrappers/bin/qemu-bridge-helper";
+        QEMU_PR_HELPER = "/run/libvirt/nix-helpers/qemu-pr-helper";
+      };
+      patchBuilder = var: value: ''
+        sed -i meson.build -e "s|conf.set_quoted('${var}',.*|conf.set_quoted('${var}','${value}')|"
+      '';
+    in
+    ''
+      PATH=${lib.makeBinPath ([ dnsmasq ] ++ optionals stdenv.isLinux [ iproute2 iptables ebtables-compat lvm2 systemd numad ] ++ optionals enableIscsi [ openiscsi ])}:$PATH
+      # the path to qemu-kvm will be stored in VM's .xml and .save files
+      # do not use "''${qemu_kvm}/bin/qemu-kvm" to avoid bound VMs to particular qemu derivations
+      substituteInPlace src/lxc/lxc_conf.c \
+        --replace 'lxc_path,' '"/run/libvirt/nix-emulators/libvirt_lxc",'
+      patchShebangs .
+    ''
+    + (lib.concatStringsSep "\n" (lib.mapAttrsToList patchBuilder overrides));
 
   mesonAutoFeatures = "auto";
 
-  mesonFlags = let
-    opt = option: enable: "-D${option}=${if enable then "enabled" else "disabled"}";
-  in [
-    "--sysconfdir=/var/lib"
-    "-Dinstall_prefix=${placeholder "out"}"
-    "-Dlocalstatedir=/var"
-    "-Drunstatedir=/run"
-    "-Dlibpcap=enabled"
-    "-Ddriver_qemu=enabled"
-    "-Ddriver_vmware=enabled"
-    "-Ddriver_vbox=enabled"
-    "-Ddriver_test=enabled"
-    "-Ddriver_esx=enabled"
-    "-Ddriver_remote=enabled"
-    "-Dpolkit=enabled"
-    (opt "storage_iscsi" enableIscsi)
-  ] ++ optionals stdenv.isLinux [
-    (opt "storage_zfs" (zfs != null))
-    "-Dattr=enabled"
-    "-Dapparmor=enabled"
-    "-Dsecdriver_apparmor=enabled"
-    "-Dnumad=enabled"
-    "-Dstorage_disk=enabled"
-    (opt "glusterfs" enableGlusterfs)
-    (opt "storage_rbd" enableCeph)
-  ] ++ optionals stdenv.isDarwin [
-    "-Dinit_script=none"
-  ];
+  mesonFlags =
+    let
+      opt = option: enable: "-D${option}=${if enable then "enabled" else "disabled"}";
+    in
+    [
+      "--sysconfdir=/var/lib"
+      "-Dinstall_prefix=${placeholder "out"}"
+      "-Dlocalstatedir=/var"
+      "-Drunstatedir=/run"
+      "-Dlibpcap=enabled"
+      "-Ddriver_qemu=enabled"
+      "-Ddriver_vmware=enabled"
+      "-Ddriver_vbox=enabled"
+      "-Ddriver_test=enabled"
+      "-Ddriver_esx=enabled"
+      "-Ddriver_remote=enabled"
+      "-Dpolkit=enabled"
+      (opt "storage_iscsi" enableIscsi)
+    ] ++ optionals stdenv.isLinux [
+      (opt "storage_zfs" (zfs != null))
+      "-Dattr=enabled"
+      "-Dapparmor=enabled"
+      "-Dsecdriver_apparmor=enabled"
+      "-Dnumad=enabled"
+      "-Dstorage_disk=enabled"
+      (opt "glusterfs" enableGlusterfs)
+      (opt "storage_rbd" enableCeph)
+    ] ++ optionals stdenv.isDarwin [
+      "-Dinit_script=none"
+    ];
 
-  postInstall = let
-    # Keep the legacy iptables binary for now for backwards compatibility (comment on #109332)
-    binPath = [ iptables ebtables-compat iproute2 pmutils numad numactl bridge-utils dmidecode dnsmasq ] ++ optionals enableIscsi [ openiscsi ];
-  in ''
-    substituteInPlace $out/libexec/libvirt-guests.sh \
-      --replace 'ON_BOOT="start"'       'ON_BOOT=''${ON_BOOT:-start}' \
-      --replace 'ON_SHUTDOWN="suspend"' 'ON_SHUTDOWN=''${ON_SHUTDOWN:-suspend}' \
-      --replace "$out/bin"              '${gettext}/bin' \
-      --replace 'lock/subsys'           'lock' \
-      --replace 'gettext.sh'            'gettext.sh
-  # Added in nixpkgs:
-  gettext() { "${gettext}/bin/gettext" "$@"; }
-  '
-  '' + optionalString stdenv.isLinux ''
-    substituteInPlace $out/lib/systemd/system/libvirtd.service --replace /bin/kill ${coreutils}/bin/kill
-    rm $out/lib/systemd/system/{virtlockd,virtlogd}.*
-    wrapProgram $out/sbin/libvirtd \
-      --prefix PATH : /run/libvirt/nix-emulators:${makeBinPath binPath}
-  '';
+  postInstall =
+    let
+      # Keep the legacy iptables binary for now for backwards compatibility (comment on #109332)
+      binPath = [ iptables ebtables-compat iproute2 pmutils numad numactl bridge-utils dmidecode dnsmasq ] ++ optionals enableIscsi [ openiscsi ];
+    in
+    ''
+        substituteInPlace $out/libexec/libvirt-guests.sh \
+          --replace 'ON_BOOT="start"'       'ON_BOOT=''${ON_BOOT:-start}' \
+          --replace 'ON_SHUTDOWN="suspend"' 'ON_SHUTDOWN=''${ON_SHUTDOWN:-suspend}' \
+          --replace "$out/bin"              '${gettext}/bin' \
+          --replace 'lock/subsys'           'lock' \
+          --replace 'gettext.sh'            'gettext.sh
+      # Added in nixpkgs:
+      gettext() { "${gettext}/bin/gettext" "$@"; }
+      '
+    '' + optionalString stdenv.isLinux ''
+      substituteInPlace $out/lib/systemd/system/libvirtd.service --replace /bin/kill ${coreutils}/bin/kill
+      rm $out/lib/systemd/system/{virtlockd,virtlogd}.*
+      wrapProgram $out/sbin/libvirtd \
+        --prefix PATH : /run/libvirt/nix-emulators:${makeBinPath binPath}
+    '';
 
   meta = {
     homepage = "https://libvirt.org/";