Skip to content

PS-10735 [DOCS] - update compile-percona-server 8.4 - #680

Open
patrickbirch wants to merge 3 commits into
8.4from
ps-10735-8.4
Open

patrickbirch wants to merge 3 commits into
8.4from
ps-10735-8.4

Conversation

@patrickbirch

@patrickbirch patrickbirch commented Mar 5, 2026 •

Copy link
Copy Markdown
Collaborator
modified:   docs/compile-percona-server.md

Change Log (Pass 1)

The diff was checked with git diff and git status. Only the Boost paragraph changed. The untracked edit-technicaldoc.ps1 was not edited.
The source conflict:
In the 8.0.46-37 tree, cmake/boost.cmake reads DOWNLOAD_BOOST and WITH_BOOST (lines 110, 199–223). The comment is correct for 8.0.
In the 8.4.11 tree, cmake/boost.cmake says "Always use the bundled version." No CMake file reads either flag. On 8.4.11, both flags are ignored, and CMake prints Manually-specified variables were not used by the project.
I did not check earlier 8.4 releases, so I cannot say whether any 8.4 release read these flags.
Facts removed: the statements that these options do not exist, that Boost configuration needs no network access, and that readers should not pass Boost flags or install a system Boost.
Facts added: -DDOWNLOAD_BOOST=1 and -DWITH_BOOST=.... The value 1 comes from the 8.0 cmake/boost.cmake.
Version annotation: none added. This text describes 8.0 behavior and applies to 8.4 only as written. If it stays in the 8.4 guide, it needs a version annotation or a scope note.
Bracketed placeholder inserted: [Insert Boost directory path]. The Boost directory is not in the input.

Comment thread docs/compile-percona-server.md Resolved
Comment thread docs/compile-percona-server.md Resolved

@inikep inikep left a comment •

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I checked the technical claims against the percona-server 8.4 source tree (checked out at 8.4.11). Five blocking issues. Two are already flagged inline; the rest are listed here with line references.

1. The Boost sections do not apply to Percona Server 8.4

compile-percona-server.md lines 58, 163-176, 196 — source-installation-prerequisites.md lines 113, 134-148

DOWNLOAD_BOOST and WITH_BOOST do not exist in this product. A grep over every CMakeLists.txt and *.cmake in the tree returns no hits for either name. cmake/boost.cmake is explicit:

SET(BOOST_PACKAGE_NAME "boost_1_84_0")

# Always use the bundled version.
SET(BOOST_SOURCE_DIR ${CMAKE_SOURCE_DIR}/extra/boost)

Boost 1.84.0 ships in extra/boost/boost_1_84_0, and CMake raises a FATAL_ERROR if the bundled headers are not exactly 1.84 (EXPECTED_BOOST_VERSION 108400). So there is nothing to download, no system Boost to point CMake at, and no version mismatch a reader can hit or fix. Passing -DDOWNLOAD_BOOST=1 yields only the "Manually-specified variables were not used by the project" warning — the same behaviour the page correctly documents for -DFEATURE_SET=community.

Consequences to fix: the "Option A / Option B" framework in both pages, the "do not pass both flags" notes, the wget/curl justification ("Required for Option A"), and the claim that CMake configuration needs network access.

The worked example is also inverted — line 165 reads "for example, 1.8x when the tree expects 1.77". The tree expects 1.84 (1.77 is the 8.0 value), so as written it tells readers a correct Boost is the broken one.

2. The cmake . fallback for make dist cannot work

compile-percona-server.md lines 107 and 147

CMakeLists.txt makes an in-source build a FATAL_ERROR unless -DFORCE_INSOURCE_BUILD=1 is passed:

Please do not build in-source. Out-of source builds are highly recommended … You can force in-source build by invoking cmake with -DFORCE_INSOURCE_BUILD=1

So "run cmake . and make dist from the root" fails immediately. The premise is unfounded too: the dist target is declared in sql/CMakeLists.txt with WORKING_DIRECTORY ${CMAKE_BINARY_DIR}, so an out-of-source make dist is exactly how it is meant to run. This note also contradicts the page's own (correct) statement on line 194 that in-source builds must not be used. Suggest deleting the note and the cross-reference on line 107.

Related, while you are in that area: make distclean in this tree only prints "WARNING: distclean target is not functional — use git clean -fdx", which is worth knowing next to the warning about git clean -xfd.

3. Minimum GCC version is wrong

source-installation-prerequisites.md lines 24, 61, 101

cmake/os/Linux.cmake enforces GCC ≥ 10 or Clang ≥ 14:

# We require at least GCC 10 Clang 14
...
MESSAGE(FATAL_ERROR "GCC 10 or newer is required")
...
MESSAGE(FATAL_ERROR "Clang 14 or newer is required!")

The page says "GCC 11.3 or newer" in three places and leaves Clang as "a Clang version documented for {{vers}}". Please use the enforced numbers. If 11.3 comes from upstream MySQL's prerequisites page, say so and cite it, because it is not what Percona Server 8.4 checks.

4. Minimum CMake version is wrong

source-installation-prerequisites.md lines 24 and 59

The tree requires CMAKE_MINIMUM_REQUIRED(VERSION 3.14.6), matching upstream's documented 3.14.6. The page says 3.15 twice.

5. Broken admonition

compile-percona-server.md lines 159-161

!!! note

    `-DFEATURE_SET=community` is not supported in {{vers}}. If you use
`-DFEATURE_SET=community`, CMake will report: *Manually-specified variables were not used by the project:
FEATURE_SET*.

The continuation lines are not indented, so they fall out of the note block in MkDocs. Indent lines 160-161 by four spaces.

Comment thread docs/compile-percona-server.md Resolved

@svetasmirnova svetasmirnova left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

It may also make sense to describe how to check out a specific tag from GitHub to build a specific version. Otherwise, GitHub instructions are for the latest code in the branch (maybe unstable).

Comment thread docs/compile-percona-server.md Resolved
Comment thread docs/compile-percona-server.md Resolved
Comment thread docs/compile-percona-server.md Resolved
Comment thread docs/compile-percona-server.md Resolved
Comment thread docs/compile-percona-server.md Resolved
Comment thread docs/compile-percona-server.md Resolved

!!! note

Do not pass `-DDOWNLOAD_BOOST=1` and `-DWITH_BOOST=/path/to/boost` in the same CMake command. CMake may download one version while headers come from another path. The build can fail hours later with missing Boost headers.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

As I wrote earlier, you have to pass both -DDOWNLOAD_BOOST and -DWITH_BOOST, so cmake is able to find downloaded Boost.

	modified:   docs/compile-percona-server.md

This branch was successfully deployed

1 active deployment
ps-10735-8.4 - percona-server-docs-8.4 PR #680 — 2a26cf3b Deployed Nov 5, 2026 by patrickbirch
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants