CI: use libmodsecurity release binaries in the Windows nginx jobs
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 55/100
調査の方向性
Open .github/workflows/test_new.yml and find the build-windows job with the windows-nginx-* steps. First check whether the trigger condition is met: does a libmodsecurity release (expected v3.0.18) attach libmodsecurity-<version>-windows-x64.zip? If not, the issue is blocked. If yes, replace the source-build/Conan steps with gh release download, verify the sha256, set MODSECURITY_INC/MODSECURITY_LIB and copy the DLL into objs, and optionally move to windows-2025. Done is a green CI run. Note the caveat: leave test.yml's build-windows building from source, and the workflow YAML plus CI debugging experience needed makes this non-trivial for a first-timer.
索引モデルが issue の本文から書いたものです。
説明
Summary
Once libmodsecurity publishes prebuilt Windows binaries with its releases (owasp-modsecurity/ModSecurity#3702, closing owasp-modsecurity/ModSecurity#3313), the windows-nginx-* jobs in test_new.yml could use the latest release zip instead of building libModSecurity from source on every run.
Trigger: the first libmodsecurity release that has libmodsecurity-<version>-windows-x64.zip attached (expected v3.0.18).
Why
Building libmodsecurity on Windows means building its dependencies with Conan. That takes about 15-18 minutes per job and has broken this CI twice in October 2026, both times for reasons unrelated to the connector:
- HTTP 429 from
git.openldap.orgwhen Conan downloads the lmdb sources. #403 worked around it with Conan download retries. - yajl failing to configure with CMake 4 (
CMP0026, owasp-modsecurity/ModSecurity#3604) on thewindows-2025image, which now ships Visual Studio 2026. ConanCenter has no prebuilt packages for that compiler, so every dependency was built from source. #403 moved the jobs towindows-2022as a workaround.
The release zip is self-contained: the dependencies are linked statically, and the release workflow checks that libModSecurity.dll depends only on system DLLs and the VC++ runtime. It is built with the dynamic CRT (/MD), the same as the current source build.
What to change
In the build-windows job (windows-nginx-*) of .github/workflows/test_new.yml:
- Replace the "Get libModSecurity source", "Setup Conan", "Retry rate-limited Conan downloads" and "Build libModSecurity" steps with a download of the latest release zip:
(thegh release download -R owasp-modsecurity/ModSecurity --pattern 'libmodsecurity-*-windows-x64.zip' --pattern 'libmodsecurity-*-windows-x64.zip.sha256'-debugzips don't match this pattern). Then verify the zip withsha256sum -corgh attestation verify <zip> --repo owasp-modsecurity/ModSecurity, and extract it. - Point the nginx build at the extracted directories. The zip is a
cmake --installtree, sobin/libModSecurity.dll,lib/libModSecurity.libandinclude/modsecurity/map to:export MODSECURITY_INC=<dist>/include export MODSECURITY_LIB=<dist>/lib cp <dist>/bin/libModSecurity.dll objs - Optionally move the jobs back to
windows-2025, since they no longer depend on Conan or CMake.
Keep one job building from source
With release binaries, these jobs test the connector against the latest libmodsecurity release instead of v3/master. That matches what users run, but two things would go unnoticed until the next release: a v3/master change that breaks the connector, and a connector PR that relies on an API only v3/master has.
So keep build-windows in test.yml building libModSecurity v3/master from source with Conan. The Linux jobs already build v3/master from source.
References
- #403: Conan download retries,
windows-2022for thetest_new.ymlWindows jobs - #389: retries for the pcre2, zlib and OpenSSL downloads
- owasp-modsecurity/ModSecurity#3702: Windows release workflow
- owasp-modsecurity/ModSecurity#3604: yajl / CMake 4
CMP0026
- 主要言語
- Perl
- スター
- 1.9k
- フォーク
- 311
- 平均マージ
- 7時間 5分
- マージ済み PR(30日)
- 2
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
owasp-modsecurity/ModSecurity-nginx のほかの issue
-
:1st_place_medal: good first issue enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
owasp-modsecurity/ModSecurity-nginx#359 · コメント 3 件 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 62/100
-
bug
難易度 4/5 3〜5日 初心者へのやさしさ 30/100
owasp-modsecurity/ModSecurity-nginx#400 · コメント 2 件 ·
-
Module logs version of libmodsecurity headers it was built against, not dynamically linked versionオープン
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
owasp-modsecurity/ModSecurity-nginx#383 · コメント 1 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
owasp-modsecurity/ModSecurity-nginx#375 · コメント 2 件 ·
owasp-modsecurity/ModSecurity-nginx の issue をすべて見る
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 64/100
-
Type: Bug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
inverse-inc/packetfence#9605 ·
メンテナーはふだん 10 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 64/100
RotherOSS/otobo#6344 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
darold/pgFormatter#426 ·