Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package perl-Sys-Virt for openSUSE:Factory checked in at 2026-06-08 14:16:25 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Sys-Virt (Old) and /work/SRC/openSUSE:Factory/.perl-Sys-Virt.new.2375 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Sys-Virt" Mon Jun 8 14:16:25 2026 rev:117 rq:1357578 version:12.4.0 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Sys-Virt/perl-Sys-Virt.changes 2026-05-07 15:45:26.304256375 +0200 +++ /work/SRC/openSUSE:Factory/.perl-Sys-Virt.new.2375/perl-Sys-Virt.changes 2026-06-08 14:23:04.275461984 +0200 @@ -1,0 +2,6 @@ +Fri Jun 5 17:12:03 UTC 2026 - James Fehlig <[email protected]> + +- Update to 12.4.0 + - Add all new APIs and constants available in libvirt 12.4.0 + +------------------------------------------------------------------- Old: ---- Sys-Virt-12.3.0.tar.gz New: ---- Sys-Virt-12.4.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Sys-Virt.spec ++++++ --- /var/tmp/diff_new_pack.eKqQgY/_old 2026-06-08 14:23:05.215500966 +0200 +++ /var/tmp/diff_new_pack.eKqQgY/_new 2026-06-08 14:23:05.215500966 +0200 @@ -17,7 +17,7 @@ Name: perl-Sys-Virt -Version: 12.3.0 +Version: 12.4.0 Release: 0 %define cpan_name Sys-Virt Summary: Represent and manage a libvirt hypervisor connection ++++++ Sys-Virt-12.3.0.tar.gz -> Sys-Virt-12.4.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sys-Virt-12.3.0/Build.PL new/Sys-Virt-12.4.0/Build.PL --- old/Sys-Virt-12.3.0/Build.PL 2026-05-06 09:05:04.000000000 +0200 +++ new/Sys-Virt-12.4.0/Build.PL 2026-06-05 13:17:38.000000000 +0200 @@ -17,7 +17,7 @@ use strict; use warnings; -my $libvirtver = "12.3.0"; +my $libvirtver = "12.4.0"; my $stat = system "pkg-config --atleast-version=$libvirtver libvirt"; die "cannot run pkg-config to check libvirt version" if $stat == -1; die "libvirt >= $libvirtver is required\n" unless $stat == 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sys-Virt-12.3.0/Changes new/Sys-Virt-12.4.0/Changes --- old/Sys-Virt-12.3.0/Changes 2026-05-06 09:05:04.000000000 +0200 +++ new/Sys-Virt-12.4.0/Changes 2026-06-05 13:17:38.000000000 +0200 @@ -1,5 +1,13 @@ Revision history for perl module Sys::Virt +12.4.0 2026-06-05 + + - Add support for vCPU remove event + - Add VIR_DOMAIN_SETVCPU_* constants + - Add VIR_DOMAIN_VCPU_ASYNC_UNPLUG constant + - Add VIR_DOMAIN_STATS_CPU_ENERGY_MONITOR_* constants + - Add support for channel lifecycle event + 12.3.0 2026-05-06 - Add VIR_DOMAIN_BLOCK_RESIZE_EXTEND constant diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sys-Virt-12.3.0/README new/Sys-Virt-12.4.0/README --- old/Sys-Virt-12.3.0/README 2026-05-06 09:05:04.000000000 +0200 +++ new/Sys-Virt-12.4.0/README 2026-06-05 13:17:38.000000000 +0200 @@ -8,6 +8,6 @@ Module::Build build system. For installation instructions, consult the INSTALL file. -The current minimum required version of libvirt is 12.3.0 +The current minimum required version of libvirt is 12.4.0 -- End diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sys-Virt-12.3.0/examples/events.pl new/Sys-Virt-12.4.0/examples/events.pl --- old/Sys-Virt-12.3.0/examples/events.pl 2026-05-06 09:05:04.000000000 +0200 +++ new/Sys-Virt-12.4.0/examples/events.pl 2026-06-05 13:17:38.000000000 +0200 @@ -40,6 +40,14 @@ printf "NIC MAC change: conn %s dom %s alias %s old %s new %s\n", $conn->get_uri, $dom->get_name, $alias, $oldMAC, $newMAC; } +sub vcpu_removed_event { + my $conn = shift; + my $dom = shift; + my $vcpu = shift; + + printf "vCPU removed: conn %s dom %s id %d\n", $con->get_uri, $dom->get_name, vcpu; +} + $c->domain_event_register_any(undef, Sys::Virt::Domain::EVENT_ID_LIFECYCLE, \&lifecycle_event); @@ -49,6 +57,9 @@ $c->domain_event_register_any(undef, Sys::Virt::Domain::EVENT_ID_NIC_MAC_CHANGE, \&nic_mac_change_event); +$c->domain_event_register_any(undef, + Sys::Virt::Domain::EVENT_ID_VCPU_REMOVED, + \&vcpu_removed_event); $c->register_close_callback( sub { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sys-Virt-12.3.0/lib/Sys/Virt/Domain.pm new/Sys-Virt-12.4.0/lib/Sys/Virt/Domain.pm --- old/Sys-Virt-12.3.0/lib/Sys/Virt/Domain.pm 2026-05-06 09:05:04.000000000 +0200 +++ new/Sys-Virt-12.4.0/lib/Sys/Virt/Domain.pm 2026-06-05 13:17:38.000000000 +0200 @@ -759,10 +759,11 @@ The optional C<$flags> parameter can be used to control whether the setting changes the live config or inactive config. -=item $dom->set_vcpu($cpumap, $state, [$flags]) +=item $dom->set_vcpu($cpumap, $state, [$flags=0]) Set the state of the CPUs in C<$cpumap> to C<$state>. The -C<$flags> parameter defaults to zero if not present. +C<$flags> parameter accepts one or more the SETVCPU OPTIONS +constants documented later, and defaults to 0 if omitted. =item $count = $dom->get_vcpus([$flags]) @@ -3206,6 +3207,31 @@ =back +=head2 SETVCPU OPTIONS + +The following constants are used to control what setting vCPUs +changes. + +=over 4 + +=item Sys::Virt::Domain::SETVCPU_AFFECT_CURRENT + +Modify the current state + +=item Sys::Virt::Domain::SETVCPU_AFFECT_LIVE + +Modify only the live state of the domain + +=item Sys::Virt::Domain::SETVCPU_AFFECT_CONFIG + +Modify only the persistent config of the domain + +=item Sys::Virt::Domain::SETVCPU_ASYNC_UNPLUG + +Do not wait for the guest to comply with the request + +=back + =head2 MIGRATE OPTIONS The following constants are used to control how migration @@ -3910,6 +3936,10 @@ Flag to make vcpus added hot(un)pluggable +=item Sys::Virt::Domain::VCPU_ASYNC_UNPLUG + +Flag to not wait for the guest to comply with unplug request(s) + =back =head2 STATE CHANGE EVENTS @@ -4275,12 +4305,6 @@ The second parameter, C<reason>, matches one of the following constants -=item Sys::Virt::Domain::EVENT_ID_MIGRATION_ITERATION - -Domain migration progress iteration. The C<iteration> parameter -to the callback will specify the number of iterations migration -has made over guest RAM. - =over 4 =item Sys::Virt::Domain::EVENT_AGENT_LIFECYCLE_REASON_UNKNOWN @@ -4297,6 +4321,12 @@ =back +=item Sys::Virt::Domain::EVENT_ID_MIGRATION_ITERATION + +Domain migration progress iteration. The C<iteration> parameter +to the callback will specify the number of iterations migration +has made over guest RAM. + =item Sys::Virt::Domain::EVENT_ID_JOB_COMPLETED Domain background job completion notification. The callback @@ -4333,6 +4363,46 @@ The event occurs when the guest changes MAC address on one of its virtual network interfaces. +=item Sys::Virt::Domain::EVENT_ID_VCPU_REMOVED + +This event occurs when a vCPU is removed from the domain. + +=item Sys::Virt::Domain::EVENT_ID_CHANNEL_LIFECYCLE + +Domain channel lifecycle events. The C<state> parameter +to the callback will match one of the constants + +=over 4 + +=item Sys::Virt::Domain::EVENT_CHANNEL_LIFECYCLE_STATE_CONNECTED + +The channel is now connected + +=item Sys::Virt::Domain::EVENT_CHANNEL_LIFECYCLE_STATE_DISCONNECTED + +The channel is now disconnected + +=back + +The second parameter, C<reason>, matches one of the following +constants + +=over 4 + +=item Sys::Virt::Domain::EVENT_CHANNEL_LIFECYCLE_REASON_UNKNOWN + +The reason is unknown + +=item Sys::Virt::Domain::EVENT_CHANNEL_LIFECYCLE_REASON_DOMAIN_STARTED + +The domain was initially booted + +=item Sys::Virt::Domain::EVENT_CHANNEL_LIFECYCLE_REASON_CHANNEL + +The channel on a running guest changed state + +=back + =back =head2 IO ERROR EVENT CONSTANTS @@ -5579,6 +5649,36 @@ The number of bytes of last level cache that the domain is using as an unsigned long long. +=item Sys::Virt::Domain::STATS_CPU_ENERGY_MONITOR_COUNT + +The number of energy monitors for this domain, as an unsigned int. + +=item Sys::Virt::Domain::STATS_CPU_ENERGY_MONITOR_PREFIX + +Prefix for an individual energy monitor group. Concatenate with +the monitor index and one of the "cpu.energy.monitor.<i>." suffix +constants below to form a full parameter name. + +=item Sys::Virt::Domain::STATS_CPU_ENERGY_MONITOR_SUFFIX_NAME + +Name of the monitor group as a string. + +=item Sys::Virt::Domain::STATS_CPU_ENERGY_MONITOR_SUFFIX_VCPUS + +vCPU set covered by the monitor group as a string. + +=item Sys::Virt::Domain::STATS_CPU_ENERGY_MONITOR_SUFFIX_PKG_COUNT + +Number of PERF_PKG nodes the monitor group exposes, as an unsigned int. + +=item Sys::Virt::Domain::STATS_CPU_ENERGY_MONITOR_SUFFIX_PKG_PREFIX + +Prefix for a single mon_PERF_PKG node inside a monitor group. + +=item Sys::Virt::Domain::STATS_CPU_ENERGY_MONITOR_SUFFIX_PKG_SUFFIX_ID + +Kernel-assigned mon_PERF_PKG node id, as an unsigned int. + =back =item Sys::Virt::Domain::STATS_INTERFACE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sys-Virt-12.3.0/lib/Sys/Virt.pm new/Sys-Virt-12.4.0/lib/Sys/Virt.pm --- old/Sys-Virt-12.3.0/lib/Sys/Virt.pm 2026-05-06 09:05:04.000000000 +0200 +++ new/Sys-Virt-12.4.0/lib/Sys/Virt.pm 2026-06-05 13:17:38.000000000 +0200 @@ -92,7 +92,7 @@ use Sys::Virt::DomainCheckpoint; use Sys::Virt::Stream; -our $VERSION = '12.3.0'; +our $VERSION = '12.4.0'; require XSLoader; XSLoader::load('Sys::Virt', $VERSION); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sys-Virt-12.3.0/lib/Sys/Virt.xs new/Sys-Virt-12.4.0/lib/Sys/Virt.xs --- old/Sys-Virt-12.3.0/lib/Sys/Virt.xs 2026-05-06 09:05:04.000000000 +0200 +++ new/Sys-Virt-12.4.0/lib/Sys/Virt.xs 2026-06-05 13:17:38.000000000 +0200 @@ -1471,6 +1471,88 @@ static int +_domain_event_vcpu_removed_callback(virConnectPtr con, + virDomainPtr dom, + unsigned int vcpuid, + void *opaque) +{ + AV *data = opaque; + SV **self; + SV **cb; + SV *domref; + dSP; + + self = av_fetch(data, 0, 0); + cb = av_fetch(data, 1, 0); + + SvREFCNT_inc(*self); + + ENTER; + SAVETMPS; + + PUSHMARK(SP); + XPUSHs(*self); + domref = sv_newmortal(); + sv_setref_pv(domref, "Sys::Virt::Domain", (void *) dom); + virDomainRef(dom); + XPUSHs(domref); + XPUSHs(sv_2mortal(newSViv(vcpuid))); + PUTBACK; + + call_sv(*cb, G_DISCARD); + + FREETMPS; + LEAVE; + + SvREFCNT_dec(*self); + + return 0; +} + + +static int +_domain_event_channel_lifecycle_callback(virConnectPtr con, + virDomainPtr dom, + int state, + int reason, + void *opaque) +{ + AV *data = opaque; + SV **self; + SV **cb; + SV *domref; + dSP; + + self = av_fetch(data, 0, 0); + cb = av_fetch(data, 1, 0); + + SvREFCNT_inc(*self); + + ENTER; + SAVETMPS; + + PUSHMARK(SP); + XPUSHs(*self); + domref = sv_newmortal(); + sv_setref_pv(domref, "Sys::Virt::Domain", (void*)dom); + virDomainRef(dom); + XPUSHs(domref); + XPUSHs(sv_2mortal(newSViv(state))); + XPUSHs(sv_2mortal(newSViv(reason))); + PUTBACK; + + call_sv(*cb, G_DISCARD); + + FREETMPS; + LEAVE; + + SvREFCNT_dec(*self); + + return 0; +} + + +static int _network_event_lifecycle_callback(virConnectPtr con, virNetworkPtr net, int event, @@ -4191,6 +4273,12 @@ case VIR_DOMAIN_EVENT_ID_NIC_MAC_CHANGE: callback = VIR_DOMAIN_EVENT_CALLBACK(_domain_event_nic_mac_change_callback); break; + case VIR_DOMAIN_EVENT_ID_VCPU_REMOVED: + callback = VIR_DOMAIN_EVENT_CALLBACK(_domain_event_vcpu_removed_callback); + break; + case VIR_DOMAIN_EVENT_ID_CHANNEL_LIFECYCLE: + callback = VIR_DOMAIN_EVENT_CALLBACK(_domain_event_channel_lifecycle_callback); + break; default: callback = VIR_DOMAIN_EVENT_CALLBACK(_domain_event_generic_callback); break; @@ -10238,6 +10326,12 @@ REGISTER_CONSTANT(VIR_DOMAIN_AFFECT_CONFIG, AFFECT_CONFIG); + REGISTER_CONSTANT(VIR_DOMAIN_SETVCPU_AFFECT_CURRENT, SETVCPU_AFFECT_CURRENT); + REGISTER_CONSTANT(VIR_DOMAIN_SETVCPU_AFFECT_LIVE, SETVCPU_AFFECT_LIVE); + REGISTER_CONSTANT(VIR_DOMAIN_SETVCPU_AFFECT_CONFIG, SETVCPU_AFFECT_CONFIG); + REGISTER_CONSTANT(VIR_DOMAIN_SETVCPU_ASYNC_UNPLUG, SETVCPU_ASYNC_UNPLUG); + + REGISTER_CONSTANT(VIR_DOMAIN_JOB_NONE, JOB_NONE); REGISTER_CONSTANT(VIR_DOMAIN_JOB_BOUNDED, JOB_BOUNDED); REGISTER_CONSTANT(VIR_DOMAIN_JOB_UNBOUNDED, JOB_UNBOUNDED); @@ -10331,6 +10425,8 @@ REGISTER_CONSTANT(VIR_DOMAIN_EVENT_ID_MEMORY_FAILURE, EVENT_ID_MEMORY_FAILURE); REGISTER_CONSTANT(VIR_DOMAIN_EVENT_ID_MEMORY_DEVICE_SIZE_CHANGE, EVENT_ID_MEMORY_DEVICE_SIZE_CHANGE); REGISTER_CONSTANT(VIR_DOMAIN_EVENT_ID_NIC_MAC_CHANGE, EVENT_ID_NIC_MAC_CHANGE); + REGISTER_CONSTANT(VIR_DOMAIN_EVENT_ID_VCPU_REMOVED, EVENT_ID_VCPU_REMOVED); + REGISTER_CONSTANT(VIR_DOMAIN_EVENT_ID_CHANNEL_LIFECYCLE, EVENT_ID_CHANNEL_LIFECYCLE); REGISTER_CONSTANT(VIR_DOMAIN_EVENT_WATCHDOG_NONE, EVENT_WATCHDOG_NONE); REGISTER_CONSTANT(VIR_DOMAIN_EVENT_WATCHDOG_PAUSE, EVENT_WATCHDOG_PAUSE); @@ -10365,6 +10461,13 @@ REGISTER_CONSTANT(VIR_CONNECT_DOMAIN_EVENT_AGENT_LIFECYCLE_REASON_DOMAIN_STARTED, EVENT_AGENT_LIFECYCLE_REASON_DOMAIN_STARTED); REGISTER_CONSTANT(VIR_CONNECT_DOMAIN_EVENT_AGENT_LIFECYCLE_REASON_UNKNOWN, EVENT_AGENT_LIFECYCLE_REASON_UNKNOWN); + REGISTER_CONSTANT(VIR_CONNECT_DOMAIN_EVENT_CHANNEL_LIFECYCLE_STATE_CONNECTED, EVENT_CHANNEL_LIFECYCLE_STATE_CONNECTED); + REGISTER_CONSTANT(VIR_CONNECT_DOMAIN_EVENT_CHANNEL_LIFECYCLE_STATE_DISCONNECTED, EVENT_CHANNEL_LIFECYCLE_STATE_DISCONNECTED); + + REGISTER_CONSTANT(VIR_CONNECT_DOMAIN_EVENT_CHANNEL_LIFECYCLE_REASON_UNKNOWN, EVENT_CHANNEL_LIFECYCLE_REASON_UNKNOWN); + REGISTER_CONSTANT(VIR_CONNECT_DOMAIN_EVENT_CHANNEL_LIFECYCLE_REASON_DOMAIN_STARTED, EVENT_CHANNEL_LIFECYCLE_REASON_DOMAIN_STARTED); + REGISTER_CONSTANT(VIR_CONNECT_DOMAIN_EVENT_CHANNEL_LIFECYCLE_REASON_CHANNEL, EVENT_CHANNEL_LIFECYCLE_REASON_CHANNEL); + REGISTER_CONSTANT_STR(VIR_DOMAIN_MEMORY_HARD_LIMIT, MEMORY_HARD_LIMIT); REGISTER_CONSTANT_STR(VIR_DOMAIN_MEMORY_SOFT_LIMIT, MEMORY_SOFT_LIMIT); REGISTER_CONSTANT_STR(VIR_DOMAIN_MEMORY_MIN_GUARANTEE, MEMORY_MIN_GUARANTEE); @@ -10484,6 +10587,7 @@ REGISTER_CONSTANT(VIR_DOMAIN_VCPU_MAXIMUM, VCPU_MAXIMUM); REGISTER_CONSTANT(VIR_DOMAIN_VCPU_GUEST, VCPU_GUEST); REGISTER_CONSTANT(VIR_DOMAIN_VCPU_HOTPLUGGABLE, VCPU_HOTPLUGGABLE); + REGISTER_CONSTANT(VIR_DOMAIN_VCPU_ASYNC_UNPLUG, VCPU_ASYNC_UNPLUG); REGISTER_CONSTANT(VIR_DOMAIN_SHUTDOWN_DEFAULT, SHUTDOWN_DEFAULT); @@ -10911,6 +11015,13 @@ REGISTER_CONSTANT_STR(VIR_DOMAIN_STATS_CPU_CACHE_MONITOR_SUFFIX_BANK_SUFFIX_ID, STATS_CPU_CACHE_MONITOR_SUFFIX_BANK_SUFFIX_ID); REGISTER_CONSTANT_STR(VIR_DOMAIN_STATS_CPU_CACHE_MONITOR_SUFFIX_NAME, STATS_CPU_CACHE_MONITOR_SUFFIX_NAME); REGISTER_CONSTANT_STR(VIR_DOMAIN_STATS_CPU_CACHE_MONITOR_SUFFIX_VCPUS, STATS_CPU_CACHE_MONITOR_SUFFIX_VCPUS); + REGISTER_CONSTANT_STR(VIR_DOMAIN_STATS_CPU_ENERGY_MONITOR_COUNT, STATS_CPU_ENERGY_MONITOR_COUNT); + REGISTER_CONSTANT_STR(VIR_DOMAIN_STATS_CPU_ENERGY_MONITOR_PREFIX, STATS_CPU_ENERGY_MONITOR_PREFIX); + REGISTER_CONSTANT_STR(VIR_DOMAIN_STATS_CPU_ENERGY_MONITOR_SUFFIX_NAME, STATS_CPU_ENERGY_MONITOR_SUFFIX_NAME); + REGISTER_CONSTANT_STR(VIR_DOMAIN_STATS_CPU_ENERGY_MONITOR_SUFFIX_VCPUS, STATS_CPU_ENERGY_MONITOR_SUFFIX_VCPUS); + REGISTER_CONSTANT_STR(VIR_DOMAIN_STATS_CPU_ENERGY_MONITOR_SUFFIX_PKG_COUNT, STATS_CPU_ENERGY_MONITOR_SUFFIX_PKG_COUNT); + REGISTER_CONSTANT_STR(VIR_DOMAIN_STATS_CPU_ENERGY_MONITOR_SUFFIX_PKG_PREFIX, STATS_CPU_ENERGY_MONITOR_SUFFIX_PKG_PREFIX); + REGISTER_CONSTANT_STR(VIR_DOMAIN_STATS_CPU_ENERGY_MONITOR_SUFFIX_PKG_SUFFIX_ID, STATS_CPU_ENERGY_MONITOR_SUFFIX_PKG_SUFFIX_ID); REGISTER_CONSTANT_STR(VIR_DOMAIN_STATS_CPU_HALTPOLL_FAIL_TIME, STATS_CPU_HALTPOLL_FAIL_TIME); REGISTER_CONSTANT_STR(VIR_DOMAIN_STATS_CPU_HALTPOLL_SUCCESS_TIME, STATS_CPU_HALTPOLL_SUCCESS_TIME); REGISTER_CONSTANT_STR(VIR_DOMAIN_STATS_CPU_SYSTEM, STATS_CPU_SYSTEM); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sys-Virt-12.3.0/t/030-api-coverage.t new/Sys-Virt-12.4.0/t/030-api-coverage.t --- old/Sys-Virt-12.3.0/t/030-api-coverage.t 2026-05-06 09:05:04.000000000 +0200 +++ new/Sys-Virt-12.4.0/t/030-api-coverage.t 2026-06-05 13:17:38.000000000 +0200 @@ -101,6 +101,8 @@ virConnectDomainEventMemoryFailureCallback virConnectDomainEventMemoryDeviceSizeChangeCallback virConnectDomainEventNICMACChangeCallback +virConnectDomainEventVcpuRemovedCallback +virConnectDomainEventChannelLifecycleCallback virConnectNetworkEventLifecycleCallback virConnectNetworkEventMetadataChangeCallback ++++++ _service ++++++ --- /var/tmp/diff_new_pack.eKqQgY/_old 2026-06-08 14:23:05.575515894 +0200 +++ /var/tmp/diff_new_pack.eKqQgY/_new 2026-06-08 14:23:05.599516889 +0200 @@ -1,7 +1,7 @@ <services> <service name="tar_scm" mode="manual"> <param name="filename">Sys-Virt</param> - <param name="revision">v12.3.0</param> + <param name="revision">v12.4.0</param> <param name="scm">git</param> <param name="submodules">disable</param> <param name="url">https://gitlab.com/libvirt/libvirt-perl.git</param>
