RPM Community Forums

Mailing List Message of <popt-devel>

Re: popt-1.13 release

From: Takao Fujiwara - Tokyo S/W Center <Takao.Fujiwara@Sun.COM>
Date: Wed 16 Jan 2008 - 03:46:15 CET
Message-id: <478D6FF7.5030900@Sun.COM>
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 /*@only@*/ /*@null@*/ char *
 strdup_locale_from_utf8 (/*@null@*/ 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
Received on Wed Jan 16 03:46:24 2008
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.