diff options
Diffstat (limited to 'pkgs/applications/virtualization')
84 files changed, 3980 insertions, 3463 deletions
diff --git a/pkgs/applications/virtualization/OVMF/default.nix b/pkgs/applications/virtualization/OVMF/default.nix index 60eaa6428d62c..35336ad8ad3f3 100644 --- a/pkgs/applications/virtualization/OVMF/default.nix +++ b/pkgs/applications/virtualization/OVMF/default.nix @@ -1,5 +1,5 @@ { stdenv, nixosTests, lib, edk2, util-linux, nasm, acpica-tools, llvmPackages -, fetchurl, python3, pexpect, xorriso, qemu, dosfstools, mtools +, fetchFromGitLab, python3, pexpect, xorriso, qemu, dosfstools, mtools , fdSize2MB ? false , fdSize4MB ? secureBoot , secureBoot ? false @@ -12,7 +12,7 @@ # to use as the PK and first KEK for the keystore. # # By default, we use Debian's cert. This default -# should chnage to a NixOS cert once we have our +# should change to a NixOS cert once we have our # own secure boot signing infrastructure. # # Ignored if msVarsTemplate is false. @@ -29,6 +29,7 @@ x86_64 = "OvmfPkg/OvmfPkgX64.dsc"; aarch64 = "ArmVirtPkg/ArmVirtQemu.dsc"; riscv64 = "OvmfPkg/RiscVVirt/RiscVVirtQemu.dsc"; + loongarch64 = "OvmfPkg/LoongArchVirt/LoongArchVirtQemu.dsc"; }.${stdenv.hostPlatform.parsed.cpu.name} or (throw "Unsupported OVMF `projectDscPath` on ${stdenv.hostPlatform.parsed.cpu.name}") , fwPrefix ? { @@ -36,6 +37,7 @@ x86_64 = "OVMF"; aarch64 = "AAVMF"; riscv64 = "RISCV_VIRT"; + loongarch64 = "LOONGARCH_VIRT"; }.${stdenv.hostPlatform.parsed.cpu.name} or (throw "Unsupported OVMF `fwPrefix` on ${stdenv.hostPlatform.parsed.cpu.name}") , metaPlatforms ? edk2.meta.platforms @@ -66,17 +68,26 @@ let OvmfPkKek1AppPrefix = "4e32566d-8e9e-4f52-81d3-5bb9715f9727"; - debian-edk-src = fetchurl { - url = "http://deb.debian.org/debian/pool/main/e/edk2/edk2_2023.11-5.debian.tar.xz"; - sha256 = "1yxlab4md30pxvjadr6b4xn6cyfw0c292q63pyfv4vylvhsb24g4"; + debian-edk-src = fetchFromGitLab { + domain = "salsa.debian.org"; + owner = "qemu-team"; + repo = "edk2"; + nonConeMode = true; + sparseCheckout = [ + "debian/edk2-vars-generator.py" + "debian/python" + "debian/PkKek-1-*.pem" + ]; + rev = "refs/tags/debian/2024.05-1"; + hash = "sha256-uAjXJaHOVh944ZxcA2IgCsrsncxuhc0JKlsXs0E03s0="; }; buildPrefix = "Build/*/*"; in -assert platformSpecific ? ${cpuName}; assert msVarsTemplate -> fdSize4MB; +assert msVarsTemplate -> platformSpecific ? ${cpuName}; assert msVarsTemplate -> platformSpecific.${cpuName} ? msVarsArgs; edk2.mkDerivation projectDscPath (finalAttrs: { @@ -111,7 +122,7 @@ edk2.mkDerivation projectDscPath (finalAttrs: { env.PYTHON_COMMAND = "python3"; postUnpack = lib.optionalDrvAttr msVarsTemplate '' - unpackFile ${debian-edk-src} + ln -s ${debian-edk-src}/debian ''; postConfigure = lib.optionalDrvAttr msVarsTemplate '' @@ -121,24 +132,25 @@ edk2.mkDerivation projectDscPath (finalAttrs: { export PYTHONPATH=$NIX_BUILD_TOP/debian/python:$PYTHONPATH ''; - postBuild = lib.optionalString stdenv.hostPlatform.isAarch '' + postBuild = lib.optionalString (stdenv.hostPlatform.isAarch || stdenv.hostPlatform.isLoongArch64) '' ( cd ${buildPrefix}/FV cp QEMU_EFI.fd ${fwPrefix}_CODE.fd cp QEMU_VARS.fd ${fwPrefix}_VARS.fd - + ) + '' + lib.optionalString stdenv.hostPlatform.isAarch '' # QEMU expects 64MiB CODE and VARS files on ARM/AARCH64 architectures # Truncate the firmware files to the expected size - truncate -s 64M ${fwPrefix}_CODE.fd - truncate -s 64M ${fwPrefix}_VARS.fd - ) + truncate -s 64M ${buildPrefix}/FV/${fwPrefix}_CODE.fd + truncate -s 64M ${buildPrefix}/FV/${fwPrefix}_VARS.fd '' + lib.optionalString stdenv.hostPlatform.isRiscV '' truncate -s 32M ${buildPrefix}/FV/${fwPrefix}_CODE.fd truncate -s 32M ${buildPrefix}/FV/${fwPrefix}_VARS.fd '' + lib.optionalString msVarsTemplate '' ( cd ${buildPrefix} - python3 $NIX_BUILD_TOP/debian/edk2-vars-generator.py \ + # locale must be set on Darwin for invocations of mtools to work correctly + LC_ALL=C python3 $NIX_BUILD_TOP/debian/edk2-vars-generator.py \ --flavor ${msVarsArgs.flavor} \ --enrolldefaultkeys ${msVarsArgs.archDir}/EnrollDefaultKeys.efi \ --shell ${msVarsArgs.archDir}/Shell.efi \ @@ -155,7 +167,7 @@ edk2.mkDerivation projectDscPath (finalAttrs: { postInstall = '' mkdir -vp $fd/FV '' + lib.optionalString (builtins.elem fwPrefix [ - "OVMF" "AAVMF" "RISCV_VIRT" + "OVMF" "AAVMF" "RISCV_VIRT" "LOONGARCH_VIRT" ]) '' mv -v $out/FV/${fwPrefix}_{CODE,VARS}.fd $fd/FV '' + lib.optionalString stdenv.hostPlatform.isx86 '' @@ -165,7 +177,7 @@ edk2.mkDerivation projectDscPath (finalAttrs: { ln -sv $fd/FV/${fwPrefix}_CODE{,.ms}.fd '' + lib.optionalString stdenv.hostPlatform.isAarch '' mv -v $out/FV/QEMU_{EFI,VARS}.fd $fd/FV - # Add symlinks for Fedora dir layout: https://src.fedoraproject.org/cgit/rpms/edk2.git/tree/edk2.spec + # Add symlinks for Fedora dir layout: https://src.fedoraproject.org/rpms/edk2/blob/main/f/edk2.spec mkdir -vp $fd/AAVMF ln -s $fd/FV/AAVMF_CODE.fd $fd/AAVMF/QEMU_EFI-pflash.raw ln -s $fd/FV/AAVMF_VARS.fd $fd/AAVMF/vars-template-pflash.raw @@ -179,6 +191,9 @@ edk2.mkDerivation projectDscPath (finalAttrs: { in { firmware = "${prefix}_CODE.fd"; variables = "${prefix}_VARS.fd"; + variablesMs = + assert msVarsTemplate; + "${prefix}_VARS.ms.fd"; # This will test the EFI firmware for the host platform as part of the NixOS Tests setup. tests.basic-systemd-boot = nixosTests.systemd-boot.basic; tests.secureBoot-systemd-boot = nixosTests.systemd-boot.secureBoot; @@ -190,7 +205,7 @@ edk2.mkDerivation projectDscPath (finalAttrs: { homepage = "https://github.com/tianocore/tianocore.github.io/wiki/OVMF"; license = lib.licenses.bsd2; platforms = metaPlatforms; - maintainers = with lib.maintainers; [ adamcstephens raitobezarius ]; - broken = stdenv.isDarwin; + maintainers = with lib.maintainers; [ adamcstephens raitobezarius mjoerg ]; + broken = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64; }; }) diff --git a/pkgs/applications/virtualization/arion/default.nix b/pkgs/applications/virtualization/arion/default.nix index 716a94a05d8e4..e5ab20cf1937a 100644 --- a/pkgs/applications/virtualization/arion/default.nix +++ b/pkgs/applications/virtualization/arion/default.nix @@ -54,7 +54,7 @@ let mv $out/bin/arion $out/libexec makeWrapper $out/libexec/arion $out/bin/arion \ --unset PYTHONPATH \ - --prefix PATH : ${lib.makeBinPath [ pkgs.docker-compose_1 ]} \ + --prefix PATH : ${lib.makeBinPath [ pkgs.docker-compose ]} \ ; ''; }; diff --git a/pkgs/applications/virtualization/cloud-hypervisor/Cargo.lock b/pkgs/applications/virtualization/cloud-hypervisor/Cargo.lock index 302b760135471..dbb3ee5a6b796 100644 --- a/pkgs/applications/virtualization/cloud-hypervisor/Cargo.lock +++ b/pkgs/applications/virtualization/cloud-hypervisor/Cargo.lock @@ -12,9 +12,9 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" dependencies = [ "gimli", ] @@ -36,23 +36,24 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.13" +version = "0.6.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" +checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", + "is_terminal_polyfill", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" +checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" [[package]] name = "anstyle-parse" @@ -74,9 +75,9 @@ dependencies = [ [[package]] name = "anstyle-wincon" -version = "3.0.3" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" +checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" dependencies = [ "anstyle", "windows-sys 0.52.0", @@ -84,9 +85,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.81" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" [[package]] name = "api_client" @@ -136,9 +137,9 @@ dependencies = [ [[package]] name = "async-channel" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3" +checksum = "9f2776ead772134d55b62dd45e59a79e21612d85d0af729b8b7d3967d601a62a" dependencies = [ "concurrent-queue", "event-listener 5.3.0", @@ -281,9 +282,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "backtrace" -version = "0.3.71" +version = "0.3.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" +checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" dependencies = [ "addr2line", "cc", @@ -296,9 +297,9 @@ dependencies = [ [[package]] name = "bitfield-struct" -version = "0.5.6" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26b8cea8bb6a81b75a84603b9e096f05fa86db057904ef29be1deee900532bd" +checksum = "6c2ce686adbebce0ee484a502c440b4657739adbad65eadf06d64f5816ee9765" dependencies = [ "proc-macro2", "quote", @@ -313,9 +314,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "block" @@ -362,9 +363,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.15.4" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "byteorder" @@ -420,7 +421,7 @@ checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" [[package]] name = "cloud-hypervisor" -version = "40.0.0" +version = "41.0.0" dependencies = [ "anyhow", "api_client", @@ -451,9 +452,9 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" [[package]] name = "concurrent-queue" @@ -509,9 +510,9 @@ dependencies = [ [[package]] name = "darling" -version = "0.20.9" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83b2eb4d90d12bdda5ed17de686c2acb4c57914f8f921b8da7e112b5a36f3fe1" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" dependencies = [ "darling_core", "darling_macro", @@ -519,9 +520,9 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.9" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622687fe0bac72a04e5599029151f5796111b90f1baaa9b544d807a5e31cd120" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" dependencies = [ "fnv", "ident_case", @@ -533,9 +534,9 @@ dependencies = [ [[package]] name = "darling_macro" -version = "0.20.9" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", @@ -566,12 +567,13 @@ dependencies = [ "acpi_tables", "anyhow", "arch", - "bitflags 2.5.0", + "bitflags 2.6.0", "byteorder", "event_monitor", "hypervisor", "libc", "log", + "num_enum", "pci", "serde", "thiserror", @@ -638,9 +640,9 @@ checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf" [[package]] name = "enumflags2" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d" +checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d" dependencies = [ "enumflags2_derive", "serde", @@ -648,9 +650,9 @@ dependencies = [ [[package]] name = "enumflags2_derive" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4" +checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", @@ -686,7 +688,7 @@ version = "4.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74351c3392ea1ff6cd2628e0042d268ac2371cb613252ff383b6dfa50d22fa79" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "libc", ] @@ -698,9 +700,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" dependencies = [ "libc", "windows-sys 0.52.0", @@ -897,7 +899,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6341b3480afbb34eaefc7f92713bc92f2d83e338aaa1c44192f9c2956f4a4903" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "cfg-if", "log", "managed", @@ -940,9 +942,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.28.1" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" [[package]] name = "glob" @@ -1015,9 +1017,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "igvm" -version = "0.3.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bc8970c7e36437c52af3b3ef1acaa5e334c2a95cd8ee9639d574830f48af17e" +checksum = "7984b10433b50e06a06bd50c69bca4888a5d7de8975f64ea4c2a7687eb99b09d" dependencies = [ "bitfield-struct", "crc32fast", @@ -1032,9 +1034,9 @@ dependencies = [ [[package]] name = "igvm_defs" -version = "0.3.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c4942827cef415726296f6d62411afdb13c1b1924125f3222988f04bef33ad2" +checksum = "b64ec5588c475372ae830475d3ee9a7bd255407dcb9f03faf6d493556eb6105a" dependencies = [ "bitfield-struct", "open-enum", @@ -1081,6 +1083,12 @@ dependencies = [ ] [[package]] +name = "is_terminal_polyfill" +version = "1.70.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" + +[[package]] name = "itoa" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1112,13 +1120,24 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bedae2ca4a531bebe311abaf9691f5cc14eaa21475243caa2e39c43bb872947d" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "kvm-bindings", "libc", "vmm-sys-util", ] [[package]] +name = "landlock" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dafb8a4afee64f167eb2b52d32f0eea002e41a7a6450e68c799c8ec3a81a634c" +dependencies = [ + "enumflags2", + "libc", + "thiserror", +] + +[[package]] name = "lazy_static" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1126,9 +1145,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.153" +version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" [[package]] name = "libredox" @@ -1136,7 +1155,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "libc", ] @@ -1156,9 +1175,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.16" +version = "1.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e143b5e666b2695d28f6bca6497720813f699c9602dd7f5cac91008b8ada7f9" +checksum = "c15da26e5af7e25c90b37a2d75cdbf940cf4a55316de9d84c679c9b8bfabf82e" dependencies = [ "cc", "libc", @@ -1193,9 +1212,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.21" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] name = "managed" @@ -1311,7 +1330,7 @@ version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "cfg-if", "cfg_aliases", "libc", @@ -1335,19 +1354,20 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" dependencies = [ "num_enum_derive", ] [[package]] name = "num_enum_derive" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ + "proc-macro-crate", "proc-macro2", "quote", "syn 2.0.66", @@ -1355,9 +1375,9 @@ dependencies = [ [[package]] name = "object" -version = "0.32.2" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +checksum = "081b846d1d56ddfc18fdf1a922e4f6e07a11768ea1b92dec44e42b72712ccfce" dependencies = [ "memchr", ] @@ -1370,29 +1390,29 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "open-enum" -version = "0.4.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba485b94b3e73fa752d98cfcab74647a4a537269682cc1ee5256aa020432506d" +checksum = "2eb2508143a400b3361812094d987dd5adc81f0f5294a46491be648d6c94cab5" dependencies = [ "open-enum-derive", ] [[package]] name = "open-enum-derive" -version = "0.4.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed1c261430059cab8b2b51eec42a3c15750439ec6c013cd8fe41d4a450de776" +checksum = "8d1296fab5231654a5aec8bf9e87ba4e3938c502fc4c3c0425a00084c78944be" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.66", ] [[package]] name = "openssl-src" -version = "300.2.3+3.2.1" +version = "300.3.1+3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cff92b6f71555b61bb9315f7c64da3ca43d87531622120fea0195fc761b4843" +checksum = "7259953d42a81bf137fbbd73bd30a8e1914d6dce43c2b90ed575783a22608b91" dependencies = [ "cc", ] @@ -1486,9 +1506,9 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pci" @@ -1538,9 +1558,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "piper" -version = "0.2.1" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" +checksum = "ae1d5c74c9876f070d3e8fd503d748c7d974c3e48da8f41350fa5222ef9b4391" dependencies = [ "atomic-waker", "fastrand", @@ -1555,9 +1575,9 @@ checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "pnet" -version = "0.34.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "130c5b738eeda2dc5796fe2671e49027e6935e817ab51b930a36ec9e6a206a64" +checksum = "682396b533413cc2e009fbb48aadf93619a149d3e57defba19ff50ce0201bd0d" dependencies = [ "ipnetwork", "pnet_base", @@ -1569,18 +1589,18 @@ dependencies = [ [[package]] name = "pnet_base" -version = "0.34.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4cf6fb3ab38b68d01ab2aea03ed3d1132b4868fa4e06285f29f16da01c5f4c" +checksum = "ffc190d4067df16af3aba49b3b74c469e611cad6314676eaf1157f31aa0fb2f7" dependencies = [ "no-std-net", ] [[package]] name = "pnet_datalink" -version = "0.34.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad5854abf0067ebbd3967f7d45ebc8976ff577ff0c7bd101c4973ae3c70f98fe" +checksum = "e79e70ec0be163102a332e1d2d5586d362ad76b01cec86f830241f2b6452a7b7" dependencies = [ "ipnetwork", "libc", @@ -1591,9 +1611,9 @@ dependencies = [ [[package]] name = "pnet_macros" -version = "0.34.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "688b17499eee04a0408aca0aa5cba5fc86401d7216de8a63fdf7a4c227871804" +checksum = "13325ac86ee1a80a480b0bc8e3d30c25d133616112bb16e86f712dcf8a71c863" dependencies = [ "proc-macro2", "quote", @@ -1603,18 +1623,18 @@ dependencies = [ [[package]] name = "pnet_macros_support" -version = "0.34.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eea925b72f4bd37f8eab0f221bbe4c78b63498350c983ffa9dd4bcde7e030f56" +checksum = "eed67a952585d509dd0003049b1fc56b982ac665c8299b124b90ea2bdb3134ab" dependencies = [ "pnet_base", ] [[package]] name = "pnet_packet" -version = "0.34.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9a005825396b7fe7a38a8e288dbc342d5034dac80c15212436424fef8ea90ba" +checksum = "4c96ebadfab635fcc23036ba30a7d33a80c39e8461b8bd7dc7bb186acb96560f" dependencies = [ "glob", "pnet_base", @@ -1624,9 +1644,9 @@ dependencies = [ [[package]] name = "pnet_sys" -version = "0.34.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "417c0becd1b573f6d544f73671070b039051e5ad819cc64aa96377b536128d00" +checksum = "7d4643d3d4db6b08741050c2f3afa9a892c4244c085a72fcda93c9c2c9a00f4b" dependencies = [ "libc", "winapi", @@ -1634,9 +1654,9 @@ dependencies = [ [[package]] name = "pnet_transport" -version = "0.34.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2637e14d7de974ee2f74393afccbc8704f3e54e6eb31488715e72481d1662cc3" +checksum = "5f604d98bc2a6591cf719b58d3203fd882bdd6bf1db696c4ac97978e9f4776bf" dependencies = [ "libc", "pnet_base", @@ -1661,9 +1681,12 @@ dependencies = [ [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] [[package]] name = "proc-macro-crate" @@ -1770,9 +1793,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.4" +version = "1.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" +checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" dependencies = [ "aho-corasick", "memchr", @@ -1799,9 +1822,9 @@ checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" [[package]] name = "remain" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad9f2390298a947ee0aa6073d440e221c0726188cfbcdf9604addb6ee393eb4a" +checksum = "46aef80f842736de545ada6ec65b81ee91504efd6853f4b96de7414c42ae7443" dependencies = [ "proc-macro2", "quote", @@ -1826,7 +1849,7 @@ version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "errno", "libc", "linux-raw-sys", @@ -1876,9 +1899,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.115" +version = "1.0.120" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd" +checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5" dependencies = [ "itoa", "ryu", @@ -1898,9 +1921,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.7.0" +version = "3.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee80b0e361bbf88fd2f6e242ccd19cfda072cb0faa6ae694ecee08199938569a" +checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" dependencies = [ "serde", "serde_derive", @@ -1909,9 +1932,9 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.7.0" +version = "3.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6561dc161a9224638a31d876ccdfefbc1df91d3f3a8342eddb35f055d48c7655" +checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350" dependencies = [ "darling", "proc-macro2", @@ -1946,9 +1969,9 @@ dependencies = [ [[package]] name = "signal-hook-registry" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" dependencies = [ "libc", ] @@ -2062,18 +2085,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.61" +version = "1.0.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" +checksum = "f2675633b1499176c2dff06b0856a27976a8f9d436737b4cf4f312d4d91d8bbb" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.61" +version = "1.0.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" +checksum = "d20468752b09f49e909e55a5d338caa8bedf615594e9d80bc4c565d30faf798c" dependencies = [ "proc-macro2", "quote", @@ -2257,7 +2280,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6be08d1166d41a78861ad50212ab3f9eca0729c349ac3a7a8f557c62406b87cc" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "libc", "vm-memory", "vmm-sys-util", @@ -2433,7 +2456,7 @@ dependencies = [ "anyhow", "arc-swap", "arch", - "bitflags 2.5.0", + "bitflags 2.6.0", "block", "blocking", "cfg-if", @@ -2450,6 +2473,7 @@ dependencies = [ "hypervisor", "igvm", "igvm_defs", + "landlock", "libc", "linux-loader", "log", @@ -2803,9 +2827,9 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.7.32" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ "byteorder", "zerocopy-derive", @@ -2813,9 +2837,9 @@ dependencies = [ [[package]] name = "zerocopy-derive" -version = "0.7.32" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", @@ -2824,9 +2848,9 @@ dependencies = [ [[package]] name = "zvariant" -version = "4.1.1" +version = "4.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aa6d31a02fbfb602bfde791de7fedeb9c2c18115b3d00f3a36e489f46ffbbc7" +checksum = "1724a2b330760dc7d2a8402d841119dc869ef120b139d29862d6980e9c75bfc9" dependencies = [ "endi", "enumflags2", @@ -2837,9 +2861,9 @@ dependencies = [ [[package]] name = "zvariant_derive" -version = "4.1.1" +version = "4.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "642bf1b6b6d527988b3e8193d20969d53700a36eac734d21ae6639db168701c8" +checksum = "55025a7a518ad14518fb243559c058a2e5b848b015e31f1d90414f36e3317859" dependencies = [ "proc-macro-crate", "proc-macro2", diff --git a/pkgs/applications/virtualization/cloud-hypervisor/default.nix b/pkgs/applications/virtualization/cloud-hypervisor/default.nix index c208ec8f92d9c..9af9b964825f1 100644 --- a/pkgs/applications/virtualization/cloud-hypervisor/default.nix +++ b/pkgs/applications/virtualization/cloud-hypervisor/default.nix @@ -1,14 +1,16 @@ -{ lib, stdenv, fetchFromGitHub, rustPlatform, pkg-config, dtc, openssl }: +{ lib, stdenv, fetchFromGitHub, fetchpatch +, rustPlatform, pkg-config, dtc, openssl +}: rustPlatform.buildRustPackage rec { pname = "cloud-hypervisor"; - version = "40.0"; + version = "41.0"; src = fetchFromGitHub { owner = "cloud-hypervisor"; repo = pname; rev = "v${version}"; - hash = "sha256-zrMJGdbOukNbzmcTuIcHlwAbJvTzhz53dc4TO/Fplb4="; + hash = "sha256-CI7hWRZUexvmBZJ8cPXxZxwmcxLnw6h9PFMhoaj9jh4="; }; cargoLock = { @@ -26,7 +28,8 @@ rustPlatform.buildRustPackage rec { separateDebugInfo = true; nativeBuildInputs = [ pkg-config ]; - buildInputs = [ openssl ] ++ lib.optional stdenv.isAarch64 dtc; + buildInputs = lib.optional stdenv.hostPlatform.isAarch64 dtc; + checkInputs = [ openssl ]; OPENSSL_NO_VENDOR = true; diff --git a/pkgs/applications/virtualization/colima/default.nix b/pkgs/applications/virtualization/colima/default.nix index b3b981079d843..290186a59e3eb 100644 --- a/pkgs/applications/virtualization/colima/default.nix +++ b/pkgs/applications/virtualization/colima/default.nix @@ -12,18 +12,18 @@ , colima # use lima-bin on darwin to support native macOS virtualization # https://github.com/NixOS/nixpkgs/pull/209171 -, lima-drv ? if stdenv.isDarwin then lima-bin else lima +, lima-drv ? if stdenv.hostPlatform.isDarwin then lima-bin else lima }: buildGoModule rec { pname = "colima"; - version = "0.6.9"; + version = "0.7.5"; src = fetchFromGitHub { owner = "abiosoft"; repo = pname; rev = "v${version}"; - hash = "sha256-7kaZ55Uhvx8V75IgURD03fLoAd/O/+2h/7tv9XiqnX4="; + hash = "sha256-WInmoTUaEm2kQ7esZgPj3YIHmHbBrlBTWcLPC9/2MdY="; # We need the git revision leaveDotGit = true; postFetch = '' @@ -33,9 +33,9 @@ buildGoModule rec { }; nativeBuildInputs = [ installShellFiles makeWrapper ] - ++ lib.optionals stdenv.isDarwin [ darwin.DarwinTools ]; + ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.DarwinTools ]; - vendorHash = "sha256-FPcz109zQBHaS/bIl78rVeiEluR1PhrJhgs21Ex6qEg="; + vendorHash = "sha256-niuBo2YUUYKH0eSApOByNLrcHqr9m5VKGoiGp1fKklg="; # disable flaky Test_extractZones # https://hydra.nixos.org/build/212378003/log diff --git a/pkgs/applications/virtualization/conmon-rs/default.nix b/pkgs/applications/virtualization/conmon-rs/default.nix index efb463580e0ee..a68f48ebaa404 100644 --- a/pkgs/applications/virtualization/conmon-rs/default.nix +++ b/pkgs/applications/virtualization/conmon-rs/default.nix @@ -7,19 +7,19 @@ rustPlatform.buildRustPackage rec { pname = "conmon-rs"; - version = "0.6.3"; + version = "0.6.6"; src = fetchFromGitHub { owner = "containers"; repo = pname; rev = "v${version}"; - hash = "sha256-+RKjJtI01Y56+cFDdOSAL4BodI7R/rM3B3ht3p6+xzs="; + hash = "sha256-1kGAUAmiPI9zE8LE7G2r0Gy0YM+BUy2MxY7IQOu2ZDQ="; }; nativeBuildInputs = [ capnproto protobuf ]; doCheck = false; - cargoHash = "sha256-4VOse+y0EO9IORyeAO/j1t6ssQARJp7lK21TUJVuH78="; + cargoVendorDir = ".cargo-vendor"; meta = with lib; { description = "OCI container runtime monitor written in Rust"; diff --git a/pkgs/applications/virtualization/containerd/default.nix b/pkgs/applications/virtualization/containerd/default.nix index acb652e33cb77..3b9dcf0bfad4e 100644 --- a/pkgs/applications/virtualization/containerd/default.nix +++ b/pkgs/applications/virtualization/containerd/default.nix @@ -11,13 +11,13 @@ buildGoModule rec { pname = "containerd"; - version = "1.7.18"; + version = "1.7.22"; src = fetchFromGitHub { owner = "containerd"; repo = "containerd"; rev = "v${version}"; - hash = "sha256-IlK5IwniaBhqMgxQzV8btQcbdJkNEQeUMoh6aOsBOHQ="; + hash = "sha256-8IHBKai4PvvTuHPDTgx9wFEBzz4MM7Mwo8Q/bzFRzfk="; }; vendorHash = null; diff --git a/pkgs/applications/virtualization/cri-o/default.nix b/pkgs/applications/virtualization/cri-o/default.nix index 00f17d75d6e59..0524e0d699900 100644 --- a/pkgs/applications/virtualization/cri-o/default.nix +++ b/pkgs/applications/virtualization/cri-o/default.nix @@ -15,13 +15,13 @@ buildGoModule rec { pname = "cri-o"; - version = "1.30.2"; + version = "1.31.0"; src = fetchFromGitHub { owner = "cri-o"; repo = "cri-o"; rev = "v${version}"; - hash = "sha256-4v7Pt3WS68h+Un4QNATyQ/o/+8b8nVoNsy6VgwB9Brc="; + hash = "sha256-pY8FRxexf/WG+aGkKZc4EtqO9uxAV7D6EFWirgSEye8="; }; vendorHash = null; diff --git a/pkgs/applications/virtualization/crosvm/default.nix b/pkgs/applications/virtualization/crosvm/default.nix index 40d940a6904d6..96e457b407246 100644 --- a/pkgs/applications/virtualization/crosvm/default.nix +++ b/pkgs/applications/virtualization/crosvm/default.nix @@ -1,22 +1,23 @@ { lib, rustPlatform, fetchgit , pkg-config, protobuf, python3, wayland-scanner , libcap, libdrm, libepoxy, minijail, virglrenderer, wayland, wayland-protocols +, pkgsCross }: rustPlatform.buildRustPackage rec { pname = "crosvm"; - version = "125.0"; + version = "127.0"; src = fetchgit { url = "https://chromium.googlesource.com/chromiumos/platform/crosvm"; - rev = "6a7ff1ecb7fad6820d3bbfe8b11e65854059aba5"; - hash = "sha256-y/vHU8i9YNbzSHla853z/2w914mVMFOryyaHE1uxlvM="; + rev = "8fdfed12c960850e9d5e809cfd2a40ce3bdd98d6"; + hash = "sha256-W0zLYM91xoq9vURgYs2noc9F9RtvoXztIIHMx0HVK5g="; fetchSubmodules = true; }; separateDebugInfo = true; - cargoHash = "sha256-1AUfd9dhIZvVVUsVbnGoLKc0lBfccwM4wqWgU4yZWOE="; + cargoHash = "sha256-nEJBRlwMqTahaIC9WdtoxGLVfc+U9sJ0ilzLhavcbD0="; nativeBuildInputs = [ pkg-config protobuf python3 rustPlatform.bindgenHook wayland-scanner @@ -35,7 +36,12 @@ rustPlatform.buildRustPackage rec { buildFeatures = [ "virgl_renderer" ]; - passthru.updateScript = ./update.py; + passthru = { + updateScript = ./update.py; + tests = { + musl = pkgsCross.musl64.crosvm; + }; + }; meta = with lib; { description = "Secure virtual machine monitor for KVM"; diff --git a/pkgs/applications/virtualization/crun/default.nix b/pkgs/applications/virtualization/crun/default.nix index 18d5909fbcc86..5dca484e5e9ea 100644 --- a/pkgs/applications/virtualization/crun/default.nix +++ b/pkgs/applications/virtualization/crun/default.nix @@ -39,13 +39,13 @@ let in stdenv.mkDerivation rec { pname = "crun"; - version = "1.15"; + version = "1.17"; src = fetchFromGitHub { owner = "containers"; repo = pname; rev = version; - hash = "sha256-ZLkpwNxhTssp5RZ041+/mveq7Sct8fVzsdt8X319V1Q="; + hash = "sha256-d2YBpW8KivWYPRPpvXlT5tWPX8hvTCaSkMxdSuswYRA="; fetchSubmodules = true; }; diff --git a/pkgs/applications/virtualization/ddev/default.nix b/pkgs/applications/virtualization/ddev/default.nix index 549022d9908c2..95aacbeb63865 100644 --- a/pkgs/applications/virtualization/ddev/default.nix +++ b/pkgs/applications/virtualization/ddev/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "ddev"; - version = "1.23.2"; + version = "1.23.4"; src = fetchFromGitHub { owner = "ddev"; repo = "ddev"; rev = "v${version}"; - hash = "sha256-pzBSyCIA2r/4zYIYEmKF6c0gryudSKZebSXSpmJUbsQ="; + hash = "sha256-+Ou9YbFwUVu6AqR041ngnVb9TpiO1UMph2w1zsbEMEM="; }; vendorHash = null; @@ -38,6 +38,6 @@ buildGoModule rec { license = licenses.asl20; platforms = platforms.unix; mainProgram = "ddev"; - maintainers = with maintainers; [ ]; + maintainers = [ ]; }; } diff --git a/pkgs/applications/virtualization/docker/buildx.nix b/pkgs/applications/virtualization/docker/buildx.nix index 609b0e97deb05..57ce036eb4956 100644 --- a/pkgs/applications/virtualization/docker/buildx.nix +++ b/pkgs/applications/virtualization/docker/buildx.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "docker-buildx"; - version = "0.14.1"; + version = "0.17.1"; src = fetchFromGitHub { owner = "docker"; repo = "buildx"; rev = "v${version}"; - hash = "sha256-IseiGF+tQWv7Z2jlCINuWH2Gzcdow2qazvYVFBGyQPU="; + hash = "sha256-+d0yaosNoOOuo/A7aC6pfy2xGJU718nBBNMMok2Ofv0="; }; doCheck = false; diff --git a/pkgs/applications/virtualization/docker/compose.nix b/pkgs/applications/virtualization/docker/compose.nix index e5ce653f8b137..45099329c2e62 100644 --- a/pkgs/applications/virtualization/docker/compose.nix +++ b/pkgs/applications/virtualization/docker/compose.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "docker-compose"; - version = "2.27.2"; + version = "2.29.7"; src = fetchFromGitHub { owner = "docker"; repo = "compose"; rev = "v${version}"; - hash = "sha256-QwTn/oAfB1bJkPcI0oDGC4vp0xUQxjhF8+jZ+hqpr5Q="; + hash = "sha256-6ksZAGVAFnLwPnCXlCtp4cWfxzJRp/bfVkpvp3Z6fiQ="; }; postPatch = '' @@ -16,7 +16,7 @@ buildGoModule rec { rm -rf e2e/ ''; - vendorHash = "sha256-KczMkSwYP9Ng1dYUU7+ig2VRUEOPkaWTV77c9xGqbw0="; + vendorHash = "sha256-B2ywdZjp7h7eFYNJ4wXmAdbOxc8ftGqHnLmDvzQASJE="; ldflags = [ "-X github.com/docker/compose/v2/internal.Version=${version}" "-s" "-w" ]; @@ -35,6 +35,6 @@ buildGoModule rec { mainProgram = "docker-compose"; homepage = "https://github.com/docker/compose"; license = licenses.asl20; - maintainers = with maintainers; [ ]; + maintainers = [ ]; }; } diff --git a/pkgs/applications/virtualization/docker/compose_1.nix b/pkgs/applications/virtualization/docker/compose_1.nix deleted file mode 100644 index ac5d726439ce1..0000000000000 --- a/pkgs/applications/virtualization/docker/compose_1.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ lib, buildPythonApplication, fetchPypi -, installShellFiles -, mock, pytest, nose -, pyyaml, colorama, docopt -, dockerpty, docker, jsonschema, requests -, six, texttable, websocket-client, cached-property -, paramiko, distro, python-dotenv -}: - -buildPythonApplication rec { - version = "1.29.2"; - pname = "docker-compose"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-TIzZ0h0jdBJ5PRi9MxEASe6a+Nqz/iwhO70HM5WbCbc="; - }; - - # lots of networking and other fails - doCheck = false; - nativeBuildInputs = [ installShellFiles ]; - nativeCheckInputs = [ mock pytest nose ]; - propagatedBuildInputs = [ - pyyaml colorama dockerpty docker - jsonschema requests six texttable websocket-client - docopt cached-property paramiko distro python-dotenv - ]; - - postPatch = '' - # Remove upper bound on requires, see also - # https://github.com/docker/compose/issues/4431 - sed -i "s/, < .*',$/',/" setup.py - ''; - - postInstall = '' - installShellCompletion --bash contrib/completion/bash/docker-compose - installShellCompletion --zsh contrib/completion/zsh/_docker-compose - ''; - - meta = with lib; { - homepage = "https://docs.docker.com/compose/"; - description = "Multi-container orchestration for Docker"; - mainProgram = "docker-compose"; - license = licenses.asl20; - maintainers = with maintainers; [ Frostman ]; - }; -} diff --git a/pkgs/applications/virtualization/docker/default.nix b/pkgs/applications/virtualization/docker/default.nix index 3d096c3389f9d..928480e6c4f69 100644 --- a/pkgs/applications/virtualization/docker/default.nix +++ b/pkgs/applications/virtualization/docker/default.nix @@ -16,11 +16,12 @@ rec { , sqlite, iproute2, docker-buildx, docker-compose, docker-sbom , iptables, e2fsprogs, xz, util-linux, xfsprogs, git , procps, rootlesskit, slirp4netns, fuse-overlayfs, nixosTests - , clientOnly ? !stdenv.isLinux, symlinkJoin + , clientOnly ? !stdenv.hostPlatform.isLinux, symlinkJoin , withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd, systemd - , withBtrfs ? stdenv.isLinux, btrfs-progs - , withLvm ? stdenv.isLinux, lvm2 - , withSeccomp ? stdenv.isLinux, libseccomp + , withBtrfs ? stdenv.hostPlatform.isLinux, btrfs-progs + , withLvm ? stdenv.hostPlatform.isLinux, lvm2 + , withSeccomp ? stdenv.hostPlatform.isLinux, libseccomp + , knownVulnerabilities ? [] }: let docker-runc = runc.overrideAttrs { @@ -79,7 +80,7 @@ rec { hash = mobyHash; }; - moby = buildGoModule (lib.optionalAttrs stdenv.isLinux rec { + moby = buildGoModule (lib.optionalAttrs stdenv.hostPlatform.isLinux rec { pname = "moby"; inherit version; @@ -94,9 +95,9 @@ rec { ++ lib.optional withSystemd systemd ++ lib.optional withSeccomp libseccomp; - extraPath = lib.optionals stdenv.isLinux (lib.makeBinPath [ iproute2 iptables e2fsprogs xz xfsprogs procps util-linux git ]); + extraPath = lib.optionals stdenv.hostPlatform.isLinux (lib.makeBinPath [ iproute2 iptables e2fsprogs xz xfsprogs procps util-linux git ]); - extraUserPath = lib.optionals (stdenv.isLinux && !clientOnly) (lib.makeBinPath [ rootlesskit slirp4netns fuse-overlayfs ]); + extraUserPath = lib.optionals (stdenv.hostPlatform.isLinux && !clientOnly) (lib.makeBinPath [ rootlesskit slirp4netns fuse-overlayfs ]); patches = lib.optionals (lib.versionOlder version "23") [ # This patch incorporates code from a PR fixing using buildkit with the ZFS graph driver. @@ -187,7 +188,7 @@ rec { makeWrapper pkg-config go-md2man go libtool installShellFiles ]; - buildInputs = plugins ++ lib.optionals (lib.versionAtLeast version "23" && stdenv.isLinux) [ + buildInputs = plugins ++ lib.optionals (lib.versionAtLeast version "23" && stdenv.hostPlatform.isLinux) [ glibc glibc.static ]; @@ -267,6 +268,7 @@ rec { license = licenses.asl20; maintainers = with maintainers; [ offline vdemeester periklis teutat3s ]; mainProgram = "docker"; + inherit knownVulnerabilities; }; }); @@ -284,32 +286,52 @@ rec { containerdHash = "sha256-y3CYDZbA2QjIn1vyq/p1F1pAVxQHi/0a6hGWZCRWzyk="; tiniRev = "v0.19.0"; tiniHash = "sha256-ZDKu/8yE5G0RYFJdhgmCdN3obJNyRWv6K/Gd17zc1sI="; + knownVulnerabilities = [ + "CVE-2024-23651" + "CVE-2024-23652" + "CVE-2024-23653" + "CVE-2024-41110" + ]; }; docker_25 = callPackage dockerGen rec { - version = "25.0.5"; + version = "25.0.6"; cliRev = "v${version}"; - cliHash = "sha256-CACMi3bXUN6oGc2f/Z+lNQqMgQ4llRWPRKgijdpiPGg="; + cliHash = "sha256-7ZKjlONL5RXEJZrvssrL1PQMNANP0qTw4myGKdtd19U="; mobyRev = "v${version}"; - mobyHash = "sha256-4QGz22fXxyAD77pyUWb2lF3VKqxmPIrGqcJGoyrEHew="; + mobyHash = "sha256-+zkhUMeVD3HNq8WrWQmLskq+HykvD5kzSACmf67YbJE="; runcRev = "v1.1.12"; runcHash = "sha256-N77CU5XiGYIdwQNPFyluXjseTeaYuNJ//OsEUS0g/v0="; - containerdRev = "v1.7.13"; - containerdHash = "sha256-y3CYDZbA2QjIn1vyq/p1F1pAVxQHi/0a6hGWZCRWzyk="; + containerdRev = "v1.7.20"; + containerdHash = "sha256-Q9lTzz+G5PSoChy8MZtbOpO81AyNWXC+CgGkdOg14uY="; tiniRev = "v0.19.0"; tiniHash = "sha256-ZDKu/8yE5G0RYFJdhgmCdN3obJNyRWv6K/Gd17zc1sI="; }; docker_26 = callPackage dockerGen rec { - version = "26.1.4"; + version = "26.1.5"; cliRev = "v${version}"; - cliHash = "sha256-7yCR49Un1i1kB+66IKt/8lgwKNkUjtVh52DH9OY8Pw4="; + cliHash = "sha256-UlN+Uc0YHhLyu14h5oDBXP4K9y2tYKPOIPTGZCe4PVY="; mobyRev = "v${version}"; - mobyHash = "sha256-0WwlpUECvmNq6DBm7U7rjzYfGKF7pxsfs9+x5uVPV0k="; + mobyHash = "sha256-6Hx7GnA7P6HqDlnGoc+HpPHSl69XezwAEGbvWYUVQlE="; runcRev = "v1.1.12"; runcHash = "sha256-N77CU5XiGYIdwQNPFyluXjseTeaYuNJ//OsEUS0g/v0="; - containerdRev = "v1.7.15"; - containerdHash = "sha256-qLrPLGxsUmgEscrhyl+1rJ0k7c9ibKnpMpsJPD4xDZU="; + containerdRev = "v1.7.18"; + containerdHash = "sha256-IlK5IwniaBhqMgxQzV8btQcbdJkNEQeUMoh6aOsBOHQ="; + tiniRev = "v0.19.0"; + tiniHash = "sha256-ZDKu/8yE5G0RYFJdhgmCdN3obJNyRWv6K/Gd17zc1sI="; + }; + + docker_27 = callPackage dockerGen rec { + version = "27.3.0"; + cliRev = "v${version}"; + cliHash = "sha256-1z2MmWq+HD2fhpZqXu0G7oBL3Mc0NN/fR69aMWRelns="; + mobyRev = "v${version}"; + mobyHash = "sha256-AKl06k2ePWOFhL3oH086HcLLYs2Da+wLOcGjGnQ0SXE="; + runcRev = "v1.1.14"; + runcHash = "sha256-7PYbSZqCQLTaeFppuNz5mxDlwEyLkA5zpdMhWy1tWmc="; + containerdRev = "v1.7.22"; + containerdHash = "sha256-8IHBKai4PvvTuHPDTgx9wFEBzz4MM7Mwo8Q/bzFRzfk="; tiniRev = "v0.19.0"; tiniHash = "sha256-ZDKu/8yE5G0RYFJdhgmCdN3obJNyRWv6K/Gd17zc1sI="; }; diff --git a/pkgs/applications/virtualization/docker/gc.nix b/pkgs/applications/virtualization/docker/gc.nix index 7d45427627fa9..29df4bfea3a55 100644 --- a/pkgs/applications/virtualization/docker/gc.nix +++ b/pkgs/applications/virtualization/docker/gc.nix @@ -1,7 +1,4 @@ { stdenv, lib, fetchFromGitHub, makeWrapper, docker, coreutils, procps, gnused, findutils, gnugrep }: - -with lib; - stdenv.mkDerivation rec { pname = "docker-gc"; version = "unstable-2015-10-5"; @@ -23,7 +20,7 @@ stdenv.mkDerivation rec { --prefix PATH : "${lib.makeBinPath [ docker coreutils procps gnused findutils gnugrep ]}" ''; - meta = { + meta = with lib; { description = "Docker garbage collection of containers and images"; mainProgram = "docker-gc"; license = licenses.asl20; diff --git a/pkgs/applications/virtualization/driver/win-pvdrivers/default.nix b/pkgs/applications/virtualization/driver/win-pvdrivers/default.nix deleted file mode 100644 index c44f101ba9464..0000000000000 --- a/pkgs/applications/virtualization/driver/win-pvdrivers/default.nix +++ /dev/null @@ -1,74 +0,0 @@ -{ lib, stdenvNoCC, fetchurl }: - -let - # Upstream versioned download links are broken - # NOTE: the archive.org timestamp must be updated if the version changes. - # See https://xenproject.org/downloads/ - files = [ - { - url = "https://web.archive.org/web/20230817070451if_/https://xenbits.xenproject.org/pvdrivers/win/xenbus.tar"; - hash = "sha256-sInkbVL/xkoUeZxgknLM3e2AXBVSqItF2Vpkon53Xec="; - } - { - url = "https://web.archive.org/web/20230817070811if_/https://xenbits.xenproject.org/pvdrivers/win/xencons.tar"; - hash = "sha256-r8bxH5B4y0V9qgALi42KtpZW05UOevv29AqqXaIXMBo="; - } - { - url = "https://web.archive.org/web/20230817070811if_/https://xenbits.xenproject.org/pvdrivers/win/xenhid.tar"; - hash = "sha256-e7ztzaXi/6irMus9IH0cfbW5HiKSaybXV1C/rd5mEfA="; - } - { - url = "https://web.archive.org/web/20230817071133if_/https://xenbits.xenproject.org/pvdrivers/win/xeniface.tar"; - hash = "sha256-qPM0TjcGR2luPtOSAfXJ22k6yhwJOmOP3ot6kopEFsI="; - } - { - url = "https://web.archive.org/web/20230817071134if_/https://xenbits.xenproject.org/pvdrivers/win/xennet.tar"; - hash = "sha256-Vg1wSfXjIVRd2iXCa19W4Jdaf2LTVin0yac/D70UjPM="; - } - { - url = "https://web.archive.org/web/20230817070811if_/https://xenbits.xenproject.org/pvdrivers/win/xenvbd.tar"; - hash = "sha256-nLNM0TWqsEWiQBCYxARMldvRecRUcY5DBF5DNAG4490="; - } - { - url = "https://web.archive.org/web/20230817071225if_/https://xenbits.xenproject.org/pvdrivers/win/xenvif.tar"; - hash = "sha256-R8G5vG6Q4g0/UkA2oxcc9/jaHZQYb+u64NShCNt7s7U="; - } - { - url = "https://web.archive.org/web/20230817071153if_/https://xenbits.xenproject.org/pvdrivers/win/xenvkbd.tar"; - hash = "sha256-CaSxCKnT/KaZw8Ma60g2z+4lOOWIRisGRtzMveQqQmM="; - } - ]; - -in -stdenvNoCC.mkDerivation { - pname = "win-pvdrivers"; - version = "unstable-2023-08-17"; - - srcs = map ({hash, url}: fetchurl { - inherit hash url; - # Wait & retry up to 3 times as archive.org can closes connection - # when an HTTP client makes too many requests - curlOpts = "--retry 3 --retry-delay 5"; - }) files; - - - unpackPhase = '' - runHook preUnpack - - for _src in $srcs; do - mkdir -p $out - tar xfv $_src -C $out - done - - runHook postUnpack - ''; - - meta = with lib; { - description = "Xen Subproject: Windows PV Drivers"; - homepage = "https://xenproject.org/developers/teams/windows-pv-drivers/"; - license = licenses.bsd2; - maintainers = with maintainers; [ anthonyroussel ]; - platforms = platforms.linux; - sourceProvenance = with sourceTypes; [ binaryNativeCode ]; - }; -} diff --git a/pkgs/applications/virtualization/ecs-agent/default.nix b/pkgs/applications/virtualization/ecs-agent/default.nix index e5fe625cdf9f1..39c1ba4b7e2eb 100644 --- a/pkgs/applications/virtualization/ecs-agent/default.nix +++ b/pkgs/applications/virtualization/ecs-agent/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "amazon-ecs-agent"; - version = "1.82.4"; + version = "1.86.3"; src = fetchFromGitHub { rev = "v${version}"; owner = "aws"; repo = pname; - hash = "sha256-bM/K3fxkeDwsXKsgZaEkurgYdSHnOgIQ2oUKc5atvZk="; + hash = "sha256-YygvAYoqbWVmtBgHNrP0Xp1zSgCv2PsnWARWyo3K8rM="; }; vendorHash = null; diff --git a/pkgs/applications/virtualization/firecracker/default.nix b/pkgs/applications/virtualization/firecracker/default.nix deleted file mode 100644 index fca5227177d46..0000000000000 --- a/pkgs/applications/virtualization/firecracker/default.nix +++ /dev/null @@ -1,59 +0,0 @@ -{ fetchurl, lib, stdenv }: - -let - version = "1.7.0"; - # nixpkgs-update: no auto update - - suffix = { - x86_64-linux = "x86_64"; - aarch64-linux = "aarch64"; - }."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); - - baseurl = "https://github.com/firecracker-microvm/firecracker/releases/download"; - - dlbin = sha256: fetchurl { - url = "${baseurl}/v${version}/firecracker-v${version}-${suffix}.tgz"; - sha256 = sha256."${stdenv.hostPlatform.system}"or (throw "unsupported system ${stdenv.hostPlatform.system}"); - }; - -in -stdenv.mkDerivation { - pname = "firecracker"; - inherit version; - - sourceRoot = "."; - src = dlbin { - x86_64-linux = "sha256-Vb0+bVmf3RCONuUvmu4jGfBsGKkPL6SbZOk/3wb1/1M="; - aarch64-linux = "sha256-PLoQA4a6qulxSns/ZRSgn6EtHr46/hstNhP1pAHt9VA="; - }; - - dontConfigure = true; - - buildPhase = '' - mv release-v${version}-${suffix}/firecracker-v${version}-${suffix} firecracker - mv release-v${version}-${suffix}/jailer-v${version}-${suffix} jailer - chmod +x firecracker jailer - ''; - - doCheck = true; - checkPhase = '' - ./firecracker --version - ./jailer --version - ''; - - installPhase = '' - mkdir -p $out/bin - install -D firecracker $out/bin/firecracker - install -D jailer $out/bin/jailer - ''; - - meta = with lib; { - description = "Secure, fast, minimal micro-container virtualization"; - homepage = "http://firecracker-microvm.io"; - changelog = "https://github.com/firecracker-microvm/firecracker/releases/tag/v${version}"; - mainProgram = "firecracker"; - license = licenses.asl20; - platforms = [ "x86_64-linux" "aarch64-linux" ]; - maintainers = with maintainers; [ thoughtpolice qjoly ]; - }; -} diff --git a/pkgs/applications/virtualization/kraft/default.nix b/pkgs/applications/virtualization/kraft/default.nix index 1e066477b721b..a20f44bc9d881 100644 --- a/pkgs/applications/virtualization/kraft/default.nix +++ b/pkgs/applications/virtualization/kraft/default.nix @@ -1,7 +1,6 @@ { lib , buildGoModule , fetchFromGitHub -, stdenv , nix-update-script }: diff --git a/pkgs/applications/virtualization/krunvm/default.nix b/pkgs/applications/virtualization/krunvm/default.nix index d6da5a2742f51..392ba594189ab 100644 --- a/pkgs/applications/virtualization/krunvm/default.nix +++ b/pkgs/applications/virtualization/krunvm/default.nix @@ -35,9 +35,9 @@ stdenv.mkDerivation rec { rustc asciidoctor makeWrapper - ] ++ lib.optionals stdenv.isDarwin [ sigtool ]; + ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ sigtool ]; - buildInputs = [ libkrun ] ++ lib.optionals stdenv.isDarwin [ + buildInputs = [ libkrun ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ]; @@ -57,7 +57,7 @@ stdenv.mkDerivation rec { # It attaches entitlements with codesign and strip removes those, # voiding the entitlements and making it non-operational. - dontStrip = stdenv.isDarwin; + dontStrip = stdenv.hostPlatform.isDarwin; postFixup = '' wrapProgram $out/bin/krunvm \ diff --git a/pkgs/applications/virtualization/libnvidia-container/default.nix b/pkgs/applications/virtualization/libnvidia-container/default.nix index b462b24711de5..28ea0a675b17b 100644 --- a/pkgs/applications/virtualization/libnvidia-container/default.nix +++ b/pkgs/applications/virtualization/libnvidia-container/default.nix @@ -1,6 +1,6 @@ { stdenv , lib -, addOpenGLRunpath +, addDriverRunpath , fetchFromGitHub , pkg-config , elfutils @@ -102,7 +102,7 @@ stdenv.mkDerivation rec { postInstall = let - inherit (addOpenGLRunpath) driverLink; + inherit (addDriverRunpath) driverLink; libraryPath = lib.makeLibraryPath [ "$out" driverLink "${driverLink}-32" ]; in '' diff --git a/pkgs/applications/virtualization/lima/bin.nix b/pkgs/applications/virtualization/lima/bin.nix index ba26d9e6041d5..ca45c58ff2190 100644 --- a/pkgs/applications/virtualization/lima/bin.nix +++ b/pkgs/applications/virtualization/lima/bin.nix @@ -48,7 +48,7 @@ stdenvNoCC.mkDerivation { sourceRoot = "."; nativeBuildInputs = [ makeBinaryWrapper installShellFiles ] - ++ lib.optionals stdenvNoCC.isLinux [ autoPatchelfHook ]; + ++ lib.optionals stdenvNoCC.hostPlatform.isLinux [ autoPatchelfHook ]; installPhase = '' runHook preInstall @@ -57,10 +57,17 @@ stdenvNoCC.mkDerivation { chmod +x $out/bin/limactl wrapProgram $out/bin/limactl \ --prefix PATH : ${lib.makeBinPath [ qemu ]} - installShellCompletion --cmd limactl \ - --bash <($out/bin/limactl completion bash) \ - --fish <($out/bin/limactl completion fish) \ - --zsh <($out/bin/limactl completion zsh) + + # the shell completion only works with a patched $out/bin/limactl and so + # needs to run after the autoPatchelfHook is executed in postFixup. + doShellCompletion() { + installShellCompletion --cmd limactl \ + --bash <($out/bin/limactl completion bash) \ + --fish <($out/bin/limactl completion fish) \ + --zsh <($out/bin/limactl completion zsh) + } + postFixupHooks+=(doShellCompletion) + runHook postInstall ''; @@ -72,7 +79,7 @@ stdenvNoCC.mkDerivation { # Stripping removes entitlements of the binary on Darwin making it non-operational. # Therefore, disable stripping on Darwin. - dontStrip = stdenvNoCC.isDarwin; + dontStrip = stdenvNoCC.hostPlatform.isDarwin; passthru.updateScript = let diff --git a/pkgs/applications/virtualization/lima/default.nix b/pkgs/applications/virtualization/lima/default.nix index c57b58a008b32..318d54c77c413 100644 --- a/pkgs/applications/virtualization/lima/default.nix +++ b/pkgs/applications/virtualization/lima/default.nix @@ -23,7 +23,7 @@ buildGoModule rec { vendorHash = "sha256-P0Qnfu/cqLveAwz9jf/wTXxkoh0jvazlE5C/PcUrWsA="; nativeBuildInputs = [ makeWrapper installShellFiles ] - ++ lib.optionals stdenv.isDarwin [ xcbuild.xcrun sigtool ]; + ++ lib.optionals stdenv.hostPlatform.isDarwin [ xcbuild.xcrun sigtool ]; # clean fails with read only vendor dir postPatch = '' @@ -34,7 +34,7 @@ buildGoModule rec { # It attaches entitlements with codesign and strip removes those, # voiding the entitlements and making it non-operational. - dontStrip = stdenv.isDarwin; + dontStrip = stdenv.hostPlatform.isDarwin; buildPhase = '' runHook preBuild diff --git a/pkgs/applications/virtualization/lkl/default.nix b/pkgs/applications/virtualization/lkl/default.nix index c889dc5ff50af..751cbd021fc21 100644 --- a/pkgs/applications/virtualization/lkl/default.nix +++ b/pkgs/applications/virtualization/lkl/default.nix @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { # Fixup build with newer Linux headers: https://github.com/lkl/linux/pull/484 sed '1i#include <linux/sockios.h>' -i tools/lkl/lib/hijack/xlate.c - '' + lib.optionalString stdenv.isi686 '' + '' + lib.optionalString stdenv.hostPlatform.isi686 '' echo CONFIG_KALLSYMS=n >> arch/lkl/configs/defconfig echo CONFIG_KALLSYMS_BASE_RELATIVE=n >> arch/lkl/configs/defconfig '' + lib.optionalString firewallSupport '' diff --git a/pkgs/applications/virtualization/looking-glass-client/default.nix b/pkgs/applications/virtualization/looking-glass-client/default.nix index a3eaea0cfd787..6adb2ebcc163e 100644 --- a/pkgs/applications/virtualization/looking-glass-client/default.nix +++ b/pkgs/applications/virtualization/looking-glass-client/default.nix @@ -26,6 +26,7 @@ , wayland , wayland-protocols +, wayland-scanner , pipewire , pulseaudio @@ -47,15 +48,15 @@ let icon = "lg-logo"; }; in -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "looking-glass-client"; version = "B7-rc1"; src = fetchFromGitHub { owner = "gnif"; repo = "LookingGlass"; - rev = version; - sha256 = "sha256-ne1Q+67+P8RHcTsqdiSSwkFf0g3pSNT91WN/lsSzssU="; + rev = finalAttrs.version; + hash = "sha256-ne1Q+67+P8RHcTsqdiSSwkFf0g3pSNT91WN/lsSzssU="; fetchSubmodules = true; }; @@ -64,7 +65,7 @@ stdenv.mkDerivation rec { ./0001-client-cmake-move-X11-config-directives-to-displayse.patch ]; - nativeBuildInputs = [ cmake pkg-config ]; + nativeBuildInputs = [ cmake pkg-config wayland-scanner ]; buildInputs = [ libX11 libGL freefont_ttf spice-protocol expat libbfd nettle fontconfig libffi ] ++ lib.optionals xorgSupport [ libxkbcommon libXi libXScrnSaver libXinerama libXcursor libXpresent libXext libXrandr libXdmcp ] @@ -80,7 +81,7 @@ stdenv.mkDerivation rec { ++ lib.optionals (!pipewireSupport) [ "-DENABLE_PIPEWIRE=no" ]; postUnpack = '' - echo ${src.rev} > source/VERSION + echo ${finalAttrs.src.rev} > source/VERSION export sourceRoot="source/client" ''; @@ -105,4 +106,4 @@ stdenv.mkDerivation rec { maintainers = with maintainers; [ alexbakker babbaj j-brn ]; platforms = [ "x86_64-linux" ]; }; -} +}) diff --git a/pkgs/applications/virtualization/nixpacks/default.nix b/pkgs/applications/virtualization/nixpacks/default.nix index b32e607032750..772cc2189d99a 100644 --- a/pkgs/applications/virtualization/nixpacks/default.nix +++ b/pkgs/applications/virtualization/nixpacks/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "nixpacks"; - version = "1.24.1"; + version = "1.28.1"; src = fetchFromGitHub { owner = "railwayapp"; repo = pname; rev = "v${version}"; - sha256 = "sha256-niKz+F1RJtZrE8+BaJwy5bjGS3miJf5C9LttTnC+iuk="; + sha256 = "sha256-0gy9fm18Tc1ALZEV+XZN8kwK725PpIK2OTKKMatvtVQ="; }; - cargoHash = "sha256-fzG53DqZKgW6Gen+0ZO9lxgPXkxw7S6OdZWNNI+y9hU="; + cargoHash = "sha256-r7jVcDja3BZyZoN2JxDymyv+rOv3wWaGo+yC4GwnZ50="; # skip test due FHS dependency doCheck = false; diff --git a/pkgs/applications/virtualization/open-vm-tools/default.nix b/pkgs/applications/virtualization/open-vm-tools/default.nix deleted file mode 100644 index e5dde1e021c7f..0000000000000 --- a/pkgs/applications/virtualization/open-vm-tools/default.nix +++ /dev/null @@ -1,150 +0,0 @@ -{ stdenv -, lib -, fetchFromGitHub -, makeWrapper -, autoreconfHook -, bash -, fuse3 -, libmspack -, openssl -, pam -, xercesc -, icu -, libdnet -, procps -, libtirpc -, rpcsvc-proto -, libX11 -, libXext -, libXinerama -, libXi -, libXrender -, libXrandr -, libXtst -, libxcrypt -, libxml2 -, pkg-config -, glib -, gdk-pixbuf-xlib -, gtk3 -, gtkmm3 -, iproute2 -, dbus -, systemd -, which -, libdrm -, udev -, util-linux -, xmlsec -, withX ? true -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "open-vm-tools"; - version = "12.4.0"; - - src = fetchFromGitHub { - owner = "vmware"; - repo = "open-vm-tools"; - rev = "stable-${finalAttrs.version}"; - hash = "sha256-RcjNY02aLOU4X6znfZ37+ICB19WYp+HxHRvvpfW3Ub8="; - }; - - sourceRoot = "${finalAttrs.src.name}/open-vm-tools"; - - outputs = [ "out" "dev" ]; - - nativeBuildInputs = [ - autoreconfHook - makeWrapper - pkg-config - ]; - - buildInputs = [ - fuse3 - glib - icu - libdnet - libdrm - libmspack - libtirpc - libxcrypt - libxml2 - openssl - pam - procps - rpcsvc-proto - udev - xercesc - xmlsec - ] ++ lib.optionals withX [ - gdk-pixbuf-xlib - gtk3 - gtkmm3 - libX11 - libXext - libXinerama - libXi - libXrender - libXrandr - libXtst - ]; - - postPatch = '' - sed -i Makefile.am \ - -e 's,etc/vmware-tools,''${prefix}/etc/vmware-tools,' - sed -i scripts/Makefile.am \ - -e 's,^confdir = ,confdir = ''${prefix},' \ - -e 's,usr/bin,''${prefix}/usr/bin,' - sed -i services/vmtoolsd/Makefile.am \ - -e 's,etc/vmware-tools,''${prefix}/etc/vmware-tools,' \ - -e 's,$(PAM_PREFIX),''${prefix}/$(PAM_PREFIX),' - sed -i vgauth/service/Makefile.am \ - -e 's,/etc/vmware-tools/vgauth/schemas,''${prefix}/etc/vmware-tools/vgauth/schemas,' \ - -e 's,$(DESTDIR)/etc/vmware-tools/vgauth.conf,''${prefix}/etc/vmware-tools/vgauth.conf,' - - # don't abort on any warning - sed -i 's,CFLAGS="$CFLAGS -Werror",,' configure.ac - - # Make reboot work, shutdown is not in /sbin on NixOS - sed -i 's,/sbin/shutdown,shutdown,' lib/system/systemLinux.c - - # Fix paths to fuse3 (we do not use fuse2 so that is not modified) - sed -i 's,/bin/fusermount3,${fuse3}/bin/fusermount3,' vmhgfs-fuse/config.c - - substituteInPlace services/plugins/vix/foundryToolsDaemon.c \ - --replace "/usr/bin/vmhgfs-fuse" "${placeholder "out"}/bin/vmhgfs-fuse" \ - --replace "/bin/mount" "${util-linux}/bin/mount" - ''; - - configureFlags = [ - "--without-kernel-modules" - "--with-udev-rules-dir=${placeholder "out"}/lib/udev/rules.d" - "--with-fuse=fuse3" - ] ++ lib.optional (!withX) "--without-x"; - - enableParallelBuilding = true; - - preConfigure = '' - mkdir -p ${placeholder "out"}/lib/udev/rules.d - ''; - - postInstall = '' - wrapProgram "$out/etc/vmware-tools/scripts/vmware/network" \ - --prefix PATH ':' "${lib.makeBinPath [ iproute2 dbus systemd which ]}" - substituteInPlace "$out/lib/udev/rules.d/99-vmware-scsi-udev.rules" --replace "/bin/sh" "${bash}/bin/sh" - ''; - - meta = with lib; { - homepage = "https://github.com/vmware/open-vm-tools"; - changelog = "https://github.com/vmware/open-vm-tools/releases/tag/stable-${finalAttrs.version}"; - description = "Set of tools for VMWare guests to improve host-guest interaction"; - longDescription = '' - A set of services and modules that enable several features in VMware products for - better management of, and seamless user interactions with, guests. - ''; - license = licenses.gpl2; - platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" ]; - maintainers = with maintainers; [ joamaki kjeremy ]; - }; -}) diff --git a/pkgs/applications/virtualization/podman-compose/default.nix b/pkgs/applications/virtualization/podman-compose/default.nix index bdd585e9c8bc4..44d9caf260573 100644 --- a/pkgs/applications/virtualization/podman-compose/default.nix +++ b/pkgs/applications/virtualization/podman-compose/default.nix @@ -1,7 +1,7 @@ -{ lib, buildPythonApplication, fetchFromGitHub, python-dotenv, pyyaml, setuptools, pipBuildHook, pypaBuildHook }: +{ lib, buildPythonApplication, fetchFromGitHub, python-dotenv, pyyaml, setuptools, pypaBuildHook }: buildPythonApplication rec { - version = "1.1.0"; + version = "1.2.0"; pname = "podman-compose"; pyproject = true; @@ -9,10 +9,9 @@ buildPythonApplication rec { repo = "podman-compose"; owner = "containers"; rev = "v${version}"; - sha256 = "sha256-uNgzdLrnDIABtt0L2pvsil14esRzl0XcWohgf7Oksr8="; + hash = "sha256-40RatexY/6eRfCodaiBeJpyt1sDUj2STSPL0gBECdRs="; }; - build-system = [ setuptools ]; diff --git a/pkgs/applications/virtualization/podman-desktop/default.nix b/pkgs/applications/virtualization/podman-desktop/default.nix index fdf8294013990..ce7d993d39dea 100644 --- a/pkgs/applications/virtualization/podman-desktop/default.nix +++ b/pkgs/applications/virtualization/podman-desktop/default.nix @@ -51,7 +51,7 @@ stdenv.mkDerivation (finalAttrs: { makeWrapper copyDesktopItems ] - ++ lib.optionals stdenv.isDarwin [ + ++ lib.optionals stdenv.hostPlatform.isDarwin [ desktopToDarwinBundle ]; @@ -73,7 +73,7 @@ stdenv.mkDerivation (finalAttrs: { yarn --offline run build yarn --offline run electron-builder --dir \ --config .electron-builder.config.cjs \ - -c.electronDist=${electron}/libexec/electron \ + -c.electronDist=${electron.dist} \ -c.electronVersion=${electron.version} runHook postBuild diff --git a/pkgs/applications/virtualization/podman-tui/default.nix b/pkgs/applications/virtualization/podman-tui/default.nix deleted file mode 100644 index 0d7947a3f2511..0000000000000 --- a/pkgs/applications/virtualization/podman-tui/default.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, buildGoModule, testers, podman-tui }: - -buildGoModule rec { - pname = "podman-tui"; - version = "1.1.0"; - - src = fetchFromGitHub { - owner = "containers"; - repo = "podman-tui"; - rev = "v${version}"; - hash = "sha256-my/y2cgF7F0wk5VJKfmqotBrV3HPmRQGPjlSdMe7wXk="; - }; - - vendorHash = null; - - CGO_ENABLED = 0; - - tags = [ "containers_image_openpgp" "remote" ] - ++ lib.optional stdenv.isDarwin "darwin"; - - ldflags = [ "-s" "-w" ]; - - preCheck = '' - export USER=$(whoami) - export HOME="$(mktemp -d)" - ''; - - checkFlags = - let - skippedTests = [ - # Disable flaky tests - "TestDialogs" - "TestVoldialogs" - ]; - in - [ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ]; - - passthru.tests.version = testers.testVersion { - package = podman-tui; - command = "HOME=$(mktemp -d) podman-tui version"; - version = "v${version}"; - }; - - meta = with lib; { - homepage = "https://github.com/containers/podman-tui"; - description = "Podman Terminal UI"; - license = licenses.asl20; - maintainers = with maintainers; [ aaronjheng ]; - mainProgram = "podman-tui"; - }; -} diff --git a/pkgs/applications/virtualization/podman/default.nix b/pkgs/applications/virtualization/podman/default.nix index d9c506ae59c47..57ede5b8b1613 100644 --- a/pkgs/applications/virtualization/podman/default.nix +++ b/pkgs/applications/virtualization/podman/default.nix @@ -22,8 +22,7 @@ , crun , runc , conmon -, extraRuntimes ? lib.optionals stdenv.isLinux [ runc ] # e.g.: runc, gvisor, youki -, slirp4netns +, extraRuntimes ? lib.optionals stdenv.hostPlatform.isLinux [ runc ] # e.g.: runc, gvisor, youki , fuse-overlayfs , util-linux , iptables @@ -33,30 +32,32 @@ , aardvark-dns , netavark , passt +, vfkit , testers , podman }: let # do not add qemu to this wrapper, store paths get written to the podman vm config and break when GCed - binPath = lib.makeBinPath (lib.optionals stdenv.isLinux [ + binPath = lib.makeBinPath (lib.optionals stdenv.hostPlatform.isLinux [ fuse-overlayfs util-linux iptables iproute2 + ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ + vfkit ] ++ extraPackages); helpersBin = symlinkJoin { name = "podman-helper-binary-wrapper"; - # this only works for some binaries, others may need to be be added to `binPath` or in the modules + # this only works for some binaries, others may need to be added to `binPath` or in the modules paths = [ gvproxy - ] ++ lib.optionals stdenv.isLinux [ + ] ++ lib.optionals stdenv.hostPlatform.isLinux [ aardvark-dns catatonit # added here for the pause image and also set in `containersConf` for `init_path` netavark - slirp4netns passt conmon crun @@ -65,13 +66,13 @@ let in buildGoModule rec { pname = "podman"; - version = "5.1.1"; + version = "5.2.3"; src = fetchFromGitHub { owner = "containers"; repo = "podman"; rev = "v${version}"; - hash = "sha256-3u4QOX7K0bMcbvwkXVoCpq7p5rKkvmOlOIRSUEbjFOY="; + hash = "sha256-2FnUijeQhre7B4utsGGEGbMuuMVZlPDoM2di3z1d4vs="; }; patches = [ @@ -92,7 +93,7 @@ buildGoModule rec { nativeBuildInputs = [ pkg-config go-md2man installShellFiles makeWrapper python3 ]; - buildInputs = lib.optionals stdenv.isLinux [ + buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ btrfs-progs gpgme libapparmor @@ -109,7 +110,7 @@ buildGoModule rec { runHook preBuild patchShebangs . substituteInPlace Makefile --replace "/bin/bash" "${runtimeShell}" - ${if stdenv.isDarwin then '' + ${if stdenv.hostPlatform.isDarwin then '' make podman-remote # podman-mac-helper uses FHS paths '' else '' make bin/podman bin/rootlessport bin/quadlet @@ -120,7 +121,7 @@ buildGoModule rec { installPhase = '' runHook preInstall - ${if stdenv.isDarwin then '' + ${if stdenv.hostPlatform.isDarwin then '' install bin/darwin/podman -Dt $out/bin '' else '' make install.bin install.systemd @@ -133,7 +134,7 @@ buildGoModule rec { runHook postInstall ''; - postFixup = lib.optionalString stdenv.isLinux '' + postFixup = lib.optionalString stdenv.hostPlatform.isLinux '' RPATH=$(patchelf --print-rpath $out/bin/.podman-wrapped) patchelf --set-rpath "${lib.makeLibraryPath [ systemd ]}":$RPATH $out/bin/.podman-wrapped ''; @@ -143,7 +144,7 @@ buildGoModule rec { package = podman; command = "HOME=$TMPDIR podman --version"; }; - } // lib.optionalAttrs stdenv.isLinux { + } // lib.optionalAttrs stdenv.hostPlatform.isLinux { inherit (nixosTests) podman; # related modules inherit (nixosTests) diff --git a/pkgs/applications/virtualization/pods/Cargo.lock b/pkgs/applications/virtualization/pods/Cargo.lock index d53094fcf9bf3..c12193cc03dfb 100644 --- a/pkgs/applications/virtualization/pods/Cargo.lock +++ b/pkgs/applications/virtualization/pods/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "addr2line" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" dependencies = [ "gimli", ] @@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "aes" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", "cipher", @@ -31,9 +31,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] @@ -55,22 +55,23 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.75" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" [[package]] name = "ashpd" -version = "0.6.0" -source = "git+https://github.com/bilelmoussaoui/ashpd.git?rev=30216eccd3f4ecb50c4d34a493a33e6eef4e375c#30216eccd3f4ecb50c4d34a493a33e6eef4e375c" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfe7e0dd0ac5a401dc116ed9f9119cf9decc625600474cb41f0fc0a0050abc9a" dependencies = [ "enumflags2", "futures-channel", "futures-util", "gdk4-wayland", "gdk4-x11", + "glib", "gtk4", - "once_cell", "rand", "serde", "serde_repr", @@ -81,146 +82,122 @@ dependencies = [ [[package]] name = "async-broadcast" -version = "0.5.1" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b" +checksum = "20cd0e2e25ea8e5f7e9df04578dc6cf5c83577fd09b1a46aaf5c85e1c33f2a7e" dependencies = [ - "event-listener 2.5.3", + "event-listener", + "event-listener-strategy", "futures-core", + "pin-project-lite", ] [[package]] name = "async-channel" -version = "1.9.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" dependencies = [ "concurrent-queue", - "event-listener 2.5.3", + "event-listener-strategy", "futures-core", + "pin-project-lite", ] [[package]] name = "async-io" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" -dependencies = [ - "async-lock 2.8.0", - "autocfg", - "cfg-if", - "concurrent-queue", - "futures-lite 1.13.0", - "log", - "parking", - "polling 2.8.0", - "rustix 0.37.27", - "slab", - "socket2 0.4.10", - "waker-fn", -] - -[[package]] -name = "async-io" -version = "2.2.0" +version = "2.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41ed9d5715c2d329bf1b4da8d60455b99b187f27ba726df2883799af9af60997" +checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8" dependencies = [ - "async-lock 3.0.0", + "async-lock", "cfg-if", "concurrent-queue", "futures-io", - "futures-lite 2.0.1", + "futures-lite", "parking", - "polling 3.3.0", - "rustix 0.38.21", + "polling", + "rustix", "slab", "tracing", - "waker-fn", - "windows-sys", -] - -[[package]] -name = "async-lock" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" -dependencies = [ - "event-listener 2.5.3", + "windows-sys 0.59.0", ] [[package]] name = "async-lock" -version = "3.0.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45e900cdcd39bb94a14487d3f7ef92ca222162e6c7c3fe7cb3550ea75fb486ed" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "event-listener 3.0.1", + "event-listener", "event-listener-strategy", "pin-project-lite", ] [[package]] name = "async-process" -version = "1.8.1" +version = "2.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" +checksum = "a8a07789659a4d385b79b18b9127fc27e1a59e1e89117c78c5ea3b806f016374" dependencies = [ - "async-io 1.13.0", - "async-lock 2.8.0", + "async-channel", + "async-io", + "async-lock", "async-signal", + "async-task", "blocking", "cfg-if", - "event-listener 3.0.1", - "futures-lite 1.13.0", - "rustix 0.38.21", - "windows-sys", + "event-listener", + "futures-lite", + "rustix", + "tracing", + "windows-sys 0.59.0", ] [[package]] name = "async-recursion" -version = "1.0.5" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" +checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.73", ] [[package]] name = "async-signal" -version = "0.2.5" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" +checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3" dependencies = [ - "async-io 2.2.0", - "async-lock 2.8.0", + "async-io", + "async-lock", "atomic-waker", "cfg-if", "futures-core", "futures-io", - "rustix 0.38.21", + "rustix", "signal-hook-registry", "slab", - "windows-sys", + "windows-sys 0.59.0", ] [[package]] name = "async-task" -version = "4.5.0" +version = "4.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4eb2cdb97421e01129ccb49169d8279ed21e829929144f4a22a6e54ac549ca1" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.74" +version = "0.1.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" +checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.73", ] [[package]] @@ -231,15 +208,15 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.1.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" dependencies = [ "addr2line", "cc", @@ -264,9 +241,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.1" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "block" @@ -294,25 +271,22 @@ dependencies = [ [[package]] name = "blocking" -version = "1.4.1" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c36a4d0d48574b3dd360b4b7d95cc651d2b6557b6402848a27d4b228a473e2a" +checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" dependencies = [ "async-channel", - "async-lock 2.8.0", "async-task", - "fastrand 2.0.1", "futures-io", - "futures-lite 1.13.0", + "futures-lite", "piper", - "tracing", ] [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "byteorder" @@ -328,27 +302,28 @@ checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" [[package]] name = "bytes" -version = "1.5.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" [[package]] name = "cairo-rs" -version = "0.19.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#24ac2075336c7a1ccd5058fd3b732f6616f2f9da" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "797fd5a634dcb0ad0d7d583df794deb0a236d88e759cd34b7da20198c6c9d145" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.6.0", "cairo-sys-rs", "glib", "libc", - "once_cell", "thiserror", ] [[package]] name = "cairo-sys-rs" -version = "0.19.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#24ac2075336c7a1ccd5058fd3b732f6616f2f9da" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "428290f914b9b86089f60f5d8a9f6e440508e1bcff23b25afd51502b0a2da88f" dependencies = [ "glib-sys", "libc", @@ -366,18 +341,15 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.83" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] +checksum = "e9e8aabfac534be767c909e0690571677d49f41bd8465ae876fe043d52ba5292" [[package]] name = "cfg-expr" -version = "0.15.5" +version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" dependencies = [ "smallvec", "target-lexicon", @@ -390,10 +362,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] name = "chrono" -version = "0.4.31" +version = "0.4.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" dependencies = [ "android-tzdata", "iana-time-zone", @@ -417,9 +395,9 @@ dependencies = [ [[package]] name = "concurrent-queue" -version = "2.3.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" dependencies = [ "crossbeam-utils", ] @@ -439,7 +417,7 @@ dependencies = [ "log", "mime", "paste", - "pin-project 1.1.3", + "pin-project 1.1.5", "serde", "serde_json", "tar", @@ -450,36 +428,33 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.4" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" dependencies = [ "libc", ] [[package]] name = "crc32fast" -version = "1.3.2" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" dependencies = [ "cfg-if", ] [[package]] name = "crossbeam-utils" -version = "0.8.16" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" -dependencies = [ - "cfg-if", -] +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" [[package]] name = "crypto-common" @@ -494,25 +469,14 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.9" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ "powerfmt", ] [[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] name = "digest" version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -524,10 +488,16 @@ dependencies = [ ] [[package]] +name = "endi" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf" + +[[package]] name = "enumflags2" -version = "0.7.8" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5998b4f30320c9d93aed72f63af821bfdac50465b75428fce77b48ec482c3939" +checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d" dependencies = [ "enumflags2_derive", "serde", @@ -535,13 +505,13 @@ dependencies = [ [[package]] name = "enumflags2_derive" -version = "0.7.8" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246" +checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.73", ] [[package]] @@ -552,34 +522,19 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.6" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c18ee0ed65a5f1f81cac6b1d213b69c35fa47d4252ad41f1486dbd8226fe36e" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" dependencies = [ "libc", - "windows-sys", -] - -[[package]] -name = "error-chain" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc" -dependencies = [ - "version_check", + "windows-sys 0.52.0", ] [[package]] name = "event-listener" -version = "2.5.3" +version = "5.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "event-listener" -version = "3.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cec0252c2afff729ee6f00e903d479fba81784c8e2bd77447673471fdfaea1" +checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" dependencies = [ "concurrent-queue", "parking", @@ -588,28 +543,19 @@ dependencies = [ [[package]] name = "event-listener-strategy" -version = "0.3.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d96b852f1345da36d551b9473fa1e2b1eb5c5195585c6c018118bc92a8d91160" +checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" dependencies = [ - "event-listener 3.0.1", + "event-listener", "pin-project-lite", ] [[package]] name = "fastrand" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] - -[[package]] -name = "fastrand" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" [[package]] name = "field-offset" @@ -617,27 +563,27 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" dependencies = [ - "memoffset 0.9.0", + "memoffset", "rustc_version", ] [[package]] name = "filetime" -version = "0.2.22" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0" +checksum = "bf401df4a4e3872c4fe8151134cf483738e74b67fc934d6532c882b3d24a4550" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.3.5", - "windows-sys", + "libredox", + "windows-sys 0.59.0", ] [[package]] name = "flate2" -version = "1.0.28" +version = "1.0.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +checksum = "7f211bbe8e69bbd0cfdea405084f128ae8b4aaa6b0b522fc8f2b009084797920" dependencies = [ "crc32fast", "miniz_oxide", @@ -651,18 +597,18 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "form_urlencoded" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] [[package]] name = "futures" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" dependencies = [ "futures-channel", "futures-core", @@ -675,9 +621,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" dependencies = [ "futures-core", "futures-sink", @@ -685,15 +631,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" [[package]] name = "futures-executor" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" dependencies = [ "futures-core", "futures-task", @@ -702,63 +648,51 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" [[package]] name = "futures-lite" -version = "1.13.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" +checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" dependencies = [ - "fastrand 1.9.0", + "fastrand", "futures-core", "futures-io", - "memchr", "parking", "pin-project-lite", - "waker-fn", -] - -[[package]] -name = "futures-lite" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3831c2651acb5177cbd83943f3d9c8912c5ad03c76afcc0e9511ba568ec5ebb" -dependencies = [ - "futures-core", - "pin-project-lite", ] [[package]] name = "futures-macro" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.73", ] [[package]] name = "futures-sink" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" [[package]] name = "futures-task" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" [[package]] name = "futures-util" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" dependencies = [ "futures-channel", "futures-core", @@ -786,20 +720,21 @@ dependencies = [ [[package]] name = "gdk-pixbuf" -version = "0.19.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#24ac2075336c7a1ccd5058fd3b732f6616f2f9da" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28bb53ecb56857c683c9ec859908e076dd3969c7d67598bd8b1ce095d211304a" dependencies = [ "gdk-pixbuf-sys", "gio", "glib", "libc", - "once_cell", ] [[package]] name = "gdk-pixbuf-sys" -version = "0.19.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#24ac2075336c7a1ccd5058fd3b732f6616f2f9da" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f6681a0c1330d1d3968bec1529f7172d62819ef0bdbb0d18022320654158b03" dependencies = [ "gio-sys", "glib-sys", @@ -810,8 +745,9 @@ dependencies = [ [[package]] name = "gdk4" -version = "0.8.0" -source = "git+https://github.com/gtk-rs/gtk4-rs.git#ecf65d90e4b9bd42d810aa44bdd0b3bd220cbd18" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b7d7237c1487ed4b300aac7744efcbf1319e12d60d7afcd6f505414bd5b5dea" dependencies = [ "cairo-rs", "gdk-pixbuf", @@ -824,8 +760,9 @@ dependencies = [ [[package]] name = "gdk4-sys" -version = "0.8.0" -source = "git+https://github.com/gtk-rs/gtk4-rs.git#ecf65d90e4b9bd42d810aa44bdd0b3bd220cbd18" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a67576c8ec012156d7f680e201a807b4432a77babb3157e0555e990ab6bcd878" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -840,8 +777,9 @@ dependencies = [ [[package]] name = "gdk4-wayland" -version = "0.8.0" -source = "git+https://github.com/gtk-rs/gtk4-rs.git#ecf65d90e4b9bd42d810aa44bdd0b3bd220cbd18" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34f422f60971cdea128457cad122c46fee48b3a53aa1e1d140919d50ff5b7491" dependencies = [ "gdk4", "gdk4-wayland-sys", @@ -852,8 +790,9 @@ dependencies = [ [[package]] name = "gdk4-wayland-sys" -version = "0.8.0" -source = "git+https://github.com/gtk-rs/gtk4-rs.git#ecf65d90e4b9bd42d810aa44bdd0b3bd220cbd18" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23295b2ecafae572224a382b876b0bdc0fed947da63b51edebc8798288002048" dependencies = [ "glib-sys", "libc", @@ -862,8 +801,9 @@ dependencies = [ [[package]] name = "gdk4-x11" -version = "0.8.0" -source = "git+https://github.com/gtk-rs/gtk4-rs.git#ecf65d90e4b9bd42d810aa44bdd0b3bd220cbd18" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4b89c2149f74668d630279559fb5e2b4f11a77124b73d04518cc344854cd626" dependencies = [ "gdk4", "gdk4-x11-sys", @@ -874,8 +814,9 @@ dependencies = [ [[package]] name = "gdk4-x11-sys" -version = "0.8.0" -source = "git+https://github.com/gtk-rs/gtk4-rs.git#ecf65d90e4b9bd42d810aa44bdd0b3bd220cbd18" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a186f565940124ebd6c1c97e9eb0909e2d19a33ccd3eebed4ff32ebda766207d" dependencies = [ "gdk4-sys", "glib-sys", @@ -895,9 +836,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.11" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "libc", @@ -926,14 +867,15 @@ dependencies = [ [[package]] name = "gimli" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" [[package]] name = "gio" -version = "0.19.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#24ac2075336c7a1ccd5058fd3b732f6616f2f9da" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "398e3da68749fdc32783cbf7521ec3f65c9cf946db8c7774f8460af49e52c6e2" dependencies = [ "futures-channel", "futures-core", @@ -942,7 +884,6 @@ dependencies = [ "gio-sys", "glib", "libc", - "once_cell", "pin-project-lite", "smallvec", "thiserror", @@ -950,22 +891,24 @@ dependencies = [ [[package]] name = "gio-sys" -version = "0.19.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#24ac2075336c7a1ccd5058fd3b732f6616f2f9da" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4feb96b31c32730ea3e1e89aecd2e4e37ecb1c473ad8f685e3430a159419f63" dependencies = [ "glib-sys", "gobject-sys", "libc", "system-deps", - "winapi", + "windows-sys 0.52.0", ] [[package]] name = "glib" -version = "0.19.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#24ac2075336c7a1ccd5058fd3b732f6616f2f9da" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fee90a615ce05be7a32932cfb8adf2c4bbb4700e80d37713c981fb24c0c56238" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.6.0", "futures-channel", "futures-core", "futures-executor", @@ -977,28 +920,28 @@ dependencies = [ "gobject-sys", "libc", "memchr", - "once_cell", "smallvec", "thiserror", ] [[package]] name = "glib-macros" -version = "0.19.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#24ac2075336c7a1ccd5058fd3b732f6616f2f9da" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4da558d8177c0c8c54368818b508a4244e1286fce2858cef4e547023f0cfa5ef" dependencies = [ "heck", - "proc-macro-crate 2.0.0", - "proc-macro-error", + "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.73", ] [[package]] name = "glib-sys" -version = "0.19.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#24ac2075336c7a1ccd5058fd3b732f6616f2f9da" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4958c26e5a01c9af00dea669a97369eccbec29a8e6d125c24ea2d85ee7467b60" dependencies = [ "libc", "system-deps", @@ -1006,8 +949,9 @@ dependencies = [ [[package]] name = "gobject-sys" -version = "0.19.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#24ac2075336c7a1ccd5058fd3b732f6616f2f9da" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6908864f5ffff15b56df7e90346863904f49b949337ed0456b9287af61903b8" dependencies = [ "glib-sys", "libc", @@ -1016,8 +960,9 @@ dependencies = [ [[package]] name = "graphene-rs" -version = "0.19.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#24ac2075336c7a1ccd5058fd3b732f6616f2f9da" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "630e940ad5824f90221d6579043a9cd1f8bec86b4a17faaf7827d58eb16e8c1f" dependencies = [ "glib", "graphene-sys", @@ -1026,8 +971,9 @@ dependencies = [ [[package]] name = "graphene-sys" -version = "0.19.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#24ac2075336c7a1ccd5058fd3b732f6616f2f9da" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fb8fade7b754982f47ebbed241fd2680816fdd4598321784da10b9e1168836a" dependencies = [ "glib-sys", "libc", @@ -1037,8 +983,9 @@ dependencies = [ [[package]] name = "gsk4" -version = "0.8.0" -source = "git+https://github.com/gtk-rs/gtk4-rs.git#ecf65d90e4b9bd42d810aa44bdd0b3bd220cbd18" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3cf2091e1af185b347b3450817d93dea6fe435df7abd4c2cd7fb5bcb4cfda8" dependencies = [ "cairo-rs", "gdk4", @@ -1051,8 +998,9 @@ dependencies = [ [[package]] name = "gsk4-sys" -version = "0.8.0" -source = "git+https://github.com/gtk-rs/gtk4-rs.git#ecf65d90e4b9bd42d810aa44bdd0b3bd220cbd18" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6aa69614a26d8760c186c3690f1b0fbb917572ca23ef83137445770ceddf8cde" dependencies = [ "cairo-sys-rs", "gdk4-sys", @@ -1066,8 +1014,9 @@ dependencies = [ [[package]] name = "gtk4" -version = "0.8.0" -source = "git+https://github.com/gtk-rs/gtk4-rs.git#ecf65d90e4b9bd42d810aa44bdd0b3bd220cbd18" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaffc6c743c9160514cc9b67eace364e5dc5798369fa809cdb04e035c21c5c5d" dependencies = [ "cairo-rs", "field-offset", @@ -1086,21 +1035,21 @@ dependencies = [ [[package]] name = "gtk4-macros" -version = "0.8.0" -source = "git+https://github.com/gtk-rs/gtk4-rs.git#ecf65d90e4b9bd42d810aa44bdd0b3bd220cbd18" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "188211f546ce5801f6d0245c37b6249143a2cb4fa040e54829ca1e76796e9f09" dependencies = [ - "anyhow", - "proc-macro-crate 2.0.0", - "proc-macro-error", + "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.73", ] [[package]] name = "gtk4-sys" -version = "0.8.0" -source = "git+https://github.com/gtk-rs/gtk4-rs.git#ecf65d90e4b9bd42d810aa44bdd0b3bd220cbd18" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1114a207af8ada02cf4658a76692f4190f06f093380d5be07e3ca8b43aa7c666" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -1117,21 +1066,27 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.2" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" [[package]] name = "heck" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.3.3" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hermit-abi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" [[package]] name = "hex" @@ -1141,9 +1096,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hkdf" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" dependencies = [ "hmac", ] @@ -1159,42 +1114,42 @@ dependencies = [ [[package]] name = "hostname" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +checksum = "f9c7c7c8ac16c798734b8a24560c1362120597c40d5e1459f09498f8f6c8f2ba" dependencies = [ + "cfg-if", "libc", - "match_cfg", - "winapi", + "windows", ] [[package]] name = "http" -version = "0.2.10" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f95b9abcae896730d42b78e09c155ed4ddf82c07b4de772c64aee5b2d8b7c150" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ - "bytes 1.5.0", + "bytes 1.7.1", "fnv", "itoa", ] [[package]] name = "http-body" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ - "bytes 1.5.0", + "bytes 1.7.1", "http", "pin-project-lite", ] [[package]] name = "httparse" -version = "1.8.0" +version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" +checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" [[package]] name = "httpdate" @@ -1204,11 +1159,11 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "0.14.27" +version = "0.14.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" dependencies = [ - "bytes 1.5.0", + "bytes 1.7.1", "futures-channel", "futures-core", "futures-util", @@ -1218,7 +1173,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.4.10", + "socket2", "tokio", "tower-service", "tracing", @@ -1234,15 +1189,15 @@ dependencies = [ "futures-util", "hex", "hyper", - "pin-project 1.1.3", + "pin-project 1.1.5", "tokio", ] [[package]] name = "iana-time-zone" -version = "0.1.58" +version = "0.1.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -1263,9 +1218,9 @@ dependencies = [ [[package]] name = "idna" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -1273,9 +1228,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.1.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +checksum = "de3fc2e30ba82dd1b3911c8de1ffc143c74a914a14e99514d7637e3099df5ea0" dependencies = [ "equivalent", "hashbrown", @@ -1293,55 +1248,41 @@ dependencies = [ ] [[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", -] - -[[package]] name = "io-lifetimes" -version = "1.0.11" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys", -] +checksum = "5a611371471e98973dbcab4e0ec66c31a10bc356eeb4d54a0e05eac8158fe38c" [[package]] name = "itoa" -version = "1.0.9" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "js-sys" -version = "0.3.65" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" dependencies = [ "spin", ] [[package]] name = "libadwaita" -version = "0.6.0" -source = "git+https://gitlab.gnome.org/World/Rust/libadwaita-rs#24608c684b8fa59357d0d586fde75c04a464cbf6" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ff9c222b5c783729de45185f07b2fec2d43a7f9c63961e777d3667e20443878" dependencies = [ - "gdk-pixbuf", "gdk4", "gio", "glib", @@ -1353,8 +1294,9 @@ dependencies = [ [[package]] name = "libadwaita-sys" -version = "0.6.0" -source = "git+https://gitlab.gnome.org/World/Rust/libadwaita-rs#24608c684b8fa59357d0d586fde75c04a464cbf6" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c44d8bdbad31d6639e1f20cc9c1424f1a8e02d751fc28d44659bf743fb9eca6" dependencies = [ "gdk4-sys", "gio-sys", @@ -1368,9 +1310,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.150" +version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" [[package]] name = "libm" @@ -1379,46 +1321,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] -name = "libpanel" -version = "0.3.0" -source = "git+https://gitlab.gnome.org/World/Rust/libpanel-rs.git#7dd6d088f92079893f0e5d2afc2c8258b807ddcd" -dependencies = [ - "futures-core", - "gdk4", - "gio", - "glib", - "gtk4", - "libadwaita", - "libc", - "libpanel-sys", -] - -[[package]] -name = "libpanel-sys" -version = "0.3.0" -source = "git+https://gitlab.gnome.org/World/Rust/libpanel-rs.git#7dd6d088f92079893f0e5d2afc2c8258b807ddcd" +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "gdk4-sys", - "gio-sys", - "glib-sys", - "gobject-sys", - "gtk4-sys", - "libadwaita-sys", + "bitflags 2.6.0", "libc", - "system-deps", + "redox_syscall 0.5.3", ] [[package]] name = "linux-raw-sys" -version = "0.3.8" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" - -[[package]] -name = "linux-raw-sys" -version = "0.4.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "locale_config" @@ -1435,9 +1352,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.20" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] name = "malloc_buf" @@ -1449,31 +1366,26 @@ dependencies = [ ] [[package]] -name = "match_cfg" -version = "0.1.0" +name = "md-5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest", +] [[package]] name = "memchr" -version = "2.6.4" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memoffset" -version = "0.7.1" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" -dependencies = [ - "autocfg", -] - -[[package]] -name = "memoffset" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" dependencies = [ "autocfg", ] @@ -1486,22 +1398,32 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "miniz_oxide" -version = "0.7.1" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" dependencies = [ "adler", ] [[package]] name = "mio" -version = "0.8.9" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" +checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4" dependencies = [ + "hermit-abi 0.3.9", "libc", "wasi", - "windows-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "multi_log" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad56bb3c7c7c15b4e25de86c9123e886e5f80a0c03ace219b453b081c2bf20d7" +dependencies = [ + "log", ] [[package]] @@ -1515,21 +1437,22 @@ dependencies = [ [[package]] name = "nix" -version = "0.26.4" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" +checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "cfg-if", + "cfg_aliases", "libc", - "memoffset 0.7.1", + "memoffset", ] [[package]] name = "num" -version = "0.4.1" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" dependencies = [ "num-bigint", "num-complex", @@ -1541,11 +1464,10 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ - "autocfg", "num-integer", "num-traits", ] @@ -1570,28 +1492,33 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" dependencies = [ "num-traits", ] [[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] name = "num-integer" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "autocfg", "num-traits", ] [[package]] name = "num-iter" -version = "0.1.43" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" dependencies = [ "autocfg", "num-integer", @@ -1600,11 +1527,10 @@ dependencies = [ [[package]] name = "num-rational" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" dependencies = [ - "autocfg", "num-bigint", "num-integer", "num-traits", @@ -1612,28 +1538,18 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] name = "num_threads" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" dependencies = [ "libc", ] @@ -1669,43 +1585,45 @@ dependencies = [ [[package]] name = "object" -version = "0.32.1" +version = "0.36.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "oo7" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "220729ba847d98e1a9902c05e41dae79ce4a0b913dad68bc540dd3120a8c2b6b" +checksum = "8fc6ce4692fbfd044ce22ca07dcab1a30fa12432ca2aa5b1294eca50d3332a24" dependencies = [ "aes", - "byteorder", "cbc", "cipher", "digest", + "endi", "futures-util", "hkdf", "hmac", + "md-5", "num", "num-bigint-dig", - "once_cell", "pbkdf2", "rand", "serde", "sha2", + "subtle", "tokio", "zbus", "zeroize", + "zvariant", ] [[package]] @@ -1720,20 +1638,21 @@ dependencies = [ [[package]] name = "pango" -version = "0.19.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#24ac2075336c7a1ccd5058fd3b732f6616f2f9da" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54768854025df6903061d0084fd9702a253ddfd60db7d9b751d43b76689a7f0a" dependencies = [ "gio", "glib", "libc", - "once_cell", "pango-sys", ] [[package]] name = "pango-sys" -version = "0.19.0" -source = "git+https://github.com/gtk-rs/gtk-rs-core#24ac2075336c7a1ccd5058fd3b732f6616f2f9da" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b07cc57d10cee4ec661f718a6902cee18c2f4cfae08e87e5a390525946913390" dependencies = [ "glib-sys", "gobject-sys", @@ -1742,6 +1661,12 @@ dependencies = [ ] [[package]] +name = "paris" +version = "1.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fecab3723493c7851f292cb060f3ee1c42f19b8d749345d0d7eaf3fd19aa62d" + +[[package]] name = "parking" version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1749,9 +1674,9 @@ checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" [[package]] name = "paste" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pbkdf2" @@ -1765,9 +1690,9 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pin-project" @@ -1780,11 +1705,11 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.3" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" dependencies = [ - "pin-project-internal 1.1.3", + "pin-project-internal 1.1.5", ] [[package]] @@ -1800,20 +1725,20 @@ dependencies = [ [[package]] name = "pin-project-internal" -version = "1.1.3" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.73", ] [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -1823,20 +1748,20 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "piper" -version = "0.2.1" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" +checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" dependencies = [ "atomic-waker", - "fastrand 2.0.1", + "fastrand", "futures-io", ] [[package]] name = "pkg-config" -version = "0.3.27" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "podman-api" @@ -1845,7 +1770,7 @@ source = "git+https://github.com/vv9k/podman-api-rs.git#f35e6f9f9fdb9d9023aed341 dependencies = [ "base64", "byteorder", - "bytes 1.5.0", + "bytes 1.7.1", "containers-api", "flate2", "futures-util", @@ -1874,7 +1799,7 @@ dependencies = [ [[package]] name = "pods" -version = "2.0.0" +version = "2.1.0-devel" dependencies = [ "anyhow", "ashpd", @@ -1883,14 +1808,15 @@ dependencies = [ "gtk4", "indexmap", "libadwaita", - "libpanel", "log", + "multi_log", "names", "oo7", "paste", "podman-api", "serde", "serde_json", + "simplelog", "sourceview5", "syslog", "tokio", @@ -1901,32 +1827,17 @@ dependencies = [ [[package]] name = "polling" -version = "2.8.0" +version = "3.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" +checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511" dependencies = [ - "autocfg", - "bitflags 1.3.2", "cfg-if", "concurrent-queue", - "libc", - "log", + "hermit-abi 0.4.0", "pin-project-lite", - "windows-sys", -] - -[[package]] -name = "polling" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e53b6af1f60f36f8c2ac2aad5459d75a5a9b4be1e8cdd40264f315d78193e531" -dependencies = [ - "cfg-if", - "concurrent-queue", - "pin-project-lite", - "rustix 0.38.21", + "rustix", "tracing", - "windows-sys", + "windows-sys 0.59.0", ] [[package]] @@ -1937,67 +1848,36 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" - -[[package]] -name = "proc-macro-crate" -version = "1.3.1" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" dependencies = [ - "once_cell", - "toml_edit 0.19.15", + "zerocopy", ] [[package]] name = "proc-macro-crate" -version = "2.0.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" dependencies = [ - "toml_edit 0.20.7", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", + "toml_edit 0.21.1", ] [[package]] name = "proc-macro2" -version = "1.0.69" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -2043,18 +1923,18 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.4.1" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", ] [[package]] name = "regex" -version = "1.10.2" +version = "1.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" dependencies = [ "aho-corasick", "memchr", @@ -2064,9 +1944,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.3" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" dependencies = [ "aho-corasick", "memchr", @@ -2075,15 +1955,15 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.2" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" [[package]] name = "rustc-demangle" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc_version" @@ -2096,90 +1976,77 @@ dependencies = [ [[package]] name = "rustix" -version = "0.37.27" +version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "errno", - "io-lifetimes", "libc", - "linux-raw-sys 0.3.8", - "windows-sys", -] - -[[package]] -name = "rustix" -version = "0.38.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" -dependencies = [ - "bitflags 2.4.1", - "errno", - "libc", - "linux-raw-sys 0.4.11", - "windows-sys", + "linux-raw-sys", + "windows-sys 0.52.0", ] [[package]] name = "ryu" -version = "1.0.15" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "semver" -version = "1.0.20" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.192" +version = "1.0.206" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" +checksum = "5b3e4cd94123dd520a128bcd11e34d9e9e423e7e3e50425cb1b4b1e3549d0284" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.192" +version = "1.0.206" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" +checksum = "fabfb6138d2383ea8208cf98ccf69cdfb1aff4088460681d84189aa259762f97" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.73", ] [[package]] name = "serde_json" -version = "1.0.108" +version = "1.0.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" dependencies = [ "itoa", + "memchr", "ryu", "serde", ] [[package]] name = "serde_repr" -version = "0.1.17" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" +checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.73", ] [[package]] name = "serde_spanned" -version = "0.6.4" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80" +checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" dependencies = [ "serde", ] @@ -2208,14 +2075,26 @@ dependencies = [ [[package]] name = "signal-hook-registry" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" dependencies = [ "libc", ] [[package]] +name = "simplelog" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16257adbfaef1ee58b1363bdc0664c9b8e1e30aed86049635fb5f147d065a9c0" +dependencies = [ + "log", + "paris", + "termcolor", + "time", +] + +[[package]] name = "slab" version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -2226,34 +2105,25 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.2" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "socket2" -version = "0.4.10" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" dependencies = [ "libc", - "winapi", -] - -[[package]] -name = "socket2" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" -dependencies = [ - "libc", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] name = "sourceview5" -version = "0.8.0" -source = "git+https://gitlab.gnome.org/World/Rust/sourceview5-rs.git#5baec2e87544136de6c3e1a3614624d60986d530" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "905c83b38d4aff1800a12adba65b083deba61b4d948f62fc2ff7ad7d77656d05" dependencies = [ "futures-channel", "futures-core", @@ -2269,8 +2139,9 @@ dependencies = [ [[package]] name = "sourceview5-sys" -version = "0.8.0" -source = "git+https://gitlab.gnome.org/World/Rust/sourceview5-rs.git#5baec2e87544136de6c3e1a3614624d60986d530" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a3759467713554a8063faa380237ee2c753e89026bbe1b8e9611d991cb106ff" dependencies = [ "gdk-pixbuf-sys", "gdk4-sys", @@ -2285,9 +2156,9 @@ dependencies = [ [[package]] name = "spin" -version = "0.5.2" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" [[package]] name = "static_assertions" @@ -2297,9 +2168,9 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "subtle" -version = "2.5.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" @@ -2314,9 +2185,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "837a7e8026c6ce912ff01cefbe8cafc2f8010ac49682e2a3d9decc3bce1ecaaf" dependencies = [ "proc-macro2", "quote", @@ -2325,11 +2196,10 @@ dependencies = [ [[package]] name = "syslog" -version = "6.1.0" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7434e95bcccce1215d30f4bf84fe8c00e8de1b9be4fb736d747ca53d36e7f96f" +checksum = "019f1500a13379b7d051455df397c75770de6311a7a188a699499502704d9f10" dependencies = [ - "error-chain", "hostname", "libc", "log", @@ -2338,9 +2208,9 @@ dependencies = [ [[package]] name = "system-deps" -version = "6.2.0" +version = "7.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331" +checksum = "6c81f13d9a334a6c242465140bd262fae382b752ff2011c4f7419919a9c97922" dependencies = [ "cfg-expr", "heck", @@ -2351,9 +2221,9 @@ dependencies = [ [[package]] name = "tar" -version = "0.4.40" +version = "0.4.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb" +checksum = "cb797dad5fb5b76fcf519e702f4a589483b5ef06567f160c392832c1f5e44909" dependencies = [ "filetime", "libc", @@ -2362,58 +2232,68 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.12" +version = "0.12.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "temp-dir" -version = "0.1.11" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af547b166dd1ea4b472165569fc456cfb6818116f854690b0ff205e636523dab" +checksum = "1f227968ec00f0e5322f9b8173c7a0cbcff6181a0a5b28e9892491c286277231" [[package]] name = "tempfile" -version = "3.8.1" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" dependencies = [ "cfg-if", - "fastrand 2.0.1", - "redox_syscall 0.4.1", - "rustix 0.38.21", - "windows-sys", + "fastrand", + "once_cell", + "rustix", + "windows-sys 0.59.0", +] + +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = [ + "winapi-util", ] [[package]] name = "thiserror" -version = "1.0.50" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.50" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.73", ] [[package]] name = "time" -version = "0.3.30" +version = "0.3.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ "deranged", "itoa", "libc", + "num-conv", "num_threads", "powerfmt", "serde", @@ -2429,18 +2309,19 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.15" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" dependencies = [ + "num-conv", "time-core", ] [[package]] name = "tinyvec" -version = "1.6.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" dependencies = [ "tinyvec_macros", ] @@ -2453,27 +2334,26 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.34.0" +version = "1.39.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" +checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" dependencies = [ "backtrace", - "bytes 1.5.0", + "bytes 1.7.1", "libc", "mio", - "num_cpus", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.5", + "socket2", "tracing", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] name = "tokio-stream" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" dependencies = [ "futures-core", "pin-project-lite", @@ -2496,58 +2376,47 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.8" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.21.0", + "toml_edit 0.22.20", ] [[package]] name = "toml_datetime" -version = "0.6.5" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" dependencies = [ "serde", ] [[package]] name = "toml_edit" -version = "0.19.15" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ "indexmap", "toml_datetime", - "winnow", + "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.20.7" +version = "0.22.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" -dependencies = [ - "indexmap", - "toml_datetime", - "winnow", -] - -[[package]] -name = "toml_edit" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" +checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" dependencies = [ "indexmap", "serde", "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.6.18", ] [[package]] @@ -2575,7 +2444,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.73", ] [[package]] @@ -2589,9 +2458,9 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "typenum" @@ -2601,19 +2470,20 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "uds_windows" -version = "1.0.2" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce65604324d3cce9b966701489fbd0cf318cb1f7bd9dd07ac9a4ee6fb791930d" +checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" dependencies = [ + "memoffset", "tempfile", "winapi", ] [[package]] name = "unicode-bidi" -version = "0.3.13" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" @@ -2623,18 +2493,18 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" dependencies = [ "tinyvec", ] [[package]] name = "url" -version = "2.4.1" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" dependencies = [ "form_urlencoded", "idna", @@ -2644,27 +2514,27 @@ dependencies = [ [[package]] name = "utf8parse" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "version-compare" -version = "0.1.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" +checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "vte" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98b0a06c0f086f7abe70cf308967153479e223b6a9809f7dcc6c47b045574bc9" +checksum = "40eb22ae96f050e0c0d6f7ce43feeae26c348fc4dea56928ca81537cfaa6188b" dependencies = [ "utf8parse", "vte_generate_state_changes", @@ -2673,9 +2543,10 @@ dependencies = [ [[package]] name = "vte4" version = "0.8.0" -source = "git+https://gitlab.gnome.org/World/Rust/vte4-rs.git#aa466f43ead6190c6c4b8792f78ed766df1c289e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7759016227e58e3239b8dca9c4a70086345844872b1f27cba0dba990fef5cb44" dependencies = [ - "bitflags 1.3.2", + "cairo-rs", "gdk4", "gio", "glib", @@ -2689,8 +2560,10 @@ dependencies = [ [[package]] name = "vte4-sys" version = "0.8.0" -source = "git+https://gitlab.gnome.org/World/Rust/vte4-rs.git#aa466f43ead6190c6c4b8792f78ed766df1c289e" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c1aa57d29283c6eeac2e34c16791436275d254ac02b8590b02698feef197234" dependencies = [ + "cairo-sys-rs", "gdk4-sys", "gio-sys", "glib-sys", @@ -2702,21 +2575,15 @@ dependencies = [ [[package]] name = "vte_generate_state_changes" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff" +checksum = "2e369bee1b05d510a7b4ed645f5faa90619e05437111783ea5848f28d97d3c2e" dependencies = [ "proc-macro2", "quote", ] [[package]] -name = "waker-fn" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" - -[[package]] name = "want" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -2733,9 +2600,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.88" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -2743,24 +2610,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.88" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.73", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.88" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2768,22 +2635,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.88" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.73", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.88" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "winapi" @@ -2802,38 +2669,67 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] +name = "winapi-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] +name = "windows" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" +dependencies = [ + "windows-core", + "windows-targets", +] + +[[package]] name = "windows-core" -version = "0.51.1" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ "windows-targets", ] [[package]] name = "windows-sys" -version = "0.48.0" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ "windows-targets", ] [[package]] name = "windows-targets" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", "windows_i686_gnu", + "windows_i686_gnullvm", "windows_i686_msvc", "windows_x86_64_gnu", "windows_x86_64_gnullvm", @@ -2842,94 +2738,108 @@ dependencies = [ [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" -version = "0.48.5" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.5.19" +version = "0.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" dependencies = [ "memchr", ] [[package]] name = "xattr" -version = "1.0.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985" +checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" dependencies = [ "libc", + "linux-raw-sys", + "rustix", ] [[package]] name = "xdg-home" -version = "1.0.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2769203cd13a0c6015d515be729c526d041e9cf2c0cc478d57faee85f40c6dcd" +checksum = "ec1cdab258fb55c0da61328dc52c8764709b249011b2cad0454c72f0bf10a1f6" dependencies = [ - "nix", - "winapi", + "libc", + "windows-sys 0.59.0", ] [[package]] name = "zbus" -version = "3.14.1" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31de390a2d872e4cd04edd71b425e29853f786dc99317ed72d73d6fcf5ebb948" +checksum = "bb97012beadd29e654708a0fdb4c84bc046f537aecfde2c3ee0a9e4b4d48c725" dependencies = [ "async-broadcast", "async-process", "async-recursion", "async-trait", - "byteorder", - "derivative", "enumflags2", - "event-listener 2.5.3", + "event-listener", "futures-core", "futures-sink", "futures-util", "hex", "nix", - "once_cell", "ordered-stream", "rand", "serde", @@ -2939,7 +2849,7 @@ dependencies = [ "tokio", "tracing", "uds_windows", - "winapi", + "windows-sys 0.52.0", "xdg-home", "zbus_macros", "zbus_names", @@ -2948,23 +2858,22 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "3.14.1" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d1794a946878c0e807f55a397187c11fc7a038ba5d868e7db4f3bd7760bc9d" +checksum = "267db9407081e90bbfa46d841d3cbc60f59c0351838c4bc65199ecd79ab1983e" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate", "proc-macro2", "quote", - "regex", - "syn 1.0.109", + "syn 2.0.73", "zvariant_utils", ] [[package]] name = "zbus_names" -version = "2.6.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb80bb776dbda6e23d705cf0123c3b95df99c4ebeaec6c2599d4a5419902b4a9" +checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c" dependencies = [ "serde", "static_assertions", @@ -2972,10 +2881,31 @@ dependencies = [ ] [[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "byteorder", + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.73", +] + +[[package]] name = "zeroize" -version = "1.6.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" dependencies = [ "zeroize_derive", ] @@ -2988,18 +2918,17 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.73", ] [[package]] name = "zvariant" -version = "3.15.0" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44b291bee0d960c53170780af148dca5fa260a63cdd24f1962fa82e03e53338c" +checksum = "2084290ab9a1c471c38fc524945837734fbf124487e105daec2bb57fd48c81fe" dependencies = [ - "byteorder", + "endi", "enumflags2", - "libc", "serde", "static_assertions", "url", @@ -3008,24 +2937,24 @@ dependencies = [ [[package]] name = "zvariant_derive" -version = "3.15.0" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd" +checksum = "73e2ba546bda683a90652bac4a279bc146adad1386f25379cf73200d2002c449" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.73", "zvariant_utils", ] [[package]] name = "zvariant_utils" -version = "1.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200" +checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.73", ] diff --git a/pkgs/applications/virtualization/pods/default.nix b/pkgs/applications/virtualization/pods/default.nix index 65fb88824497f..201fcf89988bc 100644 --- a/pkgs/applications/virtualization/pods/default.nix +++ b/pkgs/applications/virtualization/pods/default.nix @@ -19,26 +19,19 @@ stdenv.mkDerivation rec { pname = "pods"; - version = "2.0.0"; + version = "2.0.1-unstable-2024-08-11"; src = fetchFromGitHub { owner = "marhkb"; repo = pname; - rev = "v${version}"; - sha256 = "sha256-jSN4WmyzYARhDkwAtTYD4iXNTM1QQbAAwQ/ICHg7k3k="; + rev = "146a85b4860375ac0a5be8d7be57fb12753a3c42"; + sha256 = "sha256-KaS38XC+V3jRPPTnI4UqMc9KGAC7INHMu47LVo9YP44="; }; cargoDeps = rustPlatform.importCargoLock { lockFile = ./Cargo.lock; outputHashes = { - "ashpd-0.6.0" = "sha256-kLacOwMZ4MQlFYCx5J4kI4J+a9fVRF5Ii/AkWOL/TNQ="; - "cairo-rs-0.19.0" = "sha256-8s+ngacR7d2wb1FKYf0pycxMQbgW63zMKpMgaUs2e+c="; - "gdk4-0.8.0" = "sha256-o9HC4VX6ntPk0JXAX5Whhu0qlUdpPky/1PNrRd9zjdk="; - "libadwaita-0.6.0" = "sha256-3Kge7SIE+vex/uOIt7hjmU68jidkBjrW96o24hu3e/U="; - "libpanel-0.3.0" = "sha256-LA8ynd+7imEdQwvLslmKw+pPNbAEle9fZ2sFuyRY/jU="; "podman-api-0.10.0" = "sha256-nbxK/U5G+PlbytpHdr63x/C69hBgedPXBFfgdzT9fdc="; - "sourceview5-0.8.0" = "sha256-+f+mm682H4eRC7Xzx5wukecDZq+hMpJQ3+3xHzG00Go="; - "vte4-0.8.0" = "sha256-KZBpfSAngbp5czAXdKA7Au5uYqs2L5MyNsnXcBH77lo="; }; }; diff --git a/pkgs/applications/virtualization/qboot/default.nix b/pkgs/applications/virtualization/qboot/default.nix index f5a1e13410b98..e0d833d0c2d50 100644 --- a/pkgs/applications/virtualization/qboot/default.nix +++ b/pkgs/applications/virtualization/qboot/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation { description = "Simple x86 firmware for booting Linux"; homepage = "https://github.com/bonzini/qboot"; license = lib.licenses.gpl2; - maintainers = with lib.maintainers; [ ]; + maintainers = [ ]; platforms = [ "x86_64-linux" "i686-linux" ]; }; } diff --git a/pkgs/applications/virtualization/qemu/default.nix b/pkgs/applications/virtualization/qemu/default.nix index 982eee2cbb1fc..8625069da8b19 100644 --- a/pkgs/applications/virtualization/qemu/default.nix +++ b/pkgs/applications/virtualization/qemu/default.nix @@ -1,52 +1,67 @@ -{ lib, stdenv, fetchurl, fetchpatch, python3Packages, zlib, pkg-config, glib, buildPackages -, pixman, vde2, alsa-lib, texinfo, flex +{ lib, stdenv, fetchurl, fetchpatch, python3Packages, zlib, pkg-config, glib, overrideSDK, buildPackages +, pixman, vde2, alsa-lib, flex, pcre2 , bison, lzo, snappy, libaio, libtasn1, gnutls, nettle, curl, dtc, ninja, meson , sigtool , makeWrapper, removeReferencesTo , attr, libcap, libcap_ng, socat, libslirp -, CoreServices, Cocoa, Hypervisor, rez, setfile, vmnet -, guestAgentSupport ? (with stdenv.hostPlatform; isLinux || isNetBSD || isOpenBSD || isSunOS || isWindows) && !toolsOnly -, numaSupport ? stdenv.isLinux && !stdenv.isAarch32 && !toolsOnly, numactl -, seccompSupport ? stdenv.isLinux && !toolsOnly, libseccomp -, alsaSupport ? lib.hasSuffix "linux" stdenv.hostPlatform.system && !nixosTestRunner && !toolsOnly -, pulseSupport ? !stdenv.isDarwin && !nixosTestRunner && !toolsOnly, libpulseaudio -, pipewireSupport ? !stdenv.isDarwin && !nixosTestRunner && !toolsOnly, pipewire -, sdlSupport ? !stdenv.isDarwin && !nixosTestRunner && !toolsOnly, SDL2, SDL2_image -, jackSupport ? !stdenv.isDarwin && !nixosTestRunner && !toolsOnly, libjack2 -, gtkSupport ? !stdenv.isDarwin && !xenSupport && !nixosTestRunner && !toolsOnly, gtk3, gettext, vte, wrapGAppsHook3 -, vncSupport ? !nixosTestRunner && !toolsOnly, libjpeg, libpng -, smartcardSupport ? !nixosTestRunner && !toolsOnly, libcacard -, spiceSupport ? true && !nixosTestRunner && !toolsOnly, spice, spice-protocol -, ncursesSupport ? !nixosTestRunner && !toolsOnly, ncurses +, CoreServices, Cocoa, Hypervisor, Kernel, rez, setfile, vmnet +, guestAgentSupport ? (with stdenv.hostPlatform; isLinux || isNetBSD || isOpenBSD || isSunOS || isWindows) && !minimal +, numaSupport ? stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isAarch32 && !minimal, numactl +, seccompSupport ? stdenv.hostPlatform.isLinux && !minimal, libseccomp +, alsaSupport ? lib.hasSuffix "linux" stdenv.hostPlatform.system && !nixosTestRunner && !minimal +, pulseSupport ? !stdenv.hostPlatform.isDarwin && !nixosTestRunner && !minimal, libpulseaudio +, pipewireSupport ? !stdenv.hostPlatform.isDarwin && !nixosTestRunner && !minimal, pipewire +, sdlSupport ? !stdenv.hostPlatform.isDarwin && !nixosTestRunner && !minimal, SDL2, SDL2_image +, jackSupport ? !stdenv.hostPlatform.isDarwin && !nixosTestRunner && !minimal, libjack2 +, gtkSupport ? !stdenv.hostPlatform.isDarwin && !xenSupport && !nixosTestRunner && !minimal, gtk3, gettext, vte, wrapGAppsHook3 +, vncSupport ? !nixosTestRunner && !minimal, libjpeg, libpng +, smartcardSupport ? !nixosTestRunner && !minimal, libcacard +, spiceSupport ? true && !nixosTestRunner && !minimal, spice, spice-protocol +, ncursesSupport ? !nixosTestRunner && !minimal, ncurses , usbredirSupport ? spiceSupport, usbredir , xenSupport ? false, xen , cephSupport ? false, ceph , glusterfsSupport ? false, glusterfs, libuuid , openGLSupport ? sdlSupport, mesa, libepoxy, libdrm -, rutabagaSupport ? openGLSupport && !toolsOnly && lib.meta.availableOn stdenv.hostPlatform rutabaga_gfx, rutabaga_gfx +, rutabagaSupport ? openGLSupport && !minimal && lib.meta.availableOn stdenv.hostPlatform rutabaga_gfx, rutabaga_gfx , virglSupport ? openGLSupport, virglrenderer -, libiscsiSupport ? !toolsOnly, libiscsi +, libiscsiSupport ? !minimal, libiscsi , smbdSupport ? false, samba -, tpmSupport ? !toolsOnly -, uringSupport ? stdenv.isLinux, liburing -, canokeySupport ? !toolsOnly, canokey-qemu -, capstoneSupport ? !toolsOnly, capstone -, enableDocs ? true +, tpmSupport ? !minimal +, uringSupport ? stdenv.hostPlatform.isLinux && !userOnly, liburing +, canokeySupport ? !minimal, canokey-qemu +, capstoneSupport ? !minimal, capstone +, pluginsSupport ? !stdenv.hostPlatform.isStatic +, enableDocs ? !minimal || toolsOnly +, enableTools ? !minimal || toolsOnly +, enableBlobs ? !minimal || toolsOnly , hostCpuOnly ? false , hostCpuTargets ? (if toolsOnly then [ ] else if hostCpuOnly - then (lib.optional stdenv.isx86_64 "i386-softmmu" + then (lib.optional stdenv.hostPlatform.isx86_64 "i386-softmmu" ++ ["${stdenv.hostPlatform.qemuArch}-softmmu"]) else null) , nixosTestRunner ? false , toolsOnly ? false +, userOnly ? false +, minimal ? toolsOnly || userOnly , gitUpdater , qemu-utils # for tests attribute }: let hexagonSupport = hostCpuTargets == null || lib.elem "hexagon" hostCpuTargets; + + buildPlatformStdenv = + if stdenv.buildPlatform.isDarwin then + overrideSDK buildPackages.stdenv { + # Keep these values in sync with `all-packages.nix`. + darwinSdkVersion = "12.3"; + darwinMinVersion = "12.0"; + } + else + buildPackages.stdenv; in stdenv.mkDerivation (finalAttrs: { @@ -54,34 +69,37 @@ stdenv.mkDerivation (finalAttrs: { + lib.optionalString xenSupport "-xen" + lib.optionalString hostCpuOnly "-host-cpu-only" + lib.optionalString nixosTestRunner "-for-vm-tests" - + lib.optionalString toolsOnly "-utils"; - version = "9.0.1"; + + lib.optionalString toolsOnly "-utils" + + lib.optionalString userOnly "-user"; + version = "9.1.0"; src = fetchurl { url = "https://download.qemu.org/qemu-${finalAttrs.version}.tar.xz"; - hash = "sha256-0PTbD70VHAzxb4SusqUA9ulQCXMlRvRNr6uNIEm7uAU="; + hash = "sha256-gWtwIqi6fCrDDi4M+XPoJva8yFBTOWAyEsXt6OlNeDQ="; }; - depsBuildBuild = [ buildPackages.stdenv.cc ] + depsBuildBuild = [ buildPlatformStdenv.cc ] ++ lib.optionals hexagonSupport [ pkg-config ]; nativeBuildInputs = [ makeWrapper removeReferencesTo - pkg-config flex bison dtc meson ninja + pkg-config flex bison meson ninja # Don't change this to python3 and python3.pkgs.*, breaks cross-compilation - python3Packages.python python3Packages.sphinx python3Packages.sphinx-rtd-theme + python3Packages.python ] ++ lib.optionals gtkSupport [ wrapGAppsHook3 ] + ++ lib.optionals enableDocs [ python3Packages.sphinx python3Packages.sphinx-rtd-theme ] ++ lib.optionals hexagonSupport [ glib ] - ++ lib.optionals stdenv.isDarwin [ sigtool ]; + ++ lib.optionals stdenv.hostPlatform.isDarwin [ sigtool ] + ++ lib.optionals (!userOnly) [ dtc ]; - buildInputs = [ dtc zlib glib pixman - vde2 texinfo lzo snappy libtasn1 + buildInputs = [ zlib glib pixman + vde2 lzo snappy libtasn1 gnutls nettle curl libslirp ] ++ lib.optionals ncursesSupport [ ncurses ] - ++ lib.optionals stdenv.isDarwin [ CoreServices Cocoa Hypervisor rez setfile vmnet ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ CoreServices Cocoa Hypervisor Kernel rez setfile vmnet ] ++ lib.optionals seccompSupport [ libseccomp ] ++ lib.optionals numaSupport [ numactl ] ++ lib.optionals alsaSupport [ alsa-lib ] @@ -94,7 +112,8 @@ stdenv.mkDerivation (finalAttrs: { ++ lib.optionals smartcardSupport [ libcacard ] ++ lib.optionals spiceSupport [ spice-protocol spice ] ++ lib.optionals usbredirSupport [ usbredir ] - ++ lib.optionals stdenv.isLinux [ libaio libcap_ng libcap attr ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ libcap_ng libcap attr ] + ++ lib.optionals (stdenv.hostPlatform.isLinux && !userOnly) [ libaio ] ++ lib.optionals xenSupport [ xen ] ++ lib.optionals cephSupport [ ceph ] ++ lib.optionals glusterfsSupport [ glusterfs libuuid ] @@ -105,28 +124,19 @@ stdenv.mkDerivation (finalAttrs: { ++ lib.optionals smbdSupport [ samba ] ++ lib.optionals uringSupport [ liburing ] ++ lib.optionals canokeySupport [ canokey-qemu ] - ++ lib.optionals capstoneSupport [ capstone ]; + ++ lib.optionals capstoneSupport [ capstone ] + ++ lib.optionals (!userOnly) [ dtc ]; dontUseMesonConfigure = true; # meson's configurePhase isn't compatible with qemu build + dontAddStaticConfigureFlags = true; outputs = [ "out" ] ++ lib.optional guestAgentSupport "ga"; # On aarch64-linux we would shoot over the Hydra's 2G output limit. - separateDebugInfo = !(stdenv.isAarch64 && stdenv.isLinux); + separateDebugInfo = !(stdenv.hostPlatform.isAarch64 && stdenv.hostPlatform.isLinux); patches = [ ./fix-qemu-ga.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 - # Cocoa clipboard support only works on macOS 10.14+ - ./revert-ui-cocoa-add-clipboard-support.patch - # Standard about panel requires AppKit and macOS 10.13+ - ./revert-ui-cocoa-use-the-standard-about-panel.patch - # Safe area insets require macOS 11+ - ./remove-ui-cocoa-use-safe-area-insets.patch # Workaround for upstream issue with nested virtualisation: https://gitlab.com/qemu-project/qemu/-/issues/1008 (fetchpatch { url = "https://gitlab.com/qemu-project/qemu/-/commit/3e4546d5bd38a1e98d4bd2de48631abf0398a3a2.diff"; @@ -158,7 +168,7 @@ stdenv.mkDerivation (finalAttrs: { configureFlags = [ "--disable-strip" # We'll strip ourselves after separating debug info. (lib.enableFeature enableDocs "docs") - "--enable-tools" + (lib.enableFeature enableTools "tools") "--localstatedir=/var" "--sysconfdir=/etc" "--cross-prefix=${stdenv.cc.targetPrefix}" @@ -169,8 +179,8 @@ stdenv.mkDerivation (finalAttrs: { ++ lib.optional spiceSupport "--enable-spice" ++ lib.optional usbredirSupport "--enable-usb-redir" ++ lib.optional (hostCpuTargets != null) "--target-list=${lib.concatStringsSep "," hostCpuTargets}" - ++ lib.optionals stdenv.isDarwin [ "--enable-cocoa" "--enable-hvf" ] - ++ lib.optional stdenv.isLinux "--enable-linux-aio" + ++ lib.optionals stdenv.hostPlatform.isDarwin [ "--enable-cocoa" "--enable-hvf" ] + ++ lib.optional (stdenv.hostPlatform.isLinux && !userOnly) "--enable-linux-aio" ++ lib.optional gtkSupport "--enable-gtk" ++ lib.optional xenSupport "--enable-xen" ++ lib.optional cephSupport "--enable-rbd" @@ -182,7 +192,11 @@ stdenv.mkDerivation (finalAttrs: { ++ lib.optional smbdSupport "--smbd=${samba}/bin/smbd" ++ lib.optional uringSupport "--enable-linux-io-uring" ++ lib.optional canokeySupport "--enable-canokey" - ++ lib.optional capstoneSupport "--enable-capstone"; + ++ lib.optional capstoneSupport "--enable-capstone" + ++ lib.optional (!pluginsSupport) "--disable-plugins" + ++ lib.optional (!enableBlobs) "--disable-install-blobs" + ++ lib.optional userOnly "--disable-system" + ++ lib.optional stdenv.hostPlatform.isStatic "--static"; dontWrapGApps = true; @@ -190,7 +204,7 @@ stdenv.mkDerivation (finalAttrs: { # voiding the entitlements and making it non-operational. # The alternative is to re-sign with entitlements after stripping: # * https://github.com/qemu/qemu/blob/v6.1.0/scripts/entitlement.sh#L25 - dontStrip = stdenv.isDarwin; + dontStrip = stdenv.hostPlatform.isDarwin; postFixup = '' # the .desktop is both invalid and pointless @@ -206,6 +220,11 @@ stdenv.mkDerivation (finalAttrs: { for f in $out/bin/qemu-system-*; do wrapGApp $f done + '' + lib.optionalString stdenv.hostPlatform.isStatic '' + # HACK: Otherwise the result will have the entire buildInputs closure + # injected by the pkgsStatic stdenv + # <https://github.com/NixOS/nixpkgs/issues/83667> + rm -f $out/nix-support/propagated-build-inputs ''; preBuild = "cd build"; @@ -241,7 +260,7 @@ stdenv.mkDerivation (finalAttrs: { # xattrs are not allowed in the sandbox substituteInPlace ../tests/qtest/virtio-9p-test.c \ --replace-fail mapped-xattr mapped-file - '' + lib.optionalString stdenv.isDarwin '' + '' + lib.optionalString stdenv.hostPlatform.isDarwin '' # skip test that stalls on darwin, perhaps due to subtle differences # in fifo behaviour substituteInPlace ../tests/unit/meson.build \ @@ -249,7 +268,7 @@ stdenv.mkDerivation (finalAttrs: { ''; # Add a ‘qemu-kvm’ wrapper for compatibility/convenience. - postInstall = lib.optionalString (!toolsOnly) '' + postInstall = lib.optionalString (!minimal) '' ln -s $out/bin/qemu-system-${stdenv.hostPlatform.qemuArch} $out/bin/qemu-kvm ''; @@ -274,11 +293,17 @@ stdenv.mkDerivation (finalAttrs: { homepage = "https://www.qemu.org/"; description = "Generic and open source machine emulator and virtualizer"; license = licenses.gpl2Plus; - maintainers = with maintainers; [ eelco qyliss ]; + maintainers = with maintainers; [ qyliss ] ++ lib.optionals xenSupport xen.meta.maintainers; platforms = platforms.unix; } # toolsOnly: Does not have qemu-kvm and there's no main support tool - // lib.optionalAttrs (!toolsOnly) { + # userOnly: There's one qemu-<arch> for every architecture + // lib.optionalAttrs (!toolsOnly && !userOnly) { mainProgram = "qemu-kvm"; + } + # userOnly: https://qemu.readthedocs.io/en/v9.0.2/user/main.html + // lib.optionalAttrs userOnly { + platforms = with platforms; (linux ++ freebsd ++ openbsd ++ netbsd); + description = "QEMU User space emulator - launch executables compiled for one CPU on another CPU"; }; }) diff --git a/pkgs/applications/virtualization/qemu/fix-qemu-ga.patch b/pkgs/applications/virtualization/qemu/fix-qemu-ga.patch index 94dec69168002..9a4a7f0d432ee 100644 --- a/pkgs/applications/virtualization/qemu/fix-qemu-ga.patch +++ b/pkgs/applications/virtualization/qemu/fix-qemu-ga.patch @@ -1,36 +1,45 @@ -diff --git i/qga/commands-posix.c w/qga/commands-posix.c -index 954efed01b..39c4b916ce 100644 ---- i/qga/commands-posix.c -+++ w/qga/commands-posix.c -@@ -123,6 +123,8 @@ void qmp_guest_shutdown(bool has_mode, const char *mode, Error **errp) - execl("/sbin/shutdown", "shutdown", shutdown_flag, "-g0", "-y", - "hypervisor initiated shutdown", (char *)NULL); - #else -+ execl("/run/current-system/sw/bin/shutdown", "shutdown", "-h", shutdown_flag, "+0", -+ "hypervisor initiated shutdown", (char *)NULL); - execl("/sbin/shutdown", "shutdown", "-h", shutdown_flag, "+0", - "hypervisor initiated shutdown", (char *)NULL); - #endif -@@ -158,11 +160,13 @@ void qmp_guest_set_time(bool has_time, int64_t time_ns, Error **errp) - pid_t pid; - Error *local_err = NULL; - struct timeval tv; -+ static const char hwclock_path_nix[] = "/run/current-system/sw/bin/hwclock"; - static const char hwclock_path[] = "/sbin/hwclock"; - static int hwclock_available = -1; - - if (hwclock_available < 0) { -- hwclock_available = (access(hwclock_path, X_OK) == 0); -+ hwclock_available = (access(hwclock_path_nix, X_OK) == 0) || -+ (access(hwclock_path, X_OK) == 0); +diff --git a/qga/commands-posix.c b/qga/commands-posix.c +index c2bd0b4316..47cee1c351 100644 +--- a/qga/commands-posix.c ++++ b/qga/commands-posix.c +@@ -246,7 +246,7 @@ void qmp_guest_shutdown(const char *mode, Error **errp) + return; } - if (!hwclock_available) { -@@ -208,6 +212,7 @@ void qmp_guest_set_time(bool has_time, int64_t time_ns, Error **errp) +- const char *argv[] = {"/sbin/shutdown", ++ const char *argv[] = {"/run/current-system/sw/bin/shutdown", + #ifdef CONFIG_SOLARIS + shutdown_flag, "-g0", "-y", + #elif defined(CONFIG_BSD) +@@ -257,6 +257,10 @@ void qmp_guest_shutdown(const char *mode, Error **errp) + "hypervisor initiated shutdown", (char *) NULL}; + + ga_run_command(argv, NULL, "shutdown", &local_err); ++ if (local_err) { ++ argv[0] = "/sbin/shutdown"; ++ ga_run_command(argv, NULL, "shutdown", &local_err); ++ } + if (local_err) { + error_propagate(errp, local_err); + return; +@@ -270,7 +274,7 @@ void qmp_guest_set_time(bool has_time, int64_t time_ns, Error **errp) + int ret; + Error *local_err = NULL; + struct timeval tv; +- const char *argv[] = {"/sbin/hwclock", has_time ? "-w" : "-s", NULL}; ++ const char *argv[] = {"/run/current-system/sw/bin/hwclock", has_time ? "-w" : "-s", NULL}; - /* Use '/sbin/hwclock -w' to set RTC from the system time, - * or '/sbin/hwclock -s' to set the system time from RTC. */ -+ execl(hwclock_path_nix, "hwclock", has_time ? "-w" : "-s", NULL); - execl(hwclock_path, "hwclock", has_time ? "-w" : "-s", NULL); - _exit(EXIT_FAILURE); - } else if (pid < 0) { + /* If user has passed a time, validate and set it. */ + if (has_time) { +@@ -303,6 +307,11 @@ void qmp_guest_set_time(bool has_time, int64_t time_ns, Error **errp) + * hardware clock (RTC). */ + ga_run_command(argv, NULL, "set hardware clock to system time", + &local_err); ++ if (local_err) { ++ argv[0] = "/sbin/hwclock"; ++ ga_run_command(argv, NULL, "set hardware clock to system time", ++ &local_err); ++ } + if (local_err) { + error_propagate(errp, local_err); + return; diff --git a/pkgs/applications/virtualization/qemu/provide-fallback-for-utimensat.patch b/pkgs/applications/virtualization/qemu/provide-fallback-for-utimensat.patch deleted file mode 100644 index dc4f4abb27383..0000000000000 --- a/pkgs/applications/virtualization/qemu/provide-fallback-for-utimensat.patch +++ /dev/null @@ -1,189 +0,0 @@ -From 2ec149ea3f0046fa83e3be74aca192649a60be47 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 9d07620235..9c77a431d5 100644 ---- a/hw/9pfs/9p-local.c -+++ b/hw/9pfs/9p-local.c -@@ -1081,7 +1081,7 @@ static int local_utimensat(FsContext *s, V9fsPath *fs_path, - goto out; - } - -- ret = qemu_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 95146e7354..74ab2a7f99 100644 ---- a/hw/9pfs/9p-util-darwin.c -+++ b/hw/9pfs/9p-util-darwin.c -@@ -145,3 +145,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 c314cf381d..12d57f3398 100644 ---- a/hw/9pfs/9p-util.h -+++ b/hw/9pfs/9p-util.h -@@ -101,6 +101,12 @@ static inline int errno_to_dotl(int err) { - #define qemu_utimensat utimensat - #define qemu_unlinkat unlinkat - -+/* 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; -@@ -163,6 +169,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.39.2 diff --git a/pkgs/applications/virtualization/qemu/remove-ui-cocoa-use-safe-area-insets.patch b/pkgs/applications/virtualization/qemu/remove-ui-cocoa-use-safe-area-insets.patch deleted file mode 100644 index 2a8430afaa705..0000000000000 --- a/pkgs/applications/virtualization/qemu/remove-ui-cocoa-use-safe-area-insets.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/ui/cocoa.m b/ui/cocoa.m -index 25e0db9dd0..7ce889d798 100644 ---- a/ui/cocoa.m -+++ b/ui/cocoa.m -@@ -539,9 +539,6 @@ - (NSSize)fixAspectRatio:(NSSize)max - - (NSSize) screenSafeAreaSize - { - NSSize size = [[[self window] screen] frame].size; -- NSEdgeInsets insets = [[[self window] screen] safeAreaInsets]; -- size.width -= insets.left + insets.right; -- size.height -= insets.top + insets.bottom; - return size; - } - diff --git a/pkgs/applications/virtualization/qemu/revert-ui-cocoa-add-clipboard-support.patch b/pkgs/applications/virtualization/qemu/revert-ui-cocoa-add-clipboard-support.patch deleted file mode 100644 index c429bce03dcf6..0000000000000 --- a/pkgs/applications/virtualization/qemu/revert-ui-cocoa-add-clipboard-support.patch +++ /dev/null @@ -1,200 +0,0 @@ -Based on a reversion of upstream 7e3e20d89129614f4a7b2451fe321cc6ccca3b76, -adapted for 7.2.0 - -diff --git a/include/ui/clipboard.h b/include/ui/clipboard.h -index ce76aa451f..c4e1dc4ff4 100644 ---- a/include/ui/clipboard.h -+++ b/include/ui/clipboard.h -@@ -269,7 +269,7 @@ void qemu_clipboard_set_data(QemuClipboardPeer *peer, - QemuClipboardInfo *info, - QemuClipboardType type, - uint32_t size, -- const void *data, -+ void *data, - bool update); - - G_DEFINE_AUTOPTR_CLEANUP_FUNC(QemuClipboardInfo, qemu_clipboard_info_unref) -diff --git a/ui/clipboard.c b/ui/clipboard.c -index 3d14bffaf8..2c3f4c3ba0 100644 ---- a/ui/clipboard.c -+++ b/ui/clipboard.c -@@ -154,7 +154,7 @@ void qemu_clipboard_set_data(QemuClipboardPeer *peer, - QemuClipboardInfo *info, - QemuClipboardType type, - uint32_t size, -- const void *data, -+ void *data, - bool update) - { - if (!info || -diff --git a/ui/cocoa.m b/ui/cocoa.m -index 660d3e0935..0e6760c360 100644 ---- a/ui/cocoa.m -+++ b/ui/cocoa.m -@@ -29,7 +29,6 @@ - - #include "qemu/help-texts.h" - #include "qemu-main.h" --#include "ui/clipboard.h" - #include "ui/console.h" - #include "ui/input.h" - #include "ui/kbd-state.h" -@@ -105,10 +104,6 @@ static void cocoa_switch(DisplayChangeListener *dcl, - - static bool allow_events; - --static NSInteger cbchangecount = -1; --static QemuClipboardInfo *cbinfo; --static QemuEvent cbevent; -- - // Utility functions to run specified code block with the BQL held - typedef void (^CodeBlock)(void); - typedef bool (^BoolCodeBlock)(void); -@@ -1799,107 +1794,6 @@ static void addRemovableDevicesMenuItems(void) - qapi_free_BlockInfoList(pointerToFree); - } - --@interface QemuCocoaPasteboardTypeOwner : NSObject<NSPasteboardTypeOwner> --@end -- --@implementation QemuCocoaPasteboardTypeOwner -- --- (void)pasteboard:(NSPasteboard *)sender provideDataForType:(NSPasteboardType)type --{ -- if (type != NSPasteboardTypeString) { -- return; -- } -- -- with_bql(^{ -- QemuClipboardInfo *info = qemu_clipboard_info_ref(cbinfo); -- qemu_event_reset(&cbevent); -- qemu_clipboard_request(info, QEMU_CLIPBOARD_TYPE_TEXT); -- -- while (info == cbinfo && -- info->types[QEMU_CLIPBOARD_TYPE_TEXT].available && -- info->types[QEMU_CLIPBOARD_TYPE_TEXT].data == NULL) { -- bql_unlock(); -- qemu_event_wait(&cbevent); -- bql_lock(); -- } -- -- if (info == cbinfo) { -- NSData *data = [[NSData alloc] initWithBytes:info->types[QEMU_CLIPBOARD_TYPE_TEXT].data -- length:info->types[QEMU_CLIPBOARD_TYPE_TEXT].size]; -- [sender setData:data forType:NSPasteboardTypeString]; -- [data release]; -- } -- -- qemu_clipboard_info_unref(info); -- }); --} -- --@end -- --static QemuCocoaPasteboardTypeOwner *cbowner; -- --static void cocoa_clipboard_notify(Notifier *notifier, void *data); --static void cocoa_clipboard_request(QemuClipboardInfo *info, -- QemuClipboardType type); -- --static QemuClipboardPeer cbpeer = { -- .name = "cocoa", -- .notifier = { .notify = cocoa_clipboard_notify }, -- .request = cocoa_clipboard_request --}; -- --static void cocoa_clipboard_update_info(QemuClipboardInfo *info) --{ -- if (info->owner == &cbpeer || info->selection != QEMU_CLIPBOARD_SELECTION_CLIPBOARD) { -- return; -- } -- -- if (info != cbinfo) { -- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; -- qemu_clipboard_info_unref(cbinfo); -- cbinfo = qemu_clipboard_info_ref(info); -- cbchangecount = [[NSPasteboard generalPasteboard] declareTypes:@[NSPasteboardTypeString] owner:cbowner]; -- [pool release]; -- } -- -- qemu_event_set(&cbevent); --} -- --static void cocoa_clipboard_notify(Notifier *notifier, void *data) --{ -- QemuClipboardNotify *notify = data; -- -- switch (notify->type) { -- case QEMU_CLIPBOARD_UPDATE_INFO: -- cocoa_clipboard_update_info(notify->info); -- return; -- case QEMU_CLIPBOARD_RESET_SERIAL: -- /* ignore */ -- return; -- } --} -- --static void cocoa_clipboard_request(QemuClipboardInfo *info, -- QemuClipboardType type) --{ -- NSAutoreleasePool *pool; -- NSData *text; -- -- switch (type) { -- case QEMU_CLIPBOARD_TYPE_TEXT: -- pool = [[NSAutoreleasePool alloc] init]; -- text = [[NSPasteboard generalPasteboard] dataForType:NSPasteboardTypeString]; -- if (text) { -- qemu_clipboard_set_data(&cbpeer, info, type, -- [text length], [text bytes], true); -- } -- [pool release]; -- break; -- default: -- break; -- } --} -- - /* - * The startup process for the OSX/Cocoa UI is complicated, because - * OSX insists that the UI runs on the initial main thread, and so we -@@ -1922,7 +1816,6 @@ static void cocoa_clipboard_request(QemuClipboardInfo *info, - status = qemu_default_main(); - qemu_mutex_unlock_iothread(); - COCOA_DEBUG("Second thread: qemu_default_main() returned, exiting\n"); -- [cbowner release]; - exit(status); - } - -@@ -2003,18 +1896,6 @@ static void cocoa_refresh(DisplayChangeListener *dcl) - [cocoaView setAbsoluteEnabled:YES]; - }); - } -- -- if (cbchangecount != [[NSPasteboard generalPasteboard] changeCount]) { -- qemu_clipboard_info_unref(cbinfo); -- cbinfo = qemu_clipboard_info_new(&cbpeer, QEMU_CLIPBOARD_SELECTION_CLIPBOARD); -- if ([[NSPasteboard generalPasteboard] availableTypeFromArray:@[NSPasteboardTypeString]]) { -- cbinfo->types[QEMU_CLIPBOARD_TYPE_TEXT].available = true; -- } -- qemu_clipboard_update(cbinfo); -- cbchangecount = [[NSPasteboard generalPasteboard] changeCount]; -- qemu_event_set(&cbevent); -- } -- - [pool release]; - } - -@@ -2071,12 +1952,6 @@ static void cocoa_display_init(DisplayState *ds, DisplayOptions *opts) - // register vga output callbacks - register_displaychangelistener(&dcl); - [cocoaView updateUIInfo]; -- -- qemu_event_init(&cbevent, false); -- cbowner = [[QemuCocoaPasteboardTypeOwner alloc] init]; -- qemu_clipboard_peer_register(&cbpeer); -- -- [pool release]; - } - - static QemuDisplay qemu_display_cocoa = { diff --git a/pkgs/applications/virtualization/qemu/revert-ui-cocoa-use-the-standard-about-panel.patch b/pkgs/applications/virtualization/qemu/revert-ui-cocoa-use-the-standard-about-panel.patch deleted file mode 100644 index 08620da3b9632..0000000000000 --- a/pkgs/applications/virtualization/qemu/revert-ui-cocoa-use-the-standard-about-panel.patch +++ /dev/null @@ -1,145 +0,0 @@ -diff --git a/ui/cocoa.m b/ui/cocoa.m -index 25e0db9dd0..4af0712036 100644 ---- a/ui/cocoa.m -+++ b/ui/cocoa.m -@@ -93,6 +93,7 @@ static void cocoa_switch(DisplayChangeListener *dcl, - - static void cocoa_refresh(DisplayChangeListener *dcl); - -+static NSWindow *about_window; - static const DisplayChangeListenerOps dcl_ops = { - .dpy_name = "cocoa", - .dpy_gfx_update = cocoa_update, -@@ -1180,6 +1181,7 @@ - (void)changeDeviceMedia:(id)sender; - - (BOOL)verifyQuit; - - (void)openDocumentation:(NSString *)filename; - - (IBAction) do_about_menu_item: (id) sender; -+- (void)make_about_window; - - (void)adjustSpeed:(id)sender; - @end - -@@ -1227,6 +1229,8 @@ - (id) init - [pauseLabel setFont: [NSFont fontWithName: @"Helvetica" size: 90]]; - [pauseLabel setTextColor: [NSColor blackColor]]; - [pauseLabel sizeToFit]; -+ -+ [self make_about_window]; - } - return self; - } -@@ -1549,29 +1553,92 @@ - (BOOL)verifyQuit - /* The action method for the About menu item */ - - (IBAction) do_about_menu_item: (id) sender - { -- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; -- char *icon_path_c = get_relocated_path(CONFIG_QEMU_ICONDIR "/hicolor/512x512/apps/qemu.png"); -- NSString *icon_path = [NSString stringWithUTF8String:icon_path_c]; -- g_free(icon_path_c); -- NSImage *icon = [[NSImage alloc] initWithContentsOfFile:icon_path]; -- NSString *version = @"QEMU emulator version " QEMU_FULL_VERSION; -- NSString *copyright = @QEMU_COPYRIGHT; -- NSDictionary *options; -- if (icon) { -- options = @{ -- NSAboutPanelOptionApplicationIcon : icon, -- NSAboutPanelOptionApplicationVersion : version, -- @"Copyright" : copyright, -- }; -- [icon release]; -- } else { -- options = @{ -- NSAboutPanelOptionApplicationVersion : version, -- @"Copyright" : copyright, -- }; -- } -- [NSApp orderFrontStandardAboutPanelWithOptions:options]; -- [pool release]; -+ [about_window makeKeyAndOrderFront: nil]; -+} -+ -+/* Create and display the about dialog */ -+- (void)make_about_window -+{ -+ /* Make the window */ -+ int x = 0, y = 0, about_width = 400, about_height = 200; -+ NSRect window_rect = NSMakeRect(x, y, about_width, about_height); -+ about_window = [[NSWindow alloc] initWithContentRect:window_rect -+ styleMask:NSWindowStyleMaskTitled | NSWindowStyleMaskClosable | -+ NSWindowStyleMaskMiniaturizable -+ backing:NSBackingStoreBuffered -+ defer:NO]; -+ [about_window setTitle: @"About"]; -+ [about_window setReleasedWhenClosed: NO]; -+ [about_window center]; -+ NSView *superView = [about_window contentView]; -+ -+ /* Create the dimensions of the picture */ -+ int picture_width = 80, picture_height = 80; -+ x = (about_width - picture_width)/2; -+ y = about_height - picture_height - 10; -+ NSRect picture_rect = NSMakeRect(x, y, picture_width, picture_height); -+ -+ /* Make the picture of QEMU */ -+ NSImageView *picture_view = [[NSImageView alloc] initWithFrame: -+ picture_rect]; -+ char *qemu_image_path_c = get_relocated_path(CONFIG_QEMU_ICONDIR "/hicolor/512x512/apps/qemu.png"); -+ NSString *qemu_image_path = [NSString stringWithUTF8String:qemu_image_path_c]; -+ g_free(qemu_image_path_c); -+ NSImage *qemu_image = [[NSImage alloc] initWithContentsOfFile:qemu_image_path]; -+ [picture_view setImage: qemu_image]; -+ [picture_view setImageScaling: NSImageScaleProportionallyUpOrDown]; -+ [superView addSubview: picture_view]; -+ -+ /* Make the name label */ -+ NSBundle *bundle = [NSBundle mainBundle]; -+ if (bundle) { -+ x = 0; -+ y = y - 25; -+ int name_width = about_width, name_height = 20; -+ NSRect name_rect = NSMakeRect(x, y, name_width, name_height); -+ NSTextField *name_label = [[NSTextField alloc] initWithFrame: name_rect]; -+ [name_label setEditable: NO]; -+ [name_label setBezeled: NO]; -+ [name_label setDrawsBackground: NO]; -+ [name_label setAlignment: NSTextAlignmentCenter]; -+ NSString *qemu_name = [[bundle executablePath] lastPathComponent]; -+ [name_label setStringValue: qemu_name]; -+ [superView addSubview: name_label]; -+ } -+ -+ /* Set the version label's attributes */ -+ x = 0; -+ y = 50; -+ int version_width = about_width, version_height = 20; -+ NSRect version_rect = NSMakeRect(x, y, version_width, version_height); -+ NSTextField *version_label = [[NSTextField alloc] initWithFrame: -+ version_rect]; -+ [version_label setEditable: NO]; -+ [version_label setBezeled: NO]; -+ [version_label setAlignment: NSTextAlignmentCenter]; -+ [version_label setDrawsBackground: NO]; -+ -+ /* Create the version string*/ -+ NSString *version_string; -+ version_string = [[NSString alloc] initWithFormat: -+ @"QEMU emulator version %s", QEMU_FULL_VERSION]; -+ [version_label setStringValue: version_string]; -+ [superView addSubview: version_label]; -+ -+ /* Make copyright label */ -+ x = 0; -+ y = 35; -+ int copyright_width = about_width, copyright_height = 20; -+ NSRect copyright_rect = NSMakeRect(x, y, copyright_width, copyright_height); -+ NSTextField *copyright_label = [[NSTextField alloc] initWithFrame: -+ copyright_rect]; -+ [copyright_label setEditable: NO]; -+ [copyright_label setBezeled: NO]; -+ [copyright_label setDrawsBackground: NO]; -+ [copyright_label setAlignment: NSTextAlignmentCenter]; -+ [copyright_label setStringValue: [NSString stringWithFormat: @"%s", -+ QEMU_COPYRIGHT]]; -+ [superView addSubview: copyright_label]; - } - - /* Used by the Speed menu items */ diff --git a/pkgs/applications/virtualization/quickgui/default.nix b/pkgs/applications/virtualization/quickgui/default.nix index 244e438626e0a..e60d7949ec3a6 100644 --- a/pkgs/applications/virtualization/quickgui/default.nix +++ b/pkgs/applications/virtualization/quickgui/default.nix @@ -1,67 +1,56 @@ -{ stdenvNoCC +{ fetchFromGitHub +, makeDesktopItem +, copyDesktopItems , lib -, fetchurl -, autoPatchelfHook -, dpkg -, wrapGAppsHook3 +, flutter , quickemu -, gnome +, zenity }: - -stdenvNoCC.mkDerivation rec { +flutter.buildFlutterApplication rec { pname = "quickgui"; - version = "1.2.8"; - - src = fetchurl { - url = "https://github.com/quickemu-project/quickgui/releases/download/v${version}/quickgui_${version}-1_lunar1.0_amd64.deb"; - sha256 = "sha256-crnV7OWH5UbkMM/TxTIOlXmvqBgjFmQG7RxameMOjH0="; + version = "1.2.10"; + src = fetchFromGitHub { + owner = "quickemu-project"; + repo = "quickgui"; + rev = version; + hash = "sha256-M2Qy66RqsjXg7ZpHwaXCN8qXRIsisnIyaENx3KqmUfQ="; }; - nativeBuildInputs = [ - autoPatchelfHook - dpkg - wrapGAppsHook3 - ]; - - buildInputs = [ - quickemu - gnome.zenity - ]; - - strictDeps = true; - - unpackCmd = "dpkg-deb -x $curSrc source"; + pubspecLock = lib.importJSON ./pubspec.lock.json; - installPhase = '' - runHook preInstall - - mv usr $out + gitHashes = { + window_size = "sha256-XelNtp7tpZ91QCEcvewVphNUtgQX7xrp5QP0oFo6DgM="; + }; - runHook postInstall - ''; + extraWrapProgramArgs = "--prefix PATH : ${lib.makeBinPath [ quickemu zenity ]}"; - preFixup = '' - gappsWrapperArgs+=( - --prefix PATH : ${lib.makeBinPath [ quickemu gnome.zenity ]} - ) - ''; + nativeBuildInputs = [ copyDesktopItems ]; postFixup = '' - substituteInPlace $out/share/applications/quickgui.desktop \ - --replace "/usr" $out - - # quickgui PR 88 - echo "Categories=System;" >> $out/share/applications/quickgui.desktop + for SIZE in 16 32 48 64 128 256 512; do + mkdir -p $out/share/icons/hicolor/$SIZEx$SIZE/apps/ + cp -av assets/resources/quickgui_$SIZE.png $out/share/icons/hicolor/$SIZEx$SIZE/apps/quickgui.png + done ''; + desktopItems = [ + (makeDesktopItem { + name = "quickgui"; + exec = "quickgui"; + icon = "quickgui"; + desktopName = "Quickgui"; + comment = "An elegant virtual machine manager for the desktop"; + categories = [ "Development" "System" ]; + }) + ]; + meta = with lib; { - description = "Flutter frontend for quickemu"; + description = "Elegant virtual machine manager for the desktop"; homepage = "https://github.com/quickemu-project/quickgui"; - changelog = "https://github.com/quickemu-project/quickgui/releases/tag/v${version}"; + changelog = "https://github.com/quickemu-project/quickgui/releases/"; license = licenses.mit; - maintainers = with maintainers; [ heyimnova ]; + maintainers = with maintainers; [ flexiondotorg heyimnova ]; platforms = [ "x86_64-linux" ]; - sourceProvenance = [ sourceTypes.binaryNativeCode ]; mainProgram = "quickgui"; }; } diff --git a/pkgs/applications/virtualization/quickgui/pubspec.lock.json b/pkgs/applications/virtualization/quickgui/pubspec.lock.json new file mode 100644 index 0000000000000..7e62ceff8be72 --- /dev/null +++ b/pkgs/applications/virtualization/quickgui/pubspec.lock.json @@ -0,0 +1,1189 @@ +{ + "packages": { + "_discoveryapis_commons": { + "dependency": "transitive", + "description": { + "name": "_discoveryapis_commons", + "sha256": "f8bb1fdbd77f3d5c1d62b5b0eca75fbf1e41bf4f6c62628f880582e2182ae45d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.6" + }, + "ansicolor": { + "dependency": "transitive", + "description": { + "name": "ansicolor", + "sha256": "8bf17a8ff6ea17499e40a2d2542c2f481cd7615760c6d34065cb22bfd22e6880", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.2" + }, + "archive": { + "dependency": "transitive", + "description": { + "name": "archive", + "sha256": "cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.6.1" + }, + "args": { + "dependency": "transitive", + "description": { + "name": "args", + "sha256": "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.5.0" + }, + "async": { + "dependency": "transitive", + "description": { + "name": "async", + "sha256": "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.11.0" + }, + "boolean_selector": { + "dependency": "transitive", + "description": { + "name": "boolean_selector", + "sha256": "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.1" + }, + "characters": { + "dependency": "transitive", + "description": { + "name": "characters", + "sha256": "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.3.0" + }, + "charset": { + "dependency": "transitive", + "description": { + "name": "charset", + "sha256": "27802032a581e01ac565904ece8c8962564b1070690794f0072f6865958ce8b9", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.1" + }, + "checked_yaml": { + "dependency": "transitive", + "description": { + "name": "checked_yaml", + "sha256": "feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.3" + }, + "cli_util": { + "dependency": "transitive", + "description": { + "name": "cli_util", + "sha256": "c05b7406fdabc7a49a3929d4af76bcaccbbffcbcdcf185b082e1ae07da323d19", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.4.1" + }, + "clock": { + "dependency": "transitive", + "description": { + "name": "clock", + "sha256": "cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.1" + }, + "collection": { + "dependency": "transitive", + "description": { + "name": "collection", + "sha256": "ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.18.0" + }, + "console": { + "dependency": "transitive", + "description": { + "name": "console", + "sha256": "e04e7824384c5b39389acdd6dc7d33f3efe6b232f6f16d7626f194f6a01ad69a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.1.0" + }, + "cross_file": { + "dependency": "transitive", + "description": { + "name": "cross_file", + "sha256": "55d7b444feb71301ef6b8838dbc1ae02e63dd48c8773f3810ff53bb1e2945b32", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.3.4+1" + }, + "crypto": { + "dependency": "transitive", + "description": { + "name": "crypto", + "sha256": "ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.3" + }, + "cupertino_icons": { + "dependency": "direct main", + "description": { + "name": "cupertino_icons", + "sha256": "ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.8" + }, + "dbus": { + "dependency": "transitive", + "description": { + "name": "dbus", + "sha256": "365c771ac3b0e58845f39ec6deebc76e3276aa9922b0cc60840712094d9047ac", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.7.10" + }, + "desktop_notifications": { + "dependency": "direct main", + "description": { + "name": "desktop_notifications", + "sha256": "6d92694ad6e9297a862c5ff7dd6b8ff64c819972557754769f819d2209612927", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.6.3" + }, + "dio": { + "dependency": "transitive", + "description": { + "name": "dio", + "sha256": "11e40df547d418cc0c4900a9318b26304e665da6fa4755399a9ff9efd09034b5", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "5.4.3+1" + }, + "fake_async": { + "dependency": "transitive", + "description": { + "name": "fake_async", + "sha256": "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.3.1" + }, + "ffi": { + "dependency": "transitive", + "description": { + "name": "ffi", + "sha256": "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.2" + }, + "file": { + "dependency": "transitive", + "description": { + "name": "file", + "sha256": "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "7.0.0" + }, + "file_picker": { + "dependency": "direct main", + "description": { + "name": "file_picker", + "sha256": "824f5b9f389bfc4dddac3dea76cd70c51092d9dff0b2ece7ef4f53db8547d258", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "8.0.6" + }, + "flutter": { + "dependency": "direct main", + "description": "flutter", + "source": "sdk", + "version": "0.0.0" + }, + "flutter_app_builder": { + "dependency": "transitive", + "description": { + "name": "flutter_app_builder", + "sha256": "74018c0e2da3ae33073e7417b5c8e900fdc7b5ebc3bdacd2dd05244d9b5e54cb", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.4.5" + }, + "flutter_app_packager": { + "dependency": "transitive", + "description": { + "name": "flutter_app_packager", + "sha256": "3925c4e2ac53f4a5ce3bae1a5f54966620504d6c28725b112074cfbdf227a36b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.4.5" + }, + "flutter_app_publisher": { + "dependency": "transitive", + "description": { + "name": "flutter_app_publisher", + "sha256": "bbb1953ef723fc98a7f974ae9499194999f570194c6d856182518e6e73b51ff2", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.4.5" + }, + "flutter_distributor": { + "dependency": "direct dev", + "description": { + "name": "flutter_distributor", + "sha256": "45d27526a5de93370e322da5314b0a1c07c024b79031a8ad44435046915fa0e8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.4.5" + }, + "flutter_lints": { + "dependency": "direct dev", + "description": { + "name": "flutter_lints", + "sha256": "3f41d009ba7172d5ff9be5f6e6e6abb4300e263aab8866d2a0842ed2a70f8f0c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.0.0" + }, + "flutter_localizations": { + "dependency": "direct main", + "description": "flutter", + "source": "sdk", + "version": "0.0.0" + }, + "flutter_plugin_android_lifecycle": { + "dependency": "transitive", + "description": { + "name": "flutter_plugin_android_lifecycle", + "sha256": "c6b0b4c05c458e1c01ad9bcc14041dd7b1f6783d487be4386f793f47a8a4d03e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.20" + }, + "flutter_svg": { + "dependency": "direct main", + "description": { + "name": "flutter_svg", + "sha256": "7b4ca6cf3304575fe9c8ec64813c8d02ee41d2afe60bcfe0678bcb5375d596a2", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.10+1" + }, + "flutter_test": { + "dependency": "direct dev", + "description": "flutter", + "source": "sdk", + "version": "0.0.0" + }, + "flutter_web_plugins": { + "dependency": "transitive", + "description": "flutter", + "source": "sdk", + "version": "0.0.0" + }, + "get_it": { + "dependency": "transitive", + "description": { + "name": "get_it", + "sha256": "d85128a5dae4ea777324730dc65edd9c9f43155c109d5cc0a69cab74139fbac1", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "7.7.0" + }, + "gettext": { + "dependency": "direct main", + "description": { + "name": "gettext", + "sha256": "007a3cbd5d8139252118bab34911d24edfc695665b38f91ae244f51b4d71f6b4", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.0" + }, + "gettext_i18n": { + "dependency": "direct main", + "description": { + "name": "gettext_i18n", + "sha256": "1acdb7f6bb7c06aaa69016a248de20123ac9af2e1a29321244012fbf6f2d4bdd", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.7" + }, + "gettext_parser": { + "dependency": "direct main", + "description": { + "name": "gettext_parser", + "sha256": "9565c9dd1033ec125e1fbc7ccba6c0d2d753dd356122ba1a17e6aa7dc868f34a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.2.0" + }, + "glob": { + "dependency": "transitive", + "description": { + "name": "glob", + "sha256": "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.2" + }, + "google_identity_services_web": { + "dependency": "transitive", + "description": { + "name": "google_identity_services_web", + "sha256": "9482364c9f8b7bd36902572ebc3a7c2b5c8ee57a9c93e6eb5099c1a9ec5265d8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.3.1+1" + }, + "googleapis": { + "dependency": "transitive", + "description": { + "name": "googleapis", + "sha256": "864f222aed3f2ff00b816c675edf00a39e2aaf373d728d8abec30b37bee1a81c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "13.2.0" + }, + "googleapis_auth": { + "dependency": "transitive", + "description": { + "name": "googleapis_auth", + "sha256": "befd71383a955535060acde8792e7efc11d2fccd03dd1d3ec434e85b68775938", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.6.0" + }, + "http": { + "dependency": "transitive", + "description": { + "name": "http", + "sha256": "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.1" + }, + "http_parser": { + "dependency": "transitive", + "description": { + "name": "http_parser", + "sha256": "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.0.2" + }, + "image": { + "dependency": "transitive", + "description": { + "name": "image", + "sha256": "2237616a36c0d69aef7549ab439b833fb7f9fb9fc861af2cc9ac3eedddd69ca8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.2.0" + }, + "intl": { + "dependency": "transitive", + "description": { + "name": "intl", + "sha256": "d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.19.0" + }, + "io": { + "dependency": "transitive", + "description": { + "name": "io", + "sha256": "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.4" + }, + "json_annotation": { + "dependency": "transitive", + "description": { + "name": "json_annotation", + "sha256": "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.9.0" + }, + "leak_tracker": { + "dependency": "transitive", + "description": { + "name": "leak_tracker", + "sha256": "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "10.0.4" + }, + "leak_tracker_flutter_testing": { + "dependency": "transitive", + "description": { + "name": "leak_tracker_flutter_testing", + "sha256": "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.3" + }, + "leak_tracker_testing": { + "dependency": "transitive", + "description": { + "name": "leak_tracker_testing", + "sha256": "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.1" + }, + "lints": { + "dependency": "transitive", + "description": { + "name": "lints", + "sha256": "976c774dd944a42e83e2467f4cc670daef7eed6295b10b36ae8c85bcbf828235", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.0.0" + }, + "liquid_engine": { + "dependency": "transitive", + "description": { + "name": "liquid_engine", + "sha256": "41ae12d5a72451c3efb8d4e7b901cdf0537917597bc7e7376e9b0a237f92df29", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.2.2" + }, + "logging": { + "dependency": "transitive", + "description": { + "name": "logging", + "sha256": "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.0" + }, + "matcher": { + "dependency": "transitive", + "description": { + "name": "matcher", + "sha256": "d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.12.16+1" + }, + "material_color_utilities": { + "dependency": "transitive", + "description": { + "name": "material_color_utilities", + "sha256": "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.8.0" + }, + "meta": { + "dependency": "transitive", + "description": { + "name": "meta", + "sha256": "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.12.0" + }, + "msix": { + "dependency": "transitive", + "description": { + "name": "msix", + "sha256": "519b183d15dc9f9c594f247e2d2339d855cf0eaacc30e19b128e14f3ecc62047", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.16.7" + }, + "mustache_template": { + "dependency": "transitive", + "description": { + "name": "mustache_template", + "sha256": "a46e26f91445bfb0b60519be280555b06792460b27b19e2b19ad5b9740df5d1c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.0" + }, + "nested": { + "dependency": "transitive", + "description": { + "name": "nested", + "sha256": "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.0" + }, + "package_config": { + "dependency": "transitive", + "description": { + "name": "package_config", + "sha256": "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.0" + }, + "package_info_plus": { + "dependency": "direct main", + "description": { + "name": "package_info_plus", + "sha256": "b93d8b4d624b4ea19b0a5a208b2d6eff06004bc3ce74c06040b120eeadd00ce0", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "8.0.0" + }, + "package_info_plus_platform_interface": { + "dependency": "transitive", + "description": { + "name": "package_info_plus_platform_interface", + "sha256": "f49918f3433a3146047372f9d4f1f847511f2acd5cd030e1f44fe5a50036b70e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.0" + }, + "parse_app_package": { + "dependency": "transitive", + "description": { + "name": "parse_app_package", + "sha256": "69f313fbadf457576015333a8da2e99018763dce88df248febcfb8883da8aedb", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.4.5" + }, + "path": { + "dependency": "transitive", + "description": { + "name": "path", + "sha256": "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.9.0" + }, + "path_parsing": { + "dependency": "transitive", + "description": { + "name": "path_parsing", + "sha256": "e3e67b1629e6f7e8100b367d3db6ba6af4b1f0bb80f64db18ef1fbabd2fa9ccf", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.1" + }, + "path_provider_linux": { + "dependency": "transitive", + "description": { + "name": "path_provider_linux", + "sha256": "f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.1" + }, + "path_provider_platform_interface": { + "dependency": "transitive", + "description": { + "name": "path_provider_platform_interface", + "sha256": "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.2" + }, + "path_provider_windows": { + "dependency": "transitive", + "description": { + "name": "path_provider_windows", + "sha256": "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.1" + }, + "petitparser": { + "dependency": "transitive", + "description": { + "name": "petitparser", + "sha256": "c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.0.2" + }, + "platform": { + "dependency": "transitive", + "description": { + "name": "platform", + "sha256": "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.5" + }, + "plist_parser": { + "dependency": "transitive", + "description": { + "name": "plist_parser", + "sha256": "e2a6f9abfa0c45c0253656b7360abb0dfb84af9937bace74605b93d2aad2bf0c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.0.11" + }, + "plugin_platform_interface": { + "dependency": "transitive", + "description": { + "name": "plugin_platform_interface", + "sha256": "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.8" + }, + "process_run": { + "dependency": "direct main", + "description": { + "name": "process_run", + "sha256": "6052115540ad88715d6bcee60656970f70c68c85846d1948b92e435f0382899e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.0+1" + }, + "provider": { + "dependency": "direct main", + "description": { + "name": "provider", + "sha256": "c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.1.2" + }, + "pub_semver": { + "dependency": "transitive", + "description": { + "name": "pub_semver", + "sha256": "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.4" + }, + "pubspec_parse": { + "dependency": "transitive", + "description": { + "name": "pubspec_parse", + "sha256": "c799b721d79eb6ee6fa56f00c04b472dcd44a30d258fac2174a6ec57302678f8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.3.0" + }, + "qiniu_sdk_base": { + "dependency": "transitive", + "description": { + "name": "qiniu_sdk_base", + "sha256": "2506c6372512f81cfbddf162ea6da1ad7b1c6521dee1d10e9da6847c92e13349", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.5.2" + }, + "quiver": { + "dependency": "direct main", + "description": { + "name": "quiver", + "sha256": "b1c1ac5ce6688d77f65f3375a9abb9319b3cb32486bdc7a1e0fdf004d7ba4e47", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.2.1" + }, + "recase": { + "dependency": "transitive", + "description": { + "name": "recase", + "sha256": "e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.1.0" + }, + "shared_preferences": { + "dependency": "direct main", + "description": { + "name": "shared_preferences", + "sha256": "d3bbe5553a986e83980916ded2f0b435ef2e1893dfaa29d5a7a790d0eca12180", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.3" + }, + "shared_preferences_android": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_android", + "sha256": "93d0ec9dd902d85f326068e6a899487d1f65ffcd5798721a95330b26c8131577", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.3" + }, + "shared_preferences_foundation": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_foundation", + "sha256": "0a8a893bf4fd1152f93fec03a415d11c27c74454d96e2318a7ac38dd18683ab7", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.4.0" + }, + "shared_preferences_linux": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_linux", + "sha256": "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.2" + }, + "shared_preferences_platform_interface": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_platform_interface", + "sha256": "22e2ecac9419b4246d7c22bfbbda589e3acf5c0351137d87dd2939d984d37c3b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.2" + }, + "shared_preferences_web": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_web", + "sha256": "9aee1089b36bd2aafe06582b7d7817fd317ef05fc30e6ba14bff247d0933042a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.0" + }, + "shared_preferences_windows": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_windows", + "sha256": "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.2" + }, + "shell_executor": { + "dependency": "transitive", + "description": { + "name": "shell_executor", + "sha256": "9c024546fc96470a6b96be9902f0bc05347a017a7638ed8d93c77e8d77eb3c3c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.1.6" + }, + "shell_uikit": { + "dependency": "transitive", + "description": { + "name": "shell_uikit", + "sha256": "03703090807091514ace2f9c8dc5d9b2d18c42a248c767220167825fbc3d2747", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.1.1" + }, + "sky_engine": { + "dependency": "transitive", + "description": "flutter", + "source": "sdk", + "version": "0.0.99" + }, + "source_span": { + "dependency": "transitive", + "description": { + "name": "source_span", + "sha256": "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.10.0" + }, + "stack_trace": { + "dependency": "transitive", + "description": { + "name": "stack_trace", + "sha256": "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.11.1" + }, + "stream_channel": { + "dependency": "transitive", + "description": { + "name": "stream_channel", + "sha256": "ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.2" + }, + "string_scanner": { + "dependency": "transitive", + "description": { + "name": "string_scanner", + "sha256": "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.0" + }, + "synchronized": { + "dependency": "transitive", + "description": { + "name": "synchronized", + "sha256": "539ef412b170d65ecdafd780f924e5be3f60032a1128df156adad6c5b373d558", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.0+1" + }, + "term_glyph": { + "dependency": "transitive", + "description": { + "name": "term_glyph", + "sha256": "a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.1" + }, + "test_api": { + "dependency": "transitive", + "description": { + "name": "test_api", + "sha256": "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.7.0" + }, + "tuple": { + "dependency": "direct main", + "description": { + "name": "tuple", + "sha256": "a97ce2013f240b2f3807bcbaf218765b6f301c3eff91092bcfa23a039e7dd151", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.2" + }, + "typed_data": { + "dependency": "transitive", + "description": { + "name": "typed_data", + "sha256": "facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.3.2" + }, + "url_launcher": { + "dependency": "direct main", + "description": { + "name": "url_launcher", + "sha256": "21b704ce5fa560ea9f3b525b43601c678728ba46725bab9b01187b4831377ed3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.3.0" + }, + "url_launcher_android": { + "dependency": "transitive", + "description": { + "name": "url_launcher_android", + "sha256": "ceb2625f0c24ade6ef6778d1de0b2e44f2db71fded235eb52295247feba8c5cf", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.3.3" + }, + "url_launcher_ios": { + "dependency": "transitive", + "description": { + "name": "url_launcher_ios", + "sha256": "7068716403343f6ba4969b4173cbf3b84fc768042124bc2c011e5d782b24fe89", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.3.0" + }, + "url_launcher_linux": { + "dependency": "transitive", + "description": { + "name": "url_launcher_linux", + "sha256": "ab360eb661f8879369acac07b6bb3ff09d9471155357da8443fd5d3cf7363811", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.1" + }, + "url_launcher_macos": { + "dependency": "transitive", + "description": { + "name": "url_launcher_macos", + "sha256": "9a1a42d5d2d95400c795b2914c36fdcb525870c752569438e4ebb09a2b5d90de", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.2.0" + }, + "url_launcher_platform_interface": { + "dependency": "transitive", + "description": { + "name": "url_launcher_platform_interface", + "sha256": "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.2" + }, + "url_launcher_web": { + "dependency": "transitive", + "description": { + "name": "url_launcher_web", + "sha256": "8d9e750d8c9338601e709cd0885f95825086bd8b642547f26bda435aade95d8a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.1" + }, + "url_launcher_windows": { + "dependency": "transitive", + "description": { + "name": "url_launcher_windows", + "sha256": "ecf9725510600aa2bb6d7ddabe16357691b6d2805f66216a97d1b881e21beff7", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.1" + }, + "uuid": { + "dependency": "transitive", + "description": { + "name": "uuid", + "sha256": "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.7" + }, + "vector_graphics": { + "dependency": "transitive", + "description": { + "name": "vector_graphics", + "sha256": "32c3c684e02f9bc0afb0ae0aa653337a2fe022e8ab064bcd7ffda27a74e288e3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.11+1" + }, + "vector_graphics_codec": { + "dependency": "transitive", + "description": { + "name": "vector_graphics_codec", + "sha256": "c86987475f162fadff579e7320c7ddda04cd2fdeffbe1129227a85d9ac9e03da", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.11+1" + }, + "vector_graphics_compiler": { + "dependency": "transitive", + "description": { + "name": "vector_graphics_compiler", + "sha256": "12faff3f73b1741a36ca7e31b292ddeb629af819ca9efe9953b70bd63fc8cd81", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.11+1" + }, + "vector_math": { + "dependency": "transitive", + "description": { + "name": "vector_math", + "sha256": "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.4" + }, + "version": { + "dependency": "direct main", + "description": { + "name": "version", + "sha256": "3d4140128e6ea10d83da32fef2fa4003fccbf6852217bb854845802f04191f94", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.2" + }, + "vm_service": { + "dependency": "transitive", + "description": { + "name": "vm_service", + "sha256": "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "14.2.1" + }, + "web": { + "dependency": "transitive", + "description": { + "name": "web", + "sha256": "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.5.1" + }, + "win32": { + "dependency": "transitive", + "description": { + "name": "win32", + "sha256": "a79dbe579cb51ecd6d30b17e0cae4e0ea15e2c0e66f69ad4198f22a6789e94f4", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "5.5.1" + }, + "window_size": { + "dependency": "direct main", + "description": { + "path": "plugins/window_size", + "ref": "eb3964990cf19629c89ff8cb4a37640c7b3d5601", + "resolved-ref": "eb3964990cf19629c89ff8cb4a37640c7b3d5601", + "url": "https://github.com/google/flutter-desktop-embedding.git" + }, + "source": "git", + "version": "0.1.0" + }, + "xdg_directories": { + "dependency": "transitive", + "description": { + "name": "xdg_directories", + "sha256": "faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.4" + }, + "xml": { + "dependency": "transitive", + "description": { + "name": "xml", + "sha256": "b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.5.0" + }, + "yaml": { + "dependency": "transitive", + "description": { + "name": "yaml", + "sha256": "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.2" + } + }, + "sdks": { + "dart": ">=3.4.0 <4.0.0", + "flutter": ">=3.22.0" + } +} diff --git a/pkgs/applications/virtualization/runc/default.nix b/pkgs/applications/virtualization/runc/default.nix index 0a9a802f70f37..ff7fa9f8a3b9b 100644 --- a/pkgs/applications/virtualization/runc/default.nix +++ b/pkgs/applications/virtualization/runc/default.nix @@ -14,13 +14,13 @@ buildGoModule rec { pname = "runc"; - version = "1.1.13"; + version = "1.1.14"; src = fetchFromGitHub { owner = "opencontainers"; repo = "runc"; rev = "v${version}"; - hash = "sha256-RQsM8Q7HogDVGbNpen3wxXNGR9lfqmNhkXTRoC+LBk8="; + hash = "sha256-7PYbSZqCQLTaeFppuNz5mxDlwEyLkA5zpdMhWy1tWmc="; }; vendorHash = null; diff --git a/pkgs/applications/virtualization/rust-hypervisor-firmware/default.nix b/pkgs/applications/virtualization/rust-hypervisor-firmware/default.nix index 8b408cc96ed4b..193776fa5ec08 100644 --- a/pkgs/applications/virtualization/rust-hypervisor-firmware/default.nix +++ b/pkgs/applications/virtualization/rust-hypervisor-firmware/default.nix @@ -37,7 +37,7 @@ rustPlatform.buildRustPackage rec { sha256 = "sha256-hKk5pcop8rb5Q+IVchcl+XhMc3DCBBPn5P+AkAb9XxI="; }; - cargoSha256 = "sha256-edi6/Md6KebKM3wHArZe1htUCg0/BqMVZKA4xEH25GI="; + cargoHash = "sha256-edi6/Md6KebKM3wHArZe1htUCg0/BqMVZKA4xEH25GI="; # lld: error: unknown argument '-Wl,--undefined=AUDITABLE_VERSION_INFO' # https://github.com/cloud-hypervisor/rust-hypervisor-firmware/issues/249 diff --git a/pkgs/applications/virtualization/rvvm/default.nix b/pkgs/applications/virtualization/rvvm/default.nix index ce90b686bcb0f..4693999e8f111 100644 --- a/pkgs/applications/virtualization/rvvm/default.nix +++ b/pkgs/applications/virtualization/rvvm/default.nix @@ -15,7 +15,7 @@ assert lib.assertMsg (builtins.elem guiBackend ["sdl" "x11" "none"]) "Unsupported GUI backend"; assert lib.assertMsg (!(enableSDL && enableX11)) "RVVM can have only one GUI backend at a time"; -assert lib.assertMsg (stdenv.isDarwin -> !enableX11) "macOS supports only SDL GUI backend"; +assert lib.assertMsg (stdenv.hostPlatform.isDarwin -> !enableX11) "macOS supports only SDL GUI backend"; stdenv.mkDerivation rec { pname = "rvvm"; @@ -38,10 +38,7 @@ stdenv.mkDerivation rec { makeFlags = [ "PREFIX=$(out)" ] ++ lib.optional enableSDL "USE_SDL=2" # Use SDL2 instead of SDL1 - ++ lib.optional (!enableSDL && !enableX11) "USE_FB=0" - - # work around https://github.com/NixOS/nixpkgs/issues/19098 - ++ lib.optional (stdenv.cc.isClang && stdenv.isDarwin) "CFLAGS=-fno-lto"; + ++ lib.optional (!enableSDL && !enableX11) "USE_FB=0"; meta = with lib; { homepage = "https://github.com/LekKit/RVVM"; diff --git a/pkgs/applications/virtualization/sail-riscv/default.nix b/pkgs/applications/virtualization/sail-riscv/default.nix index cda1f5d6cb20f..ba98f6b2cd5a7 100644 --- a/pkgs/applications/virtualization/sail-riscv/default.nix +++ b/pkgs/applications/virtualization/sail-riscv/default.nix @@ -61,7 +61,7 @@ stdenv.mkDerivation rec { homepage = "https://github.com/riscv/sail-riscv"; description = "Formal specification of the RISC-V architecture, written in Sail"; maintainers = with maintainers; [ genericnerdyusername ]; - broken = stdenv.isDarwin && stdenv.isAarch64; + broken = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64; license = licenses.bsd2; }; } diff --git a/pkgs/applications/virtualization/singularity/generic.nix b/pkgs/applications/virtualization/singularity/generic.nix index f27f58fda4876..24e1b3b67b26f 100644 --- a/pkgs/applications/virtualization/singularity/generic.nix +++ b/pkgs/applications/virtualization/singularity/generic.nix @@ -70,11 +70,19 @@ in # Whether to compile with SUID support enableSuid ? false, starterSuidPath ? null, - # newuidmapPath and newgidmapPath are to support --fakeroot - # where those SUID-ed executables are unavailable from the FHS system PATH. + # Extra system-wide /**/bin paths to prefix, + # useful to specify directories containing binaries with SUID bit set. + # The paths take higher precedence over the FHS system PATH specified + # inside the upstream source code. + # Include "/run/wrappers/bin" by default for the convenience of NixOS users. + systemBinPaths ? [ "/run/wrappers/bin" ], # Path to SUID-ed newuidmap executable + # Deprecated in favour of systemBinPaths + # TODO(@ShamrockLee): Remove after Nixpkgs 24.05 branch-off newuidmapPath ? null, # Path to SUID-ed newgidmap executable + # Deprecated in favour of systemBinPaths + # TODO(@ShamrockLee): Remove after Nixpkgs 24.05 branch-off newgidmapPath ? null, # External LOCALSTATEDIR externalLocalStateDir ? null, @@ -99,18 +107,30 @@ in vendorHash ? _defaultGoVendorArgs.vendorHash, deleteVendor ? _defaultGoVendorArgs.deleteVendor, proxyVendor ? _defaultGoVendorArgs.proxyVendor, -}: +}@args: let + # Backward compatibility for privileged-un-utils. + # TODO(@ShamrockLee): Remove after Nixpkgs 24.05 branch-off. privileged-un-utils = if ((newuidmapPath == null) && (newgidmapPath == null)) then null else - (runCommandLocal "privileged-un-utils" { } '' - mkdir -p "$out/bin" - ln -s ${lib.escapeShellArg newuidmapPath} "$out/bin/newuidmap" - ln -s ${lib.escapeShellArg newgidmapPath} "$out/bin/newgidmap" - ''); + lib.warn + "${pname}: arguments newuidmapPath and newgidmapPath is deprecated in favour of systemBinPaths." + ( + runCommandLocal "privileged-un-utils" { } '' + mkdir -p "$out/bin" + ln -s ${lib.escapeShellArg newuidmapPath} "$out/bin/newuidmap" + ln -s ${lib.escapeShellArg newgidmapPath} "$out/bin/newgidmap" + '' + ); + + # Backward compatibility for privileged-un-utils. + # TODO(@ShamrockLee): Remove after Nixpkgs 24.05 branch-off. + systemBinPaths = + lib.optional (privileged-un-utils != null) (lib.makeBinPath [ privileged-un-utils ]) + ++ args.systemBinPaths or [ "/run/wrappers/bin" ]; concatMapStringAttrsSep = sep: f: attrs: @@ -196,8 +216,9 @@ in # causes redefinition of _FORTIFY_SOURCE hardeningDisable = [ "fortify3" ]; - # Packages to prefix to the Apptainer/Singularity container runtime default PATH - # Use overrideAttrs to override + # Packages to provide fallback bin paths + # to the Apptainer/Singularity container runtime default PATHs. + # Override with `<pkg>.overrideAttrs`. defaultPathInputs = [ bash coreutils @@ -206,7 +227,6 @@ in fuse2fs # Mount ext3 filesystems go mount # mount - privileged-un-utils squashfsTools # mksquashfs unsquashfs # Make / unpack squashfs image squashfuse # squashfuse_ll squashfuse # Mount (without unpacking) a squashfs image without privileges ] ++ lib.optional enableNvidiaContainerCli nvidia-docker; @@ -228,7 +248,7 @@ in lib.concatStringsSep " " [ "--replace-fail" (addShellDoubleQuotes (lib.escapeShellArg originalDefaultPath)) - (addShellDoubleQuotes ''$inputsDefaultPath''${inputsDefaultPath:+:}${lib.escapeShellArg originalDefaultPath}'') + (addShellDoubleQuotes ''$systemDefaultPath''${systemDefaultPath:+:}${lib.escapeShellArg originalDefaultPath}''${inputsDefaultPath:+:}$inputsDefaultPath'') ] ) originalDefaultPaths } @@ -267,8 +287,11 @@ in postFixup = '' substituteInPlace "$out/bin/run-singularity" \ --replace "/usr/bin/env ${projectName}" "$out/bin/${projectName}" + # Respect PATH from the environment/the user. + # Fallback to bin paths provided by Nixpkgs packages. wrapProgram "$out/bin/${projectName}" \ - --prefix PATH : "$inputsDefaultPath" + --suffix PATH : "$systemDefaultPath" \ + --suffix PATH : "$inputsDefaultPath" # Make changes in the config file ${lib.optionalString forceNvcCli '' substituteInPlace "$out/etc/${projectName}/${projectName}.conf" \ @@ -303,29 +326,27 @@ in ''} ''; - meta = - with lib; - { - description = "Application containers for linux" + extraDescription; - longDescription = '' - Singularity (the upstream) renamed themselves to Apptainer - to distinguish themselves from a fork made by Sylabs Inc.. See + meta = { + description = "Application containers for linux" + extraDescription; + longDescription = '' + Singularity (the upstream) renamed themselves to Apptainer + to distinguish themselves from a fork made by Sylabs Inc.. See - https://sylabs.io/2021/05/singularity-community-edition - https://apptainer.org/news/community-announcement-20211130 - ''; - license = licenses.bsd3; - platforms = platforms.linux; - maintainers = with maintainers; [ - jbedo - ShamrockLee - ]; - mainProgram = projectName; - } - // extraMeta; + https://sylabs.io/2021/05/singularity-community-edition + https://apptainer.org/news/community-announcement-20211130 + ''; + license = lib.licenses.bsd3; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ + jbedo + ShamrockLee + ]; + mainProgram = projectName; + } // extraMeta; }).overrideAttrs ( finalAttrs: prevAttrs: { + systemDefaultPath = lib.concatStringsSep ":" systemBinPaths; inputsDefaultPath = lib.makeBinPath finalAttrs.defaultPathInputs; passthru = prevAttrs.passthru or { } // { inherit sourceFilesWithDefaultPaths; diff --git a/pkgs/applications/virtualization/singularity/packages.nix b/pkgs/applications/virtualization/singularity/packages.nix index f03bdf9631c56..c6cbdc8e2c76e 100644 --- a/pkgs/applications/virtualization/singularity/packages.nix +++ b/pkgs/applications/virtualization/singularity/packages.nix @@ -9,14 +9,14 @@ let callPackage (import ./generic.nix rec { pname = "apptainer"; - version = "1.3.2"; + version = "1.3.4"; projectName = "apptainer"; src = fetchFromGitHub { owner = "apptainer"; repo = "apptainer"; rev = "refs/tags/v${version}"; - hash = "sha256-NseigaPmRKDsBk8v7RpYf+uoEGvQHVnqOMO49kP0mQ8="; + hash = "sha256-eByF0OpL1OKGq0wY7kw8Sv9sZuVE0K3TGIm4Chk9PC4="; }; # Update by running @@ -47,20 +47,20 @@ let callPackage (import ./generic.nix rec { pname = "singularity-ce"; - version = "4.1.3"; + version = "4.2.1"; projectName = "singularity"; src = fetchFromGitHub { owner = "sylabs"; repo = "singularity"; rev = "refs/tags/v${version}"; - hash = "sha256-pR8zyMr23wcbDCXAysVEgGUDHkrfhLoVF3fjMLgZFYs="; + hash = "sha256-Go4um/bIgq2lCZvjJ2GR81XpA/JvjPholi1PzNG9Hz8="; }; # Update by running # nix-prefetch -E "{ sha256 }: ((import ./. { }).singularity.override { vendorHash = sha256; }).goModules" # at the root directory of the Nixpkgs repository - vendorHash = "sha256-332GFL04aE6B6vxgtJJH4TeI6YJCDBpCClJ3sc5gN3A="; + vendorHash = "sha256-CRZ42NdmJhAkV6bkl5n7rEV4Tu/h65qF5qaQ4W5wQ3w="; # Do not build conmon and squashfuse from the Git submodule sources, # Use Nixpkgs provided version diff --git a/pkgs/applications/virtualization/spike/default.nix b/pkgs/applications/virtualization/spike/default.nix index 1712685048115..d0e79c4f9812d 100644 --- a/pkgs/applications/virtualization/spike/default.nix +++ b/pkgs/applications/virtualization/spike/default.nix @@ -1,30 +1,21 @@ -{ lib, stdenv, fetchFromGitHub, fetchpatch, dtc, pkgsCross }: +{ lib, stdenv, fetchFromGitHub, dtc, pkgsCross }: stdenv.mkDerivation rec { pname = "spike"; - version = "1.1.0"; + version = "1.1.0-unstable-2024-09-21"; src = fetchFromGitHub { owner = "riscv"; repo = "riscv-isa-sim"; - rev = "v${version}"; - sha256 = "sha256-4D2Fezej0ioOOupw3kgMT5VLs+/jXQjwvek6v0AVMzI="; + rev = "de5094a1a901d77ff44f89b38e00fefa15d4018e"; + sha256 = "sha256-mAgR2VzDgeuIdmPEgrb+MaA89BnWfmNanOVidqn0cgc="; }; - patches = [ - (fetchpatch { - name = "fesvr-fix-compilation-with-gcc-13.patch"; - url = "https://github.com/riscv-software-src/riscv-isa-sim/commit/0a7bb5403d0290cea8b2356179d92e4c61ffd51d.patch"; - hash = "sha256-JUMTbGawvLkoOWKkruzLzUFQytVR3wqTlGu/eegRFEE="; - }) - ]; - nativeBuildInputs = [ dtc ]; enableParallelBuilding = true; postPatch = '' patchShebangs scripts/*.sh - patchShebangs tests/ebreak.py ''; doCheck = true; diff --git a/pkgs/applications/virtualization/stratovirt/default.nix b/pkgs/applications/virtualization/stratovirt/default.nix index d927c8430a1ec..a1f3fb53e0430 100644 --- a/pkgs/applications/virtualization/stratovirt/default.nix +++ b/pkgs/applications/virtualization/stratovirt/default.nix @@ -6,16 +6,15 @@ rustPlatform.buildRustPackage rec { pname = "stratovirt"; - version = "2.3.0"; + version = "2.4.0"; src = fetchgit { url = "https://gitee.com/openeuler/stratovirt.git"; rev = "v${version}"; - sha256 = "sha256-f5710f7Lz7ul1DYrC0CAfDR+7e1NrE9ESPdB8nlVUKw="; + hash = "sha256-1Ex6ahKBoVRikSqrgHGYaBFzWkPFDm8bGVyB7KmO8tI="; }; - patches = [ ./micro_vm-allow-SYS_clock_gettime.patch ]; - cargoSha256 = "sha256-prs7zkPAKQ99gjW7gy+4+CgEgGhaTTCLPTbLk/ZHdts="; + cargoHash = "sha256-uuZCbmt3eIlKurwMOV7LezVSjOVG/90OdT2PC8YLi3I="; nativeBuildInputs = [ pkg-config diff --git a/pkgs/applications/virtualization/stratovirt/micro_vm-allow-SYS_clock_gettime.patch b/pkgs/applications/virtualization/stratovirt/micro_vm-allow-SYS_clock_gettime.patch deleted file mode 100644 index 11d2a0e88e194..0000000000000 --- a/pkgs/applications/virtualization/stratovirt/micro_vm-allow-SYS_clock_gettime.patch +++ /dev/null @@ -1,25 +0,0 @@ -From c5ef87eb831f7f77c0564dd1dce92a579e7c4747 Mon Sep 17 00:00:00 2001 -From: Astro <astro@spaceboyz.net> -Date: Sun, 18 Jun 2023 23:10:23 +0200 -Subject: [PATCH] micro_vm: allow SYS_clock_gettime - ---- - machine/src/micro_vm/syscall.rs | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/machine/src/micro_vm/syscall.rs b/machine/src/micro_vm/syscall.rs -index c37d3f4e..f9e7cce2 100644 ---- a/machine/src/micro_vm/syscall.rs -+++ b/machine/src/micro_vm/syscall.rs -@@ -125,6 +125,8 @@ pub fn syscall_whitelist() -> Vec<BpfRule> { - BpfRule::new(libc::SYS_readlink), - BpfRule::new(libc::SYS_getrandom), - BpfRule::new(libc::SYS_fallocate), -+ #[cfg(target_env = "gnu")] -+ BpfRule::new(libc::SYS_clock_gettime), - madvise_rule(), - ] - } --- -2.41.0 - diff --git a/pkgs/applications/virtualization/tart/default.nix b/pkgs/applications/virtualization/tart/default.nix index d0f2f3a0127e1..fb5f28325260b 100644 --- a/pkgs/applications/virtualization/tart/default.nix +++ b/pkgs/applications/virtualization/tart/default.nix @@ -10,11 +10,11 @@ }: stdenvNoCC.mkDerivation (finalAttrs: { pname = "tart"; - version = "2.12.0"; + version = "2.18.2"; src = fetchurl { url = "https://github.com/cirruslabs/tart/releases/download/${finalAttrs.version}/tart-arm64.tar.gz"; - hash = "sha256-+33Z7M9Y8fWFfCBNJrXHljwoAn7p70+yvTmBwx1X68M="; + hash = "sha256-0057/lRisAw3fzh2LNqHUx72PR/67mW/cqm7hU34GAU="; }; sourceRoot = "."; @@ -39,7 +39,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { description = "macOS VMs on Apple Silicon to use in CI and other automations"; homepage = "https://tart.run"; license = licenses.fairsource09; - maintainers = with maintainers; [ emilytrau Enzime aduh95 ]; + maintainers = with maintainers; [ emilytrau aduh95 ]; mainProgram = finalAttrs.pname; platforms = [ "aarch64-darwin" ]; sourceProvenance = with sourceTypes; [ binaryNativeCode ]; diff --git a/pkgs/applications/virtualization/umoci/default.nix b/pkgs/applications/virtualization/umoci/default.nix index 5dc9ae5028e80..acf03a96c747d 100644 --- a/pkgs/applications/virtualization/umoci/default.nix +++ b/pkgs/applications/virtualization/umoci/default.nix @@ -3,7 +3,6 @@ , buildGoModule , go-md2man , installShellFiles -, bash }: buildGoModule rec { diff --git a/pkgs/applications/virtualization/virt-manager/default.nix b/pkgs/applications/virtualization/virt-manager/default.nix index c8bedb1e95690..2b230a95b5040 100644 --- a/pkgs/applications/virtualization/virt-manager/default.nix +++ b/pkgs/applications/virtualization/virt-manager/default.nix @@ -1,6 +1,6 @@ { lib, fetchFromGitHub, python3, intltool, file, wrapGAppsHook3, gtk-vnc , vte, avahi, dconf, gobject-introspection, libvirt-glib, system-libvirt -, gsettings-desktop-schemas, gst_all_1, libosinfo, gnome, gtksourceview4, docutils, cpio +, gsettings-desktop-schemas, gst_all_1, libosinfo, adwaita-icon-theme, gtksourceview4, docutils, cpio , e2fsprogs, findutils, gzip, cdrtools, xorriso, fetchpatch , desktopToDarwinBundle, stdenv , spiceSupport ? true, spice-gtk ? null @@ -33,6 +33,11 @@ python3.pkgs.buildPythonApplication rec { url = "https://github.com/virt-manager/virt-manager/commit/cc4a39ea94f42bc92765eb3bb56e2b7f9198be67.patch"; hash = "sha256-dw6yrMaAOnTh8Z6xJQQKmYelOkOl6EBAOfJQU9vQ8Ws="; }) + # fix xml test output mismatch + (fetchpatch { + url = "https://github.com/virt-manager/virt-manager/commit/8b6db203f726965529567459b302aab1c68c70eb.patch"; + hash = "sha256-FghrSyP4NaTkJhvyqlc2uDNWKaeiylKnaiqkl5Ax6yE="; + }) ]; nativeBuildInputs = [ @@ -40,12 +45,12 @@ python3.pkgs.buildPythonApplication rec { gobject-introspection # for setup hook populating GI_TYPELIB_PATH docutils wrapGAppsHook3 - ] ++ lib.optional stdenv.isDarwin desktopToDarwinBundle; + ] ++ lib.optional stdenv.hostPlatform.isDarwin desktopToDarwinBundle; buildInputs = [ gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good - libvirt-glib vte dconf gtk-vnc gnome.adwaita-icon-theme avahi + libvirt-glib vte dconf gtk-vnc adwaita-icon-theme avahi gsettings-desktop-schemas libosinfo gtksourceview4 ] ++ lib.optional spiceSupport spice-gtk; diff --git a/pkgs/applications/virtualization/virt-viewer/default.nix b/pkgs/applications/virtualization/virt-viewer/default.nix index 8c621271e757a..2c368db8da945 100644 --- a/pkgs/applications/virtualization/virt-viewer/default.nix +++ b/pkgs/applications/virtualization/virt-viewer/default.nix @@ -32,9 +32,6 @@ , vte , wrapGAppsHook3 }: - -with lib; - stdenv.mkDerivation rec { pname = "virt-viewer"; version = "11.0"; @@ -76,18 +73,18 @@ stdenv.mkDerivation rec { libvirt-glib libxml2 vte - ] ++ optionals ovirtSupport [ + ] ++ lib.optionals ovirtSupport [ libgovirt - ] ++ optionals spiceSupport ([ + ] ++ lib.optionals spiceSupport ([ gdbm spice-gtk spice-protocol - ] ++ optionals stdenv.isLinux [ + ] ++ lib.optionals stdenv.hostPlatform.isLinux [ libcap ]); # Required for USB redirection PolicyKit rules file - propagatedUserEnvPkgs = optional spiceSupport spice-gtk; + propagatedUserEnvPkgs = lib.optional spiceSupport spice-gtk; mesonFlags = [ (lib.mesonEnable "ovirt" ovirtSupport) @@ -99,7 +96,7 @@ stdenv.mkDerivation rec { patchShebangs build-aux/post_install.py ''; - meta = { + meta = with lib; { description = "Viewer for remote virtual machines"; maintainers = with maintainers; [ raskin atemu ]; platforms = with platforms; linux ++ darwin; diff --git a/pkgs/applications/virtualization/virt-what/default.nix b/pkgs/applications/virtualization/virt-what/default.nix index e11b265a9e3c0..3d553acd48ffb 100644 --- a/pkgs/applications/virtualization/virt-what/default.nix +++ b/pkgs/applications/virtualization/virt-what/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "virt-what"; - version = "1.25"; + version = "1.26"; src = fetchurl { url = "https://people.redhat.com/~rjones/virt-what/files/${pname}-${version}.tar.gz"; - sha256 = "sha256-1Py0I2Irr75eK7zYS32SrU1YP0d4siW3LEqBrp/Dxz0="; + sha256 = "sha256-qoap0xO1yQSK+a2aA4fkr/I4uw6kLzuDARTotQzTFTU="; }; meta = with lib; { diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix index dd9b99f7f9bc9..437ceba29ce07 100644 --- a/pkgs/applications/virtualization/virtualbox/default.nix +++ b/pkgs/applications/virtualization/virtualbox/default.nix @@ -13,7 +13,7 @@ , javaBindings ? true, jdk # Almost doesn't affect closure size , pythonBindings ? false, python3 , extensionPack ? null, fakeroot -, pulseSupport ? config.pulseaudio or stdenv.isLinux, libpulseaudio +, pulseSupport ? config.pulseaudio or stdenv.hostPlatform.isLinux, libpulseaudio , enableHardening ? false , headless ? false , enable32bitGuests ? true @@ -22,9 +22,6 @@ , extraConfigureFlags ? "" }: -# See https://github.com/cyberus-technology/virtualbox-kvm/issues/12 -assert enableKvm -> !enableHardening; - # The web services use Java infrastructure. assert enableWebService -> javaBindings; @@ -32,11 +29,11 @@ let buildType = "release"; # Use maintainers/scripts/update.nix to update the version and all related hashes or # change the hashes in extpack.nix and guest-additions/default.nix as well manually. - virtualboxVersion = "7.0.18"; - virtualboxSha256 = "d999513533631674a024762668de999411d8197060c51e68c5faf0a2c0eea1a5"; + virtualboxVersion = "7.0.20"; + virtualboxSha256 = "5cf5979bef66ebab3fcd495796b215a940e8a07c469d4bc56d064de44222dd02"; - kvmPatchVersion = "20240515"; - kvmPatchHash = "sha256-Kh/tlPScdf7CbEEpL54iqMpeUIdmnJL2r/mxnlEzLd0="; + kvmPatchVersion = "20240828"; + kvmPatchHash = "sha256-g0esJbB1IGyLGZMLFJIY8ZYdHWuiM5IZtLMHZvCY6bs="; # The KVM build is not compatible to VirtualBox's kernel modules. So don't export # modsrc at all. diff --git a/pkgs/applications/virtualization/virtualbox/extpack.nix b/pkgs/applications/virtualization/virtualbox/extpack.nix index 089ab4856c0d0..365c635a17aef 100644 --- a/pkgs/applications/virtualization/virtualbox/extpack.nix +++ b/pkgs/applications/virtualization/virtualbox/extpack.nix @@ -1,7 +1,4 @@ { fetchurl, lib, virtualbox }: - -with lib; - let inherit (virtualbox) version; in @@ -12,10 +9,10 @@ fetchurl rec { # Manually sha256sum the extensionPack file, must be hex! # Thus do not use `nix-prefetch-url` but instead plain old `sha256sum`. # Checksums can also be found at https://www.virtualbox.org/download/hashes/${version}/SHA256SUMS - let value = "cab1abad478679fc34a0c5cb4a6d3566edc20e3c54cbed39c8e895d8cfad3ee2"; + let value = "d750fb17688d70e0cb2d7b06f1ad3a661303793f4d1ac39cfa9a54806b89da25"; in assert (builtins.stringLength value) == 64; value; - meta = { + meta = with lib; { description = "Oracle Extension pack for VirtualBox"; license = licenses.virtualbox-puel; homepage = "https://www.virtualbox.org/"; diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions-iso/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions-iso/default.nix index 9529c980475da..f59dcc25f4c20 100644 --- a/pkgs/applications/virtualization/virtualbox/guest-additions-iso/default.nix +++ b/pkgs/applications/virtualization/virtualbox/guest-additions-iso/default.nix @@ -5,7 +5,7 @@ let in fetchurl { url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso"; - sha256 = "4469bab0f59c62312b0a1b67dcf9c07a8a971afad339fa2c3eb80e209e099ef9"; + sha256 = "4c7523fa6d17436e3b7788f62956674270572cfefa340d03111b85f8517d5981"; meta = { description = "Guest additions ISO for VirtualBox"; longDescription = '' diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/builder.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/builder.nix index 72c0af9626f72..00d0d555c60ad 100644 --- a/pkgs/applications/virtualization/virtualbox/guest-additions/builder.nix +++ b/pkgs/applications/virtualization/virtualbox/guest-additions/builder.nix @@ -1,7 +1,7 @@ -{ config, stdenv, kernel, fetchurl, lib, pam, libxslt -, libX11, libXext, libXcursor, libXmu +{ stdenv, kernel, fetchurl, lib, pam, libxslt +, libXext, libXcursor, libXmu , glib, libXrandr, dbus, xz -, pkg-config, which, zlib, xorg +, pkg-config, which, xorg , yasm, patchelf, makeself , linuxHeaders, openssl}: @@ -10,11 +10,11 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "VirtualBox-GuestAdditions-builder-${kernel.version}"; - version = "7.0.18"; + version = "7.0.20"; src = fetchurl { url = "https://download.virtualbox.org/virtualbox/${finalAttrs.version}/VirtualBox-${finalAttrs.version}.tar.bz2"; - sha256 = "d999513533631674a024762668de999411d8197060c51e68c5faf0a2c0eea1a5"; + sha256 = "5cf5979bef66ebab3fcd495796b215a940e8a07c469d4bc56d064de44222dd02"; }; env.NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types -Wno-error=implicit-function-declaration"; @@ -37,7 +37,6 @@ in stdenv.mkDerivation (finalAttrs: { ''; patches = [ - #../gcc-13.patch ## https://www.virtualbox.org/changeset/100258/vbox ./no-legacy-xorg.patch ]; diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix index ac867ce9ce720..f3eea8a5c1713 100644 --- a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix +++ b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix @@ -1,10 +1,6 @@ -{ config, stdenv, kernel, callPackage, lib, dbus -, libX11, libXext, libXcursor, libXmu, xorg -, which, zlib, patchelf, makeWrapper +{ stdenv, kernel, callPackage, lib, dbus +, xorg, zlib, patchelf, makeWrapper }: - -with lib; - let virtualBoxNixGuestAdditionsBuilder = callPackage ./builder.nix { }; @@ -104,7 +100,7 @@ in stdenv.mkDerivation { host/guest clipboard support. ''; sourceProvenance = with lib.sourceTypes; [ fromSource ]; - license = licenses.gpl2; + license = lib.licenses.gpl2; maintainers = [ lib.maintainers.sander lib.maintainers.friedrichaltheide ]; platforms = [ "i686-linux" "x86_64-linux" ]; broken = stdenv.hostPlatform.is32bit && (kernel.kernelAtLeast "5.10"); diff --git a/pkgs/applications/virtualization/vmware-workstation/default.nix b/pkgs/applications/virtualization/vmware-workstation/default.nix index 83d2361a99900..b60875c381295 100644 --- a/pkgs/applications/virtualization/vmware-workstation/default.nix +++ b/pkgs/applications/virtualization/vmware-workstation/default.nix @@ -79,20 +79,6 @@ let sha256 = "sha256-JSEW1gqQuLGRkathlwZU/TnG6dL/xWKW4//SfE+kO0A="; }; - gdbm3 = gdbm.overrideAttrs (old: rec { - version = "1.8.3"; - - src = fetchurl { - url = "mirror://gnu/gdbm/gdbm-${version}.tar.gz"; - sha256 = "sha256-zDQDOKLii0AFirnrU1SiHVP4ihWC6iG6C7GFw3ooHck="; - }; - - installPhase = '' - mkdir -p $out/lib - cp .libs/libgdbm*.so* $out/lib/ - ''; - }); - vmware-unpack-env = buildFHSEnv rec { name = "vmware-unpack-env"; targetPkgs = pkgs: [ zlib ]; @@ -114,7 +100,7 @@ stdenv.mkDerivation rec { libxslt libxml2 libuuid - gdbm3 + gdbm readline xz cups @@ -156,7 +142,7 @@ stdenv.mkDerivation rec { ''} ''; - patchPhase = lib.optionalString enableMacOSGuests '' + postPatch = lib.optionalString enableMacOSGuests '' cp -R "${unlockerSrc}" unlocker/ substituteInPlace unlocker/unlocker.py --replace \ @@ -167,6 +153,8 @@ stdenv.mkDerivation rec { ''; installPhase = '' + runHook preInstall + mkdir -p \ $out/bin \ $out/etc/vmware \ @@ -338,7 +326,7 @@ stdenv.mkDerivation rec { sed -i -e "s,/sbin/modprobe,${kmod}/bin/modprobe," $out/bin/vmplayer sed -i -e "s,@@BINARY@@,$out/bin/vmplayer," $out/share/applications/vmware-player.desktop - ## VMware OVF Tool compoment + ## VMware OVF Tool component echo "Installing VMware OVF Tool for Linux" unpacked="unpacked/vmware-ovftool" mkdir -p $out/lib/vmware-ovftool/ @@ -404,7 +392,7 @@ stdenv.mkDerivation rec { chmod +x $out/bin/* $out/lib/vmware/bin/* $out/lib/vmware/setup/* - # Harcoded pkexec hack + # Hardcoded pkexec hack for lib in "lib/vmware/lib/libvmware-mount.so/libvmware-mount.so" "lib/vmware/lib/libvmwareui.so/libvmwareui.so" "lib/vmware/lib/libvmware-fuseUI.so/libvmware-fuseUI.so" do sed -i -e "s,/usr/local/sbin,/run/vmware/bin," "$out/$lib" @@ -419,6 +407,8 @@ stdenv.mkDerivation rec { wrapProgram $out/lib/vmware/bin/vmware-vmx rm $out/lib/vmware/bin/vmware-vmx ln -s /run/wrappers/bin/vmware-vmx $out/lib/vmware/bin/vmware-vmx + + runHook postInstall ''; meta = with lib; { diff --git a/pkgs/applications/virtualization/vpcs/default.nix b/pkgs/applications/virtualization/vpcs/default.nix deleted file mode 100644 index 15f769ef96981..0000000000000 --- a/pkgs/applications/virtualization/vpcs/default.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, testers -, vpcs -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "vpcs"; - version = "0.8.3"; - - src = fetchFromGitHub { - owner = "GNS3"; - repo = "vpcs"; - rev = "v${finalAttrs.version}"; - hash = "sha256-OKi4sC4fmKtkJkkpHZ6OfeIDaBafVrJXGXh1R6gLPFY="; - }; - - sourceRoot = "${finalAttrs.src.name}/src"; - - buildPhase = '' - runHook preBuild - - MKOPT="CC=${stdenv.cc.targetPrefix}cc" ./mk.sh ${stdenv.buildPlatform.linuxArch} - - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - install -D -m555 vpcs $out/bin/vpcs - install -D -m444 ../man/vpcs.1 $out/share/man/man1/vpcs.1 - - runHook postInstall - ''; - - enableParallelBuilding = true; - - passthru = { - tests.version = testers.testVersion { - package = vpcs; - command = "vpcs -v"; - }; - }; - - meta = with lib; { - description = "Simple virtual PC simulator"; - longDescription = '' - The VPCS (Virtual PC Simulator) can simulate up to 9 PCs. You can - ping/traceroute them, or ping/traceroute the other hosts/routers from the - VPCS when you study the Cisco routers in the dynamips. - ''; - inherit (finalAttrs.src.meta) homepage; - license = licenses.bsd2; - platforms = platforms.linux ++ platforms.darwin; - mainProgram = "vpcs"; - maintainers = with maintainers; [ anthonyroussel ]; - }; -}) diff --git a/pkgs/applications/virtualization/x11docker/default.nix b/pkgs/applications/virtualization/x11docker/default.nix index 840c9d648b941..1e400088693b3 100644 --- a/pkgs/applications/virtualization/x11docker/default.nix +++ b/pkgs/applications/virtualization/x11docker/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { description = "Run graphical applications with Docker"; homepage = "https://github.com/mviereck/x11docker"; license = lib.licenses.mit; - maintainers = with lib.maintainers; [ ]; + maintainers = [ ]; platforms = lib.platforms.linux; mainProgram = "x11docker"; }; diff --git a/pkgs/applications/virtualization/xen/0000-fix-install-python.4.15.patch b/pkgs/applications/virtualization/xen/0000-fix-install-python.4.15.patch deleted file mode 100644 index 5fc5a6012ee30..0000000000000 --- a/pkgs/applications/virtualization/xen/0000-fix-install-python.4.15.patch +++ /dev/null @@ -1,16 +0,0 @@ -tools/python/install-wrap script brakes shebangs patching, disable - -diff --git a/tools/Rules.mk b/tools/Rules.mk -index 444e5bacdd..c99ea959ff 100644 ---- a/tools/Rules.mk -+++ b/tools/Rules.mk -@@ -135,8 +135,7 @@ CFLAGS += $(CFLAGS-y) - - CFLAGS += $(EXTRA_CFLAGS_XEN_TOOLS) - --INSTALL_PYTHON_PROG = \ -- $(XEN_ROOT)/tools/python/install-wrap "$(PYTHON_PATH)" $(INSTALL_PROG) -+INSTALL_PYTHON_PROG = $(INSTALL_PROG) - - %.opic: %.c - $(CC) $(CPPFLAGS) -DPIC $(CFLAGS) $(CFLAGS_$*.opic) -fPIC -c -o $@ $< $(APPEND_CFLAGS) diff --git a/pkgs/applications/virtualization/xen/0000-qemu-seabios-enable-ATA_DMA.patch b/pkgs/applications/virtualization/xen/0000-qemu-seabios-enable-ATA_DMA.patch deleted file mode 100644 index 339972a2cdeb1..0000000000000 --- a/pkgs/applications/virtualization/xen/0000-qemu-seabios-enable-ATA_DMA.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff -uNr a/src/Kconfig b/src/Kconfig ---- a/src/Kconfig 2015-08-31 10:15:13.231134858 +0200 -+++ b/src/Kconfig 2015-08-31 10:14:24.039180178 +0200 -@@ -144,13 +144,13 @@ - config ATA_DMA - depends on ATA - bool "ATA DMA" -- default n -+ default y - help - Detect and try to use ATA bus mastering DMA controllers. - config ATA_PIO32 - depends on ATA - bool "ATA 32bit PIO" -- default n -+ default y - help - Use 32bit PIO accesses on ATA (minor optimization on PCI transfers). - config AHCI diff --git a/pkgs/applications/virtualization/xen/0004-makefile-use-efi-ld.4.15.patch b/pkgs/applications/virtualization/xen/0004-makefile-use-efi-ld.4.15.patch deleted file mode 100644 index c64ec52315c92..0000000000000 --- a/pkgs/applications/virtualization/xen/0004-makefile-use-efi-ld.4.15.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile -index b6567c4127..83defeee95 100644 ---- a/xen/arch/x86/Makefile -+++ b/xen/arch/x86/Makefile -@@ -124,11 +124,11 @@ ifneq ($(efi-y),) - export XEN_BUILD_EFI := $(shell $(CC) $(XEN_CFLAGS) -c efi/check.c -o efi/check.o 2>/dev/null && echo y) - # Check if the linker supports PE. - EFI_LDFLAGS = $(patsubst -m%,-mi386pep,$(XEN_LDFLAGS)) --subsystem=10 --strip-debug --XEN_BUILD_PE := $(if $(XEN_BUILD_EFI),$(shell $(LD) $(EFI_LDFLAGS) -o efi/check.efi efi/check.o 2>/dev/null && echo y)) -+XEN_BUILD_PE := $(if $(XEN_BUILD_EFI),$(shell $(EFI_LD) $(EFI_LDFLAGS) -o efi/check.efi efi/check.o 2>/dev/null && echo y)) - CFLAGS-$(XEN_BUILD_EFI) += -DXEN_BUILD_EFI - # Check if the linker produces fixups in PE by default (we need to disable it doing so for now). - XEN_NO_PE_FIXUPS := $(if $(XEN_BUILD_EFI), \ -- $(shell $(LD) $(EFI_LDFLAGS) --disable-reloc-section -o efi/check.efi efi/check.o 2>/dev/null && \ -+ $(shell $(EFI_LD) $(EFI_LDFLAGS) --disable-reloc-section -o efi/check.efi efi/check.o 2>/dev/null && \ - echo --disable-reloc-section)) - endif - -@@ -217,20 +217,20 @@ note_file_option ?= $(note_file) - ifeq ($(XEN_BUILD_PE),y) - $(TARGET).efi: prelink-efi.o $(note_file) efi.lds efi/relocs-dummy.o efi/mkreloc - $(foreach base, $(VIRT_BASE) $(ALT_BASE), \ -- $(LD) $(call EFI_LDFLAGS,$(base)) -T efi.lds -N $< efi/relocs-dummy.o \ -+ $(EFI_LD) $(call EFI_LDFLAGS,$(base)) -T efi.lds -N $< efi/relocs-dummy.o \ - $(BASEDIR)/common/symbols-dummy.o $(note_file_option) -o $(@D)/.$(@F).$(base).0 &&) : - efi/mkreloc $(foreach base,$(VIRT_BASE) $(ALT_BASE),$(@D)/.$(@F).$(base).0) >$(@D)/.$(@F).0r.S - $(NM) -pa --format=sysv $(@D)/.$(@F).$(VIRT_BASE).0 \ - | $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort >$(@D)/.$(@F).0s.S - $(MAKE) -f $(BASEDIR)/Rules.mk $(@D)/.$(@F).0r.o $(@D)/.$(@F).0s.o - $(foreach base, $(VIRT_BASE) $(ALT_BASE), \ -- $(LD) $(call EFI_LDFLAGS,$(base)) -T efi.lds -N $< \ -+ $(EFI_LD) $(call EFI_LDFLAGS,$(base)) -T efi.lds -N $< \ - $(@D)/.$(@F).0r.o $(@D)/.$(@F).0s.o $(note_file_option) -o $(@D)/.$(@F).$(base).1 &&) : - efi/mkreloc $(foreach base,$(VIRT_BASE) $(ALT_BASE),$(@D)/.$(@F).$(base).1) >$(@D)/.$(@F).1r.S - $(NM) -pa --format=sysv $(@D)/.$(@F).$(VIRT_BASE).1 \ - | $(BASEDIR)/tools/symbols $(all_symbols) --sysv --sort >$(@D)/.$(@F).1s.S - $(MAKE) -f $(BASEDIR)/Rules.mk $(@D)/.$(@F).1r.o $(@D)/.$(@F).1s.o -- $(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T efi.lds -N $< \ -+ $(EFI_LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T efi.lds -N $< \ - $(@D)/.$(@F).1r.o $(@D)/.$(@F).1s.o $(note_file_option) -o $@ - $(NM) -pa --format=sysv $(@D)/$(@F) \ - | $(BASEDIR)/tools/symbols --all-symbols --xensyms --sysv --sort >$(@D)/$(@F).map diff --git a/pkgs/applications/virtualization/xen/0005-makefile-fix-efi-mountdir-use.4.15.patch b/pkgs/applications/virtualization/xen/0005-makefile-fix-efi-mountdir-use.4.15.patch deleted file mode 100644 index 8f07c1a8e29ff..0000000000000 --- a/pkgs/applications/virtualization/xen/0005-makefile-fix-efi-mountdir-use.4.15.patch +++ /dev/null @@ -1,37 +0,0 @@ -EFI_MOUNTPOINT is conventionally /boot/efi or /boot/EFI or something -like that, and (on my machine) has directories within that called -{Boot, nixos, gummiboot}. - -This patch does two things: - -1) Xen apparently wants to put files in -$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR) - we remove the duplicate 'efi' name -because I can't see why we have it - -2) Ensures the said directory exists - - -diff --git a/xen/Makefile b/xen/Makefile -index acb2d28891..d0763fbbe7 100644 ---- a/xen/Makefile -+++ b/xen/Makefile -@@ -289,7 +289,9 @@ _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX) - ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).efi; \ - ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T).efi; \ - if [ -n '$(EFI_MOUNTPOINT)' -a -n '$(EFI_VENDOR)' ]; then \ -- $(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi; \ -+ [ -d $(D)$(EFI_MOUNTPOINT)/$(EFI_VENDOR) ] || \ -+ $(INSTALL_DIR) $(D)$(EFI_MOUNTPOINT)/$(EFI_VENDOR) ;\ -+ $(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_MOUNTPOINT)/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi; \ - elif [ "$(D)" = "$(patsubst $(shell cd $(XEN_ROOT) && pwd)/%,%,$(D))" ]; then \ - echo 'EFI installation only partially done (EFI_VENDOR not set)' >&2; \ - fi; \ -@@ -319,7 +321,7 @@ _uninstall: - rm -f $(D)$(DEBUG_DIR)/$(T)-$(XEN_FULLVERSION).efi.map - rm -f $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).efi - rm -f $(D)$(EFI_DIR)/$(T).efi -- rm -f $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi -+ rm -f $(D)$(EFI_MOUNTPOINT)/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi - - .PHONY: _debug - _debug: diff --git a/pkgs/applications/virtualization/xen/4.15.nix b/pkgs/applications/virtualization/xen/4.15.nix deleted file mode 100644 index d4905088ae1e3..0000000000000 --- a/pkgs/applications/virtualization/xen/4.15.nix +++ /dev/null @@ -1,183 +0,0 @@ -{ lib, callPackage, fetchurl, fetchpatch, fetchgit -, ocaml-ng -, withInternalQemu ? true -, withInternalTraditionalQemu ? true -, withInternalSeabios ? true -, withSeabios ? !withInternalSeabios, seabios -, withInternalOVMF ? false # FIXME: tricky to build -, withOVMF ? false, OVMF -, withLibHVM ? false - -# xen -, python3Packages - -# qemu -, udev, pciutils, xorg, SDL, pixman, acl, glusterfs, spice-protocol, usbredir -, alsa-lib, glib, python3 -, ... } @ args: - -assert withInternalSeabios -> !withSeabios; -assert withInternalOVMF -> !withOVMF; -assert !withLibHVM; - -with lib; - -# Patching XEN? Check the XSAs at -# https://xenbits.xen.org/xsa/ -# and try applying all the ones we don't have yet. - -let - xsa = import ./xsa-patches.nix { inherit fetchpatch; }; - - qemuMemfdBuildFix = fetchpatch { - name = "xen-4.8-memfd-build-fix.patch"; - url = "https://github.com/qemu/qemu/commit/75e5b70e6b5dcc4f2219992d7cffa462aa406af0.patch"; - sha256 = "0gaz93kb33qc0jx6iphvny0yrd17i8zhcl3a9ky5ylc2idz0wiwa"; - }; - - qemuDeps = [ - udev pciutils xorg.libX11 SDL pixman acl glusterfs spice-protocol usbredir - alsa-lib glib python3 - ]; -in - -callPackage (import ./generic.nix (rec { - version = "4.15.1"; - - src = fetchurl { - url = "https://downloads.xenproject.org/release/xen/${version}/xen-${version}.tar.gz"; - sha256 = "1rmc7gb72xwhr3h9rc3bkac41s8kjjzz45miwdq6yalyq7j7vss5"; - }; - - # Sources needed to build tools and firmwares. - xenfiles = optionalAttrs withInternalQemu { - qemu-xen = { - src = fetchgit { - url = "https://xenbits.xen.org/git-http/qemu-xen.git"; - # rev = "refs/tags/qemu-xen-${version}"; - # use revision hash - reproducible but must be updated with each new version - rev = "e2af2d050338c99e8436e251ad67aafb3ebbd501"; - sha256 = "sha256-gVykPtzAA7tmpe6iVvnulaW+b0jD3gwL1JXC5yeIA7M="; - }; - buildInputs = qemuDeps; - postPatch = '' - # needed in build but /usr/bin/env is not available in sandbox - substituteInPlace scripts/tracetool.py \ - --replace "/usr/bin/env python" "${python3}/bin/python" - ''; - meta.description = "Xen's fork of upstream Qemu"; - }; - } // optionalAttrs withInternalTraditionalQemu { - # TODO 4.15: something happened with traditional in this release? - qemu-xen-traditional = { - src = fetchgit { - url = "https://xenbits.xen.org/git-http/qemu-xen-traditional.git"; - # rev = "refs/tags/xen-${version}"; - # use revision hash - reproducible but must be updated with each new version - rev = "3d273dd05e51e5a1ffba3d98c7437ee84e8f8764"; - sha256 = "1dc6dhjp4y2irmi9yiyw1kzmm1habyy8j1s2zkf6qyak850krqj7"; - }; - buildInputs = qemuDeps; - patches = [ - ]; - postPatch = '' - substituteInPlace xen-hooks.mak \ - --replace /usr/include/pci ${pciutils}/include/pci - ''; - meta.description = "Xen's fork of upstream Qemu that uses old device model"; - }; - } // optionalAttrs withInternalSeabios { - "firmware/seabios-dir-remote" = { - src = fetchgit { - url = "https://xenbits.xen.org/git-http/seabios.git"; - rev = "155821a1990b6de78dde5f98fa5ab90e802021e0"; - sha256 = "sha256-F3lzr00CMAObJtpz0eZFT/rwjFx+bvlI37/JtHXP5Eo="; - }; - patches = [ ./0000-qemu-seabios-enable-ATA_DMA.patch ]; - meta.description = "Xen's fork of Seabios"; - }; - } // optionalAttrs withInternalOVMF { - "firmware/ovmf-dir-remote" = { - src = fetchgit { - url = "https://xenbits.xen.org/git-http/ovmf.git"; - rev = "a3741780fe3535e19e02efa869a7cac481891129"; - sha256 = "0000000000000000000000000000000000000000000000000000"; - }; - meta.description = "Xen's fork of OVMF"; - }; - } // { - # TODO: patch Xen to make this optional? - "firmware/etherboot/ipxe.git" = { - src = fetchgit { - url = "https://git.ipxe.org/ipxe.git"; - rev = "988d2c13cdf0f0b4140685af35ced70ac5b3283c"; - sha256 = "1pkf1n1c0rdlzfls8fvjvi1sd9xjd9ijqlyz3wigr70ijcv6x8i9"; - }; - meta.description = "Xen's fork of iPXE"; - }; - }; - - configureFlags = [] - ++ optional (!withInternalQemu) "--with-system-qemu" # use qemu from PATH - ++ optional (withInternalTraditionalQemu) "--enable-qemu-traditional" - ++ optional (!withInternalTraditionalQemu) "--disable-qemu-traditional" - - ++ optional (withSeabios) "--with-system-seabios=${seabios}/share/seabios" - ++ optional (!withInternalSeabios && !withSeabios) "--disable-seabios" - - ++ optional (withOVMF) "--with-system-ovmf=${OVMF.firmware}" - ++ optional (withInternalOVMF) "--enable-ovmf"; - - NIX_CFLAGS_COMPILE = toString [ - # TODO 4.15: drop unneeded ones - # Fix build on Glibc 2.24. - "-Wno-error=deprecated-declarations" - # Fix build with GCC 8 - "-Wno-error=maybe-uninitialized" - "-Wno-error=stringop-truncation" - "-Wno-error=format-truncation" - "-Wno-error=array-bounds" - # Fix build with GCC 9 - "-Wno-error=address-of-packed-member" - "-Wno-error=format-overflow" - "-Wno-error=absolute-value" - # Fix build with GCC 10 - "-Wno-error=enum-conversion" - "-Wno-error=zero-length-bounds" - # Fix build with GCC 12 - # xentoollog_stubs.c:57: error: "Some_val" redefined [-Werror] - "-Wno-error" - ]; - - patches = with xsa; flatten [ - ./0000-fix-ipxe-src.4.15.patch - ./0000-fix-install-python.4.15.patch - ./0004-makefile-use-efi-ld.4.15.patch - ./0005-makefile-fix-efi-mountdir-use.4.15.patch - - XSA_386 - ]; - - postPatch = '' - # Avoid a glibc >= 2.25 deprecation warnings that get fatal via -Werror. - sed 1i'#include <sys/sysmacros.h>' \ - -i tools/libs/light/libxl_device.c - - # Fix missing pkg-config dir - mkdir -p tools/pkg-config - ''; - - preBuild = '' - # PKG_CONFIG env var collides with variables used in tools Makefiles. - unset PKG_CONFIG - ''; - - passthru = { - qemu-system-i386 = if withInternalQemu - then "lib/xen/bin/qemu-system-i386" - else throw "this xen has no qemu builtin"; - }; - -})) ({ - ocamlPackages = ocaml-ng.ocamlPackages_4_14; -} // args) diff --git a/pkgs/applications/virtualization/xen/4.17/default.nix b/pkgs/applications/virtualization/xen/4.17/default.nix new file mode 100644 index 0000000000000..d270c37f2ce83 --- /dev/null +++ b/pkgs/applications/virtualization/xen/4.17/default.nix @@ -0,0 +1,56 @@ +{ + lib, + fetchpatch, + callPackage, + ocaml-ng, + ... +}@genericDefinition: + +let + upstreamPatches = import ../generic/patches.nix { + inherit lib; + inherit fetchpatch; + }; + + upstreamPatchList = lib.lists.flatten ( + with upstreamPatches; + [ + QUBES_REPRODUCIBLE_BUILDS + XSA_462 + ] + ); +in + +callPackage (import ../generic/default.nix { + pname = "xen"; + branch = "4.17"; + version = "4.17.5"; + latest = false; + pkg = { + xen = { + rev = "430ce6cd936546ad883ecd1c85ddea32d790604b"; + hash = "sha256-UoMdXRW0yWSaQPPV0rgoTZVO2ghdnqWruBHn7+ZjKzI="; + patches = [ ] ++ upstreamPatchList; + }; + qemu = { + rev = "ffb451126550b22b43b62fb8731a0d78e3376c03"; + hash = "sha256-G0hMPid9d3fd1jAY7CiZ33xUZf1hdy96T1VUKFGeHSk="; + patches = [ ]; + }; + seaBIOS = { + rev = "d239552ce7220e448ae81f41515138f7b9e3c4db"; + hash = "sha256-UKMceJhIprN4/4Xe4EG2EvKlanxVcEi5Qcrrk3Ogiik="; + patches = [ ]; + }; + ovmf = { + rev = "7b4a99be8a39c12d3a7fc4b8db9f0eab4ac688d5"; + hash = "sha256-Qq2RgktCkJZBsq6Ch+6tyRHhme4lfcN7d2oQfxwhQt8="; + patches = [ ]; + }; + ipxe = { + rev = "1d1cf74a5e58811822bee4b3da3cff7282fcdfca"; + hash = "sha256-8pwoPrmkpL6jIM+Y/C0xSvyrBM/Uv0D1GuBwNm+0DHU="; + patches = [ ]; + }; + }; +}) ({ ocamlPackages = ocaml-ng.ocamlPackages_4_14; } // genericDefinition) diff --git a/pkgs/applications/virtualization/xen/4.18/default.nix b/pkgs/applications/virtualization/xen/4.18/default.nix new file mode 100644 index 0000000000000..21d6de13f1b03 --- /dev/null +++ b/pkgs/applications/virtualization/xen/4.18/default.nix @@ -0,0 +1,56 @@ +{ + lib, + fetchpatch, + callPackage, + ocaml-ng, + ... +}@genericDefinition: + +let + upstreamPatches = import ../generic/patches.nix { + inherit lib; + inherit fetchpatch; + }; + + upstreamPatchList = lib.lists.flatten ( + with upstreamPatches; + [ + QUBES_REPRODUCIBLE_BUILDS + XSA_462 + ] + ); +in + +callPackage (import ../generic/default.nix { + pname = "xen"; + branch = "4.18"; + version = "4.18.3"; + latest = false; + pkg = { + xen = { + rev = "bd51e573a730efc569646379cd59ccba967cde97"; + hash = "sha256-OFiFdpPCXR+sWjzFHCORtY4DkWyggvxkcsGdgEyO1ts="; + patches = [ ] ++ upstreamPatchList; + }; + qemu = { + rev = "0df9387c8983e1b1e72d8c574356f572342c03e6"; + hash = "sha256-BX+LXfNzwdUMALwwI1ZDW12dJ357oynjnrboLHREDGQ="; + patches = [ ]; + }; + seaBIOS = { + rev = "ea1b7a0733906b8425d948ae94fba63c32b1d425"; + hash = "sha256-J2FuT+FXn9YoFLSfxDOxyKZvKrys59a6bP1eYvEXVNU="; + patches = [ ]; + }; + ovmf = { + rev = "ba91d0292e593df8528b66f99c1b0b14fadc8e16"; + hash = "sha256-htOvV43Hw5K05g0SF3po69HncLyma3BtgpqYSdzRG4s="; + patches = [ ]; + }; + ipxe = { + rev = "1d1cf74a5e58811822bee4b3da3cff7282fcdfca"; + hash = "sha256-8pwoPrmkpL6jIM+Y/C0xSvyrBM/Uv0D1GuBwNm+0DHU="; + patches = [ ]; + }; + }; +}) ({ ocamlPackages = ocaml-ng.ocamlPackages_4_14; } // genericDefinition) diff --git a/pkgs/applications/virtualization/xen/4.19/default.nix b/pkgs/applications/virtualization/xen/4.19/default.nix new file mode 100644 index 0000000000000..a1b1337042855 --- /dev/null +++ b/pkgs/applications/virtualization/xen/4.19/default.nix @@ -0,0 +1,58 @@ +{ + lib, + fetchpatch, + callPackage, + ocaml-ng, + ... +}@genericDefinition: + +let + upstreamPatches = import ../generic/patches.nix { + inherit lib; + inherit fetchpatch; + }; + + upstreamPatchList = lib.lists.flatten ( + with upstreamPatches; + [ + QUBES_REPRODUCIBLE_BUILDS + XSA_460 + XSA_461 + XSA_462 + ] + ); +in + +callPackage (import ../generic/default.nix { + pname = "xen"; + branch = "4.19"; + version = "4.19.0"; + latest = true; + pkg = { + xen = { + rev = "026c9fa29716b0ff0f8b7c687908e71ba29cf239"; + hash = "sha256-Q6x+2fZ4ITBz6sKICI0NHGx773Rc919cl+wzI89UY+Q="; + patches = [ ] ++ upstreamPatchList; + }; + qemu = { + rev = "0df9387c8983e1b1e72d8c574356f572342c03e6"; + hash = "sha256-BX+LXfNzwdUMALwwI1ZDW12dJ357oynjnrboLHREDGQ="; + patches = [ ]; + }; + seaBIOS = { + rev = "a6ed6b701f0a57db0569ab98b0661c12a6ec3ff8"; + hash = "sha256-hWemj83cxdY8p+Jhkh5GcPvI0Sy5aKYZJCsKDjHTUUk="; + patches = [ ]; + }; + ovmf = { + rev = "ba91d0292e593df8528b66f99c1b0b14fadc8e16"; + hash = "sha256-htOvV43Hw5K05g0SF3po69HncLyma3BtgpqYSdzRG4s="; + patches = [ ]; + }; + ipxe = { + rev = "1d1cf74a5e58811822bee4b3da3cff7282fcdfca"; + hash = "sha256-8pwoPrmkpL6jIM+Y/C0xSvyrBM/Uv0D1GuBwNm+0DHU="; + patches = [ ]; + }; + }; +}) ({ ocamlPackages = ocaml-ng.ocamlPackages_4_14; } // genericDefinition) diff --git a/pkgs/applications/virtualization/xen/README.md b/pkgs/applications/virtualization/xen/README.md new file mode 100644 index 0000000000000..07087e2fee230 --- /dev/null +++ b/pkgs/applications/virtualization/xen/README.md @@ -0,0 +1,209 @@ +<p align="center"> + <a href="https://xenproject.org/"> + <picture> + <source + media="(prefers-color-scheme: light)" + srcset="https://downloads.xenproject.org/Branding/Logos/Green+Black/xen_project_logo_dualcolor_2000x832.png"> + <source + media="(prefers-color-scheme: dark)" + srcset="https://xenproject.org/wp-content/uploads/sites/79/2018/09/logo_xenproject.png"> + <img + src="https://downloads.xenproject.org/Branding/Logos/Green+Black/xen_project_logo_dualcolor_2000x832.png" + width="512px" + alt="Xen Project Logo"> + </picture> + </a> +</p> + +# Xen Project Hypervisor <a href="https://xenproject.org/"><img src="https://downloads.xenproject.org/Branding/Mascots/Xen-Fu-Panda-2000px.png" width="48px" align="top" alt="Xen Fu Panda"></a> + +This directory includes the build recipes for the [Xen Project Hypervisor](https://xenproject.org/). + +Some other notable packages that compose the Xen Project Ecosystem include: + +- `ocamlPackages.xenstore`: Mirage's `oxenstore` implementation. +- `ocamlPackages.vchan`: Mirage's `xen-vchan` implementation. +- `ocamlPackages.xenstore-tool`: XAPI's `oxenstore` utilities. +- `xen-guest-agent`: Guest drivers for UNIX domUs. +- `win-pvdrivers`: Guest drivers for Windows domUs. +- `xtf`: The Xen Test Framework. + +## Updating + +### Automatically + +An automated update script is available in this directory. To produce up-to-date +files for all supported Xen branches, simply run `./update.sh`, and follow the +instructions given to you by the script. Notably, it will request that you verify +the Xen Project code signing PGP key. This README understands that the fingerprint +of that key is [`23E3 222C 145F 4475 FA80 60A7 83FE 14C9 57E8 2BD9`](https://keys.openpgp.org/search?q=pgp%40xen.org), +but you should verify this information by seeking the fingerprint from other trusted +sources, as this document may be compromised. Once the PGP key is verified, it will +use `git verify-tag` to ascertain the validity of the cloned Xen sources. + +After the script is done, follow the steps in +[**For Both Update Methods**](#for-both-update-methods) below. + +#### Downstream Patch Names + +The script expects local patch names to follow a certain specification. +Please name any required patches using the template below: + +```console +0000-project-description-branch.patch +``` + +Where: + +1. The first four numbers define the patch order. + **0001** will be applied after **0000**, and so on. +1. `project` means the name of the source the patch should be applied to. + - If you are applying patches to the main Xen sources, use `xen`. + - For the pre-fetched QEMU, use `qemu`. + - For SeaBIOS, use `seabios`. + - For OVMF, use `ovmf`. + - For iPXE, use `ipxe`. +1. `description` is a string with uppercase and lowercase letters, numbers and + dashes. It describes the patch name and what it does to the upstream code. +1. `branch` is the branch for which this patch is supposed to patch. + It should match the name of the directory it is in. + +For example, a patch fixing `xentop`'s output in the 4.15 branch should have +the following name: `0000-xen-xentop-output-4.15.patch`, and it should be added +to the `4.15/` directory. + +### Manually + +The script is not infallible, and it may break in the future. If that happens, +open a PR fixing the script, and update Xen manually: + +1. Check the support matrix to see which branches are security-supported. +1. Create one directory per branch. +1. [Update](https://xenbits.xenproject.org/gitweb/) the `default.nix` files for + the branches that already exist and copy a new one to any branches that do + not yet exist in Nixpkgs. + - Do not forget to set the `branch`, `version`, and `latest` attributes for + each of the `default.nix` files. + - The revisions are preferably commit hashes, but tag names are acceptable + as well. + +### For Both Update Methods + +1. Update `packages.nix` and `../../../top-level/all-packages.nix` with the new + versions. Don't forget the `slim` packages! +1. Make sure all branches build. (Both the `standard` and `slim` versions) +1. Use the NixOS module to test if dom0 boots successfully on all new versions. +1. Make sure the `meta` attributes evaluate to something that makes sense. The + following one-line command is useful for testing this: + + ```console + xenToEvaluate=xen; echo -e "\033[1m$(nix eval .#"$xenToEvaluate".meta.description --raw 2> /dev/null)\033[0m\n\n$(nix eval .#"$xenToEvaluate".meta.longDescription --raw 2> /dev/null)" + ``` + + Change the value of `xenToEvaluate` to evaluate all relevant Xen packages. +1. Run `xtf --all --host` as root when booted into the Xen update, and make + sure no tests fail. +1. Clean up your changes and commit them, making sure to follow the + [Nixpkgs Contribution Guidelines](../../../../CONTRIBUTING.md). +1. Open a PR and await a review from the current maintainers. + +## Features + +### Pre-fetched Sources + +On a typical Xen build, the Xen Makefiles will fetch more required sources with +`git` and `wget`. Due to the Nix Sandbox, build-time fetching will fail, so we +pre-fetch the required sources before building.[^1] To accomplish this, we have +a `prefetchedSources` attribute that contains the required derivations, if they +are requested by the main Xen build. + +### EFI + +Building `xen.efi` requires an `ld` with PE support.[^2] + +We use a `makeFlag` to override the `$LD` environment variable to point to our +patched `efiBinutils`. For more information, see the comment in `./generic/default.nix`. + +> [!TIP] +> If you are certain you will not be running Xen in an x86 EFI environment, disable +the `withEFI` flag with an [override](https://nixos.org/manual/nixpkgs/stable/#chap-overrides) +to save you the need to compile `efiBinutils`. + +### Default Overrides + +By default, Xen also builds +[QEMU](https://www.qemu.org/), +[SeaBIOS](https://www.seabios.org/SeaBIOS), +[OVMF](https://github.com/tianocore/tianocore.github.io/wiki/OVMF) and +[iPXE](https://ipxe.org/). + +- QEMU is used for stubdomains and handling devices. +- SeaBIOS is the default legacy BIOS ROM for HVM domains. +- OVMF is the default UEFI ROM for HVM domains. +- iPXE provides a PXE boot environment for HVMs. + +However, those packages are already available on Nixpkgs, and Xen does not +necessarily need to build them into the main hypervisor build. For this reason, +we also have the `withInternal<Component>` flags, which enables and disables +building those built-in components. The two most popular Xen configurations will +be the default build, with all built-in components, and a `slim` build, with none +of those components. To simplify this process, the `./packages.nix` file includes +the `xen-slim` package overrides that have all `withInternal<Component>` flags +disabled. See the `meta.longDescription` attribute for the `xen-slim` packages +for more information. + +## Security + +We aim to support all **security-supported** versions of Xen at any given time. +See the [Xen Support Matrix](https://xenbits.xen.org/docs/unstable/support-matrix.html) +for a list of versions. As soon as a version is no longer **security-supported**, +it should be removed from Nixpkgs. + +> [!CAUTION] +> Pull requests that introduce XSA patches +should have the `1.severity: security` label. + +### Maintainers + +Xen is a particularly complex piece of software, so we are always looking for new +maintainers. Help out by [making and triaging issues](https://github.com/NixOS/nixpkgs/issues/new/choose), +[sending build fixes and improvements through PRs](https://github.com/NixOS/nixpkgs/compare), +updating the branches, and [patching security flaws](https://xenbits.xenproject.org/xsa/). + +We are also looking for testers, particularly those who can test Xen on AArch64 +machines. Open issues for any build failures or runtime errors you find! + +## Tests + +So far, we only have had one simple automated test that checks for +the correct `pkg-config` output files. + +Due to Xen's nature as a type-1 hypervisor, it is not a trivial matter to design +new tests, as even basic functionality requires a machine booted in a dom0 +kernel. For this reason, most testing done with this package must be done +manually in a NixOS machine with `virtualisation.xen.enable` set to `true`. + +Another unfortunate thing is that none of the Xen commands have a `--version` +flag. This means that `testers.testVersion` cannot ascertain the Xen version. +The only way to verify that you have indeed built the correct version is to +boot into the freshly built Xen kernel and run `xl info`. + +<p align="center"> + <a href="https://xenproject.org/"> + <img + src="https://downloads.xenproject.org/Branding/Mascots/Xen%20Big%20Panda%204242x3129.png" + width="96px" + alt="Xen Fu Panda"> + </a> +</p> + +[^1]: We also produce fake `git`, `wget` and `hostname` binaries that do nothing, + to prevent the build from failing because Xen cannot fetch the sources that + were already fetched by Nix. +[^2]: From the [Xen Documentation](https://xenbits.xenproject.org/docs/unstable/misc/efi.html): + > For x86, building `xen.efi` requires `gcc` 4.5.x or above (4.6.x or newer + recommended, as 4.5.x was probably never really tested for this purpose) + and `binutils` 2.22 or newer. Additionally, the `binutils` build must be + configured to include support for the x86_64-pep emulation (i.e. + `--enable-targets=x86_64-pep` or an option of equivalent effect should be + passed to the configure script). diff --git a/pkgs/applications/virtualization/xen/generic.nix b/pkgs/applications/virtualization/xen/generic.nix deleted file mode 100644 index 826cd8a3d9d84..0000000000000 --- a/pkgs/applications/virtualization/xen/generic.nix +++ /dev/null @@ -1,265 +0,0 @@ -config: -{ lib, stdenv, cmake, pkg-config, which - -# Xen -, bison, bzip2, checkpolicy, dev86, figlet, flex, gettext, glib -, acpica-tools, libaio, libiconv, libuuid, ncurses, openssl, perl -, xz, yajl, zlib -, python3Packages - -# Xen Optional -, ocamlPackages - -# Scripts -, coreutils, gawk, gnused, gnugrep, diffutils, multipath-tools -, iproute2, inetutils, iptables, bridge-utils, openvswitch, nbd, drbd -, util-linux, procps, systemd - -# Documentation -# python3Packages.markdown -, fig2dev, ghostscript, texinfo, pandoc - -, binutils-unwrapped - -, ...} @ args: - -with lib; - -let - #TODO: fix paths instead - scriptEnvPath = concatMapStringsSep ":" (x: "${x}/bin") [ - which perl - coreutils gawk gnused gnugrep diffutils util-linux multipath-tools - iproute2 inetutils iptables bridge-utils openvswitch nbd drbd - ]; - - withXenfiles = f: concatStringsSep "\n" (mapAttrsToList f config.xenfiles); - - withTools = a: f: withXenfiles (name: x: optionalString (hasAttr a x) '' - echo "processing ${name}" - __do() { - cd "tools/${name}" - ${f name x} - } - ( __do ) - ''); - - # We don't want to use the wrapped version, because this version of ld is - # only used for linking the Xen EFI binary, and the build process really - # needs control over the LDFLAGS used - efiBinutils = binutils-unwrapped.overrideAttrs (oldAttrs: { - name = "efi-binutils"; - configureFlags = oldAttrs.configureFlags ++ [ - "--enable-targets=x86_64-pep" - ]; - doInstallCheck = false; # We get a spurious failure otherwise, due to host/target mis-match - }); -in - -stdenv.mkDerivation (rec { - inherit (config) version; - - name = "xen-${version}"; - - dontUseCmakeConfigure = true; - - hardeningDisable = [ "stackprotector" "fortify" "pic" ]; - - nativeBuildInputs = [ pkg-config cmake ]; - buildInputs = [ - which - - # Xen - bison bzip2 checkpolicy dev86 figlet flex gettext glib acpica-tools libaio - libiconv libuuid ncurses openssl perl python3Packages.python xz yajl zlib - - # oxenstored - ocamlPackages.findlib ocamlPackages.ocaml systemd - - # Python fixes - python3Packages.wrapPython - - # Documentation - python3Packages.markdown fig2dev ghostscript texinfo pandoc - - # Others - ] ++ (concatMap (x: x.buildInputs or []) (attrValues config.xenfiles)) - ++ (config.buildInputs or []); - - prePatch = '' - ### Generic fixes - - # Xen's stubdoms, tools and firmwares need various sources that - # are usually fetched at build time using wget and git. We can't - # have that, so we prefetch them in nix-expression and setup - # fake wget and git for debugging purposes. - - mkdir fake-bin - - # Fake git: just print what it wants and die - cat > fake-bin/wget << EOF - #!${stdenv.shell} -e - echo ===== FAKE WGET: Not fetching \$* - [ -e \$3 ] - EOF - - # Fake git: just print what it wants and die - cat > fake-bin/git << EOF - #!${stdenv.shell} - echo ===== FAKE GIT: Not cloning \$* - [ -e \$3 ] - EOF - - chmod +x fake-bin/* - export PATH=$PATH:$PWD/fake-bin - - # Remove in-tree qemu stuff in case we build from a tar-ball - rm -rf tools/qemu-xen tools/qemu-xen-traditional - - # Fix shebangs, mainly for build-scripts - # We want to do this before getting prefetched stuff to speed things up - # (prefetched stuff has lots of files) - find . -type f | xargs sed -i 's@/usr/bin/\(python\|perl\)@/usr/bin/env \1@g' - find . -type f -not -path "./tools/hotplug/Linux/xendomains.in" \ - | xargs sed -i 's@/bin/bash@${stdenv.shell}@g' - - # Get prefetched stuff - ${withXenfiles (name: x: '' - echo "${x.src} -> tools/${name}" - cp -r ${x.src} tools/${name} - chmod -R +w tools/${name} - '')} - ''; - - patches = [ - ] ++ (config.patches or []); - - postPatch = '' - ### Hacks - - # Work around a bug in our GCC wrapper: `gcc -MF foo -v' doesn't - # print the GCC version number properly. - substituteInPlace xen/Makefile \ - --replace '$(CC) $(CFLAGS) -v' '$(CC) -v' - - # Hack to get `gcc -m32' to work without having 32-bit Glibc headers. - mkdir -p tools/include/gnu - touch tools/include/gnu/stubs-32.h - - ### Fixing everything else - - substituteInPlace tools/libfsimage/common/fsimage_plugin.c \ - --replace /usr $out - - substituteInPlace tools/misc/xenpvnetboot \ - --replace /usr/sbin/mount ${util-linux}/bin/mount \ - --replace /usr/sbin/umount ${util-linux}/bin/umount - - substituteInPlace tools/xenmon/xenmon.py \ - --replace /usr/bin/pkill ${procps}/bin/pkill - - ${optionalString (builtins.compareVersions config.version "4.8" >= 0) '' - substituteInPlace tools/hotplug/Linux/launch-xenstore.in \ - --replace /bin/mkdir mkdir - ''} - - ${optionalString (builtins.compareVersions config.version "4.6" < 0) '' - # TODO: use this as a template and support our own if-up scripts instead? - substituteInPlace tools/hotplug/Linux/xen-backend.rules.in \ - --replace "@XEN_SCRIPT_DIR@" $out/etc/xen/scripts - - # blktap is not provided by xen, but by xapi - sed -i '/blktap/d' tools/hotplug/Linux/xen-backend.rules.in - ''} - - ${withTools "patches" (name: x: '' - ${concatMapStringsSep "\n" (p: '' - echo "# Patching with ${p}" - patch -p1 < ${p} - '') x.patches} - '')} - - ${withTools "postPatch" (name: x: x.postPatch)} - - ${config.postPatch or ""} - ''; - - postConfigure = '' - substituteInPlace tools/hotplug/Linux/xendomains \ - --replace /bin/ls ls - ''; - - EFI_LD = "${efiBinutils}/bin/ld"; - EFI_VENDOR = "nixos"; - - # TODO: Flask needs more testing before enabling it by default. - #makeFlags = [ "XSM_ENABLE=y" "FLASK_ENABLE=y" "PREFIX=$(out)" "CONFIG_DIR=/etc" "XEN_EXTFILES_URL=\\$(XEN_ROOT)/xen_ext_files" ]; - makeFlags = [ "PREFIX=$(out) CONFIG_DIR=/etc" "XEN_SCRIPT_DIR=/etc/xen/scripts" ] - ++ (config.makeFlags or []); - - preBuild = '' - ${config.preBuild or ""} - ''; - - buildFlags = [ "xen" "tools" ]; - - postBuild = '' - make -C docs man-pages - - ${withTools "buildPhase" (name: x: x.buildPhase)} - ''; - - installPhase = '' - mkdir -p $out $out/share $out/share/man - cp -prvd dist/install/nix/store/*/* $out/ - cp -prvd dist/install/boot $out/boot - cp -prvd dist/install/etc $out - cp -dR docs/man1 docs/man5 $out/share/man/ - - ${withTools "installPhase" (name: x: x.installPhase)} - - # Hack - substituteInPlace $out/etc/xen/scripts/hotplugpath.sh \ - --replace SBINDIR=\"$out/sbin\" SBINDIR=\"$out/bin\" - - wrapPythonPrograms - # We also need to wrap pygrub, which lies in lib - wrapPythonProgramsIn "$out/lib" "$out $pythonPath" - - shopt -s extglob - for i in $out/etc/xen/scripts/!(*.sh); do - sed -i "2s@^@export PATH=$out/bin:${scriptEnvPath}\n@" $i - done - ''; - - enableParallelBuilding = true; - - # TODO(@oxij): Stop referencing args here - meta = { - homepage = "http://www.xen.org/"; - description = "Xen hypervisor and related components" - + optionalString (args ? meta && args.meta ? description) - " (${args.meta.description})"; - longDescription = (args.meta.longDescription or "") - + "\nIncludes:\n" - + withXenfiles (name: x: "* ${name}: ${x.meta.description or "(No description)"}."); - platforms = [ "x86_64-linux" ]; - maintainers = [ ]; - license = lib.licenses.gpl2; - knownVulnerabilities = [ - # https://www.openwall.com/lists/oss-security/2023/03/21/1 - # Affects 3.2 (at *least*) - 4.17 - "CVE-2022-42332" - # https://www.openwall.com/lists/oss-security/2023/03/21/2 - # Affects 4.11 - 4.17 - "CVE-2022-42333" - "CVE-2022-42334" - # https://www.openwall.com/lists/oss-security/2023/03/21/3 - # Affects 4.15 - 4.17 - "CVE-2022-42331" - # https://xenbits.xen.org/docs/unstable/support-matrix.html - ] ++ lib.optionals (lib.versionOlder version "4.15") [ - "This version of Xen has reached its end of life. See https://xenbits.xen.org/docs/unstable/support-matrix.html" - ]; - } // (config.meta or {}); -} // removeAttrs config [ "xenfiles" "buildInputs" "patches" "postPatch" "meta" ]) diff --git a/pkgs/applications/virtualization/xen/0000-fix-ipxe-src.4.15.patch b/pkgs/applications/virtualization/xen/generic/0000-xen-ipxe-src-generic.patch index 08e9aa5ad2fb9..d96023d1946ae 100644 --- a/pkgs/applications/virtualization/xen/0000-fix-ipxe-src.4.15.patch +++ b/pkgs/applications/virtualization/xen/generic/0000-xen-ipxe-src-generic.patch @@ -1,21 +1,21 @@ -hack to make etherboot use prefetched ipxe +Hack to make etherboot use pre-fetched iPXE. diff --git a/tools/firmware/etherboot/Makefile b/tools/firmware/etherboot/Makefile index ed9e11305f..979a3acea8 100644 --- a/tools/firmware/etherboot/Makefile +++ b/tools/firmware/etherboot/Makefile @@ -16,6 +16,7 @@ IPXE_TARBALL_URL ?= $(XEN_EXTFILES_URL)/ipxe-git-$(IPXE_GIT_TAG).tar.gz - + D=ipxe T=ipxe.tar.gz +G=ipxe.git - + ROMS = $(addprefix $D/src/bin/, $(addsuffix .rom, $(ETHERBOOT_NICS))) ROM = $D/src/bin/ipxe.bin @@ -41,9 +42,9 @@ $T: fi mv _$T $T - + -$D/src/arch/i386/Makefile: $T Config - rm -rf $D - gzip -dc $T | tar xf - diff --git a/pkgs/applications/virtualization/xen/generic/default.nix b/pkgs/applications/virtualization/xen/generic/default.nix new file mode 100644 index 0000000000000..d4d0d235eef21 --- /dev/null +++ b/pkgs/applications/virtualization/xen/generic/default.nix @@ -0,0 +1,728 @@ +versionDefinition: +{ + lib, + stdenv, + autoPatchelfHook, + cmake, + ninja, + pkg-config, + testers, + which, + + fetchgit, + fetchFromGitHub, + + # Xen + acpica-tools, + bison, + bzip2, + dev86, + e2fsprogs, + flex, + libnl, + libuuid, + lzo, + ncurses, + ocamlPackages, + perl, + python3Packages, + systemdMinimal, + xz, + yajl, + zlib, + zstd, + + # Xen Optional + withInternalQEMU ? true, + pixman, + glib, + + withInternalSeaBIOS ? true, + withSeaBIOS ? !withInternalSeaBIOS, + seabios, + + withInternalOVMF ? true, + withOVMF ? !withInternalOVMF, + OVMF, + nasm, + + withInternalIPXE ? true, + withIPXE ? !withInternalIPXE, + ipxe, + + withFlask ? false, + checkpolicy, + + efiVendor ? "nixos", # Allow downstreams with custom branding to quickly override the EFI Vendor string. + withEFI ? true, + binutils-unwrapped, + + # Documentation + pandoc, + + # Scripts + bridge-utils, + coreutils, + diffutils, + gawk, + gnugrep, + gnused, + inetutils, + iproute2, + iptables, + multipath-tools, + nbd, + openvswitch, + util-linux, + ... +}@packageDefinition: + +let + #TODO: fix paths instead. + scriptEnvPath = lib.strings.makeSearchPathOutput "out" "bin" [ + bridge-utils + coreutils + diffutils + gawk + gnugrep + gnused + inetutils + iproute2 + iptables + multipath-tools + nbd + openvswitch + perl + util-linux.bin + which + ]; + + # Inherit attributes from a versionDefinition. + inherit (versionDefinition) + pname + branch + version + latest + pkg + ; + + # Mark versions older than minSupportedVersion as EOL. + minSupportedVersion = "4.17"; + + ## Pre-fetched Source Handling ## + + # Main attribute set for sources needed to build tools and firmwares. + # Each source takes in: + # * A `src` attribute, which contains the actual fetcher, + # * A 'patches` attribute, which is a list of patches that need to be applied in the source. + # * A `path` attribute, which is the destination of the source inside the Xen tree. + prefetchedSources = + lib.attrsets.optionalAttrs withInternalQEMU { + qemu = { + src = fetchgit { + url = "https://xenbits.xenproject.org/git-http/qemu-xen.git"; + fetchSubmodules = true; + inherit (pkg.qemu) rev hash; + }; + patches = lib.lists.optionals (lib.attrsets.hasAttrByPath [ "patches" ] pkg.qemu) pkg.qemu.patches; + path = "tools/qemu-xen"; + }; + } + // lib.attrsets.optionalAttrs withInternalSeaBIOS { + seaBIOS = { + src = fetchgit { + url = "https://xenbits.xenproject.org/git-http/seabios.git"; + inherit (pkg.seaBIOS) rev hash; + }; + patches = lib.lists.optionals (lib.attrsets.hasAttrByPath [ + "patches" + ] pkg.seaBIOS) pkg.seaBIOS.patches; + path = "tools/firmware/seabios-dir-remote"; + }; + } + // lib.attrsets.optionalAttrs withInternalOVMF { + ovmf = { + src = fetchgit { + url = "https://xenbits.xenproject.org/git-http/ovmf.git"; + fetchSubmodules = true; + inherit (pkg.ovmf) rev hash; + }; + patches = lib.lists.optionals (lib.attrsets.hasAttrByPath [ "patches" ] pkg.ovmf) pkg.ovmf.patches; + path = "tools/firmware/ovmf-dir-remote"; + }; + } + // lib.attrsets.optionalAttrs withInternalIPXE { + ipxe = { + src = fetchFromGitHub { + owner = "ipxe"; + repo = "ipxe"; + inherit (pkg.ipxe) rev hash; + }; + patches = lib.lists.optionals (lib.attrsets.hasAttrByPath [ "patches" ] pkg.ipxe) pkg.ipxe.patches; + path = "tools/firmware/etherboot/ipxe.git"; + }; + }; + + # Gets a list containing the names of the top-level attribute for each pre-fetched + # source, to be used in the map functions below. + prefetchedSourcesList = lib.attrsets.mapAttrsToList (name: value: name) prefetchedSources; + + # Produces bash commands that will copy each pre-fetched source. + copyPrefetchedSources = + # Finish the deployment by concatnating the list of commands together. + lib.strings.concatLines ( + # Iterate on each pre-fetched source. + builtins.map ( + source: + # Only produce a copy command if patches exist. + lib.strings.optionalString (lib.attrsets.hasAttrByPath [ "${source}" ] prefetchedSources) + # The actual copy command. `src` is always an absolute path to a fetcher output + # inside the /nix/store, and `path` is always a path relative to the Xen root. + # We need to `mkdir -p` the target directory first, and `chmod +w` the contents last, + # as the copied files will still be edited by the postPatchPhase. + '' + echo "Copying ${prefetchedSources.${source}.src} -> ${prefetchedSources.${source}.path}" + mkdir --parents ${prefetchedSources.${source}.path} + cp --recursive --no-target-directory ${prefetchedSources.${source}.src} ${ + prefetchedSources.${source}.path + } + chmod --recursive +w ${prefetchedSources.${source}.path} + '' + ) prefetchedSourcesList + ); + + # Produces strings with `patch` commands to be ran on postPatch. + # These deploy the .patch files for each pre-fetched source. + deployPrefetchedSourcesPatches = + # Finish the deployment by concatnating the list of commands together. + lib.strings.concatLines ( + # The double map functions create a list of lists. Flatten it so we can concatnate it. + lib.lists.flatten ( + # Iterate on each pre-fetched source. + builtins.map ( + source: + # Iterate on each available patch. + (builtins.map ( + patch: + # Only produce a patch command if patches exist. + lib.strings.optionalString + (lib.attrsets.hasAttrByPath [ + "${source}" + "patches" + ] prefetchedSources) + # The actual patch command. It changes directories to the correct source each time. + '' + echo "Applying patch ${patch} to ${source}." + patch --directory ${prefetchedSources.${source}.path} --strip 1 < ${patch} + '' + ) prefetchedSources.${source}.patches) + ) prefetchedSourcesList + ) + ); + + ## XSA Patches Description Builder ## + + # Sometimes patches are sourced through a path, like ./0000-xen.patch. + # This would break the patch attribute parser functions, so we normalise + # all patches sourced through paths by setting them to a { type = "path"; } + # attribute set. + # Patches from fetchpatch are already attribute sets. + normalisedPatchList = builtins.map ( + patch: + if !builtins.isAttrs patch then + if builtins.isPath patch then + { type = "path"; } + else + throw "xen/generic/default.nix: normalisedPatchList attempted to normalise something that is not a Path or an Attribute Set." + else + patch + ) pkg.xen.patches; + + # Simple counter for the number of attrsets (patches) in the patches list after normalisation. + numberOfPatches = lib.lists.count (patch: builtins.isAttrs patch) normalisedPatchList; + + # builtins.elemAt's index begins at 0, so we subtract 1 from the number of patches in order to + # produce the range that will be used in the following builtin.map calls. + availablePatchesToTry = lib.lists.range 0 (numberOfPatches - 1); + + # Takes in an attrByPath input, and outputs the attribute value for each patch in a list. + # If a patch does not have a given attribute, returns `null`. Use lib.lists.remove null + # to remove these junk values, if necessary. + retrievePatchAttributes = + attributeName: + builtins.map ( + x: lib.attrsets.attrByPath attributeName null (builtins.elemAt normalisedPatchList x) + ) availablePatchesToTry; + + # Produces a list of newline-separated strings that lists the vulnerabilities this + # Xen is NOT affected by, due to the applied Xen Security Advisory patches. This is + # then used in meta.longDescription, to let users know their Xen is patched against + # known vulnerabilities, as the package version isn't always the best indicator. + # + # Produces something like this: (one string for each XSA) + # * [Xen Security Advisory #1](https://xenbits.xenproject.org/xsa/advisory-1.html): **Title for XSA.** + # >Description of issue in XSA + #Extra lines + #are not indented, + #but markdown should be + #fine with it. + # Fixes: + # * [CVE-1999-00001](https://www.cve.org/CVERecord?id=CVE-1999-00001) + # * [CVE-1999-00002](https://www.cve.org/CVERecord?id=CVE-1999-00002) + # * [CVE-1999-00003](https://www.cve.org/CVERecord?id=CVE-1999-00003) + writeAdvisoryDescription = + if (lib.lists.remove null (retrievePatchAttributes [ "xsa" ]) != [ ]) then + lib.lists.zipListsWith (a: b: a + b) + (lib.lists.zipListsWith (a: b: a + "**" + b + ".**\n >") + (lib.lists.zipListsWith (a: b: "* [Xen Security Advisory #" + a + "](" + b + "): ") + (lib.lists.remove null (retrievePatchAttributes [ "xsa" ])) + ( + lib.lists.remove null (retrievePatchAttributes [ + "meta" + "homepage" + ]) + ) + ) + ( + lib.lists.remove null (retrievePatchAttributes [ + "meta" + "description" + ]) + ) + ) + ( + lib.lists.remove null (retrievePatchAttributes [ + "meta" + "longDescription" + ]) + ) + else + [ ]; + + ## Binutils Override ## + + # Originally, there were two versions of binutils being used: the standard one and + # this patched one. Unfortunately, that required patches to the Xen Makefiles, and + # quickly became too complex to maintain. The new solution is to simply build this + # efi-binutils derivation and use it for the whole build process, except if + # enableEFI is disabled; it'll then use `binutils`. + efiBinutils = binutils-unwrapped.overrideAttrs (oldAttrs: { + name = "efi-binutils"; + configureFlags = oldAttrs.configureFlags ++ [ "--enable-targets=x86_64-pep" ]; + doInstallCheck = false; # We get a spurious failure otherwise, due to a host/target mismatch. + meta.mainProgram = "ld"; # We only really care for `ld`. + }); +in + +stdenv.mkDerivation (finalAttrs: { + inherit pname version; + + outputs = [ + "out" # TODO: Split $out in $bin for binaries and $lib for libraries. + "man" # Manual pages for Xen userspace utilities. + "doc" # The full Xen documentation in HTML format. + "dev" # Development headers. + "boot" # xen.gz kernel, policy file if Flask is enabled, xen.efi if EFI is enabled. + # TODO: Python package to be in separate output/package. + ]; + + # Main Xen source. + src = fetchgit { + url = "https://xenbits.xenproject.org/git-http/xen.git"; + inherit (pkg.xen) rev hash; + }; + + patches = + # Generic Xen patches that apply to all Xen versions. + [ ./0000-xen-ipxe-src-generic.patch ] + # Gets the patches from the pkg.xen.patches attribute from the versioned files. + ++ lib.lists.optionals (lib.attrsets.hasAttrByPath [ "patches" ] pkg.xen) pkg.xen.patches; + + nativeBuildInputs = + [ + autoPatchelfHook + bison + cmake + flex + pandoc + pkg-config + python3Packages.setuptools + ] + ++ lib.lists.optionals withInternalQEMU [ + ninja + python3Packages.sphinx + ]; + buildInputs = + [ + # Xen + acpica-tools + bzip2 + dev86 + e2fsprogs.dev + libnl + libuuid + lzo + ncurses + perl + python3Packages.python + xz + yajl + zlib + zstd + + # oxenstored + ocamlPackages.findlib + ocamlPackages.ocaml + + # Python Fixes + python3Packages.wrapPython + ] + ++ lib.lists.optionals withInternalQEMU [ + glib + pixman + ] + ++ lib.lists.optional withInternalOVMF nasm + ++ lib.lists.optional withFlask checkpolicy + ++ lib.lists.optional (lib.strings.versionOlder version "4.19") systemdMinimal; + + configureFlags = + [ + "--enable-systemd" + "--disable-qemu-traditional" + ] + ++ lib.lists.optional (!withInternalQEMU) "--with-system-qemu" + + ++ lib.lists.optional withSeaBIOS "--with-system-seabios=${seabios}/share/seabios" + ++ lib.lists.optional (!withInternalSeaBIOS && !withSeaBIOS) "--disable-seabios" + + ++ lib.lists.optional withOVMF "--with-system-ovmf=${OVMF.firmware}" + ++ lib.lists.optional withInternalOVMF "--enable-ovmf" + + ++ lib.lists.optional withIPXE "--with-system-ipxe=${ipxe}" + ++ lib.lists.optional withInternalIPXE "--enable-ipxe" + + ++ lib.lists.optional withFlask "--enable-xsmpolicy"; + + makeFlags = + [ + "PREFIX=$(out)" + "CONFIG_DIR=/etc" + "XEN_SCRIPT_DIR=$(CONFIG_DIR)/xen/scripts" + "BASH_COMPLETION_DIR=$(PREFIX)/share/bash-completion/completions" + ] + ++ lib.lists.optionals withEFI [ + "EFI_VENDOR=${efiVendor}" + "INSTALL_EFI_STRIP=1" + "LD=${lib.meta.getExe efiBinutils}" # See the comment in the efiBinutils definition above. + ] + # These flags set the CONFIG_* options in /boot/xen.config + # and define if the default policy file is built. However, + # the Flask binaries always get compiled by default. + ++ lib.lists.optionals withFlask [ + "XSM_ENABLE=y" + "FLASK_ENABLE=y" + ] + ++ (pkg.xen.makeFlags or [ ]); + + buildFlags = [ + "xen" # Build the Xen Hypervisor. + "tools" # Build the userspace tools, such as `xl`. + "docs" # Build the Xen Documentation + ]; + + enableParallelBuilding = true; + + env.NIX_CFLAGS_COMPILE = builtins.toString ( + [ + "-Wno-error=maybe-uninitialized" + "-Wno-error=array-bounds" + ] + ++ lib.lists.optionals withInternalOVMF [ + "-Wno-error=format-security" + "-Wno-error=use-after-free" + "-Wno-error=vla-parameter" + "-Wno-error=dangling-pointer" + "-Wno-error=stringop-overflow" + ] + ); + + dontUseCmakeConfigure = true; + dontUseNinjaBuild = withInternalQEMU; + + prePatch = + # Xen's stubdoms, tools and firmwares need various sources that + # are usually fetched at build time using wget and git. We can't + # have that, so we pre-fetch them in the versioned Nix expressions, + # and produce fake wget and git executables for debugging purposes. + # + # We also produce a fake hostname executable to prevent spurious + # command-not-found errors during compilation. + # + # The snippet below produces executables that simply print in stdout + # what they were supposed to fetch, and exit gracefully. + '' + mkdir fake-bin + + cat > fake-bin/wget << EOF + #!${stdenv.shell} -e + echo ===== FAKE WGET: Not fetching \$* + [ -e \$3 ] + EOF + + cat > fake-bin/git << EOF + #!${stdenv.shell} + echo ===== FAKE GIT: Not cloning \$* + [ -e \$3 ] + EOF + + cat > fake-bin/hostname << EOF + #!${stdenv.shell} + echo ${efiVendor} + [ -e \$3 ] + EOF + + chmod +x fake-bin/* + export PATH=$PATH:$PWD/fake-bin + '' + + # Remove in-tree QEMU sources, as we either pre-fetch them through + # the versioned Nix expressions if withInternalQEMU is true, or we + # don't build QEMU at all if withInternalQEMU is false. + + '' + rm --recursive --force tools/qemu-xen tools/qemu-xen-traditional + '' + + # Call copyPrefetchedSources, which copies all aviable sources to their correct positions. + + '' + ${copyPrefetchedSources} + ''; + + postPatch = + # The following patch forces Xen to install xen.efi on $out/boot + # instead of $out/boot/efi/efi/nixos, as the latter directory + # would otherwise need to be created manually. This also creates + # a more consistent output for downstreams who override the + # efiVendor attribute above. + '' + substituteInPlace xen/Makefile \ + --replace-fail "\$(D)\$(EFI_MOUNTPOINT)/efi/\$(EFI_VENDOR)/\$(T)-\$(XEN_FULLVERSION).efi" \ + "\$(D)\$(BOOT_DIR)/\$(T)-\$(XEN_FULLVERSION).efi" + '' + + # The following patch fixes the call to /bin/mkdir on the + # launch_xenstore.sh helper script. + + '' + substituteInPlace tools/hotplug/Linux/launch-xenstore.in \ + --replace-fail "/bin/mkdir" "${coreutils}/bin/mkdir" + '' + + # The following expression fixes the paths called by Xen's systemd + # units, so we can use them in the NixOS module. + + '' + substituteInPlace \ + tools/hotplug/Linux/systemd/{xen-init-dom0,xen-qemu-dom0-disk-backend,xenconsoled,xendomains,xenstored}.service.in \ + --replace-fail /bin/grep ${gnugrep}/bin/grep + substituteInPlace \ + tools/hotplug/Linux/systemd/{xen-qemu-dom0-disk-backend,xenconsoled}.service.in \ + --replace-fail "/bin/mkdir" "${coreutils}/bin/mkdir" + '' + + # # Call deployPrefetchedSourcesPatches, which patches all pre-fetched sources with their specified patchlists. + + '' + ${deployPrefetchedSourcesPatches} + '' + # Patch shebangs for QEMU and OVMF build scripts. + + lib.strings.optionalString withInternalQEMU '' + patchShebangs --build tools/qemu-xen/scripts/tracetool.py + '' + + lib.strings.optionalString withInternalOVMF '' + patchShebangs --build tools/firmware/ovmf-dir-remote/OvmfPkg/build.sh tools/firmware/ovmf-dir-remote/BaseTools/BinWrappers/PosixLike/{AmlToC,BrotliCompress,build,GenFfs,GenFv,GenFw,GenSec,LzmaCompress,TianoCompress,Trim,VfrCompile} + ''; + + installPhase = + let + cpFlags = builtins.toString [ + "--preserve=mode,ownership,timestamps,link" + "--recursive" + "--verbose" + "--no-dereference" + ]; + in + # Run the preInstall tasks. + '' + runHook preInstall + '' + + # Create $out directories and copy build output. + + '' + mkdir --parents $out $out/share $boot + cp ${cpFlags} dist/install/nix/store/*/* $out/ + cp ${cpFlags} dist/install/etc $out + cp ${cpFlags} dist/install/boot $boot + '' + + # Run the postInstall tasks. + + '' + runHook postInstall + ''; + + postInstall = + # Wrap xencov_split, xenmon and xentrace_format. + '' + wrapPythonPrograms + '' + + # We also need to wrap pygrub, which lies in $out/libexec/xen/bin. + + '' + wrapPythonProgramsIn "$out/libexec/xen/bin" "$out $pythonPath" + '' + + # Fix shebangs in Xen's various scripts. + #TODO: Remove any and all usage of `sed` and replace these complicated magic runes with readable code. + + '' + shopt -s extglob + for i in $out/etc/xen/scripts/!(*.sh); do + sed --in-place "2s@^@export PATH=$out/bin:${scriptEnvPath}\n@" $i + done + ''; + + postFixup = + # Fix binaries in $out/libexec/xen/bin. + '' + addAutoPatchelfSearchPath $out/lib + autoPatchelf $out/libexec/xen/bin + '' + # Flask is particularly hard to disable. Even after + # setting the make flags to `n`, it still gets compiled. + # If withFlask is disabled, delete the extra binaries. + + lib.strings.optionalString (!withFlask) '' + rm -f $out/bin/flask-* + ''; + + passthru = { + efi = + if withEFI then "boot/xen-${version}.efi" else throw "This Xen was compiled without an EFI binary."; + flaskPolicy = + if withFlask then + "boot/xenpolicy-${version}" + else + throw "This Xen was compiled without FLASK support."; + qemu-system-i386 = + if withInternalQEMU then + "libexec/xen/bin/qemu-system-i386" + else + throw "This Xen was compiled without a built-in QEMU."; + # This test suite is very simple, as Xen's userspace + # utilities require the hypervisor to be booted. + tests = { + pkg-config = testers.hasPkgConfigModules { + package = finalAttrs.finalPackage; + moduleNames = [ + "xencall" + "xencontrol" + "xendevicemodel" + "xenevtchn" + "xenforeignmemory" + "xengnttab" + "xenguest" + "xenhypfs" + "xenlight" + "xenstat" + "xenstore" + "xentoolcore" + "xentoollog" + "xenvchan" + "xlutil" + ]; + }; + }; + }; + + meta = + if + !(lib.attrsets.hasAttrByPath [ + "meta" + ] versionDefinition) + then + { + inherit branch; + + # Short description for Xen. + description = + "Xen Project Hypervisor" + # The "and related components" addition is automatically hidden if said components aren't being built. + + lib.strings.optionalString (prefetchedSources != { }) " and related components" + # To alter the description inside the paranthesis, edit ./packages.nix. + + lib.strings.optionalString (lib.attrsets.hasAttrByPath [ + "meta" + "description" + ] packageDefinition) " (${packageDefinition.meta.description})"; + + # Long description for Xen. + longDescription = + # Starts with the longDescription from ./packages.nix. + (packageDefinition.meta.longDescription or "") + + lib.strings.optionalString (!withInternalQEMU) ( + "\nUse with `qemu_xen_${lib.strings.stringAsChars (x: if x == "." then "_" else x) branch}`" + + lib.strings.optionalString latest " or `qemu_xen`" + + ".\n" + ) + # Then, if any of the optional with* components are being built, add the "Includes:" string. + + + lib.strings.optionalString + ( + withInternalQEMU + || withInternalSeaBIOS + || withInternalOVMF + || withInternalIPXE + || withEFI + || withFlask + ) + ( + "\nIncludes:" + # Originally, this was a call for the complicated withPrefetchedSources. Since there aren't + # that many optional components, we just use lib.strings.optionalString, because it's simpler. + # Optional components that aren't being built are automatically hidden. + + lib.strings.optionalString withEFI "\n* `xen.efi`: The Xen Project's [EFI binary](https://xenbits.xenproject.org/docs/${branch}-testing/misc/efi.html), available on the `boot` output of this package." + + lib.strings.optionalString withFlask "\n* `xsm-flask`: The [FLASK Xen Security Module](https://wiki.xenproject.org/wiki/Xen_Security_Modules_:_XSM-FLASK). The `xenpolicy-${version}` file is available on the `boot` output of this package." + + lib.strings.optionalString withInternalQEMU "\n* `qemu-xen`: The Xen Project's mirror of [QEMU](https://www.qemu.org/)." + + lib.strings.optionalString withInternalSeaBIOS "\n* `seabios-xen`: The Xen Project's mirror of [SeaBIOS](https://www.seabios.org/SeaBIOS)." + + lib.strings.optionalString withInternalOVMF "\n* `ovmf-xen`: The Xen Project's mirror of [OVMF](https://github.com/tianocore/tianocore.github.io/wiki/OVMF)." + + lib.strings.optionalString withInternalIPXE "\n* `ipxe-xen`: The Xen Project's pinned version of [iPXE](https://ipxe.org/)." + ) + # Finally, we write a notice explaining which vulnerabilities this Xen is NOT vulnerable to. + # This will hopefully give users the peace of mind that their Xen is secure, without needing + # to search the source code for the XSA patches. + + lib.strings.optionalString (writeAdvisoryDescription != [ ]) ( + "\n\nThis Xen Project Hypervisor (${version}) has been patched against the following known security vulnerabilities:\n" + + lib.strings.removeSuffix "\n" (lib.strings.concatLines writeAdvisoryDescription) + ); + + homepage = "https://xenproject.org/"; + downloadPage = "https://downloads.xenproject.org/release/xen/${version}/"; + changelog = "https://wiki.xenproject.org/wiki/Xen_Project_${branch}_Release_Notes"; + + license = with lib.licenses; [ + # Documentation. + cc-by-40 + # Most of Xen is licensed under the GPL v2.0. + gpl2Only + # Xen Libraries and the `xl` command-line utility. + lgpl21Only + # Development headers in $dev/include. + mit + ]; + + # This automatically removes maintainers from EOL versions of Xen, so we aren't bothered about versions we don't explictly support. + maintainers = lib.lists.optionals (lib.strings.versionAtLeast version minSupportedVersion) lib.teams.xen.members; + knownVulnerabilities = lib.lists.optional (lib.strings.versionOlder version minSupportedVersion) "The Xen Project Hypervisor version ${version} is no longer supported by the Xen Project Security Team. See https://xenbits.xenproject.org/docs/unstable/support-matrix.html"; + + mainProgram = "xl"; + + # Evaluates to x86_64-linux. + platforms = lib.lists.intersectLists lib.platforms.linux lib.platforms.x86_64; + + } + else + versionDefinition.meta; +}) diff --git a/pkgs/applications/virtualization/xen/generic/patches.nix b/pkgs/applications/virtualization/xen/generic/patches.nix new file mode 100644 index 0000000000000..4bb58d5a42160 --- /dev/null +++ b/pkgs/applications/virtualization/xen/generic/patches.nix @@ -0,0 +1,159 @@ +# Patching Xen? Check the XSAs at https://xenbits.xen.org/xsa/ +# and try applying all the ones we haven't gotten around to +# yet, if any are necessary. Patches from other downstreams +# are also welcome if they fix important issues with vanilla Xen. + +{ lib, fetchpatch }: + +let + xsaPatch = + { + id, + title, + description, + type ? "xsa", + hash ? "", + cve ? null, + }: + (fetchpatch { + name = + "XSA-" + id + lib.strings.optionalString (cve != null) ("-" + builtins.concatStringsSep "+" cve); + url = "https://xenbits.xen.org/xsa/xsa${id}.patch"; + inherit hash; + passthru = { + xsa = id; + inherit type; + }; + meta = { + description = title; + longDescription = + description + + "\n" + + ( + if (cve == null) then + # Why the two spaces preceding these CVE messages? + # This is parsed by writeAdvisoryDescription in generic.nix, + # and doing this was easier than messing with lib.strings even more. + " _No CVE was assigned to this XSA._" + else + " Fixes:${ + lib.strings.concatMapStrings ( + x: "\n * [" + x + "](https://www.cve.org/CVERecord?id=" + x + ")" + ) cve + }" + ); + homepage = "https://xenbits.xenproject.org/xsa/advisory-${id}.html"; + }; + }); + qubesPatch = + { + name, + tag, + type ? "qubes", + hash ? "", + }: + (fetchpatch { + inherit name; + url = "https://raw.githubusercontent.com/QubesOS/qubes-vmm-xen/v${tag}/${name}.patch"; + inherit hash; + passthru.type = type; + }); +in +{ + # Example patches: + # + # "XSA_100" = xsaPatch { + # id = "100"; + # title = "Verbatim Title of XSA"; + # description = '' + # Verbatim description of XSA. + # ''; + # cve = [ "CVE-1999-0001" "CVE-1999-0002" ]; # Not all XSAs have CVEs. This attribute is optional. + # hash = "sha256-0000000000000000000000000000000000000000000000000000"; + # }; + # + # "QUBES_libxl-fix-all-issues" = qubesPatch { + # name = "1000-libxl-fix-all-issues"; + # tag = "4.20.0-1"; + # hash = "sha256-0000000000000000000000000000000000000000000000000000"; + # }; + + # Build reproducibility patches for Xen. + # Qubes OS has not updated them to later versions of Xen yet, + # but they appear to work on Xen 4.17.4 - 4.19.0. + QUBES_REPRODUCIBLE_BUILDS = [ + (qubesPatch { + name = "1100-Define-build-dates-time-based-on-SOURCE_DATE_EPOCH"; + tag = "4.17.4-5"; + hash = "sha256-OwKA9oPTwhRcSmiOb+PxzifbO/IG8IHWlvddFh/nP6s="; + }) + (qubesPatch { + name = "1101-docs-rename-DATE-to-PANDOC_REL_DATE-and-allow-to-spe"; + tag = "4.17.4-5"; + hash = "sha256-BUtYt0mM3bURVaGv4oDznzxx1Wo4sfOpGV5GB8qc5Ns="; + }) + (qubesPatch { + name = "1102-docs-xen-headers-use-alphabetical-sorting-for-incont"; + tag = "4.17.4-5"; + hash = "sha256-mQUp2w9lUb7KDq5MuPQjs6y7iuMDeXoZjDjlXfa5z44="; + }) + ]; + + # Xen Security Advisory #460: (4.16.6 - 4.19.0) + "XSA_460" = xsaPatch { + id = "460"; + title = "Error handling in x86 IOMMU identity mapping"; + description = '' + Certain PCI devices in a system might be assigned Reserved Memory + Regions (specified via Reserved Memory Region Reporting, "RMRR") for + Intel VT-d or Unity Mapping ranges for AMD-Vi. These are typically used + for platform tasks such as legacy USB emulation. + Since the precise purpose of these regions is unknown, once a device + associated with such a region is active, the mappings of these regions + need to remain continuouly accessible by the device. In the logic + establishing these mappings, error handling was flawed, resulting in + such mappings to potentially remain in place when they should have been + removed again. Respective guests would then gain access to memory + regions which they aren't supposed to have access to. + ''; + cve = [ "CVE-2024-31145" ]; + hash = "sha256-3q4nAP2xGEptX6BIpSlALOt2r0kjj1up5pF3xCFp+l0="; + }; + # Xen Security Advisory #461: (4.16.6 - 4.19.0) + "XSA_461" = xsaPatch { + id = "461"; + title = "PCI device pass-through with shared resources"; + description = '' + When multiple devices share resources and one of them is to be passed + through to a guest, security of the entire system and of respective + guests individually cannot really be guaranteed without knowing + internals of any of the involved guests. Therefore such a configuration + cannot really be security-supported, yet making that explicit was so far + missing. + ''; + cve = [ "CVE-2024-31146" ]; + hash = "sha256-JQWoqf47hy9WXNkVC/LgmjUhkxN0SBF6w8PF4aFZxhM="; + }; + # Xen Security Advisory #462: (4.16.6 - 4.19.0) + "XSA_462" = xsaPatch { + id = "462"; + title = "x86: Deadlock in vlapic_error()"; + description = '' + In x86's APIC (Advanced Programmable Interrupt Controller) architecture, + error conditions are reported in a status register. Furthermore, the OS + can opt to receive an interrupt when a new error occurs. + + It is possible to configure the error interrupt with an illegal vector, + which generates an error when an error interrupt is raised. + + This case causes Xen to recurse through vlapic_error(). The recursion + itself is bounded; errors accumulate in the the status register and only + generate an interrupt when a new status bit becomes set. + + However, the lock protecting this state in Xen will try to be taken + recursively, and deadlock. + ''; + cve = [ "CVE-2024-45817" ]; + hash = "sha256-01lzjaT2f69UfEdTUCkm92DDOmd+Mo8sNPZsHJfgJEM="; + }; +} diff --git a/pkgs/applications/virtualization/xen/packages.nix b/pkgs/applications/virtualization/xen/packages.nix index c55a719995c0b..fe759709770ff 100644 --- a/pkgs/applications/virtualization/xen/packages.nix +++ b/pkgs/applications/virtualization/xen/packages.nix @@ -1,58 +1,71 @@ -{ callPackage - +{ + python3Packages, + python311Packages, + callPackage, }: - -# TODO(@oxij) on new Xen version: generalize this to generate [vanilla slim -# light] for each ./<version>.nix. - -rec { - xen_4_15-vanilla = callPackage ./4.15.nix { +let + standard = { + # Broken with python 3.12+ when using internal QEMU due to https://github.com/NixOS/nixpkgs/issues/253751 + python3Packages = python311Packages; meta = { - description = "vanilla"; + description = "Standard"; longDescription = '' - Vanilla version of Xen. Uses forks of Qemu and Seabios bundled - with Xen. This gives vanilla experince, but wastes space and - build time: typical NixOS setup that runs lots of VMs will - build three different versions of Qemu when using this (two - forks and upstream). + Standard version of the Xen Project Hypervisor. Uses forks of QEMU, SeaBIOS, + OVMF and iPXE provided by the Xen Project. This provides the vanilla Xen + experience, but wastes space and build time. A typical NixOS setup that runs + lots of VMs will usually need to build two different versions of QEMU when using + this Xen derivation (one fork and upstream). ''; }; }; - - xen_4_15-slim = xen_4_15-vanilla.override { - withInternalQemu = false; - withInternalTraditionalQemu = true; - withInternalSeabios = false; - withSeabios = true; - + slim = { + inherit python3Packages; meta = { - description = "slim"; + description = "Without Internal Components"; longDescription = '' - Slimmed-down version of Xen that reuses nixpkgs packages as - much as possible. Different parts may get out of sync, but - this builds faster and uses less space than vanilla. Use with - `qemu_xen` from nixpkgs. + Slimmed-down version of the Xen Project Hypervisor that reuses nixpkgs packages + as much as possible. Instead of using the Xen Project forks for various internal + components, this version uses `seabios`, `ovmf` and `ipxe` from Nixpkgs. These + components may ocasionally get out of sync with the hypervisor itself, but this + builds faster and uses less space than the default derivation. ''; }; }; +in +# TODO: generalise this to automatically generate both Xen variants for each ./<version>/default.nix. +rec { + xen_4_19 = callPackage ./4.19/default.nix { + inherit (standard) meta python3Packages; + }; + xen_4_19-slim = xen_4_19.override { + withInternalQEMU = false; + withInternalSeaBIOS = false; + withInternalOVMF = false; + withInternalIPXE = false; + inherit (slim) meta python3Packages; + }; - xen_4_15-light = xen_4_15-vanilla.override { - withInternalQemu = false; - withInternalTraditionalQemu = false; - withInternalSeabios = false; - withSeabios = true; - - meta = { - description = "light"; - longDescription = '' - Slimmed-down version of Xen without `qemu-traditional` (you - don't need it if you don't know what it is). Use with - `qemu_xen-light` from nixpkgs. - ''; - }; + xen_4_18 = callPackage ./4.18/default.nix { + inherit (standard) meta python3Packages; + }; + xen_4_18-slim = xen_4_18.override { + withInternalQEMU = false; + withInternalSeaBIOS = false; + withInternalOVMF = false; + withInternalIPXE = false; + inherit (slim) meta python3Packages; }; - xen-vanilla = xen_4_15-vanilla; - xen-slim = xen_4_15-slim; - xen-light = xen_4_15-light; + xen_4_17 = callPackage ./4.17/default.nix { + inherit (standard) meta python3Packages; + }; + xen_4_17-slim = xen_4_17.override { + withInternalQEMU = false; + withInternalSeaBIOS = false; + withInternalOVMF = false; + withInternalIPXE = false; + inherit (slim) meta; + # Broken with python 3.12+ due to distutils missing. + python3Packages = python311Packages; + }; } diff --git a/pkgs/applications/virtualization/xen/update.sh b/pkgs/applications/virtualization/xen/update.sh new file mode 100755 index 0000000000000..e5012768b4e85 --- /dev/null +++ b/pkgs/applications/virtualization/xen/update.sh @@ -0,0 +1,202 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p gitMinimal curl gnupg nix-prefetch-git nixfmt-rfc-style +# shellcheck disable=SC2206,SC2207 shell=bash +set -o errexit +set -o pipefail +set -o nounset + +#TODO: Use `jq` instead of `sed`. +#TODO: Accept the small security drawback and make this script runnable by r-ryantm. + +# This script expects to be called in an interactive terminal somewhere inside Nixpkgs. +echo "Preparing..." +nixpkgs=$(git rev-parse --show-toplevel) +xenPath="$nixpkgs/pkgs/applications/virtualization/xen" +rm -rf /tmp/xenUpdateScript +mkdir /tmp/xenUpdateScript + +# Import and verify PGP key. +curl --silent --output /tmp/xenUpdateScript/xen.asc https://keys.openpgp.org/vks/v1/by-fingerprint/23E3222C145F4475FA8060A783FE14C957E82BD9 +gpg --homedir /tmp/xenUpdateScript/.gnupg --quiet --import /tmp/xenUpdateScript/xen.asc +fingerprint="$(gpg --homedir /tmp/xenUpdateScript/.gnupg --with-colons --fingerprint "pgp@xen.org" 2>/dev/null | awk -F: '/^pub:.*/ { getline; print $10}')" +echo -e "Please ascertain through multiple external sources that the \e[1;32mXen Project PGP Key Fingerprint\e[0m is indeed \e[1;33m$fingerprint\e[0m. If that is not the case, \e[1;31mexit immediately\e[0m." +read -r -p $'Press \e[1;34menter\e[0m to continue with a pre-filled expected fingerprint, or input an arbitrary PGP fingerprint to match with the key\'s fingerprint: ' userInputFingerprint +userInputFingerprint=${userInputFingerprint:-"23E3222C145F4475FA8060A783FE14C957E82BD9"} + +# Clone xen.git. +echo -e "Cloning \e[1;34mxen.git\e[0m..." +git clone --quiet https://xenbits.xenproject.org/git-http/xen.git /tmp/xenUpdateScript/xen +cd /tmp/xenUpdateScript/xen + +# Get list of versions and branches. +versionList="$(git tag --list "RELEASE-*" | sed s/RELEASE-//g | sed s/4.1.6.1//g | sort --numeric-sort)" +latestVersion=$(echo "$versionList" | tr ' ' '\n' | tail --lines=1) +branchList=($(echo "$versionList" | tr ' ' '\n' | sed s/\.[0-9]*$//g | awk '!seen[$0]++')) + +# Figure out which versions we're actually going to install. +minSupportedBranch="$(grep " minSupportedVersion = " "$xenPath"/generic/default.nix | sed s/' minSupportedVersion = "'//g | sed s/'";'//g)" +supportedBranches=($(for version in "${branchList[@]}"; do if [ "$(printf '%s\n' "$minSupportedBranch" "$version" | sort -V | head -n1)" = "$minSupportedBranch" ]; then echo "$version"; fi; done)) +supportedVersions=($(for version in "${supportedBranches[@]}"; do echo "$versionList" | tr ' ' '\n' | grep "$version" | tail --lines=1; done)) + +echo -e "\e[1mNOTE\e[0m: As we're also pre-fetching the submodules, QEMU and OVMF may take a very long time to fetch." + +# Main loop that installs every supportedVersion. +for version in "${supportedVersions[@]}"; do + echo -e "\n------------------------------------------------" + branch=${version/%.[0-9]/} + if [[ "$version" == "$latestVersion" ]]; then + latest=true + echo -e "\nFound \e[1;34mlatest\e[0m release: \e[1;32mXen $version\e[0m in branch \e[1;36m$branch\e[0m." + else + latest=false + echo -e "\nFound \e[1;33msecurity-supported\e[0m release: \e[1;32mXen $version\e[0m in branch \e[1;36m$branch\e[0m." + fi + + # Verify PGP key automatically. If the fingerprint matches what the user specified, or the default fingerprint, then we consider it trusted. + cd /tmp/xenUpdateScript/xen + if [[ "$fingerprint" = "$userInputFingerprint" ]]; then + echo "$fingerprint:6:" | gpg --homedir /tmp/xenUpdateScript/.gnupg --quiet --import-ownertrust + (git verify-tag RELEASE-"$version" 2>/dev/null && echo -e "\n\e[1;32mSuccessfully authenticated Xen $version.\e[0m") || (echo -e "\e[1;31merror:\e[0m Unable to verify tag \e[1;32mRELEASE-$version\e[0m.\n- It is possible that \e[1;33mthis script has broken\e[0m, the Xen Project has \e[1;33mcycled their PGP keys\e[0m, or a \e[1;31msupply chain attack is in progress\e[0m.\n\n\e[1;31mPlease update manually.\e[0m" && exit 1) + else + echo -e "\e[1;31merror:\e[0m Unable to verify \e[1;34mpgp@xen.org\e[0m's fingerprint.\n- It is possible that \e[1;33mthis script has broken\e[0m, the Xen Project has \e[1;33mcycled their PGP keys\e[0m, or an \e[1;31mimpersonation attack is in progress\e[0m.\n\n\e[1;31mPlease update manually.\e[0m" && exit 1 + fi + + git switch --quiet --detach RELEASE-"$version" + + # Originally we told people to go check the Makefile themselves. + echo -e -n "\nDetermining source versions from Xen Makefiles..." + qemuVersion="$(grep "QEMU_UPSTREAM_REVISION ?=" /tmp/xenUpdateScript/xen/Config.mk | sed s/"QEMU_UPSTREAM_REVISION ?= "//g)" + seaBIOSVersion="$(grep "SEABIOS_UPSTREAM_REVISION ?= rel-" /tmp/xenUpdateScript/xen/Config.mk | sed s/"SEABIOS_UPSTREAM_REVISION ?= "//g)" + ovmfVersion="$(grep "OVMF_UPSTREAM_REVISION ?=" /tmp/xenUpdateScript/xen/Config.mk | sed s/"OVMF_UPSTREAM_REVISION ?= "//g)" + miniOSVersion="$(grep "MINIOS_UPSTREAM_REVISION ?=" /tmp/xenUpdateScript/xen/Config.mk | sed s/"MINIOS_UPSTREAM_REVISION ?= "//g)" + ipxeVersion="$(grep "IPXE_GIT_TAG :=" /tmp/xenUpdateScript/xen/tools/firmware/etherboot/Makefile | sed s/"IPXE_GIT_TAG := "//g)" + echo "done!" + + # Use `nix-prefetch-git` to fetch `rev`s and `hash`es. + echo "Pre-fetching sources and determining hashes..." + echo -e -n " \e[1;32mXen\e[0m..." + fetchXen=$(nix-prefetch-git --url https://xenbits.xenproject.org/git-http/xen.git --rev RELEASE-"$version" --quiet) + finalVersion="$(echo "$fetchXen" | tr ', ' '\n ' | grep -ie rev | sed s/' "rev": "'//g | sed s/'"'//g)" + hash="$(echo "$fetchXen" | tr ', ' '\n ' | grep -ie hash | sed s/' "hash": "'//g | sed s/'"'//g)" + echo "done!" + echo -e -n " \e[1;36mQEMU\e[0m..." + fetchQEMU=$(nix-prefetch-git --url https://xenbits.xenproject.org/git-http/qemu-xen.git --rev "$qemuVersion" --quiet --fetch-submodules) + finalQEMUVersion="$(echo "$fetchQEMU" | tr ', ' '\n ' | grep -ie rev | sed s/' "rev": "'//g | sed s/'"'//g)" + qemuHash="$(echo "$fetchQEMU" | tr ', ' '\n ' | grep -ie hash | sed s/' "hash": "'//g | sed s/'"'//g)" + echo "done!" + echo -e -n " \e[1;36mSeaBIOS\e[0m..." + fetchSeaBIOS=$(nix-prefetch-git --url https://xenbits.xenproject.org/git-http/seabios.git --rev "$seaBIOSVersion" --quiet) + finalSeaBIOSVersion="$(echo "$fetchSeaBIOS" | tr ', ' '\n ' | grep -ie rev | sed s/' "rev": "'//g | sed s/'"'//g)" + seaBIOSHash="$(echo "$fetchSeaBIOS" | tr ', ' '\n ' | grep -ie hash | sed s/' "hash": "'//g | sed s/'"'//g)" + echo "done!" + echo -e -n " \e[1;36mOVMF\e[0m..." + ovmfHash="$(nix-prefetch-git --url https://xenbits.xenproject.org/git-http/ovmf.git --rev "$ovmfVersion" --quiet --fetch-submodules | grep -ie hash | sed s/' "hash": "'//g | sed s/'",'//g)" + echo "done!" + echo -e -n " \e[1;36miPXE\e[0m..." + ipxeHash="$(nix-prefetch-git --url https://github.com/ipxe/ipxe.git --rev "$ipxeVersion" --quiet | grep -ie hash | sed s/' "hash": "'//g | sed s/'",'//g)" + echo "done!" + + cd "$xenPath" + + echo -e "\nFound the following revisions:\n \e[1;32mXen\e[0m: \e[1;33m$finalVersion\e[0m (\e[1;33m$hash\e[0m)\n \e[1;36mQEMU\e[0m: \e[1;33m$finalQEMUVersion\e[0m (\e[1;33m$qemuHash\e[0m)\n \e[1;36mSeaBIOS\e[0m: \e[1;33m$finalSeaBIOSVersion\e[0m (\e[1;33m$seaBIOSHash\e[0m)\n \e[1;36mOVMF\e[0m: \e[1;33m$ovmfVersion\e[0m (\e[1;33m$ovmfHash\e[0m)\n \e[1;36miPXE\e[0m: \e[1;33m$ipxeVersion\e[0m (\e[1;33m$ipxeHash\e[0m)" + + # Set OCaml Version + read -r -p $'\nEnter the corresponding \e[1;33mOCaml\e[0m version for \e[1;32mXen '"$version"$'\e[0m, or press \e[1;34menter\e[0m for the default value of \e[1;32m4_14\e[0m: ' ocamlVersion + ocamlVersion=${ocamlVersion:-"4_14"} + + mkdir -p "$branch"/ + rm -f "$branch"/default.nix + + # Prepare any .patch files that are called by Nix through a path value. + echo -e "\nPlease add any required patches to version \e[1;32m$branch\e[0m in \e[1;34m$branch/\e[0m, and press \e[1;34menter\e[0m when done." + read -r -p $'Remember to follow the naming specification as defined in \e[1;34m./README.md\e[0m.' + + echo -e "\nDiscovering patches..." + discoveredXenPatches="$(find "$branch"/ -type f -name "[0-9][0-9][0-9][0-9]-xen-*-$branch.patch" -printf "./%f ")" + discoveredQEMUPatches="$(find "$branch"/ -type f -name "[0-9][0-9][0-9][0-9]-qemu-*-$branch.patch" -printf "./%f ")" + discoveredSeaBIOSPatches="$(find "$branch"/ -type f -name "[0-9][0-9][0-9][0-9]-seabios-*-$branch.patch" -printf "./%f ")" + discoveredOVMFPatches="$(find "$branch"/ -type f -name "[0-9][0-9][0-9][0-9]-ovmf-*-$branch.patch" -printf "./%f ")" + discoveredIPXEPatches="$(find "$branch"/ -type f -name "[0-9][0-9][0-9][0-9]-ipxe-*-$branch.patch" -printf "./%f ")" + + discoveredXenPatchesEcho=${discoveredXenPatches:-"\e[1;31mNone found!\e[0m"} + discoveredQEMUPatchesEcho=${discoveredQEMUPatches:-"\e[1;31mNone found!\e[0m"} + discoveredSeaBIOSPatchesEcho=${discoveredSeaBIOSPatches:-"\e[1;31mNone found!\e[0m"} + discoveredOVMFPatchesEcho=${discoveredOVMFPatches:-"\e[1;31mNone found!\e[0m"} + discoveredIPXEPatchesEcho=${discoveredIPXEPatches:-"\e[1;31mNone found!\e[0m"} + + echo -e "Found the following patches:\n \e[1;32mXen\e[0m: \e[1;33m$discoveredXenPatchesEcho\e[0m\n \e[1;36mQEMU\e[0m: \e[1;33m$discoveredQEMUPatchesEcho\e[0m\n \e[1;36mSeaBIOS\e[0m: \e[1;33m$discoveredSeaBIOSPatchesEcho\e[0m\n \e[1;36mOVMF\e[0m: \e[1;33m$discoveredOVMFPatchesEcho\e[0m\n \e[1;36miPXE\e[0m: \e[1;33m$discoveredIPXEPatchesEcho\e[0m" + + # Prepare patches that are called in ./patches.nix. + defaultPatchListInit=("QUBES_REPRODUCIBLE_BUILDS" "XSA_460" "XSA_461" ) + read -r -a defaultPatchList -p $'\nWould you like to override the \e[1;34mupstreamPatches\e[0m list for \e[1;32mXen '"$version"$'\e[0m? If no, press \e[1;34menter\e[0m to use the default patch list: [ \e[1;34m'"${defaultPatchListInit[*]}"$' \e[0m]: ' + defaultPatchList=(${defaultPatchList[@]:-${defaultPatchListInit[@]}}) + upstreamPatches=${defaultPatchList[*]} + + # Write and format default.nix file. + echo -e -n "\nWriting updated \e[1;34mversionDefinition\e[0m..." + cat >"$branch"/default.nix <<EOF +{ + lib, + fetchpatch, + callPackage, + ocaml-ng, + ... +}@genericDefinition: + +let + upstreamPatches = import ../generic/patches.nix { + inherit lib; + inherit fetchpatch; + }; + + upstreamPatchList = lib.lists.flatten (with upstreamPatches; [ + $upstreamPatches + ]); +in + +callPackage (import ../generic/default.nix { + pname = "xen"; + branch = "$branch"; + version = "$version"; + latest = $latest; + pkg = { + xen = { + rev = "$finalVersion"; + hash = "$hash"; + patches = [ $discoveredXenPatches ] ++ upstreamPatchList; + }; + qemu = { + rev = "$finalQEMUVersion"; + hash = "$qemuHash"; + patches = [ $discoveredQEMUPatches ]; + }; + seaBIOS = { + rev = "$finalSeaBIOSVersion"; + hash = "$seaBIOSHash"; + patches = [ $discoveredSeaBIOSPatches ]; + }; + ovmf = { + rev = "$ovmfVersion"; + hash = "$ovmfHash"; + patches = [ $discoveredOVMFPatches ]; + }; + ipxe = { + rev = "$ipxeVersion"; + hash = "$ipxeHash"; + patches = [ $discoveredIPXEPatches ]; + }; + }; +}) ({ ocamlPackages = ocaml-ng.ocamlPackages_$ocamlVersion; } // genericDefinition) +EOF +echo done! + + echo -n "Formatting..." + nixfmt "$branch"/default.nix + echo done! + + echo -e "\n\e[1;32mSuccessfully produced $branch/default.nix.\e[0m" +done + +echo -e -n "\nCleaning up..." +rm -rf /tmp/xenUpdateScript +echo done! diff --git a/pkgs/applications/virtualization/xen/xsa-patches.nix b/pkgs/applications/virtualization/xen/xsa-patches.nix deleted file mode 100644 index d789697a55991..0000000000000 --- a/pkgs/applications/virtualization/xen/xsa-patches.nix +++ /dev/null @@ -1,493 +0,0 @@ -{ fetchpatch }: - -let - xsaPatch = { name , sha256 }: (fetchpatch { - url = "https://xenbits.xen.org/xsa/xsa${name}.patch"; - inherit sha256; - }); -in { - # 4.5 - XSA_190 = (xsaPatch { - name = "190-4.5"; - sha256 = "0f8pw38kkxky89ny3ic5h26v9zsjj9id89lygx896zc3w1klafqm"; - }); - - # 4.5 - XSA_191 = (xsaPatch { - name = "191-4.6"; - sha256 = "1wl1ndli8rflmc44pkp8cw4642gi8z7j7gipac8mmlavmn3wdqhg"; - }); - - # 4.5 - XSA_192 = (xsaPatch { - name = "192-4.5"; - sha256 = "0m8cv0xqvx5pdk7fcmaw2vv43xhl62plyx33xqj48y66x5z9lxpm"; - }); - - # 4.5 - XSA_193 = (xsaPatch { - name = "193-4.5"; - sha256 = "0k9mykhrpm4rbjkhv067f6s05lqmgnldcyb3vi8cl0ndlyh66lvr"; - }); - - # 4.5 - XSA_195 = (xsaPatch { - name = "195"; - sha256 = "0m0g953qnjy2knd9qnkdagpvkkgjbk3ydgajia6kzs499dyqpdl7"; - }); - - # 4.5 - XSA_196 = [ - (xsaPatch { - name = "196-0001-x86-emul-Correct-the-IDT-entry-calculation-in-inject"; - sha256 = "0z53nzrjvc745y26z1qc8jlg3blxp7brawvji1hx3s74n346ssl6"; - }) - (xsaPatch { - name = "196-0002-x86-svm-Fix-injection-of-software-interrupts"; - sha256 = "11cqvr5jn2s92wsshpilx9qnfczrd9hnyb5aim6qwmz3fq3hrrkz"; - }) - ]; - - # 4.5 - XSA_198 = (xsaPatch { - name = "198"; - sha256 = "0d1nndn4p520c9xa87ixnyks3mrvzcri7c702d6mm22m8ansx6d9"; - }); - - # 4.5 - XSA_200 = (xsaPatch { - name = "200-4.6"; - sha256 = "0k918ja83470iz5k4vqi15293zjvz2dipdhgc9sy9rrhg4mqncl7"; - }); - - # 4.5 - XSA_202_45 = (xsaPatch { - name = "202-4.6"; - sha256 = "0nnznkrvfbbc8z64dr9wvbdijd4qbpc0wz2j5vpmx6b32sm7932f"; - }); - - # 4.5 - XSA_204_45 = (xsaPatch { - name = "204-4.5"; - sha256 = "083z9pbdz3f532fnzg7n2d5wzv6rmqc0f4mvc3mnmkd0rzqw8vcp"; - }); - - # 4.5 - XSA_206_45 = [ - (xsaPatch { - name = "206-4.5/0001-xenstored-apply-a-write-transaction-rate-limit"; - sha256 = "07vsm8mlbxh2s01ny2xywnm1bqhhxas1az31fzwb6f1g14vkzwm4"; - }) - (xsaPatch { - name = "206-4.5/0002-xenstored-Log-when-the-write-transaction-rate-limit-"; - sha256 = "17pnvxjmhny22abwwivacfig4vfsy5bqlki07z236whc2y7yzbsx"; - }) - (xsaPatch { - name = "206-4.5/0003-oxenstored-refactor-putting-response-on-wire"; - sha256 = "0xf566yicnisliy82cydb2s9k27l3bxc43qgmv6yr2ir3ixxlw5s"; - }) - (xsaPatch { - name = "206-4.5/0004-oxenstored-remove-some-unused-parameters"; - sha256 = "16cqx9i0w4w3x06qqdk9rbw4z96yhm0kbc32j40spfgxl82d1zlk"; - }) - (xsaPatch { - name = "206-4.5/0005-oxenstored-refactor-request-processing"; - sha256 = "1g2hzlv7w03sqnifbzda85mwlz3bw37rk80l248180sv3k7k6bgv"; - }) - (xsaPatch { - name = "206-4.5/0006-oxenstored-keep-track-of-each-transaction-s-operatio"; - sha256 = "0n65yfxvpfd4cz95dpbwqj3nablyzq5g7a0klvi2y9zybhch9cmg"; - }) - (xsaPatch { - name = "206-4.5/0007-oxenstored-move-functions-that-process-simple-operat"; - sha256 = "0qllvbc9rnj7jhhlslxxs35gvphvih0ywz52jszj4irm23ka5vnz"; - }) - (xsaPatch { - name = "206-4.5/0008-oxenstored-replay-transaction-upon-conflict"; - sha256 = "0lixkxjfzciy9l0f980cmkr8mcsx14c289kg0mn5w1cscg0hb46g"; - }) - (xsaPatch { - name = "206-4.5/0009-oxenstored-log-request-and-response-during-transacti"; - sha256 = "09ph8ddcx0k7rndd6hx6kszxh3fhxnvdjsq13p97n996xrpl1x7b"; - }) - (xsaPatch { - name = "206-4.5/0010-oxenstored-allow-compilation-prior-to-OCaml-3.12.0"; - sha256 = "1y0m7sqdz89z2vs4dfr45cyvxxas323rxar0xdvvvivgkgxawvxj"; - }) - (xsaPatch { - name = "206-4.5/0011-oxenstored-comments-explaining-some-variables"; - sha256 = "1d3n0y9syya4kaavrvqn01d3wsn85gmw7qrbylkclznqgkwdsr2p"; - }) - (xsaPatch { - name = "206-4.5/0012-oxenstored-handling-of-domain-conflict-credit"; - sha256 = "12zgid5y9vrhhpk2syxp0x01lzzr6447fa76n6rjmzi1xgdzpaf8"; - }) - (xsaPatch { - name = "206-4.5/0013-oxenstored-ignore-domains-with-no-conflict-credit"; - sha256 = "0v3g9pm60w6qi360hdqjcw838s0qcyywz9qpl8gzmhrg7a35avxl"; - }) - (xsaPatch { - name = "206-4.5/0014-oxenstored-add-transaction-info-relevant-to-history-"; - sha256 = "0vv3w0h5xh554i9v2vbc8gzm8wabjf2vzya3dyv5yzvly6ygv0sb"; - }) - (xsaPatch { - name = "206-4.5/0015-oxenstored-support-commit-history-tracking"; - sha256 = "1iv2vy29g437vj73x9p33rdcr5ln2q0kx1b3pgxq202ghbc1x1zj"; - }) - (xsaPatch { - name = "206-4.5/0016-oxenstored-only-record-operations-with-side-effects-"; - sha256 = "1cjkw5ganbg6lq78qsg0igjqvbgph3j349faxgk1p5d6nr492zzy"; - }) - (xsaPatch { - name = "206-4.5/0017-oxenstored-discard-old-commit-history-on-txn-end"; - sha256 = "0lm15lq77403qqwpwcqvxlzgirp6ffh301any9g401hs98f9y4ps"; - }) - (xsaPatch { - name = "206-4.5/0018-oxenstored-track-commit-history"; - sha256 = "1jh92p6vjhkm3bn5vz260npvsjji63g2imsxflxs4f3r69sz1nkd"; - }) - (xsaPatch { - name = "206-4.5/0019-oxenstored-blame-the-connection-that-caused-a-transa"; - sha256 = "17k264pk0fvsamj85578msgpx97mw63nmj0j9v5hbj4bgfazvj4h"; - }) - (xsaPatch { - name = "206-4.5/0020-oxenstored-allow-self-conflicts"; - sha256 = "15z3rd49q0pa72si0s8wjsy2zvbm613d0hjswp4ikc6nzsnsh4qy"; - }) - (xsaPatch { - name = "206-4.5/0021-oxenstored-do-not-commit-read-only-transactions"; - sha256 = "04wpzazhv90lg3228z5i6vnh1z4lzd08z0d0fvc4br6pkd0w4va8"; - }) - (xsaPatch { - name = "206-4.5/0022-oxenstored-don-t-wake-to-issue-no-conflict-credit"; - sha256 = "1shbrn0w68rlywcc633zcgykfccck1a77igmg8ydzwjsbwxsmsjy"; - }) - (xsaPatch { - name = "206-4.5/0023-oxenstored-transaction-conflicts-improve-logging"; - sha256 = "1086y268yh8047k1vxnxs2nhp6izp7lfmq01f1gq5n7jiy1sxcq7"; - }) - (xsaPatch { - name = "206-4.5/0024-oxenstored-trim-history-in-the-frequent_ops-function"; - sha256 = "014zs6i4gzrimn814k5i7gz66vbb0adkzr2qyai7i4fxc9h9r7w8"; - }) - ]; - - # 4.5 - 4.8 - XSA_207 = (xsaPatch { - name = "207"; - sha256 = "0wdlhijmw9mdj6a82pyw1rwwiz605dwzjc392zr3fpb2jklrvibc"; - }); - - # 4.5 - 4.8 - XSA_212 = (xsaPatch { - name = "212"; - sha256 = "1ggjbbym5irq534a3zc86md9jg8imlpc9wx8xsadb9akgjrr1r8d"; - }); - - # 4.5 - XSA_213_45 = (xsaPatch { - name = "213-4.5"; - sha256 = "1vnqf89ydacr5bq3d6z2r33xb2sn5vsd934rncyc28ybc9rvj6wm"; - }); - - # 4.5 - 4.8 - XSA_214 = (xsaPatch { - name = "214"; - sha256 = "0qapzx63z0yl84phnpnglpkxp6b9sy1y7cilhwjhxyigpfnm2rrk"; - }); - - # 4.5 - XSA_215 = (xsaPatch { - name = "215"; - sha256 = "0sv8ccc5xp09f1w1gj5a9n3mlsdsh96sdb1n560vh31f4kkd61xs"; - }); - - # 4.5 - XSA_217_45 = (xsaPatch { - name = "217-4.5"; - sha256 = "067pgsfrb9py2dhm1pk9g8f6fs40vyfrcxhj8c12vzamb6svzmn4"; - }); - - # 4.5 - XSA_218_45 = [ - (xsaPatch { - name = "218-4.5/0001-IOMMU-handle-IOMMU-mapping-and-unmapping-failures"; - sha256 = "00y6j3yjxw0igpldsavikmhlxw711k2jsj1qx0s05w2k608gadkq"; - }) - (xsaPatch { - name = "218-4.5/0002-gnttab-fix-unmap-pin-accounting-race"; - sha256 = "0qbbfnnjlpdcd29mzmacfmi859k92c213l91q7w1rg2k6pzx928k"; - }) - (xsaPatch { - name = "218-4.5/0003-gnttab-Avoid-potential-double-put-of-maptrack-entry"; - sha256 = "1cndzvyhf41mk4my6vh3bk9jvh2y4gpmqdhvl9zhxhmppszslqkc"; - }) - (xsaPatch { - name = "218-4.5/0004-gnttab-correct-maptrack-table-accesses"; - sha256 = "02zpb0ffigijacqvyyjylwx3qpgibwslrka7mbxwnclf4s9c03a2"; - }) - ]; - - # 4.5 - XSA_219_45 = (xsaPatch { - name = "219-4.5"; - sha256 = "003msr5vhsc66scmdpgn0lp3p01g4zfw5vj86y5lw9ajkbaywdsm"; - }); - - # 4.5 - XSA_220_45 = (xsaPatch { - name = "220-4.5"; - sha256 = "1dj9nn6lzxlipjb3nb7b9m4337fl6yn2bd7ap1lqrjn8h9zkk1pp"; - }); - - # 4.5 - 4.8 - XSA_221 = (xsaPatch { - name = "221"; - sha256 = "1mcr1nqgxyjrkywdg7qhlfwgz7vj2if1dhic425vgd41p9cdgl26"; - }); - - # 4.5 - XSA_222_45 = [ - (xsaPatch { - name = "222-1-4.6"; - sha256 = "1g4dqm5qx4wqlv1520jpfiscph95vllcp4gqp1rdfailk8xi0mcf"; - }) - (xsaPatch { - name = "222-2-4.5"; - sha256 = "1hw8rhc7q4v309f4w11gxfsn5x1pirvxkg7s4kr711fnmvp9hkzd"; - }) - ]; - - # 4.5 - 4.8 - XSA_223 = (xsaPatch { - name = "223"; - sha256 = "0803gjgcbq9vaz2mq0v5finf1fq8iik1g4hqsjqhjxvspn8l70c5"; - }); - - # 4.5 - XSA_224_45 = [ - (xsaPatch { - name = "224-4.5/0001-gnttab-Fix-handling-of-dev_bus_addr-during-unmap"; - sha256 = "1aislj66ss4cb3v2bh12mrqsyrf288d4h54rj94jjq7h1hnycw7h"; - }) - (xsaPatch { - name = "224-4.5/0002-gnttab-never-create-host-mapping-unless-asked-to"; - sha256 = "1j6fgm1ccb07gg0mi5qmdr0vqwwc3n12z433g1jrija2gbk1x8aq"; - }) - (xsaPatch { - name = "224-4.5/0003-gnttab-correct-logic-to-get-page-references-during-m"; - sha256 = "166kmicwx280fjqjvgigbmhabjksa0hhvqx5h4v6kjlcjpmxqy08"; - }) - (xsaPatch { - name = "224-4.5/0004-gnttab-__gnttab_unmap_common_complete-is-all-or-noth"; - sha256 = "1skc0yj1zsn8xgyq1y57bdc0scvvlmd0ynrjwwf1zkias1wlilav"; - }) - ]; - - # 4.5 - XSA_226_45 = [ - (xsaPatch { - name = "226-4.5/0001-gnttab-dont-use-possibly-unbounded-tail-calls"; - sha256 = "1hx47ppv5q33cw4dwp82lgvv4fp28gx7rxijw0iaczsv8bvb8vcg"; - }) - (xsaPatch { - name = "226-4.5/0002-gnttab-fix-transitive-grant-handling"; - sha256 = "1gzp8m2zfihwlk71c3lqyd0ajh9h11pvkhzhw0mawckxy0qksvlc"; - }) - ]; - - # 4.5 - XSA_227_45 = (xsaPatch { - name = "227-4.5"; - sha256 = "1qfjfisgqm4x98qw54x2qrvgjnvvzizx9p1pjhcnsps9q6g1y3x8"; - }); - - # 4.5 - 4.9 - XSA_230 = (xsaPatch { - name = "230"; - sha256 = "10x0j7wmzkrwycs1ng89fgjzvzh8vsdd4c5nb68b3j1azdx4ld83"; - }); - - # 4.5 - XSA_231_45 = (xsaPatch { - name = "231-4.5"; - sha256 = "06gwx2f1lg51dfk2b4zxp7wv9c4pxdi87pg2asvmxqc78ir7l5s6"; - }); - - # 4.5 - 4.9 - XSA_232 = (xsaPatch { - name = "232"; - sha256 = "0n6irjpmraa3hbxxm64a1cplc6y6g07x7v2fmlpvn70ql3fs0220"; - }); - - # 4.5 - 4.9 - XSA_233 = (xsaPatch { - name = "233"; - sha256 = "1w3m8349cqav56av63w6jzvlsv4jw5rimwvskr9pq2rcbk2dx8kf"; - }); - - # 4.5 - XSA_234_45 = (xsaPatch { - name = "234-4.5"; - sha256 = "1ji6hbgybb4gbgz5l5fis9midnvjbddzam8d63377rkzdyb3yz9f"; - }); - - # 4.5 - XSA_235_45 = (xsaPatch { - name = "235-4.5"; - sha256 = "0hhgnql2gji111020z4wiyzg23wqs6ymanb67rg11p4qad1fp3ff"; - }); - - # 4.5 - XSA_236_45 = (xsaPatch { - name = "236-4.5"; - sha256 = "0hcla86x81wykssd2967gblp7fzx61290p4ls4v0hcyxdg2bs2yz"; - }); - - # 4.5 - XSA_237_45 = [ - (xsaPatch { - name = "237-4.5/0001-x86-dont-allow-MSI-pIRQ-mapping-on-unowned-device"; - sha256 = "0hjxs20jhls4i0iph45a0qpw4znkm04gv74jmwhw84gy4hrhzq3b"; - }) - (xsaPatch { - name = "237-4.5/0002-x86-enforce-proper-privilege-when-mapping-pIRQ-s"; - sha256 = "0ki8nmbc2g1l9wnqsph45a2k4c6dk5s7jvdlxg3zznyiyxjcv8yn"; - }) - (xsaPatch { - name = "237-4.5/0003-x86-MSI-disallow-redundant-enabling"; - sha256 = "1hdz83qrjaqnihz8ji186dypxiblbfpgyb01j9m5alhk4whjqvp1"; - }) - (xsaPatch { - name = "237-4.5/0004-x86-IRQ-conditionally-preserve-irq-pirq-mapping-on-error"; - sha256 = "0csdfn9kzn1k94pg3fcwsgqw14wcd4myi1jkcq5alj1fmkhw4wmk"; - }) - (xsaPatch { - name = "237-4.5/0005-x86-FLASK-fix-unmap-domain-IRQ-XSM-hook"; - sha256 = "14b73rkvbkd1a2gh9kp0zrvv2d3kfwkiv24fg9agh4hrf2w3nx7y"; - }) - ]; - - # 4.5 - XSA_238_45 = (xsaPatch { - name = "238-4.5"; - sha256 = "1x2fg5vfv5jc084h5gjm6fq0nxjpzvi96px3sqzz4pvsvy4y4i1z"; - }); - - # 4.5 - XSA_239_45 = (xsaPatch { - name = "239-4.5"; - sha256 = "06bi8q3973yajxsdj7pcqarvb56q2gisxdiy0cpbyffbmpkfv3h6"; - }); - - # 4.5 - XSA_240_45 = [ - (xsaPatch { - name = "240-4.5/0001-x86-limit-linear-page-table-use-to-a-single-level"; - sha256 = "0pmf10mbnmb88y7mly8s2l0j88cg0ayhkcnmj1zbjrkjmpccv395"; - }) - (xsaPatch { - name = "240-4.5/0002-x86-mm-Disable-PV-linear-pagetables-by-default"; - sha256 = "19f096ra3xndvzkjjasx73p2g25hfkm905px0p3yakwll0qzd029"; - }) - ]; - - # 4.5 - 4.8 - XSA_241 = (xsaPatch { - name = "241-4.8"; - sha256 = "16zb75kzs98f4mdxhbyczk5mbh9dvn6j3yhfafki34x1dfdnq4pj"; - }); - - # 4.5 - 4.9 - XSA_242 = (xsaPatch { - name = "242-4.9"; - sha256 = "0yx3x0i2wybsm7lzdffxa2mm866bjl4ipbb9vipnw77dyg705zpr"; - }); - - # 4.5 - XSA_243_45 = [ - (xsaPatch { - name = "243-4.6-1"; - sha256 = "1cqanpyysa7px0j645z4jw9yqsvv6cbh7yq1b86ap134axfifcan"; - }) - (xsaPatch { - name = "243-4.5-2"; - sha256 = "0wbcgw4m0nzm2902jnda2020l7bd5adkq8j5myi1zmsfzbq03hwn"; - }) - ]; - - # 4.5 - XSA_244_45 = (xsaPatch { - name = "244-4.5"; - sha256 = "05ci3vdl1ywfjpzcvsy1k52whxjk8pxzj7dh3r94yqasr56i5v2l"; - }); - - # 4.5 - 4.9 - XSA_245 = [ - (xsaPatch { - name = "245/0001-xen-page_alloc-Cover-memory-unreserved-after-boot-in"; - sha256 = "12brsgbn7xwakalsn10afykgqmx119mqg6vjj3v2b1pnmf4ss0w8"; - }) - (xsaPatch { - name = "245/0002-xen-arm-Correctly-report-the-memory-region-in-the-du"; - sha256 = "1k6z5r7wnrswsczn2j3a1mc4nvxqm4ydj6n6rvgqizk2pszdkqg8"; - }) - ]; - - # 4.5 - 4.7 - XSA_246_45 = [ - (xsaPatch { - name = "246-4.7"; - sha256 = "13rad4k8z3bq15d67dhgy96kdbrjiq9sy8px0jskbpx9ygjdahkn"; - }) - ]; - - # 4.5 - XSA_247_45 = [ - (xsaPatch { - name = "247-4.5/0001-p2m-Always-check-to-see-if-removing-a-p2m-entry-actu"; - sha256 = "0h1mp5s9si8aw2gipds317f27h9pi7bgnhj0bcmw11p0ch98sg1m"; - }) - (xsaPatch { - name = "247-4.5/0002-p2m-Check-return-value-of-p2m_set_entry-when-decreas"; - sha256 = "0vjjybxbcm4xl26wbqvcqfiyvvlayswm4f98i1fr5a9abmljn5sb"; - }) - ]; - - # 4.5 - XSA_248_45 = [ - (xsaPatch { - name = "248-4.5"; - sha256 = "0csxg6h492ddsa210b45av28iqf7cn2dfdqk4zx10zwf1pv2shyn"; - }) - ]; - - # 4.5 .. 4.9 - XSA_249 = [ - (xsaPatch { - name = "249"; - sha256 = "0v6ngzqhkz7yv4n83xlpxfbkr2qyg5b1cds7ikkinm86hiqy6agl"; - }) - ]; - - # 4.5 - XSA_250_45 = [ - (xsaPatch { - name = "250-4.5"; - sha256 = "0pqldl6qnl834gvfp90z247q9xcjh3835s2iffnajz7jhjb2145d"; - }) - ]; - - # 4.5 - XSA_251_45 = [ - (xsaPatch { - name = "251-4.5"; - sha256 = "0lc94cx271z09r0mhxaypyd9d4740051p28idf5calx5228dqjgm"; - }) - ]; - - XSA_386 = (xsaPatch { - name = "386"; - sha256 = "sha256-pAuLgt3sDeL73NSDqZCWxRGZk1tWaYlDbh7cUcJ4s+w="; - }); -} diff --git a/pkgs/applications/virtualization/xhyve/default.nix b/pkgs/applications/virtualization/xhyve/default.nix index 2d66f8351411f..a9119975a7ae3 100644 --- a/pkgs/applications/virtualization/xhyve/default.nix +++ b/pkgs/applications/virtualization/xhyve/default.nix @@ -34,6 +34,6 @@ stdenv.mkDerivation rec { license = licenses.bsd2; platforms = platforms.darwin; # never built on aarch64-darwin since first introduction in nixpkgs - broken = stdenv.isDarwin && stdenv.isAarch64; + broken = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64; }; } diff --git a/pkgs/applications/virtualization/youki/default.nix b/pkgs/applications/virtualization/youki/default.nix deleted file mode 100644 index d63fa87238e45..0000000000000 --- a/pkgs/applications/virtualization/youki/default.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ lib -, rustPlatform -, fetchFromGitHub -, pkg-config -, installShellFiles -, dbus -, libseccomp -, systemd -}: - -rustPlatform.buildRustPackage rec { - pname = "youki"; - version = "0.3.2"; - - src = fetchFromGitHub { - owner = "containers"; - repo = pname; - rev = "v${version}"; - hash = "sha256-/cc+gHnakxC446MxErvgCDvc1gMWNi45h6fZ1Cd1Pj0="; - }; - - cargoPatches = [ - ./fix-cargo-lock.patch - ]; - - nativeBuildInputs = [ pkg-config installShellFiles ]; - - buildInputs = [ dbus libseccomp systemd ]; - - postInstall = '' - installShellCompletion --cmd youki \ - --bash <($out/bin/youki completion -s bash) \ - --fish <($out/bin/youki completion -s fish) \ - --zsh <($out/bin/youki completion -s zsh) - ''; - - cargoBuildFlags = [ "-p" "youki" ]; - cargoTestFlags = [ "-p" "youki" ]; - - cargoHash = "sha256-PKn448fOCnyMC42NtQnLt8kvZIBautsq4Fw/bRvwmpw="; - - meta = with lib; { - description = "Container runtime written in Rust"; - homepage = "https://containers.github.io/youki/"; - changelog = "https://github.com/containers/youki/releases/tag/v${version}"; - license = licenses.asl20; - maintainers = []; - platforms = platforms.linux; - mainProgram = "youki"; - }; -} diff --git a/pkgs/applications/virtualization/youki/fix-cargo-lock.patch b/pkgs/applications/virtualization/youki/fix-cargo-lock.patch deleted file mode 100644 index 07f44a9e91a4c..0000000000000 --- a/pkgs/applications/virtualization/youki/fix-cargo-lock.patch +++ /dev/null @@ -1,40 +0,0 @@ -diff --git a/Cargo.lock b/Cargo.lock -index cfef78c0..7cad3faa 100644 ---- a/Cargo.lock -+++ b/Cargo.lock -@@ -1879,7 +1879,7 @@ checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7" - - [[package]] - name = "libcgroups" --version = "0.3.1" -+version = "0.3.2" - dependencies = [ - "anyhow", - "clap", -@@ -1904,7 +1904,7 @@ dependencies = [ - - [[package]] - name = "libcontainer" --version = "0.3.1" -+version = "0.3.2" - dependencies = [ - "anyhow", - "bitflags 2.4.2", -@@ -1947,7 +1947,7 @@ dependencies = [ - - [[package]] - name = "liboci-cli" --version = "0.3.1" -+version = "0.3.2" - dependencies = [ - "clap", - ] -@@ -5712,7 +5712,7 @@ dependencies = [ - - [[package]] - name = "youki" --version = "0.3.1" -+version = "0.3.2" - dependencies = [ - "anyhow", - "caps", |