···55 version,
6677 autoPatchelfHook,
88- flutter327,
88+ flutter,
99 gtkmm3,
1010 keybinder3,
1111 lib,
···1515 protoc-gen-dart,
1616 qt6,
1717}:
1818-flutter327.buildFlutterApplication {
1818+flutter.buildFlutterApplication {
1919 inherit version;
2020 pname = "multipass-gui";
2121 src = multipass_src;
···2525 pubspecLock = lib.importJSON ./pubspec.lock.json;
26262727 gitHashes = {
2828- dartssh2 = "sha256-2pypKwurziwGLZYuGaxlS2lzN3UvJp3bRTvvYYxEqRI=";
2828+ dartssh2 = "sha256-9XrxxOamy0uS7kUz6mwWwp4yIBHLX/GSoyxMk/Wwa+4=";
2929 hotkey_manager_linux = "sha256-aO0h94YZvgV/ggVupNw8GjyZsnXrq3qTHRDtuhNv3oI=";
3030- tray_menu = "sha256-riiAiBEms+9ARog8i+MR1fto1Yqx+gwbBWyNbNq6VTM=";
3030+ tray_menu = "sha256-TAlRW7VkZWAoHAVlrPeDqS3BsqhQTyCekYQ2b4AEqjU=";
3131 window_size = "sha256-71PqQzf+qY23hTJvcm0Oye8tng3Asr42E2vfF1nBmVA=";
3232 xterm = "sha256-h8vIonTPUVnNqZPk/A4ZV7EYCMyM0rrErL9ZOMe4ZBE=";
3333 };
···4949 ];
50505151 preBuild = ''
5252+ # Temporary fix which can be removed in the next release.
5353+ # Already addressed upstream, but part of a larger patch
5454+ # that did not trivially apply.
5555+ substituteInPlace lib/main.dart --replace-fail 'TabBarTheme(' 'TabBarThemeData('
5656+5257 mkdir -p lib/generated
53585459 # Generate the Dart gRPC code for the Multipass GUI.
+4-17
pkgs/by-name/mu/multipass/multipassd.nix
···66 cmake,
77 dnsmasq,
88 fetchFromGitHub,
99+ fmt_11,
910 git,
1111+ grpc,
1012 gtest,
1113 iproute2,
1214 iptables,
···2729 xterm,
2830}:
29313030-let
3131- # This is done here because a CMakeLists.txt from one of it's submodules tries
3232- # to modify a file, so we grab the source for the submodule here, copy it into
3333- # the source of the Multipass project which allows the modification to happen.
3434- grpc_src = fetchFromGitHub {
3535- owner = "canonical";
3636- repo = "grpc";
3737- rev = "ba8e7f72a57b9e0b25783a4d3cea58c79379f194";
3838- hash = "sha256-DS1UNLCUdbipn5w4p2aVa8LgHHhdJiAfzfEdIXNO69o=";
3939- fetchSubmodules = true;
4040- };
4141-in
4232stdenv.mkDerivation {
4333 inherit version;
4434 pname = "multipassd";
···5444 # in the Nix build environment. This patch disables the fetch in favour of providing
5545 # the googletest library from nixpkgs.
5646 ./cmake_no_fetch.patch
5757- # Ensures '-Wno-ignored-attributes' is supported by the compiler before attempting to build.
5858- ./cmake_warning.patch
5947 # As of Multipass 1.14.0, the upstream started using vcpkg for grabbing C++ dependencies,
6048 # which doesn't work in the nix build environment. This patch reverts that change, in favour
6149 # of providing those dependencies manually in this derivation.
···8371 --replace-fail "OVMF.fd" "${OVMF.fd}/FV/OVMF.fd" \
8472 --replace-fail "QEMU_EFI.fd" "${OVMF.fd}/FV/QEMU_EFI.fd"
85738686- # Copy the grpc submodule we fetched into the source code.
8787- cp -r --no-preserve=mode ${grpc_src} 3rd-party/grpc
8888-8974 # Configure CMake to use gtest from the nix store since we disabled fetching from the internet.
9075 cat >> tests/CMakeLists.txt <<'EOF'
9176 add_library(gtest INTERFACE)
···11196 cmakeFlags = [ "-DMULTIPASS_ENABLE_FLUTTER_GUI=false" ];
1129711398 buildInputs = [
9999+ fmt_11
100100+ grpc
114101 gtest
115102 libapparmor
116103 libvirt