Updated: gettext-0.11.2-1; New: gettext-devel-0.11.2-1, libintl2-0.11.2-1
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
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:
firstname.lastname@example.org . 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.
*** CYGWIN-ANNOUNCE UNSUBSCRIBE INFO ***
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
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
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