From: Todd C. Miller Date: Thu, 8 Nov 2012 19:45:22 +0000 (-0500) Subject: Solaris gettext() looks in lang.UTF-8, not just lang for UTF-8 locales. X-Git-Tag: SUDO_1_8_7~1^2~358 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9d2dc4c30a7c9f955ee94eb76065ea3f7028bb61;p=sudo Solaris gettext() looks in lang.UTF-8, not just lang for UTF-8 locales. Make links from localdir/lang -> localdir/lang.UTF-8 --- diff --git a/Makefile.in b/Makefile.in index aeb3aa542..69f3b9f1c 100644 --- a/Makefile.in +++ b/Makefile.in @@ -65,6 +65,7 @@ ECHO_C = @ECHO_C@ # Message catalog support NLS = @SUDO_NLS@ POTFILES = src/po/sudo.pot plugins/sudoers/po/sudoers.pot +LOCALEDIR_SUFFIX = @LOCALEDIR_SUFFIX@ MSGFMT = msgfmt MSGMERGE = msgmerge XGETTEXT = xgettext @@ -237,6 +238,11 @@ install-nls: test -s $$podir/$$lang.mo || continue; \ echo $(ECHO_N) " $$lang$(ECHO_C)"; \ $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \ + if test -n "$(LOCALEDIR_SUFFIX)"; then \ + if test ! -d $(DESTDIR)$(localedir)/$$lang$(LOCALEDIR_SUFFIX); then \ + ln -s $$lang $(DESTDIR)$(localedir)/$$lang$(LOCALEDIR_SUFFIX); \ + fi; \ + fi; \ $(INSTALL) -O $(install_uid) -G $(install_gid) -m 0644 $$podir/$$lang.mo $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$$domain.mo; \ done; \ echo ""; \ diff --git a/configure b/configure index a2305cbdb..177f6f1ea 100755 --- a/configure +++ b/configure @@ -699,6 +699,7 @@ PIE_CFLAGS PIE_LDFLAGS CROSS_COMPILING COMPAT_TEST_PROGS +LOCALEDIR_SUFFIX SUDO_NLS LIBINTL LT_STATIC @@ -2916,6 +2917,7 @@ $as_echo "$as_me: Configuring Sudo version $PACKAGE_VERSION" >&6;} + # @@ -2984,6 +2986,7 @@ AUTH_EXCL= AUTH_EXCL_DEF= AUTH_DEF=passwd SUDO_NLS=disabled +LOCALEDIR_SUFFIX= LT_LDEXPORTS="-export-symbols \$(shlib_exp)" LT_LDDEP="\$(shlib_exp)" NO_VIZ= @@ -18099,6 +18102,10 @@ done $as_echo "#define HAVE_LIBINTL_H 1" >>confdefs.h SUDO_NLS=enabled + # For Solaris we need links from lang to lang.UTF-8 in localedir + case "$host" in + *-*-solaris2*) LOCALEDIR_SUFFIX=".UTF-8";; + esac elif test "$sudo_cv_gettext_lintl" = "yes"; then $as_echo "#define HAVE_LIBINTL_H 1" >>confdefs.h diff --git a/configure.in b/configure.in index 9ae795a58..22e00ab8b 100644 --- a/configure.in +++ b/configure.in @@ -74,6 +74,7 @@ AC_SUBST([LIBDL]) AC_SUBST([LT_STATIC]) AC_SUBST([LIBINTL]) AC_SUBST([SUDO_NLS]) +AC_SUBST([LOCALEDIR_SUFFIX]) AC_SUBST([COMPAT_TEST_PROGS]) AC_SUBST([CROSS_COMPILING]) AC_SUBST([PIE_LDFLAGS]) @@ -188,6 +189,7 @@ AUTH_EXCL= AUTH_EXCL_DEF= AUTH_DEF=passwd SUDO_NLS=disabled +LOCALEDIR_SUFFIX= LT_LDEXPORTS="-export-symbols \$(shlib_exp)" LT_LDDEP="\$(shlib_exp)" NO_VIZ= @@ -2502,6 +2504,10 @@ if test "$enable_nls" != "no"; then if test "$sudo_cv_gettext" = "yes"; then AC_DEFINE(HAVE_LIBINTL_H) SUDO_NLS=enabled + # For Solaris we need links from lang to lang.UTF-8 in localedir + case "$host" in + *-*-solaris2*) LOCALEDIR_SUFFIX=".UTF-8";; + esac elif test "$sudo_cv_gettext_lintl" = "yes"; then AC_DEFINE(HAVE_LIBINTL_H) SUDO_NLS=enabled