From 71cb937c51f49554692593d76ccdccf41db42e56 Mon Sep 17 00:00:00 2001 From: "Adam C. Stephens" Date: Sat, 29 Nov 2025 10:45:45 -0500 Subject: [PATCH] multipass: remove unmaintained package and module --- nixos/modules/module-list.nix | 1 - nixos/modules/rename.nix | 3 + nixos/modules/virtualisation/multipass.nix | 66 --------- nixos/tests/all-tests.nix | 1 - nixos/tests/multipass.nix | 39 ----- .../by-name/mu/multipass/cmake_no_fetch.patch | 13 -- pkgs/by-name/mu/multipass/cmake_warning.patch | 14 -- pkgs/by-name/mu/multipass/gui.nix | 83 ----------- .../mu/multipass/lxd_socket_path.patch | 13 -- pkgs/by-name/mu/multipass/multipassd.nix | 139 ------------------ pkgs/by-name/mu/multipass/package.nix | 61 -------- pkgs/by-name/mu/multipass/pubspec.lock.json | 1 - .../mu/multipass/test_unreachable_call.patch | 12 -- pkgs/by-name/mu/multipass/update.sh | 61 -------- .../mu/multipass/vcpkg_no_install.patch | 14 -- pkgs/top-level/aliases.nix | 1 + 16 files changed, 4 insertions(+), 518 deletions(-) delete mode 100644 nixos/modules/virtualisation/multipass.nix delete mode 100644 nixos/tests/multipass.nix delete mode 100644 pkgs/by-name/mu/multipass/cmake_no_fetch.patch delete mode 100644 pkgs/by-name/mu/multipass/cmake_warning.patch delete mode 100644 pkgs/by-name/mu/multipass/gui.nix delete mode 100644 pkgs/by-name/mu/multipass/lxd_socket_path.patch delete mode 100644 pkgs/by-name/mu/multipass/multipassd.nix delete mode 100644 pkgs/by-name/mu/multipass/package.nix delete mode 100644 pkgs/by-name/mu/multipass/pubspec.lock.json delete mode 100644 pkgs/by-name/mu/multipass/test_unreachable_call.patch delete mode 100755 pkgs/by-name/mu/multipass/update.sh delete mode 100644 pkgs/by-name/mu/multipass/vcpkg_no_install.patch diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index cc94d98c4120..50323f0dd888 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -1945,7 +1945,6 @@ ./virtualisation/libvirtd.nix ./virtualisation/lxc.nix ./virtualisation/lxcfs.nix - ./virtualisation/multipass.nix ./virtualisation/nixos-containers.nix ./virtualisation/oci-containers.nix ./virtualisation/oci-options.nix diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix index f0733111a995..5733f0b4bf9c 100644 --- a/nixos/modules/rename.nix +++ b/nixos/modules/rename.nix @@ -441,6 +441,9 @@ in to periodically collect random data from the device and mix it into the kernel's RNG. '') + (mkRemovedOptionModule [ "virtualisation" "multipass" ] '' + virtualisation.multipass has been removed since it was unmaintained in nixpkgs + '') # Do NOT add any option renames here, see top of the file ]; } diff --git a/nixos/modules/virtualisation/multipass.nix b/nixos/modules/virtualisation/multipass.nix deleted file mode 100644 index 9613010f0f93..000000000000 --- a/nixos/modules/virtualisation/multipass.nix +++ /dev/null @@ -1,66 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: - -let - cfg = config.virtualisation.multipass; -in -{ - options = { - virtualisation.multipass = { - enable = lib.mkEnableOption "Multipass, a simple manager for virtualised Ubuntu instances"; - - logLevel = lib.mkOption { - type = lib.types.enum [ - "error" - "warning" - "info" - "debug" - "trace" - ]; - default = "debug"; - description = '' - The logging verbosity of the multipassd binary. - ''; - }; - - package = lib.mkPackageOption pkgs "multipass" { }; - }; - }; - - config = lib.mkIf cfg.enable { - environment.systemPackages = [ cfg.package ]; - - systemd.services.multipass = { - description = "Multipass orchestrates virtual Ubuntu instances."; - - wantedBy = [ "multi-user.target" ]; - wants = [ "network-online.target" ]; - after = [ "network-online.target" ]; - - environment = { - "XDG_DATA_HOME" = "/var/lib/multipass/data"; - "XDG_CACHE_HOME" = "/var/lib/multipass/cache"; - "XDG_CONFIG_HOME" = "/var/lib/multipass/config"; - }; - - serviceConfig = { - ExecStart = "${cfg.package}/bin/multipassd --logger platform --verbosity ${cfg.logLevel}"; - SyslogIdentifier = "multipassd"; - Restart = "on-failure"; - TimeoutStopSec = 300; - Type = "simple"; - - WorkingDirectory = "/var/lib/multipass"; - - StateDirectory = "multipass"; - StateDirectoryMode = "0750"; - CacheDirectory = "multipass"; - CacheDirectoryMode = "0750"; - }; - }; - }; -} diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 2dbe012709bf..9902d3e7e686 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -983,7 +983,6 @@ in mpd = runTest ./mpd.nix; mpv = runTest ./mpv.nix; mtp = runTest ./mtp.nix; - multipass = runTest ./multipass.nix; mumble = runTest ./mumble.nix; munge = runTest ./munge.nix; munin = runTest ./munin.nix; diff --git a/nixos/tests/multipass.nix b/nixos/tests/multipass.nix deleted file mode 100644 index f5151f4acbde..000000000000 --- a/nixos/tests/multipass.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ pkgs, lib, ... }: - -let - multipass-image = import ../release.nix { - configuration = { - # Building documentation makes the test unnecessarily take a longer time: - documentation.enable = lib.mkForce false; - }; - }; - -in -{ - name = "multipass"; - - meta.maintainers = [ ]; - - nodes.machine = - { lib, ... }: - { - virtualisation = { - cores = 1; - memorySize = 1024; - diskSize = 4096; - - multipass.enable = true; - }; - }; - - testScript = '' - machine.wait_for_unit("sockets.target") - machine.wait_for_unit("multipass.service") - machine.wait_for_file("/var/lib/multipass/data/multipassd/network/multipass_subnet") - - # Wait for Multipass to settle - machine.sleep(1) - - machine.succeed("multipass list") - ''; -} diff --git a/pkgs/by-name/mu/multipass/cmake_no_fetch.patch b/pkgs/by-name/mu/multipass/cmake_no_fetch.patch deleted file mode 100644 index 6981a0dd33f7..000000000000 --- a/pkgs/by-name/mu/multipass/cmake_no_fetch.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt -index 52bd407f..a1100112 100644 ---- a/tests/CMakeLists.txt -+++ b/tests/CMakeLists.txt -@@ -28,7 +28,7 @@ FetchContent_Declare(googletest - ) - set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) - set(INSTALL_GTEST OFF CACHE BOOL "") --FetchContent_MakeAvailable(googletest) -+# FetchContent_MakeAvailable(googletest) - - add_executable(multipass_tests - blueprint_test_lambdas.cpp diff --git a/pkgs/by-name/mu/multipass/cmake_warning.patch b/pkgs/by-name/mu/multipass/cmake_warning.patch deleted file mode 100644 index 846cba0690fb..000000000000 --- a/pkgs/by-name/mu/multipass/cmake_warning.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/src/cert/CMakeLists.txt b/src/cert/CMakeLists.txt -index d44a0b09..de440f24 100644 ---- a/src/cert/CMakeLists.txt -+++ b/src/cert/CMakeLists.txt -@@ -22,7 +22,7 @@ add_library(cert STATIC - target_include_directories(cert PRIVATE - ${OPENSSL_INCLUDE_DIR}) - --foreach(flag -Wno-nested-anon-types -Wno-gnu -Wno-pedantic -Wno-ignored-qualifiers) -+foreach(flag -Wno-nested-anon-types -Wno-gnu -Wno-pedantic -Wno-ignored-qualifiers -Wno-ignored-attributes) - check_cxx_compiler_flag(${flag} SUPPORTED) - if(SUPPORTED) - target_compile_options(cert PRIVATE ${flag}) - diff --git a/pkgs/by-name/mu/multipass/gui.nix b/pkgs/by-name/mu/multipass/gui.nix deleted file mode 100644 index eacb8962aa7b..000000000000 --- a/pkgs/by-name/mu/multipass/gui.nix +++ /dev/null @@ -1,83 +0,0 @@ -{ - commonMeta, - multipass_src, - multipassd, - version, - - autoPatchelfHook, - flutter332, - gtkmm3, - keybinder3, - lib, - libayatana-appindicator, - libnotify, - protobuf, - protoc-gen-dart, - qt6, -}: -flutter332.buildFlutterApplication { - inherit version; - pname = "multipass-gui"; - src = multipass_src; - - sourceRoot = "${multipass_src.name}/src/client/gui"; - - pubspecLock = lib.importJSON ./pubspec.lock.json; - - gitHashes = { - dartssh2 = "sha256-9XrxxOamy0uS7kUz6mwWwp4yIBHLX/GSoyxMk/Wwa+4="; - hotkey_manager_linux = "sha256-aO0h94YZvgV/ggVupNw8GjyZsnXrq3qTHRDtuhNv3oI="; - tray_menu = "sha256-TAlRW7VkZWAoHAVlrPeDqS3BsqhQTyCekYQ2b4AEqjU="; - window_size = "sha256-71PqQzf+qY23hTJvcm0Oye8tng3Asr42E2vfF1nBmVA="; - xterm = "sha256-h8vIonTPUVnNqZPk/A4ZV7EYCMyM0rrErL9ZOMe4ZBE="; - }; - - buildInputs = [ - gtkmm3 - keybinder3 - libayatana-appindicator - libnotify - qt6.qtbase - qt6.qtwayland - ]; - - nativeBuildInputs = [ - autoPatchelfHook - protobuf - protoc-gen-dart - qt6.wrapQtAppsHook - ]; - - preBuild = '' - # Temporary fix which can be removed in the next release. - # Already addressed upstream, but part of a larger patch - # that did not trivially apply. - substituteInPlace lib/main.dart --replace-fail 'TabBarTheme(' 'TabBarThemeData(' - - mkdir -p lib/generated - - # Generate the Dart gRPC code for the Multipass GUI. - protoc \ - --plugin=protoc-gen-dart=${lib.getExe protoc-gen-dart} \ - --dart_out=grpc:lib/generated \ - -I ../../rpc \ - ../../rpc/multipass.proto \ - google/protobuf/timestamp.proto - ''; - - runtimeDependencies = [ multipassd ]; - - postFixup = '' - mv $out/bin/multipass_gui $out/bin/multipass.gui - - install -Dm444 $out/app/multipass-gui/data/flutter_assets/assets/icon.png \ - $out/share/icons/hicolor/256x256/apps/multipass.gui.png - - cp $out/share/applications/multipass.gui.autostart.desktop \ - $out/share/applications/multipass.gui.desktop - ''; - - meta = commonMeta // { - description = "Flutter frontend application for managing Ubuntu VMs"; - }; -} diff --git a/pkgs/by-name/mu/multipass/lxd_socket_path.patch b/pkgs/by-name/mu/multipass/lxd_socket_path.patch deleted file mode 100644 index e23e8f72dcd7..000000000000 --- a/pkgs/by-name/mu/multipass/lxd_socket_path.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/platform/backends/lxd/lxd_request.h b/src/platform/backends/lxd/lxd_request.h -index 4b5e8840..5e673ad7 100644 ---- a/src/platform/backends/lxd/lxd_request.h -+++ b/src/platform/backends/lxd/lxd_request.h -@@ -27,7 +27,7 @@ - - namespace multipass - { --const QUrl lxd_socket_url{"unix:///var/snap/lxd/common/lxd/unix.socket@1.0"}; -+const QUrl lxd_socket_url{"unix:///var/lib/lxd/unix.socket@1.0"}; - const QString lxd_project_name{"multipass"}; - - class NetworkAccessManager; diff --git a/pkgs/by-name/mu/multipass/multipassd.nix b/pkgs/by-name/mu/multipass/multipassd.nix deleted file mode 100644 index a2b6fece2e09..000000000000 --- a/pkgs/by-name/mu/multipass/multipassd.nix +++ /dev/null @@ -1,139 +0,0 @@ -{ - commonMeta, - multipass_src, - version, - - cmake, - dnsmasq, - fetchFromGitHub, - fmt, - git, - grpc, - gtest, - iproute2, - iptables, - lib, - libapparmor, - libvirt, - libxml2, - openssl, - OVMF, - pkg-config, - poco, - protobuf, - qemu-utils, - qemu, - qt6, - slang, - stdenv, - xterm, -}: - -stdenv.mkDerivation { - inherit version; - pname = "multipassd"; - src = multipass_src; - - patches = [ - # Multipass is usually only delivered as a snap package on Linux, and it expects that - # the LXD backend will also be delivered via a snap - in which cases the LXD socket - # is available at '/var/snap/lxd/...'. Here we patch to ensure that Multipass uses the - # LXD socket location on NixOS in '/var/lib/...' - ./lxd_socket_path.patch - # The upstream cmake file attempts to fetch googletest using FetchContent, which fails - # in the Nix build environment. This patch disables the fetch in favour of providing - # the googletest library from nixpkgs. - ./cmake_no_fetch.patch - # As of Multipass 1.14.0, the upstream started using vcpkg for grabbing C++ dependencies, - # which doesn't work in the nix build environment. This patch reverts that change, in favour - # of providing those dependencies manually in this derivation. - ./vcpkg_no_install.patch - # The compiler flags used in nixpkgs surface an error in the test suite where an - # unreachable path was not annotated as such - this patch adds the annotation to ensure - # that the test suite passes in the nix build process. - ./test_unreachable_call.patch - ]; - - postPatch = '' - # Make sure the version is reported correctly in the compiled binary. - substituteInPlace ./CMakeLists.txt \ - --replace-fail "determine_version(MULTIPASS_VERSION)" "" \ - --replace-fail 'set(MULTIPASS_VERSION ''${MULTIPASS_VERSION})' 'set(MULTIPASS_VERSION "v${version}")' - - # Don't build the GUI .desktop file, do that in the gui derivation instead - substituteInPlace ./CMakeLists.txt --replace-fail "add_subdirectory(data)" "" - - # Don't build/use vcpkg - rm -rf 3rd-party/vcpkg - - # Patch the patch of the OVMF binaries to use paths from the nix store. - substituteInPlace ./src/platform/backends/qemu/linux/qemu_platform_detail_linux.cpp \ - --replace-fail "OVMF.fd" "${OVMF.fd}/FV/OVMF.fd" \ - --replace-fail "QEMU_EFI.fd" "${OVMF.fd}/FV/QEMU_EFI.fd" - - # Configure CMake to use gtest from the nix store since we disabled fetching from the internet. - cat >> tests/CMakeLists.txt <<'EOF' - add_library(gtest INTERFACE) - target_include_directories(gtest INTERFACE ${gtest.dev}/include) - target_link_libraries(gtest INTERFACE ${gtest}/lib/libgtest.so ''${CMAKE_THREAD_LIBS_INIT}) - add_dependencies(gtest GMock) - - add_library(gtest_main INTERFACE) - target_include_directories(gtest_main INTERFACE ${gtest.dev}/include) - target_link_libraries(gtest_main INTERFACE ${gtest}/lib/libgtest_main.so gtest) - - add_library(gmock INTERFACE) - target_include_directories(gmock INTERFACE ${gtest.dev}/include) - target_link_libraries(gmock INTERFACE ${gtest}/lib/libgmock.so gtest) - - add_library(gmock_main INTERFACE) - target_include_directories(gmock_main INTERFACE ${gtest.dev}/include) - target_link_libraries(gmock_main INTERFACE ${gtest}/lib/libgmock_main.so gmock gtest_main) - EOF - ''; - - # We'll build the flutter application separately using buildFlutterApplication - cmakeFlags = [ "-DMULTIPASS_ENABLE_FLUTTER_GUI=false" ]; - - buildInputs = [ - fmt - grpc - gtest - libapparmor - libvirt - libxml2 - openssl - poco.dev - protobuf - qt6.qtbase - qt6.qtwayland - ]; - - nativeBuildInputs = [ - cmake - git - pkg-config - qt6.wrapQtAppsHook - slang - ]; - - nativeCheckInputs = [ gtest ]; - - postInstall = '' - wrapProgram $out/bin/multipassd --prefix PATH : ${ - lib.makeBinPath [ - dnsmasq - iproute2 - iptables - OVMF.fd - qemu - qemu-utils - xterm - ] - } - ''; - - meta = commonMeta // { - description = "Backend server & client for managing on-demand Ubuntu VMs"; - }; -} diff --git a/pkgs/by-name/mu/multipass/package.nix b/pkgs/by-name/mu/multipass/package.nix deleted file mode 100644 index 527b9964101b..000000000000 --- a/pkgs/by-name/mu/multipass/package.nix +++ /dev/null @@ -1,61 +0,0 @@ -{ - callPackage, - fetchFromGitHub, - lib, - nixosTests, - stdenv, - symlinkJoin, -}: - -let - name = "multipass"; - version = "1.16.1"; - - multipass_src = fetchFromGitHub { - owner = "canonical"; - repo = "multipass"; - rev = "refs/tags/v${version}"; - hash = "sha256-DryVXuyAdjk+KhJZYqGh/r1H50rwM16vJ9igLtftgDY="; - fetchSubmodules = true; - }; - - commonMeta = { - homepage = "https://multipass.run"; - license = lib.licenses.gpl3Plus; - maintainers = [ ]; - platforms = [ "x86_64-linux" ]; - }; - - multipassd = callPackage ./multipassd.nix { - inherit commonMeta multipass_src version; - }; - - multipass-gui = callPackage ./gui.nix { - inherit - commonMeta - multipass_src - multipassd - version - ; - }; -in -symlinkJoin { - inherit version; - pname = name; - - paths = [ - multipassd - multipass-gui - ]; - - passthru = { - tests = lib.optionalAttrs stdenv.hostPlatform.isLinux { - inherit (nixosTests) multipass; - }; - updateScript = ./update.sh; - }; - - meta = commonMeta // { - description = "Ubuntu VMs on demand for any workstation"; - }; -} diff --git a/pkgs/by-name/mu/multipass/pubspec.lock.json b/pkgs/by-name/mu/multipass/pubspec.lock.json deleted file mode 100644 index 86e75668ed87..000000000000 --- a/pkgs/by-name/mu/multipass/pubspec.lock.json +++ /dev/null @@ -1 +0,0 @@ -{"packages":{"args":{"dependency":"transitive","description":{"name":"args","sha256":"d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04","url":"https://pub.dev"},"source":"hosted","version":"2.7.0"},"asn1lib":{"dependency":"transitive","description":{"name":"asn1lib","sha256":"9a8f69025044eb466b9b60ef3bc3ac99b4dc6c158ae9c56d25eeccf5bc56d024","url":"https://pub.dev"},"source":"hosted","version":"1.6.5"},"async":{"dependency":"direct main","description":{"name":"async","sha256":"758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb","url":"https://pub.dev"},"source":"hosted","version":"2.13.0"},"basics":{"dependency":"direct main","description":{"name":"basics","sha256":"41ff8aded84ae174d1df5cce0bcac3ab9070caac9f7da35fd2cc638dfee6163f","url":"https://pub.dev"},"source":"hosted","version":"0.10.0"},"boolean_selector":{"dependency":"transitive","description":{"name":"boolean_selector","sha256":"8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea","url":"https://pub.dev"},"source":"hosted","version":"2.1.2"},"built_collection":{"dependency":"direct main","description":{"name":"built_collection","sha256":"376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100","url":"https://pub.dev"},"source":"hosted","version":"5.1.1"},"characters":{"dependency":"transitive","description":{"name":"characters","sha256":"f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803","url":"https://pub.dev"},"source":"hosted","version":"1.4.0"},"clock":{"dependency":"transitive","description":{"name":"clock","sha256":"fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b","url":"https://pub.dev"},"source":"hosted","version":"1.1.2"},"collection":{"dependency":"direct main","description":{"name":"collection","sha256":"2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76","url":"https://pub.dev"},"source":"hosted","version":"1.19.1"},"convert":{"dependency":"transitive","description":{"name":"convert","sha256":"b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68","url":"https://pub.dev"},"source":"hosted","version":"3.1.2"},"cross_file":{"dependency":"transitive","description":{"name":"cross_file","sha256":"7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670","url":"https://pub.dev"},"source":"hosted","version":"0.3.4+2"},"crypto":{"dependency":"transitive","description":{"name":"crypto","sha256":"1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855","url":"https://pub.dev"},"source":"hosted","version":"3.0.6"},"dartssh2":{"dependency":"direct main","description":{"path":".","ref":"2.12.0+mp","resolved-ref":"1d924a068e4a4fa8ca51706192f91221a392144a","url":"https://github.com/canonical/dartssh2.git"},"source":"git","version":"2.12.0"},"equatable":{"dependency":"transitive","description":{"name":"equatable","sha256":"567c64b3cb4cf82397aac55f4f0cbd3ca20d77c6c03bedbc4ceaddc08904aef7","url":"https://pub.dev"},"source":"hosted","version":"2.0.7"},"extended_text":{"dependency":"direct main","description":{"name":"extended_text","sha256":"d8f4a6e2676505b54dc0d5f5e8de9020667b402e9c1b3a8b030a83e568c99654","url":"https://pub.dev"},"source":"hosted","version":"15.0.2"},"extended_text_library":{"dependency":"transitive","description":{"name":"extended_text_library","sha256":"13d99f8a10ead472d5e2cf4770d3d047203fe5054b152e9eb5dc692a71befbba","url":"https://pub.dev"},"source":"hosted","version":"12.0.1"},"ffi":{"dependency":"direct main","description":{"name":"ffi","sha256":"289279317b4b16eb2bb7e271abccd4bf84ec9bdcbe999e278a94b804f5630418","url":"https://pub.dev"},"source":"hosted","version":"2.1.4"},"file":{"dependency":"transitive","description":{"name":"file","sha256":"a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4","url":"https://pub.dev"},"source":"hosted","version":"7.0.1"},"file_selector":{"dependency":"direct main","description":{"name":"file_selector","sha256":"5019692b593455127794d5718304ff1ae15447dea286cdda9f0db2a796a1b828","url":"https://pub.dev"},"source":"hosted","version":"1.0.3"},"file_selector_android":{"dependency":"transitive","description":{"name":"file_selector_android","sha256":"6bba3d590ee9462758879741abc132a19133600dd31832f55627442f1ebd7b54","url":"https://pub.dev"},"source":"hosted","version":"0.5.1+14"},"file_selector_ios":{"dependency":"transitive","description":{"name":"file_selector_ios","sha256":"94b98ad950b8d40d96fee8fa88640c2e4bd8afcdd4817993bd04e20310f45420","url":"https://pub.dev"},"source":"hosted","version":"0.5.3+1"},"file_selector_linux":{"dependency":"transitive","description":{"name":"file_selector_linux","sha256":"54cbbd957e1156d29548c7d9b9ec0c0ebb6de0a90452198683a7d23aed617a33","url":"https://pub.dev"},"source":"hosted","version":"0.9.3+2"},"file_selector_macos":{"dependency":"transitive","description":{"name":"file_selector_macos","sha256":"8c9250b2bd2d8d4268e39c82543bacbaca0fda7d29e0728c3c4bbb7c820fd711","url":"https://pub.dev"},"source":"hosted","version":"0.9.4+3"},"file_selector_platform_interface":{"dependency":"transitive","description":{"name":"file_selector_platform_interface","sha256":"a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b","url":"https://pub.dev"},"source":"hosted","version":"2.6.2"},"file_selector_web":{"dependency":"transitive","description":{"name":"file_selector_web","sha256":"c4c0ea4224d97a60a7067eca0c8fd419e708ff830e0c83b11a48faf566cec3e7","url":"https://pub.dev"},"source":"hosted","version":"0.9.4+2"},"file_selector_windows":{"dependency":"transitive","description":{"name":"file_selector_windows","sha256":"320fcfb6f33caa90f0b58380489fc5ac05d99ee94b61aa96ec2bff0ba81d3c2b","url":"https://pub.dev"},"source":"hosted","version":"0.9.3+4"},"fixnum":{"dependency":"transitive","description":{"name":"fixnum","sha256":"b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be","url":"https://pub.dev"},"source":"hosted","version":"1.1.1"},"fl_chart":{"dependency":"direct main","description":{"name":"fl_chart","sha256":"577aeac8ca414c25333334d7c4bb246775234c0e44b38b10a82b559dd4d764e7","url":"https://pub.dev"},"source":"hosted","version":"1.0.0"},"flutter":{"dependency":"direct main","description":"flutter","source":"sdk","version":"0.0.0"},"flutter_lints":{"dependency":"direct dev","description":{"name":"flutter_lints","sha256":"3105dc8492f6183fb076ccf1f351ac3d60564bff92e20bfc4af9cc1651f4e7e1","url":"https://pub.dev"},"source":"hosted","version":"6.0.0"},"flutter_riverpod":{"dependency":"direct main","description":{"name":"flutter_riverpod","sha256":"9532ee6db4a943a1ed8383072a2e3eeda041db5657cdf6d2acecf3c21ecbe7e1","url":"https://pub.dev"},"source":"hosted","version":"2.6.1"},"flutter_svg":{"dependency":"direct main","description":{"name":"flutter_svg","sha256":"cd57f7969b4679317c17af6fd16ee233c1e60a82ed209d8a475c54fd6fd6f845","url":"https://pub.dev"},"source":"hosted","version":"2.2.0"},"flutter_web_plugins":{"dependency":"transitive","description":"flutter","source":"sdk","version":"0.0.0"},"fpdart":{"dependency":"direct main","description":{"name":"fpdart","sha256":"1b84ce64453974159f08046f5d05592020d1fcb2099d7fe6ec58da0e7337af77","url":"https://pub.dev"},"source":"hosted","version":"1.1.1"},"google_identity_services_web":{"dependency":"transitive","description":{"name":"google_identity_services_web","sha256":"5d187c46dc59e02646e10fe82665fc3884a9b71bc1c90c2b8b749316d33ee454","url":"https://pub.dev"},"source":"hosted","version":"0.3.3+1"},"googleapis_auth":{"dependency":"transitive","description":{"name":"googleapis_auth","sha256":"b81fe352cc4a330b3710d2b7ad258d9bcef6f909bb759b306bf42973a7d046db","url":"https://pub.dev"},"source":"hosted","version":"2.0.0"},"grpc":{"dependency":"direct main","description":{"name":"grpc","sha256":"2dde469ddd8bbd7a33a0765da417abe1ad2142813efce3a86c512041294e2b26","url":"https://pub.dev"},"source":"hosted","version":"4.1.0"},"hotkey_manager":{"dependency":"direct main","description":{"name":"hotkey_manager","sha256":"06f0655b76c8dd322fb7101dc615afbdbf39c3d3414df9e059c33892104479cd","url":"https://pub.dev"},"source":"hosted","version":"0.2.3"},"hotkey_manager_linux":{"dependency":"direct overridden","description":{"path":"packages/hotkey_manager_linux","ref":"no-cooked-accel","resolved-ref":"7e5a662615fbc9f077c1567fd7a66ec34ad52b5e","url":"https://github.com/canonical/hotkey_manager.git"},"source":"git","version":"0.2.0"},"hotkey_manager_macos":{"dependency":"transitive","description":{"name":"hotkey_manager_macos","sha256":"03b5967e64357b9ac05188ea4a5df6fe4ed4205762cb80aaccf8916ee1713c96","url":"https://pub.dev"},"source":"hosted","version":"0.2.0"},"hotkey_manager_platform_interface":{"dependency":"transitive","description":{"name":"hotkey_manager_platform_interface","sha256":"98ffca25b8cc9081552902747b2942e3bc37855389a4218c9d50ca316b653b13","url":"https://pub.dev"},"source":"hosted","version":"0.2.0"},"hotkey_manager_windows":{"dependency":"transitive","description":{"name":"hotkey_manager_windows","sha256":"0d03ced9fe563ed0b68f0a0e1b22c9ffe26eb8053cb960e401f68a4f070e0117","url":"https://pub.dev"},"source":"hosted","version":"0.2.0"},"http":{"dependency":"transitive","description":{"name":"http","sha256":"2c11f3f94c687ee9bad77c171151672986360b2b001d109814ee7140b2cf261b","url":"https://pub.dev"},"source":"hosted","version":"1.4.0"},"http2":{"dependency":"transitive","description":{"name":"http2","sha256":"382d3aefc5bd6dc68c6b892d7664f29b5beb3251611ae946a98d35158a82bbfa","url":"https://pub.dev"},"source":"hosted","version":"2.3.1"},"http_parser":{"dependency":"transitive","description":{"name":"http_parser","sha256":"178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571","url":"https://pub.dev"},"source":"hosted","version":"4.1.2"},"intl":{"dependency":"direct main","description":{"name":"intl","sha256":"3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5","url":"https://pub.dev"},"source":"hosted","version":"0.20.2"},"js":{"dependency":"transitive","description":{"name":"js","sha256":"53385261521cc4a0c4658fd0ad07a7d14591cf8fc33abbceae306ddb974888dc","url":"https://pub.dev"},"source":"hosted","version":"0.7.2"},"json_annotation":{"dependency":"transitive","description":{"name":"json_annotation","sha256":"1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1","url":"https://pub.dev"},"source":"hosted","version":"4.9.0"},"lints":{"dependency":"transitive","description":{"name":"lints","sha256":"a5e2b223cb7c9c8efdc663ef484fdd95bb243bff242ef5b13e26883547fce9a0","url":"https://pub.dev"},"source":"hosted","version":"6.0.0"},"local_notifier":{"dependency":"direct main","description":{"name":"local_notifier","sha256":"f6cfc933c6fbc961f4e52b5c880f68e41b2d3cd29aad557cc654fd211093a025","url":"https://pub.dev"},"source":"hosted","version":"0.1.6"},"logger":{"dependency":"direct main","description":{"name":"logger","sha256":"2621da01aabaf223f8f961e751f2c943dbb374dc3559b982f200ccedadaa6999","url":"https://pub.dev"},"source":"hosted","version":"2.6.0"},"matcher":{"dependency":"transitive","description":{"name":"matcher","sha256":"dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2","url":"https://pub.dev"},"source":"hosted","version":"0.12.17"},"material_color_utilities":{"dependency":"transitive","description":{"name":"material_color_utilities","sha256":"f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec","url":"https://pub.dev"},"source":"hosted","version":"0.11.1"},"meta":{"dependency":"transitive","description":{"name":"meta","sha256":"e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c","url":"https://pub.dev"},"source":"hosted","version":"1.16.0"},"path":{"dependency":"transitive","description":{"name":"path","sha256":"75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5","url":"https://pub.dev"},"source":"hosted","version":"1.9.1"},"path_parsing":{"dependency":"transitive","description":{"name":"path_parsing","sha256":"883402936929eac138ee0a45da5b0f2c80f89913e6dc3bf77eb65b84b409c6ca","url":"https://pub.dev"},"source":"hosted","version":"1.1.0"},"path_provider":{"dependency":"direct main","description":{"name":"path_provider","sha256":"50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd","url":"https://pub.dev"},"source":"hosted","version":"2.1.5"},"path_provider_android":{"dependency":"transitive","description":{"name":"path_provider_android","sha256":"d0d310befe2c8ab9e7f393288ccbb11b60c019c6b5afc21973eeee4dda2b35e9","url":"https://pub.dev"},"source":"hosted","version":"2.2.17"},"path_provider_foundation":{"dependency":"transitive","description":{"name":"path_provider_foundation","sha256":"4843174df4d288f5e29185bd6e72a6fbdf5a4a4602717eed565497429f179942","url":"https://pub.dev"},"source":"hosted","version":"2.4.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":"bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7","url":"https://pub.dev"},"source":"hosted","version":"2.3.0"},"petitparser":{"dependency":"transitive","description":{"name":"petitparser","sha256":"07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646","url":"https://pub.dev"},"source":"hosted","version":"6.1.0"},"pinenacl":{"dependency":"transitive","description":{"name":"pinenacl","sha256":"57e907beaacbc3c024a098910b6240758e899674de07d6949a67b52fd984cbdf","url":"https://pub.dev"},"source":"hosted","version":"0.6.0"},"platform":{"dependency":"transitive","description":{"name":"platform","sha256":"5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984","url":"https://pub.dev"},"source":"hosted","version":"3.1.6"},"plugin_platform_interface":{"dependency":"transitive","description":{"name":"plugin_platform_interface","sha256":"4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02","url":"https://pub.dev"},"source":"hosted","version":"2.1.8"},"pointycastle":{"dependency":"transitive","description":{"name":"pointycastle","sha256":"4be0097fcf3fd3e8449e53730c631200ebc7b88016acecab2b0da2f0149222fe","url":"https://pub.dev"},"source":"hosted","version":"3.9.1"},"protobuf":{"dependency":"direct main","description":{"name":"protobuf","sha256":"579fe5557eae58e3adca2e999e38f02441d8aa908703854a9e0a0f47fa857731","url":"https://pub.dev"},"source":"hosted","version":"4.1.0"},"quiver":{"dependency":"transitive","description":{"name":"quiver","sha256":"ea0b925899e64ecdfbf9c7becb60d5b50e706ade44a85b2363be2a22d88117d2","url":"https://pub.dev"},"source":"hosted","version":"3.2.2"},"riverpod":{"dependency":"transitive","description":{"name":"riverpod","sha256":"59062512288d3056b2321804332a13ffdd1bf16df70dcc8e506e411280a72959","url":"https://pub.dev"},"source":"hosted","version":"2.6.1"},"rxdart":{"dependency":"direct main","description":{"name":"rxdart","sha256":"5c3004a4a8dbb94bd4bf5412a4def4acdaa12e12f269737a5751369e12d1a962","url":"https://pub.dev"},"source":"hosted","version":"0.28.0"},"screen_retriever":{"dependency":"transitive","description":{"name":"screen_retriever","sha256":"570dbc8e4f70bac451e0efc9c9bb19fa2d6799a11e6ef04f946d7886d2e23d0c","url":"https://pub.dev"},"source":"hosted","version":"0.2.0"},"screen_retriever_linux":{"dependency":"transitive","description":{"name":"screen_retriever_linux","sha256":"f7f8120c92ef0784e58491ab664d01efda79a922b025ff286e29aa123ea3dd18","url":"https://pub.dev"},"source":"hosted","version":"0.2.0"},"screen_retriever_macos":{"dependency":"transitive","description":{"name":"screen_retriever_macos","sha256":"71f956e65c97315dd661d71f828708bd97b6d358e776f1a30d5aa7d22d78a149","url":"https://pub.dev"},"source":"hosted","version":"0.2.0"},"screen_retriever_platform_interface":{"dependency":"transitive","description":{"name":"screen_retriever_platform_interface","sha256":"ee197f4581ff0d5608587819af40490748e1e39e648d7680ecf95c05197240c0","url":"https://pub.dev"},"source":"hosted","version":"0.2.0"},"screen_retriever_windows":{"dependency":"transitive","description":{"name":"screen_retriever_windows","sha256":"449ee257f03ca98a57288ee526a301a430a344a161f9202b4fcc38576716fe13","url":"https://pub.dev"},"source":"hosted","version":"0.2.0"},"shared_preferences":{"dependency":"direct main","description":{"name":"shared_preferences","sha256":"6e8bf70b7fef813df4e9a36f658ac46d107db4b4cfe1048b477d4e453a8159f5","url":"https://pub.dev"},"source":"hosted","version":"2.5.3"},"shared_preferences_android":{"dependency":"transitive","description":{"name":"shared_preferences_android","sha256":"20cbd561f743a342c76c151d6ddb93a9ce6005751e7aa458baad3858bfbfb6ac","url":"https://pub.dev"},"source":"hosted","version":"2.4.10"},"shared_preferences_foundation":{"dependency":"transitive","description":{"name":"shared_preferences_foundation","sha256":"6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03","url":"https://pub.dev"},"source":"hosted","version":"2.5.4"},"shared_preferences_linux":{"dependency":"transitive","description":{"name":"shared_preferences_linux","sha256":"580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f","url":"https://pub.dev"},"source":"hosted","version":"2.4.1"},"shared_preferences_platform_interface":{"dependency":"transitive","description":{"name":"shared_preferences_platform_interface","sha256":"57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80","url":"https://pub.dev"},"source":"hosted","version":"2.4.1"},"shared_preferences_web":{"dependency":"transitive","description":{"name":"shared_preferences_web","sha256":"c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019","url":"https://pub.dev"},"source":"hosted","version":"2.4.3"},"shared_preferences_windows":{"dependency":"transitive","description":{"name":"shared_preferences_windows","sha256":"94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1","url":"https://pub.dev"},"source":"hosted","version":"2.4.1"},"sky_engine":{"dependency":"transitive","description":"flutter","source":"sdk","version":"0.0.0"},"source_span":{"dependency":"transitive","description":{"name":"source_span","sha256":"254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c","url":"https://pub.dev"},"source":"hosted","version":"1.10.1"},"sprintf":{"dependency":"transitive","description":{"name":"sprintf","sha256":"1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23","url":"https://pub.dev"},"source":"hosted","version":"7.0.0"},"stack_trace":{"dependency":"transitive","description":{"name":"stack_trace","sha256":"8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1","url":"https://pub.dev"},"source":"hosted","version":"1.12.1"},"state_notifier":{"dependency":"transitive","description":{"name":"state_notifier","sha256":"b8677376aa54f2d7c58280d5a007f9e8774f1968d1fb1c096adcb4792fba29bb","url":"https://pub.dev"},"source":"hosted","version":"1.0.0"},"stream_channel":{"dependency":"transitive","description":{"name":"stream_channel","sha256":"969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d","url":"https://pub.dev"},"source":"hosted","version":"2.1.4"},"string_scanner":{"dependency":"transitive","description":{"name":"string_scanner","sha256":"921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43","url":"https://pub.dev"},"source":"hosted","version":"1.4.1"},"synchronized":{"dependency":"direct main","description":{"name":"synchronized","sha256":"0669c70faae6270521ee4f05bffd2919892d42d1276e6c495be80174b6bc0ef6","url":"https://pub.dev"},"source":"hosted","version":"3.3.1"},"term_glyph":{"dependency":"transitive","description":{"name":"term_glyph","sha256":"7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e","url":"https://pub.dev"},"source":"hosted","version":"1.2.2"},"test_api":{"dependency":"transitive","description":{"name":"test_api","sha256":"522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00","url":"https://pub.dev"},"source":"hosted","version":"0.7.6"},"tray_menu":{"dependency":"direct main","description":{"path":".","ref":"cef5b8f","resolved-ref":"cef5b8f60d7b2717c6f2eef2163a8e11de3b8d3d","url":"https://github.com/canonical/tray_menu.git"},"source":"git","version":"0.0.1"},"two_dimensional_scrollables":{"dependency":"direct main","description":{"name":"two_dimensional_scrollables","sha256":"f02e99bae8b457f710c2a717dfbd0a32a5bbe332c0814bc559d9549a5b117db3","url":"https://pub.dev"},"source":"hosted","version":"0.3.6"},"typed_data":{"dependency":"transitive","description":{"name":"typed_data","sha256":"f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006","url":"https://pub.dev"},"source":"hosted","version":"1.4.0"},"uni_platform":{"dependency":"transitive","description":{"name":"uni_platform","sha256":"e02213a7ee5352212412ca026afd41d269eb00d982faa552f419ffc2debfad84","url":"https://pub.dev"},"source":"hosted","version":"0.1.3"},"url_launcher":{"dependency":"direct main","description":{"name":"url_launcher","sha256":"9d06212b1362abc2f0f0d78e6f09f726608c74e3b9462e8368bb03314aa8d603","url":"https://pub.dev"},"source":"hosted","version":"6.3.1"},"url_launcher_android":{"dependency":"transitive","description":{"name":"url_launcher_android","sha256":"8582d7f6fe14d2652b4c45c9b6c14c0b678c2af2d083a11b604caeba51930d79","url":"https://pub.dev"},"source":"hosted","version":"6.3.16"},"url_launcher_ios":{"dependency":"transitive","description":{"name":"url_launcher_ios","sha256":"7f2022359d4c099eea7df3fdf739f7d3d3b9faf3166fb1dd390775176e0b76cb","url":"https://pub.dev"},"source":"hosted","version":"6.3.3"},"url_launcher_linux":{"dependency":"transitive","description":{"name":"url_launcher_linux","sha256":"4e9ba368772369e3e08f231d2301b4ef72b9ff87c31192ef471b380ef29a4935","url":"https://pub.dev"},"source":"hosted","version":"3.2.1"},"url_launcher_macos":{"dependency":"transitive","description":{"name":"url_launcher_macos","sha256":"17ba2000b847f334f16626a574c702b196723af2a289e7a93ffcb79acff855c2","url":"https://pub.dev"},"source":"hosted","version":"3.2.2"},"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":"4bd2b7b4dc4d4d0b94e5babfffbca8eac1a126c7f3d6ecbc1a11013faa3abba2","url":"https://pub.dev"},"source":"hosted","version":"2.4.1"},"url_launcher_windows":{"dependency":"transitive","description":{"name":"url_launcher_windows","sha256":"3284b6d2ac454cf34f114e1d3319866fdd1e19cdc329999057e44ffe936cfa77","url":"https://pub.dev"},"source":"hosted","version":"3.1.4"},"uuid":{"dependency":"transitive","description":{"name":"uuid","sha256":"a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff","url":"https://pub.dev"},"source":"hosted","version":"4.5.1"},"vector_graphics":{"dependency":"transitive","description":{"name":"vector_graphics","sha256":"a4f059dc26fc8295b5921376600a194c4ec7d55e72f2fe4c7d2831e103d461e6","url":"https://pub.dev"},"source":"hosted","version":"1.1.19"},"vector_graphics_codec":{"dependency":"transitive","description":{"name":"vector_graphics_codec","sha256":"99fd9fbd34d9f9a32efd7b6a6aae14125d8237b10403b422a6a6dfeac2806146","url":"https://pub.dev"},"source":"hosted","version":"1.1.13"},"vector_graphics_compiler":{"dependency":"transitive","description":{"name":"vector_graphics_compiler","sha256":"557a315b7d2a6dbb0aaaff84d857967ce6bdc96a63dc6ee2a57ce5a6ee5d3331","url":"https://pub.dev"},"source":"hosted","version":"1.1.17"},"vector_math":{"dependency":"transitive","description":{"name":"vector_math","sha256":"80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803","url":"https://pub.dev"},"source":"hosted","version":"2.1.4"},"web":{"dependency":"transitive","description":{"name":"web","sha256":"868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a","url":"https://pub.dev"},"source":"hosted","version":"1.1.1"},"win32":{"dependency":"direct main","description":{"name":"win32","sha256":"66814138c3562338d05613a6e368ed8cfb237ad6d64a9e9334be3f309acfca03","url":"https://pub.dev"},"source":"hosted","version":"5.14.0"},"window_manager":{"dependency":"direct main","description":{"name":"window_manager","sha256":"51d50168ab267d344b975b15390426b1243600d436770d3f13de67e55b05ec16","url":"https://pub.dev"},"source":"hosted","version":"0.5.0"},"window_size":{"dependency":"direct main","description":{"path":"plugins/window_size","ref":"6c66ad2","resolved-ref":"6c66ad23ee79749f30a8eece542cf54eaf157ed8","url":"https://github.com/google/flutter-desktop-embedding.git"},"source":"git","version":"0.1.0"},"xdg_directories":{"dependency":"transitive","description":{"name":"xdg_directories","sha256":"7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15","url":"https://pub.dev"},"source":"hosted","version":"1.1.0"},"xml":{"dependency":"transitive","description":{"name":"xml","sha256":"b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226","url":"https://pub.dev"},"source":"hosted","version":"6.5.0"},"xterm":{"dependency":"direct main","description":{"path":".","ref":"4.0.0+mp","resolved-ref":"ff2309c1581c025ba8b9f65e6619fe2fe2252827","url":"https://github.com/levkropp/xterm.dart"},"source":"git","version":"4.0.0"},"zmodem":{"dependency":"transitive","description":{"name":"zmodem","sha256":"3b7e5b29f3a7d8aee472029b05165a68438eff2f3f7766edf13daba1e297adbf","url":"https://pub.dev"},"source":"hosted","version":"0.0.6"}},"sdks":{"dart":">=3.8.0 <4.0.0","flutter":">=3.29.0"}} diff --git a/pkgs/by-name/mu/multipass/test_unreachable_call.patch b/pkgs/by-name/mu/multipass/test_unreachable_call.patch deleted file mode 100644 index a692362df8ef..000000000000 --- a/pkgs/by-name/mu/multipass/test_unreachable_call.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/tests/test_common_callbacks.cpp b/tests/test_common_callbacks.cpp -index ccae78e0..f9ab4423 100644 ---- a/tests/test_common_callbacks.cpp -+++ b/tests/test_common_callbacks.cpp -@@ -73,6 +73,7 @@ struct TestLoggingSpinnerCallbacks : public TestSpinnerCallbacks, public WithPar - default: - assert(false && "shouldn't be here"); - } -+ __builtin_unreachable(); - } - }; - diff --git a/pkgs/by-name/mu/multipass/update.sh b/pkgs/by-name/mu/multipass/update.sh deleted file mode 100755 index 34e945abb579..000000000000 --- a/pkgs/by-name/mu/multipass/update.sh +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell -I nixpkgs=./. -i bash -p curl jq nix-prefetch-github yj git -# shellcheck shell=bash - -set -euo pipefail - -cd $(readlink -e $(dirname "${BASH_SOURCE[0]}")) - -# Download the latest pubspec.lock (which is a YAML file), convert it to JSON and write it to -# the package directory as pubspec.lock.json -update_pubspec_json() { - local version; version="$1" - echo "Updating pubspec.lock.json" - - curl -s \ - "https://raw.githubusercontent.com/canonical/multipass/refs/tags/v${version}/src/client/gui/pubspec.lock" \ - | yj > pubspec.lock.json -} - -# Update the SRI hash of a particular overridden Dart package in the Nix expression -update_dart_pkg_hash() { - local pkg_name; pkg_name="$1" - local owner; owner="$2"; - local repo; repo="$3"; - echo "Updating dart package hash: $pkg_name" - - resolved_ref="$(jq -r --arg PKG "$pkg_name" '.packages[$PKG].description."resolved-ref"' pubspec.lock.json)" - hash="$(nix-prefetch-github --rev "$resolved_ref" "$owner" "$repo" | jq '.hash')" - sed -i "s|${pkg_name} = \".*\";|${pkg_name} = $hash;|" gui.nix -} - -# Update the hash of the multipass source code in the Nix expression. -update_multipass_source() { - local version; version="$1" - echo "Updating multipass source" - - sri_hash="$(nix-prefetch-github canonical multipass --rev "refs/tags/v${version}" --fetch-submodules | jq -r '.hash')" - - sed -i "s|version = \".*$|version = \"$version\";|" package.nix - sed -i "s|hash = \".*$|hash = \"${sri_hash}\";|" package.nix -} - -LATEST_TAG="$(curl -s ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} https://api.github.com/repos/canonical/multipass/releases/latest | jq -r '.tag_name')" -LATEST_VERSION="$(expr "$LATEST_TAG" : 'v\(.*\)')" -CURRENT_VERSION="$(grep -Po "version = \"\K[^\"]+" package.nix)" - -if [[ "$CURRENT_VERSION" == "$LATEST_VERSION" ]]; then - echo "multipass is up to date: ${CURRENT_VERSION}" - exit 0 -fi - -update_pubspec_json "$LATEST_VERSION" - -update_dart_pkg_hash dartssh2 canonical dartssh2 -update_dart_pkg_hash hotkey_manager_linux canonical hotkey_manager -update_dart_pkg_hash tray_menu canonical tray_menu -update_dart_pkg_hash window_size google flutter-desktop-embedding -update_dart_pkg_hash xterm levkropp xterm.dart - -update_multipass_source "$LATEST_VERSION" - diff --git a/pkgs/by-name/mu/multipass/vcpkg_no_install.patch b/pkgs/by-name/mu/multipass/vcpkg_no_install.patch deleted file mode 100644 index ecfe7001524a..000000000000 --- a/pkgs/by-name/mu/multipass/vcpkg_no_install.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git i/CMakeLists.txt w/CMakeLists.txt -index fd8d446c8..870a2c19c 100644 ---- i/CMakeLists.txt -+++ w/CMakeLists.txt -@@ -83,9 +83,6 @@ else() - message(STATUS "Bootstrapping vcpkg completed successfully.") - endif() - --set(CMAKE_TOOLCHAIN_FILE "${CMAKE_CURRENT_SOURCE_DIR}/3rd-party/vcpkg/scripts/buildsystems/vcpkg.cmake" -- CACHE STRING "Vcpkg toolchain file") -- - project(Multipass) - - option(MULTIPASS_ENABLE_TESTS "Build tests" ON) diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 30b57ae69cbd..29e46a4cf09d 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1084,6 +1084,7 @@ mapAliases { mrxvt = throw "'mrxvt' has been removed due to lack of maintainence upstream"; # Added 2025-09-25 msgpack = throw "msgpack has been split into msgpack-c and msgpack-cxx"; # Added 2025-09-14 msp430NewlibCross = throw "'msp430NewlibCross' has been renamed to/replaced by 'msp430Newlib'"; # Converted to throw 2025-10-27 + multipass = throw "multipass was dropped since it was unmaintained."; # Added 2025-11-29 mumps_par = throw "'mumps_par' has been renamed to/replaced by 'mumps-mpi'"; # Converted to throw 2025-10-27 mustache-tcl = throw "'mustache-tcl' has been renamed to/replaced by 'tclPackages.mustache-tcl'"; # Converted to throw 2025-10-27 mutt-with-sidebar = throw "'mutt-with-sidebar' has been renamed to/replaced by 'mutt'"; # Converted to throw 2025-10-27