Skip to content

boost: hard-fail when ENABLE_BOOST=YES but boost::asio is unusable - #513

Merged
mrjimenez merged 1 commit into
amule-project:masterfrom
got3nks:pr-boost-hard-fail
May 2, 2026
Merged

boost: hard-fail when ENABLE_BOOST=YES but boost::asio is unusable#513
mrjimenez merged 1 commit into
amule-project:masterfrom
got3nks:pr-boost-hard-fail

Conversation

@got3nks

@got3nks got3nks commented May 2, 2026

Copy link
Copy Markdown
Contributor

Summary

Mirror of #509 / #511 / #512 applied to cmake/boost.cmake. Two soft-fail spots both flipped to FATAL_ERROR:

  1. asio probe failed (boost found but check_include_files for boost/system/error_code.hpp + boost/asio.hpp couldn't compile), no DOWNLOAD_AND_BUILD_DEPS opt-in. This is the realistic case — a user has libboost-dev installed but a transitive header issue / version mismatch / link-step incompat tripped the probe. Previously: silently set(ENABLE_BOOST FALSE), falling back to wxWidgets sockets. Now: FATAL_ERROR with install hint, plus pointers to -DENABLE_BOOST=NO and -DDOWNLOAD_AND_BUILD_DEPS=YES.

  2. Boost_FOUND=FALSE — defensive branch, practically unreachable because find_package(Boost CONFIG REQUIRED) at the top of the file already errors when boost is absent. Replacing the silent disable with FATAL_ERROR makes the assumption explicit: if a future edit drops the REQUIRED keyword, this branch surfaces the regression instead of producing a green build with no boost support.

The DOWNLOAD_AND_BUILD_DEPS escape hatch (where CMake is expected to build Boost itself elsewhere in the configure pass) is preserved for branch 1 — when DAaBD is set, no error fires.

Why

Per @Vollstrecker on #507 (comment):

If a user sets a feature to enable and the deps for it aren't found, we don't disable it and keep going, we error-out and the feature will be disabled by the user, or the deps is provided.

This completes the four-file cmake/<feature>.cmake hard-fail series — ip2country (#509, merged), upnp (#511), nls (#512), boost (this PR).

Test plan

Mirror of amule-project#509 / amule-project#511 / amule-project#512 applied to cmake/boost.cmake. Two
soft-fail spots both flipped to FATAL_ERROR:

1. asio probe failed (boost found but check_include_files for
   boost/system/error_code.hpp + boost/asio.hpp couldn't compile),
   no DOWNLOAD_AND_BUILD_DEPS opt-in. This is the realistic case —
   a user has libboost-dev installed but missing some transitive
   header / version mismatch / link-step issue tripped the probe.
   Previously: silently set ENABLE_BOOST=FALSE, falling back to
   wxWidgets sockets. Now: FATAL_ERROR with hint to install full
   boost-dev, or pass -DENABLE_BOOST=NO, or pass
   -DDOWNLOAD_AND_BUILD_DEPS=YES.

2. Boost_FOUND=FALSE — defensive branch, practically unreachable
   because find_package(Boost CONFIG REQUIRED) at the top of the
   file already errors out when boost is absent. Replacing the
   silent disable with FATAL_ERROR makes the assumption explicit:
   if a future edit ever drops the REQUIRED keyword, this branch
   surfaces the regression instead of producing a green build
   with no boost.

The DOWNLOAD_AND_BUILD_DEPS escape hatch (where CMake is expected
to build Boost itself elsewhere in the configure pass) is preserved
for branch 1 — when DAaBD is set, no error fires.

Per @Vollstrecker on amule-project#507 (comment):

  > If a user sets a feature to enable and the deps for it aren't found,
  > we don't disable it and keep going, we error-out and the feature
  > will be disabled by the user, or the deps is provided.

This completes the four-file cmake/<feature>.cmake hard-fail series
(ip2country in amule-project#509, upnp in amule-project#511, nls in amule-project#512, boost here).

Test plan:

* configure with deps present (-DENABLE_BOOST=YES) — succeeds, boost
  found, ASIO_SOCKETS=TRUE (verified locally on macOS Homebrew
  boost 1.90.0).
* configure with -DENABLE_BOOST=NO — succeeds, no probing happens
  (top-level CMakeLists.txt:71 gates the include behind the option).
* configure with deps missing (-DENABLE_BOOST=YES, no boost) — the
  REQUIRED keyword on find_package(Boost CONFIG) at line 1 errors
  out before our changes are reached; the new FATAL_ERROR for the
  asio-probe-failed case isn't triggerable without artificially
  installing a broken boost. Mechanically identical FATAL_ERROR
  shape to amule-project#509 / amule-project#511 / amule-project#512.
@mrjimenez
mrjimenez merged commit 4eb7bee into amule-project:master May 2, 2026
12 checks passed
got3nks added a commit to got3nks/amule that referenced this pull request May 2, 2026
…3nks

mrjimenez flagged on PR amule-project#514 review that these three contributors
were missing from the roster:

* Werner Mahr / Vollstrecker — has merge access on amule-project/amule
  and merges incoming PRs (e.g. amule-project#430, amule-project#385, amule-project#319, amule-project#330, amule-project#286). Goes
  under Maintainers based on that role.
* Pablo Barciela / Sc0w — recent contributor, e.g. wxWidgets 3.2.6
  build fixes, GTK version-check cleanup, dropping gtk1/gtk2 support,
  Chinese translation work. Goes under Developers.
* got3nks — Wayland app_id binding + SNI tray (amule-project#508), macOS UX
  (amule-project#508), libmaxminddb CI fix (amule-project#507), ip2country/upnp/nls/boost
  hard-fail series (amule-project#509/amule-project#511/amule-project#512/amule-project#513), packaging (amule-project#510),
  docs modernize (this PR). Goes under Developers.

Other recent folks may be missing too — those can be added in
follow-up commits as they're identified. mrjimenez explicitly noted
this is the priority subset to not block the rename PR.
mrjimenez pushed a commit that referenced this pull request May 2, 2026
…3nks

mrjimenez flagged on PR #514 review that these three contributors
were missing from the roster:

* Werner Mahr / Vollstrecker — has merge access on amule-project/amule
  and merges incoming PRs (e.g. #430, #385, #319, #330, #286). Goes
  under Maintainers based on that role.
* Pablo Barciela / Sc0w — recent contributor, e.g. wxWidgets 3.2.6
  build fixes, GTK version-check cleanup, dropping gtk1/gtk2 support,
  Chinese translation work. Goes under Developers.
* got3nks — Wayland app_id binding + SNI tray (#508), macOS UX
  (#508), libmaxminddb CI fix (#507), ip2country/upnp/nls/boost
  hard-fail series (#509/#511/#512/#513), packaging (#510),
  docs modernize (this PR). Goes under Developers.

Other recent folks may be missing too — those can be added in
follow-up commits as they're identified. mrjimenez explicitly noted
this is the priority subset to not block the rename PR.
@got3nks
got3nks deleted the pr-boost-hard-fail branch May 2, 2026 14:31
got3nks pushed a commit to got3nks/amule that referenced this pull request Jul 17, 2026
Translated using Weblate (Tamil)
Currently translated at 0.8% (2 of 246 strings)
Translation: aMule/Application Man Pages
Translate-URL: https://hosted.weblate.org/projects/amule/application-man-pages/ta/

Translated using Weblate

Translated using Weblate (Tamil)
Currently translated at 1.3% (24 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/ta/

Translated using Weblate

Translated using Weblate (Latvian)
Currently translated at 56.9% (140 of 246 strings)
Translation: aMule/Application Man Pages
Translate-URL: https://hosted.weblate.org/projects/amule/application-man-pages/lv/

Translated using Weblate

Translated using Weblate (Latvian)
Currently translated at 30.9% (568 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/lv/

Translated using Weblate

Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 89.8% (222 of 247 strings)
Translation: aMule/Application Man Pages
Translate-URL: https://hosted.weblate.org/projects/amule/application-man-pages/zh_Hant/

Translated using Weblate

Translated using Weblate (Turkish)
Currently translated at 99.5% (246 of 247 strings)
Translation: aMule/Application Man Pages
Translate-URL: https://hosted.weblate.org/projects/amule/application-man-pages/tr/

Translated using Weblate

Translated using Weblate (Russian)
Currently translated at 89.8% (222 of 247 strings)
Translation: aMule/Application Man Pages
Translate-URL: https://hosted.weblate.org/projects/amule/application-man-pages/ru/

Translated using Weblate

Translated using Weblate (Romanian)
Currently translated at 89.8% (222 of 247 strings)
Translation: aMule/Application Man Pages
Translate-URL: https://hosted.weblate.org/projects/amule/application-man-pages/ro/

Translated using Weblate

Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (247 of 247 strings)
Translation: aMule/Application Man Pages
Translate-URL: https://hosted.weblate.org/projects/amule/application-man-pages/pt_BR/

Translated using Weblate

Translated using Weblate (Italian)
Currently translated at 100.0% (247 of 247 strings)
Translation: aMule/Application Man Pages
Translate-URL: https://hosted.weblate.org/projects/amule/application-man-pages/it/

Translated using Weblate

Translated using Weblate (Hungarian)
Currently translated at 89.8% (222 of 247 strings)
Translation: aMule/Application Man Pages
Translate-URL: https://hosted.weblate.org/projects/amule/application-man-pages/hu/

Translated using Weblate

Translated using Weblate (French)
Currently translated at 100.0% (247 of 247 strings)
Translation: aMule/Application Man Pages
Translate-URL: https://hosted.weblate.org/projects/amule/application-man-pages/fr/

Translated using Weblate

Translated using Weblate (Spanish)
Currently translated at 99.5% (246 of 247 strings)
Translation: aMule/Application Man Pages
Translate-URL: https://hosted.weblate.org/projects/amule/application-man-pages/es/

Translated using Weblate

Translated using Weblate (German)
Currently translated at 99.5% (246 of 247 strings)
Translation: aMule/Application Man Pages
Translate-URL: https://hosted.weblate.org/projects/amule/application-man-pages/de/

Translated using Weblate

Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 84.8% (1556 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/zh_Hant/

Translated using Weblate

Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1834 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/zh_Hans/

Translated using Weblate

Translated using Weblate (Ukrainian)
Currently translated at 77.9% (1430 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/uk/

Translated using Weblate

Translated using Weblate (Turkish)
Currently translated at 93.7% (1720 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/tr/

Translated using Weblate

Translated using Weblate (Swedish)
Currently translated at 85.5% (1569 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/sv/

Translated using Weblate

Translated using Weblate (Albanian)
Currently translated at 63.5% (1166 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/sq/

Translated using Weblate

Translated using Weblate (Slovenian)
Currently translated at 85.7% (1573 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/sl/

Translated using Weblate

Translated using Weblate (Russian)
Currently translated at 84.6% (1552 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/ru/

Translated using Weblate

Translated using Weblate (Romanian)
Currently translated at 85.4% (1568 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/ro/

Translated using Weblate

Translated using Weblate (Portuguese (Portugal))
Currently translated at 84.6% (1553 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/pt_PT/

Translated using Weblate

Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (1834 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/pt_BR/

Translated using Weblate

Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (1834 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/pt_BR/

Translated using Weblate

Translated using Weblate (Polish)
Currently translated at 82.6% (1515 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/pl/

Translated using Weblate

Translated using Weblate (Norwegian Nynorsk)
Currently translated at 70.9% (1301 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/nn/

Translated using Weblate

Translated using Weblate (Dutch)
Currently translated at 86.2% (1581 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/nl/

Translated using Weblate

Translated using Weblate (Lithuanian)
Currently translated at 70.9% (1301 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/lt/

Translated using Weblate

Translated using Weblate (Korean)
Currently translated at 58.8% (1080 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/ko/

Translated using Weblate

Translated using Weblate (Japanese)
Currently translated at 64.9% (1192 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/ja/

Translated using Weblate

Translated using Weblate (Italian (Switzerland))
Currently translated at 90.8% (1666 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/it_CH/

Translated using Weblate

Translated using Weblate (Italian)
Currently translated at 99.6% (1827 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/it/

Translated using Weblate

Translated using Weblate (Hungarian)
Currently translated at 90.4% (1659 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/hu/

Translated using Weblate

Translated using Weblate (Croatian)
Currently translated at 25.5% (468 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/hr/

Translated using Weblate

Translated using Weblate (Hebrew)
Currently translated at 46.2% (848 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/he/

Translated using Weblate

Translated using Weblate (Galician)
Currently translated at 90.3% (1657 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/gl/

Translated using Weblate

Translated using Weblate (French)
Currently translated at 97.0% (1779 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/fr/

Translated using Weblate

Translated using Weblate (Finnish)
Currently translated at 84.9% (1558 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/fi/

Translated using Weblate

Translated using Weblate (Basque)
Currently translated at 84.9% (1558 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/eu/

Translated using Weblate

Translated using Weblate (Estonian)
Currently translated at 83.8% (1537 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/et/

Translated using Weblate

Translated using Weblate (Spanish)
Currently translated at 93.8% (1721 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/es/

Translated using Weblate

Translated using Weblate (Greek)
Currently translated at 74.5% (1368 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/el/

Translated using Weblate

Translated using Weblate (German)
Currently translated at 91.6% (1681 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/de/

Translated using Weblate

Translated using Weblate (Danish)
Currently translated at 25.0% (460 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/da/

Translated using Weblate

Translated using Weblate (Czech)
Currently translated at 67.2% (1234 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/cs/

Translated using Weblate

Translated using Weblate (Catalan)
Currently translated at 86.4% (1585 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/ca/

Translated using Weblate

Translated using Weblate (Bulgarian)
Currently translated at 14.0% (258 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/bg/

Translated using Weblate

Translated using Weblate (Asturian)
Currently translated at 78.8% (1446 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/ast/

Translated using Weblate

Translated using Weblate (Arabic)
Currently translated at 16.5% (304 of 1834 strings)
Translation: aMule/Application
Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/ar/

Co-authored-by: Diego Heras <[email protected]>
Co-authored-by: Hosted Weblate user 54392 <[email protected]>
Co-authored-by: Marcelo Roberto Jimenez <[email protected]>
Co-authored-by: தமிழ்நேரம் <[email protected]>
Co-authored-by: ℂ𝕠𝕠𝕠𝕝 (𝕘𝕚𝕥𝕙𝕦𝕓.𝕔𝕠𝕞/ℂ𝕠𝕠𝕠𝕝) <[email protected]>
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.

2 participants