samizdat-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

installation on fedora core 2 - notes - libgettext-ruby-1.7.0 BUG


From: boud
Subject: installation on fedora core 2 - notes - libgettext-ruby-1.7.0 BUG
Date: Wed, 31 Jan 2007 19:36:17 +0100 (CET)

hi samizdat-devel,

i'm installing samizdat on a fedora core 2 system (not my fault!).

Generally things seem OK, though many of the small ruby libraries seem to be absent, so i added several of them in by compiling from source.

Here are a few notes. # (the comments are for comparison only)

PACKAGES INSTALLED

RedCloth-3.0.4.tar.gz # source (deb stable: libredcloth-ru 3.0.3-2)

mod_ruby-1.2.6.tar.gz   # source  (deb stable: libapache-ruby 1.2.4-1)

libtidy-0.99.0-0 Getting libtidy-0.99.0-0.fdr.2.20040916.2.i386.rpm
Getting libtidy-devel-0.99.0-0.fdr.2.20040916.2.i386.rpm
# cf. debian stable: /usr/lib/libtidy-0.99.so.0

tidy-1.1.2.tar.gz         # source   (debian stable:  libtidy-ruby1. 1.1.2-2)

libdbi-ruby-0.0.23-2.tgz  # debian stable # --without=dbd_sybase,dbd_sqlite

libpgsql-ruby_0.7.1-10.tar.gz   # debian unstable  (deb stable: 0.7.1-3)

libgettext-0.8.0-1 (debian stable) required racc:
racc: cvs -d :pserver:address@hidden:/src co racc
      top of ChangeLog - Tue Nov  7 07:13:47 2006  Minero Aoki






LIBGETTEXT-1.7.0-1 vs 0.8.0-1 (yes, another gettext subtlety...)

Initially i tried:
libgettext-ruby-1.7.0-1.tgz  # debian unstable (deb stable: 0.8.0)

The following happens in this case.

The fr and es strings appear in the files seen by my browser as
ISO-8859-1 files, converted from UTF-8.  This might be OK for es/fr
users who hard-code their browsers into ISO-8859-1, even though the
language names of other languages would look horrible, but in any case,
it's rather silly when it's mixed in with non-ISO-8859-1 (latin-1) and if the user's browser does not *know* that the preferred coding is
latin-1. IMHO there's no reason not to stick to UTF-8.

Text strings for the other locales remain in UTF-8.

i can imagine that there's something "intelligent" in the system which
decides that UTF-8 is "unnecessary", and therefore converts from UTF-8
to ISO-8859-1 - but i couldn't find it.


Here's my attempt to trace the problem:

* POSTGRES: select datname, encoding from pg_database ;
  datname  | encoding
-----------+----------
 samizdat  |        6

It seems to me that encoding=6 means UTF-8, but i didn't find where
this mapping is written.


* PO file: fr.po, es.po from cvs -> UTF-8

* MO file: fr.mo, es.mo installed in fr/LC_MESSAGES/samizdat.mo  etc.  -> UTF-8

* RUBY: ruby packages called by samizdat

attempted hack:
** ruby/lib/ruby/site_ruby/1.8/gettext/mo.rb   (remember: libgettext-1.7.0-1)

-  def self.open(arg = nil, output_charset = nil)
+  def self.open(arg = nil, output_charset = "UTF-8")
    result = self.new(output_charset)
    result.load(arg)
  end

-> failed to solve the problem

** i assume that a version of the iconv library is used for this
conversion - but looking at gettext/iconv.rb and grepping a bit i couldn't
find where it happens


* FINAL RESULT: fr, es text strings in html file seen by browser -> ISO-8859-1


TEMPORARY SOLUTION: DOWNGRADE
i uninstalled libgettext-1.7.0-1 and installed libgettext-0.8.0-1 and this solved the problem.


COMMENT:
Downgrading can only be a temporary solution, since the bug will
return during a normal update of libgettext (present version 1.9.0)
unless it's understood and solved.



cheers
boud




reply via email to

[Prev in Thread] Current Thread [Next in Thread]