Skip to content

[gettext] msgfmt (and other gettext bin tools) missing on macOS & Windows #13518

@wrobelda

Description

@wrobelda

Describe the bug
macOS nor Windows come with gettext by default. There is a gettext port in vcpkg, but it doesn't ship the \bin tools. The vcpkg_find_acquire_program() does not offer it, either. Because of that reason, ports that require msgfmt binary tools (e.g. kf5i18n) fail to build on macOS and Windows.

What's even more puzzling, though, is that the vcpkg OS X Azure Pipeline builds it just fine, despite that gettext is not one of the home-brew prerequisites installed by vagrant. EDIT: these pipeline builds were in fact false-positives and were never actually executed.

Environment

  • OS: macOS 10.15.6, as well as Windows 10
  • Compiler: Apple clang version 11.0.3 (clang-1103.0.32.62)

To Reproduce
Steps to reproduce the behavior:

  1. Make sure you do not have a gettext brew package installed
  2. vcpkg install kf5i18
  3. See the error.

Expected behavior

  1. Azure Pipeline build should fail just like the local build does
  2. vcpkg_find_acquire_program() should include gettext tools

Alternatively, the way that OS X Azure Pipeline delivers a functioning set of gettext tools should be explicitly documented. as explained above, this was a false-positive.

Failure logs

CMake Error at /Volumes/External/Sourcecode/vcpkg/downloads/tools/cmake-3.17.2-osx/cmake-3.17.2-Darwin-x86_64/CMake.app/Contents/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:164 (message):
  Could NOT find Gettext (missing: GETTEXT_MSGMERGE_EXECUTABLE
  GETTEXT_MSGFMT_EXECUTABLE)
Call Stack (most recent call first):
  /Volumes/External/Sourcecode/vcpkg/downloads/tools/cmake-3.17.2-osx/cmake-3.17.2-Darwin-x86_64/CMake.app/Contents/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:445 (_FPHSA_FAILURE_MESSAGE)
  /Volumes/External/Sourcecode/vcpkg/downloads/tools/cmake-3.17.2-osx/cmake-3.17.2-Darwin-x86_64/CMake.app/Contents/share/cmake-3.17/Modules/FindGettext.cmake:81 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  /Volumes/External/Sourcecode/vcpkg/scripts/buildsystems/vcpkg.cmake:478 (_find_package)
  /Volumes/External/Sourcecode/vcpkg/buildtrees/kf5i18n/x64-osx-dbg/cmake/KF5I18nMacros.cmake:5 (find_package)
  CMakeLists.txt:66 (include)

Metadata

Metadata

Labels

category:port-featureThe issue is with a library, which is requesting new capabilities that didn’t exist

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions