diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/libvirt/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/libvirt/default.nix | 58 |
1 files changed, 37 insertions, 21 deletions
diff --git a/nixpkgs/pkgs/development/libraries/libvirt/default.nix b/nixpkgs/pkgs/development/libraries/libvirt/default.nix index cda7c091908d..0142ac4505f9 100644 --- a/nixpkgs/pkgs/development/libraries/libvirt/default.nix +++ b/nixpkgs/pkgs/development/libraries/libvirt/default.nix @@ -26,6 +26,7 @@ , ninja , perl , perlPackages +, polkit , pkg-config , pmutils , python3 @@ -34,6 +35,7 @@ , stdenv , xhtml1 , yajl +, writeScript # Linux , acl ? null @@ -95,6 +97,8 @@ let ] ++ optionals enableIscsi [ libiscsi openiscsi + ] ++ optionals enableZfs [ + zfs ]); in @@ -109,28 +113,18 @@ stdenv.mkDerivation rec { # NOTE: You must also bump: # <nixpkgs/pkgs/development/python-modules/libvirt/default.nix> # SysVirt in <nixpkgs/pkgs/top-level/perl-packages.nix> - version = "8.1.0"; + version = "8.5.0"; - src = - if isDarwin then - fetchurl - { - url = "https://libvirt.org/sources/${pname}-${version}.tar.xz"; - sha256 = "sha256-PGxDvs/+s0o/OXxhYgaqaaiT/4v16CCDk8hOjnU1KTQ="; - } - else - fetchFromGitLab - { - owner = pname; - repo = pname; - rev = "v${version}"; - sha256 = "sha256-nk8pBlss+g4EMy+RnAOyz6YlGGvlBvl5aBpcytsK1wY="; - fetchSubmodules = true; - }; + src = fetchFromGitLab { + owner = pname; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-x6TnMFYjcUSdQZd9ctN2hITCAl9TGVb7/qAObGb9xMk="; + fetchSubmodules = true; + }; patches = [ ./0001-meson-patch-in-an-install-prefix-for-building-on-nix.patch - ./0001-qemu-segmentation-fault-in-virtqemud-executing-qemuD.patch ]; # remove some broken tests @@ -141,9 +135,13 @@ stdenv.mkDerivation rec { sed -i '0,/qemuxml2argvtest/{/qemuxml2argvtest/d;}' tests/meson.build '' + optionalString isDarwin '' sed -i '/qemucapabilitiestest/d' tests/meson.build + sed -i '/vircryptotest/d' tests/meson.build + '' + optionalString (isDarwin && isx86_64) '' + sed -i '/qemucaps2xmltest/d' tests/meson.build + sed -i '/qemuhotplugtest/d' tests/meson.build + sed -i '/virnetdaemontest/d' tests/meson.build ''; - nativeBuildInputs = [ meson @@ -227,6 +225,9 @@ stdenv.mkDerivation rec { --replace "gmake" "make" \ --replace "ggrep" "grep" + substituteInPlace src/util/virpolkit.h \ + --replace '"/usr/bin/pkttyagent"' '"${if isLinux then polkit.bin else "/usr"}/bin/pkttyagent"' + patchShebangs . '' + (lib.concatStringsSep "\n" (lib.mapAttrsToList patchBuilder overrides)); @@ -271,7 +272,7 @@ stdenv.mkDerivation rec { (feat "numactl" isLinux) (feat "numad" isLinux) (feat "pciaccess" isLinux) - (feat "polkit" true) + (feat "polkit" isLinux) (feat "readline" true) (feat "secdriver_apparmor" isLinux) (feat "tests" true) @@ -323,12 +324,27 @@ stdenv.mkDerivation rec { gettext() { "${gettext}/bin/gettext" "$@"; } ' '' + optionalString isLinux '' - substituteInPlace $out/lib/systemd/system/libvirtd.service --replace /bin/kill ${coreutils}/bin/kill + for f in $out/lib/systemd/system/*.service ; do + substituteInPlace $f --replace /bin/kill ${coreutils}/bin/kill + done rm $out/lib/systemd/system/{virtlockd,virtlogd}.* wrapProgram $out/sbin/libvirtd \ --prefix PATH : /run/libvirt/nix-emulators:${binPath} ''; + passthru.updateScript = writeScript "update-libvirt" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p curl jq common-updater-scripts + + set -eu -o pipefail + + libvirtVersion=$(curl https://gitlab.com/api/v4/projects/192693/repository/tags | jq -r '.[].name|select(. | contains("rc") | not)' | head -n1 | sed "s/v//g") + sysvirtVersion=$(curl https://gitlab.com/api/v4/projects/192677/repository/tags | jq -r '.[].name|select(. | contains("rc") | not)' | head -n1 | sed "s/v//g") + update-source-version ${pname} "$libvirtVersion" + update-source-version python3Packages.${pname} "$libvirtVersion" + update-source-version perlPackages.SysVirt "$sysvirtVersion" --file="pkgs/top-level/perl-packages.nix" + ''; + meta = { homepage = "https://libvirt.org/"; description = '' |