Package Details: canonical-multipass 1.15.0-1

Git Clone URL: https://aur.archlinux.org/canonical-multipass.git (read-only, click to copy)
Package Base: canonical-multipass
Description: Multipass is a lightweight VM manager for Linux, Windows and macOS.
Upstream URL: https://multipass.run
Licenses: GPL-3.0-only
Submitter: gdamjan
Maintainer: gdamjan
Last Packager: gdamjan
Votes: 4
Popularity: 0.000020
First Submitted: 2020-02-25 15:17 (UTC)
Last Updated: 2024-12-11 12:57 (UTC)

Latest Comments

1 2 3 4 Next › Last »

gdamjan commented on 2025-05-26 12:24 (UTC)

@epb5030 I don't know how to patch that, do you have a patch handy?

epb5030 commented on 2025-05-24 22:45 (UTC) (edited on 2025-05-24 22:50 (UTC) by epb5030)

Subject: Build Failure with canonical-multipass 1.15.0-1 on Arch Linux (CMake compatibility with zlib 1.2.13 via vcpkg)

Hi Maintainer,

I'm encountering a build failure with canonical-multipass version 1.15.0-1 on a fully updated Arch Linux system.

System Info: * Arch Linux (kernel likely 6.x or newer) * CMake version: 3.29.x (Please replace with your actual version from cmake --version) * GCC version: 15.1.1

Issue Progression:

  1. Initially, the build failed because CMAKE_MAKE_PROGRAM, CMAKE_C_COMPILER, and CMAKE_CXX_COMPILER were not set. This was resolved by ensuring base-devel was installed.
  2. The build then failed during vcpkg bootstrapping because zip was missing. The vcpkg-bootstrap.log indicated the need for curl zip unzip tar cmake ninja. Installing these allowed vcpkg bootstrapping to proceed further.
  3. The current build failure occurs when vcpkg attempts to build the zlib dependency (version 1.2.13). The log file .../vcpkg/buildtrees/zlib/config-x64-linux-release-out.log shows the following error: ``` CMake Error at CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 3.5 has been removed from CMake.

    Update the VERSION argument <min> value. Or, use the <min>...<max> syntax to tell CMake that the project requires at least <min> but has been updated to work with policies introduced by <max> or earlier.

    Or, add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to try configuring anyway.

    -- Configuring incomplete, errors occurred! ninja: build stopped: subcommand failed. `` This indicates that theCMakeLists.txtforzlib1.2.13 (as packaged by thevcpkginstance included withmultipass1.15.0) is not compatible with the modern CMake version on my system. Thiszlibbuild failure causesvcpkg installto fail, which then leads to the maincanonical-multipass` CMake configuration failing with errors about not finding a build program or compilers.

Request: Could you please look into patching the zlib portfile/CMakeLists.txt within the bundled vcpkg or updating the vcpkg submodule used by canonical-multipass to ensure compatibility with current CMake versions on Arch Linux?

Let me know if you need any more logs or information.

Thanks!

gdamjan commented on 2025-02-18 15:59 (UTC)

if anyone wants to take ownership of this package, post a comment/send a message on irc. I don't think I have the bandwidth to manage it any more.

gdamjan commented on 2025-02-03 12:00 (UTC) (edited on 2025-02-03 12:00 (UTC) by gdamjan)

Hey, complete newbie here, but I think I had to install dnsmasq as well to use this. Saw another comment also mention this - wonder if that should be made a dependency?

probably an optional dependency, since I believe it can be used without dnsmasq in some scenarios.

soggygarlic commented on 2025-02-02 01:15 (UTC)

Hey, complete newbie here, but I think I had to install dnsmasq as well to use this. Saw another comment also mention this - wonder if that should be made a dependency?

PiyushXCoder commented on 2024-12-31 16:37 (UTC) (edited on 2024-12-31 16:38 (UTC) by PiyushXCoder)

I am getting this error during the build

/usr/bin/ld: /tmp/lto-llvm-8618a3.o: relocation R_X86_64_TPOFF32 against `_ZN12_GLOBAL__N_111g_cached_cqE' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: failed to set dynamic section sizes: bad value
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [src/client/gui/CMakeFiles/dart_ffi.dir/build.make:222: lib/libdart_ffi.so] Error 1
make[1]: *** [CMakeFiles/Makefile2:2578: src/client/gui/CMakeFiles/dart_ffi.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
==> ERROR: A failure occurred in build().
    Aborting...

gdamjan commented on 2024-12-11 12:58 (UTC)

1.15 builds now, without the GUI part for now.

there are still some weird artifacts in the package - might clean them up later

gdamjan commented on 2024-09-26 12:22 (UTC)

1.14 fails to compile for me, so that's the reason, I haven't updated the package:

/usr/bin/ld: /tmp/ccC9ylhP.ltrans9.ltrans.o: relocation R_X86_64_TPOFF32 against `ssh_log_userdata' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: failed to set dynamic section sizes: bad value
collect2: error: ld returned 1 exit status
make[2]: *** [src/client/gui/CMakeFiles/dart_ffi.dir/build.make:218: lib/libdart_ffi.so] Error 1
make[1]: *** [CMakeFiles/Makefile2:1616: src/client/gui/CMakeFiles/dart_ffi.dir/all] Error 2
make: *** [Makefile:146: all] Error 2
==> ERROR: A failure occurred in build().

nhermosilla14 commented on 2024-05-20 22:37 (UTC)

I found the actual reason for that qemu: could not load PC BIOS 'OVMF.fd' error. Qemu doesn't look everywhere for the bios file. The fix I propose is to make it look everywhere, which should get done by adding a couple lines to the qemu_vm_process_spec.cpp file.

I did it already, here's the patch:

--- src/platform/backends/qemu/qemu_vm_process_spec.cpp.orig    2024-05-20 18:04:46.308380873 -0400
+++ src/platform/backends/qemu/qemu_vm_process_spec.cpp 2024-05-20 18:05:36.668903896 -0400
@@ -87,6 +87,47 @@
              << "chardev:char0"
              // TODO Add a debugging mode with access to console
              << "-nographic";
+
+        // Firmware directories
+        try
+        {
+            mu::snap_dir();
+        }
+        catch (const mp::SnapEnvironmentException&)
+        {
+            // Add a list of directories to check
+            QStringList dirs = QStringList();
+            dirs << "/usr/share/seabios/"
+                 << "/usr/share/seabios/x64/"
+                 << "/usr/share/ovmf/"
+                 << "/usr/share/ovmf/x64/"
+                 << "/usr/share/qemu/"
+                 << "/usr/share/qemu/x64/"
+                 << "/usr/share/qemu-efi/"
+                 << "/usr/share/qemu-efi/x64/"
+                 << "/usr/local/share/seabios/"
+                 << "/usr/local/share/seabios/x64/"
+                 << "/usr/local/share/ovmf/"
+                 << "/usr/local/share/ovmf/x64/"
+                 << "/usr/local/share/qemu/"
+                 << "/usr/local/share/qemu/x64/"
+                 << "/usr/local/share/qemu-efi/"
+                 << "/usr/local/share/qemu-efi/x64/";
+
+            // Now check every directory in the options, to make sure they exist
+            // If they do, add them to the args
+            for (const auto& value : dirs)
+            {
+                if (QDir(value).exists())
+                {
+                    mpl::log(mpl::Level::debug, desc.vm_name, fmt::format("Adding firmware directory: {}", value));
+                    args << "-L" << value;
+                }
+            }
+
+        }
+
+
         // Cloud-init disk
         args << "-cdrom" << desc.cloud_init_iso;
     }
@@ -203,7 +244,7 @@
     catch (const mp::SnapEnvironmentException&)
     {
         signal_peer = "unconfined";
-        firmware = "/usr{,/local}/share/{seabios,ovmf,qemu,qemu-efi}/*";
+        firmware = "/usr{,/local}/share/{seabios,ovmf,qemu,qemu-efi}{,/x64,/ia32}/*";
     }

     return profile_template.arg(apparmor_profile_name(), signal_peer, firmware, root_dir, program(),

Having done that, it works just fine.

nikelborm commented on 2024-03-19 02:28 (UTC)

If anyone faces qemu: could not load PC BIOS 'OVMF.fd' error when launching VMs, i found a hotfix and documented it here: https://github.com/canonical/multipass/issues/3441