gettext version problem exposed by buildfarm failures on "canary"
I see buildfarm member "canary" (NetBSD 1.6) was recently resurrected,
but is failing to build HEAD, because msgfmt fails like this:
po/es.po:8039: keyword "msgid_plural" unknown
po/es.po:8036: missing `msgstr' section
po/es.po:8039: parse error
This indicates (1) canary needs a newer version of gettext, and
(2) our configure test for a sufficiently new gettext installation
is not in fact correct, because it didn't complain.
I asked about the configure issue some time ago, and was told that
the existing test for bind_textdomain_codeset() in libintl was
sufficient because that was introduced after ngettext(). It could
be that the library's history is different on NetBSD, or perhaps
canary has a recent libintl.so and a not so recent msgfmt.
I doubt it's worth trying to fix this before 8.4 release, but it
should get looked into eventually.
regards, tom lane
On Fri, June 26, 2009 9:34 am, Tom Lane wrote:
I see buildfarm member "canary" (NetBSD 1.6) was recently resurrected,
but is failing to build HEAD, because msgfmt fails like this:po/es.po:8039: keyword "msgid_plural" unknown
po/es.po:8036: missing `msgstr' section
po/es.po:8039: parse errorThis indicates (1) canary needs a newer version of gettext, and
(2) our configure test for a sufficiently new gettext installation
is not in fact correct, because it didn't complain.I asked about the configure issue some time ago, and was told that
the existing test for bind_textdomain_codeset() in libintl was
sufficient because that was introduced after ngettext(). It could
be that the library's history is different on NetBSD, or perhaps
canary has a recent libintl.so and a not so recent msgfmt.I doubt it's worth trying to fix this before 8.4 release, but it
should get looked into eventually.
yes ... but presumably we don't want canary upgraded until we fix this,
unless we get some other test platform for it.
cheers
andrew
"Andrew Dunstan" <andrew@dunslane.net> writes:
On Fri, June 26, 2009 9:34 am, Tom Lane wrote:
I doubt it's worth trying to fix this before 8.4 release, but it
should get looked into eventually.
yes ... but presumably we don't want canary upgraded until we fix this,
unless we get some other test platform for it.
What I'd suggest Kris do is temporarily disable the NLS option on that
build, so we can get at least some useful testing from the machine.
After a proposed configure fix has been installed, re-enable NLS, verify
configure fails as expected, *then* upgrade msgfmt.
regards, tom lane
Tom Lane wrote:
I see buildfarm member "canary" (NetBSD 1.6) was recently resurrected,
but is failing to build HEAD, because msgfmt fails like this:po/es.po:8039: keyword "msgid_plural" unknown
po/es.po:8036: missing `msgstr' section
po/es.po:8039: parse errorThis indicates (1) canary needs a newer version of gettext, and
(2) our configure test for a sufficiently new gettext installation
is not in fact correct, because it didn't complain.
NetBSD has an odd mix of a BSD libintl and GNU msgfmt, so the library
provides both ngettext and bind_textdomain_codeset, but that has no
implications about what msgfmt supports.
pgfarm@netbsd:~$ msgfmt --version
msgfmt (GNU gettext) 0.10.35
Also, the man page for libintl says, "bind_textdomain_codeset() does not
work at this moment (always fail)."
So perhaps this platform is just a lost cause.
Tom Lane wrote:
What I'd suggest Kris do is temporarily disable the NLS option on that
build, so we can get at least some useful testing from the machine.
After a proposed configure fix has been installed, re-enable NLS, verify
configure fails as expected, *then* upgrade msgfmt.
I disabled NLS, got a clean test run, and have now re-enabled nls so
that people can test things if they care.
Kris Jurka