[pacman-dev] [PATCH] build: add libintl dependency to meson and the .pc file

Eli Schwartz eschwartz at archlinux.org
Mon May 18 19:18:12 UTC 2020

In order to use gettext on systems where it is not part of libc, the
correct linker flags are needed in libalpm.pc (for static compilation).
This has never been the case.

The new meson build system currently only checks for ngettext in libc,
but does not fall back to searching for the existence of -lintl; add it
to the libalpm dependencies.

Signed-off-by: Eli Schwartz <eschwartz at archlinux.org>

Fixes build on MSYS2, and possibly others. Part of

 lib/libalpm/libalpm.pc.in | 2 +-
 meson.build               | 8 ++++++--
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/lib/libalpm/libalpm.pc.in b/lib/libalpm/libalpm.pc.in
index 126a6e6a..da7f96aa 100644
--- a/lib/libalpm/libalpm.pc.in
+++ b/lib/libalpm/libalpm.pc.in
@@ -10,4 +10,4 @@ Version: @LIB_VERSION@
 Requires.private: libarchive @pc_crypto@ @pc_libcurl@ @pc_gpgme@
 Cflags: -I${includedir} @LFS_CFLAGS@
 Libs: -L${libdir} -lalpm
-Libs.private: @LIBS@ @pc_gpgme_libs@
+Libs.private: @LIBS@ @pc_gpgme_libs@ @LIBINTL@
diff --git a/meson.build b/meson.build
index 331f02b8..aa3bd4d9 100644
--- a/meson.build
+++ b/meson.build
@@ -77,9 +77,13 @@ conf.set_quoted('CACHEDIR', join_paths(LOCALSTATEDIR, 'cache/pacman/pkg/'))
 conf.set_quoted('HOOKDIR', join_paths(SYSCONFDIR, 'pacman.d/hooks/'))
 conf.set_quoted('ROOTDIR', ROOTDIR)
+libintl = dependency('', required: false)
 if get_option('i18n')
   if not cc.has_function('ngettext')
-    error('ngettext not found but NLS support requested')
+    libintl = cc.find_library('intl', required : false, static: get_option('buildstatic'))
+    if not libintl.found()
+      error('ngettext not found but NLS support requested')
+    endif
   conf.set('ENABLE_NLS', 1)
@@ -301,7 +305,7 @@ libcommon = static_library(
   include_directories : includes,
   install : false)
-alpm_deps = [crypto_provider, libarchive, libcurl, gpgme]
+alpm_deps = [crypto_provider, libarchive, libcurl, libintl, gpgme]
 libalpm_a = static_library(

More information about the pacman-dev mailing list