.mo are installed in /usr/lib rather than /usr/share under FreeBSD
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
intltool |
Fix Released
|
High
|
dobey |
Bug Description
intltool.m4 defaults DATADIRNAME to 'lib' when it can't link the
_nl_msg_cat_cntr function - i.e. GNU gettext.
This is a bug in the following situation:
- FreeBSD is used: unlike under GNU/Linux, gettext isn't present unless you
explicitely specify -lintl -L/usr/local/lib
- The project doesn't link with libintl/gettext directly, but uses it
indirectly as part of a framework (in my case, wxGtk/wxWidgets)
Relevant M4 code in /usr/share/
# Set DATADIRNAME correctly if it is not set yet
# (copied from glib-gettext.m4)
if test -z "$DATADIRNAME"; then
AC_LINK_IFELSE(
[
[
[case $host in
*-*-solaris*)
dnl On Solaris, if bind_textdomain
dnl GNU format message catalog is always supported,
dnl since both are added to the libc all together.
dnl Hence, we'd like to go with DATADIRNAME=share
dnl in this case.
AC_
;;
*)
[
;;
esac])
fi
AC_SUBST(
Steps to reproduce:
1. Install FreeBSD 6.4
2. Download http://
3. pkg_add -r wxgtk2-unicode
pkg_add -r bzip2 # also installs libbz2
pkg_add -r intltool
pkg_add -r gmake
4. ./configure && gmake
5. cd po/ && gmake install
# incidentally Makefile.in.in doesn't seem to work in FreeBSD's make
Actual results:
DATADIRNAME is set to 'lib' and .mo files are installed in /usr/local/lib/
freebsd# cd po
freebsd# make install
Error expanding embedded variable.
freebsd# gmake install
/bin/sh /root/dfarc-
linguas="fr pl fi "; \
for lang in $linguas; do \
/bin/sh /root/dfarc-
if test -r $lang.gmo; then \
echo "installing $lang.gmo as $dir/dfarc.mo"; \
else \
echo "installing ./$lang.gmo as" \
fi; \
if test -r $lang.gmo.m; then \
echo "installing $lang.gmo.m as $dir/dfarc.mo.m"; \
else \
if test -r ./$lang.gmo.m ; then \
echo "installing ./$lang.gmo.m as" \
else \
true; \
fi; \
fi; \
done
installing fr.gmo as /usr/local/
installing pl.gmo as /usr/local/
installing fi.gmo as /usr/local/
Expected results:
DATADIRNAME is set to 'share' and .mo files are installed in /usr/local/share/
Does this happen every time?
Yes
Other information:
Currently the FreeBSD package is using a quick patch:
It would be nice to fix intltool.m4 so as to avoid this patch.
Related branches
- intltool Developers: Pending requested
-
Diff: 69 lines (+4/-30)2 files modifiedMakefile.in.in (+4/-5)
intltool.m4 (+0/-25)
Changed in intltool: | |
assignee: | nobody → Rodney Dawes (dobey) |
milestone: | none → 0.41.0 |
status: | New → Triaged |
Changed in intltool: | |
milestone: | 0.41.0 → 0.41.1 |
Changed in intltool: | |
importance: | Undecided → High |
Changed in intltool: | |
milestone: | 0.41.1 → 0.42.0 |
Changed in intltool: | |
milestone: | 0.50.0 → 0.51.0 |
Changed in intltool: | |
status: | Triaged → Fix Committed |
Changed in intltool: | |
status: | Fix Committed → Fix Released |
Useful info related to Mingw and OpenBSD in duplicate bug reports as well.