Skip to content

[civetweb] download from GIT instead of bundle, bump from 1.16+ to latest master, and define proper CMake target - #22731

Open
ferdymercury wants to merge 5 commits into
root-project:masterfrom
ferdymercury:bcivetclean
Open

[civetweb] download from GIT instead of bundle, bump from 1.16+ to latest master, and define proper CMake target#22731
ferdymercury wants to merge 5 commits into
root-project:masterfrom
ferdymercury:bcivetclean

Conversation

@ferdymercury

Copy link
Copy Markdown
Collaborator

Cleaned-up version of #21947

@dpiparo

dpiparo commented Jun 30, 2026

Copy link
Copy Markdown
Member

thanks for this sizable effort!

@dpiparo

dpiparo commented Jun 30, 2026

Copy link
Copy Markdown
Member

If everything works, and we go with this solution, we should perhaps move the source tarball to the LCG Packages, as all the others.

@ferdymercury

Copy link
Copy Markdown
Collaborator Author

If everything works, and we go with this solution, we should perhaps move the source tarball to the LCG Packages, as all the others.

Sounds good to me. In that case, it should be downloaded from commit civetweb/civetweb@588860e (no tagged version) and I guess upload it to LCG with name:

civetweb-1.16-588860.tar.gz

Comment thread net/http/src/TCivetweb.cxx Outdated
@github-actions

github-actions Bot commented Jun 30, 2026

Copy link
Copy Markdown

Test Results

    23 files      23 suites   3d 18h 59m 57s ⏱️
 3 853 tests  3 853 ✅ 0 💤 0 ❌
79 408 runs  79 408 ✅ 0 💤 0 ❌

Results for commit 16ec94c.

♻️ This comment has been updated with latest results.

@linev linev closed this Jun 30, 2026
@linev linev reopened this Jun 30, 2026
@ferdymercury
ferdymercury force-pushed the bcivetclean branch 2 times, most recently from 2c4bfc4 to a53e137 Compare June 30, 2026 16:16
@ferdymercury ferdymercury added skip ci Skip the full builds on the actions runners and removed clean build Ask CI to do non-incremental build on PR labels Jul 2, 2026
@ferdymercury
ferdymercury marked this pull request as draft July 2, 2026 10:33
@ferdymercury ferdymercury removed the skip ci Skip the full builds on the actions runners label Jul 2, 2026
@ferdymercury
ferdymercury force-pushed the bcivetclean branch 2 times, most recently from 7542242 to e7453b3 Compare August 3, 2026 16:19
@ferdymercury
ferdymercury marked this pull request as ready for review August 3, 2026 21:22
@linev

linev commented Aug 4, 2026

Copy link
Copy Markdown
Member

@dpiparo @ferdymercury

Last point.

After the PR default config builtin_civetweb=OFF. If user does not enables it and system-wide civetweb not found or not sufficient building of THttpServer and all webgui components makes no big sense. One cannot use them without civetweb.

I propose to make hard condition. If http is enabled and civetweb not found one generate error with the message that http cannot be used without it. Either user should actively disable http or enable any of civetweb components.

@linev linev left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ferdymercury

Last change which is necessary described in my comment: #22731 (comment)

One need either to have civetweb/builtin_civetweb or disable http.

But really grate job and grate effort!

@ferdymercury

ferdymercury commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator Author

Either user should actively disable http or enable any of civetweb components.

What about if system-version is found but does not have the X_DOM_SOCKET enabled? Should then the CMake system automatically (silently) turn of the builtin_civetweb flag, or do we also want to force the user to actively enable -Dbuiltin_civetweb=ON

@linev

linev commented Aug 4, 2026

Copy link
Copy Markdown
Member

What about if system-version is found but does not have the X_DOM_SOCKET enabled? Should then the CMake
system automatically (silently) turn of the builtin_civetweb flag,
or do we also want to force the user to actively enable -Dbuiltin_civetweb=ON

Yes, this is also the situation when error message must be shown and user actively should enable -Dbuiltin_civetweb=ON or disable http.

Comment thread cmake/modules/SearchInstalledSoftware.cmake Outdated
Comment thread cmake/modules/SearchInstalledSoftware.cmake Outdated
Comment thread cmake/modules/SearchInstalledSoftware.cmake Outdated
Comment thread cmake/modules/RootBuildOptions.cmake Outdated
Comment thread .github/workflows/root-ci-config/buildconfig/ubuntu2604.txt
…e target, and bump from 1.16+ to latest master

and define proper CMake target

[ci] explicit enable in alma10clang-ninja even if it was getting on implicitly

fixes for SSL
disable SSL dynamic loading

fix openssl include
fix builtin ssl name

rename builtin name
and copy-paste additional variables from xrootd to civetweb

avoid cache vars

[net] document civetweb builtin mechanism and version link

[civetweb] add patches after 1.16 that solve several CVE

detect if websockets component is part of systemwide civetweb

[cmake] do not error out if build dir is git dir

from willcern

Create civetweb-marker.diff

xdom socket missing in ubu packages

see root-project/root-ci-images#116 (comment)

enable builtin civetweb on mac and windows since no system version
…actively enable builtin_civetweb if http is requested

as suggested by linev
…nable builtin_civetweb

This purposely ignores the fail-on-missing-flag since we are moving away from that model
as suggested by linev
opensuse16 comes with civetweb 1.15, allow it
@ferdymercury

Copy link
Copy Markdown
Collaborator Author

@linev It seems opensuse16 machine is missing one of the packages ? I tried here: root-project/root-ci-images#141

  CMake Error at /usr/lib64/cmake/civetweb/civetweb-targets.cmake:106 (message):
    The imported target "civetweb::server" references the file
       "/usr/bin/civetweb"
    but this file does not exist.  Possible reasons include:
    * The file was deleted, renamed, or moved to another location.
    * An install or uninstall procedure did not complete successfully.
    * The installation package was faulty and contained
       "/usr/lib64/cmake/civetweb/civetweb-targets.cmake"
    but not all the files it references.
  Call Stack (most recent call first):
    /usr/lib64/cmake/civetweb/civetweb-config.cmake:57 (include)
    cmake/modules/SearchInstalledSoftware.cmake:539 (find_package)
    CMakeLists.txt:136 (include)

@ferdymercury
ferdymercury requested a review from linev August 4, 2026 17:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

skip code analysis Skip the code analysis CI steps for this PR, including verifying clang-formatting and running Ruff.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants