Updated: gettext-0.11.2-1; New: gettext-devel-0.11.2-1, libintl2-0.11.2-1

Charles Wilson cwilson@ece.gatech.edu
Mon Jun 24 20:09:00 GMT 2002

gettext is the GNU package which provides 'national language support' 
for other programs. It includes a number of utility programs.

CHANGES (since gettext-0.10.40-1)

o updated to gettext-0.11.2 release
o now depends on the new libiconv package, which adds increased 
o also uses the new expat package
o Fully libtool-driven build, using libtool-devel
o gettext split into three packages:
    Since the dll has been version-bumped, it is in 'libintl2' instead
    of 'libintl1'.  Also, on the recommendation of the upstream
    maintainer of gettext, the tools and utilities have been split into
    'core' (in the 'gettext' package) and 'development' (in the
    'gettext-devel' package).
  o See NOTES section below for more information on this port


To update your installation, click on the "Install Cygwin now" link
on the http://cygwin.com/ web page.  This downloads setup.exe to
your system.  Save it and run setup, answer the questions and pick
up 'gettext' from the 'Libs' category.  You may need to
click the "Full" button if it doesn't show up.  You might want to
make sure you update/install ALL of the following three packages:

Note that downloads from sources.redhat.com (aka cygwin.com) aren't
allowed due to bandwidth limitations.  This means that you will need
to find a mirror which has this update.

In the US, ftp://mirrors.rcn.net/mirrors/sources.redhat.com/cygwin/
is a reliable high bandwidth connection.

In Japan, ftp://ftp.u-aizu.ac.jp/pub/gnu/gnu-win32/ is already

In DK, http://mirrors.sunsite.dk/cygwin/ is usually up-to-date.

If one of the above doesn't have the latest version of this package
you can either wait for the site to be updated or find another

Please  send questions or comments to the Cygwin mailing list at:
cygwin@sources.redhat.com .  If you want to subscribe go to:
http://cygwin.com/lists.html I would appreciate if you would use
this mailing list rather than emailing me directly.  This includes
ideas and comments about the setup utility or Cygwin in general.

If you want to make a point or ask a question the Cygwin mailing
list is the appropriate place.


To unsubscribe to the cygwin-announce mailing list, look at the
"List-Unsubscribe: " tag in the email header of this message. Send
email to the address specified there.  It will be in the format:



Rebuilt against the new libiconv package, as well as expat. Updated the 
requires: lines in the hints.

Between 0.10.40 and 0.11.2, there were massive changes in the gettext 
package.  Much of the code for the development tools was pulled out and 
placed into two additional libraries, libgettextlib and libgettextsrc. 
These are NOT for use by  outside programs, but only by the gettext 
tools themselves -- so the header files, static lib, and import lib are 
NOT included in the binary package (this ommission is actually 
*recommended* by Bruno in the PACKAGING file).
   However, in general these two support libraries are built as shared 
libraries (DLLs), so the cyggettextlib-0.11.2.dll and 
cyggettextsrc-0.11.2.dll files are installed.  Also, these libraries are 
NOT versioned according to the normal libtool method (--version-info 
x:y:z), but instead are versioned using the --release 0.11.2 method. 
That means that every new release of gettext will ship new versions 
(0.11.3, etc) of these two libs -- and since no package other than 
gettext itself uses them, we don't need to worry about  keeping old 
versions around for compatibility and stuff.
   So, I've made all of the necessary changes to enable these two libs 
to be built as DLLs -- which include:
   1) use the functional, not macro, form of po_gram_error
      and po_gram_error_at_line.  Otherwise, our client
      programs msg*.exe will attempt, via the macro, to
      directly access fields of the imported structure variable
        changes: src/po-lex.h src/po-lex.c
   2) provide an accessor function for the imported
      array-of-structures variable plural_table[] (otherwise
      our client programs will attempt to directly access
      elements of the table -- a no-no for auto-import).
        changes: src/plural-table.h src/plural-table.c
                 src/msgfmt.c src/msginit.c
   3) pull out the getopt functions from these libraries,
      and put them into their own libgetopt.a convenience
      library.   This is because cygwin itself provides the
      getopt functions, and
        (a) if a function is listed in TWO import libs, ld
            reports an error.  /usr/lib/libcygwin.a and
            libgettextlib.dll.a would both contain the getopt
            symbols, so we remove them.
        (b) BUT, we CAN'T use the version provided by cygwin!!
            Cygwin's version hardcodes the POSIXLY_CORRECT variable,
            which means we cannot reorder options and arguments --
            but gettext's tests rely on reordering.
        (c) We CAN override functions that might be imported from
            a dll via an import lib by using an explicit STATIC
            lib.  So,
      getopt.c getopt.h getopt1.c  all go into the convenience lib
      libgetopt.la instead of the regular lib libgettextlib.la.
      (Recall that convenience libs are always built statically).
      Add libgetopt.la as a dependence for all exe's.
         changes: src/Makefile.am  lib/Makefile.am  tests/Makefile.am

However, as it turned out, this was all for naught.  Because libtool 
still has problems on cygwin when relinking DLL's for installation, I 
finally just forced libgettextsrc.la and libgettextlib.la to be built 
statically as convenience libs themselves.  The above changes WERE 
enough to build working exe's and dll's that passed most of the 
selftests -- but 'make install' wouldn't work because libtool kept 
trying to relink the DLLs against /usr/lib, not $(DESTDIR)/usr/lib. 
It's a libtool problem, not a gettext problem.

So, ultimately, we don't ship or build cyggettext*.dll.  This means that 
the msg*.exe and xgettext.exe programs are slightly bigger than 
necessary, but only by about 300k or so, total.

Also, the gettext package was split into three packages instead of just 
   'gettext' contains the core utilities
   'libintl2' (yes, the DLL version got bumped) contains just the
              single cygintl-2.dll file -- and even if we DID build
              cyggettext*.dll, they wouldn't go in the libintl package.
   'gettext-devel' contains development utilities, autotool macros,
              additional documentation, etc.
This split was recommended by Bruno in the PACKAGING file.

More information about the Cygwin-announce mailing list