Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/actions/setup-strawberry-perl/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ runs:
perl C:\Strawberry\perl\bin\cpanm --notest ^
Authen::NTLM ^
Date::Manip ^
DateTime ^
Email::Send::SMTP::Gmail ^
HTTP::ProxyPAC ^
IO::Socket::SSL ^
Expand Down
1 change: 1 addition & 0 deletions .github/scripts/windows/pp-modules.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ Tie::RefHash::Weak
Win32::Job
XML::LibXML::SAX
Safe
Specio::PP
apps::backup::backupexec::local::plugin
apps::backup::backupexec::local::mode::alerts
apps::backup::backupexec::local::mode::disks
Expand Down
11 changes: 11 additions & 0 deletions .github/workflows/packaging-plugins-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,17 @@ jobs:
}
Write-Host "Standalone version smoke-test OK."

# The WSUS synchronization mode uses DateTime, whose Specio
# implementation is selected dynamically. Ensure the pure-Perl
# implementation is embedded and the mode can load without Perl on PATH.
$wsus = & $exe --plugin apps::microsoft::wsus::local::plugin --mode synchronisation-status --help 2>&1 | Out-String
Write-Host $wsus
if ($wsus -match 'Cannot load module' -or $wsus -notmatch 'critical-last-synchronisation-status') {
Write-Error "WSUS synchronization mode failed to load from the standalone executable."
exit 1
}
Write-Host "WSUS synchronization mode smoke-test OK."

# Exercise each HTTP backend with a real request so its native XS stack is
# loaded (lwp -> Net::SSLeay/OpenSSL; curl -> Net::Curl/libcurl, loaded
# lazily only on an actual curl request). The target port is dead, so the
Expand Down
6 changes: 6 additions & 0 deletions src/apps/microsoft/wsus/local/mode/synchronisationstatus.pm
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,12 @@

package apps::microsoft::wsus::local::mode::synchronisationstatus;

# Specio's XS implementation is loaded dynamically and is not reliably
# detected by PAR::Packer. Force its bundled pure-Perl implementation on Windows.
BEGIN {
$ENV{SPECIO_IMPLEMENTATION} = 'PP' if $^O eq 'MSWin32';
}

use base qw(centreon::plugins::templates::counter);

use strict;
Expand Down
Loading