diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/virtualization')
23 files changed, 590 insertions, 125 deletions
diff --git a/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/default.nix b/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/default.nix index 955d609d7a28..b381d3ccca17 100644 --- a/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/default.nix +++ b/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/default.nix @@ -2,19 +2,21 @@ rustPlatform.buildRustPackage rec { pname = "cloud-hypervisor"; - version = "21.0"; + version = "22.1"; src = fetchFromGitHub { owner = "cloud-hypervisor"; repo = pname; rev = "v${version}"; - sha256 = "00b0ij9sfv7zsrgwrcj2rzpy1z8bp0m0lmzjp433xzpcgcnzw3w5"; + sha256 = "sha256-KWCGcGB4HCpV7uSM4otQhSGEzQ+1jQip2fiAysNN54k="; }; nativeBuildInputs = [ pkg-config ]; buildInputs = [ openssl ] ++ lib.optional stdenv.isAarch64 dtc; - cargoSha256 = "0lf7bb468s2ic9vabx954i46605gf7c6064vvwqvz7djk30z0y0d"; + cargoSha256 = "sha256-R70H1R9jFnQyOLI4UNuRzpOAAnGSBGpiHFKbxP2472o="; + + OPENSSL_NO_VENDOR = true; # Integration tests require root. cargoTestFlags = [ "--bins" ]; diff --git a/nixpkgs/pkgs/applications/virtualization/colima/default.nix b/nixpkgs/pkgs/applications/virtualization/colima/default.nix index e83fc4ef5018..980955fcda65 100644 --- a/nixpkgs/pkgs/applications/virtualization/colima/default.nix +++ b/nixpkgs/pkgs/applications/virtualization/colima/default.nix @@ -8,13 +8,13 @@ buildGoModule rec { pname = "colima"; - version = "0.3.3"; + version = "0.3.4"; src = fetchFromGitHub { owner = "abiosoft"; repo = pname; rev = "v${version}"; - sha256 = "sha256-nov+DIaeYaRJy7Cz1hcKJUA88IKlZ4z/tn4WASZjxLI="; + sha256 = "sha256-g7q2DmtyArtW7Ii2XF5umXQ0+BlCSa1Q7VNNuIuX65k="; }; nativeBuildInputs = [ installShellFiles makeWrapper ]; diff --git a/nixpkgs/pkgs/applications/virtualization/containerd/default.nix b/nixpkgs/pkgs/applications/virtualization/containerd/default.nix index aa4a9000d230..281f1f246126 100644 --- a/nixpkgs/pkgs/applications/virtualization/containerd/default.nix +++ b/nixpkgs/pkgs/applications/virtualization/containerd/default.nix @@ -10,13 +10,13 @@ buildGoModule rec { pname = "containerd"; - version = "1.6.0"; + version = "1.6.1"; src = fetchFromGitHub { owner = "containerd"; repo = "containerd"; rev = "v${version}"; - sha256 = "sha256-0Fbmtb7Ec6WcA7ARtgdBK5i7yAq2t3iXtfLb/MZcKJA="; + sha256 = "sha256-NOFDUOypq/1ePM8rdK2cDnH1LsSZJ7eQOzDc5h4/PvY="; }; vendorSha256 = null; diff --git a/nixpkgs/pkgs/applications/virtualization/crun/default.nix b/nixpkgs/pkgs/applications/virtualization/crun/default.nix index 4a2ec178be2e..07e0cb6c533d 100644 --- a/nixpkgs/pkgs/applications/virtualization/crun/default.nix +++ b/nixpkgs/pkgs/applications/virtualization/crun/default.nix @@ -18,6 +18,7 @@ let disabledTests = [ "test_capabilities.py" "test_cwd.py" + "test_delete.py" "test_detach.py" "test_exec.py" "test_hooks.py" @@ -37,13 +38,13 @@ let in stdenv.mkDerivation rec { pname = "crun"; - version = "1.4.2"; + version = "1.4.3"; src = fetchFromGitHub { owner = "containers"; repo = pname; rev = version; - sha256 = "sha256-zGtHO8CgpbXTh8nZ6WA0ocakzLjL/PW2IULI5QSEPVI="; + sha256 = "sha256-5q8HirGOPsbaJ7JoLa4DRYkZX3kucWOZ633nzx4zVhg="; fetchSubmodules = true; }; diff --git a/nixpkgs/pkgs/applications/virtualization/distrobox/default.nix b/nixpkgs/pkgs/applications/virtualization/distrobox/default.nix new file mode 100644 index 000000000000..8e9ea890a9b6 --- /dev/null +++ b/nixpkgs/pkgs/applications/virtualization/distrobox/default.nix @@ -0,0 +1,38 @@ +{ stdenvNoCC, lib, fetchFromGitHub }: + +stdenvNoCC.mkDerivation rec { + pname = "distrobox"; + version = "1.2.13"; + + src = fetchFromGitHub { + owner = "89luca89"; + repo = pname; + rev = version; + sha256 = "047mrhsfi88mgwylnnyxg6xa7hjjrajn2pf7vfmb6161myqybvfy"; + }; + + dontConfigure = true; + dontBuild = true; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + ./install -p $out/bin + + runHook postInstall + ''; + + meta = with lib; { + description = "Wrapper around podman or docker to create and start containers"; + longDescription = '' + Use any linux distribution inside your terminal. Enable both backward and + forward compatibility with software and freedom to use whatever distribution + you’re more comfortable with + ''; + homepage = "https://distrobox.privatedns.org/"; + license = licenses.gpl3Only; + platforms = platforms.all; + maintainers = with maintainers; [ atila ]; + }; +} diff --git a/nixpkgs/pkgs/applications/virtualization/docker-slim/default.nix b/nixpkgs/pkgs/applications/virtualization/docker-slim/default.nix index cd8a1f5041aa..3bc0f225de6e 100644 --- a/nixpkgs/pkgs/applications/virtualization/docker-slim/default.nix +++ b/nixpkgs/pkgs/applications/virtualization/docker-slim/default.nix @@ -6,7 +6,7 @@ buildGoPackage rec { pname = "docker-slim"; - version = "1.37.3"; + version = "1.37.4"; goPackagePath = "github.com/docker-slim/docker-slim"; @@ -14,7 +14,7 @@ buildGoPackage rec { owner = "docker-slim"; repo = "docker-slim"; rev = version; - sha256 = "sha256-jzwQ3nrhLDiQXcVkPiXrRAmpLQOD8ILBnoCEUiEbxzw="; + sha256 = "sha256-iz1V+wcrJf0grOe81kwbXPBqnvXpHnh7IMDdugaUOH0="; }; subPackages = [ "cmd/docker-slim" "cmd/docker-slim-sensor" ]; diff --git a/nixpkgs/pkgs/applications/virtualization/docker/buildx.nix b/nixpkgs/pkgs/applications/virtualization/docker/buildx.nix index a149b5e4b334..440d094b4301 100644 --- a/nixpkgs/pkgs/applications/virtualization/docker/buildx.nix +++ b/nixpkgs/pkgs/applications/virtualization/docker/buildx.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "docker-buildx"; - version = "0.7.1"; + version = "0.8.0"; src = fetchFromGitHub { owner = "docker"; repo = "buildx"; rev = "v${version}"; - sha256 = "sha256-5EV0Rw1+ufxQ1wmQ0EJXQ7HVtXVbB4do/tet0QFRi08="; + sha256 = "sha256-PSqVe4m2na6BjNxIKKZG1ja6zEzwI2AwgJlaMfaW2EM="; }; vendorSha256 = null; diff --git a/nixpkgs/pkgs/applications/virtualization/docker/compose.nix b/nixpkgs/pkgs/applications/virtualization/docker/compose.nix index 35856eae01c8..e2a3f1e1077d 100644 --- a/nixpkgs/pkgs/applications/virtualization/docker/compose.nix +++ b/nixpkgs/pkgs/applications/virtualization/docker/compose.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "docker-compose"; - version = "2.2.3"; + version = "2.3.3"; src = fetchFromGitHub { owner = "docker"; repo = "compose"; rev = "v${version}"; - sha256 = "sha256-c6rwRFJ/9moukd56qrmHxOeULhSPHCU0Cj+vw4TQ8+Q="; + sha256 = "sha256-PFR7EcRkqn/d6gYlMNN36nRIslYEN0JFSbFU9niGc+Y="; }; - vendorSha256 = "sha256-W+bcjUXPZjldjhgaGsUKS1vSvS3yP/kH0QqwyvhL7Ww="; + vendorSha256 = "sha256-L6PNKK1ID7ZVX/4sG72wn9ZjWlx0lsNuiBc/EtCN03E="; ldflags = [ "-X github.com/docker/compose/v2/internal.Version=${version}" "-s" "-w" ]; diff --git a/nixpkgs/pkgs/applications/virtualization/firecracker/default.nix b/nixpkgs/pkgs/applications/virtualization/firecracker/default.nix index a3ef59e8e92e..9d35e87f1614 100644 --- a/nixpkgs/pkgs/applications/virtualization/firecracker/default.nix +++ b/nixpkgs/pkgs/applications/virtualization/firecracker/default.nix @@ -1,7 +1,7 @@ { fetchurl, lib, stdenv }: let - version = "0.25.2"; + version = "1.0.0"; suffix = { x86_64-linux = "x86_64"; @@ -22,8 +22,8 @@ stdenv.mkDerivation { sourceRoot = "."; src = dlbin { - x86_64-linux = "sha256-ZzlPq+Q9XfWQJr+7nKS0e6bfKwYNfpMHSiBIKeOr/s4="; - aarch64-linux = "sha256-75UC+HeVUfUk1HRvTJsOHbHHkgr6me1OtxDF7lahf68="; + x86_64-linux = "sha256-yeWVsrvH3yYlS2uH/TkSleHjXvIDnHWcZSvLgV+CGF0="; + aarch64-linux = "sha256-9ggRmijwXE9adVFv5XommgvdpeeWnWUFES+Ep2GrBVo="; }; dontConfigure = true; diff --git a/nixpkgs/pkgs/applications/virtualization/flintlock/default.nix b/nixpkgs/pkgs/applications/virtualization/flintlock/default.nix new file mode 100644 index 000000000000..d258604496eb --- /dev/null +++ b/nixpkgs/pkgs/applications/virtualization/flintlock/default.nix @@ -0,0 +1,49 @@ +{ lib +, cni-plugins +, buildGoModule +, firecracker +, containerd +, runc +, makeWrapper +, fetchFromGitHub +}: + +buildGoModule rec{ + pname = "flintlock"; + version = "0.1.0-alpha.9"; + + src = fetchFromGitHub { + owner = "weaveworks"; + repo = "flintlock"; + rev = "v${version}"; + sha256 = "sha256-Xw3g2wh0fPUknSuAKoJL3jxVZS50wSPZ9Wz05zkTVXM="; + }; + + vendorSha256 = "sha256-EjVlM6AD+O/z6+R5TRBmmRWbrP4C+qyvsnEjwOkDkUE="; + + subPackages = [ "cmd/flintlock-metrics" "cmd/flintlockd" ]; + + ldflags = [ "-s" "-w" "-X github.com/weaveworks/flintlock/internal/version.Version=v${version}" ]; + + nativeBuildInputs = [ + makeWrapper + ]; + + buildInputs = [ + firecracker + ]; + + postInstall = '' + for prog in flintlockd flintlock-metrics; do + wrapProgram "$out/bin/$prog" --prefix PATH : ${lib.makeBinPath [ cni-plugins firecracker containerd runc ]} + done + ''; + + meta = with lib; { + description = "Create and manage the lifecycle of MicroVMs backed by containerd"; + homepage = "https://github.com/weaveworks/flintlock"; + license = licenses.mpl20; + platforms = [ "x86_64-linux" "aarch64-linux" ]; + maintainers = with maintainers; [ techknowlogick ]; + }; +} diff --git a/nixpkgs/pkgs/applications/virtualization/lima/default.nix b/nixpkgs/pkgs/applications/virtualization/lima/default.nix index 4f58f0127166..7feea9b4a348 100644 --- a/nixpkgs/pkgs/applications/virtualization/lima/default.nix +++ b/nixpkgs/pkgs/applications/virtualization/lima/default.nix @@ -8,16 +8,16 @@ buildGoModule rec { pname = "lima"; - version = "0.8.3"; + version = "0.9.0"; src = fetchFromGitHub { owner = "lima-vm"; repo = pname; rev = "v${version}"; - sha256 = "sha256-hzoc5zbdnHHTY04aGn+77lHvPh+KNOPoZmW19YIZHv8="; + sha256 = "sha256-jbWz4HVYR3OEze2fFgG6Tg4p50IL0NStmaa8+GUPkNw="; }; - vendorSha256 = "sha256-eJnwXXYWMaIfM8SW4MtmG4wsPA/9sx4j2AkOd6GpnsY="; + vendorSha256 = "sha256-RX8HfeDVvLUX4Ez2ma04gTl+8+lM7WGNSpmFNnf+5Xs="; nativeBuildInputs = [ makeWrapper installShellFiles ]; diff --git a/nixpkgs/pkgs/applications/virtualization/looking-glass-client/default.nix b/nixpkgs/pkgs/applications/virtualization/looking-glass-client/default.nix index 5d2be06db0a3..60db5708922f 100644 --- a/nixpkgs/pkgs/applications/virtualization/looking-glass-client/default.nix +++ b/nixpkgs/pkgs/applications/virtualization/looking-glass-client/default.nix @@ -49,7 +49,7 @@ stdenv.mkDerivation rec { wayland-protocols ]; - NIX_CFLAGS_COMPILE = "-mavx"; # Fix some sort of AVX compiler problem. + cmakeFlags = [ "-DOPTIMIZE_FOR_NATIVE=OFF" ]; postUnpack = '' echo ${src.rev} > source/VERSION diff --git a/nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix b/nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix index c3721bbe36e5..6018608a3f16 100644 --- a/nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix +++ b/nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix @@ -1,5 +1,5 @@ -{ stdenv, lib, fetchFromGitHub, makeWrapper, autoreconfHook -, bash, fuse, libmspack, openssl, pam, xercesc, icu, libdnet, procps, libtirpc, rpcsvc-proto +{ stdenv, lib, fetchFromGitHub, fetchpatch, makeWrapper, autoreconfHook +, bash, fuse3, libmspack, openssl, pam, xercesc, icu, libdnet, procps, libtirpc, rpcsvc-proto , libX11, libXext, libXinerama, libXi, libXrender, libXrandr, libXtst , pkg-config, glib, gdk-pixbuf-xlib, gtk3, gtkmm3, iproute2, dbus, systemd, which , libdrm, udev @@ -8,13 +8,13 @@ stdenv.mkDerivation rec { pname = "open-vm-tools"; - version = "11.3.5"; + version = "12.0.0"; src = fetchFromGitHub { owner = "vmware"; repo = "open-vm-tools"; rev = "stable-${version}"; - sha256 = "03fahljrijq4ij8a4v8d7806mpf22ppkgr61n5s974g3xfdvpl13"; + sha256 = "sha256-agWTGf8x6bxZ7S5bU2scHt8IdLLe/hZdaEMfHIK9d8U="; }; sourceRoot = "${src.name}/open-vm-tools"; @@ -22,10 +22,24 @@ stdenv.mkDerivation rec { outputs = [ "out" "dev" ]; nativeBuildInputs = [ autoreconfHook makeWrapper pkg-config ]; - buildInputs = [ fuse glib icu libdnet libdrm libmspack libtirpc openssl pam procps rpcsvc-proto udev xercesc ] + buildInputs = [ fuse3 glib icu libdnet libdrm libmspack libtirpc openssl pam procps rpcsvc-proto udev xercesc ] ++ lib.optionals withX [ gdk-pixbuf-xlib gtk3 gtkmm3 libX11 libXext libXinerama libXi libXrender libXrandr libXtst ]; + patches = [ + # glibc 2.35 and GCC 11 & 12 reporting possible array bounds overflow + # Will be fixed in the release after 12.0.0 + (fetchpatch { + url = "https://github.com/vmware/open-vm-tools/commit/de6d129476724668b8903e2a87654f50ba21b1b2.patch"; + sha256 = "1cqhm868g40kcp8qzzwq10zd4bah9ypaw1qawnli5d240mlkpfhh"; + }) + ]; + + prePatch = '' + cd .. + ''; + postPatch = '' + cd open-vm-tools sed -i 's,etc/vmware-tools,''${prefix}/etc/vmware-tools,' Makefile.am sed -i 's,^confdir = ,confdir = ''${prefix},' scripts/Makefile.am sed -i 's,usr/bin,''${prefix}/usr/bin,' scripts/Makefile.am @@ -43,6 +57,7 @@ stdenv.mkDerivation rec { "--without-kernel-modules" "--without-xmlsecurity" "--with-udev-rules-dir=${placeholder "out"}/lib/udev/rules.d" + "--with-fuse=fuse3" ] ++ lib.optional (!withX) "--without-x"; enableParallelBuilding = true; diff --git a/nixpkgs/pkgs/applications/virtualization/podman/default.nix b/nixpkgs/pkgs/applications/virtualization/podman/default.nix index 0dad4d9123dc..7d783b211bbd 100644 --- a/nixpkgs/pkgs/applications/virtualization/podman/default.nix +++ b/nixpkgs/pkgs/applications/virtualization/podman/default.nix @@ -17,20 +17,20 @@ buildGoModule rec { pname = "podman"; - version = "3.4.4"; + version = "4.0.2"; src = fetchFromGitHub { owner = "containers"; repo = "podman"; rev = "v${version}"; - sha256 = "sha256-5Y0+xfoMCe3a6kX+OhmxURZXZLAnrS1t8TFyHqjGCeA="; + sha256 = "sha256-uLpvTnn2EWEI8+5gC3ofMjsZ9O7nLOaaUGGuvSE1gdE="; }; vendorSha256 = null; doCheck = false; - outputs = [ "out" "man" ]; + outputs = [ "out" "man" ] ++ lib.optionals stdenv.isLinux [ "rootlessport" ]; nativeBuildInputs = [ pkg-config go-md2man installShellFiles ]; @@ -47,26 +47,32 @@ buildGoModule rec { buildPhase = '' runHook preBuild patchShebangs . - ${if stdenv.isDarwin - then "make podman-remote" - else "make podman"} + ${if stdenv.isDarwin then '' + make podman-remote # podman-mac-helper uses FHS paths + '' else '' + make bin/podman bin/rootlessport + ''} make docs runHook postBuild ''; installPhase = '' runHook preInstall - '' + lib.optionalString stdenv.isDarwin '' - mv bin/{darwin/podman,podman} - '' + '' - install -Dm555 bin/podman $out/bin/podman - installShellCompletion --bash completions/bash/* - installShellCompletion --fish completions/fish/* - installShellCompletion --zsh completions/zsh/* - MANDIR=$man/share/man make install.man-nobuild - install -Dm644 cni/87-podman-bridge.conflist -t $out/etc/cni/net.d - install -Dm644 contrib/tmpfile/podman.conf -t $out/lib/tmpfiles.d - install -Dm644 contrib/systemd/system/podman.{socket,service} -t $out/lib/systemd/system + mkdir -p {$out/{bin,etc,lib,share},$man} # ensure paths exist for the wrapper + ${if stdenv.isDarwin then '' + mv bin/{darwin/podman,podman} + '' else '' + install -Dm644 cni/87-podman-bridge.conflist -t $out/etc/cni/net.d + install -Dm644 contrib/tmpfile/podman.conf -t $out/lib/tmpfiles.d + for s in contrib/systemd/**/*.in; do + substituteInPlace "$s" --replace "@@PODMAN@@" "podman" # don't use unwrapped binary + done + PREFIX=$out make install.systemd + install -Dm555 bin/rootlessport -t $rootlessport/bin + ''} + install -Dm555 bin/podman -t $out/bin + PREFIX=$out make install.completions + MANDIR=$man/share/man make install.man runHook postInstall ''; @@ -87,9 +93,8 @@ buildGoModule rec { meta = with lib; { homepage = "https://podman.io/"; description = "A program for managing pods, containers and container images"; - changelog = "https://github.com/containers/podman/blob/v${version}/changelog.txt"; + changelog = "https://github.com/containers/podman/blob/v${version}/RELEASE_NOTES.md"; license = licenses.asl20; maintainers = with maintainers; [ marsam ] ++ teams.podman.members; - platforms = platforms.unix; }; } diff --git a/nixpkgs/pkgs/applications/virtualization/podman/wrapper.nix b/nixpkgs/pkgs/applications/virtualization/podman/wrapper.nix index c9ec18593dff..fa3a50bc5357 100644 --- a/nixpkgs/pkgs/applications/virtualization/podman/wrapper.nix +++ b/nixpkgs/pkgs/applications/virtualization/podman/wrapper.nix @@ -1,7 +1,9 @@ { podman-unwrapped , runCommand , makeWrapper +, symlinkJoin , lib +, stdenv , extraPackages ? [] , podman # Docker compat , runc # Default container runtime @@ -13,12 +15,19 @@ , cni-plugins # not added to path , iptables , iproute2 +, catatonit +, gvproxy }: +# do not add qemu to this wrapper, store paths get written to the podman vm config and break when GCed + +# adding aardvark-dns/netavark to `helpersBin` requires changes to the modules and tests + let podman = podman-unwrapped; binPath = lib.makeBinPath ([ + ] ++ lib.optionals stdenv.isLinux [ runc crun conmon @@ -29,6 +38,18 @@ let iproute2 ] ++ extraPackages); + helpersBin = symlinkJoin { + name = "${podman.pname}-helper-binary-wrapper-${podman.version}"; + + # this only works for some binaries, others may need to be be added to `binPath` or in the modules + paths = [ + gvproxy + ] ++ lib.optionals stdenv.isLinux [ + catatonit # added here for the pause image and also set in `containersConf` for `init_path` + podman.rootlessport + ]; + }; + in runCommand podman.name { name = "${podman.pname}-wrapper-${podman.version}"; inherit (podman) pname version passthru; @@ -54,5 +75,6 @@ in runCommand podman.name { ln -s ${podman-unwrapped}/lib $out/lib ln -s ${podman-unwrapped}/share $out/share makeWrapper ${podman-unwrapped}/bin/podman $out/bin/podman \ + --set CONTAINERS_HELPER_BINARY_DIR ${helpersBin}/bin \ --prefix PATH : ${binPath} '' diff --git a/nixpkgs/pkgs/applications/virtualization/qemu/9p-ignore-noatime.patch b/nixpkgs/pkgs/applications/virtualization/qemu/9p-ignore-noatime.patch deleted file mode 100644 index 03e47a57863c..000000000000 --- a/nixpkgs/pkgs/applications/virtualization/qemu/9p-ignore-noatime.patch +++ /dev/null @@ -1,44 +0,0 @@ -commit cdc3e7eeafa9f683214d2c15d52ef384c3de6611 -Author: aszlig <aszlig@nix.build> -Date: Mon Mar 18 13:21:01 2019 +0100 - - 9pfs: Ignore O_NOATIME open flag - - Since Linux 4.19, overlayfs uses the O_NOATIME flag on its lowerdir, - which in turn causes errors when the Nix store is mounted in the guest - because the file owner of the store paths typically don't match the - owner of the QEMU process. - - After submitting a patch to the overlayfs mailing list[1], it turns out - that my patch was incomplete[2] and needs a bit more rework. - - So instead of using an incomplete kernel patch in nixpkgs, which affects - *all* users of overlayfs, not just NixOS VM tests, I decided that for - now it's better to patch QEMU instead. - - The change here really only ignores the O_NOATIME flag so that the - behaviour is similar to what NFS does. From open(2): - - This flag may not be effective on all filesystems. One example is NFS, - where the server maintains the access time. - - This change is therefore only temporary until the final fix lands in the - stable kernel releases. - - [1]: https://www.spinics.net/lists/linux-unionfs/msg06755.html - [2]: https://www.spinics.net/lists/linux-unionfs/msg06756.html - - Signed-off-by: aszlig <aszlig@nix.build> - -diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c -index 55821343e5..0b8425fe18 100644 ---- a/hw/9pfs/9p.c -+++ b/hw/9pfs/9p.c -@@ -127,7 +127,6 @@ static int dotl_to_open_flags(int flags) - { P9_DOTL_LARGEFILE, O_LARGEFILE }, - { P9_DOTL_DIRECTORY, O_DIRECTORY }, - { P9_DOTL_NOFOLLOW, O_NOFOLLOW }, -- { P9_DOTL_NOATIME, O_NOATIME }, - { P9_DOTL_SYNC, O_SYNC }, - }; - diff --git a/nixpkgs/pkgs/applications/virtualization/qemu/allow-virtfs-on-darwin.patch b/nixpkgs/pkgs/applications/virtualization/qemu/allow-virtfs-on-darwin.patch new file mode 100644 index 000000000000..a498d309c233 --- /dev/null +++ b/nixpkgs/pkgs/applications/virtualization/qemu/allow-virtfs-on-darwin.patch @@ -0,0 +1,77 @@ +From 4ca09b7cd1d42eb6b1587fed74cd4d684e31bfbe Mon Sep 17 00:00:00 2001 +From: Keno Fischer <keno@juliacomputing.com> +Date: Sun, 27 Feb 2022 17:35:22 -0500 +Subject: [PATCH] 9p: darwin: meson: Allow VirtFS on Darwin + +To allow VirtFS on darwin, we need to check that pthread_fchdir_np is +available, which has only been available since macOS 10.12. + +Additionally, virtfs_proxy_helper is disabled on Darwin. This patch +series does not currently provide an implementation of the proxy-helper, +but this functionality could be implemented later on. + +Signed-off-by: Keno Fischer <keno@juliacomputing.com> +[Michael Roitzsch: - Rebase for NixOS] +Signed-off-by: Michael Roitzsch <reactorcontrol@icloud.com> +[Will Cohen: - Rebase to master] +Signed-off-by: Will Cohen <wwcohen@gmail.com> +Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> +[Will Cohen: - Add check for pthread_fchdir_np to virtfs + - Add comments to patch commit + - Note that virtfs_proxy_helper does not work + on macOS + - Fully adjust meson virtfs error note to specify + macOS + - Rebase to master] +Signed-off-by: Will Cohen <wwcohen@gmail.com> +Message-Id: <20220227223522.91937-12-wwcohen@gmail.com> +Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> +Acked-by: Christian Schoenebeck <qemu_oss@crudebyte.com> +--- + fsdev/meson.build | 1 + + meson.build | 17 +++++++++++------ + 2 files changed, 12 insertions(+), 6 deletions(-) + +diff --git a/fsdev/meson.build b/fsdev/meson.build +index adf57cc43e..b632b66348 100644 +--- a/fsdev/meson.build ++++ b/fsdev/meson.build +@@ -7,6 +7,7 @@ fsdev_ss.add(when: ['CONFIG_FSDEV_9P'], if_true: files( + 'qemu-fsdev.c', + ), if_false: files('qemu-fsdev-dummy.c')) + softmmu_ss.add_all(when: 'CONFIG_LINUX', if_true: fsdev_ss) ++softmmu_ss.add_all(when: 'CONFIG_DARWIN', if_true: fsdev_ss) + + if have_virtfs_proxy_helper + executable('virtfs-proxy-helper', +diff --git a/meson.build b/meson.build +index 2265fa409a..6d73c02903 100644 +--- a/meson.build ++++ b/meson.build +@@ -1383,12 +1383,17 @@ endif + have_host_block_device = (targetos != 'darwin' or + cc.has_header('IOKit/storage/IOMedia.h')) + +-have_virtfs = (targetos == 'linux' and +- have_system and +- libattr.found() and +- libcap_ng.found()) +- +-have_virtfs_proxy_helper = have_virtfs and have_tools ++have_virtfs = get_option('virtfs') \ ++ .require(targetos == 'linux' or targetos == 'darwin', ++ error_message: 'virtio-9p (virtfs) requires Linux or macOS') \ ++ .require(targetos == 'linux' or cc.has_function('pthread_fchdir_np'), ++ error_message: 'virtio-9p (virtfs) on macOS requires the presence of pthread_fchdir_np') \ ++ .require(targetos == 'darwin' or (libattr.found() and libcap_ng.found()), ++ error_message: 'virtio-9p (virtfs) on Linux requires libcap-ng-devel and libattr-devel') \ ++ .disable_auto_if(not have_tools and not have_system) \ ++ .allowed() ++ ++have_virtfs_proxy_helper = targetos != 'darwin' and have_virtfs and have_tools + + if get_option('virtfs').enabled() + if not have_virtfs +-- +2.35.1 + diff --git a/nixpkgs/pkgs/applications/virtualization/qemu/default.nix b/nixpkgs/pkgs/applications/virtualization/qemu/default.nix index ee923f4e0cd0..2b183dd48d02 100644 --- a/nixpkgs/pkgs/applications/virtualization/qemu/default.nix +++ b/nixpkgs/pkgs/applications/virtualization/qemu/default.nix @@ -1,7 +1,7 @@ { lib, stdenv, fetchurl, fetchpatch, python3, python3Packages, zlib, pkg-config, glib, buildPackages , perl, pixman, vde2, alsa-lib, texinfo, flex , bison, lzo, snappy, libaio, libtasn1, gnutls, nettle, curl, ninja, meson, sigtool -, makeWrapper, runtimeShell +, makeWrapper, runtimeShell, removeReferencesTo , attr, libcap, libcap_ng, socat , CoreServices, Cocoa, Hypervisor, rez, setfile , numaSupport ? stdenv.isLinux && !stdenv.isAarch32, numactl @@ -49,7 +49,7 @@ stdenv.mkDerivation rec { depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ makeWrapper pkg-config flex bison meson ninja perl python3 python3Packages.sphinx python3Packages.sphinx_rtd_theme ] + nativeBuildInputs = [ makeWrapper removeReferencesTo pkg-config flex bison meson ninja perl python3 python3Packages.sphinx python3Packages.sphinx_rtd_theme ] ++ lib.optionals gtkSupport [ wrapGAppsHook ] ++ lib.optionals stdenv.isDarwin [ sigtool ]; @@ -88,14 +88,62 @@ stdenv.mkDerivation rec { patches = [ ./fix-qemu-ga.patch - ./9p-ignore-noatime.patch # Cocoa clipboard support only works on macOS 10.14+ (fetchpatch { url = "https://gitlab.com/qemu-project/qemu/-/commit/7e3e20d89129614f4a7b2451fe321cc6ccca3b76.diff"; sha256 = "09xz06g57wxbacic617pq9c0qb7nly42gif0raplldn5lw964xl2"; revert = true; }) - ] ++ lib.optional nixosTestRunner ./force-uid0-on-9p.patch; + # 9p-darwin for 7.0 backported to 6.2.0 + # + # Can generally be removed when updating derivation to 7.0. Nine of the + # patches can be drawn directly from QEMU upstream, but the second commit + # and the eleventh commit had to be modified when rebasing back to 6.2.0. + (fetchpatch { + url = "https://gitlab.com/qemu-project/qemu/-/commit/e0bd743bb2dd4985791d4de880446bdbb4e04fed.patch"; + sha256 = "sha256-c6QYL3zig47fJwm6rqkqGp3E1PakVTaihvXDRebbBlQ="; + }) + ./rename-9p-util.patch + (fetchpatch { + url = "https://gitlab.com/qemu-project/qemu/-/commit/f41db099c71151291c269bf48ad006de9cbd9ca6.patch"; + sha256 = "sha256-70/rrhZw+02JJbJ3CoW8B1GbdM4Lwb2WkUdwstYAoIQ="; + }) + (fetchpatch { + url = "https://gitlab.com/qemu-project/qemu/-/commit/6b3b279bd670c6a2fa23c9049820c814f0e2c846.patch"; + sha256 = "sha256-7WqklSvLirEuxTXTIMQDQhWpXnwMseJ1RumT+faq/Y8="; + }) + (fetchpatch { + url = "https://gitlab.com/qemu-project/qemu/-/commit/67a71e3b71a2834d028031a92e76eb9444e423c6.patch"; + sha256 = "sha256-COFm/SwfJSoSl9YDpL6ceAE8CcE4mGhsGxw1HMuL++o="; + }) + (fetchpatch { + url = "https://gitlab.com/qemu-project/qemu/-/commit/38d7fd68b0c8775b5253ab84367419621aa032e6.patch"; + sha256 = "sha256-iwGIzq9FWW6zpbDg/IKrp5OZpK9cgQqTRWWq8WBIHRQ="; + }) + (fetchpatch { + url = "https://gitlab.com/qemu-project/qemu/-/commit/57b3910bc3513ab515296692daafd1c546f3c115.patch"; + sha256 = "sha256-ybl9+umZAcQKHYL7NkGJQC0W7bccTagA9KQiFaR2LYA="; + }) + (fetchpatch { + url = "https://gitlab.com/qemu-project/qemu/-/commit/b5989326f558faedd2511f29459112cced2ca8f5.patch"; + sha256 = "sha256-s+O9eCgj2Ev+INjL9LY9MJBdISIdZLslI3lue2DICGM="; + }) + (fetchpatch { + url = "https://gitlab.com/qemu-project/qemu/-/commit/029ed1bd9defa33a80bb40cdcd003699299af8db.patch"; + sha256 = "sha256-mGqcRWcEibDJdhTRrN7ZWrMuCfUWW8vWiFj7sb2/RYo="; + }) + (fetchpatch { + url = "https://gitlab.com/qemu-project/qemu/-/commit/d3671fd972cd185a6923433aa4802f54d8b62112.patch"; + sha256 = "sha256-GUh5o7mbFTm/dm6CqcGdoMlC+YrV8RlcEwu/mxrfTzo="; + }) + ./allow-virtfs-on-darwin.patch + # QEMU upstream does not demand compatibility to pre-10.13, so 9p-darwin + # support on nix requires utimensat fallback. The patch adding this fallback + # set was removed during the process of upstreaming this functionality, and + # will still be needed in nix until the macOS SDK reaches 10.13+. + ./provide-fallback-for-utimensat.patch + ] + ++ lib.optional nixosTestRunner ./force-uid0-on-9p.patch; postPatch = '' # Otherwise tries to ensure /var/run exists. @@ -175,6 +223,7 @@ stdenv.mkDerivation rec { # copy qemu-ga (guest agent) to separate output mkdir -p $ga/bin cp $out/bin/qemu-ga $ga/bin/ + remove-references-to -t $out $ga/bin/qemu-ga '' + lib.optionalString gtkSupport '' # wrap GTK Binaries for f in $out/bin/qemu-system-*; do @@ -219,6 +268,7 @@ stdenv.mkDerivation rec { # Add a ‘qemu-kvm’ wrapper for compatibility/convenience. postInstall = '' + ln -s $out/libexec/virtiofsd $out/bin ln -s $out/bin/qemu-system-${stdenv.hostPlatform.qemuArch} $out/bin/qemu-kvm ''; @@ -239,5 +289,6 @@ stdenv.mkDerivation rec { mainProgram = "qemu-kvm"; maintainers = with maintainers; [ eelco qyliss ]; platforms = platforms.unix; + priority = 10; # Prefer virtiofsd from the virtiofsd package. }; } diff --git a/nixpkgs/pkgs/applications/virtualization/qemu/provide-fallback-for-utimensat.patch b/nixpkgs/pkgs/applications/virtualization/qemu/provide-fallback-for-utimensat.patch new file mode 100644 index 000000000000..dbc4e2b9af51 --- /dev/null +++ b/nixpkgs/pkgs/applications/virtualization/qemu/provide-fallback-for-utimensat.patch @@ -0,0 +1,190 @@ +From 70328c307001f4bb75d30d93c5bba3c3cd790c88 Mon Sep 17 00:00:00 2001 +From: Keno Fischer <keno@juliacomputing.com> +Date: Sat, 16 Jun 2018 20:56:54 -0400 +Subject: [PATCH] 9p: darwin: Provide fallback impl for utimensat + +This function is new in Mac OS 10.13. Provide a fallback implementation +when building against older SDKs. The complication in the definition comes +having to separately handle the used SDK version and the target OS version. + +- If the SDK version is too low (__MAC_10_13 not defined), utimensat is not + defined in the header, so we must not try to use it (doing so would error). +- Otherwise, if the targetted OS version is at least 10.13, we know this + function is available, so we can unconditionally call it. +- Lastly, we check for the availability of the __builtin_available macro to + potentially insert a dynamic check for this OS version. However, __builtin_available + is only available with sufficiently recent versions of clang and while all + Apple clang versions that ship with Xcode versions that support the 10.13 + SDK support with builtin, we want to allow building with compilers other + than Apple clang that may not support this builtin. + +Signed-off-by: Keno Fischer <keno@juliacomputing.com> +Signed-off-by: Michael Roitzsch <reactorcontrol@icloud.com> +Signed-off-by: Will Cohen <wwcohen@gmail.com> +--- + hw/9pfs/9p-local.c | 2 +- + hw/9pfs/9p-util-darwin.c | 96 ++++++++++++++++++++++++++++++++++++++++ + hw/9pfs/9p-util-linux.c | 6 +++ + hw/9pfs/9p-util.h | 8 ++++ + 4 files changed, 111 insertions(+), 1 deletion(-) + +diff --git a/hw/9pfs/9p-local.c b/hw/9pfs/9p-local.c +index d42ce6d8b8..b2c1fa42e1 100644 +--- a/hw/9pfs/9p-local.c ++++ b/hw/9pfs/9p-local.c +@@ -1085,7 +1085,7 @@ static int local_utimensat(FsContext *s, V9fsPath *fs_path, + goto out; + } + +- ret = utimensat(dirfd, name, buf, AT_SYMLINK_NOFOLLOW); ++ ret = utimensat_nofollow(dirfd, name, buf); + close_preserve_errno(dirfd); + out: + g_free(dirpath); +diff --git a/hw/9pfs/9p-util-darwin.c b/hw/9pfs/9p-util-darwin.c +index bec0253474..2fc0475292 100644 +--- a/hw/9pfs/9p-util-darwin.c ++++ b/hw/9pfs/9p-util-darwin.c +@@ -95,3 +95,99 @@ int qemu_mknodat(int dirfd, const char *filename, mode_t mode, dev_t dev) + } + + #endif ++ ++#ifndef __has_builtin ++#define __has_builtin(x) 0 ++#endif ++ ++static int update_times_from_stat(int fd, struct timespec times[2], ++ int update0, int update1) ++{ ++ struct stat buf; ++ int ret = fstat(fd, &buf); ++ if (ret == -1) { ++ return ret; ++ } ++ if (update0) { ++ times[0] = buf.st_atimespec; ++ } ++ if (update1) { ++ times[1] = buf.st_mtimespec; ++ } ++ return 0; ++} ++ ++int utimensat_nofollow(int dirfd, const char *filename, ++ const struct timespec times_in[2]) ++{ ++ int ret, fd; ++ int special0, special1; ++ struct timeval futimes_buf[2]; ++ struct timespec times[2]; ++ memcpy(times, times_in, 2 * sizeof(struct timespec)); ++ ++/* Check whether we have an SDK version that defines utimensat */ ++#if defined(__MAC_10_13) ++# if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_13 ++# define UTIMENSAT_AVAILABLE 1 ++# elif __has_builtin(__builtin_available) ++# define UTIMENSAT_AVAILABLE __builtin_available(macos 10.13, *) ++# else ++# define UTIMENSAT_AVAILABLE 0 ++# endif ++ if (UTIMENSAT_AVAILABLE) { ++ return utimensat(dirfd, filename, times, AT_SYMLINK_NOFOLLOW); ++ } ++#endif ++ ++ /* utimensat not available. Use futimes. */ ++ fd = openat_file(dirfd, filename, O_PATH_9P_UTIL | O_NOFOLLOW, 0); ++ if (fd == -1) { ++ return -1; ++ } ++ ++ special0 = times[0].tv_nsec == UTIME_OMIT; ++ special1 = times[1].tv_nsec == UTIME_OMIT; ++ if (special0 || special1) { ++ /* If both are set, nothing to do */ ++ if (special0 && special1) { ++ ret = 0; ++ goto done; ++ } ++ ++ ret = update_times_from_stat(fd, times, special0, special1); ++ if (ret < 0) { ++ goto done; ++ } ++ } ++ ++ special0 = times[0].tv_nsec == UTIME_NOW; ++ special1 = times[1].tv_nsec == UTIME_NOW; ++ if (special0 || special1) { ++ ret = futimes(fd, NULL); ++ if (ret < 0) { ++ goto done; ++ } ++ ++ /* If both are set, we are done */ ++ if (special0 && special1) { ++ ret = 0; ++ goto done; ++ } ++ ++ ret = update_times_from_stat(fd, times, special0, special1); ++ if (ret < 0) { ++ goto done; ++ } ++ } ++ ++ futimes_buf[0].tv_sec = times[0].tv_sec; ++ futimes_buf[0].tv_usec = times[0].tv_nsec / 1000; ++ futimes_buf[1].tv_sec = times[1].tv_sec; ++ futimes_buf[1].tv_usec = times[1].tv_nsec / 1000; ++ ret = futimes(fd, futimes_buf); ++ ++done: ++ close_preserve_errno(fd); ++ return ret; ++} +diff --git a/hw/9pfs/9p-util-linux.c b/hw/9pfs/9p-util-linux.c +index db451b0784..320697f347 100644 +--- a/hw/9pfs/9p-util-linux.c ++++ b/hw/9pfs/9p-util-linux.c +@@ -68,3 +68,9 @@ int qemu_mknodat(int dirfd, const char *filename, mode_t mode, dev_t dev) + { + return mknodat(dirfd, filename, mode, dev); + } ++ ++int utimensat_nofollow(int dirfd, const char *filename, ++ const struct timespec times[2]) ++{ ++ return utimensat(dirfd, filename, times, AT_SYMLINK_NOFOLLOW); ++} +diff --git a/hw/9pfs/9p-util.h b/hw/9pfs/9p-util.h +index 1f74d37558..a4b002d1b5 100644 +--- a/hw/9pfs/9p-util.h ++++ b/hw/9pfs/9p-util.h +@@ -36,6 +36,12 @@ static inline int qemu_lsetxattr(const char *path, const char *name, + #define qemu_lsetxattr lsetxattr + #endif + ++/* Compatibility with old SDK Versions for Darwin */ ++#if defined(CONFIG_DARWIN) && !defined(UTIME_NOW) ++#define UTIME_NOW -1 ++#define UTIME_OMIT -2 ++#endif ++ + static inline void close_preserve_errno(int fd) + { + int serrno = errno; +@@ -96,6 +102,8 @@ ssize_t flistxattrat_nofollow(int dirfd, const char *filename, + char *list, size_t size); + ssize_t fremovexattrat_nofollow(int dirfd, const char *filename, + const char *name); ++int utimensat_nofollow(int dirfd, const char *filename, ++ const struct timespec times[2]); + + /** + * Darwin has d_seekoff, which appears to function similarly to d_off. +-- +2.35.1 + diff --git a/nixpkgs/pkgs/applications/virtualization/qemu/rename-9p-util.patch b/nixpkgs/pkgs/applications/virtualization/qemu/rename-9p-util.patch new file mode 100644 index 000000000000..fe3e2d7b4b8f --- /dev/null +++ b/nixpkgs/pkgs/applications/virtualization/qemu/rename-9p-util.patch @@ -0,0 +1,54 @@ +From 011b121d7f84c8974f03a81582cf1107249245bb Mon Sep 17 00:00:00 2001 +From: Keno Fischer <keno@juliacomputing.com> +Date: Sun, 27 Feb 2022 17:35:13 -0500 +Subject: [PATCH] 9p: Rename 9p-util -> 9p-util-linux +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The current file only has the Linux versions of these functions. +Rename the file accordingly and update the Makefile to only build +it on Linux. A Darwin version of these will follow later in the +series. + +Signed-off-by: Keno Fischer <keno@juliacomputing.com> +[Michael Roitzsch: - Rebase for NixOS] +Signed-off-by: Michael Roitzsch <reactorcontrol@icloud.com> +Signed-off-by: Will Cohen <wwcohen@gmail.com> +Reviewed-by: Greg Kurz <groug@kaod.org> +Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> +Message-Id: <20220227223522.91937-3-wwcohen@gmail.com> +Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> +--- + hw/9pfs/{9p-util.c => 9p-util-linux.c} | 0 + hw/9pfs/meson.build | 2 +- + 2 files changed, 1 insertion(+), 1 deletion(-) + rename hw/9pfs/{9p-util.c => 9p-util-linux.c} (100%) + +diff --git a/hw/9pfs/9p-util.c b/hw/9pfs/9p-util-linux.c +similarity index 100% +rename from hw/9pfs/9p-util.c +rename to hw/9pfs/9p-util-linux.c +diff --git a/hw/9pfs/meson.build b/hw/9pfs/meson.build +index 99be5d9119..1b28e70040 100644 +--- a/hw/9pfs/meson.build ++++ b/hw/9pfs/meson.build +@@ -4,7 +4,6 @@ fs_ss.add(files( + '9p-posix-acl.c', + '9p-proxy.c', + '9p-synth.c', +- '9p-util.c', + '9p-xattr-user.c', + '9p-xattr.c', + '9p.c', +@@ -14,6 +13,7 @@ fs_ss.add(files( + 'coth.c', + 'coxattr.c', + )) ++fs_ss.add(when: 'CONFIG_LINUX', if_true: files('9p-util-linux.c')) + fs_ss.add(when: 'CONFIG_XEN', if_true: files('xen-9p-backend.c')) + softmmu_ss.add_all(when: 'CONFIG_FSDEV_9P', if_true: fs_ss) + +-- +2.35.1 + diff --git a/nixpkgs/pkgs/applications/virtualization/seabios/default.nix b/nixpkgs/pkgs/applications/virtualization/seabios/default.nix index af2c4939ad04..c6442b57a421 100644 --- a/nixpkgs/pkgs/applications/virtualization/seabios/default.nix +++ b/nixpkgs/pkgs/applications/virtualization/seabios/default.nix @@ -1,13 +1,14 @@ -{ lib, stdenv, fetchurl, acpica-tools, python3 }: +{ lib, stdenv, fetchgit, acpica-tools, python3 }: stdenv.mkDerivation rec { pname = "seabios"; - version = "1.15.0"; + version = "1.16.0"; - src = fetchurl { - url = "https://www.seabios.org/downloads/${pname}-${version}.tar.gz"; - sha256 = "sha256-YownF8mUMmtFMlFXPRBZ4qOhEtSqSIds4nyz8d4ZiPg="; + src = fetchgit { + url = "https://git.seabios.org/seabios.git"; + rev = "rel-${version}"; + sha256 = "0acal1rr7sya86wlhw2mgimabwhjnr0y1pl5zxwb79j8k1w1r8sh"; }; nativeBuildInputs = [ python3 ]; @@ -43,7 +44,7 @@ stdenv.mkDerivation rec { ''; homepage = "http://www.seabios.org"; license = licenses.lgpl3; - maintainers = [ maintainers.tstrobel ]; + maintainers = with maintainers; [ tstrobel ]; platforms = [ "i686-linux" "x86_64-linux" ]; }; } diff --git a/nixpkgs/pkgs/applications/virtualization/virt-manager/default.nix b/nixpkgs/pkgs/applications/virtualization/virt-manager/default.nix index fb62a0d2e11a..aa225c1d1730 100644 --- a/nixpkgs/pkgs/applications/virtualization/virt-manager/default.nix +++ b/nixpkgs/pkgs/applications/virtualization/virt-manager/default.nix @@ -1,22 +1,21 @@ -{ lib, fetchurl, python3Packages, intltool, file -, wrapGAppsHook, gtk-vnc, vte, avahi, dconf -, gobject-introspection, libvirt-glib, system-libvirt -, gsettings-desktop-schemas, libosinfo, gnome -, gtksourceview4, docutils +{ lib, fetchFromGitHub, python3, intltool, file, wrapGAppsHook, gtk-vnc +, vte, avahi, dconf, gobject-introspection, libvirt-glib, system-libvirt +, gsettings-desktop-schemas, libosinfo, gnome, gtksourceview4, docutils, cpio +, e2fsprogs, findutils, gzip, cdrtools, xorriso , spiceSupport ? true, spice-gtk ? null -, cpio, e2fsprogs, findutils, gzip -, cdrtools }: with lib; -python3Packages.buildPythonApplication rec { +python3.pkgs.buildPythonApplication rec { pname = "virt-manager"; - version = "3.2.0"; + version = "4.0.0"; - src = fetchurl { - url = "https://releases.pagure.org/virt-manager/${pname}-${version}.tar.gz"; - sha256 = "11kvpzcmyir91qz0dsnk7748jbb4wr8mrc744w117qc91pcy6vrb"; + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = "v${version}"; + hash = "sha256-3ycXNBuf91kI2cJCRw0ZzaWkaIVwb/lmkOKeHNwpH9Y="; }; nativeBuildInputs = [ @@ -32,7 +31,7 @@ python3Packages.buildPythonApplication rec { gobject-introspection # Temporary fix, see https://github.com/NixOS/nixpkgs/issues/56943 ] ++ optional spiceSupport spice-gtk; - propagatedBuildInputs = with python3Packages; [ + propagatedBuildInputs = with python3.pkgs; [ pygobject3 ipaddress libvirt libxml2 requests cdrtools ]; @@ -42,14 +41,16 @@ python3Packages.buildPythonApplication rec { ''; postConfigure = '' - ${python3Packages.python.interpreter} setup.py configure --prefix=$out + ${python3.interpreter} setup.py configure --prefix=$out ''; - setupPyGlobalFlags = [ "--no-update-icon-cache" ]; + setupPyGlobalFlags = [ "--no-update-icon-cache" "--no-compile-schemas" ]; dontWrapGApps = true; preFixup = '' + glib-compile-schemas $out/share/gsettings-schemas/${pname}-${version}/glib-2.0/schemas + gappsWrapperArgs+=(--set PYTHONPATH "$PYTHONPATH") # these are called from virt-install in initrdinject.py gappsWrapperArgs+=(--prefix PATH : "${makeBinPath [ cpio e2fsprogs file findutils gzip ]}") @@ -57,14 +58,17 @@ python3Packages.buildPythonApplication rec { makeWrapperArgs+=("''${gappsWrapperArgs[@]}") ''; - checkInputs = with python3Packages; [ cpio cdrtools pytestCheckHook ]; + checkInputs = with python3.pkgs; [ + pytestCheckHook + cpio + cdrtools + xorriso + ]; - disabledTestPaths = [ - "tests/test_cli.py" - "tests/test_disk.py" - "tests/test_checkprops.py" - "tests/test_storage.py" - ]; # Error logs: https://gist.github.com/superherointj/fee040872beaafaaa19b8bf8f3ff0be5 + disabledTests = [ + "testAlterDisk" + "test_misc_nonpredicatble_generate" + ]; preCheck = '' export HOME=. diff --git a/nixpkgs/pkgs/applications/virtualization/x11docker/default.nix b/nixpkgs/pkgs/applications/virtualization/x11docker/default.nix index 6ac7377122de..bad1e98296c2 100644 --- a/nixpkgs/pkgs/applications/virtualization/x11docker/default.nix +++ b/nixpkgs/pkgs/applications/virtualization/x11docker/default.nix @@ -1,12 +1,12 @@ { lib, stdenv, fetchFromGitHub, makeWrapper, nx-libs, xorg, getopt, gnugrep, gawk, ps, mount, iproute2 }: stdenv.mkDerivation rec { pname = "x11docker"; - version = "7.1.0"; + version = "7.1.3"; src = fetchFromGitHub { owner = "mviereck"; repo = "x11docker"; rev = "v${version}"; - sha256 = "sha256-SBX50wQbNUvgmnO0B0iXiEXEmJrkVmtNqUUv0O6yRic="; + sha256 = "sha256-eSarw5RG2ckup9pNlZtAyZAN8IPZy94RRfej9ppiLfo="; }; nativeBuildInputs = [ makeWrapper ]; |