xapi-project / vagrant-xenserver

A Vagrant provider for XenServer
MIT License
120 stars 31 forks source link

Trying to add Xenserver to my Vagrant #62

Closed druski420 closed 1 week ago

druski420 commented 2 months ago

When trying to install the Xenserver vagrant plugin, I get this error:

drusk@dru-home MINGW64 ~/Downloads/vagrant-xenserver-master $ vagrant plugin install vagrant-xenserver Installing the 'vagrant-xenserver' plugin. This can take a few minutes... Building native extensions. This could take a while... Vagrant failed to properly resolve required dependencies. These errors can commonly be caused by misconfigured plugin installations or transient network issues. The reported error is:

ERROR: Failed to build gem native extension.

current directory: C:/Users/drusk/.vagrant.d/gems/3.1.4/gems/nokogiri-1.6.8.1/ext/nokogiri

C:/Program\ Files/Vagrant/embedded/mingw64/bin/ruby.exe -IC:/Program\ Files/Vagrant/embedded/gems/gems/vagrant-2.4.1/lib/vagrant/patches/builder -I C:/Program\ Files/Vagrant/embedded/mingw64/lib/ruby/3.1.0 extconf.rb checking for whether -I"C:\Program Files\Vagrant\embedded\mingw64\x86_64-w64-mingw32\include" -I"C:\Program Files\Vagrant\embedded\mingw64\include" -I"C:\Program Files\Vagrant\embedded\usr\include" is accepted as CFLAGS... yes checking for whether -I"C:\Program Files\Vagrant\embedded\mingw64\x86_64-w64-mingw32\include" -I"C:\Program Files\Vagrant\embedded\mingw64\include" -I"C:\Program Files\Vagrant\embedded\usr\include" is accepted as CPPFLAGS... yes checking for whether -L"C:\Program Files\Vagrant\embedded\mingw64\x86_64-w64-mingw32\lib" -L"C:\Program Files\Vagrant\embedded\mingw64\lib" -L"C:\Program Files\Vagrant\embedded\usr\lib" is accepted as LDFLAGS... yes checking if the C compiler accepts -I"C:\Program Files\Vagrant\embedded\mingw64\x86_64-w64-mingw32\include" -I"C:\Program Files\Vagrant\embedded\mingw64\include" -I"C:\Program Files\Vagrant\embedded\usr\include"... yes Building nokogiri using system libraries. pkg-config could not be used to find libxml-2.0 Please install either pkg-config or the pkg-config gem per

gem install pkg-config -v "~> 1.1.7"

pkg-config could not be used to find libxslt Please install either pkg-config or the pkg-config gem per

gem install pkg-config -v "~> 1.1.7"

pkg-config could not be used to find libexslt Please install either pkg-config or the pkg-config gem per

gem install pkg-config -v "~> 1.1.7"

ERROR: cannot discover where libxml2 is located on your system. please make sure pkg-config is installed. extconf.rb failed Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options.

Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=C:/Program Files/Vagrant/embedded/mingw64/bin/$(RUBY_BASE_NAME) --help --clean --use-system-libraries=true --with-zlib-dir --without-zlib-dir --with-zlib-include --without-zlib-include=${zlib-dir}/include --with-zlib-lib --without-zlib-lib=${zlib-dir}/lib --with-xml2-dir --without-xml2-dir --with-xml2-include --without-xml2-include=${xml2-dir}/include --with-xml2-lib --without-xml2-lib=${xml2-dir}/lib --with-libxml-2.0-dir --without-libxml-2.0-dir --with-libxml-2.0-include --without-libxml-2.0-include=${libxml-2.0-dir}/include --with-libxml-2.0-lib --without-libxml-2.0-lib=${libxml-2.0-dir}/lib --with-libxml-2.0-config --without-libxml-2.0-config --with-pkg-config --without-pkg-config --with-xslt-dir --without-xslt-dir --with-xslt-include --without-xslt-include=${xslt-dir}/include --with-xslt-lib --without-xslt-lib=${xslt-dir}/lib --with-libxslt-dir --without-libxslt-dir --with-libxslt-include --without-libxslt-include=${libxslt-dir}/include --with-libxslt-lib --without-libxslt-lib=${libxslt-dir}/lib --with-libxslt-config --without-libxslt-config --with-exslt-dir --without-exslt-dir --with-exslt-include --without-exslt-include=${exslt-dir}/include --with-exslt-lib --without-exslt-lib=${exslt-dir}/lib --with-libexslt-dir --without-libexslt-dir --with-libexslt-include --without-libexslt-include=${libexslt-dir}/include --with-libexslt-lib --without-libexslt-lib=${libexslt-dir}/lib --with-libexslt-config --without-libexslt-config

To see why this extension failed to compile, please check the mkmf.log which can be found here:

C:/Users/drusk/.vagrant.d/gems/3.1.4/extensions/x64-mingw32/3.1.0/nokogiri-1.6.8.1/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in C:/Users/drusk/.vagrant.d/gems/3.1.4/gems/nokogiri-1.6.8.1 for inspection. Results logged to C:/Users/drusk/.vagrant.d/gems/3.1.4/extensions/x64-mingw32/3.1.0/nokogiri-1.6.8.1/gem_make.out

drusk@dru-home MINGW64 ~/Downloads/vagrant-xenserver-master

patrickpoortman commented 2 weeks ago

Same isssue on MacOS.

Running with Vagrant 2.4.3 the installation / running vagrant-xenserver provider will error on the nokogiri nokogiri-1.6.8.1 gem.

The latest vagrant release runs with ruby 3.3.0 and even with 3.3.6 it fails. The latest nokogiri release nokogiri-1.16.7-arm64-darwin.gem builds without issues.

Can the vagrant-xenserver plugin be updated to work with newer releases?

Running env CFLAGS="-Wno-incompatible-function-pointer-types -Wno-int-conversion" vagrant plugin install vagrant-xenserver lets it install the plugin. yet it will error while running vagrant up on <internal:/opt/vagrant/embedded/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in `require': cannot load such file -- nokogiri/3.3/nokogiri (LoadError)

psafont commented 1 week ago

The vagrant plugin was unmaintained back when I started working on xenserver in 2019. I tried updating it, but I didn't know enough about ruby to fix it.

Unfortunately, Unless somebody in the community decides to fix it, I doubt it's going there's going to be an initiative within xenserver to do it.

patrickpoortman commented 1 week ago

It seems like nokogiri is a leftover from development before it was pushed to github. I don't see any reference in the action/prepare_nfs_settings.rb except the import.

I've created an pull request removing nokogiri and bumping the version number.

psafont commented 1 week ago

I've created a new tag v0.0.17, this should be fixed now.

robinmulder commented 1 week ago

@psafont Thanks! Will it also be updated on https://rubygems.org/gems/vagrant-xenserver? Otherwise vagrant plugin install vagrant-xenserver will still not work.

psafont commented 1 week ago

I don't have credentials to upload it there, @edwintorok do you still have permissions to upload it?