From 118a60349ec811294d14f47d299ea7ff7c43faf3 Mon Sep 17 00:00:00 2001 From: omercier Date: Mon, 18 May 2026 11:14:14 +0200 Subject: [PATCH 01/18] feat(centreon_plugins.exe): attempt to import build to CI Refs: CTOR-2187 --- .github/patch/ntp.diff | 28 +++ .github/scripts/build_centreon_plugins_64.bat | 232 ++++++++++++++++++ ...cker-builder-packaging-plugins-windows.yml | 100 ++++++++ .../workflows/packaging-plugins-windows.yml | 118 +++++++++ resources/windows/centreon.ico | Bin 0 -> 270398 bytes 5 files changed, 478 insertions(+) create mode 100644 .github/patch/ntp.diff create mode 100644 .github/scripts/build_centreon_plugins_64.bat create mode 100644 .github/workflows/docker-builder-packaging-plugins-windows.yml create mode 100644 .github/workflows/packaging-plugins-windows.yml create mode 100644 resources/windows/centreon.ico diff --git a/.github/patch/ntp.diff b/.github/patch/ntp.diff new file mode 100644 index 0000000000..b2d8f5efde --- /dev/null +++ b/.github/patch/ntp.diff @@ -0,0 +1,28 @@ +--- NTP.pm ++++ NTP.pm +@@ -171,14 +171,17 @@ + + ## receive with deadline + my $data; +- eval { +- local $SIG{ALRM} = sub { die "Net::NTP timed out getting NTP packet\n"; }; +- alarm($TIMEOUT); +- $sock->recv($data, 960) +- or die "recv() failed: $!\n"; +- alarm(0); +- }; +- alarm 0; ++ my $rin = ''; ++ vec($rin, $sock->fileno(), 1) = 1; ++ my $rout = $rin; ++ select($rout, undef, undef, $TIMEOUT); ++ if (vec($rout, $sock->fileno(), 1)) { ++ $sock->recv($data, 960) ++ or die "recv() failed: $!\n"; ++ } ++ else { ++ die "Net::NTP timed out getting NTP packet\n"; ++ } + + my $rectime = time; # T4 + my $pkt = Net::NTP::Packet->decode($data, $xmttime, $rectime); diff --git a/.github/scripts/build_centreon_plugins_64.bat b/.github/scripts/build_centreon_plugins_64.bat new file mode 100644 index 0000000000..a2ca81eb31 --- /dev/null +++ b/.github/scripts/build_centreon_plugins_64.bat @@ -0,0 +1,232 @@ +@ECHO OFF + +SET VERSION_PLUGIN=20260500 + +set PERL_INSTALL_DIR=C:\Strawberry +SET ICO_FILE=resources/windows/centreon.ico +SET RC_FILE=centreon.rc + +CHDIR /d %~dp0 + +( +ECHO #define PP_MANIFEST_FILEFLAGS 0 +ECHO #include ^ +ECHO. +ECHO CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "winres\\pp.manifest" +ECHO. +ECHO VS_VERSION_INFO VERSIONINFO +ECHO FILEVERSION 0,0,0,0 +ECHO PRODUCTVERSION 0,0,0,0 +ECHO FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +ECHO FILEFLAGS PP_MANIFEST_FILEFLAGS +ECHO FILEOS VOS_NT_WINDOWS32 +ECHO FILETYPE VFT_APP +ECHO FILESUBTYPE VFT2_UNKNOWN +ECHO BEGIN +ECHO BLOCK "StringFileInfo" +ECHO BEGIN +ECHO BLOCK "000004B0" +ECHO BEGIN +ECHO VALUE "CompanyName", "Centreon\0" +ECHO VALUE "FileDescription", " \0" +ECHO VALUE "FileVersion", "1.0.0.0\0" +ECHO VALUE "InternalName", " \0" +ECHO VALUE "LegalCopyright", " \0" +ECHO VALUE "LegalTrademarks", " \0" +ECHO VALUE "OriginalFilename", " \0" +ECHO VALUE "ProductName", "centreon-plugins\0" +ECHO VALUE "ProductVersion", "%VERSION_PLUGIN%\0" +ECHO END +ECHO END +ECHO BLOCK "VarFileInfo" +ECHO BEGIN +ECHO VALUE "Translation", 0x00, 0x04B0 +ECHO END +ECHO END +ECHO. +ECHO WINEXE ICON winres\\pp.ico +)> %RC_FILE% + +FOR /f "delims=" %%i IN ('DIR /ad /B %PERL_INSTALL_DIR%\cpan\build\PAR-Packer-*') DO SET "PAR_PACKER_DIRNAME=%%i" +SET PAR_PACKER_SRC=%PERL_INSTALL_DIR%\cpan\build\%PAR_PACKER_DIRNAME% + +COPY /Y %ICO_FILE% %PAR_PACKER_SRC%\myldr\winres\pp.ico +COPY /Y %RC_FILE% %PAR_PACKER_SRC%\myldr\winres\pp.rc +IF EXIST %PAR_PACKER_SRC%\myldr\ppresource.coff DEL %PAR_PACKER_SRC%\myldr\ppresource.coff +CD /D %PAR_PACKER_SRC%\myldr\ && perl Makefile.PL +CD /D %PAR_PACKER_SRC%\myldr\ && gmake boot.exe +CD /D %PAR_PACKER_SRC%\myldr\ && gmake Static.pm +ATTRIB -R %PERL_INSTALL_DIR%\perl\site\lib\PAR\StrippedPARL\Static.pm +COPY /Y %PAR_PACKER_SRC%\myldr\Static.pm %PERL_INSTALL_DIR%\perl\site\lib\PAR\StrippedPARL\Static.pm + +CHDIR /d %~dp0 +SET PAR_VERBATIM=1 + +CMD /C %PERL_INSTALL_DIR%\perl\site\bin\pp --lib=centreon-plugins\src\ ^ +-o resources\scripts\x64\centreon\centreon_plugins.exe centreon-plugins\src\centreon_plugins.pl ^ +--unicode ^ +-X IO::Socket::INET6 ^ +--link=%PERL_INSTALL_DIR%\c\bin\libxml2-2__.dll ^ +--link=%PERL_INSTALL_DIR%\c\bin\libiconv-2__.dll ^ +--link=%PERL_INSTALL_DIR%\c\bin\liblzma-5__.dll ^ +--link=%PERL_INSTALL_DIR%\c\bin\zlib1__.dll ^ +--link=%PERL_INSTALL_DIR%\c\bin\libcrypto-1_1-x64__.dll ^ +--link=%PERL_INSTALL_DIR%\c\bin\libssl-1_1-x64__.dll ^ +-M Authen::NTLM ^ +-M Date::Manip ^ +-M Email::Send::SMTP::Gmail ^ +-M HTTP::ProxyPAC ^ +-M IO::Socket::SSL ^ +-M JE ^ +-M JSON::XS ^ +-M Net::Curl::Easy ^ +-M Net::FTPSSL ^ +-M Net::NTP ^ +-M Net::SSLeay ^ +-M Pod::Simple::Search ^ +-M Tie::RefHash::Weak ^ +-M Win32::Job ^ +-M XML::LibXML::SAX ^ +-M Safe ^ +-M apps::backup::backupexec::local::plugin ^ +-M apps::backup::backupexec::local::mode::alerts ^ +-M apps::backup::backupexec::local::mode::disks ^ +-M apps::backup::backupexec::local::mode::jobs ^ +-M apps::backup::backupexec::local::mode::listdisks ^ +-M apps::backup::netbackup::local::plugin ^ +-M apps::backup::netbackup::local::mode::dedupstatus ^ +-M apps::backup::netbackup::local::mode::drivecleaning ^ +-M apps::backup::netbackup::local::mode::drivestatus ^ +-M apps::backup::netbackup::local::mode::jobstatus ^ +-M apps::backup::netbackup::local::mode::listpolicies ^ +-M apps::backup::netbackup::local::mode::tapeusage ^ +-M apps::backup::veeam::local::plugin ^ +-M apps::backup::veeam::local::mode::jobstatus ^ +-M apps::backup::veeam::local::mode::licenses ^ +-M apps::backup::veeam::local::mode::listjobs ^ +-M apps::backup::veeam::local::mode::listrepositories ^ +-M apps::backup::veeam::local::mode::repositories ^ +-M apps::backup::veeam::local::mode::tapejobs ^ +-M apps::backup::veeam::local::mode::vsbjobs ^ +-M apps::centreon::local::plugin ^ +-M apps::centreon::local::mode::downtimetrap ^ +-M apps::centreon::local::mode::centreonpluginsversion ^ +-M apps::citrix::local::plugin ^ +-M apps::citrix::local::mode::license ^ +-M apps::citrix::local::mode::session ^ +-M apps::citrix::local::mode::zone ^ +-M apps::citrix::local::mode::folder ^ +-M apps::microsoft::activedirectory::local::plugin ^ +-M apps::microsoft::activedirectory::local::mode::dcdiag ^ +-M apps::microsoft::activedirectory::local::mode::dfsrbacklog ^ +-M apps::microsoft::activedirectory::local::mode::netdom ^ +-M apps::microsoft::exchange::local::plugin ^ +-M apps::microsoft::exchange::local::mode::activesyncmailbox ^ +-M apps::microsoft::exchange::local::mode::databases ^ +-M apps::microsoft::exchange::local::mode::listdatabases ^ +-M apps::microsoft::exchange::local::mode::imapmailbox ^ +-M apps::microsoft::exchange::local::mode::mailboxes ^ +-M apps::microsoft::exchange::local::mode::mapimailbox ^ +-M apps::microsoft::exchange::local::mode::outlookwebservices ^ +-M apps::microsoft::exchange::local::mode::owamailbox ^ +-M apps::microsoft::exchange::local::mode::queues ^ +-M apps::microsoft::exchange::local::mode::replicationhealth ^ +-M apps::microsoft::exchange::local::mode::services ^ +-M apps::microsoft::hyperv::2012::local::plugin ^ +-M apps::microsoft::hyperv::2012::local::mode::listnodevms ^ +-M apps::microsoft::hyperv::2012::local::mode::scvmmdiscovery ^ +-M apps::microsoft::hyperv::2012::local::mode::scvmmintegrationservice ^ +-M apps::microsoft::hyperv::2012::local::mode::scvmmsnapshot ^ +-M apps::microsoft::hyperv::2012::local::mode::scvmmvmstatus ^ +-M apps::microsoft::hyperv::2012::local::mode::nodeintegrationservice ^ +-M apps::microsoft::hyperv::2012::local::mode::nodereplication ^ +-M apps::microsoft::hyperv::2012::local::mode::nodesnapshot ^ +-M apps::microsoft::hyperv::2012::local::mode::nodevmstatus ^ +-M apps::microsoft::iis::local::plugin ^ +-M apps::microsoft::iis::local::mode::listapplicationpools ^ +-M apps::microsoft::iis::local::mode::applicationpoolstate ^ +-M apps::microsoft::iis::local::mode::listsites ^ +-M apps::microsoft::iis::local::mode::webservicestatistics ^ +-M apps::microsoft::mscs::local::plugin ^ +-M apps::microsoft::mscs::local::mode::listnodes ^ +-M apps::microsoft::mscs::local::mode::listresources ^ +-M apps::microsoft::mscs::local::mode::networkstatus ^ +-M apps::microsoft::mscs::local::mode::nodestatus ^ +-M apps::microsoft::mscs::local::mode::resourcestatus ^ +-M apps::microsoft::mscs::local::mode::resourcegroupstatus ^ +-M apps::microsoft::sccm::local::plugin ^ +-M apps::microsoft::sccm::local::mode::databasereplicationstatus ^ +-M apps::microsoft::sccm::local::mode::sitestatus ^ +-M apps::microsoft::wsus::local::plugin ^ +-M apps::microsoft::wsus::local::mode::computersstatus ^ +-M apps::microsoft::wsus::local::mode::updatesstatus ^ +-M apps::microsoft::wsus::local::mode::synchronisationstatus ^ +-M apps::microsoft::wsus::local::mode::serverstatistics ^ +-M apps::protocols::ldap::plugin ^ +-M apps::protocols::ldap::mode::login ^ +-M apps::protocols::ldap::mode::search ^ +-M apps::protocols::ftp::plugin ^ +-M apps::protocols::ftp::mode::commands ^ +-M apps::protocols::ftp::mode::date ^ +-M apps::protocols::ftp::mode::filescount ^ +-M apps::protocols::ftp::mode::login ^ +-M apps::protocols::http::plugin ^ +-M apps::protocols::http::mode::expectedcontent ^ +-M apps::protocols::http::mode::response ^ +-M apps::protocols::tcp::plugin ^ +-M apps::protocols::tcp::mode::responsetime ^ +-M apps::protocols::x509::plugin ^ +-M apps::protocols::x509::custom::file ^ +-M apps::protocols::x509::custom::https ^ +-M apps::protocols::x509::custom::tcp ^ +-M apps::protocols::x509::mode::certificate ^ +-M centreon::common::protocols::ldap::lib::ldap ^ +-M centreon::common::powershell::exchange::powershell ^ +-M centreon::common::powershell::functions ^ +-M centreon::common::powershell::sccm::databasereplicationstatus ^ +-M centreon::common::powershell::sccm::sitestatus ^ +-M centreon::common::powershell::windows::liststorages ^ +-M centreon::common::powershell::wsus::computersstatus ^ +-M centreon::common::powershell::wsus::updatesstatus ^ +-M centreon::common::powershell::wsus::synchronisationstatus ^ +-M centreon::common::powershell::wsus::serverstatistics ^ +-M centreon::plugins::alternative::Getopt ^ +-M centreon::plugins::backend::http::lwp ^ +-M centreon::plugins::backend::http::curl ^ +-M centreon::plugins::backend::http::curlconstants ^ +-M centreon::plugins::backend::ssh::libssh ^ +-M centreon::plugins::backend::ssh::libsshconstants ^ +-M centreon::plugins::backend::ssh::plink ^ +-M centreon::plugins::backend::ssh::sshcli ^ +-M centreon::plugins::script ^ +-M centreon::plugins::script_custom::cli ^ +-M hardware::devices::safenet::hsm::protecttoolkit::plugin ^ +-M hardware::devices::safenet::hsm::protecttoolkit::mode::hardware ^ +-M hardware::devices::safenet::hsm::protecttoolkit::mode::components::temperature ^ +-M hardware::devices::safenet::hsm::protecttoolkit::mode::components::hwstatus ^ +-M hardware::devices::safenet::hsm::protecttoolkit::mode::components::memory ^ +-M os::windows::local::plugin ^ +-M os::windows::local::mode::cmdreturn ^ +-M os::windows::local::mode::ntp ^ +-M os::windows::local::mode::pendingreboot ^ +-M os::windows::local::mode::sessions ^ +-M os::windows::local::mode::liststorages ^ +-M os::windows::local::mode::updates ^ +-M os::windows::local::mode::listcertificates ^ +-M os::windows::local::mode::certificates ^ +-M storage::dell::compellent::local::plugin ^ +-M storage::dell::compellent::local::mode::hbausage ^ +-M storage::dell::compellent::local::mode::volumeusage ^ +-M storage::emc::symmetrix::vmax::local::plugin ^ +-M storage::emc::symmetrix::vmax::local::mode::hardware ^ +-M storage::emc::symmetrix::vmax::local::mode::components::cabling ^ +-M storage::emc::symmetrix::vmax::local::mode::components::director ^ +-M storage::emc::symmetrix::vmax::local::mode::components::fabric ^ +-M storage::emc::symmetrix::vmax::local::mode::components::module ^ +-M storage::emc::symmetrix::vmax::local::mode::components::power ^ +-M storage::emc::symmetrix::vmax::local::mode::components::sparedisk ^ +-M storage::emc::symmetrix::vmax::local::mode::components::temperature ^ +-M storage::emc::symmetrix::vmax::local::mode::components::voltage ^ +--verbose + +DEL /F /Q %RC_FILE% diff --git a/.github/workflows/docker-builder-packaging-plugins-windows.yml b/.github/workflows/docker-builder-packaging-plugins-windows.yml new file mode 100644 index 0000000000..cd9b339bed --- /dev/null +++ b/.github/workflows/docker-builder-packaging-plugins-windows.yml @@ -0,0 +1,100 @@ +name: docker-builder-packaging-plugins-windows + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +on: + workflow_dispatch: + push: + branches: + - develop + paths: + - ".github/workflows/docker-builder-packaging-plugins-windows.yml" + - ".github/patch/ntp.diff" + pull_request: + paths: + - ".github/workflows/docker-builder-packaging-plugins-windows.yml" + - ".github/patch/ntp.diff" + +jobs: + dependency-scan: + uses: centreon/security-tools/.github/workflows/dependency-analysis.yml@main + + get-environment: + needs: [dependency-scan] + uses: ./.github/workflows/get-environment.yml + + build-environment: + needs: [get-environment] + if: | + needs.get-environment.outputs.skip_workflow == 'false' && + needs.get-environment.outputs.stability != 'stable' + runs-on: windows-latest + + steps: + - name: Checkout sources + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + + - name: Check cache + id: cache-perl + uses: actions/cache/restore@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 + with: + path: C:\Strawberry + key: strawberry-perl-5.42.0.1-${{ hashFiles('.github/patch/ntp.diff') }} + lookup-only: true + + - name: Install Strawberry Perl + if: steps.cache-perl.outputs.cache-hit != 'true' + shell: powershell + run: | + Invoke-WebRequest ` + -Uri https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/download/SP_54201_64bit/strawberry-perl-5.42.0.1-64bit.msi ` + -OutFile strawberry-perl.msi + Start-Process msiexec.exe -ArgumentList '/i strawberry-perl.msi /quiet /norestart' -Wait -NoNewWindow + Remove-Item strawberry-perl.msi + + - name: Install CPAN modules + if: steps.cache-perl.outputs.cache-hit != 'true' + shell: cmd + run: | + C:\Strawberry\perl\bin\cpanm --notest ^ + PAR::Packer ^ + Authen::NTLM ^ + Date::Manip ^ + Email::Send::SMTP::Gmail ^ + HTTP::ProxyPAC ^ + IO::Socket::SSL ^ + JE ^ + JSON::XS ^ + Net::Curl ^ + Net::FTPSSL ^ + Net::NTP ^ + Net::SSLeay ^ + Pod::Simple::Search ^ + Tie::RefHash::Weak ^ + Win32::Job ^ + XML::LibXML + + - name: Apply NTP patch for Windows compatibility + if: steps.cache-perl.outputs.cache-hit != 'true' + shell: powershell + run: | + $ntpPath = & C:\Strawberry\perl\bin\perl.exe -MNet::NTP -e 'print $INC{"Net/NTP.pm"}' + & "C:\Program Files\Git\usr\bin\patch.exe" $ntpPath .github\patch\ntp.diff + + - name: Save environment to cache + if: steps.cache-perl.outputs.cache-hit != 'true' + uses: actions/cache/save@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 + with: + path: C:\Strawberry + key: strawberry-perl-5.42.0.1-${{ hashFiles('.github/patch/ntp.diff') }} + + set-skip-label: + needs: [get-environment, build-environment] + if: | + needs.get-environment.outputs.skip_workflow == 'false' && + ! cancelled() && + ! contains(needs.*.result, 'failure') && + ! contains(needs.*.result, 'cancelled') + uses: ./.github/workflows/set-pull-request-skip-label.yml diff --git a/.github/workflows/packaging-plugins-windows.yml b/.github/workflows/packaging-plugins-windows.yml new file mode 100644 index 0000000000..1758020364 --- /dev/null +++ b/.github/workflows/packaging-plugins-windows.yml @@ -0,0 +1,118 @@ +name: packaging-plugins-windows + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +on: + workflow_dispatch: + push: + branches: + - develop + paths: + - ".github/workflows/packaging-plugins-windows.yml" + - ".github/scripts/build_centreon_plugins_64.bat" + - ".github/patch/ntp.diff" + pull_request: + paths: + - ".github/workflows/packaging-plugins-windows.yml" + - ".github/scripts/build_centreon_plugins_64.bat" + - ".github/patch/ntp.diff" + +jobs: + dependency-scan: + uses: centreon/security-tools/.github/workflows/dependency-analysis.yml@main + + get-environment: + needs: [dependency-scan] + uses: ./.github/workflows/get-environment.yml + + build: + needs: [get-environment] + if: | + needs.get-environment.outputs.skip_workflow == 'false' && + needs.get-environment.outputs.stability != 'stable' + runs-on: windows-latest + + steps: + - name: Checkout sources + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + + - name: Restore Perl environment from cache + id: cache-perl + uses: actions/cache/restore@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 + with: + path: C:\Strawberry + key: strawberry-perl-5.42.0.1-${{ hashFiles('.github/patch/ntp.diff') }} + + - name: Install Strawberry Perl (cache miss fallback) + if: steps.cache-perl.outputs.cache-hit != 'true' + shell: powershell + run: | + Invoke-WebRequest ` + -Uri https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/download/SP_54201_64bit/strawberry-perl-5.42.0.1-64bit.msi ` + -OutFile strawberry-perl.msi + Start-Process msiexec.exe -ArgumentList '/i strawberry-perl.msi /quiet /norestart' -Wait -NoNewWindow + Remove-Item strawberry-perl.msi + + - name: Install CPAN modules (cache miss fallback) + if: steps.cache-perl.outputs.cache-hit != 'true' + shell: cmd + run: | + C:\Strawberry\perl\bin\cpanm --notest ^ + PAR::Packer ^ + Authen::NTLM ^ + Date::Manip ^ + Email::Send::SMTP::Gmail ^ + HTTP::ProxyPAC ^ + IO::Socket::SSL ^ + JE ^ + JSON::XS ^ + Net::Curl ^ + Net::FTPSSL ^ + Net::NTP ^ + Net::SSLeay ^ + Pod::Simple::Search ^ + Tie::RefHash::Weak ^ + Win32::Job ^ + XML::LibXML + + - name: Apply NTP patch (cache miss fallback) + if: steps.cache-perl.outputs.cache-hit != 'true' + shell: powershell + run: | + $ntpPath = & C:\Strawberry\perl\bin\perl.exe -MNet::NTP -e 'print $INC{"Net/NTP.pm"}' + & "C:\Program Files\Git\usr\bin\patch.exe" $ntpPath .github\patch\ntp.diff + + - name: Add Strawberry Perl to PATH + shell: powershell + run: | + Add-Content $env:GITHUB_PATH "C:\Strawberry\perl\bin" + Add-Content $env:GITHUB_PATH "C:\Strawberry\perl\site\bin" + Add-Content $env:GITHUB_PATH "C:\Strawberry\c\bin" + + - name: Setup build directory structure + shell: cmd + run: | + mklink /J ".github\scripts\centreon-plugins" "." + mkdir ".github\scripts\resources\scripts\x64\centreon" + + - name: Build Windows executable + shell: cmd + run: .github\scripts\build_centreon_plugins_64.bat + + - name: Upload executable artifact + uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 + with: + name: centreon_plugins_windows_x64 + path: .github\scripts\resources\scripts\x64\centreon\centreon_plugins.exe + retention-days: 7 + + set-skip-label: + needs: [get-environment, build] + if: | + needs.get-environment.outputs.skip_workflow == 'false' && + ! cancelled() && + ! contains(needs.*.result, 'failure') && + ! contains(needs.*.result, 'cancelled') + uses: ./.github/workflows/set-pull-request-skip-label.yml diff --git a/resources/windows/centreon.ico b/resources/windows/centreon.ico new file mode 100644 index 0000000000000000000000000000000000000000..2b4e1b2107276914a7caf26287867ef9cac99a56 GIT binary patch literal 270398 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 literal 0 HcmV?d00001 From 2f3d2726252bbdafd231dc7b11cefb4b41b9c210 Mon Sep 17 00:00:00 2001 From: omercier Date: Fri, 22 May 2026 11:20:52 +0200 Subject: [PATCH 02/18] try with less recent version of perl --- .../workflows/docker-builder-packaging-plugins-windows.yml | 6 +++--- .github/workflows/packaging-plugins-windows.yml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/docker-builder-packaging-plugins-windows.yml b/.github/workflows/docker-builder-packaging-plugins-windows.yml index cd9b339bed..c1546cdae7 100644 --- a/.github/workflows/docker-builder-packaging-plugins-windows.yml +++ b/.github/workflows/docker-builder-packaging-plugins-windows.yml @@ -41,7 +41,7 @@ jobs: uses: actions/cache/restore@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 with: path: C:\Strawberry - key: strawberry-perl-5.42.0.1-${{ hashFiles('.github/patch/ntp.diff') }} + key: strawberry-perl-5.34.3.1-${{ hashFiles('.github/patch/ntp.diff') }} lookup-only: true - name: Install Strawberry Perl @@ -49,7 +49,7 @@ jobs: shell: powershell run: | Invoke-WebRequest ` - -Uri https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/download/SP_54201_64bit/strawberry-perl-5.42.0.1-64bit.msi ` + -Uri https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/download/sp5.34.3.1/strawberry-perl-5.34.3.1-64bit.msi ` -OutFile strawberry-perl.msi Start-Process msiexec.exe -ArgumentList '/i strawberry-perl.msi /quiet /norestart' -Wait -NoNewWindow Remove-Item strawberry-perl.msi @@ -88,7 +88,7 @@ jobs: uses: actions/cache/save@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 with: path: C:\Strawberry - key: strawberry-perl-5.42.0.1-${{ hashFiles('.github/patch/ntp.diff') }} + key: strawberry-perl-5.34.3.1-${{ hashFiles('.github/patch/ntp.diff') }} set-skip-label: needs: [get-environment, build-environment] diff --git a/.github/workflows/packaging-plugins-windows.yml b/.github/workflows/packaging-plugins-windows.yml index 1758020364..a80efa6c8e 100644 --- a/.github/workflows/packaging-plugins-windows.yml +++ b/.github/workflows/packaging-plugins-windows.yml @@ -43,14 +43,14 @@ jobs: uses: actions/cache/restore@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 with: path: C:\Strawberry - key: strawberry-perl-5.42.0.1-${{ hashFiles('.github/patch/ntp.diff') }} + key: strawberry-perl-5.34.3.1-${{ hashFiles('.github/patch/ntp.diff') }} - name: Install Strawberry Perl (cache miss fallback) if: steps.cache-perl.outputs.cache-hit != 'true' shell: powershell run: | Invoke-WebRequest ` - -Uri https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/download/SP_54201_64bit/strawberry-perl-5.42.0.1-64bit.msi ` + -Uri https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/download/sp5.34.3.1/strawberry-perl-5.34.3.1-64bit.msi ` -OutFile strawberry-perl.msi Start-Process msiexec.exe -ArgumentList '/i strawberry-perl.msi /quiet /norestart' -Wait -NoNewWindow Remove-Item strawberry-perl.msi From 0cffcf671a02ae6d5296ee98013a0ccfd229b40a Mon Sep 17 00:00:00 2001 From: omercier Date: Fri, 22 May 2026 11:32:12 +0200 Subject: [PATCH 03/18] add --force --- .github/workflows/docker-builder-packaging-plugins-windows.yml | 2 +- .github/workflows/packaging-plugins-windows.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-builder-packaging-plugins-windows.yml b/.github/workflows/docker-builder-packaging-plugins-windows.yml index c1546cdae7..7fee0320bd 100644 --- a/.github/workflows/docker-builder-packaging-plugins-windows.yml +++ b/.github/workflows/docker-builder-packaging-plugins-windows.yml @@ -58,7 +58,7 @@ jobs: if: steps.cache-perl.outputs.cache-hit != 'true' shell: cmd run: | - C:\Strawberry\perl\bin\cpanm --notest ^ + C:\Strawberry\perl\bin\cpanm --force --notest ^ PAR::Packer ^ Authen::NTLM ^ Date::Manip ^ diff --git a/.github/workflows/packaging-plugins-windows.yml b/.github/workflows/packaging-plugins-windows.yml index a80efa6c8e..4c5897786f 100644 --- a/.github/workflows/packaging-plugins-windows.yml +++ b/.github/workflows/packaging-plugins-windows.yml @@ -59,7 +59,7 @@ jobs: if: steps.cache-perl.outputs.cache-hit != 'true' shell: cmd run: | - C:\Strawberry\perl\bin\cpanm --notest ^ + C:\Strawberry\perl\bin\cpanm --force --notest ^ PAR::Packer ^ Authen::NTLM ^ Date::Manip ^ From 10612015a3fc1d193e27611925cc81e146109d57 Mon Sep 17 00:00:00 2001 From: omercier Date: Fri, 22 May 2026 11:41:43 +0200 Subject: [PATCH 04/18] wip --- ...ocker-builder-packaging-plugins-windows.yml | 18 ++++++++++++++++++ .../workflows/packaging-plugins-windows.yml | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker-builder-packaging-plugins-windows.yml b/.github/workflows/docker-builder-packaging-plugins-windows.yml index 7fee0320bd..1e04025d83 100644 --- a/.github/workflows/docker-builder-packaging-plugins-windows.yml +++ b/.github/workflows/docker-builder-packaging-plugins-windows.yml @@ -58,6 +58,24 @@ jobs: if: steps.cache-perl.outputs.cache-hit != 'true' shell: cmd run: | + C:\Strawberry\perl\bin\cpanm --notest ^ + PAR::Packer ^ + Authen::NTLM ^ + Date::Manip ^ + Email::Send::SMTP::Gmail ^ + HTTP::ProxyPAC ^ + IO::Socket::SSL ^ + JE ^ + JSON::XS ^ + Net::Curl ^ + Net::FTPSSL ^ + Net::NTP ^ + Net::SSLeay ^ + Pod::Simple::Search ^ + Tie::RefHash::Weak ^ + Win32::Job ^ + XML::LibXML + C:\Strawberry\perl\bin\cpanm --force --notest ^ PAR::Packer ^ Authen::NTLM ^ diff --git a/.github/workflows/packaging-plugins-windows.yml b/.github/workflows/packaging-plugins-windows.yml index 4c5897786f..02c95f5a3e 100644 --- a/.github/workflows/packaging-plugins-windows.yml +++ b/.github/workflows/packaging-plugins-windows.yml @@ -30,7 +30,7 @@ jobs: build: needs: [get-environment] if: | - needs.get-environment.outputs.skip_workflow == 'false' && + false && needs.get-environment.outputs.skip_workflow == 'false' && needs.get-environment.outputs.stability != 'stable' runs-on: windows-latest From 1eb463dad4ff88502d73815b6fa4c7fe91833c9c Mon Sep 17 00:00:00 2001 From: omercier Date: Fri, 22 May 2026 11:58:01 +0200 Subject: [PATCH 05/18] fix path --- ...cker-builder-packaging-plugins-windows.yml | 20 ++----------------- .../workflows/packaging-plugins-windows.yml | 2 ++ 2 files changed, 4 insertions(+), 18 deletions(-) diff --git a/.github/workflows/docker-builder-packaging-plugins-windows.yml b/.github/workflows/docker-builder-packaging-plugins-windows.yml index 1e04025d83..2c1947bda2 100644 --- a/.github/workflows/docker-builder-packaging-plugins-windows.yml +++ b/.github/workflows/docker-builder-packaging-plugins-windows.yml @@ -58,6 +58,8 @@ jobs: if: steps.cache-perl.outputs.cache-hit != 'true' shell: cmd run: | + set PATH=C:\Strawberry\perl\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\c\bin;%PATH% + set PKG_CONFIG_PATH=C:\Strawberry\c\lib\pkgconfig C:\Strawberry\perl\bin\cpanm --notest ^ PAR::Packer ^ Authen::NTLM ^ @@ -76,24 +78,6 @@ jobs: Win32::Job ^ XML::LibXML - C:\Strawberry\perl\bin\cpanm --force --notest ^ - PAR::Packer ^ - Authen::NTLM ^ - Date::Manip ^ - Email::Send::SMTP::Gmail ^ - HTTP::ProxyPAC ^ - IO::Socket::SSL ^ - JE ^ - JSON::XS ^ - Net::Curl ^ - Net::FTPSSL ^ - Net::NTP ^ - Net::SSLeay ^ - Pod::Simple::Search ^ - Tie::RefHash::Weak ^ - Win32::Job ^ - XML::LibXML - - name: Apply NTP patch for Windows compatibility if: steps.cache-perl.outputs.cache-hit != 'true' shell: powershell diff --git a/.github/workflows/packaging-plugins-windows.yml b/.github/workflows/packaging-plugins-windows.yml index 02c95f5a3e..283c64a326 100644 --- a/.github/workflows/packaging-plugins-windows.yml +++ b/.github/workflows/packaging-plugins-windows.yml @@ -59,6 +59,8 @@ jobs: if: steps.cache-perl.outputs.cache-hit != 'true' shell: cmd run: | + set PATH=C:\Strawberry\perl\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\c\bin;%PATH% + set PKG_CONFIG_PATH=C:\Strawberry\c\lib\pkgconfig C:\Strawberry\perl\bin\cpanm --force --notest ^ PAR::Packer ^ Authen::NTLM ^ From 24082ea6760c43686c6a619bd5aba211fa9b2c9a Mon Sep 17 00:00:00 2001 From: omercier Date: Fri, 22 May 2026 14:23:13 +0200 Subject: [PATCH 06/18] fix curl include paths --- .github/workflows/docker-builder-packaging-plugins-windows.yml | 2 ++ .github/workflows/packaging-plugins-windows.yml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.github/workflows/docker-builder-packaging-plugins-windows.yml b/.github/workflows/docker-builder-packaging-plugins-windows.yml index 2c1947bda2..dcfc357a9b 100644 --- a/.github/workflows/docker-builder-packaging-plugins-windows.yml +++ b/.github/workflows/docker-builder-packaging-plugins-windows.yml @@ -60,6 +60,8 @@ jobs: run: | set PATH=C:\Strawberry\perl\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\c\bin;%PATH% set PKG_CONFIG_PATH=C:\Strawberry\c\lib\pkgconfig + set LIBCURL_INCLUDE=C:\Strawberry\c\include + set LIBCURL_LIBS=-LC:\Strawberry\c\lib -lcurl C:\Strawberry\perl\bin\cpanm --notest ^ PAR::Packer ^ Authen::NTLM ^ diff --git a/.github/workflows/packaging-plugins-windows.yml b/.github/workflows/packaging-plugins-windows.yml index 283c64a326..df32942341 100644 --- a/.github/workflows/packaging-plugins-windows.yml +++ b/.github/workflows/packaging-plugins-windows.yml @@ -61,6 +61,8 @@ jobs: run: | set PATH=C:\Strawberry\perl\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\c\bin;%PATH% set PKG_CONFIG_PATH=C:\Strawberry\c\lib\pkgconfig + set LIBCURL_INCLUDE=C:\Strawberry\c\include + set LIBCURL_LIBS=-LC:\Strawberry\c\lib -lcurl C:\Strawberry\perl\bin\cpanm --force --notest ^ PAR::Packer ^ Authen::NTLM ^ From cde9e4bc1f85931e19f5d2101acc78b49c037109 Mon Sep 17 00:00:00 2001 From: omercier Date: Fri, 22 May 2026 14:39:22 +0200 Subject: [PATCH 07/18] add debug --- .../docker-builder-packaging-plugins-windows.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/docker-builder-packaging-plugins-windows.yml b/.github/workflows/docker-builder-packaging-plugins-windows.yml index dcfc357a9b..fe094da62f 100644 --- a/.github/workflows/docker-builder-packaging-plugins-windows.yml +++ b/.github/workflows/docker-builder-packaging-plugins-windows.yml @@ -80,6 +80,18 @@ jobs: Win32::Job ^ XML::LibXML + - name: Show cpanm build logs on failure + if: failure() + shell: powershell + run: | + $logDir = "$env:USERPROFILE\.cpanm\work" + if (Test-Path $logDir) { + Get-ChildItem -Path $logDir -Recurse -Filter "build.log" | ForEach-Object { + Write-Host "`n=== $($_.FullName) ===" + Get-Content $_.FullName | Select-Object -Last 50 + } + } + - name: Apply NTP patch for Windows compatibility if: steps.cache-perl.outputs.cache-hit != 'true' shell: powershell From 874662fd704a9c04d4ab312a25d8b764f5b58318 Mon Sep 17 00:00:00 2001 From: omercier Date: Fri, 22 May 2026 14:52:51 +0200 Subject: [PATCH 08/18] isolate installation of curl --- .../docker-builder-packaging-plugins-windows.yml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-builder-packaging-plugins-windows.yml b/.github/workflows/docker-builder-packaging-plugins-windows.yml index fe094da62f..95440ed06a 100644 --- a/.github/workflows/docker-builder-packaging-plugins-windows.yml +++ b/.github/workflows/docker-builder-packaging-plugins-windows.yml @@ -54,7 +54,7 @@ jobs: Start-Process msiexec.exe -ArgumentList '/i strawberry-perl.msi /quiet /norestart' -Wait -NoNewWindow Remove-Item strawberry-perl.msi - - name: Install CPAN modules + - name: Install CPAN modules except Curl if: steps.cache-perl.outputs.cache-hit != 'true' shell: cmd run: | @@ -71,7 +71,6 @@ jobs: IO::Socket::SSL ^ JE ^ JSON::XS ^ - Net::Curl ^ Net::FTPSSL ^ Net::NTP ^ Net::SSLeay ^ @@ -80,6 +79,16 @@ jobs: Win32::Job ^ XML::LibXML + - name: Install CPAN Curl module + if: steps.cache-perl.outputs.cache-hit != 'true' + shell: cmd + run: | + set PATH=C:\Strawberry\perl\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\c\bin;%PATH% + set PKG_CONFIG_PATH=C:\Strawberry\c\lib\pkgconfig + set LIBCURL_INCLUDE=C:\Strawberry\c\include + set LIBCURL_LIBS=-LC:\Strawberry\c\lib -lcurl + C:\Strawberry\perl\bin\cpanm --notest Net::Curl + - name: Show cpanm build logs on failure if: failure() shell: powershell From 06d12fb7633fa1485811639f3003529aa3cde742 Mon Sep 17 00:00:00 2001 From: omercier Date: Fri, 22 May 2026 15:09:50 +0200 Subject: [PATCH 09/18] add libcurl installation --- ...cker-builder-packaging-plugins-windows.yml | 27 ++++++++++++-- .../workflows/packaging-plugins-windows.yml | 36 +++++++++++++++++-- 2 files changed, 58 insertions(+), 5 deletions(-) diff --git a/.github/workflows/docker-builder-packaging-plugins-windows.yml b/.github/workflows/docker-builder-packaging-plugins-windows.yml index 95440ed06a..8b97a2c956 100644 --- a/.github/workflows/docker-builder-packaging-plugins-windows.yml +++ b/.github/workflows/docker-builder-packaging-plugins-windows.yml @@ -79,14 +79,37 @@ jobs: Win32::Job ^ XML::LibXML + - name: Install libcurl dev files + if: steps.cache-perl.outputs.cache-hit != 'true' + shell: powershell + run: | + Invoke-WebRequest ` + -Uri "https://curl.se/windows/dl-8.7.1_1/curl-8.7.1_1-win64-mingw.zip" ` + -OutFile curl.zip + Expand-Archive curl.zip -DestinationPath C:\curl-tmp -Force + $src = (Get-ChildItem C:\curl-tmp -Directory | Select-Object -First 1).FullName + Copy-Item "$src\include\curl" "C:\Strawberry\c\include\" -Recurse -Force + Copy-Item "$src\lib\libcurl.dll.a" "C:\Strawberry\c\lib\" -Force + Copy-Item "$src\bin\libcurl-x64.dll" "C:\Strawberry\c\bin\" -Force + @" +prefix=C:/Strawberry/c +exec_prefix=`${prefix} +libdir=`${exec_prefix}/lib +includedir=`${prefix}/include +Name: libcurl +Description: Library to transfer files with ftp, http, etc. +Version: 8.7.1 +Libs: -L`${libdir} -lcurl +Cflags: -I`${includedir} +"@ | Set-Content "C:\Strawberry\c\lib\pkgconfig\libcurl.pc" -Encoding ASCII + Remove-Item curl.zip, C:\curl-tmp -Recurse -Force + - name: Install CPAN Curl module if: steps.cache-perl.outputs.cache-hit != 'true' shell: cmd run: | set PATH=C:\Strawberry\perl\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\c\bin;%PATH% set PKG_CONFIG_PATH=C:\Strawberry\c\lib\pkgconfig - set LIBCURL_INCLUDE=C:\Strawberry\c\include - set LIBCURL_LIBS=-LC:\Strawberry\c\lib -lcurl C:\Strawberry\perl\bin\cpanm --notest Net::Curl - name: Show cpanm build logs on failure diff --git a/.github/workflows/packaging-plugins-windows.yml b/.github/workflows/packaging-plugins-windows.yml index df32942341..586928d4c2 100644 --- a/.github/workflows/packaging-plugins-windows.yml +++ b/.github/workflows/packaging-plugins-windows.yml @@ -61,8 +61,6 @@ jobs: run: | set PATH=C:\Strawberry\perl\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\c\bin;%PATH% set PKG_CONFIG_PATH=C:\Strawberry\c\lib\pkgconfig - set LIBCURL_INCLUDE=C:\Strawberry\c\include - set LIBCURL_LIBS=-LC:\Strawberry\c\lib -lcurl C:\Strawberry\perl\bin\cpanm --force --notest ^ PAR::Packer ^ Authen::NTLM ^ @@ -72,7 +70,6 @@ jobs: IO::Socket::SSL ^ JE ^ JSON::XS ^ - Net::Curl ^ Net::FTPSSL ^ Net::NTP ^ Net::SSLeay ^ @@ -81,6 +78,39 @@ jobs: Win32::Job ^ XML::LibXML + - name: Install libcurl dev files (cache miss fallback) + if: steps.cache-perl.outputs.cache-hit != 'true' + shell: powershell + run: | + Invoke-WebRequest ` + -Uri "https://curl.se/windows/dl-8.7.1_1/curl-8.7.1_1-win64-mingw.zip" ` + -OutFile curl.zip + Expand-Archive curl.zip -DestinationPath C:\curl-tmp -Force + $src = (Get-ChildItem C:\curl-tmp -Directory | Select-Object -First 1).FullName + Copy-Item "$src\include\curl" "C:\Strawberry\c\include\" -Recurse -Force + Copy-Item "$src\lib\libcurl.dll.a" "C:\Strawberry\c\lib\" -Force + Copy-Item "$src\bin\libcurl-x64.dll" "C:\Strawberry\c\bin\" -Force + @" +prefix=C:/Strawberry/c +exec_prefix=`${prefix} +libdir=`${exec_prefix}/lib +includedir=`${prefix}/include +Name: libcurl +Description: Library to transfer files with ftp, http, etc. +Version: 8.7.1 +Libs: -L`${libdir} -lcurl +Cflags: -I`${includedir} +"@ | Set-Content "C:\Strawberry\c\lib\pkgconfig\libcurl.pc" -Encoding ASCII + Remove-Item curl.zip, C:\curl-tmp -Recurse -Force + + - name: Install Net::Curl (cache miss fallback) + if: steps.cache-perl.outputs.cache-hit != 'true' + shell: cmd + run: | + set PATH=C:\Strawberry\perl\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\c\bin;%PATH% + set PKG_CONFIG_PATH=C:\Strawberry\c\lib\pkgconfig + C:\Strawberry\perl\bin\cpanm --notest Net::Curl + - name: Apply NTP patch (cache miss fallback) if: steps.cache-perl.outputs.cache-hit != 'true' shell: powershell From 6c5d5c8a4cfa715fa73a965594f8dd30194fdf2c Mon Sep 17 00:00:00 2001 From: omercier Date: Fri, 22 May 2026 15:26:29 +0200 Subject: [PATCH 10/18] fix yamllint --- ...cker-builder-packaging-plugins-windows.yml | 22 +++++++++---------- .../workflows/packaging-plugins-windows.yml | 22 +++++++++---------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/.github/workflows/docker-builder-packaging-plugins-windows.yml b/.github/workflows/docker-builder-packaging-plugins-windows.yml index 8b97a2c956..41689ac690 100644 --- a/.github/workflows/docker-builder-packaging-plugins-windows.yml +++ b/.github/workflows/docker-builder-packaging-plugins-windows.yml @@ -91,17 +91,17 @@ jobs: Copy-Item "$src\include\curl" "C:\Strawberry\c\include\" -Recurse -Force Copy-Item "$src\lib\libcurl.dll.a" "C:\Strawberry\c\lib\" -Force Copy-Item "$src\bin\libcurl-x64.dll" "C:\Strawberry\c\bin\" -Force - @" -prefix=C:/Strawberry/c -exec_prefix=`${prefix} -libdir=`${exec_prefix}/lib -includedir=`${prefix}/include -Name: libcurl -Description: Library to transfer files with ftp, http, etc. -Version: 8.7.1 -Libs: -L`${libdir} -lcurl -Cflags: -I`${includedir} -"@ | Set-Content "C:\Strawberry\c\lib\pkgconfig\libcurl.pc" -Encoding ASCII + $pc = 'prefix=C:/Strawberry/c', + 'exec_prefix=${prefix}', + 'libdir=${exec_prefix}/lib', + 'includedir=${prefix}/include', + '', + 'Name: libcurl', + 'Description: Library to transfer files with ftp, http, etc.', + 'Version: 8.7.1', + 'Libs: -L${libdir} -lcurl', + 'Cflags: -I${includedir}' + ($pc -join "`n") + "`n" | Set-Content 'C:\Strawberry\c\lib\pkgconfig\libcurl.pc' -Encoding ASCII Remove-Item curl.zip, C:\curl-tmp -Recurse -Force - name: Install CPAN Curl module diff --git a/.github/workflows/packaging-plugins-windows.yml b/.github/workflows/packaging-plugins-windows.yml index 586928d4c2..c77a81c4c2 100644 --- a/.github/workflows/packaging-plugins-windows.yml +++ b/.github/workflows/packaging-plugins-windows.yml @@ -90,17 +90,17 @@ jobs: Copy-Item "$src\include\curl" "C:\Strawberry\c\include\" -Recurse -Force Copy-Item "$src\lib\libcurl.dll.a" "C:\Strawberry\c\lib\" -Force Copy-Item "$src\bin\libcurl-x64.dll" "C:\Strawberry\c\bin\" -Force - @" -prefix=C:/Strawberry/c -exec_prefix=`${prefix} -libdir=`${exec_prefix}/lib -includedir=`${prefix}/include -Name: libcurl -Description: Library to transfer files with ftp, http, etc. -Version: 8.7.1 -Libs: -L`${libdir} -lcurl -Cflags: -I`${includedir} -"@ | Set-Content "C:\Strawberry\c\lib\pkgconfig\libcurl.pc" -Encoding ASCII + $pc = 'prefix=C:/Strawberry/c', + 'exec_prefix=${prefix}', + 'libdir=${exec_prefix}/lib', + 'includedir=${prefix}/include', + '', + 'Name: libcurl', + 'Description: Library to transfer files with ftp, http, etc.', + 'Version: 8.7.1', + 'Libs: -L${libdir} -lcurl', + 'Cflags: -I${includedir}' + ($pc -join "`n") + "`n" | Set-Content 'C:\Strawberry\c\lib\pkgconfig\libcurl.pc' -Encoding ASCII Remove-Item curl.zip, C:\curl-tmp -Recurse -Force - name: Install Net::Curl (cache miss fallback) From 83f949ad85724a05ebf42c55b2a1cd2a7c3abbba Mon Sep 17 00:00:00 2001 From: omercier Date: Fri, 22 May 2026 15:55:50 +0200 Subject: [PATCH 11/18] alternate method to install libcurl --- .../docker-builder-packaging-plugins-windows.yml | 13 ++++--------- .github/workflows/packaging-plugins-windows.yml | 13 ++++--------- 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/.github/workflows/docker-builder-packaging-plugins-windows.yml b/.github/workflows/docker-builder-packaging-plugins-windows.yml index 41689ac690..23de844afe 100644 --- a/.github/workflows/docker-builder-packaging-plugins-windows.yml +++ b/.github/workflows/docker-builder-packaging-plugins-windows.yml @@ -83,14 +83,10 @@ jobs: if: steps.cache-perl.outputs.cache-hit != 'true' shell: powershell run: | - Invoke-WebRequest ` - -Uri "https://curl.se/windows/dl-8.7.1_1/curl-8.7.1_1-win64-mingw.zip" ` - -OutFile curl.zip - Expand-Archive curl.zip -DestinationPath C:\curl-tmp -Force - $src = (Get-ChildItem C:\curl-tmp -Directory | Select-Object -First 1).FullName - Copy-Item "$src\include\curl" "C:\Strawberry\c\include\" -Recurse -Force - Copy-Item "$src\lib\libcurl.dll.a" "C:\Strawberry\c\lib\" -Force - Copy-Item "$src\bin\libcurl-x64.dll" "C:\Strawberry\c\bin\" -Force + & C:\msys64\usr\bin\bash.exe -lc "pacman -S --noconfirm mingw-w64-x86_64-curl" + Copy-Item "C:\msys64\mingw64\include\curl" "C:\Strawberry\c\include\" -Recurse -Force + Copy-Item "C:\msys64\mingw64\lib\libcurl.dll.a" "C:\Strawberry\c\lib\" -Force + Copy-Item "C:\msys64\mingw64\bin\libcurl-4.dll" "C:\Strawberry\c\bin\" -Force $pc = 'prefix=C:/Strawberry/c', 'exec_prefix=${prefix}', 'libdir=${exec_prefix}/lib', @@ -102,7 +98,6 @@ jobs: 'Libs: -L${libdir} -lcurl', 'Cflags: -I${includedir}' ($pc -join "`n") + "`n" | Set-Content 'C:\Strawberry\c\lib\pkgconfig\libcurl.pc' -Encoding ASCII - Remove-Item curl.zip, C:\curl-tmp -Recurse -Force - name: Install CPAN Curl module if: steps.cache-perl.outputs.cache-hit != 'true' diff --git a/.github/workflows/packaging-plugins-windows.yml b/.github/workflows/packaging-plugins-windows.yml index c77a81c4c2..2904cce845 100644 --- a/.github/workflows/packaging-plugins-windows.yml +++ b/.github/workflows/packaging-plugins-windows.yml @@ -82,14 +82,10 @@ jobs: if: steps.cache-perl.outputs.cache-hit != 'true' shell: powershell run: | - Invoke-WebRequest ` - -Uri "https://curl.se/windows/dl-8.7.1_1/curl-8.7.1_1-win64-mingw.zip" ` - -OutFile curl.zip - Expand-Archive curl.zip -DestinationPath C:\curl-tmp -Force - $src = (Get-ChildItem C:\curl-tmp -Directory | Select-Object -First 1).FullName - Copy-Item "$src\include\curl" "C:\Strawberry\c\include\" -Recurse -Force - Copy-Item "$src\lib\libcurl.dll.a" "C:\Strawberry\c\lib\" -Force - Copy-Item "$src\bin\libcurl-x64.dll" "C:\Strawberry\c\bin\" -Force + & C:\msys64\usr\bin\bash.exe -lc "pacman -S --noconfirm mingw-w64-x86_64-curl" + Copy-Item "C:\msys64\mingw64\include\curl" "C:\Strawberry\c\include\" -Recurse -Force + Copy-Item "C:\msys64\mingw64\lib\libcurl.dll.a" "C:\Strawberry\c\lib\" -Force + Copy-Item "C:\msys64\mingw64\bin\libcurl-4.dll" "C:\Strawberry\c\bin\" -Force $pc = 'prefix=C:/Strawberry/c', 'exec_prefix=${prefix}', 'libdir=${exec_prefix}/lib', @@ -101,7 +97,6 @@ jobs: 'Libs: -L${libdir} -lcurl', 'Cflags: -I${includedir}' ($pc -join "`n") + "`n" | Set-Content 'C:\Strawberry\c\lib\pkgconfig\libcurl.pc' -Encoding ASCII - Remove-Item curl.zip, C:\curl-tmp -Recurse -Force - name: Install Net::Curl (cache miss fallback) if: steps.cache-perl.outputs.cache-hit != 'true' From a9fbd368ad17708bf3b07901bb0489e07f123bc9 Mon Sep 17 00:00:00 2001 From: omercier Date: Fri, 22 May 2026 16:26:05 +0200 Subject: [PATCH 12/18] ignore deprecated warnings --- .github/workflows/docker-builder-packaging-plugins-windows.yml | 1 + .github/workflows/packaging-plugins-windows.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/docker-builder-packaging-plugins-windows.yml b/.github/workflows/docker-builder-packaging-plugins-windows.yml index 23de844afe..8f9551bc68 100644 --- a/.github/workflows/docker-builder-packaging-plugins-windows.yml +++ b/.github/workflows/docker-builder-packaging-plugins-windows.yml @@ -105,6 +105,7 @@ jobs: run: | set PATH=C:\Strawberry\perl\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\c\bin;%PATH% set PKG_CONFIG_PATH=C:\Strawberry\c\lib\pkgconfig + set PERL_MM_OPT=OPTIMIZE=-Wno-deprecated-declarations C:\Strawberry\perl\bin\cpanm --notest Net::Curl - name: Show cpanm build logs on failure diff --git a/.github/workflows/packaging-plugins-windows.yml b/.github/workflows/packaging-plugins-windows.yml index 2904cce845..a6521971c3 100644 --- a/.github/workflows/packaging-plugins-windows.yml +++ b/.github/workflows/packaging-plugins-windows.yml @@ -104,6 +104,7 @@ jobs: run: | set PATH=C:\Strawberry\perl\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\c\bin;%PATH% set PKG_CONFIG_PATH=C:\Strawberry\c\lib\pkgconfig + set PERL_MM_OPT=OPTIMIZE=-Wno-deprecated-declarations C:\Strawberry\perl\bin\cpanm --notest Net::Curl - name: Apply NTP patch (cache miss fallback) From 76fc06ae143df3381d60229cd2cdeba5c27df0c0 Mon Sep 17 00:00:00 2001 From: omercier Date: Fri, 22 May 2026 16:41:24 +0200 Subject: [PATCH 13/18] disable type check --- .github/workflows/docker-builder-packaging-plugins-windows.yml | 2 +- .github/workflows/packaging-plugins-windows.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-builder-packaging-plugins-windows.yml b/.github/workflows/docker-builder-packaging-plugins-windows.yml index 8f9551bc68..1371b89a6b 100644 --- a/.github/workflows/docker-builder-packaging-plugins-windows.yml +++ b/.github/workflows/docker-builder-packaging-plugins-windows.yml @@ -105,7 +105,7 @@ jobs: run: | set PATH=C:\Strawberry\perl\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\c\bin;%PATH% set PKG_CONFIG_PATH=C:\Strawberry\c\lib\pkgconfig - set PERL_MM_OPT=OPTIMIZE=-Wno-deprecated-declarations + set PERL_MM_OPT=DEFINE=-DCURL_DISABLE_TYPECHECK OPTIMIZE=-Wno-deprecated-declarations C:\Strawberry\perl\bin\cpanm --notest Net::Curl - name: Show cpanm build logs on failure diff --git a/.github/workflows/packaging-plugins-windows.yml b/.github/workflows/packaging-plugins-windows.yml index a6521971c3..b2ed029845 100644 --- a/.github/workflows/packaging-plugins-windows.yml +++ b/.github/workflows/packaging-plugins-windows.yml @@ -104,7 +104,7 @@ jobs: run: | set PATH=C:\Strawberry\perl\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\c\bin;%PATH% set PKG_CONFIG_PATH=C:\Strawberry\c\lib\pkgconfig - set PERL_MM_OPT=OPTIMIZE=-Wno-deprecated-declarations + set PERL_MM_OPT=DEFINE=-DCURL_DISABLE_TYPECHECK OPTIMIZE=-Wno-deprecated-declarations C:\Strawberry\perl\bin\cpanm --notest Net::Curl - name: Apply NTP patch (cache miss fallback) From 67fb8f6f2016f8fcf6f4a897610d10b07f3b1b11 Mon Sep 17 00:00:00 2001 From: omercier Date: Fri, 22 May 2026 17:32:03 +0200 Subject: [PATCH 14/18] remove ntp patch --- .github/patch/ntp.diff | 28 ------------------- ...cker-builder-packaging-plugins-windows.yml | 13 ++------- .../workflows/packaging-plugins-windows.yml | 11 +------- 3 files changed, 3 insertions(+), 49 deletions(-) delete mode 100644 .github/patch/ntp.diff diff --git a/.github/patch/ntp.diff b/.github/patch/ntp.diff deleted file mode 100644 index b2d8f5efde..0000000000 --- a/.github/patch/ntp.diff +++ /dev/null @@ -1,28 +0,0 @@ ---- NTP.pm -+++ NTP.pm -@@ -171,14 +171,17 @@ - - ## receive with deadline - my $data; -- eval { -- local $SIG{ALRM} = sub { die "Net::NTP timed out getting NTP packet\n"; }; -- alarm($TIMEOUT); -- $sock->recv($data, 960) -- or die "recv() failed: $!\n"; -- alarm(0); -- }; -- alarm 0; -+ my $rin = ''; -+ vec($rin, $sock->fileno(), 1) = 1; -+ my $rout = $rin; -+ select($rout, undef, undef, $TIMEOUT); -+ if (vec($rout, $sock->fileno(), 1)) { -+ $sock->recv($data, 960) -+ or die "recv() failed: $!\n"; -+ } -+ else { -+ die "Net::NTP timed out getting NTP packet\n"; -+ } - - my $rectime = time; # T4 - my $pkt = Net::NTP::Packet->decode($data, $xmttime, $rectime); diff --git a/.github/workflows/docker-builder-packaging-plugins-windows.yml b/.github/workflows/docker-builder-packaging-plugins-windows.yml index 1371b89a6b..0a8e3ce7ad 100644 --- a/.github/workflows/docker-builder-packaging-plugins-windows.yml +++ b/.github/workflows/docker-builder-packaging-plugins-windows.yml @@ -11,11 +11,9 @@ on: - develop paths: - ".github/workflows/docker-builder-packaging-plugins-windows.yml" - - ".github/patch/ntp.diff" pull_request: paths: - ".github/workflows/docker-builder-packaging-plugins-windows.yml" - - ".github/patch/ntp.diff" jobs: dependency-scan: @@ -41,7 +39,7 @@ jobs: uses: actions/cache/restore@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 with: path: C:\Strawberry - key: strawberry-perl-5.34.3.1-${{ hashFiles('.github/patch/ntp.diff') }} + key: strawberry-perl-5.34.3.1 lookup-only: true - name: Install Strawberry Perl @@ -120,19 +118,12 @@ jobs: } } - - name: Apply NTP patch for Windows compatibility - if: steps.cache-perl.outputs.cache-hit != 'true' - shell: powershell - run: | - $ntpPath = & C:\Strawberry\perl\bin\perl.exe -MNet::NTP -e 'print $INC{"Net/NTP.pm"}' - & "C:\Program Files\Git\usr\bin\patch.exe" $ntpPath .github\patch\ntp.diff - - name: Save environment to cache if: steps.cache-perl.outputs.cache-hit != 'true' uses: actions/cache/save@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 with: path: C:\Strawberry - key: strawberry-perl-5.34.3.1-${{ hashFiles('.github/patch/ntp.diff') }} + key: strawberry-perl-5.34.3.1 set-skip-label: needs: [get-environment, build-environment] diff --git a/.github/workflows/packaging-plugins-windows.yml b/.github/workflows/packaging-plugins-windows.yml index b2ed029845..caa10209c2 100644 --- a/.github/workflows/packaging-plugins-windows.yml +++ b/.github/workflows/packaging-plugins-windows.yml @@ -12,12 +12,10 @@ on: paths: - ".github/workflows/packaging-plugins-windows.yml" - ".github/scripts/build_centreon_plugins_64.bat" - - ".github/patch/ntp.diff" pull_request: paths: - ".github/workflows/packaging-plugins-windows.yml" - ".github/scripts/build_centreon_plugins_64.bat" - - ".github/patch/ntp.diff" jobs: dependency-scan: @@ -43,7 +41,7 @@ jobs: uses: actions/cache/restore@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 with: path: C:\Strawberry - key: strawberry-perl-5.34.3.1-${{ hashFiles('.github/patch/ntp.diff') }} + key: strawberry-perl-5.34.3.1 - name: Install Strawberry Perl (cache miss fallback) if: steps.cache-perl.outputs.cache-hit != 'true' @@ -107,13 +105,6 @@ jobs: set PERL_MM_OPT=DEFINE=-DCURL_DISABLE_TYPECHECK OPTIMIZE=-Wno-deprecated-declarations C:\Strawberry\perl\bin\cpanm --notest Net::Curl - - name: Apply NTP patch (cache miss fallback) - if: steps.cache-perl.outputs.cache-hit != 'true' - shell: powershell - run: | - $ntpPath = & C:\Strawberry\perl\bin\perl.exe -MNet::NTP -e 'print $INC{"Net/NTP.pm"}' - & "C:\Program Files\Git\usr\bin\patch.exe" $ntpPath .github\patch\ntp.diff - - name: Add Strawberry Perl to PATH shell: powershell run: | From 7a3698fa20c144494acbade6854a5c5460f4ed85 Mon Sep 17 00:00:00 2001 From: omercier Date: Mon, 25 May 2026 13:31:09 +0200 Subject: [PATCH 15/18] factorize into one composite action --- .../actions/setup-strawberry-perl/action.yml | 99 +++++++++++++++++++ ...cker-builder-packaging-plugins-windows.yml | 90 ++--------------- .../workflows/packaging-plugins-windows.yml | 70 +------------ 3 files changed, 108 insertions(+), 151 deletions(-) create mode 100644 .github/actions/setup-strawberry-perl/action.yml diff --git a/.github/actions/setup-strawberry-perl/action.yml b/.github/actions/setup-strawberry-perl/action.yml new file mode 100644 index 0000000000..bd7345dc09 --- /dev/null +++ b/.github/actions/setup-strawberry-perl/action.yml @@ -0,0 +1,99 @@ +name: Setup Strawberry Perl +description: Install or restore Strawberry Perl 5.34 with CPAN modules and libcurl for Windows builds + +inputs: + lookup-only: + description: Only check if cache exists without restoring (set to true for pre-build caching jobs) + default: 'false' + +outputs: + cache-hit: + description: Whether the Strawberry Perl cache was found + value: ${{ steps.cache-perl.outputs.cache-hit }} + +runs: + using: composite + steps: + - name: Check/restore Perl environment cache + id: cache-perl + uses: actions/cache/restore@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 + with: + path: C:\Strawberry + key: strawberry-perl-5.34.3.1 + lookup-only: ${{ inputs.lookup-only }} + + - name: Install Strawberry Perl + if: steps.cache-perl.outputs.cache-hit != 'true' + shell: powershell + run: | + Invoke-WebRequest ` + -Uri https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/download/sp5.34.3.1/strawberry-perl-5.34.3.1-64bit.msi ` + -OutFile strawberry-perl.msi + Start-Process msiexec.exe -ArgumentList '/i strawberry-perl.msi /quiet /norestart' -Wait -NoNewWindow + Remove-Item strawberry-perl.msi + + - name: Install CPAN modules except Curl + if: steps.cache-perl.outputs.cache-hit != 'true' + shell: cmd + run: | + set PATH=C:\Strawberry\perl\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\c\bin;%PATH% + set PKG_CONFIG_PATH=C:\Strawberry\c\lib\pkgconfig + set LIBCURL_INCLUDE=C:\Strawberry\c\include + set LIBCURL_LIBS=-LC:\Strawberry\c\lib -lcurl + C:\Strawberry\perl\bin\cpanm --notest ^ + PAR::Packer ^ + Authen::NTLM ^ + Date::Manip ^ + Email::Send::SMTP::Gmail ^ + HTTP::ProxyPAC ^ + IO::Socket::SSL ^ + JE ^ + JSON::XS ^ + Net::FTPSSL ^ + Net::NTP ^ + Net::SSLeay ^ + Pod::Simple::Search ^ + Tie::RefHash::Weak ^ + Win32::Job ^ + XML::LibXML + + - name: Install libcurl dev files + if: steps.cache-perl.outputs.cache-hit != 'true' + shell: powershell + run: | + & C:\msys64\usr\bin\bash.exe -lc "pacman -S --noconfirm mingw-w64-x86_64-curl" + Copy-Item "C:\msys64\mingw64\include\curl" "C:\Strawberry\c\include\" -Recurse -Force + Copy-Item "C:\msys64\mingw64\lib\libcurl.dll.a" "C:\Strawberry\c\lib\" -Force + Copy-Item "C:\msys64\mingw64\bin\libcurl-4.dll" "C:\Strawberry\c\bin\" -Force + $pc = 'prefix=C:/Strawberry/c', + 'exec_prefix=${prefix}', + 'libdir=${exec_prefix}/lib', + 'includedir=${prefix}/include', + '', + 'Name: libcurl', + 'Description: Library to transfer files with ftp, http, etc.', + 'Version: 8.7.1', + 'Libs: -L${libdir} -lcurl', + 'Cflags: -I${includedir}' + ($pc -join "`n") + "`n" | Set-Content 'C:\Strawberry\c\lib\pkgconfig\libcurl.pc' -Encoding ASCII + + - name: Install CPAN Curl module + if: steps.cache-perl.outputs.cache-hit != 'true' + shell: cmd + run: | + set PATH=C:\Strawberry\perl\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\c\bin;%PATH% + set PKG_CONFIG_PATH=C:\Strawberry\c\lib\pkgconfig + set PERL_MM_OPT=DEFINE=-DCURL_DISABLE_TYPECHECK OPTIMIZE=-Wno-deprecated-declarations + C:\Strawberry\perl\bin\cpanm --notest Net::Curl + + - name: Show cpanm build logs on failure + if: ${{ failure() }} + shell: powershell + run: | + $logDir = "$env:USERPROFILE\.cpanm\work" + if (Test-Path $logDir) { + Get-ChildItem -Path $logDir -Recurse -Filter "build.log" | ForEach-Object { + Write-Host "`n=== $($_.FullName) ===" + Get-Content $_.FullName | Select-Object -Last 50 + } + } diff --git a/.github/workflows/docker-builder-packaging-plugins-windows.yml b/.github/workflows/docker-builder-packaging-plugins-windows.yml index 0a8e3ce7ad..224efab68d 100644 --- a/.github/workflows/docker-builder-packaging-plugins-windows.yml +++ b/.github/workflows/docker-builder-packaging-plugins-windows.yml @@ -11,9 +11,11 @@ on: - develop paths: - ".github/workflows/docker-builder-packaging-plugins-windows.yml" + - ".github/actions/setup-strawberry-perl/action.yml" pull_request: paths: - ".github/workflows/docker-builder-packaging-plugins-windows.yml" + - ".github/actions/setup-strawberry-perl/action.yml" jobs: dependency-scan: @@ -34,92 +36,14 @@ jobs: - name: Checkout sources uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Check cache - id: cache-perl - uses: actions/cache/restore@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 + - name: Setup Strawberry Perl + id: setup-perl + uses: ./.github/actions/setup-strawberry-perl with: - path: C:\Strawberry - key: strawberry-perl-5.34.3.1 - lookup-only: true - - - name: Install Strawberry Perl - if: steps.cache-perl.outputs.cache-hit != 'true' - shell: powershell - run: | - Invoke-WebRequest ` - -Uri https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/download/sp5.34.3.1/strawberry-perl-5.34.3.1-64bit.msi ` - -OutFile strawberry-perl.msi - Start-Process msiexec.exe -ArgumentList '/i strawberry-perl.msi /quiet /norestart' -Wait -NoNewWindow - Remove-Item strawberry-perl.msi - - - name: Install CPAN modules except Curl - if: steps.cache-perl.outputs.cache-hit != 'true' - shell: cmd - run: | - set PATH=C:\Strawberry\perl\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\c\bin;%PATH% - set PKG_CONFIG_PATH=C:\Strawberry\c\lib\pkgconfig - set LIBCURL_INCLUDE=C:\Strawberry\c\include - set LIBCURL_LIBS=-LC:\Strawberry\c\lib -lcurl - C:\Strawberry\perl\bin\cpanm --notest ^ - PAR::Packer ^ - Authen::NTLM ^ - Date::Manip ^ - Email::Send::SMTP::Gmail ^ - HTTP::ProxyPAC ^ - IO::Socket::SSL ^ - JE ^ - JSON::XS ^ - Net::FTPSSL ^ - Net::NTP ^ - Net::SSLeay ^ - Pod::Simple::Search ^ - Tie::RefHash::Weak ^ - Win32::Job ^ - XML::LibXML - - - name: Install libcurl dev files - if: steps.cache-perl.outputs.cache-hit != 'true' - shell: powershell - run: | - & C:\msys64\usr\bin\bash.exe -lc "pacman -S --noconfirm mingw-w64-x86_64-curl" - Copy-Item "C:\msys64\mingw64\include\curl" "C:\Strawberry\c\include\" -Recurse -Force - Copy-Item "C:\msys64\mingw64\lib\libcurl.dll.a" "C:\Strawberry\c\lib\" -Force - Copy-Item "C:\msys64\mingw64\bin\libcurl-4.dll" "C:\Strawberry\c\bin\" -Force - $pc = 'prefix=C:/Strawberry/c', - 'exec_prefix=${prefix}', - 'libdir=${exec_prefix}/lib', - 'includedir=${prefix}/include', - '', - 'Name: libcurl', - 'Description: Library to transfer files with ftp, http, etc.', - 'Version: 8.7.1', - 'Libs: -L${libdir} -lcurl', - 'Cflags: -I${includedir}' - ($pc -join "`n") + "`n" | Set-Content 'C:\Strawberry\c\lib\pkgconfig\libcurl.pc' -Encoding ASCII - - - name: Install CPAN Curl module - if: steps.cache-perl.outputs.cache-hit != 'true' - shell: cmd - run: | - set PATH=C:\Strawberry\perl\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\c\bin;%PATH% - set PKG_CONFIG_PATH=C:\Strawberry\c\lib\pkgconfig - set PERL_MM_OPT=DEFINE=-DCURL_DISABLE_TYPECHECK OPTIMIZE=-Wno-deprecated-declarations - C:\Strawberry\perl\bin\cpanm --notest Net::Curl - - - name: Show cpanm build logs on failure - if: failure() - shell: powershell - run: | - $logDir = "$env:USERPROFILE\.cpanm\work" - if (Test-Path $logDir) { - Get-ChildItem -Path $logDir -Recurse -Filter "build.log" | ForEach-Object { - Write-Host "`n=== $($_.FullName) ===" - Get-Content $_.FullName | Select-Object -Last 50 - } - } + lookup-only: 'true' - name: Save environment to cache - if: steps.cache-perl.outputs.cache-hit != 'true' + if: steps.setup-perl.outputs.cache-hit != 'true' uses: actions/cache/save@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 with: path: C:\Strawberry diff --git a/.github/workflows/packaging-plugins-windows.yml b/.github/workflows/packaging-plugins-windows.yml index caa10209c2..d587a12d2f 100644 --- a/.github/workflows/packaging-plugins-windows.yml +++ b/.github/workflows/packaging-plugins-windows.yml @@ -36,74 +36,8 @@ jobs: - name: Checkout sources uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Restore Perl environment from cache - id: cache-perl - uses: actions/cache/restore@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 - with: - path: C:\Strawberry - key: strawberry-perl-5.34.3.1 - - - name: Install Strawberry Perl (cache miss fallback) - if: steps.cache-perl.outputs.cache-hit != 'true' - shell: powershell - run: | - Invoke-WebRequest ` - -Uri https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/download/sp5.34.3.1/strawberry-perl-5.34.3.1-64bit.msi ` - -OutFile strawberry-perl.msi - Start-Process msiexec.exe -ArgumentList '/i strawberry-perl.msi /quiet /norestart' -Wait -NoNewWindow - Remove-Item strawberry-perl.msi - - - name: Install CPAN modules (cache miss fallback) - if: steps.cache-perl.outputs.cache-hit != 'true' - shell: cmd - run: | - set PATH=C:\Strawberry\perl\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\c\bin;%PATH% - set PKG_CONFIG_PATH=C:\Strawberry\c\lib\pkgconfig - C:\Strawberry\perl\bin\cpanm --force --notest ^ - PAR::Packer ^ - Authen::NTLM ^ - Date::Manip ^ - Email::Send::SMTP::Gmail ^ - HTTP::ProxyPAC ^ - IO::Socket::SSL ^ - JE ^ - JSON::XS ^ - Net::FTPSSL ^ - Net::NTP ^ - Net::SSLeay ^ - Pod::Simple::Search ^ - Tie::RefHash::Weak ^ - Win32::Job ^ - XML::LibXML - - - name: Install libcurl dev files (cache miss fallback) - if: steps.cache-perl.outputs.cache-hit != 'true' - shell: powershell - run: | - & C:\msys64\usr\bin\bash.exe -lc "pacman -S --noconfirm mingw-w64-x86_64-curl" - Copy-Item "C:\msys64\mingw64\include\curl" "C:\Strawberry\c\include\" -Recurse -Force - Copy-Item "C:\msys64\mingw64\lib\libcurl.dll.a" "C:\Strawberry\c\lib\" -Force - Copy-Item "C:\msys64\mingw64\bin\libcurl-4.dll" "C:\Strawberry\c\bin\" -Force - $pc = 'prefix=C:/Strawberry/c', - 'exec_prefix=${prefix}', - 'libdir=${exec_prefix}/lib', - 'includedir=${prefix}/include', - '', - 'Name: libcurl', - 'Description: Library to transfer files with ftp, http, etc.', - 'Version: 8.7.1', - 'Libs: -L${libdir} -lcurl', - 'Cflags: -I${includedir}' - ($pc -join "`n") + "`n" | Set-Content 'C:\Strawberry\c\lib\pkgconfig\libcurl.pc' -Encoding ASCII - - - name: Install Net::Curl (cache miss fallback) - if: steps.cache-perl.outputs.cache-hit != 'true' - shell: cmd - run: | - set PATH=C:\Strawberry\perl\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\c\bin;%PATH% - set PKG_CONFIG_PATH=C:\Strawberry\c\lib\pkgconfig - set PERL_MM_OPT=DEFINE=-DCURL_DISABLE_TYPECHECK OPTIMIZE=-Wno-deprecated-declarations - C:\Strawberry\perl\bin\cpanm --notest Net::Curl + - name: Setup Strawberry Perl + uses: ./.github/actions/setup-strawberry-perl - name: Add Strawberry Perl to PATH shell: powershell From 0c14444a962b1a68d123ec022b05ee4c5c8be5ed Mon Sep 17 00:00:00 2001 From: omercier Date: Mon, 25 May 2026 15:53:15 +0200 Subject: [PATCH 16/18] add yamllint to githooks + enable build of centreon_plugins.exe --- .githooks/pre-commit.d/20_plugins.sh | 4 ++++ .github/workflows/packaging-plugins-windows.yml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.githooks/pre-commit.d/20_plugins.sh b/.githooks/pre-commit.d/20_plugins.sh index 8890524c5a..2c156e28ad 100755 --- a/.githooks/pre-commit.d/20_plugins.sh +++ b/.githooks/pre-commit.d/20_plugins.sh @@ -120,6 +120,10 @@ for file in "${committed_files[@]}"; do jq '.' "$file" >/dev/null 2>&1 || error "JSON file $file is not valid" check_tabs_crlf "$file" ;; + yml|yaml) + info "--> Checking YAML validity" + $yamllint_path -c ./resources/githooks/yamllint_rules.yml "$file" || error "$file does not comply with yamllint" + ;; *) info "File extension '.${file_extension}' has no checks" ;; diff --git a/.github/workflows/packaging-plugins-windows.yml b/.github/workflows/packaging-plugins-windows.yml index d587a12d2f..7208845c8c 100644 --- a/.github/workflows/packaging-plugins-windows.yml +++ b/.github/workflows/packaging-plugins-windows.yml @@ -28,7 +28,7 @@ jobs: build: needs: [get-environment] if: | - false && needs.get-environment.outputs.skip_workflow == 'false' && + needs.get-environment.outputs.skip_workflow == 'false' && needs.get-environment.outputs.stability != 'stable' runs-on: windows-latest From f4febce1bea94e41dc54695e9f83f2e6ada129af Mon Sep 17 00:00:00 2001 From: omercier Date: Mon, 25 May 2026 16:56:02 +0200 Subject: [PATCH 17/18] troubleshoot --- .../actions/setup-strawberry-perl/action.yml | 17 +++++++++++++++++ .github/scripts/build_centreon_plugins_64.bat | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/.github/actions/setup-strawberry-perl/action.yml b/.github/actions/setup-strawberry-perl/action.yml index bd7345dc09..8fdbf62601 100644 --- a/.github/actions/setup-strawberry-perl/action.yml +++ b/.github/actions/setup-strawberry-perl/action.yml @@ -86,6 +86,23 @@ runs: set PERL_MM_OPT=DEFINE=-DCURL_DISABLE_TYPECHECK OPTIMIZE=-Wno-deprecated-declarations C:\Strawberry\perl\bin\cpanm --notest Net::Curl + - name: Copy PAR::Packer source to cpan build directory + if: steps.cache-perl.outputs.cache-hit != 'true' + shell: powershell + run: | + $parVersion = & C:\Strawberry\perl\bin\perl.exe -MPAR::Packer -e 'print $PAR::Packer::VERSION' + $cpanmWork = "$env:USERPROFILE\.cpanm\work" + $parDir = Get-ChildItem $cpanmWork -Recurse -Directory -ErrorAction SilentlyContinue | + Where-Object { $_.Name -eq "PAR-Packer-$parVersion" } | + Select-Object -First 1 + if (-not $parDir) { + Write-Error "PAR::Packer $parVersion source not found in $cpanmWork" + exit 1 + } + New-Item "C:\Strawberry\cpan\build" -ItemType Directory -Force | Out-Null + Copy-Item $parDir.FullName "C:\Strawberry\cpan\build\PAR-Packer-$parVersion" -Recurse -Force + Write-Host "PAR::Packer source saved to C:\Strawberry\cpan\build\PAR-Packer-$parVersion" + - name: Show cpanm build logs on failure if: ${{ failure() }} shell: powershell diff --git a/.github/scripts/build_centreon_plugins_64.bat b/.github/scripts/build_centreon_plugins_64.bat index a2ca81eb31..2cf2793d4a 100644 --- a/.github/scripts/build_centreon_plugins_64.bat +++ b/.github/scripts/build_centreon_plugins_64.bat @@ -62,7 +62,7 @@ COPY /Y %PAR_PACKER_SRC%\myldr\Static.pm %PERL_INSTALL_DIR%\perl\site\lib\PAR\St CHDIR /d %~dp0 SET PAR_VERBATIM=1 -CMD /C %PERL_INSTALL_DIR%\perl\site\bin\pp --lib=centreon-plugins\src\ ^ +perl %PERL_INSTALL_DIR%\perl\site\bin\pp --lib=centreon-plugins\src\ ^ -o resources\scripts\x64\centreon\centreon_plugins.exe centreon-plugins\src\centreon_plugins.pl ^ --unicode ^ -X IO::Socket::INET6 ^ From 72e00901685077ddf63dca0c9431d4de8695161e Mon Sep 17 00:00:00 2001 From: omercier Date: Mon, 25 May 2026 17:14:51 +0200 Subject: [PATCH 18/18] more troubleshooting --- .../actions/setup-strawberry-perl/action.yml | 23 ++++++++++++++++--- ...cker-builder-packaging-plugins-windows.yml | 2 +- .../workflows/packaging-plugins-windows.yml | 1 + 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/.github/actions/setup-strawberry-perl/action.yml b/.github/actions/setup-strawberry-perl/action.yml index 8fdbf62601..4e48f75ca8 100644 --- a/.github/actions/setup-strawberry-perl/action.yml +++ b/.github/actions/setup-strawberry-perl/action.yml @@ -19,7 +19,7 @@ runs: uses: actions/cache/restore@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 with: path: C:\Strawberry - key: strawberry-perl-5.34.3.1 + key: strawberry-perl-5.34.3.1-v2 lookup-only: ${{ inputs.lookup-only }} - name: Install Strawberry Perl @@ -32,7 +32,25 @@ runs: Start-Process msiexec.exe -ArgumentList '/i strawberry-perl.msi /quiet /norestart' -Wait -NoNewWindow Remove-Item strawberry-perl.msi - - name: Install CPAN modules except Curl + - name: Install PAR::Packer + if: steps.cache-perl.outputs.cache-hit != 'true' + shell: cmd + run: | + set PATH=C:\Strawberry\perl\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\c\bin;%PATH% + C:\Strawberry\perl\bin\cpanm --notest PAR::Packer + + - name: Verify PAR::Packer installation + if: steps.cache-perl.outputs.cache-hit != 'true' + shell: powershell + run: | + $pp = "C:\Strawberry\perl\site\bin\pp" + if (-not (Test-Path $pp)) { + Write-Error "pp not found at $pp - PAR::Packer installation failed" + exit 1 + } + Write-Host "PAR::Packer OK: pp found at $pp" + + - name: Install other CPAN modules if: steps.cache-perl.outputs.cache-hit != 'true' shell: cmd run: | @@ -41,7 +59,6 @@ runs: set LIBCURL_INCLUDE=C:\Strawberry\c\include set LIBCURL_LIBS=-LC:\Strawberry\c\lib -lcurl C:\Strawberry\perl\bin\cpanm --notest ^ - PAR::Packer ^ Authen::NTLM ^ Date::Manip ^ Email::Send::SMTP::Gmail ^ diff --git a/.github/workflows/docker-builder-packaging-plugins-windows.yml b/.github/workflows/docker-builder-packaging-plugins-windows.yml index 224efab68d..af53775e72 100644 --- a/.github/workflows/docker-builder-packaging-plugins-windows.yml +++ b/.github/workflows/docker-builder-packaging-plugins-windows.yml @@ -47,7 +47,7 @@ jobs: uses: actions/cache/save@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 with: path: C:\Strawberry - key: strawberry-perl-5.34.3.1 + key: strawberry-perl-5.34.3.1-v2 set-skip-label: needs: [get-environment, build-environment] diff --git a/.github/workflows/packaging-plugins-windows.yml b/.github/workflows/packaging-plugins-windows.yml index 7208845c8c..3cbee31266 100644 --- a/.github/workflows/packaging-plugins-windows.yml +++ b/.github/workflows/packaging-plugins-windows.yml @@ -62,6 +62,7 @@ jobs: name: centreon_plugins_windows_x64 path: .github\scripts\resources\scripts\x64\centreon\centreon_plugins.exe retention-days: 7 + if-no-files-found: error set-skip-label: needs: [get-environment, build]