I burned DVD, installed Fedora 8 and could reproduced your problem.
Some of applications do not set bind_textdomain_codeset().
I think the attached patch will fix your main problem with removing your change
of the workaround.
Thanks,
fujiwara
Robert Scheck wrote:
On Mon, 14 Jan 2008, Takao Fujiwara - Tokyo S/W Center wrote:
Robert Scheck wrote:
Fedora 7 has popt delivered with rpm, so it's an old popt version which
never saw your changes. And all popt packages I officially prepared for
Fedora 8 are currently undoing your changes per patch to avoid really any
regression for the Fedora users.
Hmm.., I mean I've already applied the POPT_printf parts with popt sources
and I cannot reproduce your problem.
Well...rpm, kudzu and most of the rest were static linked to popt in Fedora
7. This changed with Fedora 8 the first time. If you really want to try to
reproduce this, go and rebuild all packages depending on popt first. Or try
Fedora 8 which doesn't link statically to popt any longer for rpm and kudzu
- at least it shouldn't.
Greetings,
Robert
--- popt/poptint.c.orig 2008-01-16 10:20:39.000000000 +0900
+++ popt/poptint.c 2008-01-16 10:28:57.000000000 +0900
@@ -2,6 +2,24 @@
#include <stdarg.h>
#include "poptint.h"
+#if defined(HAVE_DCGETTEXT) && !defined(__LCLINT__)
+char *
+_D_ (const char * dom, const char * str)
+{
+ char * codeset = NULL;
+ char * retval = NULL;
+
+ if (!dom)
+ dom = textdomain (NULL);
+ codeset = bind_textdomain_codeset (dom, NULL);
+ bind_textdomain_codeset (dom, "UTF-8");
+ retval = dgettext(dom, str);
+ bind_textdomain_codeset (dom, codeset);
+
+ return retval;
+}
+#endif
+
#ifdef HAVE_ICONV
static /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ char *
strdup_locale_from_utf8 (/[EMAIL PROTECTED]@*/ char *buffer)
--- popt/poptint.h.orig 2008-01-16 02:01:07.000000000 +0900
+++ popt/poptint.h 2008-01-16 02:34:38.000000000 +0900
@@ -105,7 +105,7 @@ struct poptContext_s {
#endif
#if defined(HAVE_DCGETTEXT) && !defined(__LCLINT__)
-#define D_(dom, str) dgettext(dom, str)
+#define D_(dom, str) _D_(dom, str)
#define POPT_(foo) D_("popt", foo)
#else
#define D_(dom, str) str