This is the mail archive of the mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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

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 functionality
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 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 (aka aren't
allowed due to bandwidth limitations. This means that you will need
to find a mirror which has this update.

In the US,
is a reliable high bandwidth connection.

In Japan, is already

In DK, 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: . If you want to subscribe go to: 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 instead of the regular lib
(Recall that convenience libs are always built statically).
Add as a dependence for all exe's.
changes: src/ lib/ tests/

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 and 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 two:
'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.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]