ip2country: hard-fail when ENABLE_IP2COUNTRY=YES but libmaxminddb is missing - #509
Merged
Merged
Conversation
When the user explicitly passes -DENABLE_IP2COUNTRY=YES, the soft-disable on missing libmaxminddb produced a green build with the feature silently dropped — there is no way for the user to discover the failure short of reading every STATUS line, which is exactly the kind of mismatch this project's policy now wants gone. Replace the silent downgrade with FATAL_ERROR messages that name the exact dev/runtime package on Debian/Ubuntu, Fedora, Homebrew and MSYS2, plus the escape hatch (-DENABLE_IP2COUNTRY=NO) for users who genuinely don't want the feature. Honours the rule stated by @Vollstrecker on PR amule-project#507: explicit user intent beats implicit dep probing — set the feature, get the feature or a clear error, never a silent miss. The companion soft-fail patterns in cmake/boost.cmake, cmake/upnp.cmake and cmake/nls.cmake have the same anti-pattern but are out of scope here; will follow in subsequent PRs once this approach lands.
This was referenced May 2, 2026
mrjimenez
pushed a commit
that referenced
this pull request
May 2, 2026
Mirror of #509 applied to cmake/upnp.cmake. When the user passes -DENABLE_UPNP=YES (or leaves the option at its default-on) but libupnp isn't present, the previous behaviour was to silently flip the flag to FALSE and emit a STATUS line — same anti-pattern PR #509 fixed for IP2Country: a green build with the feature mysteriously absent at runtime, with no error in the developer's terminal output. Replace the silent downgrade with a FATAL_ERROR carrying platform- specific install hints. The DOWNLOAD_AND_BUILD_DEPS fallback (where CMake builds libupnp from source) stays as a legitimate alternate fulfilment path — only the no-deps-and-no-fallback branch now errors out. 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. The same anti-pattern is also in cmake/boost.cmake and cmake/nls.cmake; those land as separate one-file PRs to keep each diff easily reviewable. Test plan: * configure with deps present (-DENABLE_UPNP=YES) — succeeds, UPnP enabled (verified locally on macOS Homebrew). * configure with deps missing (-DENABLE_UPNP=YES) — fails with the new FATAL_ERROR message naming libupnp-dev / libupnp / mingw-w64-x86_64-pupnp and pointing at the -DENABLE_UPNP=NO and -DDOWNLOAD_AND_BUILD_DEPS=YES escape hatches. * configure with -DENABLE_UPNP=NO — succeeds, no probing happens (top-level CMakeLists.txt:83 gates the include behind the option).
mrjimenez
pushed a commit
that referenced
this pull request
May 2, 2026
Mirror of #509 / #511 applied to cmake/nls.cmake. Two soft-fail spots both flipped to FATAL_ERROR with platform-specific install hints: 1. msgfmt / msgmerge missing — fires on any platform without GNU gettext-tools installed. Hint covers Debian/Ubuntu (gettext), Fedora (gettext), macOS Homebrew (gettext), MSYS2 (mingw-w64-x86_64-gettext). 2. libintl missing — fires only on platforms with a separate libintl runtime (macOS, MinGW/MSYS2, *BSD, musl). On glibc, libintl is part of libc itself and find_package(Intl) reports FOUND with empty Intl_LIBRARIES; the branch never fires there. Hint includes a note that hitting it on a glibc system means glibc-devel / libc6-dev is incomplete. Both branches previously did 'set (ENABLE_NLS FALSE)' + STATUS message, masking the missing dep behind a green build with no localization at runtime — same anti-pattern PR #509 fixed for IP2Country and #511 fixed for UPnP. 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. The same anti-pattern in cmake/boost.cmake will land as a separate small PR (more nuanced — DOWNLOAD_AND_BUILD_DEPS interaction). Test plan: * configure with deps present (-DENABLE_NLS=YES) — succeeds, NLS enabled (verified locally on macOS Homebrew gettext). * configure with msgfmt missing (-DENABLE_NLS=YES) — fails with the new FATAL_ERROR naming gettext per platform. * configure with libintl missing on macOS/MinGW (-DENABLE_NLS=YES) — fails with the new FATAL_ERROR naming the runtime package. * configure with -DENABLE_NLS=NO — succeeds, no probing happens (top-level CMakeLists.txt:79 gates the include behind the option).
mrjimenez
pushed a commit
that referenced
this pull request
May 2, 2026
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 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 #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 #509, upnp in #511, nls in #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 #509 / #511 / #512.
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
added 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 1831 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 31.0% (568 of 1831 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 99.5% (246 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.9% (1556 of 1831 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% (1831 of 1831 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 78.0% (1430 of 1831 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.9% (1720 of 1831 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.6% (1569 of 1831 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.6% (1166 of 1831 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.9% (1573 of 1831 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.7% (1552 of 1831 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.6% (1568 of 1831 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.8% (1553 of 1831 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% (1831 of 1831 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% (1831 of 1831 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% (1831 of 1831 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.7% (1515 of 1831 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 71.0% (1301 of 1831 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.3% (1581 of 1831 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 71.0% (1301 of 1831 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.9% (1080 of 1831 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 65.1% (1192 of 1831 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.9% (1666 of 1831 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.7% (1827 of 1831 strings) Translation: aMule/Application Translate-URL: https://hosted.weblate.org/projects/amule/amule-application/it/ Translated using Weblate Translated using Weblate (Italian) Currently translated at 99.7% (1827 of 1831 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.6% (1659 of 1831 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 1831 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.3% (848 of 1831 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.4% (1657 of 1831 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 94.8% (1737 of 1831 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 85.0% (1558 of 1831 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 85.0% (1558 of 1831 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.9% (1537 of 1831 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.9% (1721 of 1831 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.7% (1368 of 1831 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.8% (1681 of 1831 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.1% (460 of 1831 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.3% (1234 of 1831 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.5% (1585 of 1831 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 1831 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.9% (1446 of 1831 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.6% (304 of 1831 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: Got3nks <[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]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
When the user passes
-DENABLE_IP2COUNTRY=YESandlibmaxminddbheaders or shared library aren't found,cmake/ip2country.cmakecurrently silently overrides the user's flag back toFALSEand prints aSTATUSline — which means a "successful" CMake configure produces a build with the feature missing at runtime, with no error in the developer's terminal output that scrolls past the dependency check.This is exactly the failure mode that masked the libgeoip→libmaxminddb migration gap in upstream CI for months (fixed by #507).
Change
cmake/ip2country.cmake'selse()branch now emitsFATAL_ERRORwith platform-specific install hints:The escape hatch is explicit: if the user genuinely doesn't want IP2Country, they pass
-DENABLE_IP2COUNTRY=NOand the file isn't even included (top-levelCMakeLists.txt:75gates the include behind the option).