Compare commits

...
Sign in to create a new pull request.

67 commits

Author SHA1 Message Date
Fedora Release Engineering
139e99ed19 Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild 2026-07-17 08:20:36 +00:00
Fedora Release Engineering
53115c3445 Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild 2026-01-17 19:45:51 +00:00
Jarek Prokop
217c273050 Fix Ruby 4.0 compatibility by replacing CGI with URI equivalent.
Ruby 4.0 removed CGI gem from bundled gems,
with the exception of CGI #escape and #unescape methods
from the C extension

Instead of adding CGI as a dependency, replace it with URI equivalent
and some data massaging to keep existing behavior.
2025-12-16 12:44:14 +01:00
Vít Ondruch
6391284291 Fix compatibility with REXML 3.4.2+ 2025-11-03 11:56:38 +01:00
Fedora Release Engineering
e3ab63ff28 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 19:56:32 +00:00
Fedora Release Engineering
37311015fc Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-19 14:04:14 +00:00
Jarek Prokop
92d5b6f6f8 Adjust REXML spec patch to correct line offsets for vagrant 0.11.2. 2025-01-07 18:58:17 +01:00
Jarek Prokop
417965d1a1 Stop warning being emitted due to setting unsupported option in fog-libvirt.
`vagrant up` and `vagrant ssh` emits:
~~~
[fog][WARNING] Unrecognized arguments: libvirt_ip_command
~~~
on CLI. The option is no longer supported by fog-libvirt.
See discussion on https://github.com/vagrant-libvirt/vagrant-libvirt/issues/1831

Main function seem to have been for libvirt < 1.2.8.
EL7.9 includes libvirt 4.5.0, so this should be compatible even for
older systems.
97450dd
2025-01-07 18:51:30 +01:00
6ba3e60764 Add some gem dependency on testsuite for ruby3.4
Support REXML 3.3.2 output behavior change
2024-12-29 21:25:40 +09:00
Fedora Release Engineering
9510742885 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-20 08:32:08 +00:00
Software Management Team
60b9204d8c Eliminate use of obsolete %patchN syntax (#2283636) 2024-05-30 12:47:07 +02:00
Fedora Release Engineering
552ae80485 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-27 07:26:24 +00:00
Fedora Release Engineering
ef122aab9c Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-22 17:23:20 +00:00
Jarek Prokop
bf304e3ff9 Update enable-qemu-session-by-default patch for vagrant-libvirt 0.11.2 2023-02-14 13:01:17 +01:00
Jarek Prokop
34906f3e48 Fix test suite for vagrant-libvirt 0.11.2 with qemu session as default.
Adjust Requires and BuildRequires for spec.

Delete sed commands relating to SimpleCov and test
suite disabling, they are no longer required.
2023-02-14 13:01:04 +01:00
Bart Kus
5aa17a63e1 Update to vagrant-libvirt 0.11.2
Should resolve rhbz#2075223
2023-02-13 18:15:49 +01:00
03b9c0ef9a Backport upstream fix for ruby3.2 compatibility
(File.exists? removal, URI#parse host name result change)
2023-01-20 14:23:54 +09:00
Fedora Release Engineering
42b0ffa094 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-23 11:39:03 +00:00
Vít Ondruch
2c12f9fd86 Add BR: rubygem(rake) to fix FTBFS.
This used to be pulled in via `rubygem(rspec-core)`, but it is not
anymore:

https://src.fedoraproject.org/rpms/rubygem-rspec-core/c/15e3de8d5ccf32c7199d9f39e45d536fa6159a48
2022-04-11 14:53:41 +02:00
Fedora Release Engineering
54aad82274 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-22 03:45:38 +00:00
Pavel Valena
eb118f573c Update to vagrant-libvirt 0.7.0.
Resolves: rhbz#1963360

Also rename patch0 to patch100
 * vagrant-libvirt-0.7.0-enable-qemu-session-by-default.patch

Tests / compatibility fix:
 - Allow the connection.client.libversion call
   https://github.com/vagrant-libvirt/vagrant-libvirt/pull/1416
 - Reduce patching for distro default session use
   https://github.com/vagrant-libvirt/vagrant-libvirt/pull/1424
2021-12-13 12:33:06 +01:00
Fedora Release Engineering
9fa7fba364 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-23 20:16:27 +00:00
Pavel Valena
169b5c9438 Fix forward_ports with ruby 3.0.
Resolves: rhbz#1947885
2021-05-17 14:56:30 +02:00
Pavel Valena
f1d5617da7 Remove patch added by mistake,
it's content is already included in vagrant-libvirt-0.0.45-enable-qemu-session-by-default.patch
2021-05-14 18:46:26 +02:00
Pavel Valena
e48f6aaf68 Add missing patch and .gitignore entry. 2021-05-12 23:48:34 +02:00
Pavel Valena
b9cb3a99c3 Update to vagrant-libvirt 0.4.1
also add dependency on rexml
https://github.com/vagrant-libvirt/vagrant-libvirt/pull/1277

Resolves: rhbz#1884945
Resolves: rhbz#1945740
2021-05-12 23:00:41 +02:00
Fedora Release Engineering
b7aa5f3f96 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-27 22:52:51 +00:00
Vít Ondruch
fa18e92108 Drop dependency on Erubis. 2020-08-19 12:28:27 +02:00
Vít Ondruch
dcfc1c123c Keep the changelog dates ordered.
This makes RPM happy and corresponds to the day of build instead of day
of opening PR.
2020-08-18 17:12:42 +02:00
Pavel Valena
3992e36a99 Update to vagrant-libvirt 0.1.2.
also enhance spec readability.

Resolves: rhbz#1833807
2020-07-29 18:22:03 +02:00
Fedora Release Engineering
d21060073e - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-29 13:31:21 +00:00
Fedora Release Engineering
9a1cbe12b7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-31 02:53:47 +00:00
Tadej Janež
340301a8a8
Backport/Add useful features and fixes from upstream
- Allow customizing of virt-sysprep behaviour on package.
- Use fetch to obtain environment variable value in package_domain.
- Halt a domain before packaging it as a box to avoid hard to debug
  issues.
2019-09-08 14:40:02 +02:00
Fedora Release Engineering
da0059d3d0 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-27 02:45:05 +00:00
Pavel Valena
dbf5e2dc79 Enable QEMU Session by default. 2019-02-14 08:02:27 +01:00
Pavel Valena
f9c61f3373 Update to vagrant-libvirt 0.0.45
also simplify tests.
2019-02-14 08:02:16 +01:00
Fedora Release Engineering
ca22cfdbde - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-02-03 11:03:16 +00:00
Pavel Valena
90dbacc756 Relax fog-core dependency to work with recently rebased one. 2018-11-02 12:37:37 +01:00
Pavel Valena
80c9462cc6 Update to vagrant-libvirt 0.0.43.
Also enhance .spec and .gitignore files,
update to latest vagrant-spec commit(in sync with vagrant),
and relax dependencies for vagrant-spec in %check.

Uses %gemspec_* macro to replace gemspec dependency.

Also use actual .gemspec for tests and a dummy Gemfile
2018-10-24 16:34:19 +02:00
Fedora Release Engineering
6049a038eb - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-14 08:23:35 +00:00
Fedora Release Engineering
41f0b03327 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-02-09 20:16:28 +00:00
Pavel Valena
974e0af6db Fix invalid XML creation on custom domain name.
https://bugzilla.redhat.com/show_bug.cgi?id=1518899
https://github.com/vagrant-libvirt/vagrant-libvirt/issues/831
2017-12-08 16:58:50 +01:00
Fedora Release Engineering
4880503ccb - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild 2017-07-27 21:09:15 +00:00
Vít Ondruch
2b1336fadb Update to vagrant-libvirt 0.0.40. 2017-06-20 12:05:16 +02:00
Vít Ondruch
7a72b873e1 Add missing patch. 2017-02-24 16:03:39 +01:00
Vít Ondruch
eabbe2a86d Fix Vagrant error when network is specified (rhbz#1426565). 2017-02-24 15:59:13 +01:00
Vít Ondruch
a700e9f2d1 Fix compatiblity with Vagrant 1.9.1. 2017-02-14 17:54:44 +01:00
Vít Ondruch
bc962f4758 Prefer file dependnecy. 2017-02-06 13:51:49 +01:00
Vít Ondruch
54ab9ef546 Recommends libguestfs required by "vagrant package" (rhbz#1292217). 2017-02-06 12:56:37 +01:00
Vít Ondruch
1d43259d6a Update to vagrant-libvirt 0.0.37. 2017-02-06 12:56:34 +01:00
Vít Ondruch
fe220f8d7b Fix compatibility with latest Bundler. 2017-01-05 16:39:32 +01:00
bab548be40 Relax nokogiri dependency 2017-01-01 22:16:25 +09:00
Vít Ondruch
e6ad492c37 Update to vagrant-libvirt 0.0.36. 2016-10-10 13:34:19 +02:00
Vít Ondruch
8ed4b8a5c1 Update to vagrant-libvirt 0.0.35. 2016-10-04 15:14:20 +02:00
Vít Ondruch
ab475b9cbe Update to vagrant-libvirt 0.0.33.
- Drop the polkit rules. Use libvirt group instead.
2016-08-08 13:22:00 +02:00
Fedora Release Engineering
cc38ec3034 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild 2016-02-05 02:31:27 +00:00
Josef Stribny
c86727a67b Update to 0.0.32 2015-10-14 13:58:59 +02:00
Josef Stribny
8472fef622 Update to 0.0.31 2015-10-05 16:08:37 +02:00
Josef Stribny
d12f1ab87c Drop the rest of libvirt deps 2015-09-14 13:23:03 +02:00
Josef Stribny
6644bfdd05 Drop unnecessary explicit libvirt require 2015-09-14 12:07:04 +02:00
Dan Williams
6d92d3a201 Fix: pass MAC addresses to vagrant to configure interfaces correctly 2015-07-10 17:19:13 -05:00
Dennis Gilmore
6b63db535a - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild 2015-06-19 01:47:12 +00:00
Michael Adam
3cce33e198 Update to 0.0.30 2015-06-13 15:02:41 +02:00
Josef Stribny
0fc948cf01 Fix: Wait for libvirt to shutdown the domain 2015-04-21 14:47:14 +02:00
Josef Stribny
03f94d022d Upload new sources 2015-04-20 11:07:31 +02:00
Josef Stribny
af89ab3d25 Update to 0.0.26 2015-04-20 11:04:24 +02:00
Josef Stribny
fb2e6735f3 Update to 0.0.25 2015-03-10 13:20:43 +01:00
13 changed files with 751 additions and 143 deletions

3
.gitignore vendored
View file

@ -1 +1,2 @@
/vagrant-libvirt-0.0.24.gem
/vagrant-libvirt-*.gem
/vagrant-spec-*.tar.gz

View file

@ -1,11 +0,0 @@
/*
* Allow users in vagrant group to manage libvirt without authentication.
* Copy this file to /usr/share/polkit-1/rules.d/ to activate.
*/
polkit.addRule(function(action, subject) {
if ((action.id == "org.libvirt.unix.manage"
|| action.id == "org.libvirt.unix.monitor")
&& subject.isInGroup("vagrant")) {
return polkit.Result.YES;
}
});

View file

@ -1 +1,2 @@
d58a2c52a26b085cefe7292b5b8246b5 vagrant-libvirt-0.0.24.gem
SHA512 (vagrant-libvirt-0.11.2.gem) = f66be1c8301ad4a9e731cf65c2ea3181f3c5e4c1d252411465060ab8ddabc294beab40e214fa8c9c5a7aa1e116030f60cea2e337121d95123c724ec6e529bfbc
SHA512 (vagrant-spec-259c55e204674f2b006700c6d351d04250d13b04.tar.gz) = 7938a6f8091b7dd76266e63d2cb653820e55a262091be0aaae2f5515321fa4d50301f547ab925771208b8616c7fc819cb642b3b9d444cd7a722ba712538cf68f

View file

@ -0,0 +1,28 @@
From f87d4330953effdea41355d2daedb6b9659f39d3 Mon Sep 17 00:00:00 2001
From: Jarek Prokop <jprokop@redhat.com>
Date: Fri, 10 Feb 2023 16:24:07 +0100
Subject: [PATCH] Allow a mock object to receive synced_folders when using qemu
session.
When using qemu session, there is another code path
regarding 9p and virtiofs that wasn't considered.
---
spec/unit/config_spec.rb | 2 ++
1 file changed, 2 insertions(+)
diff --git a/spec/unit/config_spec.rb b/spec/unit/config_spec.rb
index d205214..e606b89 100644
--- a/spec/unit/config_spec.rb
+++ b/spec/unit/config_spec.rb
@@ -770,6 +770,8 @@ describe VagrantPlugins::ProviderLibvirt::Config do
let (:vm) { double('vm') }
before do
machine.config.instance_variable_get("@keys")[:vm] = vm
+
+ allow(vm).to receive(:synced_folders).and_return({})
end
it 'is valid with valid mac' do
--
2.39.1

View file

@ -0,0 +1,53 @@
From 799acbebe6a506c85c93f384610e646d801bea1a Mon Sep 17 00:00:00 2001
From: Jarek Prokop <jprokop@redhat.com>
Date: Fri, 10 Feb 2023 17:43:18 +0100
Subject: [PATCH 1/2] Enable QEMU Session by default
Default `@qemu_use_session` to true.
---
lib/vagrant-libvirt/config.rb | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/vagrant-libvirt/config.rb b/lib/vagrant-libvirt/config.rb
index d4763be..0bbdef0 100644
--- a/lib/vagrant-libvirt/config.rb
+++ b/lib/vagrant-libvirt/config.rb
@@ -931,9 +931,9 @@ module VagrantPlugins
@socket = nil if @socket == UNSET_VALUE
# If uri isn't set then let's build one from various sources.
- # Default to passing false for qemu_use_session if it's not set.
+ # Default to passing true for qemu_use_session if it's not set.
if @uri == UNSET_VALUE
- @uri = _generate_uri(@qemu_use_session == UNSET_VALUE ? false : @qemu_use_session)
+ @uri = _generate_uri(@qemu_use_session == UNSET_VALUE ? true : @qemu_use_session)
end
finalize_from_uri
From b695838c24e5669c58ef5984dc26f31277c7dd10 Mon Sep 17 00:00:00 2001
From: Jarek Prokop <jprokop@redhat.com>
Date: Fri, 10 Feb 2023 17:43:55 +0100
Subject: [PATCH 2/2] Use qemu:///session instead of qemu:///system in test
suite.
---
spec/unit/config_spec.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/spec/unit/config_spec.rb b/spec/unit/config_spec.rb
index d205214..fce7521 100644
--- a/spec/unit/config_spec.rb
+++ b/spec/unit/config_spec.rb
@@ -72,7 +72,7 @@ describe VagrantPlugins::ProviderLibvirt::Config do
# settings
[ # all default
{},
- {:uri => "qemu:///system"},
+ {:uri => "qemu:///session"},
],
# explicit uri settings
--
2.39.1

View file

@ -0,0 +1,116 @@
From ec4daf33cf6135f9a29c48a61dd8a6e8b9bf0dc1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
Date: Fri, 31 Oct 2025 17:35:48 +0100
Subject: [PATCH] Fix REXML 3.4.2+ compatibility
REXML 3.4.2+ deprecated accepting array as an element in `XPath.match`
[[1]]. This led to test errors such as:
~~~
3) VagrantPlugins::ProviderLibvirt::Action::ResolveDiskSettings#call when vm box is in use when box metadata is not available when multiple volumes in domain config should populate domain volumes with devices
Failure/Error:
expect(env[:domain_volumes]).to match(
[
hash_including(
device: 'vda',
absolute_path: '/var/lib/libvirt/images/vagrant-test_default.img'
),
hash_including(
device: 'vdb',
absolute_path: '/var/lib/libvirt/images/vagrant-test_default_1.img'
),
expected [{absolute_path: "/var/lib/libvirt/images/vagrant-test_default.img", bus: "virtio", cache: "default", device: "vda", name: "vagrant-test_default.img"}] to match [#<RSpec::Mocks::ArgumentMatchers::HashIncludingMatcher:0x00007fff921b3db8 @expected={device: "vda", absolute_path: "/var/lib/libvirt/images/vagrant-test_default.img"}>, #<RSpec::Mocks::ArgumentMatchers::HashIncludingMatcher:0x00007fff921b3d40 @expected={device: "vdb", absolute_path: "/var/lib/libvirt/images/vagrant-test_default_1.img"}>, #<RSpec::Mocks::ArgumentMatchers::HashIncludingMatcher:0x00007fff921b3cc8 @expected={device: "vdc", absolute_path: "/var/lib/libvirt/images/vagrant-test_default_2.img"}>]
Diff:
@@ -1,4 +1,6 @@
-[hash_including(device: "vda", absolute_path: "/var/lib/libvirt/images/vagrant-test_default.img"),
- hash_including(device: "vdb", absolute_path: "/var/lib/libvirt/images/vagrant-test_default_1.img"),
- hash_including(device: "vdc", absolute_path: "/var/lib/libvirt/images/vagrant-test_default_2.img")]
+[{absolute_path: "/var/lib/libvirt/images/vagrant-test_default.img",
+ bus: "virtio",
+ cache: "default",
+ device: "vda",
+ name: "vagrant-test_default.img"}]
# ./spec/unit/action/resolve_disk_settings_spec.rb:200:in 'block (6 levels) in <top (required)>'
# ./spec/support/unit_context.rb:51:in 'block (3 levels) in <top (required)>'
# ./spec/support/unit_context.rb:43:in 'block (2 levels) in <top (required)>'
# ./spec/support/unit_context.rb:51:in 'block (3 levels) in <top (required)>'
# ./spec/support/unit_context.rb:43:in 'block (2 levels) in <top (required)>'
~~~
This changes the logic in a way, that XPath is matching against whole
XML document, instead of array of XML elements.
[1]: https://github.com/ruby/rexml/pull/252
---
lib/vagrant-libvirt/action/destroy_domain.rb | 10 ++++++----
lib/vagrant-libvirt/action/resolve_disk_settings.rb | 9 +++++----
2 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/lib/vagrant-libvirt/action/destroy_domain.rb b/lib/vagrant-libvirt/action/destroy_domain.rb
index 4d6cc6ee8..fba6aee6d 100644
--- a/lib/vagrant-libvirt/action/destroy_domain.rb
+++ b/lib/vagrant-libvirt/action/destroy_domain.rb
@@ -59,7 +59,7 @@ def call(env)
domain_xml = libvirt_domain.xml_desc(1)
xml_descr = REXML::Document.new(domain_xml)
disks_xml = REXML::XPath.match(xml_descr, '/domain/devices/disk[@device="disk"]')
- have_aliases = !(REXML::XPath.match(disks_xml, './alias[@name="ua-box-volume-0"]').first).nil?
+ have_aliases = !REXML::XPath.match(xml_descr, '/domain/devices/disk[@device="disk"]/alias[@name="ua-box-volume-0"]').first.nil?
if !have_aliases
env[:ui].warn(I18n.t('vagrant_libvirt.domain_xml.obsolete_method'))
end
@@ -73,7 +73,9 @@ def call(env)
# the additional storage devices are.
detected_box_volumes = 0
if have_aliases
- REXML::XPath.match(disks_xml, './alias[contains(@name, "ua-box-volume-")]').each do |box_disk|
+ REXML::XPath.match(xml_descr,
+ '/domain/devices/disk[@device="disk"]/alias[contains(@name, "ua-box-volume-")]'
+ ).each do |box_disk|
diskname = box_disk.parent.elements['source'].attributes['file'].rpartition('/').last
detected_box_volumes += 1
@@ -130,13 +132,13 @@ def call(env)
# look for exact match using aliases which will be used
# for subsequent domain creations
if have_aliases
- domain_disk = REXML::XPath.match(disks_xml, './alias[@name="ua-disk-volume-' + index.to_s + '"]').first
+ domain_disk = REXML::XPath.match(xml_descr, '/domain/devices/disk[@device="disk"]/alias[@name="ua-disk-volume-' + index.to_s + '"]').first
domain_disk = domain_disk.parent if !domain_disk.nil?
else
# otherwise fallback to find the disk by device if specified by user
# and finally index counting with offset and hope the match is correct
if !disk[:device].nil?
- domain_disk = REXML::XPath.match(disks_xml, './target[@dev="' + disk[:device] + '"]').first
+ domain_disk = REXML::XPath.match(xml_descr, '/domain/devices/disk[@device="disk"]/target[@dev="' + disk[:device] + '"]').first
domain_disk = domain_disk.parent if !domain_disk.nil?
else
domain_disk = disks_xml[offset + index]
diff --git a/lib/vagrant-libvirt/action/resolve_disk_settings.rb b/lib/vagrant-libvirt/action/resolve_disk_settings.rb
index f1a3f6755..add3e1021 100644
--- a/lib/vagrant-libvirt/action/resolve_disk_settings.rb
+++ b/lib/vagrant-libvirt/action/resolve_disk_settings.rb
@@ -50,18 +50,19 @@ def call(env)
domain_xml = libvirt_domain.xml_desc(1)
xml_descr = REXML::Document.new(domain_xml)
domain_name = xml_descr.elements['domain'].elements['name'].text
- disks_xml = REXML::XPath.match(xml_descr, '/domain/devices/disk[@device="disk"]')
- have_aliases = !REXML::XPath.match(disks_xml, './alias[@name="ua-box-volume-0"]').first.nil?
+ have_aliases = !REXML::XPath.match(xml_descr, '/domain/devices/disk[@device="disk"]/alias[@name="ua-box-volume-0"]').first.nil?
env[:ui].warn(I18n.t('vagrant_libvirt.domain_xml.obsolete_method')) unless have_aliases
if have_aliases
- REXML::XPath.match(disks_xml,
- './alias[contains(@name, "ua-box-volume-")]').each_with_index do |alias_xml, idx|
+ REXML::XPath.match(xml_descr,
+ '/domain/devices/disk[@device="disk"]/alias[contains(@name, "ua-box-volume-")]'
+ ).each_with_index do |alias_xml, idx|
domain_volumes.push(volume_from_xml(alias_xml.parent, domain_name, idx))
end
else
# fallback to try and infer which boxes are box images, as they are listed first
# as soon as there is no match, can exit
+ disks_xml = REXML::XPath.match(xml_descr, '/domain/devices/disk[@device="disk"]')
disks_xml.each_with_index do |box_disk_xml, idx|
diskname = box_disk_xml.elements['source'].attributes['file'].rpartition('/').last

View file

@ -0,0 +1,31 @@
From 5bb08ec8150ee3ceca74c772f4c72b49b61f988f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Janek=20Ziele=C5=BAnicki?= <janek.zieleznicki@gmail.com>
Date: Mon, 18 Nov 2024 19:16:07 +0100
Subject: [PATCH 1/2] Remove config unsupported by fog-libvirt
fog-libvirt dropped support for libvirt < 1.2.8 in version v0.13.0
This config is no longer supported nor needed
---
lib/vagrant-libvirt/driver.rb | 5 -----
1 file changed, 5 deletions(-)
diff --git a/lib/vagrant-libvirt/driver.rb b/lib/vagrant-libvirt/driver.rb
index 73f0f7a45..90e0e6118 100644
--- a/lib/vagrant-libvirt/driver.rb
+++ b/lib/vagrant-libvirt/driver.rb
@@ -32,14 +32,9 @@ def connection
config = @machine.provider_config
uri = config.uri
- # Setup command for retrieving IP address for newly created machine
- # with some MAC address. Get it from dnsmasq leases table
- ip_command = %q( awk "/$mac/ {print \$1}" /proc/net/arp )
-
conn_attr = {
provider: 'libvirt',
libvirt_uri: uri,
- libvirt_ip_command: ip_command,
}
conn_attr[:libvirt_username] = config.username if config.username
conn_attr[:libvirt_password] = config.password if config.password

View file

@ -0,0 +1,41 @@
From dfb9fd59bd6eca13f4e22e5038247473f9cd108d Mon Sep 17 00:00:00 2001
From: Jarek Prokop <jprokop@redhat.com>
Date: Tue, 16 Dec 2025 12:18:01 +0100
Subject: [PATCH] Replace CGI.parse with URI equivalent.
For Ruby 4.0 compatibility, where CGI is no longer a part
of the upstream Ruby distribution.
Replace the CGI.parse with URI.decode_www_form and some filtering
on top so that the replacement keeps existing behavior.
---
lib/vagrant-libvirt/config.rb | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/lib/vagrant-libvirt/config.rb b/lib/vagrant-libvirt/config.rb
index cdee174..96261ca 100644
--- a/lib/vagrant-libvirt/config.rb
+++ b/lib/vagrant-libvirt/config.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-require 'cgi'
+require 'uri'
require 'vagrant'
require 'vagrant/action/builtin/mixin_synced_folders'
@@ -1335,8 +1335,12 @@ module VagrantPlugins
@username = nil if @username == UNSET_VALUE
@username = uri.user if uri.user
if uri.query
- params = CGI.parse(uri.query)
- @id_ssh_key_file = params['keyfile'].first if params.has_key?('keyfile')
+ params = URI
+ .decode_www_form(uri.query)
+ .select { |k, v| k == 'keyfile' }
+ .map { |_,v| v }
+ .first
+ @id_ssh_key_file = params if params
end
finalize_id_ssh_key_file

View file

@ -1,22 +0,0 @@
From 68b6228932cc499433c52bbd3b61a35a5ded0ff1 Mon Sep 17 00:00:00 2001
From: Michael Adam <obnox@samba.org>
Date: Fri, 23 Jan 2015 16:37:28 +0100
Subject: [PATCH] Remove shebang from non-executable rakefile.
---
Rakefile | 2 --
1 file changed, 2 deletions(-)
diff --git a/Rakefile b/Rakefile
index 6575983..741514f 100644
--- a/Rakefile
+++ b/Rakefile
@@ -1,5 +1,3 @@
-#!/usr/bin/env rake
-
#require 'rubygems'
#require 'bundler/setup'
require 'bundler/gem_tasks'
--
2.1.0

View file

@ -1,40 +0,0 @@
diff --git a/vagrant-libvirt.gemspec b/vagrant-libvirt.gemspec
index 83005c1..c513c6f 100644
--- a/vagrant-libvirt.gemspec
+++ b/vagrant-libvirt.gemspec
@@ -25,27 +25,27 @@ Gem::Specification.new do |s|
s.add_development_dependency(%q<rspec-core>, ["~> 2.12.2"])
s.add_development_dependency(%q<rspec-expectations>, ["~> 2.12.1"])
s.add_development_dependency(%q<rspec-mocks>, ["~> 2.12.1"])
- s.add_runtime_dependency(%q<fog>, ["~> 1.15"])
- s.add_runtime_dependency(%q<ruby-libvirt>, ["~> 0.4"])
+ s.add_runtime_dependency(%q<fog>, [">= 1.23"])
+ s.add_runtime_dependency(%q<ruby-libvirt>, [">= 0.4.0"], ["< 0.6.0"])
s.add_runtime_dependency(%q<nokogiri>, ["~> 1.6.0"])
s.add_development_dependency(%q<rake>, [">= 0"])
else
s.add_dependency(%q<rspec-core>, ["~> 2.12.2"])
s.add_dependency(%q<rspec-expectations>, ["~> 2.12.1"])
s.add_dependency(%q<rspec-mocks>, ["~> 2.12.1"])
- s.add_dependency(%q<fog>, ["~> 1.15"])
- s.add_dependency(%q<ruby-libvirt>, ["~> 0.4"])
+ s.add_dependency(%q<fog>, [">= 1.23"])
+ s.add_dependency(%q<ruby-libvirt>, [">= 0.4.0"], ["< 0.6.0"])
s.add_dependency(%q<nokogiri>, ["~> 1.6.0"])
s.add_dependency(%q<rake>, [">= 0"])
end
else
s.add_dependency(%q<rspec-core>, ["~> 2.12.2"])
s.add_dependency(%q<rspec-expectations>, ["~> 2.12.1"])
s.add_dependency(%q<rspec-mocks>, ["~> 2.12.1"])
- s.add_dependency(%q<fog>, ["~> 1.15"])
- s.add_dependency(%q<ruby-libvirt>, ["~> 0.4"])
+ s.add_dependency(%q<fog>, [">= 1.23"])
+ s.add_dependency(%q<ruby-libvirt>, [">= 0.4.0"], ["< 0.6.0"])
s.add_dependency(%q<nokogiri>, ["~> 1.6.0"])
s.add_dependency(%q<rake>, [">= 0"])
end
end
--
1.9.3

View file

@ -0,0 +1,111 @@
From 517bf7792a4f2d9f7d6062efeec9089e78c5458e Mon Sep 17 00:00:00 2001
From: Mamoru TASAKA <mtasaka@fedoraproject.org>
Date: Thu, 19 Jan 2023 16:39:17 +0900
Subject: [PATCH 1/2] Replace File.exists? with File.exist?
File.exists? is deprecated since ruby2.1 and is removed with ruby3.2.
Replace with File.exist? .
---
spec/support/libvirt_acceptance_context.rb | 2 +-
spec/support/matchers/have_file_content.rb | 2 +-
spec/unit/action/clean_machine_folder_spec.rb | 6 +++---
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/spec/support/matchers/have_file_content.rb b/spec/support/matchers/have_file_content.rb
index 9970f6b8d..20215180a 100644
--- a/spec/support/matchers/have_file_content.rb
+++ b/spec/support/matchers/have_file_content.rb
@@ -45,7 +45,7 @@
# end
RSpec::Matchers.define :have_file_content do |expected|
match do |actual|
- next false unless File.exists?(actual)
+ next false unless File.exist?(actual)
@actual = File.read(actual).chomp
@expected = if expected.is_a? String
diff --git a/spec/unit/action/clean_machine_folder_spec.rb b/spec/unit/action/clean_machine_folder_spec.rb
index faad98cde..b8ed8acc6 100644
--- a/spec/unit/action/clean_machine_folder_spec.rb
+++ b/spec/unit/action/clean_machine_folder_spec.rb
@@ -20,7 +20,7 @@
expect(subject.call(env)).to be_nil
- expect(File.exists?(machine.data_dir)).to eq(true)
+ expect(File.exist?(machine.data_dir)).to eq(true)
expect(Dir.entries(machine.data_dir)).to match_array([".", ".."])
end
end
@@ -38,7 +38,7 @@
expect(subject.call(env)).to be_nil
- expect(File.exists?(machine.data_dir)).to eq(true)
+ expect(File.exist?(machine.data_dir)).to eq(true)
expect(Dir.entries(machine.data_dir)).to match_array([".", ".."])
end
end
@@ -51,7 +51,7 @@
expect(subject.call(env)).to be_nil
- expect(File.exists?(machine.data_dir)).to eq(true)
+ expect(File.exist?(machine.data_dir)).to eq(true)
expect(Dir.entries(machine.data_dir)).to match_array([".", ".."])
end
end
From 578d3ae4296a78c8b276ff2bc5471fa045a61736 Mon Sep 17 00:00:00 2001
From: Mamoru TASAKA <mtasaka@fedoraproject.org>
Date: Thu, 19 Jan 2023 17:07:39 +0900
Subject: [PATCH 2/2] Set empty host when nil on finalize_from_uri
With ruby3.2, URI.parse now sets empty host instead of nil via:
https://github.com/ruby/ruby/commit/dd5118f8524c425894d4716b787837ad7380bb0d
Adjust test case so, also with ruby <= 3.1, forcely set empty string for host
when nil to make finalize_from_uri behavior consistent between different
host ruby versions.
---
lib/vagrant-libvirt/config.rb | 4 ++--
spec/unit/config_spec.rb | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/lib/vagrant-libvirt/config.rb b/lib/vagrant-libvirt/config.rb
index 471d40dce..dfaef6167 100644
--- a/lib/vagrant-libvirt/config.rb
+++ b/lib/vagrant-libvirt/config.rb
@@ -1320,8 +1320,8 @@ def finalize_from_uri
end
end
- # Extract host values from uri if provided, otherwise nil
- @host = uri.host
+ # Extract host values from uri if provided, otherwise set empty string
+ @host = uri.host || ""
@port = uri.port
# only override username if there is a value provided
@username = nil if @username == UNSET_VALUE
diff --git a/spec/unit/config_spec.rb b/spec/unit/config_spec.rb
index 951b3ce58..f43de4df9 100644
--- a/spec/unit/config_spec.rb
+++ b/spec/unit/config_spec.rb
@@ -86,7 +86,7 @@
],
[ # connect explicit to unix socket
{:uri => "qemu+unix:///system"},
- {:uri => "qemu+unix:///system", :connect_via_ssh => false, :host => nil, :username => nil},
+ {:uri => "qemu+unix:///system", :connect_via_ssh => false, :host => "", :username => nil},
],
[ # via libssh2 should enable ssh as well
{:uri => "qemu+libssh2://user@remote/system?known_hosts=/home/user/.ssh/known_hosts"},
@@ -139,7 +139,7 @@
],
[ # with session and using ssh infer connect by ssh and ignore host as not provided
{},
- {:uri => "qemu+ssh:///session", :qemu_use_session => true, :connect_via_ssh => true, :host => nil},
+ {:uri => "qemu+ssh:///session", :qemu_use_session => true, :connect_via_ssh => true, :host => ""},
{
:env => {'LIBVIRT_DEFAULT_URI' => "qemu+ssh:///session"},
}

View file

@ -0,0 +1,81 @@
From fcafe97cee012e4c3ae1996bb78f8d88a1077dcb Mon Sep 17 00:00:00 2001
From: Mamoru TASAKA <mtasaka@fedoraproject.org>
Date: Sun, 29 Dec 2024 18:41:57 +0900
Subject: [PATCH] TEST: Support REXML 3.3.2 output change
With https://github.com/ruby/rexml/pull/167
REXML::Document.write may chomp output string compared to before.
This change affects VagrantPlugins::ProviderLibvirt::Action::StartDomain#call
internal behavior.
Modify rspec testsuite to support this REXML behavior change.
Closes #1836 .
---
spec/unit/action/start_domain_spec.rb | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/spec/unit/action/start_domain_spec.rb b/spec/unit/action/start_domain_spec.rb
index 330612beb..af9999cf9 100644
--- a/spec/unit/action/start_domain_spec.rb
+++ b/spec/unit/action/start_domain_spec.rb
@@ -364,7 +364,8 @@
it 'should add the nvram element' do
expect(ui).to_not receive(:warn)
- expect(connection).to receive(:define_domain).with(updated_domain_xml).and_return(libvirt_domain)
+ arg_domain_xml = REXML::VERSION >= "3.3.2" ? updated_domain_xml.chomp : updated_domain_xml
+ expect(connection).to receive(:define_domain).with(arg_domain_xml).and_return(libvirt_domain)
expect(libvirt_domain).to receive(:xml_desc).and_return(domain_xml, updated_domain_xml)
expect(libvirt_domain).to receive(:autostart=)
expect(domain).to receive(:start)
@@ -385,7 +385,8 @@
it 'should keep the XML element' do
expect(ui).to_not receive(:warn)
- expect(connection).to receive(:define_domain).with(updated_domain_xml).and_return(libvirt_domain)
+ arg_domain_xml = REXML::VERSION >= "3.3.2" ? updated_domain_xml.chomp : updated_domain_xml
+ expect(connection).to receive(:define_domain).with(arg_domain_xml).and_return(libvirt_domain)
expect(libvirt_domain).to receive(:xml_desc).and_return(domain_xml, updated_domain_xml)
expect(libvirt_domain).to receive(:autostart=)
expect(domain).to receive(:start)
@@ -399,7 +399,8 @@
it 'should delete the XML element' do
expect(ui).to_not receive(:warn)
- expect(connection).to receive(:define_domain).with(updated_domain_xml).and_return(libvirt_domain)
+ arg_domain_xml = REXML::VERSION >= "3.3.2" ? updated_domain_xml.chomp : updated_domain_xml
+ expect(connection).to receive(:define_domain).with(arg_domain_xml).and_return(libvirt_domain)
expect(libvirt_domain).to receive(:xml_desc).and_return(domain_xml, updated_domain_xml)
expect(libvirt_domain).to receive(:autostart=)
expect(domain).to receive(:start)
@@ -424,7 +424,8 @@
it 'should modify the domain tpm_path' do
expect(ui).to_not receive(:warn)
expect(logger).to receive(:debug).with('tpm config changed')
- expect(connection).to receive(:define_domain).with(updated_domain_xml).and_return(libvirt_domain)
+ arg_domain_xml = REXML::VERSION >= "3.3.2" ? updated_domain_xml.chomp : updated_domain_xml
+ expect(connection).to receive(:define_domain).with(arg_domain_xml).and_return(libvirt_domain)
expect(libvirt_domain).to receive(:xml_desc).and_return(domain_xml, updated_domain_xml)
expect(libvirt_domain).to receive(:autostart=)
expect(domain).to receive(:start)
@@ -446,7 +446,8 @@
it 'should modify the domain tpm_path' do
expect(ui).to_not receive(:warn)
expect(logger).to receive(:debug).with('tpm config changed')
- expect(connection).to receive(:define_domain).with(updated_domain_xml).and_return(libvirt_domain)
+ arg_domain_xml = REXML::VERSION >= "3.3.2" ? updated_domain_xml.chomp : updated_domain_xml
+ expect(connection).to receive(:define_domain).with(arg_domain_xml).and_return(libvirt_domain)
expect(libvirt_domain).to receive(:xml_desc).and_return(domain_xml, updated_domain_xml)
expect(libvirt_domain).to receive(:autostart=)
expect(domain).to receive(:start)
@@ -509,7 +509,8 @@
it 'should modify the domain' do
expect(ui).to_not receive(:warn)
expect(logger).to receive(:debug).with('tpm config changed')
- expect(connection).to receive(:define_domain).with(updated_domain_xml).and_return(libvirt_domain)
+ arg_domain_xml = REXML::VERSION >= "3.3.2" ? updated_domain_xml.chomp : updated_domain_xml
+ expect(connection).to receive(:define_domain).with(arg_domain_xml).and_return(libvirt_domain)
expect(libvirt_domain).to receive(:xml_desc).and_return(domain_xml, updated_domain_xml)
expect(libvirt_domain).to receive(:autostart=)
expect(domain).to receive(:start)

View file

@ -1,51 +1,78 @@
%global vagrant_plugin_name vagrant-libvirt
%global vagrant_spec_commit 259c55e204674f2b006700c6d351d04250d13b04
Name: %{vagrant_plugin_name}
Version: 0.0.24
Release: 3%{?dist}
Version: 0.11.2
Release: 11%{?dist}
Summary: libvirt provider for Vagrant
Group: Development/Languages
License: MIT
URL: https://github.com/pradels/vagrant-libvirt
URL: https://github.com/vagrant-libvirt/vagrant-libvirt
Source0: https://rubygems.org/gems/%{vagrant_plugin_name}-%{version}.gem
Source1: 10-vagrant-libvirt.rules
# Adjust Vagrant's dependencies.
Patch0: vagrant-libvirt-fix-dependencies.patch
# Shebang in Rakefile doesn't make sense.
# https://github.com/pradels/vagrant-libvirt/pull/295
Patch1: vagrant-libvirt-Rakefile.patch
Requires(pre): shadow-utils
Requires(posttrans): vagrant
Requires(preun): vagrant
# The library has no official release yet. But since it is just test
# dependency, it should be fine to include the source right here.
# wget https://github.com/mitchellh/vagrant-spec/archive/03d88fe2467716b072951c2b55d78223130851a6/vagrant-spec-03d88fe2467716b072951c2b55d78223130851a6.tar.gz
Source1: https://github.com/mitchellh/vagrant-spec/archive/%{vagrant_spec_commit}/vagrant-spec-%{vagrant_spec_commit}.tar.gz
# https://github.com/vagrant-libvirt/vagrant-libvirt/pull/1709
# ruby3.2 fix wrt File.exits? removal and URI.split host result change
# A bit modified: spec/support/libvirt_acceptance_context.rb does not exist
# with 0.7.0 yet
Patch0: vagrant-libvirt-pr1709-ruby32-File_exists-URL-parse.patch
# Allow a mock object to receive synced_folders in config validation spec.
# We do not care about synced folder check when testing MAC configuration.
# https://github.com/vagrant-libvirt/vagrant-libvirt/pull/1721
Patch1: vagrant-libvirt-0.11.2-Allow-a-mock-object-to-receive-synced_folders.patch
# https://github.com/vagrant-libvirt/vagrant-libvirt/pull/1837
# related to https://github.com/ruby/rexml/pull/167
Patch2: vagrant-libvirt-pr1837-testsuite-support-rexml-332.patch
# Get rid of a warning generated due to usage of option
# no longer supported by fog-libvirt
# https://github.com/vagrant-libvirt/vagrant-libvirt/pull/1835
Patch3: vagrant-libvirt-0.12.2-Remove-config-unsupported-by-fog-libvirt.patch
# Fix compatibility with REXML 3.4.2+
# https://github.com/vagrant-libvirt/vagrant-libvirt/pull/1861
Patch4: vagrant-libvirt-0.12.2-Fix-REXML-3-4-2-compatibility.patch
# Replace CGI, removed from Ruby 4.0 bundled gems with URI.
# https://github.com/vagrant-libvirt/vagrant-libvirt/pull/1866
Patch5: vagrant-libvirt-0.12.2-Replace-CGI.parse-with-URI-equivalent.patch
# Enable QEMU Session by default
# https://github.com/vagrant-libvirt/vagrant-libvirt/pull/969
Patch100: vagrant-libvirt-0.11.2-enable-qemu-session-by-default.patch
Requires: ruby(release)
Requires: ruby(rubygems)
Requires: rubygem(fog) => 1.23
Requires: rubygem(fog) < 2
Requires: rubygem(ruby-libvirt)
#Requires: rubygem(ruby-libvirt) => 0.5.0
#Requires: rubygem(ruby-libvirt) < 0.6
Requires: rubygem(nokogiri) => 1.6.0
Requires: rubygem(nokogiri) < 1.7
Requires: rubygem(multi_json)
Requires: libvirt
# vagrant-libvirt supports only kvm and qemu for now.
# https://github.com/pradels/vagrant-libvirt#provider-options
Requires: libvirt-daemon-kvm
Requires: polkit
Requires: vagrant
BuildRequires: vagrant
BuildRequires: rubygem(rspec) < 3
BuildRequires: rubygem(fog)
BuildRequires: rubygem(ruby-libvirt)
Requires: rubygem(diffy)
Requires: rubygem(fog-libvirt) >= 0.6.0
Requires: rubygem(nokogiri) >= 1.6
Requires: rubygem(rexml)
Requires: rubygem(xml-simple)
# Vagrant changed packaging scriptlets in version 1.9.1.
Requires: vagrant >= 1.9.1
# Required by "vagrant package" command (rhbz#1292217).
Recommends: %{_bindir}/virt-sysprep
BuildRequires: vagrant >= 1.9.1
BuildRequires: rubygem(bundler)
BuildRequires: rubygem(diffy)
BuildRequires: rubygem(fog-libvirt)
BuildRequires: rubygem(rake)
BuildRequires: rubygem(rdoc)
BuildRequires: rubygem(rexml)
BuildRequires: rubygem(rspec)
BuildRequires: rubygem(thor)
BuildRequires: rubygem(xml-simple)
BuildRequires: rubygems-devel
BuildRequires: %{_bindir}/ps
BuildArch: noarch
Provides: vagrant(%{vagrant_plugin_name}) = %{version}
%description
libvirt provider for Vagrant.
%package doc
Summary: Documentation for %{name}
Group: Documentation
Requires: %{name} = %{version}-%{release}
BuildArch: noarch
@ -53,17 +80,18 @@ BuildArch: noarch
Documentation for %{name}.
%prep
gem unpack %{SOURCE0}
%setup -q -n %{vagrant_plugin_name}-%{version} -b 1
%setup -q -D -T -n %{vagrant_plugin_name}-%{version}
gem spec %{SOURCE0} -l --ruby > %{vagrant_plugin_name}.gemspec
%patch0 -p1
%patch1 -p1
%patch 0 -p1
%patch 1 -p1
%patch 2 -p1
%patch 3 -p1
%patch 4 -p1
%patch 5 -p1
%patch 100 -p1
%build
gem build %{vagrant_plugin_name}.gemspec
gem build ../%{vagrant_plugin_name}-%{version}.gemspec
%vagrant_plugin_install
%install
@ -71,54 +99,244 @@ mkdir -p %{buildroot}%{vagrant_plugin_dir}
cp -a .%{vagrant_plugin_dir}/* \
%{buildroot}%{vagrant_plugin_dir}/
# polkit rule for vagrant group.
#mkdir -p %{buildroot}%{_datadir}/polkit-1/rules.d
#install -m 0644 %{SOURCE1} %{buildroot}%{_datadir}/polkit-1/rules.d/
mkdir -p %{buildroot}%{vagrant_plugin_docdir}/polkit
install -m 0644 %{SOURCE1} %{buildroot}%{vagrant_plugin_docdir}/polkit
%check
pushd .%{vagrant_plugin_instdir}
sed -i '/:git/ s|:git.*$|:path => "%{vagrant_dir}"|' Gemfile
sed -i '/rspec/ s|\[\".*\"]|["~> 2.0"]|' vagrant-libvirt.gemspec
# Edit gemspec of vagrant-spec
pushd ../vagrant-spec-%{vagrant_spec_commit}
# Remove the git reference, which is useless in our case.
sed -i '/git / s/^/#/' vagrant-spec.gemspec
bundle exec rspec2 spec
# Relax the dependencies, since Fedora ships with newer versions.
sed -i '/thor/ s/~>/>=/' vagrant-spec.gemspec
sed -i '/rspec/ s/~>/>=/' vagrant-spec.gemspec
popd
%pre
getent group vagrant >/dev/null || groupadd -r vagrant
# Use actual gemspec for tests
cp ../%{vagrant_plugin_name}-%{version}.gemspec .%{vagrant_plugin_instdir}/%{vagrant_plugin_name}.gemspec
%posttrans
%vagrant_plugin_register %{vagrant_plugin_name}
pushd .%{vagrant_plugin_instdir}
# Create dummy Gemfile and load dependencies via gemspec file
cat > Gemfile <<EOG
gem 'vagrant'
gem 'base64'
gem 'logger'
gem 'ostruct'
gem 'rdoc'
gem 'rexml'
gem 'vagrant-spec', :path => '%{_builddir}/vagrant-spec-%{vagrant_spec_commit}'
gemspec
EOG
%preun
%vagrant_plugin_unregister %{vagrant_plugin_name}
# Unless rsync binary is present, vagrant-libvirt
# decides to use other methods of folder sync in tests,
# breaking set expectations for the test environment.
# https://github.com/vagrant-libvirt/vagrant-libvirt/issues/1415#issuecomment-985272836
# Luckily, it just needs `rsync` in $PATH for tests to pass.
tmpdir=$(mktemp -d)
touch "${tmpdir}/rsync"
chmod +x "${tmpdir}/rsync"
# Suppress deprecation warnings
GEM_PATH=%{vagrant_plugin_dir}:`ruby -e "print Gem.path.join(':')"` \
PATH="$PATH:${tmpdir}" \
bundle exec rspec spec
popd
%files
%dir %{vagrant_plugin_instdir}
%exclude %{vagrant_plugin_instdir}/.*
%license %{vagrant_plugin_instdir}/LICENSE
%doc %{vagrant_plugin_instdir}/README.md
%{vagrant_plugin_libdir}
%{vagrant_plugin_instdir}/locales
%{vagrant_plugin_instdir}/tools
%exclude %{vagrant_plugin_cache}
%exclude %{vagrant_plugin_instdir}/.gitignore
%{vagrant_plugin_spec}
# polkit
# TODO: Disabled for now, since this might have security implications.
#%exclude %{_datadir}/polkit-1/rules.d/10-vagrant-libvirt.rules
%files doc
%doc %{vagrant_plugin_docdir}
%doc %{vagrant_plugin_instdir}/example_box
%doc %{vagrant_plugin_instdir}/CHANGELOG.md
%{vagrant_plugin_instdir}/Rakefile
%{vagrant_plugin_instdir}/Gemfile
%{vagrant_plugin_instdir}/vagrant-libvirt.gemspec
%doc %{vagrant_plugin_instdir}/README.md
%{vagrant_plugin_instdir}/spec
%changelog
* Fri Jul 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 0.11.2-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
* Sat Jan 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 0.11.2-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Tue Dec 16 2025 Jarek Prokop <jprokop@redhat.com> - 0.11.2-9
- Fix Ruby 4.0 compatibility by replacing CGI with URI equivalent.
* Mon Nov 03 2025 Vít Ondruch <vondruch@redhat.com> - 0.11.2-8
- Fix compatibility with REXML 3.4.2+
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 0.11.2-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 0.11.2-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Tue Jan 07 2025 Jarek Prokop <jprokop@redhat.com> - 0.11.2-5
- Stop warning being emitted due to setting unsupported option in fog-libvirt.
* Sun Dec 29 2024 Mamoru TASAKA <mtasaka@fedoraproject.org> - 0.11.2-5
- Add some gem dependency on testsuite for ruby3.4
- Support REXML 3.3.2 output behavior change
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.11.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.11.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.11.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Sun Jan 29 2023 Bart Kus <me@bartk.us> - 0.11.2-1
- Update to vagrant-libvirt 0.11.2.
* Fri Jan 20 2023 Mamoru TASAKA <mtasaka@fedoraproject.org> - 0.7.0-5
- Backport upstream fix for ruby3.2 compatibility
(File.exists? removal, URI#parse host name result change)
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Mon Apr 11 2022 Vít Ondruch <vondruch@redhat.com> - 0.7.0-3
- Add `BR: rubygem(rake)` to fix FTBFS.
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Tue Sep 14 2021 Pavel Valena <pvalena@redhat.com> - 0.7.0-1
- Update to vagrant-libvirt 0.7.0.
Resolves: rhbz#1963360
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Mon May 17 2021 Pavel Valena <pvalena@redhat.com> - 0.4.1-2
- Fix forward_ports with ruby 3.0.
Resolves: rhbz#1947885
* Fri Apr 16 2021 Pavel Valena <pvalena@redhat.com> - 0.4.1-1
- Update to vagrant-libvirt 0.4.1.
Resolves: rhbz#1884945
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Aug 18 2020 Vít Ondruch <vondruch@redhat.com> - 0.1.2-2
- Drop dependency on Erubis.
* Thu Aug 06 2020 Pavel Valena <pvalena@redhat.com> - 0.1.2-1
- Update to vagrant-libvirt 0.1.2.
Resolves: rhbz#1833807
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.0.45-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.0.45-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Sun Sep 08 2019 Tadej Janež <tadej.j@nez.si> - 0.0.45-3
- Backport/Add useful features and fixes from upstream:
- Allow customizing of virt-sysprep behaviour on package.
- Use fetch to obtain environment variable value in package_domain.
- Halt a domain before packaging it as a box to avoid hard to debug issues.
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.0.45-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Thu Feb 14 2019 Pavel Valena <pvalena@redhat.com> - 0.0.45-1
- Update to vagrant-libvirt 0.0.45.
- Enable QEMU Session by default
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.0.43-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Nov 02 2018 Pavel Valena <pvalena@redhat.com> - 0.0.43-2
- Relax fog-core dependency to work with recently rebased one.
* Mon Oct 01 2018 pvalena <pvalena@redhat.com> - 0.0.43-1
- Update to vagrant-libvirt 0.0.43.
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.0.40-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.0.40-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Fri Dec 08 2017 Pavel Valena <pvalena@redhat.com> - 0.0.40-3
- Fix invalid XML creation on custom domain name (rhbz#1518899).
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.0.40-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Mon Jun 19 2017 Vít Ondruch <vondruch@redhat.com> - 0.0.40-1
- Update to vagrant-libvirt 0.0.40.
* Fri Feb 24 2017 Vít Ondruch <vondruch@redhat.com> - 0.0.37-4
- Fix Vagrant error when network is specified (rhbz#1426565).
* Mon Feb 13 2017 Vít Ondruch <vondruch@redhat.com> - 0.0.37-3
- Fix compatiblity with Vagrant 1.9.1.
* Mon Feb 06 2017 Vít Ondruch <vondruch@redhat.com> - 0.0.37-2
- Use file dependency rather then package dependency.
* Wed Feb 01 2017 Vít Ondruch <vondruch@redhat.com> - 0.0.37-1
- Update to vagrant-libvirt 0.0.37.
- Recommends libguestfs required by "vagrant package" (rhbz#1292217).
* Thu Jan 05 2017 Vít Ondruch <vondruch@redhat.com> - 0.0.36-2
- Fix compatibility with latest Bundler (rhbz#1409381).
* Sun Jan 1 2017 Mamoru TASAKA <mtasaka@fedoraproject.org> - 0.0.36-2
- Relax nokogiri dependency
* Mon Oct 10 2016 Vít Ondruch <vondruch@redhat.com> - 0.0.36-1
- Update to vagrant-libvirt 0.0.36.
* Tue Oct 04 2016 Vít Ondruch <vondruch@redhat.com> - 0.0.35-1
- Update to vagrant-libvirt 0.0.35.
* Wed Aug 03 2016 Vít Ondruch <vondruch@redhat.com> - 0.0.33-1
- Update to vagrant-libvirt 0.0.33.
- Drop the polkit rules. Use libvirt group instead.
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.0.32-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Wed Oct 14 2015 Josef Stribny <jstribny@redhat.com> - 0.0.32-1
- Update to 0.0.32
* Mon Oct 05 2015 Josef Stribny <jstribny@redhat.com> - 0.0.31-1
- Update to 0.0.31
* Mon Sep 14 2015 Josef Stribny <jstribny@redhat.com> - 0.0.30-5
- Drop the rest of libvirt deps, they should be pulled via ruby-libvirt
* Mon Sep 14 2015 Josef Stribny <jstribny@redhat.com> - 0.0.30-4
- Drop unnecessary explicit libvirt require
* Fri Jul 10 2015 Dan Williams <dcbw@redhat.com> - 0.0.30-3
- Fix: pass MAC addresses to vagrant to configure interfaces correctly
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.0.30-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Mon Jun 08 2015 Michael Adam <madam@redhat.com> - 0.0.30-1
- Update to 0.0.30 (#1220194)
* Tue Apr 21 2015 Josef Stribny <jstribny@redhat.com> - 0.0.26-2
- Fix: Wait for libvirt to shutdown the domain
* Mon Apr 20 2015 Josef Stribny <jstribny@redhat.com> - 0.0.26-1
- Update to 0.0.26
* Tue Mar 10 2015 Josef Stribny <jstribny@redhat.com> - 0.0.25-1
- Update to 0.0.25
* Wed Jan 28 2015 Michael Adam <madam@redhat.com> - 0.0.24-3
- Ship the polkit rules file as example in the docs package.