Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vagrant 2.3.4 is the last version compatible with this plugin, 2.3.6 and 2.3.7 have an issue #1749

Open
skipperTux opened this issue Jun 20, 2023 · 11 comments

Comments

@skipperTux
Copy link

skipperTux commented Jun 20, 2023

Describe the bug
I am building the plugin with Podman on Fedora 38. This worked fine in the past. All recent Vagrant versions build fine without any error (except 2.3.5, see Side note at the end), however the latest version that runs without any error is Vagrant 2.3.4. Vagrant 2.3.6 and 2.3.7 (latest), when running Vagrant with any command, like vagrant --help I get the following error:

$ vagrant --help
Vagrant failed to initialize at a very early stage:

The plugins failed to initialize correctly. This may be due to manual
modifications made within the Vagrant home directory. Vagrant can
attempt to automatically correct this issue by running:

  vagrant plugin repair

If Vagrant was recently updated, this error may be due to incompatible
versions of dependencies. To fix this problem please remove and re-install
all plugins. Vagrant can attempt to do this automatically by running:

  vagrant plugin expunge --reinstall

Or you may want to try updating the installed plugins to their latest
versions:

  vagrant plugin update

Error message given during initialization: Unable to resolve dependency: user requested 'vagrant-libvirt (> 0)'

However vagrant-libvirt is the only plugin installed.

To Reproduce
Steps to reproduce the behavior:

  1. Set VAGRANT_VERSION in Dockerfile to 2.3.6 or above
  2. Build the vagrant-libvirt image using podman build --pull=true --tag=docker.io/vagrantlibvirt/vagrant-libvirt:latest .
  3. Run vagrant --help or any other Vagrant command (make sure your ~/.bashrc is configured correctly to run Vagrant from Docker/Podman)
  4. See error

Expected behavior
Vagrant commands shall run without any error.

Versions (please complete the following information)::

  • Libvirt version: 0.12.2.pre.1
  • Vagrant version [output of vagrant version]: 2.3.7
  • Vagrant flavour [Upstream or Distro]: Upstream (self build)
  • Vagrant plugins versions (including vagrant-libvirt) [output of vagrant plugin list]: That command also gives the above error, however the debug log shows only the vagrant-libvirt plugin is installed.

Debug Log
Output of vagrant --help --debug

Output
$ vagrant --help --debug
 INFO global: Vagrant version: 2.3.7
 INFO global: Ruby version: 3.1.4
 INFO global: RubyGems version: 3.3.26
 INFO global: VAGRANT_VERSION="2.3.7"
 INFO global: VAGRANT_DEFAULT_PROVIDER="libvirt"
 INFO global: VAGRANT_HOME="/.vagrant.d"
 INFO global: VAGRANT_INSTALLER_ENV="1"
 INFO global: VAGRANT_INSTALLER_VERSION="2"
 INFO global: VAGRANT_INSTALLER_EMBEDDED_DIR="/opt/vagrant/embedded"
 INFO global: VAGRANT_EXECUTABLE="/opt/vagrant/embedded/gems/gems/vagrant-2.3.7/bin/vagrant"
 INFO global: VAGRANT_LOG="debug"
 WARN global: resolv replacement has not been enabled!
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/autocomplete/plugin.rb
 INFO manager: Registered plugin: autocomplete command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/box/plugin.rb
 INFO manager: Registered plugin: box command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/cap/plugin.rb
 INFO manager: Registered plugin: cap command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/cloud/plugin.rb
 INFO manager: Registered plugin: vagrant-cloud
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/destroy/plugin.rb
 INFO manager: Registered plugin: destroy command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/global-status/plugin.rb
 INFO manager: Registered plugin: global-status command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/halt/plugin.rb
 INFO manager: Registered plugin: halt command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/help/plugin.rb
 INFO manager: Registered plugin: help command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/init/plugin.rb
 INFO manager: Registered plugin: init command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/list-commands/plugin.rb
 INFO manager: Registered plugin: list-commands command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/login/plugin.rb
 INFO manager: Registered plugin: vagrant-login
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/package/plugin.rb
 INFO manager: Registered plugin: package command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/plugin/plugin.rb
 INFO manager: Registered plugin: plugin command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/port/plugin.rb
 INFO manager: Registered plugin: port command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/powershell/plugin.rb
 INFO manager: Registered plugin: powershell command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/provider/plugin.rb
 INFO manager: Registered plugin: provider command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/provision/plugin.rb
 INFO manager: Registered plugin: provision command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/push/plugin.rb
 INFO manager: Registered plugin: push command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/rdp/plugin.rb
 INFO manager: Registered plugin: rdp command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/reload/plugin.rb
 INFO manager: Registered plugin: reload command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/resume/plugin.rb
 INFO manager: Registered plugin: resume command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/serve/plugin.rb
 INFO manager: Registered plugin: start Vagrant server
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/snapshot/plugin.rb
 INFO manager: Registered plugin: snapshot command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/ssh/plugin.rb
 INFO manager: Registered plugin: ssh command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/ssh_config/plugin.rb
 INFO manager: Registered plugin: ssh-config command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/status/plugin.rb
 INFO manager: Registered plugin: status command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/suspend/plugin.rb
 INFO manager: Registered plugin: suspend command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/up/plugin.rb
 INFO manager: Registered plugin: up command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/upload/plugin.rb
 INFO manager: Registered plugin: upload command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/validate/plugin.rb
 INFO manager: Registered plugin: validate command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/version/plugin.rb
 INFO manager: Registered plugin: version command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/winrm/plugin.rb
 INFO manager: Registered plugin: winrm command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/commands/winrm_config/plugin.rb
 INFO manager: Registered plugin: winrm-config command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/communicators/ssh/plugin.rb
 INFO manager: Registered plugin: ssh communicator
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/communicators/winrm/plugin.rb
 INFO manager: Registered plugin: winrm communicator
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/communicators/winssh/plugin.rb
 INFO manager: Registered plugin: windows ssh communicator
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/alma/plugin.rb
 INFO manager: Registered plugin: Alma guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/alpine/plugin.rb
 INFO manager: Registered plugin: Alpine guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/alt/plugin.rb
 INFO manager: Registered plugin: ALT Platform guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/amazon/plugin.rb
 INFO manager: Registered plugin: Amazon Linux guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/arch/plugin.rb
 INFO manager: Registered plugin: Arch guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/atomic/plugin.rb
 INFO manager: Registered plugin: Atomic Host guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/bsd/plugin.rb
 INFO manager: Registered plugin: BSD-based guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/centos/plugin.rb
 INFO manager: Registered plugin: CentOS guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/coreos/plugin.rb
 INFO manager: Registered plugin: CoreOS guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/darwin/plugin.rb
 INFO manager: Registered plugin: Darwin guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/debian/plugin.rb
 INFO manager: Registered plugin: Debian guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/dragonflybsd/plugin.rb
 INFO manager: Registered plugin: DragonFly BSD guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/elementary/plugin.rb
 INFO manager: Registered plugin: Elementary guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/esxi/plugin.rb
 INFO manager: Registered plugin: ESXi guest.
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/fedora/plugin.rb
 INFO manager: Registered plugin: Fedora guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/freebsd/plugin.rb
 INFO manager: Registered plugin: FreeBSD guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/funtoo/plugin.rb
 INFO manager: Registered plugin: Funtoo guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/gentoo/plugin.rb
 INFO manager: Registered plugin: Gentoo guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/haiku/plugin.rb
 INFO manager: Registered plugin: Haiku guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/kali/plugin.rb
 INFO manager: Registered plugin: Kali guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/linux/plugin.rb
 INFO manager: Registered plugin: Linux guest.
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/mint/plugin.rb
 INFO manager: Registered plugin: Mint guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/netbsd/plugin.rb
 INFO manager: Registered plugin: NetBSD guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/nixos/plugin.rb
 INFO manager: Registered plugin: NixOS guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/omnios/plugin.rb
 INFO manager: Registered plugin: OmniOS guest.
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/openbsd/plugin.rb
 INFO manager: Registered plugin: OpenBSD guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/openwrt/plugin.rb
 INFO manager: Registered plugin: OpenWrt guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/photon/plugin.rb
 INFO manager: Registered plugin: VMware Photon guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/pld/plugin.rb
 INFO manager: Registered plugin: PLD Linux guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/redhat/plugin.rb
 INFO manager: Registered plugin: Red Hat Enterprise Linux guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/rocky/plugin.rb
 INFO manager: Registered plugin: Rocky guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/slackware/plugin.rb
 INFO manager: Registered plugin: Slackware guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/smartos/plugin.rb
 INFO manager: Registered plugin: SmartOS guest.
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/solaris/plugin.rb
 INFO manager: Registered plugin: Solaris guest.
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/solaris11/plugin.rb
 INFO manager: Registered plugin: Solaris 11 guest.
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/suse/plugin.rb
 INFO manager: Registered plugin: SUSE guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/tinycore/plugin.rb
 INFO manager: Registered plugin: TinyCore Linux guest.
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/trisquel/plugin.rb
 INFO manager: Registered plugin: Trisquel guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/ubuntu/plugin.rb
 INFO manager: Registered plugin: Ubuntu guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/guests/windows/plugin.rb
 INFO manager: Registered plugin: Windows guest.
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/hosts/alt/plugin.rb
 INFO manager: Registered plugin: ALT Platform host
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/hosts/arch/plugin.rb
 INFO manager: Registered plugin: Arch host
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/hosts/bsd/plugin.rb
 INFO manager: Registered plugin: BSD host
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/hosts/darwin/plugin.rb
 INFO manager: Registered plugin: Mac OS X host
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/hosts/freebsd/plugin.rb
 INFO manager: Registered plugin: FreeBSD host
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/hosts/gentoo/plugin.rb
 INFO manager: Registered plugin: Gentoo host
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/hosts/linux/plugin.rb
 INFO manager: Registered plugin: Linux host
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/hosts/null/plugin.rb
 INFO manager: Registered plugin: null host
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/hosts/redhat/plugin.rb
 INFO manager: Registered plugin: Red Hat Enterprise Linux host
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/hosts/slackware/plugin.rb
 INFO manager: Registered plugin: Slackware host
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/hosts/suse/plugin.rb
 INFO manager: Registered plugin: SUSE host
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/hosts/void/plugin.rb
 INFO manager: Registered plugin: Void host
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/hosts/windows/plugin.rb
 INFO manager: Registered plugin: Windows host
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/kernel_v1/plugin.rb
 INFO manager: Registered plugin: kernel
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/kernel_v2/plugin.rb
 INFO manager: Registered plugin: kernel
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/providers/docker/plugin.rb
 INFO manager: Registered plugin: docker-provider
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/providers/hyperv/plugin.rb
 INFO manager: Registered plugin: Hyper-V provider
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/providers/virtualbox/plugin.rb
 INFO manager: Registered plugin: VirtualBox provider
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/provisioners/ansible/plugin.rb
 INFO manager: Registered plugin: ansible
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/provisioners/cfengine/plugin.rb
 INFO manager: Registered plugin: CFEngine Provisioner
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/provisioners/chef/plugin.rb
 INFO manager: Registered plugin: chef
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/provisioners/container/plugin.rb
 INFO manager: Registered plugin: container
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/provisioners/docker/plugin.rb
 INFO manager: Registered plugin: docker
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/provisioners/file/plugin.rb
 INFO manager: Registered plugin: file
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/provisioners/podman/plugin.rb
 INFO manager: Registered plugin: podman
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/provisioners/puppet/plugin.rb
 INFO manager: Registered plugin: puppet
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/provisioners/salt/plugin.rb
 INFO manager: Registered plugin: salt
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/provisioners/shell/plugin.rb
 INFO manager: Registered plugin: shell
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/pushes/atlas/plugin.rb
 INFO manager: Registered plugin: atlas
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/pushes/ftp/plugin.rb
 INFO manager: Registered plugin: ftp
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/pushes/heroku/plugin.rb
 INFO manager: Registered plugin: heroku
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/pushes/local-exec/plugin.rb
 INFO manager: Registered plugin: local-exec
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/pushes/noop/plugin.rb
 INFO manager: Registered plugin: noop
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/synced_folders/nfs/plugin.rb
 INFO manager: Registered plugin: NFS synced folders
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/synced_folders/rsync/plugin.rb
 INFO manager: Registered plugin: RSync synced folders
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/synced_folders/smb/plugin.rb
 INFO manager: Registered plugin: SMB synced folders
 INFO vagrant: `vagrant` invoked: ["--help", "--debug"]
DEBUG vagrant: Creating Vagrant environment
 INFO environment: Environment initialized (#<Vagrant::Environment:0x00007fa5b9682368>)
 INFO environment:   - cwd: /home/christoph/Projects/vagrant
 INFO environment: Home path: /.vagrant.d
DEBUG environment: Effective local data path: /home/christoph/Projects/vagrant/.vagrant
 INFO environment: Local data path: /home/christoph/Projects/vagrant/.vagrant
DEBUG environment: Creating: /home/christoph/Projects/vagrant/.vagrant
DEBUG manager: Enabling localized plugins
 INFO manager: Plugins:
DEBUG solution_file: new solution file instance plugin_file=/home/christoph/Projects/vagrant/.vagrant/plugins.json solution_file=/home/christoph/Projects/vagrant/.vagrant/bundler/local.sol
DEBUG solution_file: missing file so skipping loading
DEBUG bundler: solution file in use for init: <Vagrant::Bundler::SolutionFile:/home/christoph/Projects/vagrant/.vagrant/plugins.json:/home/christoph/Projects/vagrant/.vagrant/bundler/local.sol:invalid>
DEBUG bundler: Generating new builtin set instance.
DEBUG bundler: Generating new plugin set instance. Skip gems - []
DEBUG bundler: generating solution set for configured plugins
DEBUG bundler: Current generated plugin dependency list: []
DEBUG bundler: resolving solution from available specification set
DEBUG bundler: solution set for configured plugins has been resolved
DEBUG bundler: activating solution set
DEBUG bundler: Activating solution set: []
DEBUG solution_file: plugin file does not exist, not storing solution
DEBUG bundler: solution set stored to - <Vagrant::Bundler::SolutionFile:/home/christoph/Projects/vagrant/.vagrant/plugins.json:/home/christoph/Projects/vagrant/.vagrant/bundler/local.sol:invalid>
 INFO manager: Loading plugins...
DEBUG manager: Enabling globalized plugins
 INFO manager: Plugins:
 INFO manager:   - vagrant-libvirt = [installed: undefined constraint: > 0]
DEBUG solution_file: new solution file instance plugin_file=/.vagrant.d/plugins.json solution_file=/home/christoph/Projects/vagrant/.vagrant/bundler/global.sol
DEBUG solution_file: missing file so skipping loading
DEBUG bundler: solution file in use for init: <Vagrant::Bundler::SolutionFile:/.vagrant.d/plugins.json:/home/christoph/Projects/vagrant/.vagrant/bundler/global.sol:invalid>
DEBUG bundler: Generating new builtin set instance.
DEBUG bundler: Generating new plugin set instance. Skip gems - []
DEBUG bundler: generating solution set for configured plugins
DEBUG bundler: Current generated plugin dependency list: [<Gem::Dependency type=:runtime name="vagrant-libvirt" requirements="> 0">]
DEBUG bundler: resolving solution from available specification set
ERROR manager: Plugin initialization error - Gem::UnsatisfiableDependencyError: Unable to resolve dependency: user requested 'vagrant-libvirt (> 0)'
DEBUG manager: /opt/vagrant/embedded/lib/ruby/3.1.0/rubygems/resolver.rb:233:in `search_for'
DEBUG manager: /opt/vagrant/embedded/lib/ruby/3.1.0/rubygems/resolver.rb:288:in `block in sort_dependencies'
DEBUG manager: /opt/vagrant/embedded/lib/ruby/3.1.0/rubygems/resolver.rb:282:in `each'
DEBUG manager: /opt/vagrant/embedded/lib/ruby/3.1.0/rubygems/resolver.rb:282:in `sort_by'
DEBUG manager: /opt/vagrant/embedded/lib/ruby/3.1.0/rubygems/resolver.rb:282:in `with_index'
DEBUG manager: /opt/vagrant/embedded/lib/ruby/3.1.0/rubygems/resolver.rb:282:in `sort_dependencies'
DEBUG manager: /opt/vagrant/embedded/lib/ruby/3.1.0/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb:60:in `block in sort_dependencies'
DEBUG manager: /opt/vagrant/embedded/lib/ruby/3.1.0/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb:77:in `with_no_such_dependency_error_handling'
DEBUG manager: /opt/vagrant/embedded/lib/ruby/3.1.0/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb:59:in `sort_dependencies'
DEBUG manager: /opt/vagrant/embedded/lib/ruby/3.1.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:754:in `push_state_for_requirements'
DEBUG manager: /opt/vagrant/embedded/lib/ruby/3.1.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:288:in `push_initial_state'
DEBUG manager: /opt/vagrant/embedded/lib/ruby/3.1.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:210:in `start_resolution'
DEBUG manager: /opt/vagrant/embedded/lib/ruby/3.1.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:168:in `resolve'
DEBUG manager: /opt/vagrant/embedded/lib/ruby/3.1.0/rubygems/resolver/molinillo/lib/molinillo/resolver.rb:43:in `resolve'
DEBUG manager: /opt/vagrant/embedded/lib/ruby/3.1.0/rubygems/resolver.rb:190:in `resolve'
DEBUG manager: /opt/vagrant/embedded/lib/ruby/3.1.0/rubygems/request_set.rb:411:in `resolve'
DEBUG manager: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/bundler.rb:301:in `init!'
DEBUG manager: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/plugin/manager.rb:102:in `bundler_init'
DEBUG manager: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/plugin/manager.rb:54:in `globalize!'
DEBUG manager: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/environment.rb:185:in `initialize'
DEBUG manager: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/bin/vagrant:211:in `new'
DEBUG manager: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/bin/vagrant:211:in `<main>'
ERROR vagrant: Vagrant experienced an error! Details:
ERROR vagrant: #<Vagrant::Errors::PluginInitError: The plugins failed to initialize correctly. This may be due to manual
modifications made within the Vagrant home directory. Vagrant can
attempt to automatically correct this issue by running:

  vagrant plugin repair

If Vagrant was recently updated, this error may be due to incompatible
versions of dependencies. To fix this problem please remove and re-install
all plugins. Vagrant can attempt to do this automatically by running:

  vagrant plugin expunge --reinstall

Or you may want to try updating the installed plugins to their latest
versions:

  vagrant plugin update

Error message given during initialization: Unable to resolve dependency: user requested 'vagrant-libvirt (> 0)'>
ERROR vagrant: The plugins failed to initialize correctly. This may be due to manual
modifications made within the Vagrant home directory. Vagrant can
attempt to automatically correct this issue by running:

  vagrant plugin repair

If Vagrant was recently updated, this error may be due to incompatible
versions of dependencies. To fix this problem please remove and re-install
all plugins. Vagrant can attempt to do this automatically by running:

  vagrant plugin expunge --reinstall

Or you may want to try updating the installed plugins to their latest
versions:

  vagrant plugin update

Error message given during initialization: Unable to resolve dependency: user requested 'vagrant-libvirt (> 0)'
ERROR vagrant: /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/plugin/manager.rb:108:in `rescue in bundler_init'
/opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/plugin/manager.rb:101:in `bundler_init'
/opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/plugin/manager.rb:54:in `globalize!'
/opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/environment.rb:185:in `initialize'
/opt/vagrant/embedded/gems/gems/vagrant-2.3.7/bin/vagrant:211:in `new'
/opt/vagrant/embedded/gems/gems/vagrant-2.3.7/bin/vagrant:211:in `<main>'
Vagrant failed to initialize at a very early stage:

The plugins failed to initialize correctly. This may be due to manual
modifications made within the Vagrant home directory. Vagrant can
attempt to automatically correct this issue by running:

  vagrant plugin repair

If Vagrant was recently updated, this error may be due to incompatible
versions of dependencies. To fix this problem please remove and re-install
all plugins. Vagrant can attempt to do this automatically by running:

  vagrant plugin expunge --reinstall

Or you may want to try updating the installed plugins to their latest
versions:

  vagrant plugin update

Error message given during initialization: Unable to resolve dependency: user requested 'vagrant-libvirt (> 0)'

A Vagrantfile to reproduce the issue:

No Vagrantfile needed to reproduce this issue, see above.

Side note
Building Vagrant 2.3.5 does not work, giving the following error when installing Vagrant in the image.

The following NEW packages will be installed:
  vagrant:none
0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
Need to get 0 B/139 MB of archives.
After this operation, 357 MB of additional disk space will be used.
Get:1 /vagrant.deb vagrant none 0:2.3.5-1 [139 MB]
debconf: delaying package configuration, since apt-utils is not installed
dpkg: warning: parsing file '/var/lib/dpkg/tmp.ci/control' near line 12 package 'vagrant':
 empty value for 'Architecture' field
dpkg: error processing archive /vagrant.deb (--unpack):
 package architecture () does not match system (amd64)
Errors were encountered while processing:
 /vagrant.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Edit: Collapse long output.

@buckaroogeek
Copy link
Contributor

Greetings - did you find a solution. I have vagrant 2.37 (rpm from vagrant) installed and using the current version of this plugin (0.12.2) on a fedora 38 workstation.

@skipperTux
Copy link
Author

skipperTux commented Aug 11, 2023

No, as of today I did not find a solution; workaround: I pinned my Vagrant to version 2.3.4 in my Dockerfile.
Does the setup with vagrant 2.3.7 and plugin 0.12.2 work on your Fedora 38 workstation?

@Jeansen
Copy link

Jeansen commented Sep 5, 2023

I have the issue that it works fine with vagrant 2.3.4 - from the Debian Bookworm distro, but not with the versions from Hashicorp. Keeps telling me libvirt cannot be found though all relevant packages are in place and pkg-config looks fine, too. I'll stay with the packed distro version for now.

@skipperTux
Copy link
Author

I had an error in my modified Dockerfile because of the new Vagrant download version name, i.e. 2.3.7-1 or 2.4.0-1 with regards to the dash -1. After fixing the Dockerfile it is working again, tested with Vagrant version 2.4.0. Sorry for the confusion.
Case closed.

@rgl
Copy link
Contributor

rgl commented Oct 18, 2023

@skipperTux can you please show your working Dockerfile?

@skipperTux
Copy link
Author

skipperTux commented Oct 18, 2023

Sure, it is basically the original Dockerfile, updated to version 2.4.0 with some script friendly modifications.

Dockerfile building plugin from git repository (not working)
# syntax = docker/dockerfile:1.0-experimental
ARG VAGRANT_VERSION=2.4.0


FROM ubuntu:jammy as base

RUN apt-get update \
    && apt-get --yes install --no-install-recommends \
        bash \
        ca-certificates \
        curl \
        git \
        gosu \
        iproute2 \
        kmod \
        libvirt-clients \
        openssh-client \
        qemu-utils \
        rsync \
    && rm -rf /var/lib/apt/lists \
    ;

ENV VAGRANT_HOME /.vagrant.d

ARG VAGRANT_VERSION
ENV VAGRANT_VERSION ${VAGRANT_VERSION}
RUN set -e \
    && curl https://releases.hashicorp.com/vagrant/${VAGRANT_VERSION}/vagrant_${VAGRANT_VERSION}-1_amd64.deb -o vagrant.deb \
    && apt-get update \
    && apt-get --yes install ./vagrant.deb \
    && rm -rf /var/lib/apt/lists/* \
    && rm -f vagrant.deb \
    ;

ENV VAGRANT_DEFAULT_PROVIDER=libvirt

FROM base as build

# allow caching of packages for build
RUN rm -f /etc/apt/apt.conf.d/docker-clean; echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache
RUN sed -i '/deb-src/s/^# //' /etc/apt/sources.list
RUN apt-get update \
    && apt-get --yes build-dep \
        vagrant \
        ruby-libvirt \
    && apt-get --yes install --no-install-recommends \
        libxslt-dev \
        libxml2-dev \
        libvirt-dev \
        ruby-bundler \
        ruby-dev \
        zlib1g-dev \
    ;

WORKDIR /build

COPY . .
RUN rake build

RUN find /opt/vagrant/embedded/ -type f | grep -v /opt/vagrant/embedded/plugins.json > /files-to-delete.txt

RUN /opt/vagrant/embedded/bin/gem install --install-dir /opt/vagrant/embedded/gems/${VAGRANT_VERSION} ./pkg/vagrant-libvirt*.gem

RUN echo -n '{\n\
    "version": "1",\n\
    "installed": {\n\
        "vagrant-libvirt": {\n\
            "ruby_version": "'$(/opt/vagrant/embedded/bin/ruby -e 'puts "#{RUBY_VERSION}"')'",\n\
            "vagrant_version": "'${VAGRANT_VERSION}'",\n\
            "gem_version":"",\n\
            "require":"",\n\
            "sources":[]\n\
        }\n\
    }\n\
}' > /opt/vagrant/embedded/plugins.json

FROM build as pruned

RUN cat /files-to-delete.txt | xargs rm -f

FROM base as slim

COPY --from=pruned /opt/vagrant/embedded/gems /opt/vagrant/embedded/gems
COPY --from=build /opt/vagrant/embedded/plugins.json /opt/vagrant/embedded/plugins.json

COPY entrypoint.sh /usr/local/bin/

ENTRYPOINT ["entrypoint.sh"]

FROM build as final

COPY entrypoint.sh /usr/local/bin/

ENTRYPOINT ["entrypoint.sh"]

# vim: set expandtab sw=4:

I also created a version that is installing the plugin using vagrant plugin install

Dockerfile installing plugin using vagrant (not working)
# syntax = docker/dockerfile:1.0-experimental
ARG VAGRANT_VERSION=2.4.0

FROM ubuntu:jammy as base

RUN apt-get update \
    && apt-get --yes install --no-install-recommends \
        bash \
        ca-certificates \
        curl \
        git \
        gosu \
        iproute2 \
        kmod \
        libvirt-clients \
        openssh-client \
        qemu-utils \
        rsync \
    && rm -rf /var/lib/apt/lists \
    ;

ENV VAGRANT_HOME /.vagrant.d

ARG VAGRANT_VERSION
ENV VAGRANT_VERSION ${VAGRANT_VERSION}
RUN set -e \
    && curl https://releases.hashicorp.com/vagrant/${VAGRANT_VERSION}/vagrant_${VAGRANT_VERSION}-1_amd64.deb -o vagrant.deb \
    && apt-get update \
    && apt-get --yes install ./vagrant.deb \
    && rm -rf /var/lib/apt/lists/* \
    && rm -f vagrant.deb \
    ;

ENV VAGRANT_DEFAULT_PROVIDER=libvirt

FROM base as build

# allow caching of packages for build
RUN rm -f /etc/apt/apt.conf.d/docker-clean; echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache
RUN sed -i '/deb-src/s/^# //' /etc/apt/sources.list
RUN apt-get update \
    && apt-get --yes build-dep \
        vagrant \
        ruby-libvirt \
    && apt-get --yes install --no-install-recommends \
        libvirt-dev \
    ;

RUN vagrant plugin install vagrant-libvirt

RUN find /opt/vagrant/embedded/ -type f | grep -v /opt/vagrant/embedded/plugins.json > /files-to-delete.txt

FROM build as pruned

RUN cat /files-to-delete.txt | xargs rm -f

FROM base as slim

COPY --from=pruned /opt/vagrant/embedded/gems /opt/vagrant/embedded/gems
COPY --from=build /opt/vagrant/embedded/plugins.json /opt/vagrant/embedded/plugins.json

COPY entrypoint.sh /usr/local/bin/

ENTRYPOINT ["entrypoint.sh"]

FROM build as final

COPY entrypoint.sh /usr/local/bin/

ENTRYPOINT ["entrypoint.sh"]

Edit: Dockerfile are both not working, see follow up post.

@skipperTux
Copy link
Author

skipperTux commented Oct 19, 2023

Reopening this issues, because I have some new learning from my research. Also both Dockerfiles in the above post are not working. Feel free to close this issue because of wontfix etc.

In a nutshell, Vagrant expects plugins in the folder ~/.vagrant.d, see for example hashicorp/vagrant#2457 or hashicorp/vagrant#7564 or SO Where are vagrant plugins installed?. According to these posts there is no option to install Vagrant plugins globally.

I have no clue why the vagrant-libvirt Dockerfile used to work till version 2.3.4 and what has changed with version 2.3.5 and above (nothing obvious in the Vagrant Changelog).

With the existing Dockerfile the plugin is installed to /opt/vagrant/embedded/gems/${VAGRANT_VERSION} and the plugins.json is in /opt/vagrant/embedded/.

When doing vagrant plugin install vagrant-libvirt all these files go to ~/.vagrant.d.

There is some Debian patch, hashicorp/vagrant#12016 that might explain why the Debian Bookworm distro version works.

It might have worked on My Machine™ because I had some leftovers of old plugins in my ~/.vagrant.d folder. So I was still running an old version of the plugin without knowing.

For now I am using the following stripped Dockerfile, using these instructions to run the container and install the libvirt plugin after this setup using vagrant plugin install vagrant-libvirt. This keeps my machine at least clean from all build dependencies. All in all not ideal, but a workaround.

Dockerfile with build dependencies, no plugins
# syntax = docker/dockerfile:1.0-experimental
ARG VAGRANT_VERSION=2.4.0

FROM ubuntu:jammy as base

RUN apt-get update \
    && apt-get upgrade \
    && apt-get --yes install --no-install-recommends \
        bash \
        ca-certificates \
        curl \
        git \
        gosu \
        iproute2 \
        kmod \
        libvirt-clients \
        openssh-client \
        qemu-utils \
        rsync \
    && rm -rf /var/lib/apt/lists \
    ;

ENV VAGRANT_HOME /.vagrant.d

ARG VAGRANT_VERSION
ENV VAGRANT_VERSION ${VAGRANT_VERSION}
RUN set -e \
    && curl https://releases.hashicorp.com/vagrant/${VAGRANT_VERSION}/vagrant_${VAGRANT_VERSION}-1_amd64.deb -o vagrant.deb \
    && apt-get update \
    && apt-get --yes install ./vagrant.deb \
    && rm -rf /var/lib/apt/lists/* \
    && rm -f vagrant.deb \
    ;

ENV VAGRANT_DEFAULT_PROVIDER=libvirt

FROM base as build

# allow caching of packages for build
RUN rm -f /etc/apt/apt.conf.d/docker-clean; echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache
RUN sed -i '/deb-src/s/^# //' /etc/apt/sources.list
RUN apt-get update \
    && apt-get --yes build-dep \
        vagrant \
        ruby-libvirt \
    ;

FROM build as final

COPY entrypoint.sh /usr/local/bin/

ENTRYPOINT ["entrypoint.sh"]

Another workaround might be to setup a Vagrant Distrobox or Toolbox.

Edit: Fixed link.

@skipperTux skipperTux reopened this Oct 19, 2023
@Jeansen
Copy link

Jeansen commented Nov 30, 2023

Today, I tried again with vagrant 2.4.0. I expunged all plugins and tried to install vagrant-libvirt but this results in:

Vagrant failed to install the requested plugin because it depends
on development files for a library which is not currently installed
on this system. The following library is required by the 'vagrant-libvirt'
plugin:

  libvirt

If a package manager is used on this system, please install the development
package for the library. The name of the package will be similar to:

  libvirt-dev or libvirt-devel

After the library and development files have been installed, please
run the command again.

BUT, package libvirt-dev is installed! I even reinstalled it, but no effect.

@Jeansen
Copy link

Jeansen commented Nov 30, 2023

I tried a bit more and actually I have not succeeded in installing different versions of vagrant-libvirt with older vagrant versions, either. Other failures I get are like this:


"pkg-config --exists libvirt"
| pkg-config --libs libvirt
=> "-lvirt \n"
"gcc -o conftest -I/opt/vagrant/embedded/include/ruby-2.7.0/x86_64-linux -I/opt/vagrant/embedded/include/ruby-2.7.0/ruby/backward -I/opt/vagrant/embedded/include/ruby-2.7.0 -I. -I/opt/vagrant/embedded/include -I/opt/vagrant/embedded/include   -I/opt/vagrant/embedded/include -I./include -O3 -std=c99 -fPIC conftest.c  -L. -L/opt/vagrant/embedded/lib -Wl,-rpath,/opt/vagrant/embedded/lib -L/opt/vagrant/embedded/lib -Wl,-rpath,/opt/vagrant/embedded/lib -L. -L/opt/vagrant/embedded/lib -L/opt/vagrant/embedded/lib64 -Wl,-rpath=/opt/vagrant/embedded/lib:/opt/vagrant/embedded/lib64 -fstack-protector -rdynamic -Wl,-export-dynamic -L/opt/vagrant/embedded/lib  -Wl,-rpath,/opt/vagrant/embedded/lib     -Wl,-rpath,'/../lib' -Wl,-rpath,'/../lib' -lruby  -lm   -lc"
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main(int argc, char **argv)
4: {
5:   return !!argv[argc];
6: }
/* end */

"gcc -o conftest -I/opt/vagrant/embedded/include/ruby-2.7.0/x86_64-linux -I/opt/vagrant/embedded/include/ruby-2.7.0/ruby/backward -I/opt/vagrant/embedded/include/ruby-2.7.0 -I. -I/opt/vagrant/embedded/include -I/opt/vagrant/embedded/include   -I/opt/vagrant/embedded/include -I./include -O3 -std=c99 -fPIC conftest.c  -L. -L/opt/vagrant/embedded/lib -Wl,-rpath,/opt/vagrant/embedded/lib -L/opt/vagrant/embedded/lib -Wl,-rpath,/opt/vagrant/embedded/lib -L. -L/opt/vagrant/embedded/lib -L/opt/vagrant/embedded/lib64 -Wl,-rpath=/opt/vagrant/embedded/lib:/opt/vagrant/embedded/lib64 -fstack-protector -rdynamic -Wl,-export-dynamic -L/opt/vagrant/embedded/lib  -Wl,-rpath,/opt/vagrant/embedded/lib     -Wl,-rpath,'/../lib' -Wl,-rpath,'/../lib' -lruby -lvirt -lm   -lc"
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main(int argc, char **argv)
4: {
5:   return !!argv[argc];
6: }
/* end */

| pkg-config --cflags-only-I libvirt
=> "\n"
| pkg-config --cflags-only-other libvirt
=> "\n"
| pkg-config --libs-only-l libvirt
=> "-lvirt \n"
package configuration for libvirt
incflags:
cflags:
ldflags:
libs: -lvirt

have_library: checking for virConnectOpen() in -lvirt... -------------------- no

"gcc -o conftest -I/opt/vagrant/embedded/include/ruby-2.7.0/x86_64-linux -I/opt/vagrant/embedded/include/ruby-2.7.0/ruby/backward -I/opt/vagrant/embedded/include/ruby-2.7.0 -I.  -I/opt/vagrant/embedded/include -I/opt/vagrant/embedded/include   -I/opt/vagrant/embedded/include -I./include -O3 -std=c99 -fPIC  conftest.c  -L. -L/opt/vagrant/embedded/lib -Wl,-rpath,/opt/vagrant/embedded/lib -L/opt/vagrant/embedded/lib -Wl,-rpath,/opt/vagrant/embedded/lib -L. -L/opt/vagrant/embedded/lib -L/opt/vagrant/embedded/lib64 -Wl,-rpath=/opt/vagrant/embedded/lib:/opt/vagrant/embedded/lib64 -fstack-protector -rdynamic -Wl,-export-dynamic -L/opt/vagrant/embedded/lib  -Wl,-rpath,/opt/vagrant/embedded/lib      -lvirt -Wl,-rpath,'/../lib' -Wl,-rpath,'/../lib' -lruby -lvirt  -lvirt -lm   -lc"
/usr/bin/ld: /lib/x86_64-linux-gnu/libcurl-gnutls.so.4: undefined reference to `libssh2_session_set_read_timeout'
collect2: error: ld returned 1 exit status
checked program was:
/* begin */
 1: #include "ruby.h"
 2:
 3: #include <libvirt/libvirt.h>
 4:
 5: /*top*/
 6: extern int t(void);
 7: int main(int argc, char **argv)
 8: {
 9:   if (argc > 1000000) {
10:     int (* volatile tp)(void)=(int (*)(void))&t;
11:     printf("%d", (*tp)());
12:   }
13:
14:   return !!argv[argc];
15: }
16: int t(void) { void ((*volatile p)()); p = (void ((*)()))virConnectOpen; return !p; }
/* end */

"gcc -o conftest -I/opt/vagrant/embedded/include/ruby-2.7.0/x86_64-linux -I/opt/vagrant/embedded/include/ruby-2.7.0/ruby/backward -I/opt/vagrant/embedded/include/ruby-2.7.0 -I.  -I/opt/vagrant/embedded/include -I/opt/vagrant/embedded/include   -I/opt/vagrant/embedded/include -I./include -O3 -std=c99 -fPIC  conftest.c  -L. -L/opt/vagrant/embedded/lib -Wl,-rpath,/opt/vagrant/embedded/lib -L/opt/vagrant/embedded/lib -Wl,-rpath,/opt/vagrant/embedded/lib -L. -L/opt/vagrant/embedded/lib -L/opt/vagrant/embedded/lib64 -Wl,-rpath=/opt/vagrant/embedded/lib:/opt/vagrant/embedded/lib64 -fstack-protector -rdynamic -Wl,-export-dynamic -L/opt/vagrant/embedded/lib  -Wl,-rpath,/opt/vagrant/embedded/lib      -lvirt -Wl,-rpath,'/../lib' -Wl,-rpath,'/../lib' -lruby -lvirt  -lvirt -lm   -lc"
conftest.c:16:13: error: conflicting types for ‘virConnectOpen’; have ‘void()’
   16 | extern void virConnectOpen();
      |             ^~~~~~~~~~~~~~
In file included from /usr/include/libvirt/libvirt.h:35,
                 from conftest.c:3:
/usr/include/libvirt/libvirt-host.h:737:25: note: previous declaration of ‘virConnectOpen’ with type ‘virConnect *(const char *)’ {aka ‘struct _virConnect *(const char *)’}
  737 | virConnectPtr           virConnectOpen          (const char *name);
      |                         ^~~~~~~~~~~~~~
checked program was:
/* begin */
 1: #include "ruby.h"
 2:
 3: #include <libvirt/libvirt.h>
 4:
 5: /*top*/
 6: extern int t(void);
 7: int main(int argc, char **argv)
 8: {
 9:   if (argc > 1000000) {
10:     int (* volatile tp)(void)=(int (*)(void))&t;
11:     printf("%d", (*tp)());
12:   }
13:
14:   return !!argv[argc];
15: }
16: extern void virConnectOpen();
17: int t(void) { virConnectOpen(); return 0; }
/* end */

--------------------

So, now I am back to the distro install.

@Jeansen
Copy link

Jeansen commented Dec 12, 2023

So, I checked how it goes with Docker. I have the same issure here. Vagrant 2.3.4 works fine. Everything after that (I tried 2.3.7 and 2.4.0) builds fine but presents me with the same error from this issues initial post.

What poke into my eye is that with 2.3.5 the Vagrant team docuemted: NOTE: Vagrant installer packages were updated to Ruby 3

So, might it be that vagrant-libvirt needs some Ruby version update?

@rgl
Copy link
Contributor

rgl commented Feb 4, 2024

Upgrading to vagrant 2.4.1 made it work with vagrant-libvirt 0.12.2 for me.

FWIW, I've upgraded my ansible playbook from vagrant 2.3.4 to 2.4.1 and tested this in my debian, ubuntu, and windows vagrant boxes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants